diff --git a/Changelog.md b/Changelog.md index 4b165927..e2373779 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,10 @@ # Impac! Frontend Changelog +### v1.8.6 +- Fix dashboard creation + +------------------------------------------------------------- + ### v1.8.5 - [KAPP-175] Allow runtime services reconfiguration - Fix Demo Data diff --git a/bower.json b/bower.json index c37b0894..51337c9c 100755 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "impac-angular", "description": "Impac! Front-End Library", - "version": "1.8.5", + "version": "1.8.6", "license": "Copyright 2017 Maestrano Pty Ltd", "repository": { "type": "git", diff --git a/dist/images/forecast-payroll.png b/dist/images/forecast-payroll.png deleted file mode 100644 index e7b3b8c6..00000000 Binary files a/dist/images/forecast-payroll.png and /dev/null differ diff --git a/dist/impac-angular.css b/dist/impac-angular.css index ba876b04..34df391d 100644 --- a/dist/impac-angular.css +++ b/dist/impac-angular.css @@ -7555,837 +7555,873 @@ dashboard-templates-selector .templates .template:hover { dashboard-templates-selector .templates .template.selected { background-color: rgba(29, 197, 57, 0.62); } -.analytics .impac-kpi .kpi { +.analytics kpis-bar > .kpis { position: relative; - max-width: 220px; - min-height: 95px; - max-height: 95px; - background-color: white; - margin: 10px 0 10px 0; - border-bottom: 1px solid white; - transition: all 0.2s ease-in; -} -@media screen and (max-width: 768px) { - .analytics .impac-kpi .kpi { - margin-left: auto; - margin-right: auto; - } -} -.analytics .impac-kpi .kpi.triggered, -.analytics .impac-kpi .kpi.add:hover { - 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: black; +.analytics kpis-bar > .kpis .actions { + margin-bottom: 12px; + /* Flatten der Bootstrap */ } -.analytics .impac-kpi .kpi.add:hover .kpi-text { - color: black; +@media screen and (max-width: 675px) { + .analytics kpis-bar > .kpis .actions { + position: relative; + } } -.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis { - visibility: visible; +.analytics kpis-bar > .kpis .actions .well, +.analytics kpis-bar > .kpis .actions .navbar-inner, +.analytics kpis-bar > .kpis .actions .popover, +.analytics kpis-bar > .kpis .actions .btn, +.analytics kpis-bar > .kpis .actions .tooltip, +.analytics kpis-bar > .kpis .actions input, +.analytics kpis-bar > .kpis .actions select, +.analytics kpis-bar > .kpis .actions textarea, +.analytics kpis-bar > .kpis .actions pre, +.analytics kpis-bar > .kpis .actions .progress, +.analytics kpis-bar > .kpis .actions .modal, +.analytics kpis-bar > .kpis .actions .add-on, +.analytics kpis-bar > .kpis .actions .alert, +.analytics kpis-bar > .kpis .actions .table-bordered, +.analytics kpis-bar > .kpis .actions .nav > .active > a, +.analytics kpis-bar > .kpis .actions .dropdown-menu, +.analytics kpis-bar > .kpis .actions .tooltip-inner, +.analytics kpis-bar > .kpis .actions .badge, +.analytics kpis-bar > .kpis .actions .label, +.analytics kpis-bar > .kpis .actions .img-polaroid { + box-shadow: none !important; + border-radius: 0px !important; + border-collapse: collapse !important; + background-image: none !important; } -.analytics .impac-kpi .kpi.add:hover .kpi-icon { - color: black; +.analytics kpis-bar > .kpis .actions body, +.analytics kpis-bar > .kpis .actions input, +.analytics kpis-bar > .kpis .actions select, +.analytics kpis-bar > .kpis .actions textarea { + box-sizing: border-box; } -.analytics .impac-kpi .kpi.add:hover .kpi-icon .fa-plus:before { - content: "\f00c"; +.analytics kpis-bar > .kpis .actions body::after, +.analytics kpis-bar > .kpis .actions input::after, +.analytics kpis-bar > .kpis .actions select::after, +.analytics kpis-bar > .kpis .actions textarea::after, +.analytics kpis-bar > .kpis .actions body::before, +.analytics kpis-bar > .kpis .actions input::before, +.analytics kpis-bar > .kpis .actions select::before, +.analytics kpis-bar > .kpis .actions textarea::before { + box-sizing: border-box; } -.analytics .impac-kpi .kpi.editing { - min-height: 185px; +.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 .impac-kpi .kpi:hover { - cursor: default; +.analytics kpis-bar > .kpis .actions a:hover { + text-decoration: none; } -.analytics .impac-kpi .kpi.static .kpi-value { - display: block; - font-size: 14px; - font-weight: 700; +.analytics kpis-bar > .kpis .actions fieldset { + margin: 0 0 1.75rem; + padding: 0; + border: none; } -.analytics .impac-kpi .kpi .top-line { - width: 100%; +.analytics kpis-bar > .kpis .actions .im-form-radio, +.analytics kpis-bar > .kpis .actions .im-form-group { position: relative; - cursor: move; - padding: 9px 9px 0px 12px; - border-bottom: none; - min-height: 7px; - box-shadow: none; + margin-top: 1.3125rem; + margin-bottom: 1.3125rem; +} +.analytics kpis-bar > .kpis .actions .im-form-inline { display: -ms-flexbox; display: flex; -ms-flex-direction: row; - flex-direction: row; - margin-bottom: 5px; - background-color: grey; - transition: background 0.2s ease-in; -} -.analytics .impac-kpi .kpi .top-line.triggered { - background-color: black; + flex-direction: row; + box-sizing: border-box; } -.analytics .impac-kpi .kpi .kpi-content { - max-height: 90px; +.analytics kpis-bar > .kpis .actions .im-form-inline > .im-form-group { + display: block; + -ms-flex: 1; + flex: 1; + position: relative; + vertical-align: middle; + margin-left: 0.175rem; + margin-right: 0.175rem; } -.analytics .impac-kpi .kpi .kpi-content.editing { - min-height: 180px; - overflow-y: auto; - overflow-x: hidden; +.analytics kpis-bar > .kpis .actions .im-form-inline > .btn { + display: inline-block; + margin-bottom: 0; } -.analytics .impac-kpi .kpi .kpi-show { - white-space: normal; - padding: 10px; +.analytics kpis-bar > .kpis .actions .im-form-group input { + height: 2.375rem; } -@media screen and (max-width: 380px) { - .analytics .impac-kpi .kpi .kpi-show { - padding: 10px 3px; - } +.analytics kpis-bar > .kpis .actions .im-form-group textarea { + resize: none; } -.analytics .impac-kpi .kpi .kpi-show .emphasis { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; +.analytics kpis-bar > .kpis .actions .im-form-group select { + width: 100%; + font-size: 1.25rem; + height: 2rem; + padding: 0.15625rem 0.15625rem 0.078125rem; + background: none; + border: none; + line-height: 1.6; + box-shadow: none; } -.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value { - color: #676767; +.analytics kpis-bar > .kpis .actions .im-form-group .im-control-label { + position: absolute; + top: 0.3125rem; + pointer-events: none; + padding-left: 0.15625rem; + z-index: 1; + color: #b3b3b3; + font-size: 1.25rem; + font-weight: normal; + transition: all 0.28s ease; } -.analytics .impac-kpi .kpi .kpi-show .caption { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; +.analytics kpis-bar > .kpis .actions .im-form-group .im-bar { + position: relative; + border-bottom: 0.078125rem solid #999; + display: block; } -.analytics .impac-kpi .kpi .kpi-show .kpi-text { - padding: 7px 0; - color: grey; - transition: color 0.2s ease-in; +.analytics kpis-bar > .kpis .actions .im-form-group .im-bar::before { + content: ''; + height: 0.15625rem; + width: 0; + left: 50%; + bottom: -0.078125rem; + position: absolute; + background: #358fdc; + transition: left 0.28s ease, width 0.28s ease; + z-index: 2; } -.analytics .impac-kpi .kpi .kpi-show .kpi-text > span { +.analytics kpis-bar > .kpis .actions .im-form-group input, +.analytics kpis-bar > .kpis .actions .im-form-group textarea { display: block; + background: none; + padding: 0.15625rem 0.15625rem 0.078125rem; + font-size: 1.25rem; + border-width: 0; + border-color: transparent; + line-height: 1.9; + width: 100%; + color: transparent; + transition: all 0.28s ease; + box-shadow: none; } -.analytics .impac-kpi .kpi .kpi-show .kpi-text.triggered { - color: black; -} -.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption { - font-size: 11px; - padding-bottom: 2px; +.analytics kpis-bar > .kpis .actions .im-form-group input[type="file"] { + line-height: 1; } -@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 kpis-bar > .kpis .actions .im-form-group input[type="file"] ~ .im-bar { + display: none; } -.analytics .impac-kpi .kpi .kpi-show .kpi-icon { - font-size: 16px; - padding: 10px 0; - color: grey; - transition: color 0.2s ease-in; +.analytics kpis-bar > .kpis .actions .im-form-group select, +.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 input.form-file, +.analytics kpis-bar > .kpis .actions .im-form-group input.has-value, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:valid, +.analytics kpis-bar > .kpis .actions .im-form-group textarea.form-file, +.analytics kpis-bar > .kpis .actions .im-form-group textarea.has-value { + color: #333; } -.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered { - color: black; +.analytics kpis-bar > .kpis .actions .im-form-group select ~ .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 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 textarea:focus ~ .im-control-label, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:valid ~ .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 { + font-size: 1rem; + color: #808080; + top: -1.25rem; + left: 0; } -@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: white; +.analytics kpis-bar > .kpis .actions .im-form-group select:focus, +.analytics kpis-bar > .kpis .actions .im-form-group input:focus, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus { + outline: none; } -.analytics .impac-kpi .kpi .kpi-edit .kpi-name { - text-align: center; - margin-bottom: 5px; +.analytics kpis-bar > .kpis .actions .im-form-group select:focus ~ .im-control-label, +.analytics kpis-bar > .kpis .actions .im-form-group input:focus ~ .im-control-label, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus ~ .im-control-label { + color: #358fdc; } -.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6 { - margin: 0 0 5px 0; +.analytics kpis-bar > .kpis .actions .im-form-group select:focus ~ .im-bar::before, +.analytics kpis-bar > .kpis .actions .im-form-group input:focus ~ .im-bar::before, +.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus ~ .im-bar::before { + width: 100%; + left: 0; } -.analytics .impac-kpi .kpi .kpi-edit .real-value { - text-transform: uppercase; - font-size: 10px; - text-align: center; +.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 .impac-kpi .kpi .kpi-edit .alert-caption { - text-align: center; - font-size: 11px; - background: #ff9999; - border-radius: 3px; - width: 100%; - margin: 0 auto 5px auto; - box-shadow: none; - padding: 2px; - color: white; +.analytics kpis-bar > .kpis .actions .im-checkbox input, +.analytics kpis-bar > .kpis .actions .im-form-radio input { + width: auto; + opacity: 0.00000001; + position: absolute; + left: 0; } -.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable, -.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit { - text-transform: uppercase; - font-weight: 500; - font-size: 11px; +.analytics kpis-bar > .kpis .actions .im-radio { + margin-bottom: 1.25rem; } -.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable { - margin-bottom: 20px; - color: #8d8d8d; +.analytics kpis-bar > .kpis .actions .im-radio .im-helper { + position: absolute; + top: -0.3125rem; + left: -0.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 .kpi-target-unit { +.analytics kpis-bar > .kpis .actions .im-radio .im-helper::before, +.analytics kpis-bar > .kpis .actions .im-radio .im-helper::after { + content: ''; position: absolute; - top: 6px; - right: 0; - color: #9a9a9a; + left: 0; + top: 0; + margin: 0.3125rem; + width: 1.25rem; + height: 1.25rem; + transition: transform 0.28s ease; + border-radius: 50%; + border: 0.15625rem solid currentColor; } -.analytics .impac-kpi .kpi .kpi-edit .param-name { - font-size: 85%; +.analytics kpis-bar > .kpis .actions .im-radio .im-helper::after { + transform: scale(0); + background-color: #358fdc; + border-color: #358fdc; } -.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs { - margin-top: 4px; +.analytics kpis-bar > .kpis .actions .im-radio label:hover .im-helper { + color: #358fdc; } -.analytics .impac-kpi .kpi .kpi-edit, -.analytics .impac-kpi .kpi .kpi-no-data { - /* Flatten der Bootstrap */ +.analytics kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::after { + transform: scale(0.5); } -.analytics .impac-kpi .kpi .kpi-edit .well, -.analytics .impac-kpi .kpi .kpi-no-data .well, -.analytics .impac-kpi .kpi .kpi-edit .navbar-inner, -.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner, -.analytics .impac-kpi .kpi .kpi-edit .popover, -.analytics .impac-kpi .kpi .kpi-no-data .popover, -.analytics .impac-kpi .kpi .kpi-edit .btn, -.analytics .impac-kpi .kpi .kpi-no-data .btn, -.analytics .impac-kpi .kpi .kpi-edit .tooltip, -.analytics .impac-kpi .kpi .kpi-no-data .tooltip, -.analytics .impac-kpi .kpi .kpi-edit input, -.analytics .impac-kpi .kpi .kpi-no-data input, -.analytics .impac-kpi .kpi .kpi-edit select, -.analytics .impac-kpi .kpi .kpi-no-data select, -.analytics .impac-kpi .kpi .kpi-edit textarea, -.analytics .impac-kpi .kpi .kpi-no-data textarea, -.analytics .impac-kpi .kpi .kpi-edit pre, -.analytics .impac-kpi .kpi .kpi-no-data pre, -.analytics .impac-kpi .kpi .kpi-edit .progress, -.analytics .impac-kpi .kpi .kpi-no-data .progress, -.analytics .impac-kpi .kpi .kpi-edit .modal, -.analytics .impac-kpi .kpi .kpi-no-data .modal, -.analytics .impac-kpi .kpi .kpi-edit .add-on, -.analytics .impac-kpi .kpi .kpi-no-data .add-on, -.analytics .impac-kpi .kpi .kpi-edit .alert, -.analytics .impac-kpi .kpi .kpi-no-data .alert, -.analytics .impac-kpi .kpi .kpi-edit .table-bordered, -.analytics .impac-kpi .kpi .kpi-no-data .table-bordered, -.analytics .impac-kpi .kpi .kpi-edit .nav > .active > a, -.analytics .impac-kpi .kpi .kpi-no-data .nav > .active > a, -.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu, -.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu, -.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner, -.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner, -.analytics .impac-kpi .kpi .kpi-edit .badge, -.analytics .impac-kpi .kpi .kpi-no-data .badge, -.analytics .impac-kpi .kpi .kpi-edit .label, -.analytics .impac-kpi .kpi .kpi-no-data .label, -.analytics .impac-kpi .kpi .kpi-edit .img-polaroid, -.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid { - box-shadow: none !important; - border-radius: 0px !important; - border-collapse: collapse !important; - background-image: none !important; +.analytics kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::before { + color: #358fdc; } -.analytics .impac-kpi .kpi .kpi-edit body, -.analytics .impac-kpi .kpi .kpi-no-data body, -.analytics .impac-kpi .kpi .kpi-edit input, -.analytics .impac-kpi .kpi .kpi-no-data input, -.analytics .impac-kpi .kpi .kpi-edit select, -.analytics .impac-kpi .kpi .kpi-no-data select, -.analytics .impac-kpi .kpi .kpi-edit textarea, -.analytics .impac-kpi .kpi .kpi-no-data textarea { - box-sizing: border-box; +.analytics kpis-bar > .kpis .actions .im-checkbox { + margin-top: 1.75rem; + margin-bottom: 1.25rem; } -.analytics .impac-kpi .kpi .kpi-edit body::after, -.analytics .impac-kpi .kpi .kpi-no-data body::after, -.analytics .impac-kpi .kpi .kpi-edit input::after, -.analytics .impac-kpi .kpi .kpi-no-data input::after, -.analytics .impac-kpi .kpi .kpi-edit select::after, -.analytics .impac-kpi .kpi .kpi-no-data select::after, -.analytics .impac-kpi .kpi .kpi-edit textarea::after, -.analytics .impac-kpi .kpi .kpi-no-data textarea::after, -.analytics .impac-kpi .kpi .kpi-edit body::before, -.analytics .impac-kpi .kpi .kpi-no-data body::before, -.analytics .impac-kpi .kpi .kpi-edit input::before, -.analytics .impac-kpi .kpi .kpi-no-data input::before, -.analytics .impac-kpi .kpi .kpi-edit select::before, -.analytics .impac-kpi .kpi .kpi-no-data select::before, -.analytics .impac-kpi .kpi .kpi-edit textarea::before, -.analytics .impac-kpi .kpi .kpi-no-data textarea::before { - box-sizing: border-box; +.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: 0.15625rem solid currentColor; + border-radius: 0.078125rem; + transition: border-color 0.28s ease; } -.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button, -.analytics .impac-kpi .kpi .kpi-no-data 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-outer-spin-button { - -webkit-appearance: none; - margin: 0; +.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before, +.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::after { + position: absolute; + height: 0; + width: 0.25rem; + background-color: #358fdc; + display: block; + transform-origin: left top; + border-radius: 0.3125rem; + content: ''; + transition: opacity 0.28s ease, height 0s linear 0.28s; + opacity: 0; } -.analytics .impac-kpi .kpi .kpi-edit a:hover, -.analytics .impac-kpi .kpi .kpi-no-data a:hover { - text-decoration: none; +.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before { + top: 0.8125rem; + left: 0.475rem; + transform: rotate(-135deg); + box-shadow: 0 0 0 0.078125rem #fff; } -.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 kpis-bar > .kpis .actions .im-checkbox .im-helper::after { + top: 0.375rem; + left: 0; + transform: rotate(-45deg); } -.analytics .impac-kpi .kpi .kpi-edit .im-form-radio, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group { - position: relative; - margin-top: 1.3125rem; - margin-bottom: 1.3125rem; +.analytics kpis-bar > .kpis .actions .im-checkbox label:hover .im-helper { + color: #358fdc; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-inline, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline { - display: -ms-flexbox; - display: flex; - -ms-flex-direction: row; - flex-direction: row; - box-sizing: border-box; +.analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper { + color: #358fdc; } -.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; - -ms-flex: 1; - flex: 1; - position: relative; - vertical-align: middle; - margin-left: 0.175rem; - margin-right: 0.175rem; +.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; + transition: height 0.28s ease; } -.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 kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::after { + height: 0.625rem; } -.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 kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::before { + height: 1.5rem; + transition-delay: 0.28s; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea { - resize: none; +.analytics kpis-bar > .kpis .actions .im-radio + .im-radio, +.analytics kpis-bar > .kpis .actions .im-checkbox + .im-checkbox { + margin-top: 1.25rem; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group select, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select { +.analytics kpis-bar > .kpis .actions .im-messages { + font-size: 1.04166667rem; + color: #e01f74; + overflow: hidden; + transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.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-form-group .im-messages, +.analytics kpis-bar > .kpis .actions .has-error.im-checkbox .im-messages, +.analytics kpis-bar > .kpis .actions .has-error.im-radio .im-messages, +.analytics kpis-bar > .kpis .actions .has-error.im-form-radio .im-messages, +.analytics kpis-bar > .kpis .actions .has-error.im-form-group .im-helper, +.analytics kpis-bar > .kpis .actions .has-error.im-checkbox .im-helper, +.analytics kpis-bar > .kpis .actions .has-error.im-radio .im-helper, +.analytics kpis-bar > .kpis .actions .has-error.im-form-radio .im-helper { + color: #e01f74; + opacity: 1; +} +.analytics kpis-bar > .kpis .actions .has-error .im-bar::before { + background: #e01f74; + left: 0; width: 100%; - font-size: 1.25rem; - height: 2rem; - padding: 0.15625rem 0.15625rem 0.078125rem; - background: none; - 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: 0.3125rem; - pointer-events: none; - padding-left: 0.15625rem; +.analytics kpis-bar > .kpis .actions .im-button { + position: relative; + background: #60a7e4; + border: 0; + font-size: 1.375rem; + color: #333; + margin: 0.7rem 0; + padding: 0.4375rem 1.75rem; + border-radius: 3px; + cursor: pointer; + overflow: hidden; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.analytics kpis-bar > .kpis .actions .im-button span { + color: #fff; + position: relative; z-index: 1; - color: #b3b3b3; - font-size: 1.25rem; - font-weight: normal; - transition: all 0.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 { +.analytics kpis-bar > .kpis .actions .im-button:hover { + transition: background 0.1s ease-in; + background: #2583d3; +} +.analytics kpis-bar > .kpis .actions .im-button:active { + box-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.14); +} +.analytics kpis-bar > .kpis .actions .im-button a:focus, +.analytics kpis-bar > .kpis .actions .im-button:focus { + outline: none; + text-decoration: none; +} +.analytics kpis-bar > .kpis .actions button.im-fab { position: relative; - border-bottom: 0.078125rem solid #999; - display: block; + height: 46px; + width: 46px; + -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, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); + color: white; } -.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: 0.15625rem; - width: 0; - left: 50%; - bottom: -0.078125rem; +.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, 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 { + transition: background 0.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 { + transition: background 0.1s ease-in; + background: #ca1c68; +} +.analytics kpis-bar > .kpis .actions a { + color: white; +} +.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; + transition: all 0.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: black; +} +.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; - transition: left 0.28s ease, width 0.28s ease; - z-index: 2; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea { - display: block; - background: none; - padding: 0.15625rem 0.15625rem 0.078125rem; - font-size: 1.25rem; - border-width: 0; - border-color: transparent; - line-height: 1.9; - width: 100%; - color: transparent; - transition: all 0.28s ease; - box-shadow: none; +.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-buttons { + position: absolute; + top: 0; + right: 0; +} +.analytics kpis-bar > .kpis .content { + padding: 15px; + background-color: white; + box-shadow: 0px 1px 8px -4px; +} +@media screen and (min-width: 725px) { + .analytics kpis-bar > .kpis .content { + padding: 0 60px; + } +} +@media screen and (max-width: 675px) { + .analytics kpis-bar > .kpis .content { + margin-top: 25px; + } +} +.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: 0px 1px 3px -1px; +} +.analytics kpis-bar > .kpis .content .title .no-kpi-templates { + color: #afadb5; + font-weight: 500; } -.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 kpis-bar > .kpis .content .add-bar { + border-bottom: dashed 1px; } -.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 kpis-bar > .kpis .content .kpi-loader { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + min-height: 115px; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group select, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus, -.analytics .impac-kpi .kpi .kpi-no-data .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 textarea:valid, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value { - color: #333; +.analytics kpis-bar > .kpis .content .dates-picker-container { + width: 40%; + margin: 0 auto; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group select ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group input:valid ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group input.has-value ~ .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 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 textarea:valid ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group textarea.has-value ~ .im-control-label { - font-size: 1rem; - color: #808080; - top: -1.25rem; - left: 0; +.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 .impac-kpi .kpi .kpi-edit .im-form-group select:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus { - outline: none; +.analytics kpis-bar { + display: block; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-control-label, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input: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 textarea:focus ~ .im-control-label { - color: #358fdc; +.analytics kpis-bar > .key-stats { + background-color: white; + padding: 5px 0px; } -.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus ~ .im-bar::before, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus ~ .im-bar::before, -.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-bar::before, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input: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 textarea:focus ~ .im-bar::before { - width: 100%; - left: 0; +.analytics.pdf-mode kpis-bar > .kpis .actions { + display: none; } -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label, -.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label { +.analytics .impac-kpi .kpi { position: relative; - cursor: pointer; - padding-left: 2.5rem; - text-align: left; - color: #333; - display: block; + max-width: 220px; + min-height: 95px; + max-height: 95px; + background-color: white; + margin: 10px 0 10px 0; + border-bottom: 1px solid white; + transition: all 0.2s ease-in; } -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input, -.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input, -.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input { - width: auto; - opacity: 0.00000001; - position: absolute; - left: 0; +@media screen and (max-width: 768px) { + .analytics .impac-kpi .kpi { + margin-left: auto; + margin-right: auto; + } } -.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.triggered, +.analytics .impac-kpi .kpi.add:hover { + border-bottom: 4px solid #e01f74; } -.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper, -.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper { - position: absolute; - top: -0.3125rem; - left: -0.3125rem; +.analytics .impac-kpi .kpi.add .kpi-text .emphasis { + visibility: hidden; +} +.analytics .impac-kpi .kpi.add:hover { 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::before, -.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::before, -.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after, -.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 0.3125rem; - width: 1.25rem; - height: 1.25rem; - transition: transform 0.28s ease; - border-radius: 50%; - border: 0.15625rem solid currentColor; +.analytics .impac-kpi .kpi.add:hover .top-line { + background-color: black; } -.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after, -.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after { - transform: scale(0); - background-color: #358fdc; - border-color: #358fdc; +.analytics .impac-kpi .kpi.add:hover .kpi-text { + color: black; } -.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.add:hover .kpi-text .emphasis { + visibility: visible; } -.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 { - transform: scale(0.5); +.analytics .impac-kpi .kpi.add:hover .kpi-icon { + color: black; } -.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.add:hover .kpi-icon .fa-plus:before { + content: "\f00c"; } -.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.editing { + min-height: 185px; } -.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: 0.15625rem solid currentColor; - border-radius: 0.078125rem; - transition: border-color 0.28s ease; +.analytics .impac-kpi .kpi:hover { + cursor: default; } -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before, -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after { - position: absolute; - height: 0; - width: 0.25rem; - background-color: #358fdc; +.analytics .impac-kpi .kpi.static .kpi-value { display: block; - transform-origin: left top; - border-radius: 0.3125rem; - content: ''; - transition: opacity 0.28s ease, height 0s linear 0.28s; - opacity: 0; + font-size: 14px; + font-weight: 700; } -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before { - top: 0.8125rem; - left: 0.475rem; - transform: rotate(-135deg); - box-shadow: 0 0 0 0.078125rem #fff; +.analytics .impac-kpi .kpi .top-line { + width: 100%; + position: relative; + cursor: move; + padding: 9px 9px 0px 12px; + border-bottom: none; + min-height: 7px; + box-shadow: none; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: row; + flex-direction: row; + margin-bottom: 5px; + background-color: grey; + transition: background 0.2s ease-in; } -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after { - top: 0.375rem; - left: 0; - transform: rotate(-45deg); +.analytics .impac-kpi .kpi .top-line.triggered { + background-color: black; } -.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-content { + max-height: 90px; } -.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-content.editing { + min-height: 180px; + overflow-y: auto; + overflow-x: hidden; } -.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, -.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 { - opacity: 1; - transition: height 0.28s ease; +.analytics .impac-kpi .kpi .kpi-show { + white-space: normal; + padding: 10px; } -.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: 0.625rem; +@media screen and (max-width: 380px) { + .analytics .impac-kpi .kpi .kpi-show { + padding: 10px 3px; + } } -.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; - transition-delay: 0.28s; +.analytics .impac-kpi .kpi .kpi-show .emphasis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } -.analytics .impac-kpi .kpi .kpi-edit .im-radio + .im-radio, -.analytics .impac-kpi .kpi .kpi-no-data .im-radio + .im-radio, -.analytics .impac-kpi .kpi .kpi-edit .im-checkbox + .im-checkbox, -.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox + .im-checkbox { - margin-top: 1.25rem; +.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value { + color: #676767; } -.analytics .impac-kpi .kpi .kpi-edit .im-messages, -.analytics .impac-kpi .kpi .kpi-no-data .im-messages { - font-size: 1.04166667rem; - color: #e01f74; +.analytics .impac-kpi .kpi .kpi-show .caption { + white-space: nowrap; overflow: hidden; - transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.2); - opacity: 0; - margin-top: 0; - padding-top: 5px; + text-overflow: ellipsis; } -.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend, -.analytics .impac-kpi .kpi .kpi-no-data .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.im-form-group .im-control-label.im-control-label { - color: #e01f74; +.analytics .impac-kpi .kpi .kpi-show .kpi-text { + padding: 7px 0; + color: grey; + transition: color 0.2s ease-in; } -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper, -.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper, -.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper { - color: #e01f74; - opacity: 1; +.analytics .impac-kpi .kpi .kpi-show .kpi-text > span { + display: block; } -.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-show .kpi-text.triggered { + color: black; } -.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: 0.7rem 0; - padding: 0.4375rem 1.75rem; - border-radius: 3px; - cursor: pointer; - overflow: hidden; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption { + font-size: 11px; + padding-bottom: 2px; } -.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; +@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-edit .im-button:hover, -.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover { - transition: background 0.1s ease-in; - background: #2583d3; +.analytics .impac-kpi .kpi .kpi-show .kpi-icon { + font-size: 16px; + padding: 10px 0; + color: grey; + transition: color 0.2s ease-in; } -.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, 0.14); +.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered { + color: black; } -.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus, -.analytics .impac-kpi .kpi .kpi-edit .im-button:focus, -.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus { - outline: none; - text-decoration: none; +@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 button.im-fab, -.analytics .impac-kpi .kpi .kpi-no-data button.im-fab { - position: relative; - height: 46px; - width: 46px; - -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, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); +.analytics .impac-kpi .kpi .kpi-edit a { color: white; } -.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, 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 .kpi-name { + text-align: center; + margin-bottom: 5px; } -.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 { - transition: background 0.1s ease-in; - background: #2583d3; +.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6 { + margin: 0 0 5px 0; } -.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 .real-value { + text-transform: uppercase; + font-size: 10px; + text-align: center; } -.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 { - transition: background 0.1s ease-in; - background: #ca1c68; +.analytics .impac-kpi .kpi .kpi-edit .alert-caption { + text-align: center; + font-size: 11px; + background: #ff9999; + border-radius: 3px; + width: 100%; + margin: 0 auto 5px auto; + box-shadow: none; + padding: 2px; + color: white; } -.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 .kpi-edit .kpi-target-watchable, +.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit { + text-transform: uppercase; + font-weight: 500; + font-size: 11px; } -.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover { - backgroud: #358fdc; +.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable { + margin-bottom: 20px; + color: #8d8d8d; } -.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn { +.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit { 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; + top: 6px; + right: 0; + color: #9a9a9a; } -.analytics kpis-bar > .key-stats .kpi { - min-height: 80px; +.analytics .impac-kpi .kpi .kpi-edit .param-name { + font-size: 85%; } -.analytics kpis-bar > .kpis { - position: relative; +.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs { + margin-top: 4px; } -.analytics kpis-bar > .kpis .actions { - margin-bottom: 12px; +.analytics .impac-kpi .kpi .kpi-edit, +.analytics .impac-kpi .kpi .kpi-no-data { /* Flatten der Bootstrap */ } -@media screen and (max-width: 675px) { - .analytics kpis-bar > .kpis .actions { - position: relative; - } -} -.analytics kpis-bar > .kpis .actions .well, -.analytics kpis-bar > .kpis .actions .navbar-inner, -.analytics kpis-bar > .kpis .actions .popover, -.analytics kpis-bar > .kpis .actions .btn, -.analytics kpis-bar > .kpis .actions .tooltip, -.analytics kpis-bar > .kpis .actions input, -.analytics kpis-bar > .kpis .actions select, -.analytics kpis-bar > .kpis .actions textarea, -.analytics kpis-bar > .kpis .actions pre, -.analytics kpis-bar > .kpis .actions .progress, -.analytics kpis-bar > .kpis .actions .modal, -.analytics kpis-bar > .kpis .actions .add-on, -.analytics kpis-bar > .kpis .actions .alert, -.analytics kpis-bar > .kpis .actions .table-bordered, -.analytics kpis-bar > .kpis .actions .nav > .active > a, -.analytics kpis-bar > .kpis .actions .dropdown-menu, -.analytics kpis-bar > .kpis .actions .tooltip-inner, -.analytics kpis-bar > .kpis .actions .badge, -.analytics kpis-bar > .kpis .actions .label, -.analytics kpis-bar > .kpis .actions .img-polaroid { +.analytics .impac-kpi .kpi .kpi-edit .well, +.analytics .impac-kpi .kpi .kpi-no-data .well, +.analytics .impac-kpi .kpi .kpi-edit .navbar-inner, +.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner, +.analytics .impac-kpi .kpi .kpi-edit .popover, +.analytics .impac-kpi .kpi .kpi-no-data .popover, +.analytics .impac-kpi .kpi .kpi-edit .btn, +.analytics .impac-kpi .kpi .kpi-no-data .btn, +.analytics .impac-kpi .kpi .kpi-edit .tooltip, +.analytics .impac-kpi .kpi .kpi-no-data .tooltip, +.analytics .impac-kpi .kpi .kpi-edit input, +.analytics .impac-kpi .kpi .kpi-no-data input, +.analytics .impac-kpi .kpi .kpi-edit select, +.analytics .impac-kpi .kpi .kpi-no-data select, +.analytics .impac-kpi .kpi .kpi-edit textarea, +.analytics .impac-kpi .kpi .kpi-no-data textarea, +.analytics .impac-kpi .kpi .kpi-edit pre, +.analytics .impac-kpi .kpi .kpi-no-data pre, +.analytics .impac-kpi .kpi .kpi-edit .progress, +.analytics .impac-kpi .kpi .kpi-no-data .progress, +.analytics .impac-kpi .kpi .kpi-edit .modal, +.analytics .impac-kpi .kpi .kpi-no-data .modal, +.analytics .impac-kpi .kpi .kpi-edit .add-on, +.analytics .impac-kpi .kpi .kpi-no-data .add-on, +.analytics .impac-kpi .kpi .kpi-edit .alert, +.analytics .impac-kpi .kpi .kpi-no-data .alert, +.analytics .impac-kpi .kpi .kpi-edit .table-bordered, +.analytics .impac-kpi .kpi .kpi-no-data .table-bordered, +.analytics .impac-kpi .kpi .kpi-edit .nav > .active > a, +.analytics .impac-kpi .kpi .kpi-no-data .nav > .active > a, +.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu, +.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu, +.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner, +.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner, +.analytics .impac-kpi .kpi .kpi-edit .badge, +.analytics .impac-kpi .kpi .kpi-no-data .badge, +.analytics .impac-kpi .kpi .kpi-edit .label, +.analytics .impac-kpi .kpi .kpi-no-data .label, +.analytics .impac-kpi .kpi .kpi-edit .img-polaroid, +.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid { box-shadow: none !important; border-radius: 0px !important; border-collapse: collapse !important; background-image: none !important; } -.analytics kpis-bar > .kpis .actions body, -.analytics kpis-bar > .kpis .actions input, -.analytics kpis-bar > .kpis .actions select, -.analytics kpis-bar > .kpis .actions textarea { +.analytics .impac-kpi .kpi .kpi-edit body, +.analytics .impac-kpi .kpi .kpi-no-data body, +.analytics .impac-kpi .kpi .kpi-edit input, +.analytics .impac-kpi .kpi .kpi-no-data input, +.analytics .impac-kpi .kpi .kpi-edit select, +.analytics .impac-kpi .kpi .kpi-no-data select, +.analytics .impac-kpi .kpi .kpi-edit textarea, +.analytics .impac-kpi .kpi .kpi-no-data textarea { box-sizing: border-box; } -.analytics kpis-bar > .kpis .actions body::after, -.analytics kpis-bar > .kpis .actions input::after, -.analytics kpis-bar > .kpis .actions select::after, -.analytics kpis-bar > .kpis .actions textarea::after, -.analytics kpis-bar > .kpis .actions body::before, -.analytics kpis-bar > .kpis .actions input::before, -.analytics kpis-bar > .kpis .actions select::before, -.analytics kpis-bar > .kpis .actions textarea::before { +.analytics .impac-kpi .kpi .kpi-edit body::after, +.analytics .impac-kpi .kpi .kpi-no-data body::after, +.analytics .impac-kpi .kpi .kpi-edit input::after, +.analytics .impac-kpi .kpi .kpi-no-data input::after, +.analytics .impac-kpi .kpi .kpi-edit select::after, +.analytics .impac-kpi .kpi .kpi-no-data select::after, +.analytics .impac-kpi .kpi .kpi-edit textarea::after, +.analytics .impac-kpi .kpi .kpi-no-data textarea::after, +.analytics .impac-kpi .kpi .kpi-edit body::before, +.analytics .impac-kpi .kpi .kpi-no-data body::before, +.analytics .impac-kpi .kpi .kpi-edit input::before, +.analytics .impac-kpi .kpi .kpi-no-data input::before, +.analytics .impac-kpi .kpi .kpi-edit select::before, +.analytics .impac-kpi .kpi .kpi-no-data select::before, +.analytics .impac-kpi .kpi .kpi-edit textarea::before, +.analytics .impac-kpi .kpi .kpi-no-data 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 { +.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button, +.analytics .impac-kpi .kpi .kpi-no-data 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-outer-spin-button { -webkit-appearance: none; margin: 0; } -.analytics kpis-bar > .kpis .actions a:hover { +.analytics .impac-kpi .kpi .kpi-edit a:hover, +.analytics .impac-kpi .kpi .kpi-no-data a:hover { text-decoration: none; } -.analytics kpis-bar > .kpis .actions fieldset { +.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 kpis-bar > .kpis .actions .im-form-radio, -.analytics kpis-bar > .kpis .actions .im-form-group { +.analytics .impac-kpi .kpi .kpi-edit .im-form-radio, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group { position: relative; margin-top: 1.3125rem; margin-bottom: 1.3125rem; } -.analytics kpis-bar > .kpis .actions .im-form-inline { +.analytics .impac-kpi .kpi .kpi-edit .im-form-inline, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline { 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 { +.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; -ms-flex: 1; flex: 1; @@ -8394,17 +8430,21 @@ dashboard-templates-selector .templates .template.selected { margin-left: 0.175rem; margin-right: 0.175rem; } -.analytics kpis-bar > .kpis .actions .im-form-inline > .btn { +.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 kpis-bar > .kpis .actions .im-form-group input { +.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 kpis-bar > .kpis .actions .im-form-group textarea { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea { resize: none; } -.analytics kpis-bar > .kpis .actions .im-form-group select { +.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; @@ -8414,7 +8454,8 @@ dashboard-templates-selector .templates .template.selected { line-height: 1.6; box-shadow: none; } -.analytics kpis-bar > .kpis .actions .im-form-group .im-control-label { +.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: 0.3125rem; pointer-events: none; @@ -8425,12 +8466,14 @@ dashboard-templates-selector .templates .template.selected { font-weight: normal; transition: all 0.28s ease; } -.analytics kpis-bar > .kpis .actions .im-form-group .im-bar { +.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: 0.078125rem solid #999; display: block; } -.analytics kpis-bar > .kpis .actions .im-form-group .im-bar::before { +.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: 0.15625rem; width: 0; @@ -8441,8 +8484,10 @@ dashboard-templates-selector .templates .template.selected { transition: left 0.28s ease, width 0.28s ease; z-index: 2; } -.analytics kpis-bar > .kpis .actions .im-form-group input, -.analytics kpis-bar > .kpis .actions .im-form-group textarea { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea { display: block; background: none; padding: 0.15625rem 0.15625rem 0.078125rem; @@ -8455,55 +8500,86 @@ dashboard-templates-selector .templates .template.selected { transition: all 0.28s ease; box-shadow: none; } -.analytics kpis-bar > .kpis .actions .im-form-group input[type="file"] { +.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 kpis-bar > .kpis .actions .im-form-group input[type="file"] ~ .im-bar { +.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 kpis-bar > .kpis .actions .im-form-group select, -.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 input.form-file, -.analytics kpis-bar > .kpis .actions .im-form-group input.has-value, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:valid, -.analytics kpis-bar > .kpis .actions .im-form-group textarea.form-file, -.analytics kpis-bar > .kpis .actions .im-form-group textarea.has-value { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group select, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus, +.analytics .impac-kpi .kpi .kpi-no-data .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 textarea:valid, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value { color: #333; } -.analytics kpis-bar > .kpis .actions .im-form-group select ~ .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 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 textarea:focus ~ .im-control-label, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:valid ~ .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 .impac-kpi .kpi .kpi-edit .im-form-group select ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group input:valid ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group input.has-value ~ .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 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 textarea:valid ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .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-no-data .im-form-group textarea.has-value ~ .im-control-label { font-size: 1rem; color: #808080; top: -1.25rem; left: 0; } -.analytics kpis-bar > .kpis .actions .im-form-group select:focus, -.analytics kpis-bar > .kpis .actions .im-form-group input:focus, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus { outline: none; } -.analytics kpis-bar > .kpis .actions .im-form-group select:focus ~ .im-control-label, -.analytics kpis-bar > .kpis .actions .im-form-group input:focus ~ .im-control-label, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus ~ .im-control-label { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-control-label, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input: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 textarea:focus ~ .im-control-label { color: #358fdc; } -.analytics kpis-bar > .kpis .actions .im-form-group select:focus ~ .im-bar::before, -.analytics kpis-bar > .kpis .actions .im-form-group input:focus ~ .im-bar::before, -.analytics kpis-bar > .kpis .actions .im-form-group textarea:focus ~ .im-bar::before { +.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus ~ .im-bar::before, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus ~ .im-bar::before, +.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus ~ .im-bar::before, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input: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 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 { +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label, +.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label { position: relative; cursor: pointer; padding-left: 2.5rem; @@ -8511,17 +8587,21 @@ dashboard-templates-selector .templates .template.selected { color: #333; display: block; } -.analytics kpis-bar > .kpis .actions .im-checkbox input, -.analytics kpis-bar > .kpis .actions .im-form-radio input { +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input, +.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input, +.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input { width: auto; opacity: 0.00000001; position: absolute; left: 0; } -.analytics kpis-bar > .kpis .actions .im-radio { +.analytics .impac-kpi .kpi .kpi-edit .im-radio, +.analytics .impac-kpi .kpi .kpi-no-data .im-radio { margin-bottom: 1.25rem; } -.analytics kpis-bar > .kpis .actions .im-radio .im-helper { +.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper, +.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper { position: absolute; top: -0.3125rem; left: -0.3125rem; @@ -8534,8 +8614,10 @@ dashboard-templates-selector .templates .template.selected { user-select: none; color: #999; } -.analytics kpis-bar > .kpis .actions .im-radio .im-helper::before, -.analytics kpis-bar > .kpis .actions .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::before, +.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after, +.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after { content: ''; position: absolute; left: 0; @@ -8547,25 +8629,31 @@ dashboard-templates-selector .templates .template.selected { border-radius: 50%; border: 0.15625rem solid currentColor; } -.analytics kpis-bar > .kpis .actions .im-radio .im-helper::after { +.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after, +.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after { transform: scale(0); background-color: #358fdc; border-color: #358fdc; } -.analytics kpis-bar > .kpis .actions .im-radio label:hover .im-helper { +.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 kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::after { +.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 { transform: scale(0.5); } -.analytics kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::before { +.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 kpis-bar > .kpis .actions .im-checkbox { +.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 kpis-bar > .kpis .actions .im-checkbox .im-helper { +.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; @@ -8577,8 +8665,10 @@ dashboard-templates-selector .templates .template.selected { border-radius: 0.078125rem; transition: border-color 0.28s ease; } -.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before, -.analytics kpis-bar > .kpis .actions .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::before, +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after { position: absolute; height: 0; width: 0.25rem; @@ -8590,40 +8680,51 @@ dashboard-templates-selector .templates .template.selected { transition: opacity 0.28s ease, height 0s linear 0.28s; opacity: 0; } -.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before { +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before { top: 0.8125rem; left: 0.475rem; transform: rotate(-135deg); box-shadow: 0 0 0 0.078125rem #fff; } -.analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::after { +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after { top: 0.375rem; left: 0; transform: rotate(-45deg); } -.analytics kpis-bar > .kpis .actions .im-checkbox label:hover .im-helper { +.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 kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper { +.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 kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::after, -.analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::before { +.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, +.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 { opacity: 1; transition: height 0.28s ease; } -.analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::after { +.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: 0.625rem; } -.analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::before { +.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; transition-delay: 0.28s; } -.analytics kpis-bar > .kpis .actions .im-radio + .im-radio, -.analytics kpis-bar > .kpis .actions .im-checkbox + .im-checkbox { +.analytics .impac-kpi .kpi .kpi-edit .im-radio + .im-radio, +.analytics .impac-kpi .kpi .kpi-no-data .im-radio + .im-radio, +.analytics .impac-kpi .kpi .kpi-edit .im-checkbox + .im-checkbox, +.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox + .im-checkbox { margin-top: 1.25rem; } -.analytics kpis-bar > .kpis .actions .im-messages { +.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; @@ -8632,27 +8733,39 @@ dashboard-templates-selector .templates .template.selected { 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 { +.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend, +.analytics .impac-kpi .kpi .kpi-no-data .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.im-form-group .im-control-label.im-control-label { color: #e01f74; } -.analytics kpis-bar > .kpis .actions .has-error.im-form-group .im-messages, -.analytics kpis-bar > .kpis .actions .has-error.im-checkbox .im-messages, -.analytics kpis-bar > .kpis .actions .has-error.im-radio .im-messages, -.analytics kpis-bar > .kpis .actions .has-error.im-form-radio .im-messages, -.analytics kpis-bar > .kpis .actions .has-error.im-form-group .im-helper, -.analytics kpis-bar > .kpis .actions .has-error.im-checkbox .im-helper, -.analytics kpis-bar > .kpis .actions .has-error.im-radio .im-helper, -.analytics kpis-bar > .kpis .actions .has-error.im-form-radio .im-helper { +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper, +.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper, +.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper { color: #e01f74; opacity: 1; } -.analytics kpis-bar > .kpis .actions .has-error .im-bar::before { +.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 kpis-bar > .kpis .actions .im-button { +.analytics .impac-kpi .kpi .kpi-edit .im-button, +.analytics .impac-kpi .kpi .kpi-no-data .im-button { position: relative; background: #60a7e4; border: 0; @@ -8665,24 +8778,30 @@ dashboard-templates-selector .templates .template.selected { overflow: hidden; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } -.analytics kpis-bar > .kpis .actions .im-button span { +.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 kpis-bar > .kpis .actions .im-button:hover { +.analytics .impac-kpi .kpi .kpi-edit .im-button:hover, +.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover { transition: background 0.1s ease-in; background: #2583d3; } -.analytics kpis-bar > .kpis .actions .im-button:active { +.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, 0.14); } -.analytics kpis-bar > .kpis .actions .im-button a:focus, -.analytics kpis-bar > .kpis .actions .im-button:focus { +.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus, +.analytics .impac-kpi .kpi .kpi-edit .im-button:focus, +.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus { outline: none; text-decoration: none; } -.analytics kpis-bar > .kpis .actions button.im-fab { +.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; @@ -8698,181 +8817,62 @@ dashboard-templates-selector .templates .template.selected { box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); color: white; } -.analytics kpis-bar > .kpis .actions button.im-fab:focus { +.analytics .impac-kpi .kpi .kpi-edit button.im-fab:focus, +.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:focus { outline: 0; } -.analytics kpis-bar > .kpis .actions button.im-fab:active { +.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, 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 { - transition: background 0.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 { - transition: background 0.1s ease-in; - background: #ca1c68; -} -.analytics kpis-bar > .kpis .actions a { - color: white; -} -.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; - transition: all 0.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: black; -} -.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-buttons { - position: absolute; - top: 0; - right: 0; -} -.analytics kpis-bar > .kpis .content { - padding: 15px; - background-color: white; - box-shadow: 0px 1px 8px -4px; -} -@media screen and (min-width: 725px) { - .analytics kpis-bar > .kpis .content { - padding: 0 60px; - } -} -@media screen and (max-width: 675px) { - .analytics kpis-bar > .kpis .content { - margin-top: 25px; - } -} -.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: 0px 1px 3px -1px; +.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 kpis-bar > .kpis .content .title .no-kpi-templates { - color: #afadb5; - font-weight: 500; +.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 { + transition: background 0.1s ease-in; + background: #2583d3; } -.analytics kpis-bar > .kpis .content .add-bar { - border-bottom: dashed 1px; +.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 kpis-bar > .kpis .content .kpi-loader { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: center; - justify-content: center; - min-height: 115px; +.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 { + transition: background 0.1s ease-in; + background: #ca1c68; } -.analytics kpis-bar > .kpis .content .dates-picker-container { - width: 40%; - margin: 0 auto; +.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 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 .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover { + backgroud: #358fdc; } -.analytics kpis-bar { - display: block; +.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 kpis-bar > .key-stats { - background-color: white; - padding: 5px 0px; +.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn:hover { + background: #ca1c68; } -.analytics.pdf-mode kpis-bar > .kpis .actions { - display: none; +.analytics .impac-kpi .kpi .kpi-data-loader { + width: 100%; + min-height: 95px; +} +.analytics kpis-bar > .key-stats .kpi { + min-height: 80px; } .widget-item { transition: width 0.3s; @@ -9369,31 +9369,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-list .table-container .listing { - outline-style: none; -} #trends-add { text-align: center; font-size: 13px; @@ -9473,6 +9448,31 @@ dashboard-templates-selector .templates .template.selected { width: 74%; display: inline-block; } +#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-list .table-container .listing { + outline-style: none; +} .analytics .dashboard-settings.currency { text-align: right; } @@ -9783,48 +9783,6 @@ chart-threshold .attach-panel .actions button.loading { background-color: black; color: white; } -.analytics .widget-item .editable-title { - width: 100%; - -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: 0px 3px; -} -.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons { - background-color: white; -} -.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button { - margin: 0px 0px 0px 5px; - height: 20px; - padding: 0px 5px; -} .analytics .widget-item .info-panel { position: absolute; top: 15px; @@ -9893,6 +9851,53 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .info-panel .i-content .row .value { text-align: justify; } +.analytics .widget-item .editable-title { + width: 100%; + -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: 0px 3px; +} +.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons { + background-color: white; +} +.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button { + margin: 0px 0px 0px 5px; + height: 20px; + padding: 0px 5px; +} +.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; @@ -9945,11 +9950,6 @@ 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 .time-period-info { - font-size: 11px; - color: #ABC4C6; - text-transform: uppercase; -} .analytics .widget-item .content.accounts-assets-liability-summary .param-selector { text-align: center; } @@ -10092,13 +10092,6 @@ chart-threshold .attach-panel .actions button.loading { 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; -} .analytics .widget-item .content.accounts-comparison { min-height: 565px; } @@ -10178,6 +10171,13 @@ chart-threshold .attach-panel .actions button.loading { margin-left: 13px; color: #ed1e79; } +.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; +} .analytics .widget-item .content.accounts-custom-calculation h3 { margin-top: 85px; text-align: center; @@ -10328,21 +10328,37 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .content.accounts-live-balance .spacer { min-height: 30px; } -.analytics .widget-item .content.accounts-live-balance .price { +.analytics .widget-item .content.accounts-live-balance .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; +} +.analytics .widget-item .content.accounts-live-balance .come-back-later { + text-align: center; + font-size: 11px; + opacity: 0.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: 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-live-balance .come-back-later { - text-align: center; - font-size: 11px; - opacity: 0.8; -} -.analytics .widget-item .content.accounts-live-balance .negative2 { - font-size: 14px; -} .analytics .widget-item .content.accounts-profit-and-loss { min-height: 565px; } @@ -10408,22 +10424,6 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header > [class*='col-'] { position: static; } -.analytics .widget-item .content.accounts-payable-receivable h3 { - text-align: center; -} -.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-ratios .left-panel { max-height: 230px; overflow-y: auto; @@ -10744,6 +10744,12 @@ chart-threshold .attach-panel .actions button.loading { float: right; margin-left: 3px; } +.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.invoices-list .widget-lines-container { max-height: 230px; } @@ -10769,11 +10775,61 @@ chart-threshold .attach-panel .actions button.loading { padding-left: 0px; padding-right: 0px; } -.analytics .widget-item .content.invoices-summary .chart-container { - max-width: 410px; +.analytics .widget-item .content.sales-aged { + min-height: 565px; } -.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 .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; +} +.analytics .widget-item .content.sales-aged .widget-lines-container { + max-height: 238px; +} +.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: 0px; + 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-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-break-even .price { font-weight: 900; @@ -10887,68 +10943,6 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .content.sales-comparison .currency-conversions img { margin-top: -2px; } -.analytics .widget-item .content.sales-aged { - min-height: 565px; -} -@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 .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; -} -.analytics .widget-item .content.sales-aged .widget-lines-container { - max-height: 238px; -} -.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: 0px; - 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-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; -} .analytics .widget-item .content.sales-forecast { min-height: 565px; } @@ -11006,6 +11000,12 @@ chart-threshold .attach-panel .actions button.loading { text-overflow: ellipsis; white-space: nowrap; } +.analytics .widget-item .content.sales-cycle .chart-container { + max-width: 410px; +} +.analytics .widget-item .content.sales-cycle .legend { + max-height: 28px; +} .analytics .widget-item .content.sales-leads-funnel { min-height: 565px; } @@ -11155,41 +11155,6 @@ chart-threshold .attach-panel .actions button.loading { font-weight: 300; margin-top: 2px; } -.analytics .widget-item .content.sales-opportunities-funnel { - min-height: 565px; -} -@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: auto; - margin-top: 15px; - 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; -} -.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { - cursor: default; -} .analytics .widget-item .content.sales-performance { min-height: 565px; } @@ -11269,6 +11234,41 @@ chart-threshold .attach-panel .actions button.loading { .analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover { color: #626d6d; } +.analytics .widget-item .content.sales-opportunities-funnel { + min-height: 565px; +} +@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: auto; + margin-top: 15px; + 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; +} +.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { + cursor: default; +} .analytics .widget-item .content.sales-segmented-turnover h3.right { margin-top: 55px; text-align: center; @@ -11731,46 +11731,46 @@ chart-threshold .attach-panel .actions button.loading { background-color: #c2c4c4; color: white; } -.analytics .settings.source-selector .widget-lines-container .widget-line { +.analytics .settings.payroll .widget-lines-container .widget-line { padding: 5px 10px 5px 18px; } -.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(even) { +.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(even) { background-color: #f3f4f4; } -.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(odd) { +.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(odd) { background-color: white; } -.analytics .settings.source-selector .widget-lines-container .widget-line .fa { +.analytics .settings.payroll .widget-lines-container .widget-line .fa { float: right; font-size: 20px; cursor: pointer; } -.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-on, -.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-check-circle { +.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-on { color: #977bf0; } -.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-off, -.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-circle-thin { +.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-off { color: #9ba6a7; } -.analytics .settings.payroll .widget-lines-container .widget-line { +.analytics .settings.source-selector .widget-lines-container .widget-line { padding: 5px 10px 5px 18px; } -.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(even) { +.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(even) { background-color: #f3f4f4; } -.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(odd) { +.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(odd) { background-color: white; } -.analytics .settings.payroll .widget-lines-container .widget-line .fa { +.analytics .settings.source-selector .widget-lines-container .widget-line .fa { float: right; font-size: 20px; cursor: pointer; } -.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-on { +.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-on, +.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-check-circle { color: #977bf0; } -.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-off { +.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-off, +.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-circle-thin { color: #9ba6a7; } .analytics .settings.tag-filter { @@ -11979,4 +11979,4 @@ chart-threshold .attach-panel .actions button.loading { } /* endinject */ -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLWNyZWF0ZS9kYXNoYm9hcmQtY3JlYXRlLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZWxlY3Rvci9kYXNoYm9hcmQtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3Rvci9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yLmxlc3MiLCJjb21wb25lbnRzL2twaS9rcGkubGVzcyIsInN0eWxlc2hlZXRzL2ltcGFjLW1hdGVyaWFsLmxlc3MiLCJjb21wb25lbnRzL2twaXMtYmFyL2twaXMtYmFyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldC93aWRnZXQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RhdGEtbm90LWZvdW5kL2RhdGEtbm90LWZvdW5kLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi9kdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QvZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtYWRkL3RyYW5zYWN0aW9ucy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyYW5zYWN0aW9ucy1saXN0L3RyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmVuZHMtbGlzdC90cmVuZHMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vdHJlbmRzLWFkZC90cmVuZHMtYWRkLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZXR0aW5ncy9jdXJyZW5jeS9jdXJyZW5jeS5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3Mvc3luYy1hcHBzL3N5bmMtYXBwcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWxheW91dHMvdGFibGUvdGFibGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY2hhcnQtdGhyZXNob2xkL2NoYXJ0LXRocmVzaG9sZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jb25maXJtLW1vZGFsL2NvbmZpcm0tbW9kYWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY3VycmVuY3ktY29udmVyc2lvbnMvY3VycmVuY3ktY29udmVyc2lvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vZWRpdGFibGUtdGl0bGUvZWRpdGFibGUtdGl0bGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vaW5mby1wYW5lbC9pbmZvLXBhbmVsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RvcC1idXR0b25zL3RvcC1idXR0b25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RpbWUtcGVyaW9kLWluZm8vdGltZS1wZXJpb2QtaW5mby5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeS9hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtc3VtbWFyeS9hY2NvdW50cy1hc3NldHMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcy9hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1iYWxhbmNlL2FjY291bnRzLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1iYWxhbmNlLXNoZWV0L2FjY291bnRzLWJhbGFuY2Utc2hlZXQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXN1bW1hcnkvYWNjb3VudHMtY2FzaC1zdW1tYXJ5Lmxlc3MiLCJzdHlsZXNoZWV0cy93aWRnZXQtbWFzdGVyLXN0eWxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24vYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNvbXBhcmlzb24vYWNjb3VudHMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlL2FjY291bnRzLWV4cGVuc2VzLXJldmVudWUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1saXZlLWJhbGFuY2UvYWNjb3VudHMtbGl2ZS1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzL2FjY291bnRzLXByb2ZpdC1hbmQtbG9zcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZS9hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1yYXRpb3MvYWNjb3VudHMtcmF0aW9zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWUtZGV0YWlscy9oci1lbXBsb3llZS1kZXRhaWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWVzLWxpc3QvaHItZW1wbG95ZWVzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1sZWF2ZXMtYmFsYW5jZS9oci1sZWF2ZXMtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWxlYXZlcy1zY2hlZHVsZS9oci1sZWF2ZXMtc2NoZWR1bGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1wYXlyb2xsLXN1bW1hcnkvaHItcGF5cm9sbC1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc2FsYXJpZXMtc3VtbWFyeS9oci1zYWxhcmllcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci13b3JrZm9yY2Utc3VtbWFyeS9oci13b3JrZm9yY2Utc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXRpbWVzaGVldHMvaHItdGltZXNoZWV0cy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMvaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLWxpc3QvaW52b2ljZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLXN1bW1hcnkvaW52b2ljZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWJyZWFrLWV2ZW4vc2FsZXMtYnJlYWstZXZlbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWNvbXBhcmlzb24vc2FsZXMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWFnZWQvc2FsZXMtYWdlZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN1c3RvbWVyLWRldGFpbHMvc2FsZXMtY3VzdG9tZXItZGV0YWlscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN5Y2xlL3NhbGVzLWN5Y2xlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtZm9yZWNhc3Qvc2FsZXMtZm9yZWNhc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1ncm93dGgvc2FsZXMtZ3Jvd3RoLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbGVhZHMtZnVubmVsL3NhbGVzLWxlYWRzLWZ1bm5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxlYWRzLWxpc3Qvc2FsZXMtbGVhZHMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxpc3Qvc2FsZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW5ldC1zYWxlcy9zYWxlcy1uZXQtc2FsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzL3NhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1udW1iZXItb2YtbGVhZHMvc2FsZXMtbnVtYmVyLW9mLWxlYWRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwvc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1wZXJmb3JtYW5jZS9zYWxlcy1wZXJmb3JtYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXNlZ21lbnRlZC10dXJub3Zlci9zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1zdW1tYXJ5L3NhbGVzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3AtY3VzdG9tZXJzL3NhbGVzLXRvcC1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2FjY291bnQvYWNjb3VudC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2FjY291bnRpbmctYmVoYXZpb3VyL2FjY291bnRpbmctYmVoYXZpb3VyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYXR0YWNoLWtwaXMvYXR0YWNoLWtwaXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9ib2x0LWFjY291bnQvYm9sdC1hY2NvdW50Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvY2hhcnQtZmlsdGVycy9jaGFydC1maWx0ZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvZGF0ZXMtcGlja2VyL2RhdGVzLXBpY2tlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2hpc3QtbW9kZS9oaXN0LW1vZGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9saW1pdC1lbnRyaWVzL2xpbWl0LWVudHJpZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9vZmZzZXRzL29mZnNldHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9vcmdhbml6YXRpb25zL29yZ2FuaXphdGlvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbS1zZWxlY3Rvci9wYXJhbS1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtcy1jaGVja2JveGVzL3BhcmFtcy1jaGVja2JveGVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW1zLXBpY2tlci9wYXJhbXMtcGlja2VyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvc291cmNlLXNlbGVjdG9yL3NvdXJjZS1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BheXJvbGwvcGF5cm9sbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RhZy1maWx0ZXIvdGFnLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RpbWUtcGVyaW9kL3RpbWUtcGVyaW9kLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvd2lkdGgvd2lkdGgubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1sYXlvdXRzL2N1c3RvbS9hY2NvdW50cy1jYXNoLWJhbGFuY2UvYWNjb3VudHMtY2FzaC1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtbGF5b3V0cy9jdXN0b20vYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uL2FjY291bnRzLWNhc2gtcHJvamVjdGlvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWxheW91dHMvY3VzdG9tL2FjY291bnRzLWludm9pY2VzLWxpc3QvYWNjb3VudHMtaW52b2ljZXMtbGlzdC5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0Y7OztHQUdHO0FBQ0g7Ozs7R0FJRztBQUNILDRFQUE0RTtBQ0o1RTtFQUNFLHdCQUFBO0VBQ0EsMkJBQUE7RUFDQSwrQkFBQTtDRE1EO0FDQ0Q7RUFDRSxVQUFBO0NEQ0Q7QUNZRDs7Ozs7Ozs7Ozs7OztFQWFFLGVBQUE7Q0RWRDtBQ2tCRDs7OztFQUlFLHNCQUFBO0VBQ0EseUJBQUE7Q0RoQkQ7QUN3QkQ7RUFDRSxjQUFBO0VBQ0EsVUFBQTtDRHRCRDtBQzhCRDs7RUFFRSxjQUFBO0NE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QUVqT21DO0VBQVcsaUJBQUE7Q0ZvTzlDO0FFbk9tQztFQUFXLGlCQUFBO0NGc085QztBRXJPbUM7RUFBVyxpQkFBQTtDRndPOUM7QUV2T21DO0VBQVcsaUJBQUE7Q0YwTzlDO0FFek9tQztFQUFXLGlCQUFBO0NGNE85QztBRTNPbUM7RUFBVyxpQkFBQTtDRjhPOUM7QUU3T21DO0VBQVcsaUJBQUE7Q0ZnUDlDO0FFL09tQztFQUFXLGlCQUFBO0NGa1A5QztBRWpQbUM7RUFBVyxpQkFBQTtDRm9QOUM7QUVuUG1DO0VBQVcsaUJBQUE7Q0ZzUDlDO0FFclBtQztFQUFXLGlCQUFBO0NGd1A5QztBRXZQbUM7RUFBVyxpQkFBQTtDRjBQOUM7QUV6UG1DO0VBQVcsaUJBQUE7Q0Y0UDlDO0FFM1BtQztFQUFXLGlCQUFBO0NGOFA5QztBRTdQbUM7RUFBVyxpQkFBQTtDRmdROUM7QUUvUG1DO0VBQVcsaUJBQUE7Q0ZrUTlDO0FFalFtQztFQUFXLGlCQUFBO0NGb1E5QztBRW5RbUM7RUFBVyxpQkFBQTtDRnNROUM7QUVyUW1DO0VBQVcsaUJBQUE7Q0Z3UTlDO0FFdlFtQztFQUFXLGlCQUFBO0NGMFE5QztBRXpRbUM7RUFBVyxpQkFBQTtDRjRROUM7QUUzUW1DO0VBQVcsaUJBQUE7Q0Y4UTlDO0FFN1FtQztFQUFXLGlCQUFBO0NGZ1I5QztBRS9RbUM7RUFBVyxpQkFBQTtDRmtSOUM7QUVqUm1DO0VBQVcsaUJBQUE7Q0ZvUjlDO0FFblJtQztFQUFXLGlCQUFBO0NGc1I5QztBRXJSbUM7RUFBVyxpQkFBQTtDRndSOUM7QUV2Um1DO0VBQVcsaUJBQUE7Q0YwUjlDO0FFelJtQztFQUFXLGlCQUFBO0NGNFI5QztBRTNSbUM7RUFBVyxpQkFBQTtDRjhSOUM7QUU3Um1DO0VBQVcsaUJBQUE7Q0ZnUzlDO0FFL1JtQztFQUFXLGlCQUFBO0NGa1M5QztBRWpTbUM7RUFBVyxpQkFBQTtDRm9TOUM7QUVuU21DO0VBQVcsaUJBQUE7Q0ZzUzlDO0FFclNtQztFQUFXLGlCQUFBO0NGd1M5QztBRXZTbUM7RUFBVyxpQkFBQTtDRjBTOUM7QUV6U21DO0VBQVcsaUJBQUE7Q0Y0UzlDO0FFM1NtQztFQUFXLGlCQUFBO0NGOFM5QztBRTdTbUM7RUFBVyxpQkFBQTtDRmdUOUM7QUUvU21DO0VBQVcsaUJBQUE7Q0ZrVDlDO0FFalRtQztFQUFXLGlCQUFBO0NGb1Q5QztBRW5UbUM7RUFBVyxpQkFBQTtDRnNUOUM7QUVyVG1DO0VBQVcsaUJBQUE7Q0Z3VDlDO0FFdlRtQztFQUFXLGlCQUFBO0NGMFQ5QztBRXpUbUM7RUFBVyxpQkFBQTtDRjRUOUM7QUUzVG1DO0VBQVcsaUJBQUE7Q0Y4VDlDO0FFN1RtQztFQUFXLGlCQUFBO0NGZ1U5QztBRS9UbUM7RUFBVyxpQkFBQTtDRmtVOUM7QUVqVW1DO0VBQVcsaUJBQUE7Q0ZvVTlDO0FFblVtQztFQUFXLGlCQUFBO0NGc1U5QztBRXJVbUM7RUFBVyxpQkFBQTtDRndVOUM7QUV2VW1DO0VBQVcsaUJBQUE7Q0YwVTlDO0FFelVtQztFQUFXLGlCQUFBO0NGNFU5QztBRTNVbUM7RUFBVyxpQkFBQTtDRjhVOUM7QUU3VW1DO0VBQVcsaUJBQUE7Q0ZnVjlDO0FFL1VtQztFQUFXLGlCQUFBO0NGa1Y5QztBRWpWbUM7RUFBVyxpQkFBQTtDRm9WOUM7QUVuVm1DO0VBQVcsaUJBQUE7Q0ZzVjlDO0FFclZtQztFQUFXLGlCQUFBO0NGd1Y5QztBRXZWbUM7RUFBVyxpQkFBQTtDRjBWOUM7QUV6Vm1DO0VBQVcsaUJBQUE7Q0Y0VjlDO0FFM1ZtQztFQUFXLGlCQUFBO0NGOFY5QztBRTdWbUM7RUFBVyxpQkFBQTtDRmdXOUM7QUUvVm1DO0VBQVcsaUJBQUE7Q0ZrVzlDO0FFaldtQztFQUFXLGlCQUFBO0NGb1c5QztBRW5XbUM7RUFBVyxpQkFBQTtDRnNXOUM7QUVyV21DO0VBQVcsaUJBQUE7Q0Z3VzlDO0FFdldtQztFQUFXLGlCQUFBO0NGMFc5QztBRXpXbUM7RUFBVyxpQkFBQTtDRjRXOUM7QUUzV21DO0VBQVcsaUJBQUE7Q0Y4VzlDO0FFN1dtQztFQUFXLGlCQUFBO0NGZ1g5QztBRS9XbUM7RUFBVyxpQkFBQTtDRmtYOUM7QUVqWG1DO0VBQVcsaUJBQUE7Q0ZvWDlDO0FFblhtQztFQUFXLGlCQUFBO0NGc1g5QztBRXJYbUM7RUFBVyxpQkFBQTtDRndYOUM7QUV2WG1DO0VBQVcsaUJBQUE7Q0YwWDlDO0FFelhtQztFQUFXLGlCQUFBO0NGNFg5QztBRTNYbUM7RUFBVyxpQkFBQTtDRjhYOUM7QUU3WG1DO0VBQVcsaUJBQUE7Q0ZnWTlDO0FFL1htQztFQUFXLGlCQUFBO0NGa1k5QztBRWpZbUM7RUFBVyxpQkFBQTtDRm9ZOUM7QUVuWW1DO0VBQVcsaUJBQUE7Q0ZzWTlDO0FFclltQztFQUFXLGlCQUFBO0NGd1k5QztBRXZZbUM7RUFBVyxpQkFBQTtDRjBZOUM7QUV6WW1DO0VBQVcsaUJBQUE7Q0Y0WTlDO0FFM1ltQztFQUFXLGlCQUFBO0NGOFk5QztBRTdZbUM7RUFBVyxpQkFBQTtDRmdaOUM7QUUvWW1DO0VBQVcsaUJBQUE7Q0ZrWjlDO0FFalptQztFQUFXLGlCQUFBO0NGb1o5QztBRW5abUM7RUFBVyxpQkFBQTtDRnNaOUM7QUVyWm1DO0VBQVcsaUJBQUE7Q0Z3WjlDO0FFdlptQztFQUFXLGlCQUFBO0NGMFo5QztBRXpabUM7RUFBVyxpQkFBQTtDRjRaOUM7QUUzWm1DO0VBQVcsaUJBQUE7Q0Y4WjlDO0FFN1ptQztFQUFXLGlCQUFBO0NGZ2E5QztBRS9abUM7RUFBVyxpQkFBQTtDRmthOUM7QUVqYW1DO0VBQVcsaUJBQUE7Q0ZvYTlDO0FFbmFtQztFQUFXLGlCQUFBO0NGc2E5QztBRXJhbUM7RUFBVyxpQkFBQTtDRndhOUM7QUV2YW1DO0VBQVcsaUJBQUE7Q0YwYTlDO0FFemFtQztFQUFXLGlCQUFBO0NGNGE5QztBRTNhbUM7RUFBVyxpQkFBQTtDRjhhOUM7QUU3YW1DO0VBQVcsaUJBQUE7Q0ZnYjlDO0FFL2FtQztFQUFXLGlCQUFBO0NGa2I5QztBRWpibUM7RUFBVyxpQkFBQTtDRm9iOUM7QUVuYm1DO0VBQVcsaUJBQUE7Q0ZzYjlDO0FFcmJtQztFQUFXLGlCQUFBO0NGd2I5QztBRXZibUM7RUFBVyxpQkFBQTtDRjBiOUM7QUV6Ym1DO0VBQVcsaUJBQUE7Q0Y0YjlDO0FFM2JtQztFQUFXLGlCQUFBO0NGOGI5QztBRTdibUM7RUFBVyxpQkFBQTtDRmdjOUM7QUUvYm1DO0VBQVcsaUJBQUE7Q0ZrYzlDO0FFamNtQztFQUFXLGlCQUFBO0NGb2M5QztBRW5jbUM7RUFBVyxpQkFBQTtDRnNjOUM7QUVyY21DO0VBQVcsaUJBQUE7Q0Z3YzlDO0FFdmNtQztFQUFXLGlCQUFBO0NGMGM5QztBRXpjbUM7RUFBVyxpQkFBQTtDRjRjOUM7QUUzY21DO0VBQVcsaUJBQUE7Q0Y4YzlDO0FFN2NtQztFQUFXLGlCQUFBO0NGZ2Q5QztBRS9jbUM7RUFBVyxpQkFBQTtDRmtkOUM7QUVqZG1DO0VBQVcsaUJBQUE7Q0ZvZDlDO0FFbmRtQztFQUFXLGlCQUFBO0NGc2Q5QztBRXJkbUM7RUFBVyxpQkFBQTtDRndkOUM7QUV2ZG1DO0VBQVcsaUJBQUE7Q0YwZDlDO0FFemRtQztFQUFXLGlCQUFBO0NGNGQ5QztBRTNkbUM7RUFBVyxpQkFBQTtDRjhkOUM7QUU3ZG1DO0VBQVcsaUJBQUE7Q0ZnZTlDO0FFL2RtQztFQUFXLGlCQUFBO0NGa2U5QztBRWplbUM7RUFBVyxpQkFBQTtDRm9lOUM7QUVuZW1DO0VBQVcsaUJBQUE7Q0ZzZTlDO0FFcmVtQztFQUFXLGlCQUFBO0NGd2U5QztBRXZlbUM7RUFBVyxpQkFBQTtDRjBlOUM7QUV6ZW1DO0VBQVcsaUJBQUE7Q0Y0ZTlDO0FFM2VtQztFQUFXLGlCQUFBO0NGOGU5QztBRTdlbUM7RUFBVyxpQkFBQTtDRmdmOUM7QUUvZW1DO0VBQVcsaUJBQUE7Q0ZrZjlDO0FFamZtQztFQUFXLGlCQUFBO0NGb2Y5QztBRW5mbUM7RUFBVyxpQkFBQTtDRnNmOUM7QUVyZm1DO0VBQVcsaUJBQUE7Q0Z3ZjlDO0FFdmZtQztFQUFXLGlCQUFBO0NGMGY5QztBRXpmbUM7RUFBVyxpQkFBQTtDRjRmOUM7QUUzZm1DO0VBQVcsaUJBQUE7Q0Y4ZjlDO0FFN2ZtQztFQUFXLGlCQUFBO0NGZ2dCOUM7QUUvZm1DO0VBQVcsaUJBQUE7Q0ZrZ0I5QztBRWpnQm1DO0VBQVcsaUJBQUE7Q0ZvZ0I5QztBRW5nQm1DO0VBQVcsaUJBQUE7Q0ZzZ0I5QztBRXJnQm1DO0VBQVcsaUJBQUE7Q0Z3Z0I5QztBRXZnQm1DO0VBQVcsaUJBQUE7Q0YwZ0I5QztBRXpnQm1DO0VBQVcsaUJBQUE7Q0Y0Z0I5QztBRTNnQm1DO0VBQVcsaUJBQUE7Q0Y4Z0I5QztBRTdnQm1DO0VBQVcsaUJBQUE7Q0ZnaEI5QztBRS9nQm1DO0VBQVcsaUJBQUE7Q0ZraEI5QztBRWpoQm1DO0VBQVcsaUJBQUE7Q0ZvaEI5QztBRW5oQm1DO0VBQVcsaUJBQUE7Q0ZzaEI5QztBRXJoQm1DO0VBQVcsaUJBQUE7Q0Z3aEI5QztBRXZoQm1DO0VBQVcsaUJBQUE7Q0YwaEI5QztBRXpoQm1DO0VBQVcsaUJBQUE7Q0Y0aEI5QztBRTNoQm1DO0VBQVcsaUJBQUE7Q0Y4aEI5QztBRTdoQm1DO0VBQVcsaUJBQUE7Q0ZnaUI5QztBRS9oQm1DO0VBQVcsaUJBQUE7Q0ZraUI5QztBRWppQm1DO0VBQVcsaUJBQUE7Q0ZvaUI5QztBRW5pQm1DO0VBQVcsaUJBQUE7Q0ZzaUI5QztBRXJpQm1DO0VBQVcsaUJBQUE7Q0Z3aUI5QztBRXZpQm1DO0VBQVcsaUJBQUE7Q0YwaUI5QztBRXppQm1DO0VBQVcsaUJBQUE7Q0Y0aUI5QztBRTNpQm1DO0VBQVcsaUJBQUE7Q0Y4aUI5QztBRTdpQm1DO0VBQVcsaUJBQUE7Q0ZnakI5QztBRS9pQm1DO0VBQVcsaUJBQUE7Q0ZrakI5QztBRWpqQm1DO0VBQVcsaUJBQUE7Q0ZvakI5QztBRW5qQm1DO0VBQVcsaUJBQUE7Q0ZzakI5QztBRXJqQm1DO0VBQVcsaUJBQUE7Q0Z3akI5QztBRXZqQm1DO0VBQVcsaUJBQUE7Q0YwakI5QztBRXpqQm1DO0VBQVcsaUJBQUE7Q0Y0akI5QztBRTNqQm1DO0VBQVcsaUJBQUE7Q0Y4akI5QztBRTdqQm1DO0VBQVcsaUJBQUE7Q0Zna0I5QztBRS9qQm1DO0VBQVcsaUJBQUE7Q0Zra0I5QztBRWprQm1DO0VBQVcsaUJBQUE7Q0Zva0I5QztBRW5rQm1DO0VBQVcsaUJBQUE7Q0Zza0I5QztBRXJrQm1DO0VBQVcsaUJBQUE7Q0Z3a0I5QztBRS9qQm1DO0VBQVcsaUJBQUE7Q0Zra0I5QztBRWprQm1DO0VBQVcsaUJBQUE7Q0Zva0I5QztBRW5rQm1DO0VBQVcsaUJBQUE7Q0Zza0I5QztBRXJrQm1DO0VBQVcsaUJBQUE7Q0Z3a0I5QztBRXZrQm1DO0VBQVcsaUJBQUE7Q0Ywa0I5QztBRXprQm1DO0VBQVcsaUJBQUE7Q0Y0a0I5QztBRTNrQm1DO0VBQVcsaUJBQUE7Q0Y4a0I5QztBRTdrQm1DO0VBQVcsaUJBQUE7Q0ZnbEI5QztBRS9rQm1DO0VBQVcsaUJBQUE7Q0ZrbEI5QztBRWpsQm1DO0VBQVcsaUJBQUE7Q0ZvbEI5QztBRW5sQm1DO0VBQVcsaUJBQUE7Q0ZzbEI5QztBRXJsQm1DO0VBQVcsaUJBQUE7Q0Z3bEI5QztBRXZsQm1DO0VBQVcsaUJBQUE7Q0YwbEI5QztBRXpsQm1DO0VBQVcsaUJBQUE7Q0Y0bEI5QztBRTNsQm1DO0VBQVcsaUJBQUE7Q0Y4bEI5QztBRTdsQm1DO0VBQVcsaUJBQUE7Q0ZnbUI5QztBRS9sQm1DO0VBQVcsaUJBQUE7Q0ZrbUI5QztBRWptQm1DO0VBQVcsaUJBQUE7Q0ZvbUI5QztBRW5tQm1DO0VBQVcsaUJBQUE7Q0ZzbUI5QztBRXJtQm1DO0VBQVcsaUJBQUE7Q0Z3bUI5QztBRXZtQm1DO0VBQVcsaUJBQUE7Q0YwbUI5QztBRXptQm1DO0VBQVcsaUJBQUE7Q0Y0bUI5QztBRTNtQm1DO0VBQVcsaUJBQUE7Q0Y4bUI5QztBRTdtQm1DO0VBQVcsaUJBQUE7Q0ZnbkI5QztBRS9tQm1DO0VBQVcsaUJBQUE7Q0ZrbkI5QztBRWpuQm1DO0VBQVcsaUJBQUE7Q0ZvbkI5QztBRW5uQm1DO0VBQVcsaUJBQUE7Q0ZzbkI5QztBRXJuQm1DO0VBQVcsaUJBQUE7Q0Z3bkI5QztBRXZuQm1DO0VBQVcsaUJBQUE7Q0YwbkI5QztBRXpuQm1DO0VBQVcsaUJBQUE7Q0Y0bkI5QztBRTNuQm1DO0VBQVcsaUJBQUE7Q0Y4bkI5QztBRTduQm1DO0VBQVcsaUJB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UDBuQ1Q7QU96bkNEOztFQUFVLGdCQUFBO0NQNm5DVDtBTzVuQ0Q7O0VBQVUsZ0JBQUE7Q1Bnb0NUO0FPL25DRDs7RUFBVSxnQkFBQTtDUG1vQ1Q7QU9sb0NEOztFQUFVLGdCQUFBO0NQc29DVDtBT3JvQ0Q7O0VBQVUsZ0JBQUE7Q1B5b0NUO0FPbm9DRDtFQUNFLGlCQUFBO0NQcW9DRDtBT2xvQ0Q7RUFDRSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtDUG9vQ0Q7QU9sb0NDO0VBMk9GO0lBMU9JLGdCQUFBO0dQcW9DRDtDQUNGO0FPN25DRDs7RUFFRSxlQUFBO0NQK25DRDtBTzVuQ0Q7O0VBRUUsMEJBQUE7RUFDQSxjQUFBO0NQOG5DRDtBTzFuQ0Q7RUFBdUIsaUJBQUE7Q1A2bkN0QjtBTzVuQ0Q7RUFBdUIsa0JBQUE7Q1ArbkN0QjtBTzluQ0Q7RUFBdUIsbUJBQUE7Q1Bpb0N0QjtBT2hvQ0Q7RUFBdUIsb0JBQUE7Q1Btb0N0QjtBT2xvQ0Q7RUFBdUIsb0JBQUE7Q1Bxb0N0QjtBT2xvQ0Q7RUFBdUIsMEJBQUE7Q1Bxb0N0QjtBT3BvQ0Q7RUFBdUIsMEJBQUE7Q1B1b0N0QjtBT3RvQ0Q7RUFBdUIsMkJBQUE7Q1B5b0N0QjtBT3RvQ0Q7RUFDRSxlQUFBO0NQd29DRDtBT3RvQ0Q7RUNyR0UsZUFBQTtDUjh1Q0Q7QVE3dUNDOztFQUVFLGVBQUE7Q1IrdUNIO0FPMW9DRDtFQ3hHRSxlQUFBO0NScXZDRDtBUXB2Q0M7O0VBRUUsZUFBQTtDUnN2Q0g7QU85b0NEO0VDM0dFLGVBQUE7Q1I0dkNEO0FRM3ZDQzs7RUFFRSxlQUFBO0NSNnZDSDtBT2xwQ0Q7RUM5R0UsZUFBQTtDUm13Q0Q7QVFsd0NDOztFQUVFLGVBQUE7Q1Jvd0NIO0FPdHBDRDtFQ2pIRSxlQUFBO0NSMHdDRDtBUXp3Q0M7O0VBRUUsZUFBQTtDUjJ3Q0g7QU90cENEO0VBR0UsWUFBQTtFRTNIQSwwQkFBQTtDVGt4Q0Q7QVNqeENDOztFQUVFLDBCQUFBO0NUbXhDSDtBT3hwQ0Q7RUU5SEUsMEJBQUE7Q1R5eENEO0FTeHhD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Q2R3akRIO0FjempEQztFQUNFLG1CQUFBO0NkMmpESDtBYzVqREM7RUFDRSxVQUFBO0NkOGpESDtBYy9qREM7RUFDRSxtQkFBQTtDZGlrREg7QWNsa0RDO0VBQ0Usa0JBQUE7Q2Rva0RIO0FjaGtEQztFQUNFLFdBQUE7Q2Rra0RIO0FjcGpEQztFQUNFLGtCQUFBO0Nkc2pESDtBY3ZqREM7RUFDRSwwQkFBQTtDZHlqREg7QWMxakRDO0VBQ0UsMEJBQUE7Q2Q0akRIO0FjN2pEQztFQUNFLGlCQUFBO0NkK2pESDtBY2hrREM7RUFDRSwwQkFBQTtDZGtrREg7QWNua0RDO0VBQ0UsMEJBQUE7Q2Rxa0RIO0FjdGtEQztFQUNFLGlCQUFBO0Nkd2tESDtBY3prREM7RUFDRSwwQkFBQTtDZDJrREg7QWM1a0RDO0VBQ0UsMEJBQUE7Q2Q4a0RIO0FjL2tEQztFQUNFLGlCQUFBO0NkaWxESDtBY2xsREM7RUFDRSwwQkFBQTtDZG9sREg7QWNybERDO0VBQ0UseUJBQUE7Q2R1bERIO0FjeGxEQztFQUNFLGdCQUFBO0NkMGxESDtBWW5tREQ7RUV6Qkk7SUFDRSxZQUFBO0dkK25ESDtFY3huREQ7SUFDRSxZQUFBO0dkMG5ERDtFYzNuREQ7SUFDRSxvQkFBQTtHZDZuREQ7RWM5bkREO0lBQ0Usb0JBQUE7R2Rnb0REO0Vjam9ERDtJQUNFLFdBQUE7R2Rtb0REO0VjcG9ERDtJQUNFLG9CQUFBO0dkc29ERDtFY3ZvREQ7SUFDRSxvQkFBQTtHZHlvREQ7RWMxb0REO0lBQ0UsV0FBQTtHZDRvREQ7RWM3b0REO0lBQ0Usb0JBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxXQUFBO0dkcXBERDtFY3RwREQ7SUFDRSxvQkFBQTtHZHdwREQ7RWN6cEREO0lBQ0UsbUJBQUE7R2QycEREO0VjN29ERDtJQUNFLFlBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxvQkFBQTtHZHFwREQ7RWN0cEREO0lBQ0UsV0FBQTtHZHdwREQ7RWN6cEREO0lBQ0Usb0JBQUE7R2QycEREO0VjNXBERDtJQUNFLG9CQUFBO0dkOHBERDtFYy9wREQ7SUFDRSxXQUFBO0dkaXFERDtFY2xxREQ7SUFDRSxvQkFBQTtHZG9xREQ7RWNycUREO0lBQ0Usb0JBQUE7R2R1cUREO0VjeHFERDtJQUNFLFdBQUE7R2QwcUREO0VjM3FERDtJQUNFLG9CQUFBO0dkNnFERDtFYzlxREQ7SUFDRSxtQkFBQTtHZGdyREQ7RWM1cUREO0lBQ0UsWUFBQTtHZDhxREQ7RWM5ckREO0lBQ0UsV0FBQTtHZGdzREQ7RWNqc0REO0lBQ0UsbUJBQUE7R2Rtc0REO0VjcHNERDtJQUNFLG1CQUFBO0dkc3NERDtFY3ZzREQ7SUFDRSxVQUFBO0dkeXNERDtFYzFzREQ7SUFDRSxtQkFBQTtHZDRzREQ7RWM3c0REO0lBQ0UsbUJBQUE7R2Qrc0REO0VjaHRERDtJQUNFLFVBQUE7R2RrdEREO0VjbnRERDtJQUNFLG1CQUFBO0dkcXRERDtFY3R0REQ7SUFDRSxtQkFBQTtHZHd0REQ7RWN6dEREO0lBQ0UsVUFBQTtHZDJ0REQ7RWM1dEREO0lBQ0UsbUJBQUE7R2Q4dEREO0VjL3RERDtJQUNFLGtCQUFBO0dkaXVERDtFYzd0REQ7SUFDRSxXQUFBO0dkK3RERDtFY2p0REQ7SUFDRSxrQkFBQTtHZG10REQ7RWNwdEREO0lBQ0UsMEJBQUE7R2RzdEREO0VjdnRERDtJQUNFLDBCQUFBO0dkeXRERDtFYzF0REQ7SUFDRSxpQkFBQTtHZDR0REQ7RWM3dEREO0lBQ0UsMEJBQUE7R2QrdEREO0VjaHVERDtJQUNFLDBCQUFBO0dka3VERDtFY251REQ7SUFDRSxpQkFBQTtHZHF1REQ7RWN0dUREO0lBQ0UsMEJBQUE7R2R3dUREO0VjenVERDtJQUNFLDBCQUFBO0dkMnVERDtFYzV1REQ7SUFDRSxpQkFBQTtHZDh1REQ7RWMvdUREO0lBQ0UsMEJBQUE7R2RpdkREO0VjbHZERDtJQUNFLHlCQUFBO0dkb3ZERDtFY3J2REQ7SUFDRSxnQkFBQTtHZHV2REQ7Q0FDRjtBWXh2REQ7RUVsQ0k7SUFDRSxZQUFBO0dkNnhESDtFY3R4REQ7SUFDRSxZQUFBO0dkd3hERDtFY3p4REQ7SUFDRSxvQkFBQTtHZDJ4REQ7RWM1eEREO0lBQ0Usb0JBQUE7R2Q4eEREO0VjL3hERDtJQUNFLFdBQUE7R2RpeUREO0VjbHlERDtJQUNFLG9CQUFBO0dkb3lERDtFY3J5REQ7SUFDRSxvQkFBQTtHZHV5REQ7RWN4eUREO0lBQ0UsV0FBQTtHZDB5REQ7RWMzeUREO0lBQ0Usb0JBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxXQUFBO0dkbXpERDtFY3B6REQ7SUFDRSxvQkFBQTtHZHN6REQ7RWN2ekREO0lBQ0UsbUJBQUE7R2R5ekREO0VjM3lERDtJQUNFLFlBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxvQkFBQTtHZG16REQ7RWNwekREO0lBQ0UsV0FBQTtHZHN6REQ7RWN2ekREO0lBQ0Usb0JBQUE7R2R5ekREO0VjMXpERDtJQUNFLG9CQUFBO0dkNHpERDtFYzd6REQ7SUFDRSxXQUFBO0dkK3pERDtFY2gwREQ7SUFDRSxvQkFBQTtHZGswREQ7RWNuMEREO0lBQ0Usb0JBQUE7R2RxMEREO0VjdDBERDtJQUNFLFdBQUE7R2R3MEREO0VjejBERDtJQUNFLG9CQUFBO0dkMjBERDtFYzUwREQ7SUFDRSxtQkFBQTtHZDgwREQ7RWMxMEREO0lBQ0UsWUFBQTtHZDQwREQ7RWM1MUREO0lBQ0UsV0FBQTtHZDgxREQ7RWMvMUREO0lBQ0UsbUJBQUE7R2RpMkREO0VjbDJERDtJQUNFLG1CQUFBO0dkbzJERDtFY3IyREQ7SUFDRSxVQUFBO0dkdTJERDtFY3gyREQ7SUFDRSxtQkFBQTtHZDAyREQ7RWMzMkREO0lBQ0UsbUJBQUE7R2Q2MkREO0VjOTJERDtJQUNFLFVBQUE7R2RnM0REO0VjajNERDtJQUNFLG1CQUFBO0dkbTNERDtFY3AzREQ7SUFDRSxtQkFBQTtHZHMzREQ7RWN2M0REO0lBQ0UsVUFBQTtHZHkzREQ7RWMxM0REO0lBQ0UsbUJBQUE7R2Q0M0REO0VjNzNERDtJQUNFLGtCQUFBO0dkKzNERDtFYzMzREQ7SUFDRSxXQUFBO0dkNjNERDtFYy8yREQ7SUFDRSxrQkFBQTtHZGkzREQ7RWNsM0REO0lBQ0UsMEJBQUE7R2RvM0REO0VjcjNERDtJQUNFLDBCQUFBO0dkdTNERDtFY3gzREQ7SUFDRSxpQkFBQTtHZDAzREQ7RWMzM0REO0lBQ0UsMEJBQUE7R2Q2M0REO0VjOTNERDtJQUNFLDBCQUFBO0dkZzRERDtFY2o0REQ7SUFDRSxpQkFBQTtHZG00REQ7RWNwNEREO0lBQ0UsMEJBQUE7R2RzNEREO0VjdjRERDtJQUNFLDBCQUFBO0dkeTRERDtFYzE0REQ7SUFDRSxpQkFBQTtHZDQ0REQ7RWM3NEREO0lBQ0UsMEJBQUE7R2QrNEREO0VjaDVERDtJQUNFLHlCQUFBO0dkazVERDtFY241REQ7SUFDRSxnQkFBQTtHZHE1REQ7Q0FDRjtBWTc0REQ7RUUzQ0k7SUFDRSxZQUFBO0dkMjdESDtFY3A3REQ7SUFDRSxZQUFBO0dkczdERDtFY3Y3REQ7SUFDRSxvQkFBQTtHZHk3REQ7RWMxN0REO0lBQ0Usb0JBQUE7R2Q0N0REO0VjNzdERDtJQUNFLFdBQUE7R2QrN0REO0VjaDhERDtJQUNFLG9CQUFBO0dkazhERDtFY244REQ7SUFDRSxvQkFBQTtHZHE4REQ7RWN0OEREO0lBQ0UsV0FBQTtHZHc4REQ7RWN6OEREO0lBQ0Usb0JBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxXQUFBO0dkaTlERDtFY2w5REQ7SUFDRSxvQkFBQTtHZG85REQ7RWNyOUREO0lBQ0UsbUJBQUE7R2R1OUREO0VjejhERDtJQUNFLFlBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxvQkFBQTtHZGk5REQ7RWNsOUREO0lBQ0UsV0FBQTtHZG85REQ7RWNyOUREO0lBQ0Usb0JBQUE7R2R1OUREO0VjeDlERDtJQUNFLG9CQUFBO0dkMDlERDtFYzM5REQ7SUFDRSxXQUFBO0dkNjlERDtFYzk5REQ7SUFDRSxvQkFBQTtHZGcrREQ7RWNqK0REO0lBQ0Usb0JBQUE7R2RtK0REO0VjcCtE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QTtHbkV1clhIO0NBQ0Y7QWtLM3RYRDtFL0ZrREksa0JBQUE7Q25FNHFYSDtBa0s5dFhEO0UvRjBERSxtQkFBQTtFQUNBLG1CQUFBO0NuRXVxWEQ7QWtLbHVYRDtFQU1JLGdCQUFBO0NsSyt0WEg7QUFDRCxlQUFlIiwiZmlsZSI6ImltcGFjLWFuZ3VsYXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbioqIEFsbCBAaW1wb3J0J3Mgc2hvdWxkIGxpdmUgaW4gdGhpcyBmaWxlIVxuKi9cbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhpcyBjb21tZW50cyBiZWxsb3cuIEl0J3MgdGhlIG1hcmtlcnMgdXNlZCBieSB3aXJlZGVwIHRvIGluamVjdFxuICogIGxlc3MgZGVwZW5kZW5jaWVzIHdoZW4gZGVmaW5lZCBpbiB0aGUgYm93ZXIuanNvbiBvZiB5b3VyIGRlcGVuZGVuY2llc1xuICovXG4vKiFcbiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbn1cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZyNnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xufVxuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuLmdseXBoaWNvbi1hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYVwiO1xufVxuLmdseXBoaWNvbi1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMDJiXCI7XG59XG4uZ2x5cGhpY29uLWV1cm86YmVmb3JlLFxuLmdseXBoaWNvbi1ldXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYWNcIjtcbn1cbi5nbHlwaGljb24tbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIyMTJcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2MDFcIjtcbn1cbi5nbHlwaGljb24tZW52ZWxvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI3MDlcIjtcbn1cbi5nbHlwaGljb24tcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzBmXCI7XG59XG4uZ2x5cGhpY29uLWdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAxXCI7XG59XG4uZ2x5cGhpY29uLW11c2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAyXCI7XG59XG4uZ2x5cGhpY29uLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwM1wiO1xufVxuLmdseXBoaWNvbi1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNVwiO1xufVxuLmdseXBoaWNvbi1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA2XCI7XG59XG4uZ2x5cGhpY29uLXN0YXItZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDdcIjtcbn1cbi5nbHlwaGljb24tdXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOFwiO1xufVxuLmdseXBoaWNvbi1maWxtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA5XCI7XG59XG4uZ2x5cGhpY29uLXRoLWxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEwXCI7XG59XG4uZ2x5cGhpY29uLXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDExXCI7XG59XG4uZ2x5cGhpY29uLXRoLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTJcIjtcbn1cbi5nbHlwaGljb24tb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTNcIjtcbn1cbi5nbHlwaGljb24tcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE0XCI7XG59XG4uZ2x5cGhpY29uLXpvb20taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTVcIjtcbn1cbi5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTZcIjtcbn1cbi5nbHlwaGljb24tb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE3XCI7XG59XG4uZ2x5cGhpY29uLXNpZ25hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxOFwiO1xufVxuLmdseXBoaWNvbi1jb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTlcIjtcbn1cbi5nbHlwaGljb24tdHJhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjBcIjtcbn1cbi5nbHlwaGljb24taG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMVwiO1xufVxuLmdseXBoaWNvbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIyXCI7XG59XG4uZ2x5cGhpY29uLXRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjNcIjtcbn1cbi5nbHlwaGljb24tcm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyNFwiO1xufVxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjVcIjtcbn1cbi5nbHlwaGljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjZcIjtcbn1cbi5nbHlwaGljb24tdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI3XCI7XG59XG4uZ2x5cGhpY29uLWluYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI4XCI7XG59XG4uZ2x5cGhpY29uLXBsYXktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI5XCI7XG59XG4uZ2x5cGhpY29uLXJlcGVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMFwiO1xufVxuLmdseXBoaWNvbi1yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMxXCI7XG59XG4uZ2x5cGhpY29uLWxpc3QtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMyXCI7XG59XG4uZ2x5cGhpY29uLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzNcIjtcbn1cbi5nbHlwaGljb24tZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNFwiO1xufVxuLmdseXBoaWNvbi1oZWFkcGhvbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM1XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzZcIjtcbn1cbi5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzdcIjtcbn1cbi5nbHlwaGljb24tdm9sdW1lLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM4XCI7XG59XG4uZ2x5cGhpY29uLXFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOVwiO1xufVxuLmdseXBoaWNvbi1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQwXCI7XG59XG4uZ2x5cGhpY29uLXRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MVwiO1xufVxuLmdseXBoaWNvbi10YWdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQyXCI7XG59XG4uZ2x5cGhpY29uLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDNcIjtcbn1cbi5nbHlwaGljb24tYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDRcIjtcbn1cbi5nbHlwaGljb24tcHJpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDVcIjtcbn1cbi5nbHlwaGljb24tY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ2XCI7XG59XG4uZ2x5cGhpY29uLWZvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDdcIjtcbn1cbi5nbHlwaGljb24tYm9sZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0OFwiO1xufVxuLmdseXBoaWNvbi1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDlcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTBcIjtcbn1cbi5nbHlwaGljb24tdGV4dC13aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MVwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUyXCI7XG59XG4uZ2x5cGhpY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1M1wiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NFwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU1XCI7XG59XG4uZ2x5cGhpY29uLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTZcIjtcbn1cbi5nbHlwaGljb24taW5kZW50LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTdcIjtcbn1cbi5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU4XCI7XG59XG4uZ2x5cGhpY29uLWZhY2V0aW1lLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU5XCI7XG59XG4uZ2x5cGhpY29uLXBpY3R1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjBcIjtcbn1cbi5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MlwiO1xufVxuLmdseXBoaWNvbi1hZGp1c3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjNcIjtcbn1cbi5nbHlwaGljb24tdGludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NFwiO1xufVxuLmdseXBoaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY1XCI7XG59XG4uZ2x5cGhpY29uLXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY2XCI7XG59XG4uZ2x5cGhpY29uLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY3XCI7XG59XG4uZ2x5cGhpY29uLW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjhcIjtcbn1cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2OVwiO1xufVxuLmdseXBoaWNvbi1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcwXCI7XG59XG4uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcxXCI7XG59XG4uZ2x5cGhpY29uLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzJcIjtcbn1cbi5nbHlwaGljb24tcGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzNcIjtcbn1cbi5nbHlwaGljb24tc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NFwiO1xufVxuLmdseXBoaWNvbi1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc1XCI7XG59XG4uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NlwiO1xufVxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzdcIjtcbn1cbi5nbHlwaGljb24tZWplY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzhcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc5XCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODBcIjtcbn1cbi5nbHlwaGljb24tcGx1cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgxXCI7XG59XG4uZ2x5cGhpY29uLW1pbnVzLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODJcIjtcbn1cbi5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODNcIjtcbn1cbi5nbHlwaGljb24tb2stc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NFwiO1xufVxuLmdseXBoaWNvbi1xdWVzdGlvbi1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg1XCI7XG59XG4uZ2x5cGhpY29uLWluZm8tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NlwiO1xufVxuLmdseXBoaWNvbi1zY3JlZW5zaG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg3XCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODhcIjtcbn1cbi5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg5XCI7XG59XG4uZ2x5cGhpY29uLWJhbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTBcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MVwiO1xufVxuLmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MlwiO1xufVxuLmdseXBoaWNvbi1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5M1wiO1xufVxuLmdseXBoaWNvbi1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk0XCI7XG59XG4uZ2x5cGhpY29uLXNoYXJlLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NVwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NlwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTdcIjtcbn1cbi5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMVwiO1xufVxuLmdseXBoaWNvbi1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAyXCI7XG59XG4uZ2x5cGhpY29uLWxlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDNcIjtcbn1cbi5nbHlwaGljb24tZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNFwiO1xufVxuLmdseXBoaWNvbi1leWUtb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNVwiO1xufVxuLmdseXBoaWNvbi1leWUtY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDZcIjtcbn1cbi5nbHlwaGljb24td2FybmluZy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA3XCI7XG59XG4uZ2x5cGhpY29uLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA4XCI7XG59XG4uZ2x5cGhpY29uLWNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA5XCI7XG59XG4uZ2x5cGhpY29uLXJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMFwiO1xufVxuLmdseXBoaWNvbi1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTExXCI7XG59XG4uZ2x5cGhpY29uLW1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMlwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEzXCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNFwiO1xufVxuLmdseXBoaWNvbi1yZXR3ZWV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE1XCI7XG59XG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTZcIjtcbn1cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE3XCI7XG59XG4uZ2x5cGhpY29uLWZvbGRlci1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE4XCI7XG59XG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOVwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMFwiO1xufVxuLmdseXBoaWNvbi1oZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjFcIjtcbn1cbi5nbHlwaGljb24tYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjJcIjtcbn1cbi5nbHlwaGljb24tYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyM1wiO1xufVxuLmdseXBoaWNvbi1jZXJ0aWZpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyNFwiO1xufVxuLmdseXBoaWNvbi10aHVtYnMtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjVcIjtcbn1cbi5nbHlwaGljb24tdGh1bWJzLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjZcIjtcbn1cbi5nbHlwaGljb24taGFuZC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyN1wiO1xufVxuLmdseXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjhcIjtcbn1cbi5nbHlwaGljb24taGFuZC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyOVwiO1xufVxuLmdseXBoaWNvbi1oYW5kLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzBcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMxXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMyXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzM1wiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNFwiO1xufVxuLmdseXBoaWNvbi1nbG9iZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNVwiO1xufVxuLmdseXBoaWNvbi13cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzZcIjtcbn1cbi5nbHlwaGljb24tdGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzdcIjtcbn1cbi5nbHlwaGljb24tZmlsdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM4XCI7XG59XG4uZ2x5cGhpY29uLWJyaWVmY2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOVwiO1xufVxuLmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQwXCI7XG59XG4uZ2x5cGhpY29uLWRhc2hib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MVwiO1xufVxuLmdseXBoaWNvbi1wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDJcIjtcbn1cbi5nbHlwaGljb24taGVhcnQtZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDNcIjtcbn1cbi5nbHlwaGljb24tbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NFwiO1xufVxuLmdseXBoaWNvbi1waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NVwiO1xufVxuLmdseXBoaWNvbi1wdXNocGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ2XCI7XG59XG4uZ2x5cGhpY29uLXVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OFwiO1xufVxuLmdseXBoaWNvbi1nYnA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDlcIjtcbn1cbi5nbHlwaGljb24tc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MFwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUxXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUyXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTNcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTRcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU1XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTZcIjtcbn1cbi5nbHlwaGljb24tdW5jaGVja2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU3XCI7XG59XG4uZ2x5cGhpY29uLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OFwiO1xufVxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU5XCI7XG59XG4uZ2x5cGhpY29uLWNvbGxhcHNlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYwXCI7XG59XG4uZ2x5cGhpY29uLWxvZy1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MVwiO1xufVxuLmdseXBoaWNvbi1mbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MlwiO1xufVxuLmdseXBoaWNvbi1sb2ctb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYzXCI7XG59XG4uZ2x5cGhpY29uLW5ldy13aW5kb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjRcIjtcbn1cbi5nbHlwaGljb24tcmVjb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY1XCI7XG59XG4uZ2x5cGhpY29uLXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjZcIjtcbn1cbi5nbHlwaGljb24tb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2N1wiO1xufVxuLmdseXBoaWNvbi1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2OFwiO1xufVxuLmdseXBoaWNvbi1pbXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjlcIjtcbn1cbi5nbHlwaGljb24tZXhwb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcwXCI7XG59XG4uZ2x5cGhpY29uLXNlbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzFcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LWRpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzJcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTczXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzRcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzVcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzZcIjtcbn1cbi5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzdcIjtcbn1cbi5nbHlwaGljb24tdHJhbnNmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzhcIjtcbn1cbi5nbHlwaGljb24tY3V0bGVyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3OVwiO1xufVxuLmdseXBoaWNvbi1oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODBcIjtcbn1cbi5nbHlwaGljb24tY29tcHJlc3NlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MVwiO1xufVxuLmdseXBoaWNvbi1lYXJwaG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MlwiO1xufVxuLmdseXBoaWNvbi1waG9uZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODNcIjtcbn1cbi5nbHlwaGljb24tdG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODRcIjtcbn1cbi5nbHlwaGljb24tc3RhdHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODVcIjtcbn1cbi5nbHlwaGljb24tc2QtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODZcIjtcbn1cbi5nbHlwaGljb24taGQtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODdcIjtcbn1cbi5nbHlwaGljb24tc3VidGl0bGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg4XCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OVwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC1kb2xieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MFwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC01LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTFcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNi0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkyXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTctMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5M1wiO1xufVxuLmdseXBoaWNvbi1jb3B5cmlnaHQtbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5NFwiO1xufVxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5NVwiO1xufVxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5N1wiO1xufVxuLmdseXBoaWNvbi1jbG91ZC11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOThcIjtcbn1cbi5nbHlwaGljb24tdHJlZS1jb25pZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk5XCI7XG59XG4uZ2x5cGhpY29uLXRyZWUtZGVjaWR1b3VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAwXCI7XG59XG4uZ2x5cGhpY29uLWNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAxXCI7XG59XG4uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMlwiO1xufVxuLmdseXBoaWNvbi1vcGVuLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDNcIjtcbn1cbi5nbHlwaGljb24tbGV2ZWwtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDRcIjtcbn1cbi5nbHlwaGljb24tY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNVwiO1xufVxuLmdseXBoaWNvbi1wYXN0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNlwiO1xufVxuLmdseXBoaWNvbi1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwOVwiO1xufVxuLmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTBcIjtcbn1cbi5nbHlwaGljb24ta2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMVwiO1xufVxuLmdseXBoaWNvbi1xdWVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMlwiO1xufVxuLmdseXBoaWNvbi1wYXduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEzXCI7XG59XG4uZ2x5cGhpY29uLWJpc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNFwiO1xufVxuLmdseXBoaWNvbi1rbmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTVcIjtcbn1cbi5nbHlwaGljb24tYmFieS1mb3JtdWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE2XCI7XG59XG4uZ2x5cGhpY29uLXRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2ZmFcIjtcbn1cbi5nbHlwaGljb24tYmxhY2tib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxOFwiO1xufVxuLmdseXBoaWNvbi1iZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTlcIjtcbn1cbi5nbHlwaGljb24tYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZmZcIjtcbn1cbi5nbHlwaGljb24tZXJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjFcIjtcbn1cbi5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMzFiXCI7XG59XG4uZ2x5cGhpY29uLWxhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjNcIjtcbn1cbi5nbHlwaGljb24tZHVwbGljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI0XCI7XG59XG4uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjVcIjtcbn1cbi5nbHlwaGljb24tc2Npc3NvcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjZcIjtcbn1cbi5nbHlwaGljb24tYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi1idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24teGJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLXllbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDBhNVwiO1xufVxuLmdseXBoaWNvbi1qcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjtcbn1cbi5nbHlwaGljb24tcnVibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjtcbn1cbi5nbHlwaGljb24tcnViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7XG59XG4uZ2x5cGhpY29uLXNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMwXCI7XG59XG4uZ2x5cGhpY29uLWljZS1sb2xseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMVwiO1xufVxuLmdseXBoaWNvbi1pY2UtbG9sbHktdGFzdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMyXCI7XG59XG4uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzM1wiO1xufVxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNFwiO1xufVxuLmdseXBoaWNvbi1vcHRpb24tdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzVcIjtcbn1cbi5nbHlwaGljb24tbWVudS1oYW1idXJnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzZcIjtcbn1cbi5nbHlwaGljb24tbW9kYWwtd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM3XCI7XG59XG4uZ2x5cGhpY29uLW9pbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzOFwiO1xufVxuLmdseXBoaWNvbi1ncmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzOVwiO1xufVxuLmdseXBoaWNvbi1zdW5nbGFzc2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQwXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtc2l6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MVwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQyXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtYmFja2dyb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0M1wiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ0XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDVcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDZcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDdcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ4XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OVwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MFwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUxXCI7XG59XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MlwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTNcIjtcbn1cbi5nbHlwaGljb24tY29uc29sZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NFwiO1xufVxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NVwiO1xufVxuLmdseXBoaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTZcIjtcbn1cbi5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU3XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNThcIjtcbn1cbi5nbHlwaGljb24tbWVudS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU5XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNjBcIjtcbn1cbioge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuYSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOmhvdmVyLFxuYTpmb2N1cyB7XG4gIGNvbG9yOiAjMDA5Y2EzO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5pbWctcmVzcG9uc2l2ZSxcbi50aHVtYm5haWwgPiBpbWcsXG4udGh1bWJuYWlsIGEgPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGltZyxcbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gYSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbmhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLFxuLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuLmgxLFxuLmgyLFxuLmgzLFxuLmg0LFxuLmg1LFxuLmg2IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuaDEgc21hbGwsXG5oMiBzbWFsbCxcbmgzIHNtYWxsLFxuaDQgc21hbGwsXG5oNSBzbWFsbCxcbmg2IHNtYWxsLFxuLmgxIHNtYWxsLFxuLmgyIHNtYWxsLFxuLmgzIHNtYWxsLFxuLmg0IHNtYWxsLFxuLmg1IHNtYWxsLFxuLmg2IHNtYWxsLFxuaDEgLnNtYWxsLFxuaDIgLnNtYWxsLFxuaDMgLnNtYWxsLFxuaDQgLnNtYWxsLFxuaDUgLnNtYWxsLFxuaDYgLnNtYWxsLFxuLmgxIC5zbWFsbCxcbi5oMiAuc21hbGwsXG4uaDMgLnNtYWxsLFxuLmg0IC5zbWFsbCxcbi5oNSAuc21hbGwsXG4uaDYgLnNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuaDEsXG4uaDEsXG5oMixcbi5oMixcbmgzLFxuLmgzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmgxIHNtYWxsLFxuLmgxIHNtYWxsLFxuaDIgc21hbGwsXG4uaDIgc21hbGwsXG5oMyBzbWFsbCxcbi5oMyBzbWFsbCxcbmgxIC5zbWFsbCxcbi5oMSAuc21hbGwsXG5oMiAuc21hbGwsXG4uaDIgLnNtYWxsLFxuaDMgLnNtYWxsLFxuLmgzIC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNjUlO1xufVxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmg0IHNtYWxsLFxuLmg0IHNtYWxsLFxuaDUgc21hbGwsXG4uaDUgc21hbGwsXG5oNiBzbWFsbCxcbi5oNiBzbWFsbCxcbmg0IC5zbWFsbCxcbi5oNCAuc21hbGwsXG5oNSAuc21hbGwsXG4uaDUgLnNtYWxsLFxuaDYgLnNtYWxsLFxuLmg2IC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xufVxuaDEsXG4uaDEge1xuICBmb250LXNpemU6IDM2cHg7XG59XG5oMixcbi5oMiB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbn1cbmgzLFxuLmgzIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuaDQsXG4uaDQge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5oNSxcbi5oNSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbmg2LFxuLmg2IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxucCB7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG59XG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG59XG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgcGFkZGluZzogLjJlbTtcbn1cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuLnRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG4udGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogIzAwZTVmMDtcbn1cbmEudGV4dC1wcmltYXJ5OmhvdmVyLFxuYS50ZXh0LXByaW1hcnk6Zm9jdXMge1xuICBjb2xvcjogIzAwYjRiZDtcbn1cbi50ZXh0LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbmEudGV4dC1zdWNjZXNzOmhvdmVyLFxuYS50ZXh0LXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzJiNTQyYztcbn1cbi50ZXh0LWluZm8ge1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbmEudGV4dC1pbmZvOmhvdmVyLFxuYS50ZXh0LWluZm86Zm9jdXMge1xuICBjb2xvcjogIzI0NTI2OTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbmEudGV4dC13YXJuaW5nOmhvdmVyLFxuYS50ZXh0LXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzY2NTEyYztcbn1cbi50ZXh0LWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuYS50ZXh0LWRhbmdlcjpob3ZlcixcbmEudGV4dC1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogIzg0MzUzNDtcbn1cbi5iZy1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG5hLmJnLXByaW1hcnk6aG92ZXIsXG5hLmJnLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmJnLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuYS5iZy1zdWNjZXNzOmhvdmVyLFxuYS5iZy1zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxZTJiMztcbn1cbi5iZy1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbmEuYmctaW5mbzpob3ZlcixcbmEuYmctaW5mbzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZmQ5ZWU7XG59XG4uYmctd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG5hLmJnLXdhcm5pbmc6aG92ZXIsXG5hLmJnLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdlY2I1O1xufVxuLmJnLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG5hLmJnLWRhbmdlcjpob3ZlcixcbmEuYmctZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0YjliOTtcbn1cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gIG1hcmdpbjogNDBweCAwIDIwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlZWVlO1xufVxudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG51bCB1bCxcbm9sIHVsLFxudWwgb2wsXG5vbCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5saXN0LWlubGluZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG4ubGlzdC1pbmxpbmUgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mztcbn1cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kbC1ob3Jpem9udGFsIGR0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5kbC1ob3Jpem9udGFsIGRkIHtcbiAgICBtYXJnaW4tbGVmdDogMTgwcHg7XG4gIH1cbn1cbmFiYnJbdGl0bGVdLFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNzc3Nzc3O1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIGZvbnQtc2l6ZTogMTcuNXB4O1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNlZWVlZWU7XG59XG5ibG9ja3F1b3RlIHA6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgdWw6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5ibG9ja3F1b3RlIGZvb3RlcixcbmJsb2NrcXVvdGUgc21hbGwsXG5ibG9ja3F1b3RlIC5zbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuYmxvY2txdW90ZSBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlIC5zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjZWVlZWVlO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmJlZm9yZSxcbi5ibG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmJlZm9yZSxcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YWZ0ZXIsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSAuc21hbGw6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmFmdGVyIHtcbiAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnO1xufVxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG59XG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjYzcyNTRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmMmY0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3gtc2hhZG93OiBub25lO1xufVxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDkuNXB4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbnByZSBjb2RlIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY29udGFpbmVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA3NTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTE3MHB4O1xuICB9XG59XG4uY29udGFpbmVyLWZsdWlkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cbi5jb2wteHMtMSwgLmNvbC1zbS0xLCAuY29sLW1kLTEsIC5jb2wtbGctMSwgLmNvbC14cy0yLCAuY29sLXNtLTIsIC5jb2wtbWQtMiwgLmNvbC1sZy0yLCAuY29sLXhzLTMsIC5jb2wtc20tMywgLmNvbC1tZC0zLCAuY29sLWxnLTMsIC5jb2wteHMtNCwgLmNvbC1zbS00LCAuY29sLW1kLTQsIC5jb2wtbGctNCwgLmNvbC14cy01LCAuY29sLXNtLTUsIC5jb2wtbWQtNSwgLmNvbC1sZy01LCAuY29sLXhzLTYsIC5jb2wtc20tNiwgLmNvbC1tZC02LCAuY29sLWxnLTYsIC5jb2wteHMtNywgLmNvbC1zbS03LCAuY29sLW1kLTcsIC5jb2wtbGctNywgLmNvbC14cy04LCAuY29sLXNtLTgsIC5jb2wtbWQtOCwgLmNvbC1sZy04LCAuY29sLXhzLTksIC5jb2wtc20tOSwgLmNvbC1tZC05LCAuY29sLWxnLTksIC5jb2wteHMtMTAsIC5jb2wtc20tMTAsIC5jb2wtbWQtMTAsIC5jb2wtbGctMTAsIC5jb2wteHMtMTEsIC5jb2wtc20tMTEsIC5jb2wtbWQtMTEsIC5jb2wtbGctMTEsIC5jb2wteHMtMTIsIC5jb2wtc20tMTIsIC5jb2wtbWQtMTIsIC5jb2wtbGctMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLmNvbC14cy0xLCAuY29sLXhzLTIsIC5jb2wteHMtMywgLmNvbC14cy00LCAuY29sLXhzLTUsIC5jb2wteHMtNiwgLmNvbC14cy03LCAuY29sLXhzLTgsIC5jb2wteHMtOSwgLmNvbC14cy0xMCwgLmNvbC14cy0xMSwgLmNvbC14cy0xMiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmNvbC14cy0xMiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNvbC14cy0xMSB7XG4gIHdpZHRoOiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtOSB7XG4gIHdpZHRoOiA3NSU7XG59XG4uY29sLXhzLTgge1xuICB3aWR0aDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy03IHtcbiAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtNiB7XG4gIHdpZHRoOiA1MCU7XG59XG4uY29sLXhzLTUge1xuICB3aWR0aDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy00IHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtMyB7XG4gIHdpZHRoOiAyNSU7XG59XG4uY29sLXhzLTIge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy0xIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTEyIHtcbiAgcmlnaHQ6IDEwMCU7XG59XG4uY29sLXhzLXB1bGwtMTEge1xuICByaWdodDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdWxsLTEwIHtcbiAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC05IHtcbiAgcmlnaHQ6IDc1JTtcbn1cbi5jb2wteHMtcHVsbC04IHtcbiAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC03IHtcbiAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC02IHtcbiAgcmlnaHQ6IDUwJTtcbn1cbi5jb2wteHMtcHVsbC01IHtcbiAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC00IHtcbiAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0zIHtcbiAgcmlnaHQ6IDI1JTtcbn1cbi5jb2wteHMtcHVsbC0yIHtcbiAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC0xIHtcbiAgcmlnaHQ6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTAge1xuICByaWdodDogYXV0bztcbn1cbi5jb2wteHMtcHVzaC0xMiB7XG4gIGxlZnQ6IDEwMCU7XG59XG4uY29sLXhzLXB1c2gtMTEge1xuICBsZWZ0OiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1c2gtMTAge1xuICBsZWZ0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtOSB7XG4gIGxlZnQ6IDc1JTtcbn1cbi5jb2wteHMtcHVzaC04IHtcbiAgbGVmdDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTcge1xuICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtNiB7XG4gIGxlZnQ6IDUwJTtcbn1cbi5jb2wteHMtcHVzaC01IHtcbiAgbGVmdDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTQge1xuICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtMyB7XG4gIGxlZnQ6IDI1JTtcbn1cbi5jb2wteHMtcHVzaC0yIHtcbiAgbGVmdDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTEge1xuICBsZWZ0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVzaC0wIHtcbiAgbGVmdDogYXV0bztcbn1cbi5jb2wteHMtb2Zmc2V0LTEyIHtcbiAgbWFyZ2luLWxlZnQ6IDEwMCU7XG59XG4uY29sLXhzLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1zbS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLXNtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXNtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXNtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtc20tcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtc20tcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtc20tcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtc20tcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtbWQtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1tZC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1tZC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1tZC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLW1kLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1sZy0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLWxnLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLWxnLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLWxnLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtbGctcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtbGctcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbGctcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbGctcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBwYWRkaW5nOiA4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlID4gY2FwdGlvbiArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IGNvbGdyb3VwICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnRhYmxlID4gY2FwdGlvbiArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IGNvbGdyb3VwICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi50YWJsZSA+IHRib2R5ICsgdGJvZHkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2RkZDtcbn1cbi50YWJsZSAudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnRhYmxlLWNvbmRlbnNlZCA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZCxcbi50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4udGFibGUtc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbnRhYmxlIGNvbFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjtcbn1cbnRhYmxlIHRkW2NsYXNzKj1cImNvbC1cIl0sXG50YWJsZSB0aFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmFjdGl2ZSA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5hY3RpdmUgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuYWN0aXZlID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmFjdGl2ZTpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5hY3RpdmUsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRoZWFkID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5zdWNjZXNzID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLnN1Y2Nlc3MgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuc3VjY2Vzczpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5zdWNjZXNzOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdWNjZXNzOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLnN1Y2Nlc3MsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnN1Y2Nlc3M6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0aGVhZCA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuaW5mbyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5pbmZvID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguaW5mbzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5pbmZvLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5pbmZvOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmc6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAud2FybmluZyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIud2FybmluZzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYztcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuZGFuZ2VyOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcjpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuZGFuZ2VyOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLmRhbmdlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuZGFuZ2VyOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjO1xufVxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwLjAxJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxufVxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgbWluLXdpZHRoOiAwO1xufVxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuc2VsZWN0W211bHRpcGxlXSxcbnNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzU1NTU1NTtcbn1cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbn1cbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NmFmZTk7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7XG59XG4uZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZCB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxcbi5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmZvcm0tY29udHJvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIH1cbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaW5wdXQtc20sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaW5wdXQtc20sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5pbnB1dC1zbSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LWxnLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LWxnLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtbGcsXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogNDZweDtcbiAgfVxufVxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5yYWRpbyBsYWJlbCxcbi5jaGVja2JveCBsYWJlbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG4ucmFkaW8gKyAucmFkaW8sXG4uY2hlY2tib3ggKyAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAtNXB4O1xufVxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5pbnB1dFt0eXBlPVwicmFkaW9cIl1bZGlzYWJsZWRdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5kaXNhYmxlZCxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5yYWRpby1pbmxpbmUuZGlzYWJsZWQsXG4uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpby1pbmxpbmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LWlubGluZSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucmFkaW8uZGlzYWJsZWQgbGFiZWwsXG4uY2hlY2tib3guZGlzYWJsZWQgbGFiZWwsXG5maWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG59XG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1sZyxcbi5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LXNtIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmlucHV0LXNtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5zZWxlY3QuaW5wdXQtc20ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxudGV4dGFyZWEuaW5wdXQtc20sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LXNtIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmZvcm0tZ3JvdXAtc20gc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uZm9ybS1ncm91cC1zbSB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1zbSBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLmlucHV0LWxnIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuc2VsZWN0LmlucHV0LWxnIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbnRleHRhcmVhLmlucHV0LWxnLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1sZyB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uZm9ybS1ncm91cC1sZyBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbi5mb3JtLWdyb3VwLWxnIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5mb3JtLWdyb3VwLWxnIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIHBhZGRpbmc6IDExcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xufVxuLmhhcy1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQyLjVweDtcbn1cbi5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogNDZweDtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi5oYXMtc3VjY2VzcyAuaGVscC1ibG9jayxcbi5oYXMtc3VjY2VzcyAuY29udHJvbC1sYWJlbCxcbi5oYXMtc3VjY2VzcyAucmFkaW8sXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LFxuLmhhcy1zdWNjZXNzIC5yYWRpby1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtc3VjY2Vzcy5yYWRpbyBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5jaGVja2JveCBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMmI1NDJjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjNjdiMTY4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzY3YjE2ODtcbn1cbi5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbi5oYXMtd2FybmluZyAuaGVscC1ibG9jayxcbi5oYXMtd2FybmluZyAuY29udHJvbC1sYWJlbCxcbi5oYXMtd2FybmluZyAucmFkaW8sXG4uaGFzLXdhcm5pbmcgLmNoZWNrYm94LFxuLmhhcy13YXJuaW5nIC5yYWRpby1pbmxpbmUsXG4uaGFzLXdhcm5pbmcgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtd2FybmluZy5yYWRpbyBsYWJlbCxcbi5oYXMtd2FybmluZy5jaGVja2JveCBsYWJlbCxcbi5oYXMtd2FybmluZy5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLXdhcm5pbmcuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjY1MTJjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjYzBhMTZiO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2MwYTE2Yjtcbn1cbi5oYXMtd2FybmluZyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYm9yZGVyLWNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssXG4uaGFzLWVycm9yIC5jb250cm9sLWxhYmVsLFxuLmhhcy1lcnJvciAucmFkaW8sXG4uaGFzLWVycm9yIC5jaGVja2JveCxcbi5oYXMtZXJyb3IgLnJhZGlvLWlubGluZSxcbi5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtZXJyb3IucmFkaW8gbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94IGxhYmVsLFxuLmhhcy1lcnJvci5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTk0NDQyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODQzNTM0O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjY2U4NDgzO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4Mztcbn1cbi5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmhhcy1mZWVkYmFjayBsYWJlbCB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB0b3A6IDI1cHg7XG59XG4uaGFzLWZlZWRiYWNrIGxhYmVsLnNyLW9ubHkgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAwO1xufVxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzczNzM3Mztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuY29udHJvbC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8sXG4gIC5mb3JtLWlubGluZSAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvIGxhYmVsLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIC5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LFxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8taW5saW5lLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDdweDtcbn1cbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAyN3B4O1xufVxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiA3cHg7XG4gIH1cbn1cbi5mb3JtLWhvcml6b250YWwgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcmlnaHQ6IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1sZyAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1zbSAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uYnRuOmZvY3VzLFxuLmJ0bjphY3RpdmU6Zm9jdXMsXG4uYnRuLmFjdGl2ZTpmb2N1cyxcbi5idG4uZm9jdXMsXG4uYnRuOmFjdGl2ZS5mb2N1cyxcbi5idG4uYWN0aXZlLmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbi5idG46aG92ZXIsXG4uYnRuOmZvY3VzLFxuLmJ0bi5mb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnRuOmFjdGl2ZSxcbi5idG4uYWN0aXZlIHtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cbi5idG4uZGlzYWJsZWQsXG4uYnRuW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuYS5idG4uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gYS5idG4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG59XG4uYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuLmJ0bi1kZWZhdWx0OmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogI2FkYWRhZDtcbn1cbi5idG4tZGVmYXVsdDphY3RpdmUsXG4uYnRuLWRlZmF1bHQuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0IHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogI2FkYWRhZDtcbn1cbi5idG4tZGVmYXVsdDphY3RpdmU6aG92ZXIsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmhvdmVyLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZTpmb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQ6YWN0aXZlLmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdC5mb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICBib3JkZXItY29sb3I6ICM4YzhjOGM7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpob3Zlcixcbi5idG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cyxcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG59XG4uYnRuLWRlZmF1bHQgLmJhZGdlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG4uYnRuLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXByaW1hcnk6YWN0aXZlLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXByaW1hcnk6YWN0aXZlOmhvdmVyLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpob3Zlcixcbi5idG4tcHJpbWFyeTphY3RpdmU6Zm9jdXMsXG4uYnRuLXByaW1hcnkuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmJ0bi1wcmltYXJ5OmFjdGl2ZS5mb2N1cyxcbi5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSxcbi5idG4tcHJpbWFyeS5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6aG92ZXIsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5kaXNhYmxlZC5mb2N1cyxcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1wcmltYXJ5IC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tc3VjY2Vzczpmb2N1cyxcbi5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1zdWNjZXNzOmFjdGl2ZSxcbi5idG4tc3VjY2Vzcy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1zdWNjZXNzOmFjdGl2ZTpob3Zlcixcbi5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzczpmb2N1cyxcbi5idG4tc3VjY2VzczphY3RpdmUuZm9jdXMsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tc3VjY2Vzcy5kaXNhYmxlZDpob3Zlcixcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tc3VjY2VzcyAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLWluZm86Zm9jdXMsXG4uYnRuLWluZm8uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1pbmZvOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4taW5mbzphY3RpdmUsXG4uYnRuLWluZm8uYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4taW5mbzphY3RpdmU6aG92ZXIsXG4uYnRuLWluZm8uYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmhvdmVyLFxuLmJ0bi1pbmZvOmFjdGl2ZTpmb2N1cyxcbi5idG4taW5mby5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm86Zm9jdXMsXG4uYnRuLWluZm86YWN0aXZlLmZvY3VzLFxuLmJ0bi1pbmZvLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mby5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLWluZm86YWN0aXZlLFxuLmJ0bi1pbmZvLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpob3Zlcixcbi5idG4taW5mby5kaXNhYmxlZDpmb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm8uZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLWluZm8gLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgYm9yZGVyLWNvbG9yOiAjODU2NGVkO1xufVxuLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG4gIGJvcmRlci1jb2xvcjogIzNkMTViZDtcbn1cbi5idG4td2FybmluZzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICM1YTJkZTc7XG59XG4uYnRuLXdhcm5pbmc6YWN0aXZlLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICM1YTJkZTc7XG59XG4uYnRuLXdhcm5pbmc6YWN0aXZlOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpob3Zlcixcbi5idG4td2FybmluZzphY3RpdmU6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nOmFjdGl2ZS5mb2N1cyxcbi5idG4td2FybmluZy5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhMmRlNztcbiAgYm9yZGVyLWNvbG9yOiAjM2QxNWJkO1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6aG92ZXIsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZy5kaXNhYmxlZC5mb2N1cyxcbi5idG4td2FybmluZ1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgYm9yZGVyLWNvbG9yOiAjODU2NGVkO1xufVxuLmJ0bi13YXJuaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbiAgYm9yZGVyLWNvbG9yOiAjY2ExYzY4O1xufVxuLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlci5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM1YTBjMmU7XG59XG4uYnRuLWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM5NDE0NGQ7XG59XG4uYnRuLWRhbmdlcjphY3RpdmUsXG4uYnRuLWRhbmdlci5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM5NDE0NGQ7XG59XG4uYnRuLWRhbmdlcjphY3RpdmU6aG92ZXIsXG4uYnRuLWRhbmdlci5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpob3Zlcixcbi5idG4tZGFuZ2VyOmFjdGl2ZTpmb2N1cyxcbi5idG4tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXI6YWN0aXZlLmZvY3VzLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0MTQ0ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNWEwYzJlO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6aG92ZXIsXG4uYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbiAgYm9yZGVyLWNvbG9yOiAjY2ExYzY4O1xufVxuLmJ0bi1kYW5nZXIgLmJhZGdlIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWxpbmsge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tbGluayxcbi5idG4tbGluazphY3RpdmUsXG4uYnRuLWxpbmsuYWN0aXZlLFxuLmJ0bi1saW5rW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ0bi1saW5rLFxuLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rOmZvY3VzLFxuLmJ0bi1saW5rOmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzAwOWNhMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnRuLWxnLFxuLmJ0bi1ncm91cC1sZyA+IC5idG4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmJ0bi1zbSxcbi5idG4tZ3JvdXAtc20gPiAuYnRuIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJ0bi14cyxcbi5idG4tZ3JvdXAteHMgPiAuYnRuIHtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi1ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG59XG4uZmFkZS5pbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4uY29sbGFwc2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNvbGxhcHNlLmluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG50ci5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cbnRib2R5LmNvbGxhcHNlLmluIHtcbiAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwO1xufVxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjM1cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiA0cHggZGFzaGVkO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgXFw5O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5kcm9wdXAsXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuLmRyb3Bkb3duLW1lbnUucHVsbC1yaWdodCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBjbGVhcjogYm90aDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm9wZW4gPiAuZHJvcGRvd24tbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm9wZW4gPiBhIHtcbiAgb3V0bGluZTogMDtcbn1cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzc3Nzc3NztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTA7XG59XG4ucHVsbC1yaWdodCA+IC5kcm9wZG93bi1tZW51IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG4uZHJvcHVwIC5jYXJldCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuY2FyZXQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItYm90dG9tOiA0cHggZGFzaGVkO1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgXFw5O1xuICBjb250ZW50OiBcIlwiO1xufVxuLmRyb3B1cCAuZHJvcGRvd24tbWVudSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IC5kcm9wZG93bi1tZW51LWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uYnRuLWdyb3VwID4gLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIsXG4uYnRuLWdyb3VwID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cCA+IC5idG4uYWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4uYWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5idG4tdG9vbGJhciB7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmJ0bi10b29sYmFyIC5idG4sXG4uYnRuLXRvb2xiYXIgLmJ0bi1ncm91cCxcbi5idG4tdG9vbGJhciAuaW5wdXQtZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tdG9vbGJhciA+IC5idG4sXG4uYnRuLXRvb2xiYXIgPiAuYnRuLWdyb3VwLFxuLmJ0bi10b29sYmFyID4gLmlucHV0LWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSxcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3V0bGluZTogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tbGluayB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4gLmNhcmV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuLmRyb3B1cCAuYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bixcbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogMSU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAgLmJ0biB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgbGVmdDogYXV0bztcbn1cbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uaW5wdXQtZ3JvdXBbY2xhc3MqPVwiY29sLVwiXSB7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICB6LWluZGV4OiAzO1xufVxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuc2VsZWN0LmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuc2VsZWN0LmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHdpZHRoOiAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24uaW5wdXQtc20ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24uaW5wdXQtbGcge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpob3Zlcixcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmZvY3VzLFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46YWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCB7XG4gIHotaW5kZXg6IDI7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5uYXYgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubmF2ID4gbGkgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xufVxuLm5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdiA+IGxpLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm5hdiAub3BlbiA+IGEsXG4ubmF2IC5vcGVuID4gYTpob3Zlcixcbi5uYXYgLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLm5hdiAubmF2LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cbi5uYXYgPiBsaSA+IGEgPiBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4ubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cbi5uYXYtdGFicyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG4ubmF2LXRhYnMgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbn1cbi5uYXYtdGFicyA+IGxpID4gYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2VlZWVlZSAjZWVlZWVlICNkZGQ7XG59XG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhLFxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgfVxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICB9XG59XG4ubmF2LXBpbGxzID4gbGkge1xuICBmbG9hdDogbGVmdDtcbn1cbi5uYXYtcGlsbHMgPiBsaSA+IGEge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2LXBpbGxzID4gbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5uYXYtc3RhY2tlZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LXN0YWNrZWQgPiBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLm5hdi1qdXN0aWZpZWQgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgfVxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICB9XG59XG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYi1jb250ZW50ID4gLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWhlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbi5uYXZiYXItY29sbGFwc2UuaW4ge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubmF2YmFyLWNvbGxhcHNlLmNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5pbiB7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLXN0YXRpYy10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWF4LWhlaWdodDogMzQwcHg7XG59XG5AbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IDQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cbi5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXIgPiAubmF2YmFyLWNvbGxhcHNlLFxuLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4gIC5jb250YWluZXIgPiAubmF2YmFyLWNvbGxhcHNlLFxuICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiAxMDAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAzMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZpeGVkLXRvcCxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwO1xufVxuLm5hdmJhci1icmFuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAxNXB4IDE1cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLm5hdmJhci1icmFuZCA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXIgPiAuY29udGFpbmVyIC5uYXZiYXItYnJhbmQsXG4gIC5uYXZiYXIgPiAuY29udGFpbmVyLWZsdWlkIC5uYXZiYXItYnJhbmQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgfVxufVxuLm5hdmJhci10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLm5hdmJhci10b2dnbGUgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubmF2YmFyLW5hdiB7XG4gIG1hcmdpbjogNy41cHggLTE1cHg7XG59XG4ubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSxcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgcGFkZGluZzogNXB4IDE1cHggNXB4IDI1cHg7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItbmF2IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICB9XG59XG4ubmF2YmFyLWZvcm0ge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ0bixcbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5jb250cm9sLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8gbGFiZWwsXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItZm9ybSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhci1idG4ge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5uYXZiYXItYnRuLmJ0bi1zbSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ubmF2YmFyLWJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuLm5hdmJhci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXRleHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICB9XG4gIC5uYXZiYXItcmlnaHQgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbi5uYXZiYXItZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGJvcmRlci1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICM1ZTVlNWU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG4gIGNvbG9yOiAjNTU1O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICM3Nzc7XG4gIH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG4gIH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbmsge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbms6aG92ZXIge1xuICBjb2xvcjogIzMzMztcbn1cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmsge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLm5hdmJhci1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgYm9yZGVyLWNvbG9yOiAjMDgwODA4O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTAxMDEwO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDgwODA4O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjOWQ5ZDlkO1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5rIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzQ0NDtcbn1cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogOHB4IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5icmVhZGNydW1iID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYnJlYWRjcnVtYiA+IGxpICsgbGk6YmVmb3JlIHtcbiAgY29udGVudDogXCIvXFwwMGEwXCI7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBjb2xvcjogI2NjYztcbn1cbi5icmVhZGNydW1iID4gLmFjdGl2ZSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5wYWdpbmF0aW9uID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4ucGFnaW5hdGlvbiA+IGxpID4gYSxcbi5wYWdpbmF0aW9uID4gbGkgPiBzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24gPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiBsaSA+IGE6Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjMDA5Y2EzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYTpmb2N1cyxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW46Zm9jdXMge1xuICB6LWluZGV4OiAzO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW46aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW46Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGEsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4ucGFnaW5hdGlvbi1zbSA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFnaW5hdGlvbi1zbSA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucGFnZXIgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4ucGFnZXIgbGkgPiBhLFxuLnBhZ2VyIGxpID4gc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNXB4IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG59XG4ucGFnZXIgbGkgPiBhOmhvdmVyLFxuLnBhZ2VyIGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5wYWdlciAubmV4dCA+IGEsXG4ucGFnZXIgLm5leHQgPiBzcGFuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnBhZ2VyIC5wcmV2aW91cyA+IGEsXG4ucGFnZXIgLnByZXZpb3VzID4gc3BhbiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnBhZ2VyIC5kaXNhYmxlZCA+IGEsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpob3Zlcixcbi5wYWdlciAuZGlzYWJsZWQgPiBhOmZvY3VzLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IHNwYW4ge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG59XG5hLmxhYmVsOmhvdmVyLFxuYS5sYWJlbDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5sYWJlbDplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnRuIC5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuLmxhYmVsLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Nzc3O1xufVxuLmxhYmVsLWRlZmF1bHRbaHJlZl06aG92ZXIsXG4ubGFiZWwtZGVmYXVsdFtocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZTVlNWU7XG59XG4ubGFiZWwtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtcHJpbWFyeVtocmVmXTpob3Zlcixcbi5sYWJlbC1wcmltYXJ5W2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmhvdmVyLFxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLWluZm9baHJlZl06aG92ZXIsXG4ubGFiZWwtaW5mb1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4ubGFiZWwtd2FybmluZ1tocmVmXTpob3Zlcixcbi5sYWJlbC13YXJuaW5nW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbn1cbi5sYWJlbC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xufVxuLmxhYmVsLWRhbmdlcltocmVmXTpob3Zlcixcbi5sYWJlbC1kYW5nZXJbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xufVxuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDEwcHg7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Nzc3O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmJhZGdlOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5idG4gLmJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG4uYnRuLXhzIC5iYWRnZSxcbi5idG4tZ3JvdXAteHMgPiAuYnRuIC5iYWRnZSB7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMXB4IDVweDtcbn1cbmEuYmFkZ2U6aG92ZXIsXG5hLmJhZGdlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAuYmFkZ2UsXG4ubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0gPiAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG59XG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlICsgLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4ubmF2LXBpbGxzID4gbGkgPiBhID4gLmJhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLmp1bWJvdHJvbiBoMSxcbi5qdW1ib3Ryb24gLmgxIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uanVtYm90cm9uIHAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG4uanVtYm90cm9uID4gaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZDVkNWQ1O1xufVxuLmNvbnRhaW5lciAuanVtYm90cm9uLFxuLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4uanVtYm90cm9uIC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuanVtYm90cm9uIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbiAgfVxuICAuY29udGFpbmVyIC5qdW1ib3Ryb24sXG4gIC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbiAgLmp1bWJvdHJvbiBoMSxcbiAgLmp1bWJvdHJvbiAuaDEge1xuICAgIGZvbnQtc2l6ZTogNjNweDtcbiAgfVxufVxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbn1cbi50aHVtYm5haWwgPiBpbWcsXG4udGh1bWJuYWlsIGEgPiBpbWcge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuYS50aHVtYm5haWw6aG92ZXIsXG5hLnRodW1ibmFpbDpmb2N1cyxcbmEudGh1bWJuYWlsLmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi50aHVtYm5haWwgLmNhcHRpb24ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLmFsZXJ0IHtcbiAgcGFkZGluZzogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5hbGVydCBoNCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmFsZXJ0IC5hbGVydC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYWxlcnQgPiBwLFxuLmFsZXJ0ID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFsZXJ0ID4gcCArIHAge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYWxlcnQtZGlzbWlzc2FibGUsXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xufVxuLmFsZXJ0LWRpc21pc3NhYmxlIC5jbG9zZSxcbi5hbGVydC1kaXNtaXNzaWJsZSAuY2xvc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTJweDtcbiAgcmlnaHQ6IC0yMXB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5hbGVydC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbi5hbGVydC1zdWNjZXNzIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2M5ZTJiMztcbn1cbi5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMyYjU0MmM7XG59XG4uYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG4uYWxlcnQtaW5mbyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhNmUxZWM7XG59XG4uYWxlcnQtaW5mbyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMjQ1MjY5O1xufVxuLmFsZXJ0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmFsZXJ0LXdhcm5pbmcgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZjdlMWI1O1xufVxuLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzY2NTEyYztcbn1cbi5hbGVydC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmFsZXJ0LWRhbmdlciBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNlNGI5YzA7XG59XG4uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM4NDM1MzQ7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuQGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICB9XG59XG4ucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnByb2dyZXNzLWJhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweDtcbn1cbi5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXIuYWN0aXZlIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgLW8tYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xufVxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ubWVkaWEge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLm1lZGlhOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgem9vbTogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWVkaWEtb2JqZWN0LmltZy10aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhID4gLnB1bGwtbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG4ubWVkaWEtbGVmdCxcbi5tZWRpYS1yaWdodCxcbi5tZWRpYS1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm1lZGlhLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4ubWVkaWEtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGNvbG9yOiAjNTU1O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogIzMzMztcbn1cbmEubGlzdC1ncm91cC1pdGVtOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBjb2xvcjogIzc3Nzc3NztcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBjb2xvcjogI2JkZmNmZjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzc2M2Q7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0taW5mbyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG4gIGJvcmRlci1jb2xvcjogIzMxNzA4Zjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmMmNjO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTQ0NDI7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0Mjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogMTVweDtcbn1cbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbC1oZWFkaW5nID4gLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5wYW5lbC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtdGl0bGUgPiBhLFxuLnBhbmVsLXRpdGxlID4gc21hbGwsXG4ucGFuZWwtdGl0bGUgPiAuc21hbGwsXG4ucGFuZWwtdGl0bGUgPiBzbWFsbCA+IGEsXG4ucGFuZWwtdGl0bGUgPiAuc21hbGwgPiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXAsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGJvcmRlci13aWR0aDogMXB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5wYW5lbC1oZWFkaW5nICsgLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlIGNhcHRpb24sXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIGNhcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZSxcbi5wYW5lbCA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLXJlc3BvbnNpdmUsXG4ucGFuZWwgPiAudGFibGUgKyAucGFuZWwtYm9keSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlICsgLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbCA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwgKyAucGFuZWwge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHksXG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wOiAwO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2Y1ZjVmNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMztcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1zdWNjZXNzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICBib3JkZXItY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2RmZjBkODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNzYzZDtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1pbmZvIHtcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2Q5ZWRmNztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMxNzA4Zjtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2ZjZjhlMztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC1kYW5nZXIge1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG59XG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZjJkZWRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNlYmNjZDE7XG59XG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4uZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsXG4uZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZCxcbi5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCxcbi5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4ud2VsbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDE5cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4ud2VsbCBibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgb3BhY2l0eTogMC4yO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MjApO1xufVxuLmNsb3NlOmhvdmVyLFxuLmNsb3NlOmZvY3VzIHtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDUwO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG91dGxpbmU6IDA7XG59XG4ubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG4ubW9kYWwuaW4gLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuLm1vZGFsLW9wZW4gLm1vZGFsIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3gtc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBvdXRsaW5lOiAwO1xufVxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG4ubW9kYWwtYmFja2Ryb3AuZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cbi5tb2RhbC1iYWNrZHJvcC5pbiB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbn1cbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTVweDtcbn1cbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0bi1ncm91cCAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLm1vZGFsLWZvb3RlciAuYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICB9XG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICB3aWR0aDogOTAwcHg7XG4gIH1cbn1cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDcwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG4udG9vbHRpcC5pbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cbi50b29sdGlwLnRvcCB7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLnRvb2x0aXAucmlnaHQge1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi50b29sdGlwLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgcGFkZGluZzogNXB4IDA7XG59XG4udG9vbHRpcC5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4udG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi50b29sdGlwLnRvcCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggNXB4IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDVweDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5ib3R0b20gLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA2MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiAyNzZweDtcbiAgcGFkZGluZzogMXB4O1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5wb3BvdmVyLnRvcCB7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xufVxuLnBvcG92ZXIucmlnaHQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5wb3BvdmVyLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ucG9wb3Zlci5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuLnBvcG92ZXItdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbn1cbi5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiA5cHggMTRweDtcbn1cbi5wb3BvdmVyID4gLmFycm93LFxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICBib3JkZXItd2lkdGg6IDExcHg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMTBweDtcbiAgY29udGVudDogXCJcIjtcbn1cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3R0b206IC0xMXB4O1xufVxuLnBvcG92ZXIudG9wID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJvdHRvbTogMXB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5wb3BvdmVyLnJpZ2h0ID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGxlZnQ6IDFweDtcbiAgYm90dG9tOiAtMTBweDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcbn1cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0b3A6IC0xMXB4O1xufVxuLnBvcG92ZXIuYm90dG9tID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHRvcDogMXB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5sZWZ0ID4gLmFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICByaWdodDogMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xuICBib3R0b206IC0xMHB4O1xufVxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgLW8tdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xuICB0cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGltZyxcbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gYSA+IGltZyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAgIC1tb3otcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZS5yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5wcmV2LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUubGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQubGVmdCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldi5yaWdodCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLFxuLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSB7XG4gIGxlZnQ6IDA7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBsZWZ0OiAtMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LmxlZnQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldi5yaWdodCB7XG4gIGxlZnQ6IDA7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLmxlZnQge1xuICBsZWZ0OiAtMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUucmlnaHQge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTUlO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uY2Fyb3VzZWwtY29udHJvbC5sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjODAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO1xufVxuLmNhcm91c2VsLWNvbnRyb2wucmlnaHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzgwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO1xufVxuLmNhcm91c2VsLWNvbnRyb2w6aG92ZXIsXG4uY2Fyb3VzZWwtY29udHJvbDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgei1pbmRleDogNTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0IHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcmlnaHQ6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXY6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAzOSc7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwM2EnO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxNTtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMXB4O1xuICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uY2Fyb3VzZWwtY2FwdGlvbiAuYnRuIHtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2IHtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgICBsZWZ0OiAyMCU7XG4gICAgcmlnaHQ6IDIwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyLFxuLmRsLWhvcml6b250YWwgZGQ6YmVmb3JlLFxuLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIsXG4uY29udGFpbmVyOmJlZm9yZSxcbi5jb250YWluZXI6YWZ0ZXIsXG4uY29udGFpbmVyLWZsdWlkOmJlZm9yZSxcbi5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ucm93OmJlZm9yZSxcbi5yb3c6YWZ0ZXIsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSxcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsXG4uYnRuLXRvb2xiYXI6YmVmb3JlLFxuLmJ0bi10b29sYmFyOmFmdGVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YmVmb3JlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YWZ0ZXIsXG4ubmF2OmJlZm9yZSxcbi5uYXY6YWZ0ZXIsXG4ubmF2YmFyOmJlZm9yZSxcbi5uYXZiYXI6YWZ0ZXIsXG4ubmF2YmFyLWhlYWRlcjpiZWZvcmUsXG4ubmF2YmFyLWhlYWRlcjphZnRlcixcbi5uYXZiYXItY29sbGFwc2U6YmVmb3JlLFxuLm5hdmJhci1jb2xsYXBzZTphZnRlcixcbi5wYWdlcjpiZWZvcmUsXG4ucGFnZXI6YWZ0ZXIsXG4ucGFuZWwtYm9keTpiZWZvcmUsXG4ucGFuZWwtYm9keTphZnRlcixcbi5tb2RhbC1oZWFkZXI6YmVmb3JlLFxuLm1vZGFsLWhlYWRlcjphZnRlcixcbi5tb2RhbC1mb290ZXI6YmVmb3JlLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi5jbGVhcmZpeDphZnRlcixcbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLFxuLmNvbnRhaW5lcjphZnRlcixcbi5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ucm93OmFmdGVyLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlcixcbi5idG4tdG9vbGJhcjphZnRlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyLFxuLm5hdjphZnRlcixcbi5uYXZiYXI6YWZ0ZXIsXG4ubmF2YmFyLWhlYWRlcjphZnRlcixcbi5uYXZiYXItY29sbGFwc2U6YWZ0ZXIsXG4ucGFnZXI6YWZ0ZXIsXG4ucGFuZWwtYm9keTphZnRlcixcbi5tb2RhbC1oZWFkZXI6YWZ0ZXIsXG4ubW9kYWwtZm9vdGVyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFmZml4IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG4udmlzaWJsZS14cyxcbi52aXNpYmxlLXNtLFxuLnZpc2libGUtbWQsXG4udmlzaWJsZS1sZyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS14cyxcbiAgdGQudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXNtLFxuICB0ZC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLW1kLFxuICB0ZC52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1sZyxcbiAgdGQudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oaWRkZW4teHMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmhpZGRlbi1zbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmhpZGRlbi1tZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oaWRkZW4tbGcge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtcHJpbnQsXG4gIHRkLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmhpZGRlbi1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVNTIFZBUklBQkxFU1xuKiogICAgICAgICAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdmFyaWFibGVzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBwYWxldHRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udG9wLWJ1ZmZlci0xIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi50b3AtYnVmZmVyLTIge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuLnRvcC1idWZmZXItMyB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7XG59XG4udG9wLWJ1ZmZlci00IHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbn1cbi50b3AtYnVmZmVyLTUge1xuICBtYXJnaW4tdG9wOiA3NXB4O1xufVxuLnRvcC1idWZmZXItNiB7XG4gIG1hcmdpbi10b3A6IDkwcHg7XG59XG4udG9wLWJ1ZmZlci03IHtcbiAgbWFyZ2luLXRvcDogMTA1cHg7XG59XG4udG9wLWJ1ZmZlci04IHtcbiAgbWFyZ2luLXRvcDogMTIwcHg7XG59XG4udG9wLWJ1ZmZlci05IHtcbiAgbWFyZ2luLXRvcDogMTM1cHg7XG59XG4udG9wLWJ1ZmZlci0xMCB7XG4gIG1hcmdpbi10b3A6IDE1MHB4O1xufVxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1QQUMgTUFURVJJQUxcbi8qICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qKiBNaXhpbiBtYXRlcmlhbCBzdHlsZWQgZm9ybSBpbnB1dHMsIG92ZXJyaWRpbmcgYm9vdHN0cmFwJ3MgdW5nb2RseSByb3VuZC1uZXNzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBERU1PIEhUTUwgLSB1c2UgdGhpcyBodG1sIHRvIHRlc3QgYWxsIGltcGFjIG1hdGVyaWFsIGZlYXR1cmVzLlxuPGZvcm0+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPHNlbGVjdD5cbiAgICAgIDxvcHRpb24+VmFsdWUgMTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbj5WYWx1ZSAyPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlNlbGVjdGJveDwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0ZmllbGQ8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1tZXNzYWdlc1wiPlxuICAgICAgPHA+VGhpcyBpcyBhbiBlcnJvciBtZXNzYWdlPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0taW5saW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDx0ZXh0YXJlYSByZXF1aXJlZD48L3RleHRhcmVhPlxuICAgIDxsYWJlbCBmb3I9XCJ0ZXh0YXJlYVwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlRleHRhcmVhPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLXJhZGlvXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSByYWRpbyBidXR0b25cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS1wcmltYXJ5XCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS13YXJuXCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuPC9mb3JtPlxuKi9cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTCBTVFlMRVNcbioqICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiBzdHlsZXMgYXBwbGllZCBnbG9iYWwgb3IgaW5cbioqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgb3IgbW9yZSBjb21wb25lbnRzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDElICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIGgyIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyBoMyB7XG4gIG1hcmdpbjogMHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIGg0IHtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5hbmFseXRpY3MgLnBvc2l0aXZlLFxuLmFuYWx5dGljcyAuZ3JlZW4ge1xuICBjb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLm5lZ2F0aXZlLFxuLmFuYWx5dGljcyAucmVkIHtcbiAgY29sb3I6ICNlZDFlNzkgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLnBvc2l0aXZlMiB7XG4gIGNvbG9yOiAjM2ZjNGZmICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5uZWdhdGl2ZTIge1xuICBjb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyBzZWxlY3Qge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDMycHg7XG59XG4uYW5hbHl0aWNzIHByZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMHB4O1xuICBtYXJnaW46IDFweCAwcHggOHB4IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgLmtwaSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4OTZiMjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OWEyYmI7XG59XG4uYW5hbHl0aWNzIC5ub3BhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuLmFuYWx5dGljcyAubm9tYXJnaW4ge1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5idG4uYnRuLXNoYWRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzI2MmQ7XG4gIGJvcmRlcjogc29saWQgMXB4ICMwZTE4MWM7XG4gIGNvbG9yOiAjNjI2ZDZkO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyAuYnRuLmJ0bi1zaGFkZWQ6aG92ZXIge1xuICBjb2xvcjogIzZlN2E3YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwMzQzZTtcbn1cbi5hbmFseXRpY3MgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuLmFuYWx5dGljcyAuY3VycmVuY3kge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcyAubG9hZGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciBpIHtcbiAgY29sb3I6ICM2N0JCRTk7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIgcCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5yaWdodC1wYW5lbCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2U2ZTZlNjtcbn1cbi5hbmFseXRpY3MgLnNlbGVjdG9yIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAudGlsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gIGhlaWdodDogNDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAudGlsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmYyZmY7XG59XG4uYW5hbHl0aWNzIC50aWxlIC5jb2xvcmVkLWFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0ZDNEZGO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZsb2F0OiByaWdodDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIG1pbi13aWR0aDogOCU7XG59XG4uYW5hbHl0aWNzIC50aWxlIC5jb2xvcmVkLWFyZWEuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAudGlsZSAubWFpbi10ZXh0IHtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDIwcHggMHB4IDBweCA1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgbWFyZ2luOiBpbmhlcml0O1xuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lID4gW2NsYXNzKj0nY29sLSddIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSBpLmZhIHtcbiAgbWluLXdpZHRoOiAxMnB4O1xuICBtaW4taGVpZ2h0OiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93IC5kYXNoZWQge1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy5saW5lcy1ncm91cCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjZTZlZGVlO1xufVxuLnZlcnRpY2FsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5ob3Jpem9udGFsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzMjUyODtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0cy10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcgc3Ryb25nIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4uc29ydGFibGUtdGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc29ydGFibGUtdGl0bGUgZGl2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuZGl2W25nLW1lc3NhZ2VzXSB7XG4gIGNvbG9yOiAjRkYwMDAwO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTAxZjc0O1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTAxZjc0O1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5yb3cubm8tZ3V0dGVycyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5bY2xhc3NePVwiY29sLVwiXS5uby1ndXR0ZXJzLFxuW2NsYXNzKj1cIiBjb2wtXCJdLm5vLWd1dHRlcnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5AbWVkaWEgcHJpbnQge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzICNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAudGl0bGUtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnJpZ2h0LXBhbmVsIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIGNhbnZhcyB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgKiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoaXMgY29tbWVudHMgYmVsbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgZ3VscC1pbmplY3QgdG8gaW5qZWN0XG4gKiAgYWxsIHlvdXIgbGVzcyBmaWxlcyBhdXRvbWF0aWNhbGx5XG4gKi9cbi8qIGluamVjdDppbXBvcnRzICovXG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkge1xuICBsaW5lLWhlaWdodDogMjtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsID4gbGkubGlzdC1ncm91cC1pdGVtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDE1cHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsID4gbGkubGlzdC1ncm91cC1pdGVtIC5hbGVydC10b2dnbGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICBjb2xvcjogIzM1OGZkYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICNjNGNhY2E7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSAuZmEuZmEtdG9nZ2xlLW9uLFxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgLmZhLmZhLXRvZ2dsZS1vZmYge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwucmVjaXBpZW50cy1saXN0IHtcbiAgaGVpZ2h0OiA3NXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjNGNhY2E7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5yZWNpcGllbnRzLWxpc3QgbGkge1xuICBib3JkZXI6IG5vbmU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSBpbnB1dC5yZWNpcGllbnQtc2VhcmNoIHtcbiAgY29sb3I6IGJsYWNrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLmF2YWlsYWJsZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3Mge1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDE1MHB4O1xuICB9XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG4uYW5hbHl0aWNzLnNob3ctZGhiIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MuaGlkZS1kaGIge1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtaGVhZGluZyBpbWcucGRmLW1vZGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtaGVhZGluZyAuY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luOiA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUgaDMge1xuICBmb250LXNpemU6IDI2cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMjMzODQ1O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUgLmZhLmZhLXRpbWVzIHtcbiAgbWFyZ2luOiA2cHg7XG4gIGNvbG9yOiAjM2Q2MTc4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzM4NDU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDQ1cHggMTBweCA0NXB4O1xuICBtYXJnaW46IDEwcHggLTQ1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogQ2hyb21lL1NhZmFyaSAqL1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBGaXJlZm94ICovXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogSUUxMCsgKi9cbiAgLyogUnVsZXMgYmVsb3cgbm90IGltcGxlbWVudGVkIGluIGJyb3dzZXJzIHlldCAqL1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgICBwYWRkaW5nOiAwIDE1cHggMTBweCAxNXB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSB7XG4gIHBhZGRpbmc6IDE1cHggMHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzJkNDg1OTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgcC5pbnN0cnVjdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSBwLmluc3RydWN0aW9uIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAud2lkZ2V0LWFkZGVkLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAuZmEuY2xvc2Utc2VsZWN0b3Ige1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiA2cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIC5mYS5jbG9zZS1zZWxlY3Rvcjpob3ZlciB7XG4gIGNvbG9yOiAjOTk5OTk5O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50b3AtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxNXB4IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1oZWFkZXIge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBoZWlnaHQ6IDIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHAge1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcDpob3Zlcixcbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwLnNlbGVjdGVkIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODQwNGY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDg1OTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gW2NsYXNzKj0nY29sLSddOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogM3B4IDEycHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5saW5lLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUzMDNiO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAubGluZS1pdGVtLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTJweCAycHggMTBweCAtNHB4IGJsYWNrO1xuICBib3gtc2hhZG93OiAtMnB4IDJweCAxMHB4IC00cHggYmxhY2s7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiAuYXJyb3ctaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzM3B4O1xuICByaWdodDogLTExcHg7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiAuYXJyb3ctaWNvbiAuc3F1YXJlIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24gaS5mYS5mYS1jYXJldC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogNTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xLjVweDtcbiAgcmlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMzAzYjtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWhlYWRlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIHtcbiAgcGFkZGluZzogM3B4IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmZhLmZhLXBsdXMtY2lyY2xlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGhlaWdodDogMCU7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0ge1xuICBwYWRkaW5nOiAwIDEzcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleDogMCAzMS4zMyU7XG4gIG1hcmdpbjogMCAxJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyMzM4NDU7XG4gIG1pbi1oZWlnaHQ6IDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSB7XG4gICAgZmxleDogMCAxMDAlO1xuICB9XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHAubGluZS1pdGVtIHtcbiAgZmxleC1ncm93OiAxO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20ge1xuICBoZWlnaHQ6IDIwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvcGFjaXR5OiAwLjc7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIGE6aG92ZXIge1xuICBjb2xvcjogIzAwZTVmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tID4gLnN1Z2dlc3Rpb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgPiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsID4gZGl2ID4gKiB7XG4gIG1hcmdpbjogMHB4IDNweDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCBzZWxlY3Qge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZy10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIGltZy5iZyB7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuLmFuYWx5dGljcyAjbm8td2lkZ2V0cy1jb250YWluZXIgLmltcGFjLWluZm8tbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIC5pbXBhYy1pbmZvLW1lc3NhZ2UgLmluZm8tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogMjBweDtcbiAgbWluLWhlaWdodDogMTE1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzgsIDQ1LCAwLjcpO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0cy1zZWN0aW9uICN3aWRnZXRzLWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDcwMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0cy1zZWN0aW9uIC5wbGFjZUhvbGRlckJveCB7XG4gIG1hcmdpbjogMTJweDtcbiAgaGVpZ2h0OiAyNjdweDtcbiAgd2lkdGg6IDMwMHB4O1xuICBmbG9hdDogbGVmdDtcbiAgYm9yZGVyOiAycHggZGFzaGVkICNhYmM0YzY7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4uYW5hbHl0aWNzLmxvYWQtZmFpbGVkIHAge1xuICBmb250LXNpemU6IDIycHg7XG59XG4uYW5hbHl0aWNzLmxvYWQtZmFpbGVkIC5zZWNvbmQtbXNnIHAge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0LXNlbGVjdG9yLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSBpbnB1dCxcbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSB0ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgdGV4dGFyZWEge1xuICBoZWlnaHQ6IDE1MHB4O1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IC50aGFua3MtbWVzc2FnZSB7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuLm1vZGFsLWZvb3RlciAubG9hZGVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLWNyZWF0ZSAuYnRuLWNyZWF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSBoMSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5tb2RhbC5pbXBhYy1kYXNoYm9hcmQtY3JlYXRlIC5mYS5mYS10aW1lcyB7XG4gIGZsb2F0OiByaWdodDtcbiAgY29sb3I6ICNjY2M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tb2RhbC5pbXBhYy1kYXNoYm9hcmQtY3JlYXRlIC5jb250cm9sLWxhYmVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5tb2RhbC5pbXBhYy1kYXNoYm9hcmQtY3JlYXRlIC5tb2RhbC1mb290ZXIgLmxvYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWJjNGM2O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhci1yb3cge1xuICBtYXJnaW4tdG9wOiA1NHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhci1yb3cucGRmLW1vZGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIHtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuYnRuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDNweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAudGl0bGUtY29udGFpbmVyIGgxIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgY3Vyc29yOiBhdXRvO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUge1xuICBjb2xvcjogIzk3N2JmMDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC10aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjNzM0ZGViO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUgaS5mYS5mYS1wZW5jaWwge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUgaS5mYS5mYS1wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCB7XG4gIG1hcmdpbjogNXB4IDBweCAxMHB4IDMwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOTc3YmYwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk3N2JmMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlZGVlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiB7XG4gIGNvbG9yOiAjMTcyNjJkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uLmRhc2hib2FyZC1jcmVhdGUge1xuICBoZWlnaHQ6IDMzcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbi5kYXNoYm9hcmQtY3JlYXRlIC5idG4ge1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiBpLmZhLmZhLXBlbmNpbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTUlO1xuICBoZWlnaHQ6IDMwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiBpLmZhLmZhLXBlbmNpbDpob3ZlciB7XG4gIGNvbG9yOiAjNzM0ZGViO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gc3Bhbi5uYW1lIHtcbiAgd2lkdGg6IDg1JTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5jaGFuZ2UtbmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzMHB4O1xuICBsZWZ0OiAyMHB4O1xuICB3aWR0aDogNjAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyNjJkO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMjVweCA0cHggYmxhY2s7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCA0cHggYmxhY2s7XG4gIHotaW5kZXg6IDUwO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuY2hhbmdlLW5hbWUgLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGF0YS1zb3VyY2UtbGFiZWwge1xuICBjb2xvcjogIzE3MjYyZDtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIG1hcmdpbjogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAubG9hZGVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmxvYWRlci1jb250YWluZXIgLmxvYWRpbmctc3Bpbm5lciB7XG4gIGNvbG9yOiAjNjdCQkU5O1xuICBmb250LXNpemU6IDQwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQgPiBhLFxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQgPiBhIHRhYi1oZWFkaW5nIGEsXG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCA+IGEgdGFiLWhlYWRpbmcgYSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaSA+IGEge1xuICBwYWRkaW5nOiAxMHB4IDhweCAxMHB4IDE1cHg7XG4gIG1hcmdpbjogMCAycHggMCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FiYzRjNjtcbiAgY29sb3I6IGJsYWNrO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGkuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGkgPiBhIHtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkIHRhYi1oZWFkaW5nIGEge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgdGFiLWhlYWRpbmcgYS5jbG9zZS1saW5rIHtcbiAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC05cHg7XG4gIHJpZ2h0OiAxcHg7XG4gIGNvbG9yOiBibGFjaztcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSBpLmZhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSBpLmZhLmZhLXRvZ2dsZS1vbiB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAxcHggMHB4ICNjY2M7XG4gIGhlaWdodDogMTMwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNlYztcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyAudGVtcGxhdGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDIzMiwgMTE5LCAwLjYyKTtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyAudGVtcGxhdGUuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAxOTcsIDU3LCAwLjYyKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBtaW4taGVpZ2h0OiA5NXB4O1xuICBtYXgtaGVpZ2h0OiA5NXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS50cmlnZ2VyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIge1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZCAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC50b3AtbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktdGV4dCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLWljb24ge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS1pY29uIC5mYS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5lZGl0aW5nIHtcbiAgbWluLWhlaWdodDogMTg1cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaTpob3ZlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLnN0YXRpYyAua3BpLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC50b3AtbGluZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogN3B4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC50b3AtbGluZS50cmlnZ2VyZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDkwcHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWNvbnRlbnQuZWRpdGluZyB7XG4gIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzgwcHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IHtcbiAgICBwYWRkaW5nOiAxMHB4IDNweDtcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5lbXBoYXNpcyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5lbXBoYXNpcyAucmVhbC12YWx1ZSB7XG4gIGNvbG9yOiAjNjc2NzY3O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5jYXB0aW9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IHtcbiAgcGFkZGluZzogN3B4IDA7XG4gIGNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0ID4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dC50cmlnZ2VyZWQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICB9XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24ge1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgY29sb3I6IGdyZXk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24udHJpZ2dlcmVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktaWNvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGEge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS1uYW1lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS1uYW1lIGg2IHtcbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnJlYWwtdmFsdWUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWxlcnQtY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBiYWNrZ3JvdW5kOiAjZmY5OTk5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMnB4O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtd2F0Y2hhYmxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXVuaXQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDExcHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtd2F0Y2hhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICM4ZDhkOGQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtdW5pdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHJpZ2h0OiAwO1xuICBjb2xvcjogIzlhOWE5YTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucGFyYW0tbmFtZSB7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLndlbGwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLndlbGwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubmF2YmFyLWlubmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wb3BvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5wb3BvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmJ0bixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudG9vbHRpcCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudG9vbHRpcCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHByZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBwcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnByb2dyZXNzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5wcm9ncmVzcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubW9kYWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm1vZGFsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5hZGQtb24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmFkZC1vbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWxlcnQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmFsZXJ0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC50YWJsZS1ib3JkZXJlZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm5hdiA+IC5hY3RpdmUgPiBhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYmFkZ2UsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmJhZGdlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltZy1wb2xhcm9pZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW1nLXBvbGFyb2lkIHtcbiAgLW1vei1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBib2R5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYm9keTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQ6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWE6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBib2R5OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQ6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhOjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGE6aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBmaWVsZHNldCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBmaWVsZHNldCB7XG4gIG1hcmdpbjogMCAwIDEuNzVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMS4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjMxMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4xNzVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xNzVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lID4gLmJ0bixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUgPiAuYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0IHtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjMxMjVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTU2MjVyZW07XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNzgxMjVyZW0gc29saWQgIzk5OTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDAuMTU2MjVyZW07XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTAuMDc4MTI1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yOHMgZWFzZSwgd2lkdGggMC4yOHMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMS45O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB+IC5pbS1iYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRvcDogLTEuMjVyZW07XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLXJhZGlvIGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLXJhZGlvIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyBpbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBvcGFjaXR5OiAwLjAwMDAwMDAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTAuMzEyNXJlbTtcbiAgbGVmdDogLTAuMzEyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMC4zMTI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yOHMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBib3JkZXItY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3gsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC4wNzgxMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yOHMgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciAwLjI4cztcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUge1xuICB0b3A6IDAuODEyNXJlbTtcbiAgbGVmdDogMC40NzVyZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3ODEyNXJlbSAjZmZmO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0b3A6IDAuMzc1cmVtO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlciB7XG4gIGhlaWdodDogMC42MjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4yOHM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLW1lc3NhZ2VzIHtcbiAgZm9udC1zaXplOiAxLjA0MTY2NjY3cmVtO1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvciAubGVnZW5kLmxlZ2VuZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0taGVscGVyIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvciAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvciAuaW0tYmFyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM2MGE3ZTQ7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbjogMC43cmVtIDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b24gc3Bhbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIHNwYW4ge1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246YWN0aXZlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiBhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDZweDtcbiAgd2lkdGg6IDQ2cHg7XG4gIGZsZXg6IDAgMCA1NnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWI6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYjphY3RpdmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYjphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeTpob3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXdhcm4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS13YXJuIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXdhcm46aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICNjYTFjNjg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTJweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZDogIzRjNDc0OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktYWxlcnRzLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VkOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEycHg7XG4gIHJpZ2h0OiAtMTFweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1kYXRhLWxvYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA5NXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMgLmtwaSB7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAvKiBGbGF0dGVuIGRlciBCb290c3RyYXAgKi9cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLndlbGwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAucG9wb3Zlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYnRuLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC50b29sdGlwLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHNlbGVjdCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBwcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnByb2dyZXNzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5tb2RhbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYWRkLW9uLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5hbGVydCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLm5hdiA+IC5hY3RpdmUgPiBhLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5kcm9wZG93bi1tZW51LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC50b29sdGlwLWlubmVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5iYWRnZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAubGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltZy1wb2xhcm9pZCB7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYm9keSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBib2R5OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXQ6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYTo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBmaWVsZHNldCB7XG4gIG1hcmdpbjogMCAwIDEuNzVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMS4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjMxMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1pbmxpbmUgPiAuaW0tZm9ybS1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAwLjE3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjE3NXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1pbmxpbmUgPiAuYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0IHtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuMzEyNXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMC4xNTYyNXJlbTtcbiAgei1pbmRleDogMTtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgLmltLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNzgxMjVyZW0gc29saWQgIzk5OTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgLmltLWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMC4xNTYyNXJlbTtcbiAgd2lkdGg6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAtMC4wNzgxMjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjI4cyBlYXNlLCB3aWR0aCAwLjI4cyBlYXNlO1xuICB6LWluZGV4OiAyO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIHtcbiAgY29sb3I6ICMzMzM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRvcDogLTEuMjVyZW07XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8gbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTAuMzEyNXJlbTtcbiAgbGVmdDogLTAuMzEyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMC4zMTI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yOHMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGJvcmRlci1jb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB6LWluZGV4OiAwO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXItcmFkaXVzOiAwLjA3ODEyNXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI4cyBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIDAuMjhzO1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUge1xuICB0b3A6IDAuODEyNXJlbTtcbiAgbGVmdDogMC40NzVyZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3ODEyNXJlbSAjZmZmO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHRvcDogMC4zNzVyZW07XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlciB7XG4gIGhlaWdodDogMC42MjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4yOHM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLW1lc3NhZ2VzIHtcbiAgZm9udC1zaXplOiAxLjA0MTY2NjY3cmVtO1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzYwYTdlNDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBjb2xvcjogIzMzMztcbiAgbWFyZ2luOiAwLjdyZW0gMDtcbiAgcGFkZGluZzogMC40Mzc1cmVtIDEuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDZweDtcbiAgd2lkdGg6IDQ2cHg7XG4gIGZsZXg6IDAgMCA1NnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWI6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0td2FybiB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICNjYTFjNjg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuaW0tcHJpbWFyeSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkuZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjJiNWMxO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMuaW0tcHJpbWFyeS5kaXNhYmxlZCBhLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQgYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeS5kaXNhYmxlZCBhIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuaW0tcHJpbWFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gIHRvcDogLTE1cHg7XG4gIHJpZ2h0OiAtMTVweDtcbiAgei1pbmRleDogMTA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiAtMTRweDtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgdG9wOiAzMHB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMge1xuICAgIHRvcDogLTMwcHg7XG4gICAgcmlnaHQ6IDMzcHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMge1xuICB0b3A6IDc1cHg7XG4gIHJpZ2h0OiAtMTVweDtcbiAgei1pbmRleDogMTA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuZWRpdGluZyB7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuZWRpdGluZzpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM3NmIzZTc7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMge1xuICAgIHRvcDogLTMwcHg7XG4gICAgcmlnaHQ6IDc5cHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQtYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzI1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5pbXBhYy1rcGkge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5pbXBhYy1rcGkgLmtwaS5hZGQgLmtwaS1zaG93IC5jYXB0aW9uIHtcbiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLnRpdGxlIC50ZXh0LWNlbnRlciB7XG4gIGxpbmUtaGVpZ2h0OiAzO1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGZvbnQtc2l6ZTogbGFyZ2VyO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAuYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1YztcbiAgY29sb3I6ICM0ZjU5NTk7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IC0xcHg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLnRpdGxlIC5uby1rcGktdGVtcGxhdGVzIHtcbiAgY29sb3I6ICNhZmFkYjU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmFkZC1iYXIge1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5rcGktbG9hZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDExNXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDQwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmRhdGVzLXBpY2tlci1jb250YWluZXIgLnNkcC1mcm9tLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtdG8tbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4IDBweDtcbn1cbi5hbmFseXRpY3MucGRmLW1vZGUga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2lkZ2V0LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xuICBwYWRkaW5nOiAxMnB4O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMHB4O1xufVxuLndpZGdldC1pdGVtIC50b3AtbGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwcHggMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYzhkN2Q5O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtaW4taGVpZ2h0OiA0MXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHotaW5kZXg6IDQ7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA1cHggNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYzhkN2Q5O1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQge1xuICAgIGhlaWdodDogMjUwcHg7XG4gIH1cbiAgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgbWF4LWhlaWdodDogMTI1cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZzogM3B4IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhOGFiYWI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICM4ZTkyOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGFiYWI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgaDQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgcGFkZGluZzogMTBweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkZmUyZTI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgaDUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIG1hcmdpbjogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYWNiMGIxO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM3MjcyOGI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjZXNzaWJsZSB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNvbnRlbnQtdGVtcGxhdGUtd3JhcHBlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCB7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAuZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0N1wiO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgcG9zaXRpb246IGluaGVyaXQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIqMTJweCApO1xuICB6LWluZGV4OiAzO1xuICBwYWRkaW5nLXJpZ2h0OiAxcHg7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmLnRpdGxlIGg2IHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmLnRpY2sgaSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNSU7XG4gIGxlZnQ6IDQ2JTtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgb3BhY2l0eTogLjU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiBibGFjaztcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYgLndpZGdldC1ob3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogOXB4O1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgei1pbmRleDogMTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYgLndpZGdldC1ob3Zlcjpob3ZlciB7XG4gIG9wYWNpdHk6IC41O1xuICBiYWNrZ3JvdW5kOiAjQ0NDRkQwO1xufVxuLndpZGdldC1pdGVtIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5LFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogMztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTI1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogODUlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG4gIHotaW5kZXg6IDQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLnRpdGxlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAuYnRuLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAuYnRuIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgcGFkZGluZzogM3B4O1xuICB6LWluZGV4OiA2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIGEsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICB3aWR0aDogOTAlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAge1xuICBtYXJnaW46IDVweDtcbn1cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXksXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC50aXRsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmJ0bixcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudG9wIGEuYmFjay1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucGFnaW5hdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtc3RyaXBlZCB0ci5vcmlnaW46bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNjBweCk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBpbnB1dC5idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIC5mYS5mYS10aW1lcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5pbnZvaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU2MDA7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwuYmlsbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU3Y2IxO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAub3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogNTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIHtcbiAgei1pbmRleDogNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRvcDogNDVweDtcbiAgbGVmdDogNyU7XG4gIHdpZHRoOiA4NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSB7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMzUlO1xuICB3aWR0aDogMzAlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0ge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtID4gbGFiZWwsXG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiA+IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIGlucHV0LmZvcm0tY29udHJvbCxcbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICB3aWR0aDogOTAlO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogMjhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCBzZWxlY3Qge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmRpc2FibGUge1xuICBjb2xvcjogIzg4ODg4ODtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLm5ldmVyLWRpc2FibGUge1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5yZXBlYXQtYnRuIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5yZXBlYXQtYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgbWFyZ2luOiAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAucmVwZWF0LWJ0biAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIHtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuYmFkZ2Uge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmludGVydmFsLWZpZWxkIHtcbiAgd2lkdGg6IDQwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuYnRuLWdyb3VwIHNlbGVjdCB7XG4gIGhlaWdodDogMjJweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5idG4tZ3JvdXAgLmJ0biB7XG4gIGZsb2F0OiBub25lO1xuICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAuYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5iYWNrIC5idG4uYnRuLXNtIHtcbiAgbWFyZ2luLXRvcDogLTRweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5iYWNrIC5zZWFyY2gtYmFyIHtcbiAgd2lkdGg6IDE4MHB4O1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGhlaWdodDogMzBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5yZXNvdXJjZS10eXBlIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzcwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5yZXNvdXJjZS10eXBlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5uby1tYXJnaW4tdG9wIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20ge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC5ib3R0b20gLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDEwMHB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgLmFjdGlvbnMge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuYWN0aW9ucyAuZmEuZmEtdGltZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5pbnZvaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWQxYjE7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5iaWxscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmFlYjk7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ZCA+IC5leHBlY3RlZC1wYXltZW50LWRhdGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdGQgPiAuZXhwZWN0ZWQtcGF5bWVudC1kYXRlIC5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbiN0cmVuZHMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuI3RyZW5kcy1saXN0IC50b3AgYS5iYWNrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI3RyZW5kcy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIGlucHV0LmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiN0cmVuZHMtbGlzdCAudGFibGUtY29udGFpbmVyIC5saXN0aW5nIHtcbiAgb3V0bGluZS1zdHlsZTogbm9uZTtcbn1cbiN0cmVuZHMtYWRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuI3RyZW5kcy1hZGQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2Uge1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDE1JTtcbiAgd2lkdGg6IDcwJTtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC53cmFwcGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIHtcbiAgd2lkdGg6IDI1JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtID4gbGFiZWwge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDkwJTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjJweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbjogNHB4IDAgMTBweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gIHdpZHRoOiA3NCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLmN1cnJlbmN5IHNlbGVjdCB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnNob3ctc3RhdHVzIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXM6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXMgLmZhLmZhLWluZm8ge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNXB4IDdweCA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcbiAgY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkuZmEtY2hlY2sge1xuICBjb2xvcjogI2QxZTU1Yztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIge1xuICBtYXgtd2lkdGg6IDU1MHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAuY29ubmVjdG9yIHtcbiAgcGFkZGluZzogNHB4IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5jb25uZWN0b3IuYWRkLXNlcGVyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDRweCAxM3B4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIgcCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3Rlci5yZW1vdmUtc2VwZXJhdG9yIHtcbiAgYm9yZGVyOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wZW5kaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5ydW5uaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuZmFpbGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC51bmtub3duIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3Qge1xuICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5zdWNjZXNzIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmZhaWxlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnVua25vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tbGVmdDogMzFweDtcbiAgbWFyZ2luLXRvcDogOXB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5tZXNzYWdlIHAge1xuICBtYXJnaW46IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uc3VjY2VzcyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucGVuZGluZyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnJ1bm5pbmcgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5lcnJvciAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5mYWlsZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0udW5rbm93biAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5kaXNjb25uZWN0ZWQgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ud2l0aC1tZXNzYWdlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLndpdGgtbWVzc2FnZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICBib3JkZXI6IDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYSB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEuZXJyb3Ige1xuICBjb2xvcjogI0ZGMDAwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLndhcm4ge1xuICBjb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLnN1Y2Nlc3Mge1xuICBjb2xvcjogIzQ3ZmYwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB0YWJsZSB0aCxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgdGFibGUgdGQ6bm90KC5uZXN0ZWQtdGFibGUpIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgdGFibGUgdGg6bm90KDpmaXJzdC1jaGlsZCksXG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAudGFibGUtbGF5b3V0IHRhYmxlIHRkOm5vdCgubmVzdGVkLXRhYmxlKTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB0YWJsZSB0aFtuZy1jbGlja10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAudGFibGUtbGF5b3V0ICN0YWJsZS1sYXlvdXQgPiB0aGVhZCB0cjpmaXJzdC1jaGlsZCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5YmE2YTc7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZTZlZGVlO1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgI3RhYmxlLWxheW91dCAubmVzdGVkLXRhYmxlIGkuZmEge1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAxMzIsIDIyOCwgMC4xNik7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCA+IGRpdiB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2LnRhcmdldCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBjaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCA+IGRpdiB7XG4gICAgcGFkZGluZzogNXB4O1xuICB9XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAudGV4dCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHdoaXRlO1xuICBwYWRkaW5nOiAzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCBpbnB1dFtuYW1lPWFtb3VudF0ge1xuICBtYXgtd2lkdGg6IDcwcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAuY3VycmVuY3kge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMwMDA7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAuYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMCAycHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAuYWN0aW9ucyBidXR0b24ge1xuICBwYWRkaW5nOiAzcHggNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAuYWN0aW9ucyBidXR0b24ubG9hZGluZyB7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiA1O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIHtcbiAgei1pbmRleDogNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRvcDogNDVweDtcbiAgbGVmdDogNyU7XG4gIHdpZHRoOiA4NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbn1cbi5hbmFseXRpY3Mgd2lkZ2V0cy1jb21tb24tY29uZmlybS1tb2RhbCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIHAge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3Mgd2lkZ2V0cy1jb21tb24tY29uZmlybS1tb2RhbCAubWVzc2FnZSBidXR0b24uYnRuIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5hbmFseXRpY3Mgd2lkZ2V0cy1jb21tb24tY29uZmlybS1tb2RhbCAubWVzc2FnZSAubG9hZGVyIGkuZmEuZmEtc3Bpbm5lciB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbn1cbi5jdXJyZW5jeS1jb252ZXJzaW9ucyBpbWcge1xuICB3aWR0aDogMTVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmN1cnJlbmN5LWNvbnZlcnNpb25zLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAudGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBjdXJzb3I6IHRleHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBsaW5lLWhlaWdodDogMS45O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1pbnB1dCB7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjVweCk7XG4gIHBhZGRpbmc6IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIGJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogZG90dGVkIDFweCAjQjdDRENFO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogXCJMYXRvIFNlbWlib2xkXCIsIFwiTGF0b1wiO1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWw6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiTGF0byBNZWRpdW1cIiwgXCJMYXRvXCI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLWluZm8tY2lyY2xlIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLXRpbWVzLWNpcmNsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBmbGV4OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2FiYzRjNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC5rZXkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC52YWx1ZSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogI2M0Y2FjYTtcbiAgcGFkZGluZzogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgd2lkdGg6IDE3cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uOmFjdGl2ZSxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4taW5mbyB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjRkZDOTI4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZXhwb3J0IHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1leHBvcnQ6aG92ZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLXJlZnJlc2gge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLXJlZnJlc2g6aG92ZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0OmhvdmVyLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdC5lZGl0LW1vZGUge1xuICBjb2xvcjogI2NmZDg0OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5wYXJhbS1zZWxlY3RvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogOTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkgLmxlZ2VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDExNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkgLmxlZ2VuZCAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcyAubGVnZW5kID4gLnRpdGxlIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2UgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDQ5MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lci5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLm5vLWRhdGEtYmxvY2sge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMTVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yb3cubGluZXMtZ3JvdXAuY2FzaCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweDtcbiAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiAucGFyYW0tc2VsZWN0b3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogOTRweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgcHJpbnQge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNDBweDtcbiAgYm90dG9tOiAzMHB4O1xuICB3aWR0aDogMTYwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdFtkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCBvcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qgb3B0aW9uW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gYnV0dG9uLmNsb3NlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5yb3cge1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogNjVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuY29tcGFyYWJsZS1lcnJvciBoNSB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICBjb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiBoMyB7XG4gIG1hcmdpbi10b3A6IDg1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24gLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDEyNXB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogNXB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZzogM3B4IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2E4YWJhYjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBib3JkZXI6IHNvbGlkIDFweCAjOGU5MjkyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThhYmFiO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgaDQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZmNmYztcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2RmZTJlMjtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IGg1IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhY2IwYjE7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzcyNzI4Yjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmFjY291bnQtY2xhc3MtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLndpZGdldC1saW5lLmhlYWRlci5zb3J0aW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlLXdlaWdodCAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlLXdlaWdodCAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2VzLXJldmVudWUgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnN0YXRlbWVudC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuYmFsYW5jZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuY3VycmVuY3ktY2VudGVyZWQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLmhlYWRlcnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnNwYWNlciB7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLmNvbWUtYmFjay1sYXRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2UgLm5lZ2F0aXZlMiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJvdy5saW5lcy1ncm91cC5wcm9maXQge1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgaDMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5wYXlhYmxlIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzVCNjY2NztcbiAgd2lkdGg6IDc1JTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCAubWVtYmVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgYnV0dG9uIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAubGVnZW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIgLnByaWNlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAuc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAubGVnZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSAuZW1wbG95ZWUtbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5iYWxhbmNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSBoMyB7XG4gIG1hcmdpbi10b3A6IDMzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy10b29sYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1kYXktZ3JpZCxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtd2lkZ2V0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMubGVmdCB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMucmlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5wcmljZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgaDMge1xuICBtYXJnaW4tdG9wOiA2M3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogMjNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMubGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiA2OXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMucmVkdWNlZC1sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC5wcmljZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDc1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBmb250LXNpemU6IDExcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItdGltZXNoZWV0cyAuY3VycmVuY3kge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yb3cuYXN0ZXJpY2tzLWluZm8ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLnJpZ2h0LWNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgd2lkdGg6IDEwMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tZGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLnRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyYTQ0NTM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLmRlZmluZS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAucHJpY2Uge1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24ge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDI1MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1hZ2VkIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5sb2FkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5yb3cudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiA0OXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAxNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIubm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlLWNvbnRhaW5lcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBsaW5lLWhlaWdodDogODVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLm9wZXJhdG9yIHtcbiAgcGFkZGluZy10b3A6IDM4cHg7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZXMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLnNlbGVjdG9yIC5zZWxlY3Rvci13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1heC1oZWlnaHQ6IDc3cHggIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93IHtcbiAgbWFyZ2luOiAwcHggLTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAudG90YWwge1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyB7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQge1xuICBtYXJnaW46IDE1cHggMHB4IDEwcHggMHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZWRlZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQgc3Bhbi50aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLm5vbWluYWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLnZhcmlhdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDUwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIGgzLnJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogNTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLmFuYWx5c2lzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAucmlnaHQtcGFuZWwgaDMge1xuICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuc2VsZWN0b3Ige1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciB7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuc3ViLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93ID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLmNvbG9yZWQtYXJlYSB7XG4gIHdpZHRoOiAxMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIC5tYWluLXRleHQge1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogM3B4IDBweCAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAubWFpbi10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQge1xuICBoZWlnaHQ6IDU1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLmNvbG9yZWQtYXJlYSB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUuc2Vjb25kIC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xuICBib3JkZXI6IHNvbGlkIDFweCAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeS5mb2N1cyxcbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIHtcbiAgcGFkZGluZzogOHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdyB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSAuYXR0YWNoLWtwaS1mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxMHB4IDJweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybS5hdHRhY2gta3BpLWZvcm0gaW5wdXQuYXR0YWNoLXRhcmdldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSAuZXJyb3ItbWVzc2FnZXMge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgd2lkdGg6IDEyMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaGVkLWtwaXMge1xuICBwYWRkaW5nOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmF0dGFjaGVkLWtwaS1uYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDc1JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMge1xuICBwYWRkaW5nLXRvcDogMnB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmFsZXJ0cy1jb25maWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIHdpZHRoOiAyMXB4O1xuICBjb2xvcjogIzM1OGZkYztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQgMXB4ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuYWxlcnRzLWNvbmZpZzpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSBpIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuZWRpdC1hdHRhY2hlZC1rcGkgaTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5yZW1vdmUtYXR0YWNoZWQta3BpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkgaSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHdpZHRoOiAyMXB4O1xuICBjb2xvcjogI2UwMWY3NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkgaTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyAucm93IHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgaDUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uZGF0ZS1idXR0b24ge1xuICBtYXJnaW46IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uYnRuLWRhbmdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20uYnRuLWluZm8ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgLnRvb2x0aXAtaW5uZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciAuZHJvcGRvd24tbWVudSA+IGxpID4gZGl2ID4gdGFibGUge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIge1xuICBtYXgtaGVpZ2h0OiA3MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgW2NvbW1vbi10aW1lLXBlcmlvZC1pbmZvXSB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyB7XG4gIHdpZHRoOiAxNTBweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIGEge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMgYS5hY3RpdmUge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTE0cHg7XG4gIG1hcmdpbjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIucmlnaHQge1xuICBsZWZ0OiA0NnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lci5sZWZ0IHtcbiAgbGVmdDogLTMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIC5hcnJvdy1ib3JkZXIge1xuICBib3JkZXItdG9wOiAxNHB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciAuYXJyb3cge1xuICBib3JkZXItdG9wOiAxNHB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTJweDtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5saW1pdC1lbnRyaWVzIHtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjRTZFNkU2O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MubGltaXQtZW50cmllcyBhLm9wdGlvbi5iYWRnZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFFMzAzQjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIC5mYS10cmFzaC1vIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUgLmZhLXRyYXNoLW86aG92ZXIge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyBpbnB1dCB7XG4gIHdpZHRoOiA3NSU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIGJ1dHRvbiB7XG4gIHdpZHRoOiAzMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb24sXG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtY2hlY2stY2lyY2xlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9mZixcbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS1jaXJjbGUtdGhpbiB7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yLmNsYXNzaWMge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3Rvci5jbGFzc2ljIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMHB4IDBweCA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzk3N2JmMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgei1pbmRleDogOTk5O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC13ZWJraXQtYm94LXNoYWRvdzogIzAwMDAwMCAwcHggM3B4IDE1cHggLTNweDtcbiAgYm94LXNoYWRvdzogIzAwMDAwMCAwcHggM3B4IDE1cHggLTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIgLnBhcmFtLXNlbGVjdG9yLWxhYmVsIHtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIC5wYXJhbS1zZWxlY3Rvci1sYWJlbDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDdlMmU0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk5MmYzO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBwYWRkaW5nOiAycHggMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgaW5wdXQge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciB7XG4gIG1hcmdpbjogMHB4IDNweCAzcHggMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzMDNCO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQgMXB4ICMxRTMwM0I7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBtb3ZlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogMHB4IC0zcHggMHB4IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gIGNvbG9yOiAjMUUzMDNCO1xuICBwYWRkaW5nOiAycHggNnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlci51bmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWNvbG9yOiAjYzJjNGM0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlci51bmNoZWNrZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNGY0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9uLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtY2hlY2stY2lyY2xlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5zb3VyY2Utc2VsZWN0b3IgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb2ZmLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtY2lyY2xlLXRoaW4ge1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNGY0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9uIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9mZiB7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC5idG4uYnRuLWRlZmF1bHQge1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgLnRhZ3MtY29sIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHRhZ3MtaW5wdXQgLnRhZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB0YWdzLWlucHV0IC50YWdzIC50YWctaXRlbSB7XG4gIGJhY2tncm91bmQ6ICM3OWEyYmI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgLmhvc3Qge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qgc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyB7XG4gIG1hcmdpbjogMHB4IC01cHggN3B4IC01cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cgPiBkaXYge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93IC5zdWItc2V0dGluZyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkge1xuICBjb2xvcjogc2lsdmVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaS5yZWR1Y2Uge1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkuZXhwYW5kIHtcbiAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0YS1jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmxlZnQtcGFuZWwge1xuICB3aWR0aDogMTgwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbjogM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIGkge1xuICBmb250LXNpemU6IDE5cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0gc3BhbiB7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAucmlnaHQtcGFuZWwge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTgwcHgpO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLnJpZ2h0LXBhbmVsIC5jYXNoLWJhbGFuY2UtY2hhcnQge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0ZXMtcGlja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHJlY3QuaGlnaGNoYXJ0cy1wb2ludCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gc3BhbiB7XG4gIHdpZHRoOiAxMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHNwYW4gaW1nIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTVweDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5kYXRlcy1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWludm9pY2VzLWxpc3Qge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi8qIGVuZGluamVjdCAqL1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vL1xuLy8gMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbi8vIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4vLyAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4vL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDFcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4vL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4vLyBhbmQgRmlyZWZveC5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4vL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4vLyAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4vL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIDFcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvLyAyXG59XG5cbi8vXG4vLyBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuLy8gUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbi8vXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbi8vIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbi8vXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuLy9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vL1xuLy8gSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuLy8gYWN0aXZlL2hvdmVyIHN0YXRlLlxuLy9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4vLyBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbi8vXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy9cbi8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8vIEVtYmVkZGVkIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbi8vXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLy9cbi8vIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuLy9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBHcm91cGluZyBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4vL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vL1xuLy8gQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuLy9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLy8gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuLy8gc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuLy9cblxuLy9cbi8vIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuLy8gMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDFcbiAgZm9udDogaW5oZXJpdDsgLy8gMlxuICBtYXJnaW46IDA7IC8vIDNcbn1cblxuLy9cbi8vIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuLy9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4vLyBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuLy8gQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbi8vIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbi8vXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2Bcbi8vICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuLy8gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuLy8gMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbi8vICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbi8vXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAyXG4gIGN1cnNvcjogcG9pbnRlcjsgLy8gM1xufVxuXG4vL1xuLy8gUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbi8vXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbi8vXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuLy8gdGhlIFVBIHN0eWxlc2hlZXQuXG4vL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8vXG4vLyBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4vLyBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuLy9cbi8vIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4vLyAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuLy9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuLy8gYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbi8vIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbi8vXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vL1xuLy8gMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vLyAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLzJcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuLy8gU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuLy8gcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vXG4vLyBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4vL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbi8vIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbi8vXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuLy9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbi8vIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuLy9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuLy9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvL1xuLy8gR2x5cGhpY29ucyBmb3IgQm9vdHN0cmFwXG4vL1xuLy8gU2luY2UgaWNvbnMgYXJlIGZvbnRzLCB0aGV5IGNhbiBiZSBwbGFjZWQgYW55d2hlcmUgdGV4dCBpcyBwbGFjZWQgYW5kIGFyZVxuLy8gdGh1cyBhdXRvbWF0aWNhbGx5IHNpemVkIHRvIG1hdGNoIHRoZSBzdXJyb3VuZGluZyBjaGlsZC4gVG8gdXNlLCBjcmVhdGUgYW5cbi8vIGlubGluZSBlbGVtZW50IHdpdGggdGhlIGFwcHJvcHJpYXRlIGNsYXNzZXMsIGxpa2Ugc286XG4vL1xuLy8gPGEgaHJlZj1cIiNcIj48c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tc3RhclwiPjwvc3Bhbj4gU3RhcjwvYT5cblxuLy8gSW1wb3J0IHRoZSBmb250c1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBzcmM6IHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5lb3QnKTtcbiAgc3JjOiB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5zdmcjQHtpY29uLWZvbnQtc3ZnLWlkfScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi8vIENhdGNoYWxsIGJhc2VjbGFzc1xuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLyBJbmRpdmlkdWFsIGljb25zXG4uZ2x5cGhpY29uLWFzdGVyaXNrICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMDJhXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDAyYlwiOyB9IH1cbi5nbHlwaGljb24tZXVybyxcbi5nbHlwaGljb24tZXVyICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYWNcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjYwMVwiOyB9IH1cbi5nbHlwaGljb24tZW52ZWxvcGUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI3MDlcIjsgfSB9XG4uZ2x5cGhpY29uLXBlbmNpbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzBmXCI7IH0gfVxuLmdseXBoaWNvbi1nbGFzcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwMVwiOyB9IH1cbi5nbHlwaGljb24tbXVzaWMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDJcIjsgfSB9XG4uZ2x5cGhpY29uLXNlYXJjaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAzXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwNVwiOyB9IH1cbi5nbHlwaGljb24tc3RhciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXItZW1wdHkgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA3XCI7IH0gfVxuLmdseXBoaWNvbi11c2VyICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwOFwiOyB9IH1cbi5nbHlwaGljb24tZmlsbSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxhcmdlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEwXCI7IH0gfVxuLmdseXBoaWNvbi10aCAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMVwiOyB9IH1cbi5nbHlwaGljb24tdGgtbGlzdCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTJcIjsgfSB9XG4uZ2x5cGhpY29uLW9rICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEzXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNFwiOyB9IH1cbi5nbHlwaGljb24tem9vbS1pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20tb3V0ICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE2XCI7IH0gfVxuLmdseXBoaWNvbi1vZmYgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxN1wiOyB9IH1cbi5nbHlwaGljb24tc2lnbmFsICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvZyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE5XCI7IH0gfVxuLmdseXBoaWNvbi10cmFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMFwiOyB9IH1cbi5nbHlwaGljb24taG9tZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbGUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIyXCI7IH0gfVxuLmdseXBoaWNvbi10aW1lICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyM1wiOyB9IH1cbi5nbHlwaGljb24tcm9hZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjRcIjsgfSB9XG4uZ2x5cGhpY29uLWRvd25sb2FkLWFsdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI1XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNlwiOyB9IH1cbi5nbHlwaGljb24tdXBsb2FkICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWluYm94ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI4XCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOVwiOyB9IH1cbi5nbHlwaGljb24tcmVwZWF0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzBcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZnJlc2ggICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMxXCI7IH0gfVxuLmdseXBoaWNvbi1saXN0LWFsdCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMlwiOyB9IH1cbi5nbHlwaGljb24tbG9jayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYWcgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM0XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkcGhvbmVzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNVwiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLW9mZiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM3XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzOFwiOyB9IH1cbi5nbHlwaGljb24tcXJjb2RlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWJhcmNvZGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQwXCI7IH0gfVxuLmdseXBoaWNvbi10YWcgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MVwiOyB9IH1cbi5nbHlwaGljb24tdGFncyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWJvb2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQzXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rbWFyayAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NFwiOyB9IH1cbi5nbHlwaGljb24tcHJpbnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDVcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbWVyYSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ2XCI7IH0gfVxuLmdseXBoaWNvbi1mb250ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0N1wiOyB9IH1cbi5nbHlwaGljb24tYm9sZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWl0YWxpYyAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ5XCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWhlaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC13aWR0aCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUyXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1M1wiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTRcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWp1c3RpZnkgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU1XCI7IH0gfVxuLmdseXBoaWNvbi1saXN0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NlwiOyB9IH1cbi5nbHlwaGljb24taW5kZW50LWxlZnQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU4XCI7IH0gfVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OVwiOyB9IH1cbi5nbHlwaGljb24tcGljdHVyZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjBcIjsgfSB9XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXIgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYyXCI7IH0gfVxuLmdseXBoaWNvbi1hZGp1c3QgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2M1wiOyB9IH1cbi5nbHlwaGljb24tdGludCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjRcIjsgfSB9XG4uZ2x5cGhpY29uLWVkaXQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY1XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NlwiOyB9IH1cbi5nbHlwaGljb24tY2hlY2sgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjdcIjsgfSB9XG4uZ2x5cGhpY29uLW1vdmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY4XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWJhY2t3YXJkICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzBcIjsgfSB9XG4uZ2x5cGhpY29uLWJhY2t3YXJkICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcxXCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MlwiOyB9IH1cbi5nbHlwaGljb24tcGF1c2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzNcIjsgfSB9XG4uZ2x5cGhpY29uLXN0b3AgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc0XCI7IH0gfVxuLmdseXBoaWNvbi1mb3J3YXJkICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0ZXAtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc3XCI7IH0gfVxuLmdseXBoaWNvbi1lamVjdCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3OFwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1sZWZ0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgwXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MVwiOyB9IH1cbi5nbHlwaGljb24tbWludXMtc2lnbiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODJcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgzXCI7IH0gfVxuLmdseXBoaWNvbi1vay1zaWduICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NFwiOyB9IH1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbiAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODVcIjsgfSB9XG4uZ2x5cGhpY29uLWluZm8tc2lnbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg2XCI7IH0gfVxuLmdseXBoaWNvbi1zY3JlZW5zaG90ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4N1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODhcIjsgfSB9XG4uZ2x5cGhpY29uLW9rLWNpcmNsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg5XCI7IH0gfVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MFwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctbGVmdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkyXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy11cCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5M1wiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctZG93biAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNoYXJlLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk1XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtZnVsbCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NlwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24gICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAxXCI7IH0gfVxuLmdseXBoaWNvbi1naWZ0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMlwiOyB9IH1cbi5nbHlwaGljb24tbGVhZiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWZpcmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA0XCI7IH0gfVxuLmdseXBoaWNvbi1leWUtb3BlbiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNVwiOyB9IH1cbi5nbHlwaGljb24tZXllLWNsb3NlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbiAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA3XCI7IH0gfVxuLmdseXBoaWNvbi1wbGFuZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwOFwiOyB9IH1cbi5nbHlwaGljb24tY2FsZW5kYXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXJhbmRvbSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21tZW50ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMVwiOyB9IH1cbi5nbHlwaGljb24tbWFnbmV0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTJcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tdXAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEzXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNFwiOyB9IH1cbi5nbHlwaGljb24tcmV0d2VldCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE2XCI7IH0gfVxuLmdseXBoaWNvbi1mb2xkZXItY2xvc2UgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExN1wiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMThcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE5XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMFwiOyB9IH1cbi5nbHlwaGljb24taGRkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWJ1bGxob3JuICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIyXCI7IH0gfVxuLmdseXBoaWNvbi1iZWxsICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyM1wiOyB9IH1cbi5nbHlwaGljb24tY2VydGlmaWNhdGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXRodW1icy11cCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI1XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNlwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI4XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOVwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzBcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodCAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMxXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMlwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1kb3duICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM0XCI7IH0gfVxuLmdseXBoaWNvbi1nbG9iZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNVwiOyB9IH1cbi5nbHlwaGljb24td3JlbmNoICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXRhc2tzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM3XCI7IH0gfVxuLmdseXBoaWNvbi1maWx0ZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzOFwiOyB9IH1cbi5nbHlwaGljb24tYnJpZWZjYXNlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWZ1bGxzY3JlZW4gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQwXCI7IH0gfVxuLmdseXBoaWNvbi1kYXNoYm9hcmQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MVwiOyB9IH1cbi5nbHlwaGljb24tcGFwZXJjbGlwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQzXCI7IH0gfVxuLmdseXBoaWNvbi1saW5rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NFwiOyB9IH1cbi5nbHlwaGljb24tcGhvbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDVcIjsgfSB9XG4uZ2x5cGhpY29uLXB1c2hwaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ2XCI7IH0gfVxuLmdseXBoaWNvbi11c2QgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0OFwiOyB9IH1cbi5nbHlwaGljb24tZ2JwICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUwXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0ICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MVwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXIgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUzXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU2XCI7IH0gfVxuLmdseXBoaWNvbi11bmNoZWNrZWQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1N1wiOyB9IH1cbi5nbHlwaGljb24tZXhwYW5kICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbGxhcHNlLWRvd24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU5XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MFwiOyB9IH1cbi5nbHlwaGljb24tbG9nLWluICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYXNoICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYyXCI7IH0gfVxuLmdseXBoaWNvbi1sb2ctb3V0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2M1wiOyB9IH1cbi5nbHlwaGljb24tbmV3LXdpbmRvdyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlY29yZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY1XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NlwiOyB9IH1cbi5nbHlwaGljb24tb3BlbiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjdcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmVkICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY4XCI7IH0gfVxuLmdseXBoaWNvbi1pbXBvcnQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OVwiOyB9IH1cbi5nbHlwaGljb24tZXhwb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzBcIjsgfSB9XG4uZ2x5cGhpY29uLXNlbmQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcxXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktZGlzayAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MlwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmVkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc0XCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzZcIjsgfSB9XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc3XCI7IH0gfVxuLmdseXBoaWNvbi10cmFuc2ZlciAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3OFwiOyB9IH1cbi5nbHlwaGljb24tY3V0bGVyeSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYWRlciAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21wcmVzc2VkICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MVwiOyB9IH1cbi5nbHlwaGljb24tZWFycGhvbmUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODJcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgzXCI7IH0gfVxuLmdseXBoaWNvbi10b3dlciAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NFwiOyB9IH1cbi5nbHlwaGljb24tc3RhdHMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODVcIjsgfSB9XG4uZ2x5cGhpY29uLXNkLXZpZGVvICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg2XCI7IH0gfVxuLmdseXBoaWNvbi1oZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4N1wiOyB9IH1cbi5nbHlwaGljb24tc3VidGl0bGVzICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODhcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbyAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1kb2xieSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MFwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNS0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTYtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC03LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5M1wiOyB9IH1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcmsgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZ2lzdHJhdGlvbi1tYXJrICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk1XCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZCAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5N1wiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOThcIjsgfSB9XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlciAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk5XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91cyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMFwiOyB9IH1cbi5nbHlwaGljb24tY2QgICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDFcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmUtZmlsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAyXCI7IH0gfVxuLmdseXBoaWNvbi1vcGVuLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwM1wiOyB9IH1cbi5nbHlwaGljb24tbGV2ZWwtdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDRcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHkgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA1XCI7IH0gfVxuLmdseXBoaWNvbi1wYXN0ZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNlwiOyB9IH1cbi8vIFRoZSBmb2xsb3dpbmcgMiBHbHlwaGljb25zIGFyZSBvbWl0dGVkIGZvciB0aGUgdGltZSBiZWluZyBiZWNhdXNlXG4vLyB0aGV5IGN1cnJlbnRseSB1c2UgVW5pY29kZSBjb2RlcG9pbnRzIHRoYXQgYXJlIG91dHNpZGUgdGhlXG4vLyBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUgKEJNUCkuIE9sZGVyIGJ1Z2d5IHZlcnNpb25zIG9mIFdlYktpdCBjYW4ndCBoYW5kbGVcbi8vIG5vbi1CTVAgY29kZXBvaW50cyBpbiBDU1Mgc3RyaW5nIGVzY2FwZXMsIGFuZCB0aHVzIGNhbid0IGRpc3BsYXkgdGhlc2UgdHdvIGljb25zLlxuLy8gTm90YWJseSwgdGhlIGJ1ZyBhZmZlY3RzIHNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEFuZHJvaWQgQnJvd3Nlci5cbi8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDEwNlxuLy8gLmdseXBoaWNvbi1kb29yICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY2YWFcIjsgfSB9XG4vLyAuZ2x5cGhpY29uLWtleSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwxZjUxMVwiOyB9IH1cbi5nbHlwaGljb24tYWxlcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDlcIjsgfSB9XG4uZ2x5cGhpY29uLWVxdWFsaXplciAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEwXCI7IH0gfVxuLmdseXBoaWNvbi1raW5nICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMVwiOyB9IH1cbi5nbHlwaGljb24tcXVlZW4gICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhd24gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEzXCI7IH0gfVxuLmdseXBoaWNvbi1iaXNob3AgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNFwiOyB9IH1cbi5nbHlwaGljb24ta25pZ2h0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTVcIjsgfSB9XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYSAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE2XCI7IH0gfVxuLmdseXBoaWNvbi10ZW50ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjZmYVwiOyB9IH1cbi5nbHlwaGljb24tYmxhY2tib2FyZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMThcIjsgfSB9XG4uZ2x5cGhpY29uLWJlZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE5XCI7IH0gfVxuLmdseXBoaWNvbi1hcHBsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjhmZlwiOyB9IH1cbi5nbHlwaGljb24tZXJhc2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWhvdXJnbGFzcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMzFiXCI7IH0gfVxuLmdseXBoaWNvbi1sYW1wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyM1wiOyB9IH1cbi5nbHlwaGljb24tZHVwbGljYXRlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXBpZ2d5LWJhbmsgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI1XCI7IH0gfVxuLmdseXBoaWNvbi1zY2lzc29ycyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNlwiOyB9IH1cbi5nbHlwaGljb24tYml0Y29pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWJ0YyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi14YnQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teWVuICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwYTVcIjsgfSB9XG4uZ2x5cGhpY29uLWpweSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1ydWJsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBiZFwiOyB9IH1cbi5nbHlwaGljb24tcnViICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXNjYWxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMwXCI7IH0gfVxuLmdseXBoaWNvbi1pY2UtbG9sbHkgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMVwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWVkdWNhdGlvbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMzXCI7IH0gfVxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNFwiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzVcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM2XCI7IH0gfVxuLmdseXBoaWNvbi1tb2RhbC13aW5kb3cgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzN1wiOyB9IH1cbi5nbHlwaGljb24tb2lsICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWdyYWluICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM5XCI7IH0gfVxuLmdseXBoaWNvbi1zdW5nbGFzc2VzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1zaXplICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtY29sb3IgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQyXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0M1wiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDRcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b20gICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ1XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24taG9yaXpvbnRhbHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NlwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDdcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbCAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ4XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWxlZnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUxXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b20gICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MlwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbnNvbGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU0XCI7IH0gfVxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NVwiOyB9IH1cbi5nbHlwaGljb24tc3Vic2NyaXB0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTZcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU3XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1OFwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTlcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtdXAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjYwXCI7IH0gfVxuIiwiLy9cbi8vIFNjYWZmb2xkaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFJlc2V0IHRoZSBib3gtc2l6aW5nXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgcmVzZXQgbWF5IGNhdXNlIGNvbmZsaWN0cyB3aXRoIHNvbWUgdGhpcmQtcGFydHkgd2lkZ2V0cy5cbi8vIEZvciByZWNvbW1lbmRhdGlvbnMgb24gcmVzb2x2aW5nIHN1Y2ggY29uZmxpY3RzLCBzZWVcbi8vIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jdGhpcmQtYm94LXNpemluZ1xuKiB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG5cblxuLy8gQm9keSByZXNldFxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LWJhc2U7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XG59XG5cbi8vIFJlc2V0IGZvbnRzIGZvciByZWxldmFudCBlbGVtZW50c1xuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5cbi8vIExpbmtzXG5cbmEge1xuICBjb2xvcjogQGxpbmstY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgLnRhYi1mb2N1cygpO1xuICB9XG59XG5cblxuLy8gRmlndXJlc1xuLy9cbi8vIFdlIHJlc2V0IHRoaXMgaGVyZSBiZWNhdXNlIHByZXZpb3VzbHkgTm9ybWFsaXplIGhhZCBubyBgZmlndXJlYCBtYXJnaW5zLiBUaGlzXG4vLyBlbnN1cmVzIHdlIGRvbid0IGJyZWFrIGFueW9uZSdzIHVzZSBvZiB0aGUgZWxlbWVudC5cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5cbi8vIEltYWdlc1xuXG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcbi5pbWctcmVzcG9uc2l2ZSB7XG4gIC5pbWctcmVzcG9uc2l2ZSgpO1xufVxuXG4vLyBSb3VuZGVkIGNvcm5lcnNcbi5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byB0aHVtYm5haWxzLmxlc3MgZm9yIGAudGh1bWJuYWlsYC5cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogQHRodW1ibmFpbC1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XG4gIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZS1pbi1vdXQpO1xuXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxuICAuaW1nLXJlc3BvbnNpdmUoaW5saW5lLWJsb2NrKTtcbn1cblxuLy8gUGVyZmVjdCBjaXJjbGVcbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXG59XG5cblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuXG5ociB7XG4gIG1hcmdpbi10b3A6ICAgIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAaHItYm9yZGVyO1xufVxuXG5cbi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnRcblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvTk9URS1XQ0FHMjAtVEVDSFMtMjAxMzA5MDUvRzFcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuLnNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvO1xuICB9XG59XG5cblxuLy8gaU9TIFwiY2xpY2thYmxlIGVsZW1lbnRzXCIgZml4IGZvciByb2xlPVwiYnV0dG9uXCJcbi8vXG4vLyBGaXhlcyBcImNsaWNrYWJpbGl0eVwiIGlzc3VlIChhbmQgbW9yZSBnZW5lcmFsbHksIHRoZSBmaXJpbmcgb2YgZXZlbnRzIHN1Y2ggYXMgZm9jdXMgYXMgd2VsbClcbi8vIGZvciB0cmFkaXRpb25hbGx5IG5vbi1mb2N1c2FibGUgZWxlbWVudHMgd2l0aCByb2xlPVwiYnV0dG9uXCJcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi8vIFZlbmRvciBQcmVmaXhlc1xuLy9cbi8vIEFsbCB2ZW5kb3IgbWl4aW5zIGFyZSBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBkdWUgdG8gdGhlIGludHJvZHVjdGlvbiBvZlxuLy8gQXV0b3ByZWZpeGVyIGluIG91ciBHcnVudGZpbGUuIFRoZXkgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjQuXG5cbi8vIC0gQW5pbWF0aW9uc1xuLy8gLSBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyAtIEJveCBzaGFkb3dcbi8vIC0gQm94IHNpemluZ1xuLy8gLSBDb250ZW50IGNvbHVtbnNcbi8vIC0gSHlwaGVuc1xuLy8gLSBQbGFjZWhvbGRlciB0ZXh0XG4vLyAtIFRyYW5zZm9ybWF0aW9uc1xuLy8gLSBUcmFuc2l0aW9uc1xuLy8gLSBVc2VyIFNlbGVjdFxuXG5cbi8vIEFuaW1hdGlvbnNcbi5hbmltYXRpb24oQGFuaW1hdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAtby1hbmltYXRpb246IEBhbmltYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xufVxuLmFuaW1hdGlvbi1uYW1lKEBuYW1lKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcbn1cbi5hbmltYXRpb24tZHVyYXRpb24oQGR1cmF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG59XG4uYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xufVxuLmFuaW1hdGlvbi1kZWxheShAZGVsYXkpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IEBkZWxheTtcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IEBkZWxheTtcbn1cbi5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KEBpdGVyYXRpb24tY291bnQpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG59XG4uYW5pbWF0aW9uLWRpcmVjdGlvbihAZGlyZWN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xufVxuLmFuaW1hdGlvbi1maWxsLW1vZGUoQGZpbGwtbW9kZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbn1cblxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gUHJldmVudCBicm93c2VycyBmcm9tIGZsaWNrZXJpbmcgd2hlbiB1c2luZyBDU1MgM0QgdHJhbnNmb3Jtcy5cbi8vIERlZmF1bHQgdmFsdWUgaXMgYHZpc2libGVgLCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYGhpZGRlbmBcblxuLmJhY2tmYWNlLXZpc2liaWxpdHkoQHZpc2liaWxpdHkpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbn1cblxuLy8gRHJvcCBzaGFkb3dzXG4vL1xuLy8gTm90ZTogRGVwcmVjYXRlZCBgLmJveC1zaGFkb3coKWAgYXMgb2YgdjMuMS4wIHNpbmNlIGFsbCBvZiBCb290c3RyYXAnc1xuLy8gc3VwcG9ydGVkIGJyb3dzZXJzIHRoYXQgaGF2ZSBib3ggc2hhZG93IGNhcGFiaWxpdGllcyBub3cgc3VwcG9ydCBpdC5cblxuLmJveC1zaGFkb3coQHNoYWRvdykge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IEBzaGFkb3c7IC8vIGlPUyA8NC4zICYgQW5kcm9pZCA8NC4xXG4gICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdztcbn1cblxuLy8gQm94IHNpemluZ1xuLmJveC1zaXppbmcoQGJveG1vZGVsKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBAYm94bW9kZWw7XG59XG5cbi8vIENTUzMgQ29udGVudCBDb2x1bW5zXG4uY29udGVudC1jb2x1bW5zKEBjb2x1bW4tY291bnQ7IEBjb2x1bW4tZ2FwOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gICAgIC1tb3otY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAgICAgIGNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbiAgICAgLW1vei1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbn1cblxuLy8gT3B0aW9uYWwgaHlwaGVuYXRpb25cbi5oeXBoZW5zKEBtb2RlOiBhdXRvKSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBAbW9kZTtcbiAgICAgLW1vei1oeXBoZW5zOiBAbW9kZTtcbiAgICAgIC1tcy1oeXBoZW5zOiBAbW9kZTsgLy8gSUUxMCtcbiAgICAgICAtby1oeXBoZW5zOiBAbW9kZTtcbiAgICAgICAgICBoeXBoZW5zOiBAbW9kZTtcbn1cblxuLy8gUGxhY2Vob2xkZXIgdGV4dFxuLnBsYWNlaG9sZGVyKEBjb2xvcjogQGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyKSB7XG4gIC8vIEZpcmVmb3hcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBvcGFjaXR5OiAxOyAvLyBPdmVycmlkZSBGaXJlZm94J3MgdW51c3VhbCBkZWZhdWx0IG9wYWNpdHk7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMTUyNlxuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBJbnRlcm5ldCBFeHBsb3JlciAxMCtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciAgeyBjb2xvcjogQGNvbG9yOyB9IC8vIFNhZmFyaSBhbmQgQ2hyb21lXG59XG5cbi8vIFRyYW5zZm9ybWF0aW9uc1xuLnNjYWxlKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbn1cbi5zY2FsZShAcmF0aW9YOyBAcmF0aW9ZKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbn1cbi5zY2FsZVgoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbn1cbi5zY2FsZVkoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbn1cbi5za2V3KEB4OyBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzQ4ODU7IElFOStcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xufVxuLnRyYW5zbGF0ZShAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xufVxuLnRyYW5zbGF0ZTNkKEB4OyBAeTsgQHopIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHgsIEB5LCBAeik7XG59XG4ucm90YXRlKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xufVxuLnJvdGF0ZVgoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xufVxuLnJvdGF0ZVkoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xufVxuLnBlcnNwZWN0aXZlKEBwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xufVxuLnBlcnNwZWN0aXZlLW9yaWdpbihAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbn1cbi50cmFuc2Zvcm0tb3JpZ2luKEBvcmlnaW4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG4gICAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjsgLy8gSUU5IG9ubHlcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xufVxuXG5cbi8vIFRyYW5zaXRpb25zXG5cbi50cmFuc2l0aW9uKEB0cmFuc2l0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG59XG4udHJhbnNpdGlvbi1wcm9wZXJ0eShAdHJhbnNpdGlvbi1wcm9wZXJ0eSkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xufVxuLnRyYW5zaXRpb24tZGVsYXkoQHRyYW5zaXRpb24tZGVsYXkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcbn1cbi50cmFuc2l0aW9uLWR1cmF0aW9uKEB0cmFuc2l0aW9uLWR1cmF0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogQHRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogQHRyYW5zaXRpb24tZHVyYXRpb247XG59XG4udHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oQHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xufVxuLnRyYW5zaXRpb24tdHJhbnNmb3JtKEB0cmFuc2l0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbn1cblxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5cbi51c2VyLXNlbGVjdChAc2VsZWN0KSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7IC8vIElFMTArXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG59XG4iLCIvLyBXZWJLaXQtc3R5bGUgZm9jdXNcblxuLnRhYi1mb2N1cygpIHtcbiAgLy8gV2ViS2l0LXNwZWNpZmljLiBPdGhlciBicm93c2VycyB3aWxsIGtlZXAgdGhlaXIgZGVmYXVsdCBvdXRsaW5lIHN0eWxlLlxuICAvLyAoSW5pdGlhbGx5IHRyaWVkIHRvIGFsc28gZm9yY2UgZGVmYXVsdCB2aWEgYG91dGxpbmU6IGluaXRpYWxgLFxuICAvLyBidXQgdGhhdCBzZWVtcyB0byBlcnJvbmVvdXNseSByZW1vdmUgdGhlIG91dGxpbmUgaW4gRmlyZWZveCBhbHRvZ2V0aGVyLilcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuLmltZy1yZXNwb25zaXZlKEBkaXNwbGF5OiBibG9jaykge1xuICBkaXNwbGF5OiBAZGlzcGxheTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQYXJ0IDE6IFNldCBhIG1heGltdW0gcmVsYXRpdmUgdG8gdGhlIHBhcmVudFxuICBoZWlnaHQ6IGF1dG87IC8vIFBhcnQgMjogU2NhbGUgdGhlIGhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHdpZHRoLCBvdGhlcndpc2UgeW91IGdldCBzdHJldGNoaW5nXG59XG5cblxuLy8gUmV0aW5hIGltYWdlXG4vL1xuLy8gU2hvcnQgcmV0aW5hIG1peGluIGZvciBzZXR0aW5nIGJhY2tncm91bmQtaW1hZ2UgYW5kIC1zaXplLiBOb3RlIHRoYXQgdGhlXG4vLyBzcGVsbGluZyBvZiBgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvYCBpcyBpbnRlbnRpb25hbC5cbi5pbWctcmV0aW5hKEBmaWxlLTF4OyBAZmlsZS0yeDsgQHdpZHRoLTF4OyBAaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0xeH1cIik7XG5cbiAgQG1lZGlhXG4gIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi8xKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHtmaWxlLTJ4fVwiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IEB3aWR0aC0xeCBAaGVpZ2h0LTF4O1xuICB9XG59XG4iLCIvL1xuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBIZWFkaW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGluZ3MtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiBAaGVhZGluZ3MtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiBAaGVhZGluZ3MtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiBAaGVhZGluZ3MtY29sb3I7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogQGhlYWRpbmdzLXNtYWxsLWNvbG9yO1xuICB9XG59XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyB7XG4gIG1hcmdpbi10b3A6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjUlO1xuICB9XG59XG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBtYXJnaW4tdG9wOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgfVxufVxuXG5oMSwgLmgxIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgxOyB9XG5oMiwgLmgyIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgyOyB9XG5oMywgLmgzIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgzOyB9XG5oNCwgLmg0IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg0OyB9XG5oNSwgLmg1IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg1OyB9XG5oNiwgLmg2IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg2OyB9XG5cblxuLy8gQm9keSB0ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnAge1xuICBtYXJnaW46IDAgMCAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG59XG5cbi5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IGZsb29yKChAZm9udC1zaXplLWJhc2UgKiAxLjE1KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgfVxufVxuXG5cbi8vIEVtcGhhc2lzICYgbWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBFeDogKDEycHggc21hbGwgZm9udCAvIDE0cHggYmFzZSBmb250KSAqIDEwMCUgPSBhYm91dCA4NSVcbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiBmbG9vcigoMTAwJSAqIEBmb250LXNpemUtc21hbGwgLyBAZm9udC1zaXplLWJhc2UpKTtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHN0YXRlLXdhcm5pbmctYmc7XG4gIHBhZGRpbmc6IC4yZW07XG59XG5cbi8vIEFsaWdubWVudFxuLnRleHQtbGVmdCAgICAgICAgICAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4udGV4dC1yaWdodCAgICAgICAgICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4udGV4dC1jZW50ZXIgICAgICAgICB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLnRleHQtanVzdGlmeSAgICAgICAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4udGV4dC1ub3dyYXAgICAgICAgICB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLy8gVHJhbnNmb3JtYXRpb25cbi50ZXh0LWxvd2VyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuLnRleHQtdXBwZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4udGV4dC1jYXBpdGFsaXplICAgICB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi8vIENvbnRleHR1YWwgY29sb3JzXG4udGV4dC1tdXRlZCB7XG4gIGNvbG9yOiBAdGV4dC1tdXRlZDtcbn1cbi50ZXh0LXByaW1hcnkge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBicmFuZC1wcmltYXJ5KTtcbn1cbi50ZXh0LXN1Y2Nlc3Mge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLXRleHQpO1xufVxuLnRleHQtaW5mbyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLWluZm8tdGV4dCk7XG59XG4udGV4dC13YXJuaW5nIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtd2FybmluZy10ZXh0KTtcbn1cbi50ZXh0LWRhbmdlciB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLWRhbmdlci10ZXh0KTtcbn1cblxuLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuLy8gRm9yIG5vdyB3ZSdsbCBsZWF2ZSB0aGVzZSBhbG9uZ3NpZGUgdGhlIHRleHQgY2xhc3NlcyB1bnRpbCB2NCB3aGVuIHdlIGNhblxuLy8gc2FmZWx5IHNoaWZ0IHRoaW5ncyBhcm91bmQgKHBlciBTZW1WZXIgcnVsZXMpLlxuLmJnLXByaW1hcnkge1xuICAvLyBHaXZlbiB0aGUgY29udHJhc3QgaGVyZSwgdGhpcyBpcyB0aGUgb25seSBjbGFzcyB0byBoYXZlIGl0cyBjb2xvciBpbnZlcnRlZFxuICAvLyBhdXRvbWF0aWNhbGx5LlxuICBjb2xvcjogI2ZmZjtcbiAgLmJnLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLmJnLXN1Y2Nlc3Mge1xuICAuYmctdmFyaWFudChAc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uYmctaW5mbyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1pbmZvLWJnKTtcbn1cbi5iZy13YXJuaW5nIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLXdhcm5pbmctYmcpO1xufVxuLmJnLWRhbmdlciB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG5cbi8vIFBhZ2UgaGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIC0gMSk7XG4gIG1hcmdpbjogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAqIDIpIDAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQHBhZ2UtaGVhZGVyLWJvcmRlci1jb2xvcjtcbn1cblxuXG4vLyBMaXN0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBVbm9yZGVyZWQgYW5kIE9yZGVyZWQgbGlzdHNcbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBMaXN0IG9wdGlvbnNcblxuLy8gVW5zdHlsZWQga2VlcHMgbGlzdCBpdGVtcyBibG9jayBsZXZlbCwganVzdCByZW1vdmVzIGRlZmF1bHQgYnJvd3NlciBwYWRkaW5nIGFuZCBsaXN0LXN0eWxlXG4ubGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8gSW5saW5lIHR1cm5zIGxpc3QgaXRlbXMgaW50byBpbmxpbmUtYmxvY2tcbi5saXN0LWlubGluZSB7XG4gIC5saXN0LXVuc3R5bGVkKCk7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIH1cbn1cblxuLy8gRGVzY3JpcHRpb24gTGlzdHNcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDsgLy8gUmVtb3ZlIGJyb3dzZXIgZGVmYXVsdFxuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xufVxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIFVuZG8gYnJvd3NlciBkZWZhdWx0XG59XG5cbi8vIEhvcml6b250YWwgZGVzY3JpcHRpb24gbGlzdHNcbi8vXG4vLyBEZWZhdWx0cyB0byBiZWluZyBzdGFja2VkIHdpdGhvdXQgYW55IG9mIHRoZSBiZWxvdyBzdHlsZXMgYXBwbGllZCwgdW50aWwgdGhlXG4vLyBncmlkIGJyZWFrcG9pbnQgaXMgcmVhY2hlZCAoZGVmYXVsdCBvZiB+NzY4cHgpLlxuXG4uZGwtaG9yaXpvbnRhbCB7XG4gIGRkIHtcbiAgICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTsgLy8gQ2xlYXIgdGhlIGZsb2F0ZWQgYGR0YCBpZiBhbiBlbXB0eSBgZGRgIGlzIHByZXNlbnRcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZGwtaG9yaXpvbnRhbC1icmVha3BvaW50KSB7XG4gICAgZHQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogKEBkbC1ob3Jpem9udGFsLW9mZnNldCAtIDIwKTtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAudGV4dC1vdmVyZmxvdygpO1xuICAgIH1cbiAgICBkZCB7XG4gICAgICBtYXJnaW4tbGVmdDogQGRsLWhvcml6b250YWwtb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQWJicmV2aWF0aW9ucyBhbmQgYWNyb255bXNcbmFiYnJbdGl0bGVdLFxuLy8gQWRkIGRhdGEtKiBhdHRyaWJ1dGUgdG8gaGVscCBvdXQgb3VyIHRvb2x0aXAgcGx1Z2luLCBwZXIgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy81MjU3XG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIEBhYmJyLWJvcmRlci1jb2xvcjtcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIC50ZXh0LXVwcGVyY2FzZSgpO1xufVxuXG4vLyBCbG9ja3F1b3Rlc1xuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbjogMCAwIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiBAYmxvY2txdW90ZS1mb250LXNpemU7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgQGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuXG4gIHAsXG4gIHVsLFxuICBvbCB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTm90ZTogRGVwcmVjYXRlZCBzbWFsbCBhbmQgLnNtYWxsIGFzIG9mIHYzLjEuMFxuICAvLyBDb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjYwXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiA4MCU7IC8vIGJhY2sgdG8gZGVmYXVsdCBmb250LXNpemVcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6IEBibG9ja3F1b3RlLXNtYWxsLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnOyAvLyBlbSBkYXNoLCBuYnNwXG4gICAgfVxuICB9XG59XG5cbi8vIE9wcG9zaXRlIGFsaWdubWVudCBvZiBibG9ja3F1b3RlXG4vL1xuLy8gSGVhZHMgdXA6IGBibG9ja3F1b3RlLnB1bGwtcmlnaHRgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMS4wLlxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgQGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgLy8gQWNjb3VudCBmb3IgY2l0YXRpb25cbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7IC8vIG5ic3AsIGVtIGRhc2hcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbn1cbiIsIi8vIFR5cG9ncmFwaHlcblxuLnRleHQtZW1waGFzaXMtdmFyaWFudChAY29sb3IpIHtcbiAgY29sb3I6IEBjb2xvcjtcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzIHtcbiAgICBjb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuXG4uYmctdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vIFRleHQgb3ZlcmZsb3dcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcblxuLnRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy9cbi8vIENvZGUgKGlubGluZSBhbmQgYmxvY2spXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIElubGluZSBhbmQgYmxvY2sgY29kZSBzdHlsZXNcbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1tb25vc3BhY2U7XG59XG5cbi8vIElubGluZSBjb2RlXG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiBAY29kZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvZGUtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG59XG5cbi8vIFVzZXIgaW5wdXQgdHlwaWNhbGx5IGVudGVyZWQgdmlhIGtleWJvYXJkXG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6IEBrYmQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBrYmQtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLXNtYWxsO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cbiAga2JkIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8vIEJsb2NrcyBvZiBjb2RlXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLSAxKSAvIDIpO1xuICBtYXJnaW46IDAgMCAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAtIDEpOyAvLyAxNHB4IHRvIDEzcHhcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6IEBwcmUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmUtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwcmUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEVuYWJsZSBzY3JvbGxhYmxlIGJsb2NrcyBvZiBjb2RlXG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiBAcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuIiwiLy9cbi8vIEdyaWQgc3lzdGVtXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIENvbnRhaW5lciB3aWR0aHNcbi8vXG4vLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXMuXG5cbi5jb250YWluZXIge1xuICAuY29udGFpbmVyLWZpeGVkKCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItc207XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItbWQ7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItbGc7XG4gIH1cbn1cblxuXG4vLyBGbHVpZCBjb250YWluZXJcbi8vXG4vLyBVdGlsaXplcyB0aGUgbWl4aW4gbWVhbnQgZm9yIGZpeGVkIHdpZHRoIGNvbnRhaW5lcnMsIGJ1dCB3aXRob3V0IGFueSBkZWZpbmVkXG4vLyB3aWR0aCBmb3IgZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cblxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIC5jb250YWluZXItZml4ZWQoKTtcbn1cblxuXG4vLyBSb3dcbi8vXG4vLyBSb3dzIGNvbnRhaW4gYW5kIGNsZWFyIHRoZSBmbG9hdHMgb2YgeW91ciBjb2x1bW5zLlxuXG4ucm93IHtcbiAgLm1ha2Utcm93KCk7XG59XG5cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuLm1ha2UtZ3JpZC1jb2x1bW5zKCk7XG5cblxuLy8gRXh0cmEgc21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciBleHRyYSBzbWFsbCBkZXZpY2VzIGxpa2Vcbi8vIHNtYXJ0cGhvbmVzLlxuXG4ubWFrZS1ncmlkKHhzKTtcblxuXG4vLyBTbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXG4vLyB0byB0YWJsZXRzLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgLm1ha2UtZ3JpZChzbSk7XG59XG5cblxuLy8gTWVkaXVtIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgLm1ha2UtZ3JpZChtZCk7XG59XG5cblxuLy8gTGFyZ2UgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgbGFyZ2UgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAubWFrZS1ncmlkKGxnKTtcbn1cbiIsIi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxuLmNvbnRhaW5lci1maXhlZChAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAgZmxvb3IoKEBndXR0ZXIgLyAyKSk7XG4gIHBhZGRpbmctcmlnaHQ6IGNlaWwoKEBndXR0ZXIgLyAyKSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBDcmVhdGVzIGEgd3JhcHBlciBmb3IgYSBzZXJpZXMgb2YgY29sdW1uc1xuLm1ha2Utcm93KEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tbGVmdDogIGNlaWwoKEBndXR0ZXIgLyAtMikpO1xuICBtYXJnaW4tcmlnaHQ6IGZsb29yKChAZ3V0dGVyIC8gLTIpKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXG4ubWFrZS14cy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBzbWFsbCBjb2x1bW5zXG4ubWFrZS1zbS1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBtZWRpdW0gY29sdW1uc1xuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xuLm1ha2UtbGctY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuIiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGBAZ3JpZC1jb2x1bW5zYC5cblxuLm1ha2UtZ3JpZC1jb2x1bW5zKCkge1xuICAvLyBDb21tb24gc3R5bGVzIGZvciBhbGwgc2l6ZXMgb2YgZ3JpZCBjb2x1bW5zLCB3aWR0aHMgMS0xMlxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXG4gICAgQGl0ZW06IH5cIi5jb2wteHMtQHtpbmRleH0sIC5jb2wtc20tQHtpbmRleH0sIC5jb2wtbWQtQHtpbmRleH0sIC5jb2wtbGctQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgQGl0ZW0pO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID08IEBncmlkLWNvbHVtbnMpIHsgLy8gZ2VuZXJhbDsgXCI9PFwiIGlzbid0IGEgdHlwb1xuICAgIEBpdGVtOiB+XCIuY29sLXhzLUB7aW5kZXh9LCAuY29sLXNtLUB7aW5kZXh9LCAuY29sLW1kLUB7aW5kZXh9LCAuY29sLWxnLUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPiBAZ3JpZC1jb2x1bW5zKSB7IC8vIHRlcm1pbmFsXG4gICAgQHtsaXN0fSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICAgIC8vIElubmVyIGd1dHRlciB2aWEgcGFkZGluZ1xuICAgICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgICAgcGFkZGluZy1yaWdodDogZmxvb3IoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgICB9XG4gIH1cbiAgLmNvbCgxKTsgLy8ga2lja3N0YXJ0IGl0XG59XG5cbi5mbG9hdC1ncmlkLWNvbHVtbnMoQGNsYXNzKSB7XG4gIC5jb2woQGluZGV4KSB7IC8vIGluaXRpYWxcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCBAaXRlbSk7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsXG4gICAgQGl0ZW06IH5cIi5jb2wtQHtjbGFzc30tQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgflwiQHtsaXN0fSwgQHtpdGVtfVwiKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA+IEBncmlkLWNvbHVtbnMpIHsgLy8gdGVybWluYWxcbiAgICBAe2xpc3R9IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcbn1cblxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHdpZHRoKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1c2gpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1c2gtQHtpbmRleH0ge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1c2gpIGFuZCAoQGluZGV4ID0gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1bGwtQHtpbmRleH0ge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdWxsKSBhbmQgKEBpbmRleCA9IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gb2Zmc2V0KSB7XG4gIC5jb2wtQHtjbGFzc30tb2Zmc2V0LUB7aW5kZXh9IHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEJhc2ljIGxvb3BpbmcgaW4gTEVTU1xuLmxvb3AtZ3JpZC1jb2x1bW5zKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQGluZGV4ID49IDApIHtcbiAgLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKTtcbiAgLy8gbmV4dCBpdGVyYXRpb25cbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKChAaW5kZXggLSAxKSwgQGNsYXNzLCBAdHlwZSk7XG59XG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuLm1ha2UtZ3JpZChAY2xhc3MpIHtcbiAgLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCB3aWR0aCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1bGwpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBwdXNoKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgb2Zmc2V0KTtcbn1cbiIsIi8vXG4vLyBUYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmc7XG59XG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICBjb2xvcjogQHRleHQtbXV0ZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cblxuLy8gQmFzZWxpbmUgc3R5bGVzXG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgLy8gQ2VsbHNcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEJvdHRvbSBhbGlnbiBmb3IgY29sdW1uIGhlYWRpbmdzXG4gID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIFJlbW92ZSB0b3AgYm9yZGVyIGZyb20gdGhlYWQgYnkgZGVmYXVsdFxuICA+IGNhcHRpb24gKyB0aGVhZCxcbiAgPiBjb2xncm91cCArIHRoZWFkLFxuICA+IHRoZWFkOmZpcnN0LWNoaWxkIHtcbiAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWNjb3VudCBmb3IgbXVsdGlwbGUgdGJvZHkgaW5zdGFuY2VzXG4gID4gdGJvZHkgKyB0Ym9keSB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAvLyBOZXN0aW5nXG4gIC50YWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XG4gIH1cbn1cblxuXG4vLyBDb25kZW5zZWQgdGFibGUgdy8gaGFsZiBwYWRkaW5nXG5cbi50YWJsZS1jb25kZW5zZWQge1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogQHRhYmxlLWNvbmRlbnNlZC1jZWxsLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gQm9yZGVyZWQgdmVyc2lvblxuLy9cbi8vIEFkZCBib3JkZXJzIGFsbCBhcm91bmQgdGhlIHRhYmxlIGFuZCBiZXR3ZWVuIGFsbCB0aGUgY29sdW1ucy5cblxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gdGhlYWQgPiB0ciB7XG4gICAgPiB0aCxcbiAgICA+IHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBaZWJyYS1zdHJpcGluZ1xuLy9cbi8vIERlZmF1bHQgemVicmEtc3RyaXBlIHN0eWxlcyAoYWx0ZXJuYXRpbmcgZ3JheSBhbmQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG5cbi50YWJsZS1zdHJpcGVkIHtcbiAgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1hY2NlbnQ7XG4gIH1cbn1cblxuXG4vLyBIb3ZlciBlZmZlY3Rcbi8vXG4vLyBQbGFjZWQgaGVyZSBzaW5jZSBpdCBoYXMgdG8gY29tZSBhZnRlciB0aGUgcG90ZW50aWFsIHplYnJhIHN0cmlwaW5nXG5cbi50YWJsZS1ob3ZlciB7XG4gID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnLWhvdmVyO1xuICB9XG59XG5cblxuLy8gVGFibGUgY2VsbCBzaXppbmdcbi8vXG4vLyBSZXNldCBkZWZhdWx0IHRhYmxlIGJlaGF2aW9yXG5cbnRhYmxlIGNvbFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYzsgLy8gUHJldmVudCBib3JkZXIgaGlkaW5nIGluIEZpcmVmb3ggYW5kIElFOS0xMSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2MjMpXG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG50YWJsZSB7XG4gIHRkLFxuICB0aCB7XG4gICAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRhYmxlIGJhY2tncm91bmRzXG4vL1xuLy8gRXhhY3Qgc2VsZWN0b3JzIGJlbG93IHJlcXVpcmVkIHRvIG92ZXJyaWRlIGAudGFibGUtc3RyaXBlZGAgYW5kIHByZXZlbnRcbi8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG5cbi8vIEdlbmVyYXRlIHRoZSBjb250ZXh0dWFsIHZhcmlhbnRzXG4udGFibGUtcm93LXZhcmlhbnQoYWN0aXZlOyBAdGFibGUtYmctYWN0aXZlKTtcbi50YWJsZS1yb3ctdmFyaWFudChzdWNjZXNzOyBAc3RhdGUtc3VjY2Vzcy1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQoaW5mbzsgQHN0YXRlLWluZm8tYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KHdhcm5pbmc7IEBzdGF0ZS13YXJuaW5nLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudChkYW5nZXI7IEBzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gV3JhcCB5b3VyIHRhYmxlcyBpbiBgLnRhYmxlLXJlc3BvbnNpdmVgIGFuZCB3ZSdsbCBtYWtlIHRoZW0gbW9iaWxlIGZyaWVuZGx5XG4vLyBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0XG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7IC8vIFdvcmthcm91bmQgZm9yIElFOSBidWcgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE0ODM3KVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAqIDAuNzUpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgLy8gVGlnaHRlbiB1cCBzcGFjaW5nXG4gICAgPiAudGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb250ZW50IGRvZXNuJ3Qgd3JhcFxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBvdmVycmlkZXMgZm9yIHRoZSBib3JkZXJlZCB0YWJsZXNcbiAgICA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT25seSBudWtlIHRoZSBsYXN0IHJvdydzIGJvdHRvbS1ib3JkZXIgaW4gYHRib2R5YCBhbmQgYHRmb290YCBzaW5jZVxuICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuICAgICAgLy8gcmVtb3ZlIHRoZSBib3JkZXIgYWx0b2dldGhlci5cbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGFibGVzXG5cbi50YWJsZS1yb3ctdmFyaWFudChAc3RhdGU7IEBiYWNrZ3JvdW5kKSB7XG4gIC8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4gIC8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG4gIC50YWJsZSA+IHRoZWFkID4gdHIsXG4gIC50YWJsZSA+IHRib2R5ID4gdHIsXG4gIC50YWJsZSA+IHRmb290ID4gdHIge1xuICAgID4gdGQuQHtzdGF0ZX0sXG4gICAgPiB0aC5Ae3N0YXRlfSxcbiAgICAmLkB7c3RhdGV9ID4gdGQsXG4gICAgJi5Ae3N0YXRlfSA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlcyBmb3IgYC50YWJsZS1ob3ZlcmBcbiAgLy8gTm90ZTogdGhpcyBpcyBub3QgYXZhaWxhYmxlIGZvciBjZWxscyBvciByb3dzIHdpdGhpbiBgdGhlYWRgIG9yIGB0Zm9vdGAuXG4gIC50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIge1xuICAgID4gdGQuQHtzdGF0ZX06aG92ZXIsXG4gICAgPiB0aC5Ae3N0YXRlfTpob3ZlcixcbiAgICAmLkB7c3RhdGV9OmhvdmVyID4gdGQsXG4gICAgJjpob3ZlciA+IC5Ae3N0YXRlfSxcbiAgICAmLkB7c3RhdGV9OmhvdmVyID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCA1JSk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gRm9ybXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gTm9ybWFsaXplIG5vbi1jb250cm9sc1xuLy9cbi8vIFJlc3R5bGUgYW5kIGJhc2VsaW5lIG5vbi1jb250cm9sIGZvcm0gZWxlbWVudHMuXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIC8vIENocm9tZSBhbmQgRmlyZWZveCBzZXQgYSBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgIG9uIGZpZWxkc2V0cyxcbiAgLy8gc28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgaXQgYmVoYXZlcyBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMjM1OS5cbiAgbWluLXdpZHRoOiAwO1xufVxuXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBAbGVnZW5kLWNvbG9yO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbGVnZW5kLWJvcmRlci1jb2xvcjtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gRm9yY2UgSUU4IHRvIHdyYXAgbG9uZyBjb250ZW50IChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMzE0MSlcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4vLyBOb3JtYWxpemUgZm9ybSBjb250cm9sc1xuLy9cbi8vIFdoaWxlIG1vc3Qgb2Ygb3VyIGZvcm0gc3R5bGVzIHJlcXVpcmUgZXh0cmEgY2xhc3Nlcywgc29tZSBiYXNpYyBub3JtYWxpemF0aW9uXG4vLyBpcyByZXF1aXJlZCB0byBlbnN1cmUgb3B0aW11bSBkaXNwbGF5IHdpdGggb3Igd2l0aG91dCB0aG9zZSBjbGFzc2VzIHRvIGJldHRlclxuLy8gYWRkcmVzcyBicm93c2VyIGluY29uc2lzdGVuY2llcy5cblxuLy8gT3ZlcnJpZGUgY29udGVudC1ib3ggaW4gTm9ybWFsaXplICgqIGlzbid0IHNwZWNpZmljIGVub3VnaClcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuLy8gUG9zaXRpb24gcmFkaW9zIGFuZCBjaGVja2JveGVzIGJldHRlclxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5OyAvLyBJRTgtOVxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBNYWtlIHJhbmdlIGlucHV0cyBiZWhhdmUgbGlrZSB0ZXh0dWFsIGZvcm0gY29udHJvbHNcbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gTWFrZSBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgaGVpZ2h0IG5vdCBmaXhlZFxuc2VsZWN0W211bHRpcGxlXSxcbnNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gRm9jdXMgZm9yIGZpbGUsIHJhZGlvLCBhbmQgY2hlY2tib3hcbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgLnRhYi1mb2N1cygpO1xufVxuXG4vLyBBZGp1c3Qgb3V0cHV0IGVsZW1lbnRcbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbn1cblxuXG4vLyBDb21tb24gZm9ybSBjb250cm9sc1xuLy9cbi8vIFNoYXJlZCBzaXplIGFuZCB0eXBlIHJlc2V0cyBmb3IgZm9ybSBjb250cm9scy4gQXBwbHkgYC5mb3JtLWNvbnRyb2xgIHRvIGFueVxuLy8gb2YgdGhlIGZvbGxvd2luZyBmb3JtIGNvbnRyb2xzOlxuLy9cbi8vIHNlbGVjdFxuLy8gdGV4dGFyZWFcbi8vIGlucHV0W3R5cGU9XCJ0ZXh0XCJdXG4vLyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZVwiXVxuLy8gaW5wdXRbdHlwZT1cIm1vbnRoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cIndlZWtcIl1cbi8vIGlucHV0W3R5cGU9XCJudW1iZXJcIl1cbi8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXVxuLy8gaW5wdXRbdHlwZT1cInVybFwiXVxuLy8gaW5wdXRbdHlwZT1cInNlYXJjaFwiXVxuLy8gaW5wdXRbdHlwZT1cInRlbFwiXVxuLy8gaW5wdXRbdHlwZT1cImNvbG9yXCJdXG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlOyAvLyBNYWtlIGlucHV0cyBhdCBsZWFzdCB0aGUgaGVpZ2h0IG9mIHRoZWlyIGJ1dHRvbiBjb3VudGVycGFydCAoYmFzZSBsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtYmc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgQGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXM7IC8vIE5vdGU6IFRoaXMgaGFzIG5vIGVmZmVjdCBvbiA8c2VsZWN0PnMgaW4gc29tZSBicm93c2VycywgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxhYmlsaXR5IG9mIDxzZWxlY3Q+cyBpbiBDU1MuXG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTtcbiAgLnRyYW5zaXRpb24oflwiYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1c1wiKTtcblxuICAvLyBDdXN0b21pemUgdGhlIGA6Zm9jdXNgIHN0YXRlIHRvIGltaXRhdGUgbmF0aXZlIFdlYktpdCBzdHlsZXMuXG4gIC5mb3JtLWNvbnRyb2wtZm9jdXMoKTtcblxuICAvLyBQbGFjZWhvbGRlclxuICAucGxhY2Vob2xkZXIoKTtcblxuICAvLyBVbnN0eWxlIHRoZSBjYXJldCBvbiBgPHNlbGVjdD5gcyBpbiBJRTEwKy5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbiAgLy9cbiAgLy8gSFRNTDUgc2F5cyB0aGF0IGNvbnRyb2xzIHVuZGVyIGEgZmllbGRzZXQgPiBsZWdlbmQ6Zmlyc3QtY2hpbGQgd29uJ3QgYmVcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcbiAgLy8gZG9uJ3QgaG9ub3IgdGhhdCBlZGdlIGNhc2U7IHdlIHN0eWxlIHRoZW0gYXMgZGlzYWJsZWQgYW55d2F5LlxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtYmctZGlzYWJsZWQ7XG4gICAgb3BhY2l0eTogMTsgLy8gaU9TIGZpeCBmb3IgdW5yZWFkYWJsZSBkaXNhYmxlZCBjb250ZW50OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY1NVxuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgZm9yIGB0ZXh0YXJlYWBzXG4gIHRleHRhcmVhJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cblxuLy8gU2VhcmNoIGlucHV0cyBpbiBpT1Ncbi8vXG4vLyBUaGlzIG92ZXJyaWRlcyB0aGUgZXh0cmEgcm91bmRlZCBjb3JuZXJzIG9uIHNlYXJjaCBpbnB1dHMgaW4gaU9TIHNvIHRoYXQgb3VyXG4vLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcbi8vIGJlIGFkZGVkIHRvIGAuZm9ybS1jb250cm9sYCBhcyBpdCdzIG5vdCBzcGVjaWZpYyBlbm91Z2guIEZvciBkZXRhaWxzLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1ODYuXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuLy8gU3BlY2lhbCBzdHlsZXMgZm9yIGlPUyB0ZW1wb3JhbCBpbnB1dHNcbi8vXG4vLyBJbiBNb2JpbGUgU2FmYXJpLCBzZXR0aW5nIGBkaXNwbGF5OiBibG9ja2Agb24gdGVtcG9yYWwgaW5wdXRzIGNhdXNlcyB0aGVcbi8vIHRleHQgd2l0aGluIHRoZSBpbnB1dCB0byBiZWNvbWUgdmVydGljYWxseSBtaXNhbGlnbmVkLiBBcyBhIHdvcmthcm91bmQsIHdlXG4vLyBzZXQgYSBwaXhlbCBsaW5lLWhlaWdodCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIGhlaWdodCBvZiB0aGUgaW5wdXQsIGJ1dCBvbmx5XG4vLyBmb3IgU2FmYXJpLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTg0OFxuLy9cbi8vIE5vdGUgdGhhdCBhcyBvZiA5LjMsIGlPUyBkb2Vzbid0IHN1cHBvcnQgYHdlZWtgLlxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgICYuZm9ybS1jb250cm9sIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gICAgfVxuXG4gICAgJi5pbnB1dC1zbSxcbiAgICAuaW5wdXQtZ3JvdXAtc20gJiB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICB9XG5cbiAgICAmLmlucHV0LWxnLFxuICAgIC5pbnB1dC1ncm91cC1sZyAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEZvcm0gZ3JvdXBzXG4vL1xuLy8gRGVzaWduZWQgdG8gaGVscCB3aXRoIHRoZSBvcmdhbml6YXRpb24gYW5kIHNwYWNpbmcgb2YgdmVydGljYWwgZm9ybXMuIEZvclxuLy8gaG9yaXpvbnRhbCBmb3JtcywgdXNlIHRoZSBwcmVkZWZpbmVkIGdyaWQgY2xhc3Nlcy5cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiBAZm9ybS1ncm91cC1tYXJnaW4tYm90dG9tO1xufVxuXG5cbi8vIENoZWNrYm94ZXMgYW5kIHJhZGlvc1xuLy9cbi8vIEluZGVudCB0aGUgbGFiZWxzIHRvIHBvc2l0aW9uIHJhZGlvcy9jaGVja2JveGVzIGFzIGhhbmdpbmcgY29udHJvbHMuXG5cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgbGFiZWwge1xuICAgIG1pbi1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDsgLy8gRW5zdXJlIHRoZSBpbnB1dCBkb2Vzbid0IGp1bXAgd2hlbiB0aGVyZSBpcyBubyB0ZXh0XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xufVxuXG4ucmFkaW8gKyAucmFkaW8sXG4uY2hlY2tib3ggKyAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAtNXB4OyAvLyBNb3ZlIHVwIHNpYmxpbmcgcmFkaW9zIG9yIGNoZWNrYm94ZXMgZm9yIHRpZ2h0ZXIgc3BhY2luZ1xufVxuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgb24gc2FtZSBsaW5lXG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpby1pbmxpbmUgKyAucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSArIC5jaGVja2JveC1pbmxpbmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMTBweDsgLy8gc3BhY2Ugb3V0IGNvbnNlY3V0aXZlIGlubGluZSBjb250cm9sc1xufVxuXG4vLyBBcHBseSBzYW1lIGRpc2FibGVkIGN1cnNvciB0d2VhayBhcyBmb3IgaW5wdXRzXG4vLyBTb21lIHNwZWNpYWwgY2FyZSBpcyBuZWVkZWQgYmVjYXVzZSA8bGFiZWw+cyBkb24ndCBpbmhlcml0IHRoZWlyIHBhcmVudCdzIGBjdXJzb3JgLlxuLy9cbi8vIE5vdGU6IE5laXRoZXIgcmFkaW9zIG5vciBjaGVja2JveGVzIGNhbiBiZSByZWFkb25seS5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG4vLyBUaGVzZSBjbGFzc2VzIGFyZSB1c2VkIGRpcmVjdGx5IG9uIDxsYWJlbD5zXG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgb24gZWxlbWVudHMgd2l0aCA8bGFiZWw+IGRlc2NlbmRhbnRzXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgbGFiZWwge1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YXRpYyBmb3JtIGNvbnRyb2wgdGV4dFxuLy9cbi8vIEFwcGx5IGNsYXNzIHRvIGEgYHBgIGVsZW1lbnQgdG8gbWFrZSBhbnkgc3RyaW5nIG9mIHRleHQgYWxpZ24gd2l0aCBsYWJlbHMgaW5cbi8vIGEgaG9yaXpvbnRhbCBmb3JtIGxheW91dC5cblxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAvLyBTaXplIGl0IGFwcHJvcHJpYXRlbHkgbmV4dCB0byByZWFsIGZvcm0gY29udHJvbHNcbiAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIHBhZGRpbmctYm90dG9tOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gZnJvbSBgcGBcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtYmFzZSk7XG5cbiAgJi5pbnB1dC1sZyxcbiAgJi5pbnB1dC1zbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gQnVpbGQgb24gYC5mb3JtLWNvbnRyb2xgIHdpdGggbW9kaWZpZXIgY2xhc3NlcyB0byBkZWNyZWFzZSBvciBpbmNyZWFzZSB0aGVcbi8vIGhlaWdodCBhbmQgZm9udC1zaXplIG9mIGZvcm0gY29udHJvbHMuXG4vL1xuLy8gVGhlIGAuZm9ybS1ncm91cC0qIGZvcm0tY29udHJvbGAgdmFyaWF0aW9ucyBhcmUgc2FkbHkgZHVwbGljYXRlZCB0byBhdm9pZCB0aGVcbi8vIGlzc3VlIGRvY3VtZW50ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNTA3NC5cblxuLmlucHV0LXNtIHtcbiAgLmlucHV0LXNpemUoQGlucHV0LWhlaWdodC1zbWFsbDsgQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuLmZvcm0tZ3JvdXAtc20ge1xuICAuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgcGFkZGluZzogQHBhZGRpbmctc21hbGwtdmVydGljYWwgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1zbWFsbDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgfVxuICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIH1cbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuICBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtc21hbGwpO1xuICAgIHBhZGRpbmc6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtc21hbGw7XG4gIH1cbn1cblxuLmlucHV0LWxnIHtcbiAgLmlucHV0LXNpemUoQGlucHV0LWhlaWdodC1sYXJnZTsgQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuLmZvcm0tZ3JvdXAtbGcge1xuICAuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1sYXJnZTtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgfVxuICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIH1cbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuICBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtbGFyZ2UpO1xuICAgIHBhZGRpbmc6IChAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCArIDEpIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgZmVlZGJhY2sgc3RhdGVzXG4vL1xuLy8gQXBwbHkgY29udGV4dHVhbCBhbmQgc2VtYW50aWMgc3RhdGVzIHRvIGluZGl2aWR1YWwgZm9ybSBjb250cm9scy5cblxuLmhhcy1mZWVkYmFjayB7XG4gIC8vIEVuYWJsZSBhYnNvbHV0ZSBwb3NpdGlvbmluZ1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gRW5zdXJlIGljb25zIGRvbid0IG92ZXJsYXAgdGV4dFxuICAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoQGlucHV0LWhlaWdodC1iYXNlICogMS4yNSk7XG4gIH1cbn1cbi8vIEZlZWRiYWNrIGljb24gKHJlcXVpcmVzIC5nbHlwaGljb24gY2xhc3Nlcylcbi5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7IC8vIEVuc3VyZSBpY29uIGlzIGFib3ZlIGlucHV0IGdyb3Vwc1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG59XG4uaW5wdXQtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG59XG5cbi8vIEZlZWRiYWNrIHN0YXRlc1xuLmhhcy1zdWNjZXNzIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5oYXMtd2FybmluZyB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uaGFzLWVycm9yIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1kYW5nZXItdGV4dDsgQHN0YXRlLWRhbmdlci10ZXh0OyBAc3RhdGUtZGFuZ2VyLWJnKTtcbn1cblxuLy8gUmVwb3NpdGlvbiBmZWVkYmFjayBpY29uIGlmIGlucHV0IGhhcyB2aXNpYmxlIGxhYmVsIGFib3ZlXG4uaGFzLWZlZWRiYWNrIGxhYmVsIHtcblxuICAmIH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgNSk7IC8vIEhlaWdodCBvZiB0aGUgYGxhYmVsYCBhbmQgaXRzIG1hcmdpblxuICB9XG4gICYuc3Itb25seSB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG5cbi8vIEhlbHAgdGV4dFxuLy9cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHlvdSB3aXNoIHRvIGNyZWF0ZSBsaWdodCB0ZXh0IGZvciBwbGFjZW1lbnQgaW1tZWRpYXRlbHlcbi8vIGJlbG93IGEgZm9ybSBjb250cm9sLiBVc2UgZm9yIGdlbmVyYWwgaGVscCwgZm9ybWF0dGluZywgb3IgaW5zdHJ1Y3Rpb25hbCB0ZXh0LlxuXG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvLyBhY2NvdW50IGZvciBhbnkgZWxlbWVudCB1c2luZyBoZWxwLWJsb2NrXG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6IGxpZ2h0ZW4oQHRleHQtY29sb3IsIDI1JSk7IC8vIGxpZ2h0ZW4gdGhlIHRleHQgc29tZSBmb3IgY29udHJhc3Rcbn1cblxuXG4vLyBJbmxpbmUgZm9ybXNcbi8vXG4vLyBNYWtlIGZvcm1zIGFwcGVhciBpbmxpbmUoLWJsb2NrKSBieSBhZGRpbmcgdGhlIGAuZm9ybS1pbmxpbmVgIGNsYXNzLiBJbmxpbmVcbi8vIGZvcm1zIGJlZ2luIHN0YWNrZWQgb24gZXh0cmEgc21hbGwgKG1vYmlsZSkgZGV2aWNlcyBhbmQgdGhlbiBnbyBpbmxpbmUgd2hlblxuLy8gdmlld3BvcnRzIHJlYWNoIDw3NjhweC5cbi8vXG4vLyBSZXF1aXJlcyB3cmFwcGluZyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoIGAuZm9ybS1ncm91cGAgZm9yIHByb3BlciBkaXNwbGF5IG9mXG4vLyBkZWZhdWx0IEhUTUwgZm9ybSBjb250cm9scyBhbmQgb3VyIGN1c3RvbSBmb3JtIGNvbnRyb2xzIChlLmcuLCBpbnB1dCBncm91cHMpLlxuLy9cbi8vIEhlYWRzIHVwISBUaGlzIGlzIG1peGluLWVkIGludG8gYC5uYXZiYXItZm9ybWAgaW4gbmF2YmFycy5sZXNzLlxuXG4uZm9ybS1pbmxpbmUge1xuXG4gIC8vIEtpY2sgaW4gdGhlIGlubGluZVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAvLyBJbmxpbmUtYmxvY2sgYWxsIHRoZSB0aGluZ3MgZm9yIFwiaW5saW5lXCJcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBJbiBuYXZiYXItZm9ybSwgYWxsb3cgZm9sa3MgdG8gKm5vdCogdXNlIGAuZm9ybS1ncm91cGBcbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBhdXRvOyAvLyBQcmV2ZW50IGxhYmVscyBmcm9tIHN0YWNraW5nIGFib3ZlIGlucHV0cyBpbiBgLmZvcm0tZ3JvdXBgXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3RhdGljIGNvbnRyb2xzIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgb25lc1xuICAgIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAgICAgLmlucHV0LWdyb3VwLWJ0bixcbiAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBncm91cHMgbmVlZCB0aGF0IDEwMCUgd2lkdGggdGhvdWdoXG4gICAgLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gb24gcmFkaW9zL2NoZWNrYm94ZXMgdGhhdCB3ZXJlIHVzZWQgZm9yIHN0YWNraW5nLCBhbmRcbiAgICAvLyB0aGVuIHVuZG8gdGhlIGZsb2F0aW5nIG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlcyB0byBtYXRjaC5cbiAgICAucmFkaW8sXG4gICAgLmNoZWNrYm94IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAvLyBSZS1vdmVycmlkZSB0aGUgZmVlZGJhY2sgaWNvbi5cbiAgICAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEhvcml6b250YWwgZm9ybXNcbi8vXG4vLyBIb3Jpem9udGFsIGZvcm1zIGFyZSBidWlsdCBvbiBncmlkIGNsYXNzZXMgYW5kIGFsbG93IHlvdSB0byBjcmVhdGUgZm9ybXMgd2l0aFxuLy8gbGFiZWxzIG9uIHRoZSBsZWZ0IGFuZCBpbnB1dHMgb24gdGhlIHJpZ2h0LlxuXG4uZm9ybS1ob3Jpem9udGFsIHtcblxuICAvLyBDb25zaXN0ZW50IHZlcnRpY2FsIGFsaWdubWVudCBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXNcbiAgLy9cbiAgLy8gTGFiZWxzIGFsc28gZ2V0IHNvbWUgcmVzZXQgc3R5bGVzLCBidXQgdGhhdCBpcyBzY29wZWQgdG8gYSBtZWRpYSBxdWVyeSBiZWxvdy5cbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgfVxuICAvLyBBY2NvdW50IGZvciBwYWRkaW5nIHdlJ3JlIGFkZGluZyB0byBlbnN1cmUgdGhlIGFsaWdubWVudCBhbmQgb2YgaGVscCB0ZXh0XG4gIC8vIGFuZCBvdGhlciBjb250ZW50IGJlbG93IGl0ZW1zXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94IHtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKSk7XG4gIH1cblxuICAvLyBNYWtlIGZvcm0gZ3JvdXBzIGJlaGF2ZSBsaWtlIHJvd3NcbiAgLmZvcm0tZ3JvdXAge1xuICAgIC5tYWtlLXJvdygpO1xuICB9XG5cbiAgLy8gUmVzZXQgc3BhY2luZyBhbmQgcmlnaHQgYWxpZ24gbGFiZWxzLCBidXQgc2NvcGUgdG8gbWVkaWEgcXVlcmllcyBzbyB0aGF0XG4gIC8vIGxhYmVscyBvbiBuYXJyb3cgdmlld3BvcnRzIHN0YWNrIHRoZSBzYW1lIGFzIGEgZGVmYXVsdCBmb3JtIGV4YW1wbGUuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpOyAvLyBEZWZhdWx0IHBhZGRpbmcgcGx1cyBhIGJvcmRlclxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gc3RhdGVzXG4gIC8vXG4gIC8vIFJlcG9zaXRpb24gdGhlIGljb24gYmVjYXVzZSBpdCdzIG5vdyB3aXRoaW4gYSBncmlkIGNvbHVtbiBhbmQgY29sdW1ucyBoYXZlXG4gIC8vIGBwb3NpdGlvbjogcmVsYXRpdmU7YCBvbiB0aGVtLiBBbHNvIGFjY291bnRzIGZvciB0aGUgZ3JpZCBndXR0ZXIgcGFkZGluZy5cbiAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICByaWdodDogZmxvb3IoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgfVxuXG4gIC8vIEZvcm0gZ3JvdXAgc2l6ZXNcbiAgLy9cbiAgLy8gUXVpY2sgdXRpbGl0eSBjbGFzcyBmb3IgYXBwbHlpbmcgYC5pbnB1dC1sZ2AgYW5kIGAuaW5wdXQtc21gIHN0eWxlcyB0byB0aGVcbiAgLy8gaW5wdXRzIGFuZCBsYWJlbHMgd2l0aGluIGEgYC5mb3JtLWdyb3VwYC5cbiAgLmZvcm0tZ3JvdXAtbGcge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSk7XG4gICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZvcm0tZ3JvdXAtc20ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSk7XG4gICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvcm0gdmFsaWRhdGlvbiBzdGF0ZXNcbi8vXG4vLyBVc2VkIGluIGZvcm1zLmxlc3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0gdmFsaWRhdGlvbiBDU1MgZm9yIHdhcm5pbmdzLCBlcnJvcnMsXG4vLyBhbmQgc3VjY2Vzc2VzLlxuXG4uZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHRleHQtY29sb3I6ICM1NTU7IEBib3JkZXItY29sb3I6ICNjY2M7IEBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1KSB7XG4gIC8vIENvbG9yIHRoZSBsYWJlbCBhbmQgaGVscCB0ZXh0XG4gIC5oZWxwLWJsb2NrLFxuICAuY29udHJvbC1sYWJlbCxcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUsXG4gICYucmFkaW8gbGFiZWwsXG4gICYuY2hlY2tib3ggbGFiZWwsXG4gICYucmFkaW8taW5saW5lIGxhYmVsLFxuICAmLmNoZWNrYm94LWlubGluZSBsYWJlbCAge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgfVxuICAvLyBTZXQgdGhlIGJvcmRlciBhbmQgYm94IHNoYWRvdyBvbiBzcGVjaWZpYyBpbnB1dHMgdG8gbWF0Y2hcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyLWNvbG9yO1xuICAgIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTsgLy8gUmVkZWNsYXJlIHNvIHRyYW5zaXRpb25zIHdvcmtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXItY29sb3IsIDEwJSk7XG4gICAgICBAc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDZweCBsaWdodGVuKEBib3JkZXItY29sb3IsIDIwJSk7XG4gICAgICAuYm94LXNoYWRvdyhAc2hhZG93KTtcbiAgICB9XG4gIH1cbiAgLy8gU2V0IHZhbGlkYXRpb24gc3RhdGVzIGFsc28gZm9yIGFkZG9uc1xuICAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3I7XG4gIH1cbiAgLy8gT3B0aW9uYWwgZmVlZGJhY2sgaWNvblxuICAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgZm9jdXMgc3RhdGVcbi8vXG4vLyBHZW5lcmF0ZSBhIGN1c3RvbWl6ZWQgZm9jdXMgc3RhdGUgYW5kIGZvciBhbnkgaW5wdXQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbG9yLFxuLy8gd2hpY2ggZGVmYXVsdHMgdG8gdGhlIGBAaW5wdXQtYm9yZGVyLWZvY3VzYCB2YXJpYWJsZS5cbi8vXG4vLyBXZSBoaWdobHkgZW5jb3VyYWdlIHlvdSB0byBub3QgY3VzdG9taXplIHRoZSBkZWZhdWx0IHZhbHVlLCBidXQgaW5zdGVhZCB1c2Vcbi8vIHRoaXMgdG8gdHdlYWsgY29sb3JzIG9uIGFuIGFzLW5lZWRlZCBiYXNpcy4gVGhpcyBhZXN0aGV0aWMgY2hhbmdlIGlzIGJhc2VkIG9uXG4vLyBXZWJLaXQncyBkZWZhdWx0IHN0eWxlcywgYnV0IGFwcGxpY2FibGUgdG8gYSB3aWRlciByYW5nZSBvZiBicm93c2Vycy4gSXRzXG4vLyB1c2FiaWxpdHkgYW5kIGFjY2Vzc2liaWxpdHkgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCB3aXRoIGFueSBjaGFuZ2UuXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTogY2hhbmdlIHRoZSBkZWZhdWx0IGJsdWUgYm9yZGVyIGFuZCBzaGFkb3cgdG8gd2hpdGUgZm9yIGJldHRlclxuLy8gY29udHJhc3QgYWdhaW5zdCBhIGRhcmsgZ3JheSBiYWNrZ3JvdW5kLlxuLmZvcm0tY29udHJvbC1mb2N1cyhAY29sb3I6IEBpbnB1dC1ib3JkZXItZm9jdXMpIHtcbiAgQGNvbG9yLXJnYmE6IHJnYmEocmVkKEBjb2xvciksIGdyZWVuKEBjb2xvciksIGJsdWUoQGNvbG9yKSwgLjYpO1xuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IEBjb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC5ib3gtc2hhZG93KH5cImluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IEB7Y29sb3ItcmdiYX1cIik7XG4gIH1cbn1cblxuLy8gRm9ybSBjb250cm9sIHNpemluZ1xuLy9cbi8vIFJlbGF0aXZlIHRleHQgc2l6ZSwgcGFkZGluZywgYW5kIGJvcmRlci1yYWRpaSBjaGFuZ2VzIGZvciBmb3JtIGNvbnRyb2xzLiBGb3Jcbi8vIGhvcml6b250YWwgc2l6aW5nLCB3cmFwIGNvbnRyb2xzIGluIHRoZSBwcmVkZWZpbmVkIGdyaWQgY2xhc3Nlcy4gYDxzZWxlY3Q+YFxuLy8gZWxlbWVudCBnZXRzIHNwZWNpYWwgbG92ZSBiZWNhdXNlIGl0J3Mgc3BlY2lhbCwgYW5kIHRoYXQncyBhIGZhY3QhXG4uaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0OyBAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cbiAgc2VsZWN0JiB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICB9XG5cbiAgdGV4dGFyZWEmLFxuICBzZWxlY3RbbXVsdGlwbGVdJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCIvL1xuLy8gQnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gRm9yIGlucHV0LmJ0blxuICBmb250LXdlaWdodDogQGJ0bi1mb250LXdlaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbDsgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWJhc2U7IEBsaW5lLWhlaWdodC1iYXNlOyBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gIC51c2VyLXNlbGVjdChub25lKTtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICAudGFiLWZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6IEBidG4tZGVmYXVsdC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAuYm94LXNoYWRvdyhpbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KSk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICAub3BhY2l0eSguNjUpO1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG5cbiAgYSYge1xuICAgICYuZGlzYWJsZWQsXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIEZ1dHVyZS1wcm9vZiBkaXNhYmxpbmcgb2YgY2xpY2tzIG9uIGA8YT5gIGVsZW1lbnRzXG4gICAgfVxuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZGVmYXVsdCB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWRlZmF1bHQtY29sb3I7IEBidG4tZGVmYXVsdC1iZzsgQGJ0bi1kZWZhdWx0LWJvcmRlcik7XG59XG4uYnRuLXByaW1hcnkge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1wcmltYXJ5LWNvbG9yOyBAYnRuLXByaW1hcnktYmc7IEBidG4tcHJpbWFyeS1ib3JkZXIpO1xufVxuLy8gU3VjY2VzcyBhcHBlYXJzIGFzIGdyZWVuXG4uYnRuLXN1Y2Nlc3Mge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1zdWNjZXNzLWNvbG9yOyBAYnRuLXN1Y2Nlc3MtYmc7IEBidG4tc3VjY2Vzcy1ib3JkZXIpO1xufVxuLy8gSW5mbyBhcHBlYXJzIGFzIGJsdWUtZ3JlZW5cbi5idG4taW5mbyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWluZm8tY29sb3I7IEBidG4taW5mby1iZzsgQGJ0bi1pbmZvLWJvcmRlcik7XG59XG4vLyBXYXJuaW5nIGFwcGVhcnMgYXMgb3JhbmdlXG4uYnRuLXdhcm5pbmcge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi13YXJuaW5nLWNvbG9yOyBAYnRuLXdhcm5pbmctYmc7IEBidG4td2FybmluZy1ib3JkZXIpO1xufVxuLy8gRGFuZ2VyIGFuZCBlcnJvciBhcHBlYXIgYXMgcmVkXG4uYnRuLWRhbmdlciB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWRhbmdlci1jb2xvcjsgQGJ0bi1kYW5nZXItYmc7IEBidG4tZGFuZ2VyLWJvcmRlcik7XG59XG5cblxuLy8gTGluayBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgYSBidXR0b24gbG9vayBhbmQgYmVoYXZlIGxpa2UgYSBsaW5rXG4uYnRuLWxpbmsge1xuICBjb2xvcjogQGxpbmstY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBidG4tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCdXR0b24gU2l6ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tbGcge1xuICAvLyBsaW5lLWhlaWdodDogZW5zdXJlIGV2ZW4tbnVtYmVyZWQgaGVpZ2h0IG9mIGJ1dHRvbiBuZXh0IHRvIGxhcmdlIGlucHV0XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAYnRuLWJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuLmJ0bi1zbSB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgcHJvcGVyIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBzbWFsbCBpbnB1dFxuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5idG4teHMge1xuICAuYnV0dG9uLXNpemUoQHBhZGRpbmcteHMtdmVydGljYWw7IEBwYWRkaW5nLXhzLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cblxuXG4vLyBCbG9jayBidXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIFZlcnRpY2FsbHkgc3BhY2Ugb3V0IG11bHRpcGxlIGJsb2NrIGJ1dHRvbnNcbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4vLyBTcGVjaWZpY2l0eSBvdmVycmlkZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgJi5idG4tYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuLmJ1dHRvbi12YXJpYW50KEBjb2xvcjsgQGJhY2tncm91bmQ7IEBib3JkZXIpIHtcbiAgY29sb3I6IEBjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMjUlKTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMTIlKTtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZSYge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAxMiUpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTclKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAyNSUpO1xuICAgIH1cbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZSYge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHtcbiAgICBjb2xvcjogQGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG59XG4iLCIvLyBPcGFjaXR5XG5cbi5vcGFjaXR5KEBvcGFjaXR5KSB7XG4gIG9wYWNpdHk6IEBvcGFjaXR5O1xuICAvLyBJRTggZmlsdGVyXG4gIEBvcGFjaXR5LWllOiAoQG9wYWNpdHkgKiAxMDApO1xuICBmaWx0ZXI6IH5cImFscGhhKG9wYWNpdHk9QHtvcGFjaXR5LWllfSlcIjtcbn1cbiIsIi8vXG4vLyBDb21wb25lbnQgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSGVhZHMgdXAhXG4vL1xuLy8gV2UgZG9uJ3QgdXNlIHRoZSBgLm9wYWNpdHkoKWAgbWl4aW4gaGVyZSBzaW5jZSBpdCBjYXVzZXMgYSBidWcgd2l0aCB0ZXh0XG4vLyBmaWVsZHMgaW4gSUU3LTguIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMzU1Mi5cblxuLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICAudHJhbnNpdGlvbihvcGFjaXR5IC4xNXMgbGluZWFyKTtcbiAgJi5pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uY29sbGFwc2Uge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaW4gICAgICB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRyJi5pbiAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxuICB0Ym9keSYuaW4geyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cbn1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLnRyYW5zaXRpb24tcHJvcGVydHkoflwiaGVpZ2h0LCB2aXNpYmlsaXR5XCIpO1xuICAudHJhbnNpdGlvbi1kdXJhdGlvbiguMzVzKTtcbiAgLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKGVhc2UpO1xufVxuIiwiLy9cbi8vIERyb3Bkb3duIG1lbnVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIERyb3Bkb3duIGFycm93L2NhcmV0XG4uY2FyZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci10b3A6ICAgQGNhcmV0LXdpZHRoLWJhc2UgZGFzaGVkO1xuICBib3JkZXItdG9wOiAgIEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIH5cIlxcOVwiOyAvLyBJRThcbiAgYm9yZGVyLXJpZ2h0OiBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIHdyYXBwZXIgKGRpdilcbi5kcm9wdXAsXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIFByZXZlbnQgdGhlIGZvY3VzIG9uIHRoZSBkcm9wZG93biB0b2dnbGUgd2hlbiBjbG9zaW5nIGRyb3Bkb3duc1xuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFRoZSBkcm9wZG93biBtZW51ICh1bClcbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtZHJvcGRvd247XG4gIGRpc3BsYXk6IG5vbmU7IC8vIG5vbmUgYnkgZGVmYXVsdCwgYnV0IGJsb2NrIG9uIFwib3BlblwiIG9mIHRoZSBtZW51XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwOyAvLyBvdmVycmlkZSBkZWZhdWx0IHVsXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBFbnN1cmVzIHByb3BlciBhbGlnbm1lbnQgaWYgcGFyZW50IGhhcyBpdCBjaGFuZ2VkIChlLmcuLCBtb2RhbCBmb290ZXIpXG4gIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGRyb3Bkb3duLWZhbGxiYWNrLWJvcmRlcjsgLy8gSUU4IGZhbGxiYWNrXG4gIGJvcmRlcjogMXB4IHNvbGlkIEBkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIC5ib3gtc2hhZG93KDAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgLy8gQWxpZ25zIHRoZSBkcm9wZG93biBtZW51IHRvIHJpZ2h0XG4gIC8vXG4gIC8vIERlcHJlY2F0ZWQgYXMgb2YgMy4xLjAgaW4gZmF2b3Igb2YgYC5kcm9wZG93bi1tZW51LVtkaXJdYFxuICAmLnB1bGwtcmlnaHQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAvLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gdGhlIGRyb3Bkb3duXG4gIC5kaXZpZGVyIHtcbiAgICAubmF2LWRpdmlkZXIoQGRyb3Bkb3duLWRpdmlkZXItYmcpO1xuICB9XG5cbiAgLy8gTGlua3Mgd2l0aGluIHRoZSBkcm9wZG93biBtZW51XG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gcHJldmVudCBsaW5rcyBmcm9tIHJhbmRvbWx5IGJyZWFraW5nIG9udG8gbmV3IGxpbmVzXG4gIH1cbn1cblxuLy8gSG92ZXIvRm9jdXMgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tbGluay1ob3Zlci1iZztcbiAgfVxufVxuXG4vLyBBY3RpdmUgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1saW5rLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuLy9cbi8vIEdyYXkgb3V0IHRleHQgYW5kIGVuc3VyZSB0aGUgaG92ZXIvZm9jdXMgc3RhdGUgcmVtYWlucyBncmF5XG5cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC8vIE51a2UgaG92ZXIvZm9jdXMgZWZmZWN0c1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIENTUyBncmFkaWVudFxuICAgIC5yZXNldC1maWx0ZXIoKTtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4ub3BlbiB7XG4gIC8vIFNob3cgdGhlIG1lbnVcbiAgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG91dGxpbmUgd2hlbiA6Zm9jdXMgaXMgdHJpZ2dlcmVkXG4gID4gYSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBNZW51IHBvc2l0aW9uaW5nXG4vL1xuLy8gQWRkIGV4dHJhIGNsYXNzIHRvIGAuZHJvcGRvd24tbWVudWAgdG8gZmxpcCB0aGUgYWxpZ25tZW50IG9mIHRoZSBkcm9wZG93blxuLy8gbWVudSB3aXRoIHRoZSBwYXJlbnQuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gYC5kcm9wZG93bi1tZW51YFxuICByaWdodDogMDtcbn1cbi8vIFdpdGggdjMsIHdlIGVuYWJsZWQgYXV0by1mbGlwcGluZyBpZiB5b3UgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiBhIHJpZ2h0XG4vLyBhbGlnbmVkIG5hdiBjb21wb25lbnQuIFRvIGVuYWJsZSB0aGUgdW5kb2luZyBvZiB0aGF0LCB3ZSBwcm92aWRlIGFuIG92ZXJyaWRlXG4vLyB0byByZXN0b3JlIHRoZSBkZWZhdWx0IGRyb3Bkb3duIG1lbnUgYWxpZ25tZW50LlxuLy9cbi8vIFRoaXMgaXMgb25seSBmb3IgbGVmdC1hbGlnbmluZyBhIGRyb3Bkb3duIG1lbnUgd2l0aGluIGEgYC5uYXZiYXItcmlnaHRgIG9yXG4vLyBgLnB1bGwtcmlnaHRgIG5hdiBjb21wb25lbnQuXG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi8vIERyb3Bkb3duIHNlY3Rpb24gaGVhZGVyc1xuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAZHJvcGRvd24taGVhZGVyLWNvbG9yO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBhcyB3aXRoID4gbGkgPiBhXG59XG5cbi8vIEJhY2tkcm9wIHRvIGNhdGNoIGJvZHkgY2xpY2tzIG9uIG1vYmlsZSwgZXRjLlxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IChAemluZGV4LWRyb3Bkb3duIC0gMTApO1xufVxuXG4vLyBSaWdodCBhbGlnbmVkIGRyb3Bkb3duc1xuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vLyBBbGxvdyBmb3IgZHJvcGRvd25zIHRvIGdvIGJvdHRvbSB1cCAoYWthLCBkcm9wdXAtbWVudSlcbi8vXG4vLyBKdXN0IGFkZCAuZHJvcHVwIGFmdGVyIHRoZSBzdGFuZGFyZCAuZHJvcGRvd24gY2xhc3MgYW5kIHlvdSdyZSBzZXQsIGJyby5cbi8vIFRPRE86IGFic3RyYWN0IHRoaXMgc28gdGhhdCB0aGUgbmF2YmFyIGZpeGVkIHN0eWxlcyBhcmUgbm90IHBsYWNlZCBoZXJlP1xuXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206IEBjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgICBib3JkZXItYm90dG9tOiBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB+XCJcXDlcIjsgLy8gSUU4XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICAvLyBEaWZmZXJlbnQgcG9zaXRpb25pbmcgZm9yIGJvdHRvbSB1cCBtZW51XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgfVxufVxuXG5cbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcbi8vXG4vLyBSZWl0ZXJhdGUgcGVyIG5hdmJhci5sZXNzIGFuZCB0aGUgbW9kaWZpZWQgY29tcG9uZW50IGFsaWdubWVudCB0aGVyZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgLm5hdmJhci1yaWdodCB7XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgLmRyb3Bkb3duLW1lbnUtcmlnaHQoKTtcbiAgICB9XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBvdmVycmlkZXMgb2YgdGhlIGRlZmF1bHQgcmlnaHQgYWxpZ25lZCBtZW51LlxuICAgIC8vIFdpbGwgcmVtb3ZlIGNvbWUgdjQgaW4gYWxsIGxpa2VsaWhvb2QuXG4gICAgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gICAgICAuZHJvcGRvd24tbWVudS1sZWZ0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbi5uYXYtZGl2aWRlcihAY29sb3I6ICNlNWU1ZTUpIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbn1cbiIsIi8vIFJlc2V0IGZpbHRlcnMgZm9yIElFXG4vL1xuLy8gV2hlbiB5b3UgbmVlZCB0byByZW1vdmUgYSBncmFkaWVudCBiYWNrZ3JvdW5kLCBkbyBub3QgZm9yZ2V0IHRvIHVzZSB0aGlzIHRvIHJlc2V0XG4vLyB0aGUgSUUgZmlsdGVyIGZvciBJRTkgYW5kIGJlbG93LlxuXG4ucmVzZXQtZmlsdGVyKCkge1xuICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpXCIpKTtcbn1cbiIsIi8vXG4vLyBCdXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlIHRoZSBkaXYgYmVoYXZlIGxpa2UgYSBidXR0b25cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIG1hdGNoIC5idG4gYWxpZ25tZW50IGdpdmVuIGZvbnQtc2l6ZSBoYWNrIGFib3ZlXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIEJyaW5nIHRoZSBcImFjdGl2ZVwiIGJ1dHRvbiB0byB0aGUgZnJvbnRcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJldmVudCBkb3VibGUgYm9yZGVycyB3aGVuIGJ1dHRvbnMgYXJlIG5leHQgdG8gZWFjaCBvdGhlclxuLmJ0bi1ncm91cCB7XG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmJ0bi1ncm91cCxcbiAgLmJ0bi1ncm91cCArIC5idG4sXG4gIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbDogR3JvdXAgbXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB0b2dldGhlciBmb3IgYSB0b29sYmFyXG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDsgLy8gT2Zmc2V0IHRoZSBmaXJzdCBjaGlsZCdzIG1hcmdpblxuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICAuYnRuLFxuICAuYnRuLWdyb3VwLFxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwLFxuICA+IC5pbnB1dC1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIFNldCBjb3JuZXJzIGluZGl2aWR1YWwgYmVjYXVzZSBzb21ldGltZXMgYSBzaW5nbGUgYnV0dG9uIGNhbiBiZSBpbiBhIC5idG4tZ3JvdXAgYW5kIHdlIG5lZWQgOmZpcnN0LWNoaWxkIGFuZCA6bGFzdC1jaGlsZCB0byBib3RoIG1hdGNoXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAmOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbiAgfVxufVxuLy8gTmVlZCAuZHJvcGRvd24tdG9nZ2xlIHNpbmNlIDpsYXN0LWNoaWxkIGRvZXNuJ3QgYXBwbHksIGdpdmVuIHRoYXQgYSAuZHJvcGRvd24tbWVudSBpcyB1c2VkIGltbWVkaWF0ZWx5IGFmdGVyIGl0XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuXG4vLyBDdXN0b20gZWRpdHMgZm9yIGluY2x1ZGluZyBidG4tZ3JvdXBzIHdpdGhpbiBidG4tZ3JvdXBzICh1c2VmdWwgZm9yIGluY2x1ZGluZyBkcm9wZG93biBidXR0b25zIHdpdGhpbiBhIGJ0bi1ncm91cClcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgPiAuYnRuOmxhc3QtY2hpbGQsXG4gID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gT24gYWN0aXZlIGFuZCBvcGVuLCBkb24ndCBzaG93IG91dGxpbmVcbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgYnV0dG9uIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uXG5cbi5idG4tZ3JvdXAteHMgPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi14cyk7IH1cbi5idG4tZ3JvdXAtc20gPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi1zbSk7IH1cbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi1sZyk7IH1cblxuXG4vLyBTcGxpdCBidXR0b24gZHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIGxpbmUgYmV0d2VlbiBidXR0b25zIHNvbWUgZGVwdGhcbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG5cbi8vIFRoZSBjbGlja2FibGUgYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgbWVudVxuLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBhbmQgc2V0IHRoZSBzYW1lIGluc2V0IHNoYWRvdyBhcyB0aGUgOmFjdGl2ZSBzdGF0ZVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KSk7XG5cbiAgLy8gU2hvdyBubyBzaGFkb3cgZm9yIGAuYnRuLWxpbmtgIHNpbmNlIGl0IGhhcyBubyBvdGhlciBidXR0b24gc3R5bGVzLlxuICAmLmJ0bi1saW5rIHtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxufVxuXG5cbi8vIFJlcG9zaXRpb24gdGhlIGNhcmV0XG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLy8gQ2FyZXRzIGluIG90aGVyIGJ1dHRvbiBzaXplc1xuLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IEBjYXJldC13aWR0aC1sYXJnZSBAY2FyZXQtd2lkdGgtbGFyZ2UgMDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbi8vIFVwc2lkZSBkb3duIGNhcmV0cyBmb3IgLmRyb3B1cFxuLmRyb3B1cCAuYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogMCBAY2FyZXQtd2lkdGgtbGFyZ2UgQGNhcmV0LXdpZHRoLWxhcmdlO1xufVxuXG5cbi8vIFZlcnRpY2FsIGJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwLFxuICA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBDbGVhciBmbG9hdHMgc28gZHJvcGRvd24gbWVudXMgY2FuIGJlIHByb3Blcmx5IHBsYWNlZFxuICA+IC5idG4tZ3JvdXAge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICAgID4gLmJ0biB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gIH1cblxuICA+IC5idG4gKyAuYnRuLFxuICA+IC5idG4gKyAuYnRuLWdyb3VwLFxuICA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuICA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuIHtcbiAgJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gICY6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgfVxufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG5cblxuLy8gSnVzdGlmaWVkIGJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAxJTtcbiAgfVxuICA+IC5idG4tZ3JvdXAgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveCBhbmQgcmFkaW8gb3B0aW9uc1xuLy9cbi8vIEluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIGJyb3dzZXIncyBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2ssIHBvd2VyZWQgYnkgdGhlXG4vLyBgcmVxdWlyZWRgIGF0dHJpYnV0ZSwgd2UgaGF2ZSB0byBcImhpZGVcIiB0aGUgaW5wdXRzIHZpYSBgY2xpcGAuIFdlIGNhbm5vdCB1c2Vcbi8vIGBkaXNwbGF5OiBub25lO2Agb3IgYHZpc2liaWxpdHk6IGhpZGRlbjtgIGFzIHRoYXQgYWxzbyBoaWRlcyB0aGUgcG9wb3Zlci5cbi8vIFNpbXBseSB2aXN1YWxseSBoaWRpbmcgdGhlIGlucHV0cyB2aWEgYG9wYWNpdHlgIHdvdWxkIGxlYXZlIHRoZW0gY2xpY2thYmxlIGluXG4vLyBjZXJ0YWluIGNhc2VzIHdoaWNoIGlzIHByZXZlbnRlZCBieSB1c2luZyBgY2xpcGAgYW5kIGBwb2ludGVyLWV2ZW50c2AuXG4vLyBUaGlzIHdheSwgd2UgZW5zdXJlIGEgRE9NIGVsZW1lbnQgaXMgdmlzaWJsZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBmcm9tLlxuLy9cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMjc5NCBhbmRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzE0NTU5IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdIHtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcblxuLmJvcmRlci10b3AtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1yaWdodC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLWJvdHRvbS1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLWxlZnQtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbiIsIi8vXG4vLyBJbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIEZvciBkcm9wZG93bnNcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8vIHByZXZlbnQgaW5wdXQgZ3JvdXBzIGZyb20gaW5oZXJpdGluZyBib3JkZXIgc3R5bGVzIGZyb20gdGFibGUgY2VsbHMgd2hlbiBwbGFjZWQgd2l0aGluIGEgdGFibGVcblxuICAvLyBVbmRvIHBhZGRpbmcgYW5kIGZsb2F0IG9mIGdyaWQgY2xhc3Nlc1xuICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGlucHV0IGlzIGFsd2F5cyBhYm92ZSB0aGUgKmFwcGVuZGVkKiBhZGRvbiBidXR0b24gZm9yXG4gICAgLy8gcHJvcGVyIGJvcmRlciBjb2xvcnMuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAvLyBJRTkgZnViYXJzIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaW4gdGV4dCBpbnB1dHMgYW5kIHRoZSBhcnJvd3Mgb25cbiAgICAvLyBzZWxlY3QgZWxlbWVudHMgaW4gaW5wdXQgZ3JvdXBzLiBUbyBmaXggaXQsIHdlIGZsb2F0IHRoZSBpbnB1dC4gRGV0YWlsczpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTYxI2lzc3VlY29tbWVudC0yODkzNjg1NVxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMztcbiAgICB9XG4gIH1cbn1cblxuLy8gU2l6aW5nIG9wdGlvbnNcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBmb3JtIGNvbnRyb2wgc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyXG4vLyBtYW5pcHVsYXRpb24uXG5cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIC5pbnB1dC1sZygpO1xufVxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgLmlucHV0LXNtKCk7XG59XG5cblxuLy8gRGlzcGxheSBhcyB0YWJsZS1jZWxsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLy8gQWRkb24gYW5kIGFkZG9uIHdyYXBwZXIgZm9yIGJ1dHRvbnNcbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIE1hdGNoIHRoZSBpbnB1dHNcbn1cblxuLy8gVGV4dCBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWdyb3VwLWFkZG9uLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cztcblxuICAvLyBTaXppbmdcbiAgJi5pbnB1dC1zbSB7XG4gICAgcGFkZGluZzogQHBhZGRpbmctc21hbGwtdmVydGljYWwgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw7XG4gIH1cbiAgJi5pbnB1dC1sZyB7XG4gICAgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIH1cblxuICAvLyBOdWtlIGRlZmF1bHQgbWFyZ2lucyBmcm9tIGNoZWNrYm94ZXMgYW5kIHJhZGlvcyB0byB2ZXJ0aWNhbGx5IGNlbnRlciB3aXRoaW4uXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi8vIFJlc2V0IHJvdW5kZWQgY29ybmVyc1xuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4vLyBCdXR0b24gaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBKYW5raWx5IHByZXZlbnQgaW5wdXQgYnV0dG9uIGdyb3VwcyBmcm9tIHdyYXBwaW5nIHdpdGggYHdoaXRlLXNwYWNlYCBhbmRcbiAgLy8gYGZvbnQtc2l6ZWAgaW4gY29tYmluYXRpb24gd2l0aCBgaW5saW5lLWJsb2NrYCBvbiBidXR0b25zLlxuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBzcGFjaW5nLCBwb3NpdGlvbiBmb3IgYnJpbmdpbmcgaG92ZXJlZC9mb2N1c2VkL2FjdGl2ZWRcbiAgLy8gZWxlbWVudCBhYm92ZSB0aGUgc2libGluZ3MuXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICsgLmJ0biB7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgYnV0dG9uIHRvIHRoZSBmcm9udFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5lZ2F0aXZlIG1hcmdpbiB0byBvbmx5IGhhdmUgYSAxcHggYm9yZGVyIGJldHdlZW4gdGhlIHR3b1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICB9XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBOYXZzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdWwvb2xcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgPiBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogQG5hdi1saW5rLXBhZGRpbmc7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0YXRlIHNldHMgdGV4dCB0byBncmF5IGFuZCBudWtlcyBob3Zlci90YWIgZWZmZWN0c1xuICAgICYuZGlzYWJsZWQgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2LWRpc2FibGVkLWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtZGlzYWJsZWQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE9wZW4gZHJvcGRvd25zXG4gIC5vcGVuID4gYSB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1saW5rLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAbGluay1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBOYXYgZGl2aWRlcnMgKGRlcHJlY2F0ZWQgd2l0aCB2My4wLjEpXG4gIC8vXG4gIC8vIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGluIHYzIHdpdGggdGhlIGRyb3BwaW5nIG9mIGAubmF2LWxpc3RgLCBidXRcbiAgLy8gd2UgbWlzc2VkIGl0LiBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGFueXdoZXJlLCBidXQgaW4gdGhlIGludGVyZXN0XG4gIC8vIG9mIG1haW50YWluaW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaW4gY2FzZSB5b3UgdXNlIGl0LCBpdCdzIGRlcHJlY2F0ZWQuXG4gIC5uYXYtZGl2aWRlciB7XG4gICAgLm5hdi1kaXZpZGVyKCk7XG4gIH1cblxuICAvLyBQcmV2ZW50IElFOCBmcm9tIG1pc3BsYWNpbmcgaW1nc1xuICAvL1xuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzk4NCNpc3N1ZWNvbW1lbnQtMzk4NTk4OVxuICA+IGxpID4gYSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG5cblxuLy8gVGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHaXZlIHRoZSB0YWJzIHNvbWV0aGluZyB0byBzaXQgb25cbi5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvLyBNYWtlIHRoZSBsaXN0LWl0ZW1zIG92ZXJsYXkgdGhlIGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuXG4gICAgLy8gQWN0dWFsIHRhYnMgKGFzIGxpbmtzKVxuICAgID4gYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSBAYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IEBuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciBAbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3IgQG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGUsIGFuZCBpdHMgOmhvdmVyIHRvIG92ZXJyaWRlIG5vcm1hbCA6aG92ZXJcbiAgICAmLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBwdWxsaW5nIHRoaXMgaW4gbWFpbmx5IGZvciBsZXNzIHNob3J0aGFuZFxuICAmLm5hdi1qdXN0aWZpZWQge1xuICAgIC5uYXYtanVzdGlmaWVkKCk7XG4gICAgLm5hdi10YWJzLWp1c3RpZmllZCgpO1xuICB9XG59XG5cblxuLy8gUGlsbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5uYXYtcGlsbHMge1xuICA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIC8vIExpbmtzIHJlbmRlcmVkIGFzIHBpbGxzXG4gICAgPiBhIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBuYXYtcGlsbHMtYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gICAgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdGFja2VkIHBpbGxzXG4ubmF2LXN0YWNrZWQge1xuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyBubyBuZWVkIGZvciB0aGlzIGdhcCBiZXR3ZWVuIG5hdiBpdGVtc1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdiB2YXJpYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBKdXN0aWZpZWQgbmF2IGxpbmtzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgPiBhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gIH1cblxuICA+IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICA+IGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNb3ZlIGJvcmRlcnMgdG8gYW5jaG9ycyBpbnN0ZWFkIG9mIGJvdHRvbSBvZiBsaXN0XG4vL1xuLy8gTWl4aW4gZm9yIGFkZGluZyBvbiB0b3AgdGhlIHNoYXJlZCBgLm5hdi1qdXN0aWZpZWRgIHN0eWxlcyBmb3Igb3VyIHRhYnNcbi5uYXYtdGFicy1qdXN0aWZpZWQge1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gID4gbGkgPiBhIHtcbiAgICAvLyBPdmVycmlkZSBtYXJnaW4gZnJvbSAubmF2LXRhYnNcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgfVxuXG4gID4gLmFjdGl2ZSA+IGEsXG4gID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEBuYXYtdGFicy1qdXN0aWZpZWQtbGluay1ib3JkZXItY29sb3I7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwIDA7XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEsXG4gICAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgICA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBuYXYtdGFicy1qdXN0aWZpZWQtYWN0aXZlLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRhYmJhYmxlIHRhYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSGlkZSB0YWJiYWJsZSBwYW5lcyB0byBzdGFydCwgc2hvdyB0aGVtIHdoZW4gYC5hY3RpdmVgXG4udGFiLWNvbnRlbnQge1xuICA+IC50YWItcGFuZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICA+IC5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuLy8gRHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNwZWNpZmljIGRyb3Bkb3duc1xuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgLy8gbWFrZSBkcm9wZG93biBib3JkZXIgb3ZlcmxhcCB0YWIgYm9yZGVyXG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIC8vIFJlbW92ZSB0aGUgdG9wIHJvdW5kZWQgY29ybmVycyBoZXJlIHNpbmNlIHRoZXJlIGlzIGEgaGFyZCBlZGdlIGFib3ZlIHRoZSBtZW51XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cbiIsIi8vXG4vLyBOYXZiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdyYXBwZXIgYW5kIGJhc2UgY2xhc3Ncbi8vXG4vLyBQcm92aWRlIGEgc3RhdGljIG5hdmJhciBmcm9tIHdoaWNoIHdlIGV4cGFuZCB0byBjcmVhdGUgZnVsbC13aWR0aCwgZml4ZWQsIGFuZFxuLy8gb3RoZXIgbmF2YmFyIHZhcmlhdGlvbnMuXG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IEBuYXZiYXItaGVpZ2h0OyAvLyBFbnN1cmUgYSBuYXZiYXIgYWx3YXlzIHNob3dzIChlLmcuLCB3aXRob3V0IGEgLm5hdmJhci1icmFuZCBpbiBjb2xsYXBzZWQgbW9kZSlcbiAgbWFyZ2luLWJvdHRvbTogQG5hdmJhci1tYXJnaW4tYm90dG9tO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAvLyBQcmV2ZW50IGZsb2F0cyBmcm9tIGJyZWFraW5nIHRoZSBuYXZiYXJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiBAbmF2YmFyLWJvcmRlci1yYWRpdXM7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgaGVhZGluZ1xuLy9cbi8vIEdyb3VwcyBgLm5hdmJhci1icmFuZGAgYW5kIGAubmF2YmFyLXRvZ2dsZWAgaW50byBhIHNpbmdsZSBjb21wb25lbnQgZm9yIGVhc3lcbi8vIHN0eWxpbmcgb2YgcmVzcG9uc2l2ZSBhc3BlY3RzLlxuXG4ubmF2YmFyLWhlYWRlciB7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgY29sbGFwc2UgKGJvZHkpXG4vL1xuLy8gR3JvdXAgeW91ciBuYXZiYXIgY29udGVudCBpbnRvIHRoaXMgZm9yIGVhc3kgY29sbGFwc2luZyBhbmQgZXhwYW5kaW5nIGFjcm9zc1xuLy8gdmFyaW91cyBkZXZpY2Ugc2l6ZXMuIEJ5IGRlZmF1bHQsIHRoaXMgY29udGVudCBpcyBjb2xsYXBzZWQgd2hlbiA8NzY4cHgsIGJ1dFxuLy8gd2lsbCBleHBhbmQgcGFzdCB0aGF0IGZvciBhIGhvcml6b250YWwgZGlzcGxheS5cbi8vXG4vLyBUbyBzdGFydCAob24gbW9iaWxlIGRldmljZXMpIHRoZSBuYXZiYXIgbGlua3MsIGZvcm1zLCBhbmQgYnV0dG9ucyBhcmUgc3RhY2tlZFxuLy8gdmVydGljYWxseSBhbmQgaW5jbHVkZSBhIGBtYXgtaGVpZ2h0YCB0byBvdmVyZmxvdyBpbiBjYXNlIHlvdSBoYXZlIHRvbyBtdWNoXG4vLyBjb250ZW50IGZvciB0aGUgdXNlcidzIHZpZXdwb3J0LlxuXG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmctbGVmdDogIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgJi5pbiB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuaW4ge1xuICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvLyBVbmRvIHRoZSBjb2xsYXBzZSBzaWRlIHBhZGRpbmcgZm9yIG5hdmJhcnMgd2l0aCBjb250YWluZXJzIHRvIGVuc3VyZVxuICAgIC8vIGFsaWdubWVudCBvZiByaWdodC1hbGlnbmVkIGNvbnRlbnRzLlxuICAgIC5uYXZiYXItZml4ZWQtdG9wICYsXG4gICAgLm5hdmJhci1zdGF0aWMtdG9wICYsXG4gICAgLm5hdmJhci1maXhlZC1ib3R0b20gJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWF4LWhlaWdodDogQG5hdmJhci1jb2xsYXBzZS1tYXgtaGVpZ2h0O1xuXG4gICAgQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiBAc2NyZWVuLXhzLW1pbikgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCb3RoIG5hdmJhciBoZWFkZXIgYW5kIGNvbGxhcHNlXG4vL1xuLy8gV2hlbiBhIGNvbnRhaW5lciBpcyBwcmVzZW50LCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBoZWFkZXIgYW5kIGNvbGxhcHNlLlxuXG4uY29udGFpbmVyLFxuLmNvbnRhaW5lci1mbHVpZCB7XG4gID4gLm5hdmJhci1oZWFkZXIsXG4gID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbWFyZ2luLWxlZnQ6ICAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6ICAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vXG4vLyBOYXZiYXIgYWxpZ25tZW50IG9wdGlvbnNcbi8vXG4vLyBEaXNwbGF5IHRoZSBuYXZiYXIgYWNyb3NzIHRoZSBlbnRpcmV0eSBvZiB0aGUgcGFnZSBvciBmaXhlZCBpdCB0byB0aGUgdG9wIG9yXG4vLyBib3R0b20gb2YgdGhlIHBhZ2UuXG5cbi8vIFN0YXRpYyB0b3AgKHVuZml4ZWQsIGJ1dCAxMDAlIHdpZGUpIG5hdmJhclxuLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgei1pbmRleDogQHppbmRleC1uYXZiYXI7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLy8gRml4IHRoZSB0b3AvYm90dG9tIG5hdmJhcnMgd2hlbiBzY3JlZW4gcmVhbCBlc3RhdGUgc3VwcG9ydHMgaXRcbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW5hdmJhci1maXhlZDtcblxuICAvLyBVbmRvIHRoZSByb3VuZGVkIGNvcm5lcnNcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIG92ZXJyaWRlIC5uYXZiYXIgZGVmYXVsdHNcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwO1xufVxuXG5cbi8vIEJyYW5kL3Byb2plY3QgbmFtZVxuXG4ubmF2YmFyLWJyYW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbCBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBoZWlnaHQ6IEBuYXZiYXItaGVpZ2h0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gID4gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgLm5hdmJhciA+IC5jb250YWluZXIgJixcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2YmFyIHRvZ2dsZVxuLy9cbi8vIEN1c3RvbSBidXR0b24gZm9yIHRvZ2dsaW5nIHRoZSBgLm5hdmJhci1jb2xsYXBzZWAsIHBvd2VyZWQgYnkgdGhlIGNvbGxhcHNlXG4vLyBKYXZhU2NyaXB0IHBsdWdpbi5cblxuLm5hdmJhci10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oMzRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIFdlIHJlbW92ZSB0aGUgYG91dGxpbmVgIGhlcmUsIGJ1dCBsYXRlciBjb21wZW5zYXRlIGJ5IGF0dGFjaGluZyBgOmhvdmVyYFxuICAvLyBzdHlsZXMgdG8gYDpmb2N1c2AuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBCYXJzXG4gIC5pY29uLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICB9XG4gIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIG5hdiBsaW5rc1xuLy9cbi8vIEJ1aWxkcyBvbiB0b3Agb2YgdGhlIGAubmF2YCBjb21wb25lbnRzIHdpdGggaXRzIG93biBtb2RpZmllciBjbGFzcyB0byBtYWtlXG4vLyB0aGUgbmF2IHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBuYXYgKGFib3ZlIDc2OHB4KS5cblxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IChAbmF2YmFyLXBhZGRpbmctdmVydGljYWwgLyAyKSAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAgICAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXG4gICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgPiBsaSA+IGEsXG4gICAgICAuZHJvcGRvd24taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHggNXB4IDI1cHg7XG4gICAgICB9XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBVbmNvbGxhcHNlIHRoZSBuYXZcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgPiBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICAgIEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgZm9ybVxuLy9cbi8vIEV4dGVuc2lvbiBvZiB0aGUgYC5mb3JtLWlubGluZWAgd2l0aCBzb21lIGV4dHJhIGZsYXZvciBmb3Igb3B0aW11bSBkaXNwbGF5IGluXG4vLyBvdXIgbmF2YmFycy5cblxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDEwcHggQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBAc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICAuYm94LXNoYWRvdyhAc2hhZG93KTtcblxuICAvLyBNaXhpbiBiZWhhdmlvciBmb3Igb3B0aW11bSBkaXNwbGF5XG4gIC5mb3JtLWlubGluZSgpO1xuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbGx5IGNlbnRlciBpbiBleHBhbmRlZCwgaG9yaXpvbnRhbCBuYXZiYXJcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gIC8vIFVuZG8gMTAwJSB3aWR0aCBmb3IgcHVsbCBjbGFzc2VzXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxufVxuXG5cbi8vIERyb3Bkb3duIG1lbnVzXG5cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXRzXG4ubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAwO1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4vLyBNZW51IHBvc2l0aW9uIGFuZCBtZW51IGNhcmV0IHN1cHBvcnQgZm9yIGRyb3B1cHMgdmlhIGV4dHJhIGRyb3B1cCBjbGFzc1xuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKEBuYXZiYXItYm9yZGVyLXJhZGl1cyk7XG4gIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbn1cblxuXG4vLyBCdXR0b25zIGluIG5hdmJhcnNcbi8vXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBhIGJ1dHRvbiB3aXRoaW4gYSBuYXZiYXIgKHdoZW4gKm5vdCogaW4gYSBmb3JtKS5cblxuLm5hdmJhci1idG4ge1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XG5cbiAgJi5idG4tc20ge1xuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1zbWFsbCk7XG4gIH1cbiAgJi5idG4teHMge1xuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oMjIpO1xuICB9XG59XG5cblxuLy8gVGV4dCBpbiBuYXZiYXJzXG4vL1xuLy8gQWRkIGEgY2xhc3MgdG8gbWFrZSBhbnkgZWxlbWVudCBwcm9wZXJseSBhbGlnbiBpdHNlbGYgdmVydGljYWxseSB3aXRoaW4gdGhlIG5hdmJhcnMuXG5cbi5uYXZiYXItdGV4dCB7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGxpbmUtaGVpZ2h0LWNvbXB1dGVkKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICB9XG59XG5cblxuLy8gQ29tcG9uZW50IGFsaWdubWVudFxuLy9cbi8vIFJlcHVycG9zZSB0aGUgcHVsbCB1dGlsaXRpZXMgYXMgdGhlaXIgb3duIG5hdmJhciB1dGlsaXRpZXMgdG8gYXZvaWQgc3BlY2lmaWNpdHlcbi8vIGlzc3VlcyB3aXRoIHBhcmVudHMgYW5kIGNoYWluaW5nLiBPbmx5IGRvIHRoaXMgd2hlbiB0aGUgbmF2YmFyIGlzIHVuY29sbGFwc2VkXG4vLyB0aG91Z2ggc28gdGhhdCBuYXZiYXIgY29udGVudHMgcHJvcGVybHkgc3RhY2sgYW5kIGFsaWduIGluIG1vYmlsZS5cbi8vXG4vLyBEZWNsYXJlZCBhZnRlciB0aGUgbmF2YmFyIGNvbXBvbmVudHMgdG8gZW5zdXJlIG1vcmUgc3BlY2lmaWNpdHkgb24gdGhlIG1hcmdpbnMuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItbGVmdCAgeyAucHVsbC1sZWZ0KCk7IH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgLnB1bGwtcmlnaHQoKTtcbiAgICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIH4gLm5hdmJhci1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIG5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIERlZmF1bHQgbmF2YmFyXG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYmc7XG4gIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcbiAgfVxuXG4gIC8vIERyb3Bkb3duIG1lbnUgaXRlbXNcbiAgLm5hdmJhci1uYXYge1xuICAgIC8vIFJlbW92ZSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gb3BlbiBkcm9wZG93blxuICAgID4gLm9wZW4gPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBMaW5rcyBpbiBuYXZiYXJzXG4gIC8vXG4gIC8vIEFkZCBhIGNsYXNzIHRvIGVuc3VyZSBsaW5rcyBvdXRzaWRlIHRoZSBuYXZiYXIgbmF2IGFyZSBjb2xvcmVkIGNvcnJlY3RseS5cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSW52ZXJzZSBuYXZiYXJcblxuLm5hdmJhci1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJnO1xuICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtY29sb3I7XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEYXJrZW4gdGhlIHJlc3BvbnNpdmUgbmF2IHRvZ2dsZVxuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ob3Zlci1iZztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtaWNvbi1iYXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbihAbmF2YmFyLWludmVyc2UtYmcsIDclKTtcbiAgfVxuXG4gIC8vIERyb3Bkb3duc1xuICAubmF2YmFyLW5hdiB7XG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheVxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIE5hdmJhciB2ZXJ0aWNhbCBhbGlnblxuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGVsZW1lbnRzIGluIHRoZSBuYXZiYXIuXG4vLyBFeGFtcGxlOiBhbiBlbGVtZW50IGhhcyBhIGhlaWdodCBvZiAzMHB4LCBzbyB3cml0ZSBvdXQgYC5uYXZiYXItdmVydGljYWwtYWxpZ24oMzBweCk7YCB0byBjYWxjdWxhdGUgdGhlIGFwcHJvcHJpYXRlIHRvcCBtYXJnaW4uXG5cbi5uYXZiYXItdmVydGljYWwtYWxpZ24oQGVsZW1lbnQtaGVpZ2h0KSB7XG4gIG1hcmdpbi10b3A6ICgoQG5hdmJhci1oZWlnaHQgLSBAZWxlbWVudC1oZWlnaHQpIC8gMik7XG4gIG1hcmdpbi1ib3R0b206ICgoQG5hdmJhci1oZWlnaHQgLSBAZWxlbWVudC1oZWlnaHQpIC8gMik7XG59XG4iLCIvL1xuLy8gVXRpbGl0eSBjbGFzc2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEZsb2F0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uY2xlYXJmaXgge1xuICAuY2xlYXJmaXgoKTtcbn1cbi5jZW50ZXItYmxvY2sge1xuICAuY2VudGVyLWJsb2NrKCk7XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gVG9nZ2xpbmcgY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBOb3RlOiBEZXByZWNhdGVkIC5oaWRlIGluIGZhdm9yIG9mIC5oaWRkZW4gb3IgLnNyLW9ubHkgKGFzIGFwcHJvcHJpYXRlKSBpbiB2My4wLjFcbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnNob3cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi50ZXh0LWhpZGUge1xuICAudGV4dC1oaWRlKCk7XG59XG5cblxuLy8gSGlkZSBmcm9tIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzXG4vL1xuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEZvciBBZmZpeCBwbHVnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmFmZml4IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuIiwiLy9cbi8vIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogQGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbCBAYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWw7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJyZWFkY3J1bWItYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgKyBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJAe2JyZWFkY3J1bWItc2VwYXJhdG9yfVxcMDBhMFwiOyAvLyBVbmljb2RlIHNwYWNlIGFkZGVkIHNpbmNlIGlubGluZS1ibG9jayBtZWFucyBub24tY29sbGFwc2luZyB3aGl0ZS1zcGFjZVxuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICBjb2xvcjogQGJyZWFkY3J1bWItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlIHtcbiAgICBjb2xvcjogQGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yO1xuICB9XG59XG4iLCIvL1xuLy8gUGFnaW5hdGlvbiAobXVsdGlwbGUgcGFnZXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQgMDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IC8vIFJlbW92ZSBsaXN0LXN0eWxlIGFuZCBibG9jay1sZXZlbCBkZWZhdWx0c1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IGxlZnQ7IC8vIENvbGxhcHNlIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWJnO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgQHBhZ2luYXRpb24tYm9yZGVyO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC5ib3JkZXItbGVmdC1yYWRpdXMoQGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IGxpID4gYSxcbiAgPiBsaSA+IHNwYW4ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUgPiBhLFxuICA+IC5hY3RpdmUgPiBzcGFuIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICA+IC5kaXNhYmxlZCB7XG4gICAgPiBzcGFuLFxuICAgID4gc3Bhbjpob3ZlcixcbiAgICA+IHNwYW46Zm9jdXMsXG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMge1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBMYXJnZVxuLnBhZ2luYXRpb24tbGcge1xuICAucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cblxuLy8gU21hbGxcbi5wYWdpbmF0aW9uLXNtIHtcbiAgLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4iLCIvLyBQYWdpbmF0aW9uXG5cbi5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgPiBsaSB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLWxlZnQtcmFkaXVzKEBib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKEBib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBQYWdlciBwYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wYWdlciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQgMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWJnO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgQHBhZ2VyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBwYWdlci1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uZXh0IHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAucHJldmlvdXMge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmRpc2FibGVkIHtcbiAgICA+IGEsXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyxcbiAgICA+IHNwYW4ge1xuICAgICAgY29sb3I6IEBwYWdlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1iZztcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBMYWJlbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAbGFiZWwtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcblxuICAvLyBBZGQgaG92ZXIgZWZmZWN0cywgYnV0IG9ubHkgZm9yIGxpbmtzXG4gIGEmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBsYWJlbC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVtcHR5IGxhYmVscyBjb2xsYXBzZSBhdXRvbWF0aWNhbGx5IChub3QgYXZhaWxhYmxlIGluIElFOClcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFF1aWNrIGZpeCBmb3IgbGFiZWxzIGluIGJ1dHRvbnNcbiAgLmJ0biAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi8vIENvbG9yc1xuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zIChsaW5rZWQgbGFiZWxzIGdldCBkYXJrZXIgb24gOmhvdmVyKVxuXG4ubGFiZWwtZGVmYXVsdCB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1kZWZhdWx0LWJnKTtcbn1cblxuLmxhYmVsLXByaW1hcnkge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtcHJpbWFyeS1iZyk7XG59XG5cbi5sYWJlbC1zdWNjZXNzIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXN1Y2Nlc3MtYmcpO1xufVxuXG4ubGFiZWwtaW5mbyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1pbmZvLWJnKTtcbn1cblxuLmxhYmVsLXdhcm5pbmcge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtd2FybmluZy1iZyk7XG59XG5cbi5sYWJlbC1kYW5nZXIge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtZGFuZ2VyLWJnKTtcbn1cbiIsIi8vIExhYmVsc1xuXG4ubGFiZWwtdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuXG4gICZbaHJlZl0ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhZGdlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBmb250LXdlaWdodDogQGJhZGdlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogQGJhZGdlLWNvbG9yO1xuICBsaW5lLWhlaWdodDogQGJhZGdlLWxpbmUtaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWRnZS1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJhZGdlLWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gRW1wdHkgYmFkZ2VzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBiYWRnZXMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cblxuICAuYnRuLXhzICYsXG4gIC5idG4tZ3JvdXAteHMgPiAuYnRuICYge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAxcHggNXB4O1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGUsIGJ1dCBvbmx5IGZvciBsaW5rc1xuICBhJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAYmFkZ2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBBY2NvdW50IGZvciBiYWRnZXMgaW4gbmF2c1xuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSA+ICYsXG4gIC5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+ICYge1xuICAgIGNvbG9yOiBAYmFkZ2UtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWRnZS1hY3RpdmUtYmc7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+ICYgKyAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5uYXYtcGlsbHMgPiBsaSA+IGEgPiAmIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIvL1xuLy8gSnVtYm90cm9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogICAgQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAanVtYm90cm9uLXBhZGRpbmc7XG4gIGNvbG9yOiBAanVtYm90cm9uLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAanVtYm90cm9uLWJnO1xuXG4gIGgxLFxuICAuaDEge1xuICAgIGNvbG9yOiBAanVtYm90cm9uLWhlYWRpbmctY29sb3I7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGp1bWJvdHJvbi1wYWRkaW5nIC8gMik7XG4gICAgZm9udC1zaXplOiBAanVtYm90cm9uLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG5cbiAgPiBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKEBqdW1ib3Ryb24tYmcsIDEwJSk7XG4gIH1cblxuICAuY29udGFpbmVyICYsXG4gIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7IC8vIE9ubHkgcm91bmQgY29ybmVycyBhdCBoaWdoZXIgcmVzb2x1dGlvbnMgaWYgY29udGFpbmVkIGluIGEgY29udGFpbmVyXG4gICAgcGFkZGluZy1sZWZ0OiAgKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcGFkZGluZy10b3A6ICAgIChAanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuICAgIHBhZGRpbmctYm90dG9tOiAoQGp1bWJvdHJvbi1wYWRkaW5nICogMS42KTtcblxuICAgIC5jb250YWluZXIgJixcbiAgICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAgKEBqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgICAgcGFkZGluZy1yaWdodDogKEBqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgIH1cblxuICAgIGgxLFxuICAgIC5oMSB7XG4gICAgICBmb250LXNpemU6IEBqdW1ib3Ryb24taGVhZGluZy1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVGh1bWJuYWlsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBNaXhpbiBhbmQgYWRqdXN0IHRoZSByZWd1bGFyIGltYWdlIGNsYXNzXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XG4gIC50cmFuc2l0aW9uKGJvcmRlciAuMnMgZWFzZS1pbi1vdXQpO1xuXG4gID4gaW1nLFxuICBhID4gaW1nIHtcbiAgICAmOmV4dGVuZCguaW1nLXJlc3BvbnNpdmUpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIEFkZCBhIGhvdmVyIHN0YXRlIGZvciBsaW5rZWQgdmVyc2lvbnMgb25seVxuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMsXG4gIGEmLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbGluay1jb2xvcjtcbiAgfVxuXG4gIC8vIEltYWdlIGNhcHRpb25zXG4gIC5jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiBAdGh1bWJuYWlsLWNhcHRpb24tcGFkZGluZztcbiAgICBjb2xvcjogQHRodW1ibmFpbC1jYXB0aW9uLWNvbG9yO1xuICB9XG59XG4iLCIvL1xuLy8gQWxlcnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5hbGVydCB7XG4gIHBhZGRpbmc6IEBhbGVydC1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAYWxlcnQtYm9yZGVyLXJhZGl1cztcblxuICAvLyBIZWFkaW5ncyBmb3IgbGFyZ2VyIGFsZXJ0c1xuICBoNCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvLyBTcGVjaWZpZWQgZm9yIHRoZSBoNCB0byBwcmV2ZW50IGNvbmZsaWN0cyBvZiBjaGFuZ2luZyBAaGVhZGluZ3MtY29sb3JcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFByb3ZpZGUgY2xhc3MgZm9yIGxpbmtzIHRoYXQgbWF0Y2ggYWxlcnRzXG4gIC5hbGVydC1saW5rIHtcbiAgICBmb250LXdlaWdodDogQGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ7XG4gIH1cblxuICAvLyBJbXByb3ZlIGFsaWdubWVudCBhbmQgc3BhY2luZyBvZiBpbm5lciBjb250ZW50XG4gID4gcCxcbiAgPiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gID4gcCArIHAge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxufVxuXG4vLyBEaXNtaXNzaWJsZSBhbGVydHNcbi8vXG4vLyBFeHBhbmQgdGhlIHJpZ2h0IHBhZGRpbmcgYW5kIGFjY291bnQgZm9yIHRoZSBjbG9zZSBidXR0b24ncyBwb3NpdGlvbmluZy5cblxuLmFsZXJ0LWRpc21pc3NhYmxlLCAvLyBUaGUgbWlzc3BlbGxlZCAuYWxlcnQtZGlzbWlzc2FibGUgd2FzIGRlcHJlY2F0ZWQgaW4gMy4yLjAuXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiAoQGFsZXJ0LXBhZGRpbmcgKyAyMCk7XG5cbiAgLy8gQWRqdXN0IGNsb3NlIGxpbmsgcG9zaXRpb25cbiAgLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiAtMjFweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBBbHRlcm5hdGUgc3R5bGVzXG4vL1xuLy8gR2VuZXJhdGUgY29udGV4dHVhbCBtb2RpZmllciBjbGFzc2VzIGZvciBjb2xvcml6aW5nIHRoZSBhbGVydC5cblxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtc3VjY2Vzcy1iZzsgQGFsZXJ0LXN1Y2Nlc3MtYm9yZGVyOyBAYWxlcnQtc3VjY2Vzcy10ZXh0KTtcbn1cblxuLmFsZXJ0LWluZm8ge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtaW5mby1iZzsgQGFsZXJ0LWluZm8tYm9yZGVyOyBAYWxlcnQtaW5mby10ZXh0KTtcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtd2FybmluZy1iZzsgQGFsZXJ0LXdhcm5pbmctYm9yZGVyOyBAYWxlcnQtd2FybmluZy10ZXh0KTtcbn1cblxuLmFsZXJ0LWRhbmdlciB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1kYW5nZXItYmc7IEBhbGVydC1kYW5nZXItYm9yZGVyOyBAYWxlcnQtZGFuZ2VyLXRleHQpO1xufVxuIiwiLy8gQWxlcnRzXG5cbi5hbGVydC12YXJpYW50KEBiYWNrZ3JvdW5kOyBAYm9yZGVyOyBAdGV4dC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG5cbiAgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAYm9yZGVyLCA1JSk7XG4gIH1cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oQHRleHQtY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vXG4vLyBQcm9ncmVzcyBiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhciBhbmltYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFdlYktpdFxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuLy8gU3BlYyBhbmQgSUUxMCtcbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tICB7IGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDsgfVxuICB0byAgICB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuXG5cbi8vIEJhciBpdHNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gT3V0ZXIgY29udGFpbmVyXG4ucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJvZ3Jlc3MtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBwcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSkpO1xufVxuXG4vLyBCYXIgb2YgcHJvZ3Jlc3Ncbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgY29sb3I6IEBwcm9ncmVzcy1iYXItY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByb2dyZXNzLWJhci1iZztcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpKTtcbiAgLnRyYW5zaXRpb24od2lkdGggLjZzIGVhc2UpO1xufVxuXG4vLyBTdHJpcGVkIGJhcnNcbi8vXG4vLyBgLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcmAgaXMgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgaW4gZmF2b3Igb2YgdGhlXG4vLyBgLnByb2dyZXNzLWJhci1zdHJpcGVkYCBjbGFzcywgd2hpY2ggeW91IGp1c3QgYWRkIHRvIGFuIGV4aXN0aW5nXG4vLyBgLnByb2dyZXNzLWJhcmAuXG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcbiAgI2dyYWRpZW50ID4gLnN0cmlwZWQoKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHg7XG59XG5cbi8vIENhbGwgYW5pbWF0aW9uIGZvciB0aGUgYWN0aXZlIG9uZVxuLy9cbi8vIGAucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXIuYWN0aXZlYCBhcHByb2FjaC5cbi5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXIuYWN0aXZlIHtcbiAgLmFuaW1hdGlvbihwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGUpO1xufVxuXG5cbi8vIFZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLWluZm8tYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci13YXJuaW5nLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1kYW5nZXItYmcpO1xufVxuIiwiLy8gR3JhZGllbnRzXG5cbiNncmFkaWVudCB7XG5cbiAgLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4gIC8vXG4gIC8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4gIC8vIENvbG9yIHN0b3BzIGFyZSBub3QgYXZhaWxhYmxlIGluIElFOSBhbmQgYmVsb3cuXG4gIC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQHN0YXJ0LXBlcmNlbnQ6IDAlOyBAZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLnZlcnRpY2FsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQHN0YXJ0LXBlcmNlbnQ6IDAlOyBAZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cblxuICAuZGlyZWN0aW9uYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAZGVnOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICB9XG4gIC5ob3Jpem9udGFsLXRocmVlLWNvbG9ycyhAc3RhcnQtY29sb3I6ICMwMGIzZWU7IEBtaWQtY29sb3I6ICM3YTQzYjY7IEBjb2xvci1zdG9wOiA1MCU7IEBlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTEpXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAudmVydGljYWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG4gIH1cbiAgLnJhZGlhbChAaW5uZXItY29sb3I6ICM1NTU7IEBvdXRlci1jb2xvcjogIzMzMykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lci1jb2xvciwgQG91dGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC5zdHJpcGVkKEBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpOyBAYW5nbGU6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuIiwiLy8gUHJvZ3Jlc3MgYmFyc1xuXG4ucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcblxuICAvLyBEZXByZWNhdGVkIHBhcmVudCBjbGFzcyByZXF1aXJlbWVudCBhcyBvZiB2My4yLjBcbiAgLnByb2dyZXNzLXN0cmlwZWQgJiB7XG4gICAgI2dyYWRpZW50ID4gLnN0cmlwZWQoKTtcbiAgfVxufVxuIiwiLm1lZGlhIHtcbiAgLy8gUHJvcGVyIHNwYWNpbmcgYmV0d2VlbiBpbnN0YW5jZXMgb2YgLm1lZGlhXG4gIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBGaXggY29sbGFwc2UgaW4gd2Via2l0IGZyb20gbWF4LXdpZHRoOiAxMDAlIGFuZCBkaXNwbGF5OiB0YWJsZS1jZWxsLlxuICAmLmltZy10aHVtYm5haWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4vLyBNZWRpYSBsaXN0IHZhcmlhdGlvblxuLy9cbi8vIFVuZG8gZGVmYXVsdCB1bC9vbCBzdHlsZXNcbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLy9cbi8vIExpc3QgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBFYXNpbHkgdXNhYmxlIG9uIDx1bD4sIDxvbD4sIG9yIDxkaXY+LlxuXG4ubGlzdC1ncm91cCB7XG4gIC8vIE5vIG5lZWQgdG8gc2V0IGxpc3Qtc3R5bGU6IG5vbmU7IHNpbmNlIC5saXN0LWdyb3VwLWl0ZW0gaXMgYmxvY2sgbGV2ZWxcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyByZXNldCBwYWRkaW5nIGJlY2F1c2UgdWwgYW5kIG9sXG59XG5cblxuLy8gSW5kaXZpZHVhbCBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIG9uIGBsaWBzIG9yIGBkaXZgcyB3aXRoaW4gdGhlIGAubGlzdC1ncm91cGAgcGFyZW50LlxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICAvLyBQbGFjZSB0aGUgYm9yZGVyIG9uIHRoZSBsaXN0IGl0ZW1zIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdXAgZm9yIGJldHRlciBzdHlsaW5nXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAbGlzdC1ncm91cC1ib3JkZXI7XG5cbiAgLy8gUm91bmQgdGhlIGZpcnN0IGFuZCBsYXN0IGl0ZW1zXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cyhAbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKEBsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG59XG5cblxuLy8gSW50ZXJhY3RpdmUgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnRzIGluc3RlYWQgb2YgYGxpYHMgb3IgYGRpdmBzIHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBpdGVtcy5cbi8vIEluY2x1ZGVzIGFuIGV4dHJhIGAuYWN0aXZlYCBtb2RpZmllciBjbGFzcyBmb3Igc2hvd2luZyBzZWxlY3RlZCBpdGVtcy5cblxuYS5saXN0LWdyb3VwLWl0ZW0sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstY29sb3I7XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWhvdmVyLWJnO1xuICB9XG59XG5cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICYuZGlzYWJsZWQsXG4gICYuZGlzYWJsZWQ6aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLWJnO1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjdGl2ZSBjbGFzcyBvbiBpdGVtIGl0c2VsZiwgbm90IHBhcmVudFxuICAmLmFjdGl2ZSxcbiAgJi5hY3RpdmU6aG92ZXIsXG4gICYuYWN0aXZlOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyOyAvLyBQbGFjZSBhY3RpdmUgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlcjtcblxuICAgIC8vIEZvcmNlIGNvbG9yIHRvIGluaGVyaXQgZm9yIGN1c3RvbSBjb250ZW50XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhbnRzXG4vL1xuLy8gQWRkIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRleHQgYW5kIGJhY2tncm91bmQgY29sb3Igb24gaW5kaXZpZHVhbCBpdGVtcy5cbi8vIE9yZ2FuaXphdGlvbmFsbHksIHRoaXMgbXVzdCBjb21lIGFmdGVyIHRoZSBgOmhvdmVyYCBzdGF0ZXMuXG5cbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChzdWNjZXNzOyBAc3RhdGUtc3VjY2Vzcy1iZzsgQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoaW5mbzsgQHN0YXRlLWluZm8tYmc7IEBzdGF0ZS1pbmZvLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHdhcm5pbmc7IEBzdGF0ZS13YXJuaW5nLWJnOyBAc3RhdGUtd2FybmluZy10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChkYW5nZXI7IEBzdGF0ZS1kYW5nZXItYmc7IEBzdGF0ZS1kYW5nZXItdGV4dCk7XG5cblxuLy8gQ3VzdG9tIGNvbnRlbnQgb3B0aW9uc1xuLy9cbi8vIEV4dHJhIGNsYXNzZXMgZm9yIGNyZWF0aW5nIHdlbGwtZm9ybWF0dGVkIGNvbnRlbnQgd2l0aGluIGAubGlzdC1ncm91cC1pdGVtYHMuXG5cbi5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4iLCIvLyBMaXN0IEdyb3Vwc1xuXG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoQHN0YXRlOyBAYmFja2dyb3VuZDsgQGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tQHtzdGF0ZX0ge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG5cbiAgICBhJixcbiAgICBidXR0b24mIHtcbiAgICAgIGNvbG9yOiBAY29sb3I7XG5cbiAgICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUsXG4gICAgICAmLmFjdGl2ZTpob3ZlcixcbiAgICAgICYuYWN0aXZlOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gUGFuZWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi5wYW5lbCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBhbmVsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQHBhbmVsLWJvcmRlci1yYWRpdXM7XG4gIC5ib3gtc2hhZG93KDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xufVxuXG4vLyBQYW5lbCBjb250ZW50c1xuLnBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gT3B0aW9uYWwgaGVhZGluZ1xuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiBAcGFuZWwtaGVhZGluZy1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgPiAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gV2l0aGluIGhlYWRpbmcsIHN0cmlwIGFueSBgaCpgIHRhZyBvZiBpdHMgZGVmYXVsdCBtYXJnaW5zIGZvciBzcGFjaW5nLlxuLnBhbmVsLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBjZWlsKChAZm9udC1zaXplLWJhc2UgKiAxLjEyNSkpO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICA+IGEsXG4gID4gc21hbGwsXG4gID4gLnNtYWxsLFxuICA+IHNtYWxsID4gYSxcbiAgPiAuc21hbGwgPiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBmb290ZXIgKHN0YXlzIGdyYXkgaW4gZXZlcnkgbW9kaWZpZXIgY2xhc3MpXG4ucGFuZWwtZm9vdGVyIHtcbiAgcGFkZGluZzogQHBhbmVsLWZvb3Rlci1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFuZWwtZm9vdGVyLWJnO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbn1cblxuXG4vLyBMaXN0IGdyb3VwcyBpbiBwYW5lbHNcbi8vXG4vLyBCeSBkZWZhdWx0LCBzcGFjZSBvdXQgbGlzdCBncm91cCBjb250ZW50IGZyb20gcGFuZWwgaGVhZGluZ3MgdG8gYWNjb3VudCBmb3Jcbi8vIGFueSBraW5kIG9mIGN1c3RvbSBjb250ZW50IGJldHdlZW4gdGhlIHR3by5cblxuLnBhbmVsIHtcbiAgPiAubGlzdC1ncm91cCxcbiAgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLy8gQWRkIGJvcmRlciB0b3AgcmFkaXVzIGZvciBmaXJzdCBvbmVcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICB9XG4gIH1cbn1cbi8vIENvbGxhcHNlIHNwYWNlIGJldHdlZW4gd2hlbiB0aGVyZSdzIG5vIGFkZGl0aW9uYWwgY29udGVudC5cbi5wYW5lbC1oZWFkaW5nICsgLmxpc3QtZ3JvdXAge1xuICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICB9XG59XG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuXG4vLyBUYWJsZXMgaW4gcGFuZWxzXG4vL1xuLy8gUGxhY2UgYSBub24tYm9yZGVyZWQgYC50YWJsZWAgd2l0aGluIGEgcGFuZWwgKG5vdCB3aXRoaW4gYSBgLnBhbmVsLWJvZHlgKSBhbmRcbi8vIHdhdGNoIGl0IGdvIGZ1bGwgd2lkdGguXG5cbi5wYW5lbCB7XG4gID4gLnRhYmxlLFxuICA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuICA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGNhcHRpb24ge1xuICAgICAgcGFkZGluZy1sZWZ0OiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAgICAgcGFkZGluZy1yaWdodDogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgICB9XG4gIH1cbiAgLy8gQWRkIGJvcmRlciB0b3AgcmFkaXVzIGZvciBmaXJzdCBvbmVcbiAgPiAudGFibGU6Zmlyc3QtY2hpbGQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgICA+IHRoZWFkOmZpcnN0LWNoaWxkLFxuICAgID4gdGJvZHk6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG5cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWRkIGJvcmRlciBib3R0b20gcmFkaXVzIGZvciBsYXN0IG9uZVxuICA+IC50YWJsZTpsYXN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICAgID4gdGJvZHk6bGFzdC1jaGlsZCxcbiAgICA+IHRmb290Omxhc3QtY2hpbGQge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcblxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLFxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLXJlc3BvbnNpdmUsXG4gID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgKyAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbiAgPiAudGFibGUtYm9yZGVyZWQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHksXG4gICAgPiB0Zm9vdCB7XG4gICAgICA+IHRyIHtcbiAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHkge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuXG4vLyBDb2xsYXBzaWJsZSBwYW5lbHMgKGFrYSwgYWNjb3JkaW9uKVxuLy9cbi8vIFdyYXAgYSBzZXJpZXMgb2YgcGFuZWxzIGluIGAucGFuZWwtZ3JvdXBgIHRvIHR1cm4gdGhlbSBpbnRvIGFuIGFjY29yZGlvbiB3aXRoXG4vLyB0aGUgaGVscCBvZiBvdXIgY29sbGFwc2UgSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcblxuICAvLyBUaWdodGVuIHVwIG1hcmdpbiBzbyBpdCdzIG9ubHkgYmV0d2VlbiBwYW5lbHNcbiAgLnBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IEBwYW5lbC1ib3JkZXItcmFkaXVzO1xuXG4gICAgKyAucGFuZWwge1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1oZWFkaW5nIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSxcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zXG4ucGFuZWwtZGVmYXVsdCB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1kZWZhdWx0LWJvcmRlcjsgQHBhbmVsLWRlZmF1bHQtdGV4dDsgQHBhbmVsLWRlZmF1bHQtaGVhZGluZy1iZzsgQHBhbmVsLWRlZmF1bHQtYm9yZGVyKTtcbn1cbi5wYW5lbC1wcmltYXJ5IHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXByaW1hcnktYm9yZGVyOyBAcGFuZWwtcHJpbWFyeS10ZXh0OyBAcGFuZWwtcHJpbWFyeS1oZWFkaW5nLWJnOyBAcGFuZWwtcHJpbWFyeS1ib3JkZXIpO1xufVxuLnBhbmVsLXN1Y2Nlc3Mge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtc3VjY2Vzcy1ib3JkZXI7IEBwYW5lbC1zdWNjZXNzLXRleHQ7IEBwYW5lbC1zdWNjZXNzLWhlYWRpbmctYmc7IEBwYW5lbC1zdWNjZXNzLWJvcmRlcik7XG59XG4ucGFuZWwtaW5mbyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1pbmZvLWJvcmRlcjsgQHBhbmVsLWluZm8tdGV4dDsgQHBhbmVsLWluZm8taGVhZGluZy1iZzsgQHBhbmVsLWluZm8tYm9yZGVyKTtcbn1cbi5wYW5lbC13YXJuaW5nIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXdhcm5pbmctYm9yZGVyOyBAcGFuZWwtd2FybmluZy10ZXh0OyBAcGFuZWwtd2FybmluZy1oZWFkaW5nLWJnOyBAcGFuZWwtd2FybmluZy1ib3JkZXIpO1xufVxuLnBhbmVsLWRhbmdlciB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1kYW5nZXItYm9yZGVyOyBAcGFuZWwtZGFuZ2VyLXRleHQ7IEBwYW5lbC1kYW5nZXItaGVhZGluZy1iZzsgQHBhbmVsLWRhbmdlci1ib3JkZXIpO1xufVxuIiwiLy8gUGFuZWxzXG5cbi5wYW5lbC12YXJpYW50KEBib3JkZXI7IEBoZWFkaW5nLXRleHQtY29sb3I7IEBoZWFkaW5nLWJnLWNvbG9yOyBAaGVhZGluZy1ib3JkZXIpIHtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuXG4gICYgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6IEBoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGhlYWRpbmctYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAaGVhZGluZy1ib3JkZXI7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBjb2xvcjogQGhlYWRpbmctYmctY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmID4gLnBhbmVsLWZvb3RlciB7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRW1iZWRzIHJlc3BvbnNpdmVcbi8vXG4vLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciAxNjo5IGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgNDozIGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4iLCIvL1xuLy8gV2VsbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2VsbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHdlbGwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMTUpO1xuICB9XG59XG5cbi8vIFNpemVzXG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuLndlbGwtc20ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLXNtYWxsO1xufVxuIiwiLy9cbi8vIENsb3NlIGljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgZm9udC13ZWlnaHQ6IEBjbG9zZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAY2xvc2UtY29sb3I7XG4gIHRleHQtc2hhZG93OiBAY2xvc2UtdGV4dC1zaGFkb3c7XG4gIC5vcGFjaXR5KC4yKTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGNsb3NlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLm9wYWNpdHkoLjUpO1xuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBidXR0b24gdmVyc2lvblxuICAvLyBpT1MgcmVxdWlyZXMgdGhlIGJ1dHRvbiBlbGVtZW50IGluc3RlYWQgb2YgYW4gYW5jaG9yIHRhZy5cbiAgLy8gSWYgeW91IHdhbnQgdGhlIGFuY2hvciB2ZXJzaW9uLCBpdCByZXF1aXJlcyBgaHJlZj1cIiNcImAuXG4gIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuICBidXR0b24mIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG4iLCIvL1xuLy8gTW9kYWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAubW9kYWwtb3BlbiAgICAgIC0gYm9keSBjbGFzcyBmb3Iga2lsbGluZyB0aGUgc2Nyb2xsXG4vLyAubW9kYWwgICAgICAgICAgIC0gY29udGFpbmVyIHRvIHNjcm9sbCB3aXRoaW5cbi8vIC5tb2RhbC1kaWFsb2cgICAgLSBwb3NpdGlvbmluZyBzaGVsbCBmb3IgdGhlIGFjdHVhbCBtb2RhbFxuLy8gLm1vZGFsLWNvbnRlbnQgICAtIGFjdHVhbCBtb2RhbCB3LyBiZyBhbmQgY29ybmVycyBhbmQgc2hpdFxuXG4vLyBLaWxsIHRoZSBzY3JvbGwgb24gdGhlIGJvZHlcbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gQ29udGFpbmVyIHRoYXQgdGhlIG1vZGFsIHNjcm9sbHMgd2l0aGluXG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1tb2RhbDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gIC8vIFByZXZlbnQgQ2hyb21lIG9uIFdpbmRvd3MgZnJvbSBhZGRpbmcgYSBmb2N1cyBvdXRsaW5lLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwOTUxLlxuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFdoZW4gZmFkaW5nIGluIHRoZSBtb2RhbCwgYW5pbWF0ZSBpdCB0byBzbGlkZSBkb3duXG4gICYuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICAudHJhbnNsYXRlKDAsIC0yNSUpO1xuICAgIC50cmFuc2l0aW9uLXRyYW5zZm9ybSh+XCIwLjNzIGVhc2Utb3V0XCIpO1xuICB9XG4gICYuaW4gLm1vZGFsLWRpYWxvZyB7IC50cmFuc2xhdGUoMCwgMCkgfVxufVxuLm1vZGFsLW9wZW4gLm1vZGFsIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vLyBTaGVsbCBkaXYgdG8gcG9zaXRpb24gdGhlIG1vZGFsIHdpdGggYm90dG9tIHBhZGRpbmdcbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi8vIEFjdHVhbCBtb2RhbFxuLm1vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBtb2RhbC1jb250ZW50LWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAbW9kYWwtY29udGVudC1mYWxsYmFjay1ib3JkZXItY29sb3I7IC8vb2xkIGJyb3dzZXJzIGZhbGxiYWNrIChpZTggZXRjKVxuICBib3JkZXI6IDFweCBzb2xpZCBAbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xuICAuYm94LXNoYWRvdygwIDNweCA5cHggcmdiYSgwLDAsMCwuNSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAvLyBSZW1vdmUgZm9jdXMgb3V0bGluZSBmcm9tIG9wZW5lZCBtb2RhbFxuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBNb2RhbCBiYWNrZ3JvdW5kXG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbW9kYWwtYmFja2Ryb3AtYmc7XG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IC5vcGFjaXR5KDApOyB9XG4gICYuaW4geyAub3BhY2l0eShAbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSk7IH1cbn1cblxuLy8gTW9kYWwgaGVhZGVyXG4vLyBUb3Agc2VjdGlvbiBvZiB0aGUgbW9kYWwgdy8gdGl0bGUgYW5kIGRpc21pc3Ncbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiBAbW9kYWwtdGl0bGUtcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cbi8vIENsb3NlIGljb25cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxuLy8gVGl0bGUgdGV4dCB3aXRoaW4gaGVhZGVyXG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiBAbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG59XG5cbi8vIE1vZGFsIGJvZHlcbi8vIFdoZXJlIGFsbCBtb2RhbCBjb250ZW50IHJlc2lkZXMgKHNpYmxpbmcgb2YgLm1vZGFsLWhlYWRlciBhbmQgLm1vZGFsLWZvb3Rlcilcbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiBAbW9kYWwtaW5uZXItcGFkZGluZztcbn1cblxuLy8gRm9vdGVyIChmb3IgYWN0aW9ucylcbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiBAbW9kYWwtaW5uZXItcGFkZGluZztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IC8vIHJpZ2h0IGFsaWduIGJ1dHRvbnNcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTsgLy8gY2xlYXIgaXQgaW4gY2FzZSBmb2xrcyB1c2UgLnB1bGwtKiBjbGFzc2VzIG9uIGJ1dHRvbnNcblxuICAvLyBQcm9wZXJseSBzcGFjZSBvdXQgYnV0dG9uc1xuICAuYnRuICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBhY2NvdW50IGZvciBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHdoaWNoIGdldHMgdGhlIGJvdHRvbSBtYXJnaW4gbGlrZSBhbGwgb3RoZXIgaW5wdXRzXG4gIH1cbiAgLy8gYnV0IG92ZXJyaWRlIHRoYXQgZm9yIGJ1dHRvbiBncm91cHNcbiAgLmJ0bi1ncm91cCAuYnRuICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbiAgLy8gYW5kIG92ZXJyaWRlIGl0IGZvciBibG9jayBidXR0b25zIGFzIHdlbGxcbiAgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi8vIE1lYXN1cmUgc2Nyb2xsYmFyIHdpZHRoIGZvciBwYWRkaW5nIGJvZHkgZHVyaW5nIG1vZGFsIHNob3cvaGlkZVxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi8vIFNjYWxlIHVwIHRoZSBtb2RhbFxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gIC8vIEF1dG9tYXRpY2FsbHkgc2V0IG1vZGFsJ3Mgd2lkdGggZm9yIGxhcmdlciB2aWV3cG9ydHNcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgd2lkdGg6IEBtb2RhbC1tZDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuICAubW9kYWwtY29udGVudCB7XG4gICAgLmJveC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBNb2RhbCBzaXplc1xuICAubW9kYWwtc20geyB3aWR0aDogQG1vZGFsLXNtOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAubW9kYWwtbGcgeyB3aWR0aDogQG1vZGFsLWxnOyB9XG59XG4iLCIvL1xuLy8gVG9vbHRpcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IEB6aW5kZXgtdG9vbHRpcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHRvb2x0aXBzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgLnJlc2V0LXRleHQoKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuXG4gIC5vcGFjaXR5KDApO1xuXG4gICYuaW4gICAgIHsgLm9wYWNpdHkoQHRvb2x0aXAtb3BhY2l0eSk7IH1cbiAgJi50b3AgICAgeyBtYXJnaW4tdG9wOiAgLTNweDsgcGFkZGluZzogQHRvb2x0aXAtYXJyb3ctd2lkdGggMDsgfVxuICAmLnJpZ2h0ICB7IG1hcmdpbi1sZWZ0OiAgM3B4OyBwYWRkaW5nOiAwIEB0b29sdGlwLWFycm93LXdpZHRoOyB9XG4gICYuYm90dG9tIHsgbWFyZ2luLXRvcDogICAzcHg7IHBhZGRpbmc6IEB0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5sZWZ0ICAgeyBtYXJnaW4tbGVmdDogLTNweDsgcGFkZGluZzogMCBAdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxufVxuXG4vLyBXcmFwcGVyIGZvciB0aGUgdG9vbHRpcCBjb250ZW50XG4udG9vbHRpcC1pbm5lciB7XG4gIG1heC13aWR0aDogQHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogQHRvb2x0aXAtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRvb2x0aXAtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG59XG5cbi8vIEFycm93c1xuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4vLyBOb3RlOiBEZXByZWNhdGVkIC50b3AtbGVmdCwgLnRvcC1yaWdodCwgLmJvdHRvbS1sZWZ0LCBhbmQgLmJvdHRvbS1yaWdodCBhcyBvZiB2My4zLjFcbi50b29sdGlwIHtcbiAgJi50b3AgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbn1cbiIsIi5yZXNldC10ZXh0KCkge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplLlxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiLy9cbi8vIFBvcG92ZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtcG9wb3ZlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiBAcG9wb3Zlci1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDFweDtcbiAgLy8gT3VyIHBhcmVudCBlbGVtZW50IGNhbiBiZSBhcmJpdHJhcnkgc2luY2UgcG9wb3ZlcnMgYXJlIGJ5IGRlZmF1bHQgaW5zZXJ0ZWQgYXMgYSBzaWJsaW5nIG9mIHRoZWlyIHRhcmdldCBlbGVtZW50LlxuICAvLyBTbyByZXNldCBvdXIgZm9udCBhbmQgdGV4dCBwcm9wZXJ0aWVzIHRvIGF2b2lkIGluaGVyaXRpbmcgd2VpcmQgdmFsdWVzLlxuICAucmVzZXQtdGV4dCgpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgQHBvcG92ZXItZmFsbGJhY2stYm9yZGVyLWNvbG9yO1xuICBib3JkZXI6IDFweCBzb2xpZCBAcG9wb3Zlci1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xuICAuYm94LXNoYWRvdygwIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpKTtcblxuICAvLyBPZmZzZXQgdGhlIHBvcG92ZXIgdG8gYWNjb3VudCBmb3IgdGhlIHBvcG92ZXIgYXJyb3dcbiAgJi50b3AgICAgIHsgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYucmlnaHQgICB7IG1hcmdpbi1sZWZ0OiBAcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSAgeyBtYXJnaW4tdG9wOiBAcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmxlZnQgICAgeyBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG59XG5cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyAvLyByZXNldCBoZWFkaW5nIG1hcmdpblxuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3BvdmVyLXRpdGxlLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKEBwb3BvdmVyLXRpdGxlLWJnLCA1JSk7XG4gIGJvcmRlci1yYWRpdXM6IChAYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIChAYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIDAgMDtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuXG4vLyBBcnJvd3Ncbi8vXG4vLyAuYXJyb3cgaXMgb3V0ZXIsIC5hcnJvdzphZnRlciBpcyBpbm5lclxuXG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gICYsXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gIGJvcmRlci13aWR0aDogQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5wb3BvdmVyIHtcbiAgJi50b3AgPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBib3R0b206IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYucmlnaHQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYuYm90dG9tID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICB0b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ2Fyb3VzZWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBmb3IgdGhlIHNsaWRlIGNvbnRhaW5lciBhbmQgaW5kaWNhdG9yc1xuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC50cmFuc2l0aW9uKC42cyBlYXNlLWluLW91dCBsZWZ0KTtcblxuICAgIC8vIEFjY291bnQgZm9yIGphbmtpdHVkZSBvbiBpbWFnZXNcbiAgICA+IGltZyxcbiAgICA+IGEgPiBpbWcge1xuICAgICAgJjpleHRlbmQoLmltZy1yZXNwb25zaXZlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC8vIFdlYktpdCBDU1MzIHRyYW5zZm9ybXMgZm9yIHN1cHBvcnRlZCBkZXZpY2VzXG4gICAgQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAgICAgLnRyYW5zaXRpb24tdHJhbnNmb3JtKH4nMC42cyBlYXNlLWluLW91dCcpO1xuICAgICAgLmJhY2tmYWNlLXZpc2liaWxpdHkofidoaWRkZW4nKTtcbiAgICAgIC5wZXJzcGVjdGl2ZSgxMDAwcHgpO1xuXG4gICAgICAmLm5leHQsXG4gICAgICAmLmFjdGl2ZS5yaWdodCB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYucHJldixcbiAgICAgICYuYWN0aXZlLmxlZnQge1xuICAgICAgICAudHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5uZXh0LmxlZnQsXG4gICAgICAmLnByZXYucmlnaHQsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUsXG4gID4gLm5leHQsXG4gID4gLnByZXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgPiAuYWN0aXZlIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLm5leHQge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgPiAucHJldiB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAubmV4dC5sZWZ0LFxuICA+IC5wcmV2LnJpZ2h0IHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAuYWN0aXZlLmxlZnQge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gID4gLmFjdGl2ZS5yaWdodCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuXG59XG5cbi8vIExlZnQvcmlnaHQgY29udHJvbHMgZm9yIG5hdlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IEBjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICAub3BhY2l0eShAY2Fyb3VzZWwtY29udHJvbC1vcGFjaXR5KTtcbiAgZm9udC1zaXplOiBAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemU7XG4gIGNvbG9yOiBAY2Fyb3VzZWwtY29udHJvbC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogQGNhcm91c2VsLXRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyAvLyBGaXggSUU5IGNsaWNrLXRocnUgYnVnXG4gIC8vIFdlIGNhbid0IGhhdmUgdGhpcyB0cmFuc2l0aW9uIGhlcmUgYmVjYXVzZSBXZWJLaXQgY2FuY2VscyB0aGUgY2Fyb3VzZWxcbiAgLy8gYW5pbWF0aW9uIGlmIHlvdSB0cmlwIHRoaXMgd2hpbGUgaW4gdGhlIG1pZGRsZSBvZiBhbm90aGVyIGFuaW1hdGlvbi5cblxuICAvLyBTZXQgZ3JhZGllbnRzIGZvciBiYWNrZ3JvdW5kc1xuICAmLmxlZnQge1xuICAgICNncmFkaWVudCA+IC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogcmdiYSgwLDAsMCwuNSk7IEBlbmQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpKTtcbiAgfVxuICAmLnJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgICNncmFkaWVudCA+IC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogcmdiYSgwLDAsMCwuMDAwMSk7IEBlbmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpKTtcbiAgfVxuXG4gIC8vIEhvdmVyL2ZvY3VzIHN0YXRlXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgY29sb3I6IEBjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAub3BhY2l0eSguOSk7XG4gIH1cblxuICAvLyBUb2dnbGVzXG4gIC5pY29uLXByZXYsXG4gIC5pY29uLW5leHQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0IHtcbiAgICB3aWR0aDogIDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgfVxuXG5cbiAgLmljb24tcHJldiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzOSc7Ly8gU0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgKFUrMjAzOSlcbiAgICB9XG4gIH1cbiAgLmljb24tbmV4dCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzYSc7Ly8gU0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwM0EpXG4gICAgfVxuICB9XG59XG5cbi8vIE9wdGlvbmFsIGluZGljYXRvciBwaXBzXG4vL1xuLy8gQWRkIGFuIHVub3JkZXJlZCBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBjbGFzcyBhbmQgYWRkIGEgbGlzdCBpdGVtIGZvciBlYWNoXG4vLyBzbGlkZSB5b3VyIGNhcm91c2VsIGhvbGRzLlxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogIDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMXB4O1xuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBJRTgtOSBoYWNrIGZvciBldmVudCBoYW5kbGluZ1xuICAgIC8vXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgOC05IGRvZXMgbm90IHN1cHBvcnQgY2xpY2tzIG9uIGVsZW1lbnRzIHdpdGhvdXQgYSBzZXRcbiAgICAvLyBgYmFja2dyb3VuZC1jb2xvcmAuIFdlIGNhbm5vdCB1c2UgYGZpbHRlcmAgc2luY2UgdGhhdCdzIG5vdCB2aWV3ZWQgYXMgYVxuICAgIC8vIGJhY2tncm91bmQgY29sb3IgYnkgdGhlIGJyb3dzZXIuIFRodXMsIGEgaGFjayBpcyBuZWVkZWQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNJbnRlcm5ldF9FeHBsb3JlclxuICAgIC8vXG4gICAgLy8gRm9yIElFOCwgd2Ugc2V0IHNvbGlkIGJsYWNrIGFzIGl0IGRvZXNuJ3Qgc3VwcG9ydCBgcmdiYSgpYC4gRm9yIElFOSwgd2VcbiAgICAvLyBzZXQgYWxwaGEgdHJhbnNwYXJlbmN5IGZvciB0aGUgYmVzdCByZXN1bHRzIHBvc3NpYmxlLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5OyAvLyBJRThcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApOyAvLyBJRTlcbiAgfVxuICAuYWN0aXZlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6ICAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBjYXB0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhpZGRlbiBieSBkZWZhdWx0IGZvciBzbWFsbGVyIHZpZXdwb3J0c1xuLmNhcm91c2VsLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1JTtcbiAgcmlnaHQ6IDE1JTtcbiAgYm90dG9tOiAyMHB4O1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogQGNhcm91c2VsLWNhcHRpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IEBjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgJiAuYnRuIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTsgLy8gTm8gc2hhZG93IGZvciBidXR0b24gZWxlbWVudHMgaW4gY2Fyb3VzZWwtY2FwdGlvblxuICB9XG59XG5cblxuLy8gU2NhbGUgdXAgY29udHJvbHMgZm9yIHRhYmxldHMgYW5kIHVwXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuXG4gIC8vIFNjYWxlIHVwIHRoZSBjb250cm9scyBhIHNtaWRnZVxuICAuY2Fyb3VzZWwtY29udHJvbCB7XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLXByZXYsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICB3aWR0aDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgICBoZWlnaHQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgICAgbWFyZ2luLXRvcDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICAgIGZvbnQtc2l6ZTogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgfVxuICAgIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAgIC5pY29uLXByZXYge1xuICAgICAgbWFyZ2luLWxlZnQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgfVxuICAgIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgICAuaWNvbi1uZXh0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBTaG93IGFuZCBsZWZ0IGFsaWduIHRoZSBjYXB0aW9uc1xuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cblxuICAvLyBNb3ZlIHVwIHRoZSBpbmRpY2F0b3JzXG4gIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBib3R0b206IDIwcHg7XG4gIH1cbn1cbiIsIi8vIENsZWFyZml4XG4vL1xuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xuLy8gMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbi8vICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4vLyAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbi8vICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4vLyAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuLy8gICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuLy9cbi8vIFNvdXJjZTogaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svXG5cbi5jbGVhcmZpeCgpIHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvLyAxXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDJcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLy8gQ2VudGVyLWFsaWduIGEgYmxvY2sgbGV2ZWwgZWxlbWVudFxuXG4uY2VudGVyLWJsb2NrKCkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuLy9cbi8vIEhlYWRzIHVwISB2MyBsYXVuY2hlZCB3aXRoIG9ubHkgYC5oaWRlLXRleHQoKWAsIGJ1dCBwZXIgb3VyIHBhdHRlcm4gZm9yXG4vLyBtaXhpbnMgYmVpbmcgcmV1c2VkIGFzIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGlzIGRvZXNuJ3QgaG9sZCB1cC4gQXNcbi8vIG9mIHYzLjAuMSB3ZSBoYXZlIGFkZGVkIGAudGV4dC1oaWRlKClgIGFuZCBkZXByZWNhdGVkIGAuaGlkZS10ZXh0KClgLlxuLy9cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuXG4vLyBEZXByZWNhdGVkIGFzIG9mIHYzLjAuMSAoaGFzIGJlZW4gcmVtb3ZlZCBpbiB2NClcbi5oaWRlLXRleHQoKSB7XG4gIGZvbnQ6IH5cIjAvMFwiIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG5cbi8vIE5ldyBtaXhpbiB0byB1c2UgYXMgb2YgdjMuMC4xXG4udGV4dC1oaWRlKCkge1xuICAuaGlkZS10ZXh0KCk7XG59XG4iLCIvL1xuLy8gUmVzcG9uc2l2ZTogVXRpbGl0eSBjbGFzc2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIElFMTAgaW4gV2luZG93cyAoUGhvbmUpIDhcbi8vXG4vLyBTdXBwb3J0IGZvciByZXNwb25zaXZlIHZpZXdzIHZpYSBtZWRpYSBxdWVyaWVzIGlzIGtpbmQgb2YgYm9ya2VkIGluIElFMTAsIGZvclxuLy8gU3VyZmFjZS9kZXNrdG9wIGluIHNwbGl0IHZpZXcgYW5kIGZvciBXaW5kb3dzIFBob25lIDguIFRoaXMgcGFydGljdWxhciBmaXhcbi8vIG11c3QgYmUgYWNjb21wYW5pZWQgYnkgYSBzbmlwcGV0IG9mIEphdmFTY3JpcHQgdG8gc25pZmYgdGhlIHVzZXIgYWdlbnQgYW5kXG4vLyBhcHBseSBzb21lIGNvbmRpdGlvbmFsIENTUyB0byAqb25seSogdGhlIFN1cmZhY2UvZGVza3RvcCBXaW5kb3dzIDguIExvb2sgYXRcbi8vIG91ciBHZXR0aW5nIFN0YXJ0ZWQgcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGJ1Zy5cbi8vXG4vLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBmb2xsb3dpbmc6XG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTdcbi8vIERvY3M6IGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jc3VwcG9ydC1pZTEwLXdpZHRoXG4vLyBTb3VyY2U6IGh0dHA6Ly90aW1rYWRsZWMuY29tLzIwMTMvMDEvd2luZG93cy1waG9uZS04LWFuZC1kZXZpY2Utd2lkdGgvXG4vLyBTb3VyY2U6IGh0dHA6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduL1xuXG5ALW1zLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuXG4vLyBWaXNpYmlsaXR5IHV0aWxpdGllc1xuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS14cywgLnZpc2libGUtc20sIC52aXNpYmxlLW1kLCBhbmQgLnZpc2libGUtbGcgYXMgb2YgdjMuMi4wXG4udmlzaWJsZS14cyxcbi52aXNpYmxlLXNtLFxuLnZpc2libGUtbWQsXG4udmlzaWJsZS1sZyB7XG4gIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xufVxuXG4udmlzaWJsZS14cy1ibG9jayxcbi52aXNpYmxlLXhzLWlubGluZSxcbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayxcbi52aXNpYmxlLXNtLWJsb2NrLFxuLnZpc2libGUtc20taW5saW5lLFxuLnZpc2libGUtc20taW5saW5lLWJsb2NrLFxuLnZpc2libGUtbWQtYmxvY2ssXG4udmlzaWJsZS1tZC1pbmxpbmUsXG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1sZy1ibG9jayxcbi52aXNpYmxlLWxnLWlubGluZSxcbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZpc2libGUteHMge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLXNtIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1zbS1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLW1kIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1tZC1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLWxnIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1sZy1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZGVuLXhzIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tc20ge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLW1kIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1sZyB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG5cblxuLy8gUHJpbnQgdXRpbGl0aWVzXG4vL1xuLy8gTWVkaWEgcXVlcmllcyBhcmUgcGxhY2VkIG9uIHRoZSBpbnNpZGUgdG8gYmUgbWl4aW4tZnJpZW5kbHkuXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnZpc2libGUtcHJpbnQgYXMgb2YgdjMuMi4wXG4udmlzaWJsZS1wcmludCB7XG4gIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1wcmludC1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZGVuLXByaW50IHtcbiAgQG1lZGlhIHByaW50IHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuIiwiLy8gUmVzcG9uc2l2ZSB1dGlsaXRpZXNcblxuLy9cbi8vIE1vcmUgZWFzaWx5IGluY2x1ZGUgYWxsIHRoZSBzdGF0ZXMgZm9yIHJlc3BvbnNpdmUtdXRpbGl0aWVzLmxlc3MuXG4ucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCkge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB0YWJsZSYgIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0ciYgICAgIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgmLFxuICB0ZCYgICAgIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG59XG5cbi5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTUyBWQVJJQUJMRVNcbioqICAgICAgICAgICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHZhcmlhYmxlcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBwYWxldHRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWdyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgI2RhZTE3MztcbkBtb3JhbmdlOiAgICAgICAgICAgICAgICAgICAgICAgICAjZDY3ODJiO1xuQG1kYXJrYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICMyMzI1Mjg7XG5AbWdyZXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NjY2NjYztcbkBtbGlnaHRncmV5OiAgICAgICAgICAgICAgICAgICAgICAjOTk5OTk5O1xuQG1kYXJrYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICMxNjE2MUI7XG5AbWJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIzM1OGZkYztcbkBkYXJrZXJibHVlOiAgICAgICAgICAgICAgICAgICAgICAjMTYyNTJjO1xuQGRhcmtibHVlOiAgICAgICAgICAgICAgICAgICAgICAgICMxNzI2MmQ7XG5AZGFya2VyYmx1ZTogICAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBkYXJrYmx1ZSw0JSk7XG5AZGFya2JsdWUyOiAgICAgICAgICAgICAgICAgICAgICAgIzI1MzMzYTtcbkBtZWRpdW1ibHVlOiAgICAgICAgICAgICAgICAgICAgICAjNjI2ZDZkO1xuQGxpZ2h0Ymx1ZTogICAgICAgICAgICAgICAgICAgICAgICNhYmM0YzY7XG5AcGluazogICAgICAgICAgICAgICAgICAgICAgICAgICAgI2VkMWU3OTtcbkByZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjRkYwMDAwO1xuXG5AZmx1cm9ibHVlOiAgICAgICAgICAgICAgICAgICAgICAgIzAwZTVmMDtcbkBmbHVyb29yYW5nZTogICAgICAgICAgICAgICAgICAgICAjZmY3MzAwO1xuQGZsdXJlb3llbGxvdzogICAgICAgICAgICAgICAgICAgICNmYmQ5MjU7XG5AZmx1cm9ncmVlbjogICAgICAgICAgICAgICAgICAgICAgIzQ3ZmYwMDtcbkBmbHVyb3Bpbms6ICAgICAgICAgICAgICAgICAgICAgICAjZTAxZjc0O1xuXG5AZGFya2dyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgIzMzZDM3NTtcbkBncmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgICAjZDFlNTVjO1xuQHB1cnBsZTogICAgICAgICAgICAgICAgICAgICAgICAgICM5NzdiZjA7XG5AbGlnaHRncmF5OiAgICAgICAgICAgICAgICAgICAgICAgI2U2ZWRlZTtcbkBibHVlZ3JheTogICAgICAgICAgICAgICAgICAgICAgICAjYWJjNGM2O1xuQGJsdWVncmF5MjogICAgICAgICAgICAgICAgICAgICAgICMzNTQ2NGM7XG5cbkBicmFuZC1zdWNjZXNzOiAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5AYnJhbmQtd2FybmluZzogICAgICAgICAgICAgICAgICBAcHVycGxlO1xuQGJyYW5kLWluZm86ICAgICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcbkBicmFuZC1kYW5nZXI6ICAgICAgICAgICAgICAgICAgIEBmbHVyb3Bpbms7XG5AYnJhbmQtcHJpbWFyeTogICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuXG5AaW1wYWMtcG9zaXRpdmU6ICAgICAgICAgICAgICAgICBncmVlbjtcbkBpbXBhYy1uZWdhdGl2ZTogICAgICAgICAgICAgICAgIEBwaW5rO1xuQGltcGFjLXBvc2l0aXZlMjogICAgICAgICAgICAgICAgIzNmYzRmZjsgICAgIC8vIGxpZ2h0ZXIgY29sb3JzIHVzZWQgZm9yIHBheWFibGVzLXJlY2VpdmFibGVzXG5AaW1wYWMtbmVnYXRpdmUyOiAgICAgICAgICAgICAgICAjMWRlOWI2OyAgICAgLy8gbGlnaHRlciBjb2xvcnN1c2VkIGZvciBwYXlhYmxlcy1yZWNlaXZhYmxlc1xuXG4vLyBTcGFjZXJzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB0b3AtYnVmZmVyLWhlaWdodDogQGdyaWQtZ3V0dGVyLXdpZHRoLzI7IC8vIGJvb3RzdHJhcCB2YXJpYWJsZVxuLnRvcC1idWZmZXItMSB7IG1hcmdpbi10b3A6IEB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMiB7IG1hcmdpbi10b3A6IDIqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0zIHsgbWFyZ2luLXRvcDogMypAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTQgeyBtYXJnaW4tdG9wOiA0KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNSB7IG1hcmdpbi10b3A6IDUqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci02IHsgbWFyZ2luLXRvcDogNipAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTcgeyBtYXJnaW4tdG9wOiA3KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItOCB7IG1hcmdpbi10b3A6IDgqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci05IHsgbWFyZ2luLXRvcDogOSpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTEwIHsgbWFyZ2luLXRvcDogMTAqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG5cbi8vIERhc2hib2FyZFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcGFjLWRhc2hib2FyZC1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgNTBweDtcbkBpbXBhYy1kYXNoYm9hcmQtc20tcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgIEBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3AgKiAzO1xuQGltcGFjLWRhc2hib2FyZC1tYXJnaW4tbGVmdDogICAgICAgICAgICAgICAgICAgMTAwcHg7XG5AaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I6ICAgICAgICAgICAgICAgICBAbGlnaHRibHVlO1xuXG4vLyBUaXRsZVxuQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I6ICAgICAgICAgICAgIEBkYXJrYmx1ZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY3JlYXRlLWNvbG9yOiAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC1zb3VyY2UtY29sb3I6ICAgICAgICAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjtcbkBpbXBhYy1kYXNoYm9hcmQtYnV0dG9ucy1ib3JkZXItcmFkaXVzOiAgICAgICAgIDRweDtcblxuLy8gQ3JlYXRlXG5AaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZS1idXR0b24tY29sb3I6ICAgICAgICAgICBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuXG4vL0luZm8tdGV4dFxuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1iYWNrZ3JvdW5kLWNvbG9yOiAgICByZ2JhKDIzLDM4LDQ1LCAwLjcpO1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC1zaXplOiAgICAgICAgICAgMjVweDtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtd2VpZ2h0OiAgICAgICAgIDMwMDtcblxuLy8gRGFzaGJvYXJkIFNlbGVjdG9yXG4gIC8vIFRhYnNcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyOiAgICAgICAgICAgICAgIDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtbWFyZ2luOiAgICAgICAgICAwIDJweCAwIDA7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtcGFkZGluZzogICAgICAgICAxMHB4IDhweCAxMHB4IDE1cHg7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I6ICAgICAgICAgICBibGFjaztcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtY29sb3I6ICAgIEBwdXJwbGU7XG5cbi8vIFdpZGdldCBzZWxlY3RvclxuQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc6ICAgICAgICAgICAgIzIzMzg0NTtcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXRleHQtY29sb3I6ICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LWl0ZW0tbWluLWhlaWdodDogMHB4O1xuXG4vLyBXaWRnZXRzIGNvbnRhaW5lclxuQGltcGFjLXBsYWNlaG9sZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgMnB4IGRhc2hlZCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5AaW1wYWMtd2lkZ2V0cy1jb250YWluZXItc2lkZS1wYWRkaW5nOiAgICAgICAgICAwcHg7XG5AaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLW1pbmltdW0td2lkZ2V0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgMjUwcHg7XG5AaW1wYWMtYmlnLXdpZGdldC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICA1NjVweDtcblxuLy8gQnV0dG9uc1xuQGltcGFjLWJ0bi1zaGFkZGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICBAZGFya2JsdWU7XG5AaW1wYWMtYnRuLXNoYWRkZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBtZWRpdW1ibHVlO1xuXG4vLyBEYXNoYm9hcmQgTW9kYWxzXG5AaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcjogICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMjksIDE5NywgNTcsIDAuNjIpO1xuXG4vLyBXaWRnZXRzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHbG9iYWxcbkBpbXBhYy13aWRnZXQtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjogICAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aWxlLXNlbGVjdGVkLWNvbG9yOiAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5AaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLXdpZGdldC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBzb2xpZCAxcHggZGFya2VuKEBsaWdodGdyYXksMTAlKTtcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIzVCNjY2NztcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW06ICAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IsMjUlKTtcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDogICAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IsNDAlKTsgLy8jYWNiMGIxXG5AaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I6ICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0LDEwJSk7IC8vI2YzZjRmNFxuQGltcGFjLXdpZGdldC1zY3JvbGxiYXItY29sb3I6ICAgICAgICAgICAgICAgICAjMjMzODQ1O1xuQGltcGFjLXdpZGdldC1sb2FkaW5nLXNwaW5uZXI6ICAgICAgICAgICAgICAgICAjNjdCQkU5O1xuQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAjMUUzMDNCO1xuQGltcGFjLXdpZGdldC1tZW51cy1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAjZWNlY2VjO1xuXG4vLyBUaXRsZVxuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICBkYXJrZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDUlKTtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICB1cHBlcmNhc2U7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgIDVweCA1cHggMHB4IDBweDtcbkBpbXBhYy13aWRnZXQtdG9wLWJ1dHRvbnMtY29sb3I6ICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0O1xuXG4vLyBDb250ZW50XG5AaW1wYWMtd2lkZ2V0LWNvbnRlbnQtYm9yZGVyLXJhZGl1czogICAgICAgICAgIDBweCAwcHggNXB4IDVweDtcbkBpbXBhYy13aWRnZXQtbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ6ICAgICAgMjAwcHg7XG5cbi8vIFNldHRpbmdzXG4vLyBQYXJhbSBzZWxlY3RvclxuQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjogICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4vLyBIaXN0IE1vZGUgQ2hvc2VyXG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgIHVwcGVyY2FzZTtcbkBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0O1xuLy8gUGFyYW1zIHBpY2tlclxuQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnOiAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG5AaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnOiAgICAgICNjMmM0YzQ7XG4vLyBMaW1pdCBlbnRyaWVzXG5AaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I6ICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjtcblxuLy8gR2xvYmFscyBhbmQgTWl4aW5zXG5AaW1wYWMtd2lkZ2V0LXNlbGVjdGFibGUtY29sb3I6ICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcblxuLy8gRWRpdCBzZXR0aW5nc1xuQGltcGFjLXdpZGdldC1zdWItYmctY29sb3I6ICAgICAgICAgICAgICAgICAgICBkYXJrZW4oQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yLDYlKTtcbkBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLWxpZ2h0OiAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvciw1JSk7IC8vZjNmNGY0XG5cbi8vIEFjY291bnRzIENvbXBhcmlzb25cbkBpbXBhYy13aWRnZXQtYWNjb3VudHMtY29tcGFyaXNvbi1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDogMjIwcHg7XG5cbi8vIFNhbGVzIGJyZWFrLWV2ZW5cbkBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZzogICAgICAgICAgICAgcmdiKDI1LDQwLDQ5KTtcbkBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yOiAgICAgIzFkZTliNjtcblxuLy8gS1BJc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gS3BpIGJhclxuQGtwaXMtYmFyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICB3aGl0ZTtcbkBrcGlzLWJhci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgMHB4IDFweCA4cHggLTRweDtcbi8vIEtwaVxuQGtwaS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZTtcbkBrcGktdHJpZ2dlcmVkLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgNHB4IHNvbGlkIEBicmFuZC1kYW5nZXI7XG5Aa3BpLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1cHg7XG5Aa3BpLWVkaXRpbmctbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDkwcHg7IC8vIGhlaWdodCB0byBiZSBhZGRlZCB0byB0aGUgQGtwaS1tYXgtaGVpZ2h0IHdoZW4gaW4gZWRpdGluZyBtb2RlLlxuQGtwaS1jb250ZW50LWVkaXRpbmctaGVpZ2h0LWJ1ZmZlcjogICAgICAgICAgICA1cHg7IC8vIGhlaWdodCB0byBiZSBtaW51c2VkIGZyb20gdGhlIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0IHRvIGV2ZW4gdGhlIGtwaSBoZWlnaHQgYW5kIHRoZSBrcGkgY29udGVudCBoZWlnaHQuXG4vLyBLcGkgdG9wLWxpbmVcbkBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I6ICAgICAgYmxhY2s7XG5Aa3BpLXRvcC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIDdweDtcbkBrcGktdG9wLWxpbmUtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgbm9uZTtcbi8vIGtwaSBjb250ZW50XG5Aa3BpLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIGJsYWNrO1xuQGtwaS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBibGFjaztcbi8vIGtwaSBzZXR0aW5nc1xuQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAbWJsdWU7XG5Aa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBicmFuZC1kYW5nZXI7XG5Aa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICM0YzQ3NDk7XG5Aa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgIGRhcmtlbihAYnJhbmQtZGFuZ2VyLCA1JSk7XG5Aa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kOiAgICAgICAgICM0YzQ3NDk7XG5Aa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kLWhvdmVyOiAgIEBtYmx1ZTtcbkBrcGktbmVnYXRpdmUtYWxlcnQtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjogICAgbGlnaHRlbigjZmYwMDAwLCAzMCUpO1xuXG4vLyBXaWRnZXRzIHBvcC11cHNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjogICAgIzE5MjgzMTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOiAgcmdiKDI0NCwgMjQ4LCAyNDkpO1xuQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yOiAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuXG4vLyBEZW1vIGRhdGEgbW9kZVxuQGltcGFjLXdpZGdldC1kZW1vLWRhdGEtbGluay1jb2xvcjogICAgICAgICAgICBAbWdyZWVuO1xuIiwiLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQkFMIFNUWUxFU1xuKiogICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHN0eWxlcyBhcHBsaWVkIGdsb2JhbCBvciBpblxuKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBvciBtb3JlIGNvbXBvbmVudHMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuLy8gTm90IGlkZWFsOiBpbnRlbmRzIHRvIGZvcmNlIGEgc2Nyb2xsYmFyIG9uIHRoZSB3aW5kb3cgKG5vdCBvbiB0aGUgYm9keSksXG4vLyBzbyB0aGF0IHRoZSB0b29sdGlwcyBhcHBlbmRlZCB0byBib2R5IGFyZSBub3QgbWFraW5nIHRoZSBzY3JlZW4gZmxpY2tlcmluZy5cbi8vIChzZWUgd2hlbiB0aGVyZSBpcyBvbmx5IDEgaW52b2ljZXMgbGlzdCB3aWRnZXQgb24gdGhlIGRhc2hib2FyZClcbi8vIEl0IGlzIGJldHRlciBpZiB0aGUgdG9vbHRpcHMgY2FuIGJlIGFwcGVuZGVkIHRvIGJvZHkgYmVjYXVzZSBvdGhlcndpc2UgaXQnc1xuLy8gbWVzc2luZyB0aGUgYWx0ZXJuYXRlLWJnKCkgbWl4aW5nIChieSBhZGRpbmcgYSBjaGlsZCB0byB0aGUgcGFyZW50IGVsZW1lbnQpXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDElICFpbXBvcnRhbnQ7XG59XG5cbi5hbmFseXRpY3Mge1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gVGl0bGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgLmxlZnQtdGhpbigpO1xuICB9XG5cbiAgaDQge1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDb2xvcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLnBvc2l0aXZlLC5ncmVlbiB7XG4gICAgY29sb3I6IEBpbXBhYy1wb3NpdGl2ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5lZ2F0aXZlLC5yZWQge1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wb3NpdGl2ZTIge1xuICAgIGNvbG9yOiBAaW1wYWMtcG9zaXRpdmUyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubmVnYXRpdmUyIHtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBCYXNlIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICBwcmUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luOiAxcHggMHB4IDhweCAwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC53aWRnZXQtaXRlbSAuY29udGVudCwga3Bpcy1iYXIgLmtwaSB7XG4gICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICB3aWR0aDogNnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yLDM1JSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zY3JvbGxiYXItY29sb3IsNDAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIENvbW1vbiBhZGp1c3RtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLm5vcGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5ub21hcmdpbiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDdXN0b20gZWxlbWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLmJ0bi5idG4tc2hhZGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtYnRuLXNoYWRkZWQtYmc7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKEBpbXBhYy1idG4tc2hhZGRlZC1iZyw1JSk7XG4gICAgY29sb3I6IEBpbXBhYy1idG4tc2hhZGRlZC1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogbGlnaHRlbihAaW1wYWMtYnRuLXNoYWRkZWQtY29sb3IsNSUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtYnRuLXNoYWRkZWQtYmcsNSUpO1xuICAgIH1cbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKCk7XG4gIH1cblxuICAuY3VycmVuY3kge1xuICAgIC5jZW50ZXItdGhpbigpO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICB9XG5cbiAgLmxlZ2VuZCB7XG4gICAgLmNlbnRlci1zbWFsbCgpO1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcbiAgfVxuXG4gIC5sb2FkZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaSB7XG4gICAgICAubG9hZGVyLXN0eWxlKCk7XG4gICAgfVxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgfVxuXG4gIC5zZWxlY3RvciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBtZWRpdW1ibHVlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlclxuICB9XG5cbiAgLnRpbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDcsMjQ3LDI0Nyk7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjRjFGOUZGLCAzJSk7XG4gICAgfVxuICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNGQzRGRjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDglO1xuICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGlsZS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1haW4tdGV4dCB7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgcGFkZGluZzogMjBweCAwcHggMHB4IDVweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy13aWRnZXQtbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMHB4IDE1cHg7XG5cbiAgICAucm93LndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcblxuICAgICAgJi5oZWFkZXIge1xuICAgICAgICAuZm9udCgxMnB4LDUwMCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtKTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgICAmID4gW2NsYXNzKj0nY29sLSddIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaS5mYSB7XG4gICAgICAgIG1pbi13aWR0aDogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogMTJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucm93IC5kYXNoZWQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIH1cblxuICAgIC5yb3cubGluZXMtZ3JvdXAge1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4IEBsaWdodGdyYXk7XG4gICAgfVxuICB9XG59XG5cbi52ZXJ0aWNhbC1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5ob3Jpem9udGFsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cblxuLy8gVGhlIHRvb2x0aXBzIHNob3VsZCBiZSBhcHBlbmQgdG8gYm9keVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0cy10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbWRhcmtibHVlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHN0cm9uZyB7XG4gICAgY29sb3I6IEBtZ3JlZW47XG4gIH1cbn1cblxuLnNvcnRhYmxlLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5kaXZbbmctbWVzc2FnZXNdIHtcbiAgY29sb3I6IEByZWQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tIEJvb3RzdHJhcCBvdmVycmlkZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICY6Zm9jdXMgeyBib3JkZXItY29sb3I6IEBicmFuZC1kYW5nZXIgfVxufVxuXG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogQGJyYW5kLXN1Y2Nlc3M7XG4gICY6Zm9jdXMgeyBib3JkZXItY29sb3I6IEBicmFuZC1zdWNjZXNzIH1cbn1cblxuLy8gcmVtb3ZlIGd1dHRlcnMgZnJvbSBCb29zdHJhcCByb3dcbi5yb3cubm8tZ3V0dGVycyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vIHJlbW92ZSBndXR0ZXJzIGZyb20gQm9vc3RyYXAgY29sdW1uXG5bY2xhc3NePVwiY29sLVwiXS5uby1ndXR0ZXJzLFxuW2NsYXNzKj1cIiBjb2wtXCJdLm5vLWd1dHRlcnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4iLCIuZm9udChAc2l6ZSxAd2VpZ2h0LEBjb2xvcikge1xuICBmb250LXdlaWdodDpAd2VpZ2h0O1xuICBmb250LXNpemU6QHNpemU7XG4gIGNvbG9yOkBjb2xvcjtcbn1cblxuLmNlbnRlci1ib2xkIChAbWFyZ2luLXRvcDogMzBweCkge1xuICAuZm9udCgyMnB4LCA5MDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogQG1hcmdpbi10b3A7XG59XG5cbi5jZW50ZXItdGhpbiAoKSB7XG4gIC5mb250KDE2cHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2VudGVyLXNtYWxsICgpIHtcbiAgLmZvbnQoMTJweCwgMzAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sZWZ0LXRoaW4gKEBtYXJnaW4tdG9wOiAwcHgpIHtcbiAgLmZvbnQoMTRweCwgMzAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiBAbWFyZ2luLXRvcDtcbn1cblxuLndpZGdldC1oZWlnaHQgKEBoZWlnaHQ6IEBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplKSB7XG4gIG1pbi1oZWlnaHQ6IEBoZWlnaHQ7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIGhlaWdodDogQGhlaWdodDtcbiAgICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogQGhlaWdodCArIDIwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiBAaGVpZ2h0IC0gMTI1cHg7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5zaG9ydC13aWRnZXQgKCkge1xuICAud2lkZ2V0LWhlaWdodCgpO1xuICAuZWRpdCB7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLW1pbmltdW0td2lkZ2V0LXNpemUgLSAyMHB4O1xuICB9XG59XG5cbi50YWxsLXdpZGdldCAoKSB7XG4gIC53aWRnZXQtaGVpZ2h0KEBpbXBhYy1iaWctd2lkZ2V0LXNpemUpO1xuICAuZWRpdCB7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLWJpZy13aWRnZXQtc2l6ZSAtIDIwcHg7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgLnNjcm9sbGFibGUoaGlkZGVuKTtcbiAgICB9XG4gIH1cbn1cblxuLnNjcm9sbGFibGUgKEBzY3JvbGwtbW9kZTogYXV0bykge1xuICBvdmVyZmxvdy15OiBAc2Nyb2xsLW1vZGU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLnNlbGVjdGFibGUgKCkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgLnNlbGVjdGlvbi10YWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDI5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zZWxlY3RhYmxlLWNvbG9yLCAyMiUpO1xuICB9XG4gICYubm8tc2VsZWN0IHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgJjpob3ZlciB7IGNvbG9yOiBAbWVkaXVtYmx1ZTsgfVxuICB9XG59XG5cbi5hbHRlcm5hdGUtYmcgKEBldmVuLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcikge1xuICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGV2ZW4tY29sb3I7XG4gIH1cbiAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG59XG5cbi5lZGl0LXBhbmVsLXN0eWxlKCkge1xuICAuc2Nyb2xsYWJsZSgpO1xuICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcblxuICAuYm90dG9tLWJ1dHRvbnMge1xuICAgIC5idG4ge1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBwYWRkaW5nOiAzcHggMTNweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgICYuYnRuLWRlZmF1bHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oI2MyYzRjNCwxMCUpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigjYzJjNGM0LDIwJSk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNjMmM0YzQsMTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLmZvbnQoMTJweCxub3JtYWwsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0KTtcbiAgfVxuXG4gIC5wYXJ0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZzogMTBweCAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1zdWItYmctY29sb3ItbGlnaHQ7XG4gICAgLy8gY29sb3I6ICM2MjZkNmQ7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuXG4gICAgaDUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZzogMHB4IDE1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgLmZvbnQoMTJweCxub3JtYWwsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0KTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICBib3JkZXI6IHNvbGlkIDFweCAjYWNiMGIxO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGNvbG9yOiAjNzI3MjhiO1xuICAgIH1cbiAgfVxufVxuXG4ubG9hZGVyLXN0eWxlKEBjb2xvcjogQGltcGFjLXdpZGdldC1sb2FkaW5nLXNwaW5uZXIpIHtcbiAgY29sb3I6IEBjb2xvcjtcbn1cblxuLmNvbHVtbi1ndXR0ZXIoQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBhZGRpbmctbGVmdDogQGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogQGd1dHRlcjtcbn1cblxuLndpZGdldC1wb3B1cCgpIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjtcbiAgXG4gIC5vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAycHg7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHotaW5kZXg6IDU7XG4gIH1cblxuICAubWVzc2FnZSB7XG4gICAgei1pbmRleDogNjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgdG9wOiA0NXB4O1xuICAgIGxlZnQ6IDclO1xuICAgIHdpZHRoOiA4NiU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG59XG4iLCJAbWVkaWEgcHJpbnQge1xuICBib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsgfVxuICAuYW5hbHl0aWNzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC50aXRsZS1jb250YWluZXIgeyBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gICAgLndpZGdldC1pdGVtIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnJpZ2h0LXBhbmVsIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogODAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICogeyB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8vIE5PVEU6IERvIG5vdCBhZGQgc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBidXR0b24gb3IgY3VzdG9tIGluamVjdGVkIGJ1dHRvbkh0bWwgaGVyZS5cbi8vICAgICAgIHRoZSBwYXJlbnQgc3R5bGVzaGVldCBvZiB3aGljaCB0aGlzIGRpcmVjdGl2ZSBpcyBlbWJlZGRlZCB3aXRoaW4gc2hvdWxkXG4vLyAgICAgICBjb250YWluIHRoZSBzdHlsZXMuXG5cbi8vIE1vZGFsIGtwaXMgYWxlcnRzIHNldHRpbmdzXG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyB7XG4gIC5tb2RhbC1oZWFkZXIgeyBmb250LXNpemU6IDIwcHg7IH1cblxuICAubW9kYWwtYm9keSB7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG5cbiAgICB1bCB7IG1hcmdpbi10b3A6IDEwcHg7IH1cblxuICAgIHVsID4gbGkubGlzdC1ncm91cC1pdGVtIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBwYWRkaW5nOiA2cHggMTVweDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgIC5hbGVydC10b2dnbGUge1xuICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IEBtYmx1ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6ICNjNGNhY2E7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZhLmZhLXRvZ2dsZS1vbiwgLmZhLmZhLXRvZ2dsZS1vZmYge1xuICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgdWwucmVjaXBpZW50cy1saXN0IHtcbiAgICAgIGhlaWdodDogNzVweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzRjYWNhO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIGlucHV0LnJlY2lwaWVudC1zZWFyY2gge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgdWwuYXZhaWxhYmxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3Mge1xuICBwYWRkaW5nLXRvcDogQGltcGFjLWRhc2hib2FyZC1wYWRkaW5nLXRvcDtcbiAgbWFyZ2luLWxlZnQ6IEBpbXBhYy1kYXNoYm9hcmQtbWFyZ2luLWxlZnQ7XG5cbiAgLy8gRGVmYXVsdCBzbWFsbCBzY3JlZW4gYmVoYXZpb3VyIHRvIGFsbG93IGZvciB0aGUgY29tbW9uIHVzZSBvZiB0b3AtYmFyc1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAgIHBhZGRpbmctdG9wOiBAaW1wYWMtZGFzaGJvYXJkLXNtLXBhZGRpbmctdG9wO1xuICB9XG5cbiAgJi5wZGYtbW9kZSB7IHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbiAgJi5zaG93LWRoYiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gICYuaGlkZS1kaGIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAvLyBjb250YWlucyBjdXN0b21pc2FibGUgaW1wYWMgbG9nbywgYW5kIGhlYWRpbmcgdGV4dC5cbiAgI2Rhc2hib2FyZC1oZWFkaW5nIHtcbiAgICBpbWcge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgICAmLnBkZi1tb2RlOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgfVxuICAgIC5jYXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1hcmdpbjogNXB4IDBweDtcbiAgICB9XG4gIH1cblxuICAjc3ViLW1lbnUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBjb2xvcjogIzIzMzg0NTtcbiAgICB9XG5cbiAgICAuZmEuZmEtdGltZXMge1xuICAgICAgbWFyZ2luOiA2cHg7XG4gICAgICBjb2xvcjogbGlnaHRlbigjMjMzODQ1LCAxNSUpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gICN3aWRnZXQtc2VsZWN0b3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnO1xuICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yO1xuICAgIHBhZGRpbmc6IDBweCA0NXB4IDEwcHggNDVweDtcbiAgICBtYXJnaW46IDEwcHggLTQ1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogQ2hyb21lL1NhZmFyaSAqL1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7IC8qIEZpcmVmb3ggKi9cbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIElFMTArICovXG4gICAgLyogUnVsZXMgYmVsb3cgbm90IGltcGxlbWVudGVkIGluIGJyb3dzZXJzIHlldCAqL1xuICAgIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgICBwYWRkaW5nOiAwIDE1cHggMTBweCAxNXB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICBwLmluc3RydWN0aW9uIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLndpZGdldC1hZGRlZC5iYWRnZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLmZhLmNsb3NlLXNlbGVjdG9yIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogQG1saWdodGdyZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW46IDE1cHggMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24taGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWxpbmVzIHtcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG5cbiAgICAgIHAge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciwgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXRleHQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDMlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2F0ZWdvcmllcy1zZWN0aW9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcblxuICAgICAgJiA+IC5zZWN0aW9uLWxpbmVzIHtcblxuICAgICAgICAmID4gW2NsYXNzKj0nY29sLSddOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5saW5lLWl0ZW06aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmUtaXRlbS5zZWxlY3RlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIC5ib3gtc2hhZG93KC0ycHggMnB4IDEwcHggLTRweCBibGFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmFycm93LWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMzNweDtcbiAgICAgICAgcmlnaHQ6IC0xMXB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC5zcXVhcmUge1xuICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgIHJpZ2h0OiAxN3B4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGkuZmEuZmEtY2FyZXQtcmlnaHQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNTJweDtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAtMS41cHg7XG4gICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC53aWRnZXRzLXNlY3Rpb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDMlKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgICAmID4gLnNlY3Rpb24taGVhZGVyIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmID4gLnNlY3Rpb24tbGluZXMge1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4O1xuXG4gICAgICAgIC5mYS5mYS1wbHVzLWNpcmNsZSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAubGluZS1pdGVtcy1ncmlkIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBoZWlnaHQ6IDAlO1xuXG4gICAgICAgICAgJiA+IC5ncmlkLWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxM3B4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIC8vIEFwcGxpZXMgYSBmbGV4LWJhc2lzIG9mIDEvMyBmb3IgZWFjaCBncmlkIGl0ZW0gKDMgY29sdW1ucyBwZXIgcm93KVxuICAgICAgICAgICAgZmxleDogMCAzMS4zMyU7XG4gICAgICAgICAgICAvLyBDcmVhdGVzIGEgc21hbGwgZ3V0dGVyIGFyb3VuZCBlYWNoIGdyaWQgaXRlbVxuICAgICAgICAgICAgbWFyZ2luOiAwIDElO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1pdGVtLW1pbi1oZWlnaHQ7XG5cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgICAgICAgICAgIGZsZXg6IDAgMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAubGluZS1pdGVtIHtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5ib3R0b20ge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgJiA+IC5zdWdnZXN0aW9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIGEge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBAZmx1cm9ibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgJiA+ICogeyBtYXJnaW46IDBweCAzcHg7IH1cbiAgICB9XG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGhlaWdodDogMzRweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gbm8gd2lkZ2V0cyAtIGVtcHR5IGRhc2hib2FyZC5cbiAgI25vLXdpZGdldHMtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTUwcHg7XG5cbiAgICAvLyBiYWNrZ3JvdW5kIGltYWdlIGFzc2V0XG4gICAgaW1nLmJnIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC8vIG5vIHdpZGdldHMgbWVzc2FnZSB0aGF0IHNpdHMgYWJvdmUgaW1hZ2UgYXNzZXRcbiAgICAuaW1wYWMtaW5mby1tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAuaW5mby10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXdlaWdodDtcbiAgICAgICAgcGFkZGluZzoyMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMTVweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBhcmVudCBkaXYgc2VjdGlvbiBmb3Igd2lkZ2V0cyB0byBiZSBob3VzZWQuXG4gICN3aWRnZXRzLXNlY3Rpb24ge1xuICAgIC8vIGNvbnRhaW5lciBmb3Igd2lkZ2V0c1xuICAgICN3aWRnZXRzLWNvbnRhaW5lciB7XG4gICAgICAvLyBRdWljay1maXggdG8gYXZvaWQgc2NyZWVuIGZsb2NrZXJpbmcgd2hlbiB0b29sdGlwcyBhcmUgYXBwZW5kZWQgdG8gYm9keTpcbiAgICAgIC8vIG1pbi1oZWlnaHQgd2lsbCBmb3JjZSBhIHNjcm9sbGJhciB0byBhcHBlYXIuLi5cbiAgICAgIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICAgIH1cblxuICAgIC5wbGFjZUhvbGRlckJveCB7XG4gICAgICBtYXJnaW46IEBpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0cztcbiAgICAgIGhlaWdodDogMjY3cHg7XG4gICAgICB3aWR0aDogMzAwcHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGJvcmRlcjogQGltcGFjLXBsYWNlaG9sZGVyLWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIGRhc2hib2FyZCBmYWlsZWQgdG8gbG9hZCBtZXNzYWdlLlxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCB7XG5cbiAgcCB7IGZvbnQtc2l6ZTogMjJweDsgfVxuXG4gIC5zZWNvbmQtbXNnIHtcbiAgICBwIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUb29sdGlwcyBhcmUgYXBwZW5kIHRvIGJvZHlcbi50b29sdGlwLmltcGFjLXdpZGdldC1zZWxlY3Rvci10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSB7XG4gIGlucHV0LHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogMTUwcHg7XG4gIH1cbiAgLnRoYW5rcy1tZXNzYWdlIHtcbiAgICBjb2xvcjogQG1ncmVlbjtcbiAgfVxufVxuXG4vLyBUaGlzIHN0eWxlIGFwcGxpZXMgdG8gZGFzaGJvYXJkIG1vZGFscywgYW5kIGFsc28gdGhlXG4vLyBgYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uL2Zvcm11bGEubW9kYWwuaHRtbGAgbW9kYWwuXG4ubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICAubG9hZGVyLXN0eWxlKEBpbXBhYy1kYXNoYm9hcmQtbG9hZGluZy1zcGlubmVyKVxufVxuXG4iLCIuYW5hbHl0aWNzIC5kYXNoYm9hcmQtY3JlYXRlIHtcbiAgLmJ0bi1jcmVhdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtY3JlYXRlLWJ1dHRvbi1jb2xvcjtcbiAgfVxufVxuXG4ubW9kYWwuaW1wYWMtZGFzaGJvYXJkLWNyZWF0ZSB7XG4gIGgxIHsgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5mYS5mYS10aW1lcyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAuY29udHJvbC1sYWJlbCB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1vZGFsLWZvb3RlciB7XG4gICAgLmxvYWRlciB7XG4gICAgICAubG9hZGVyLXN0eWxlKEBpbXBhYy1kYXNoYm9hcmQtbG9hZGluZy1zcGlubmVyKVxuICAgIH1cbiAgfVxufVxuIiwiI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIHtcbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuICAvLyBkYXNoYm9hcmQgc2VsZWN0b3IgdGVtcGxhdGUgd3JhcHBlciBkaXZcbiAgJiA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci1ib3JkZXI7XG4gIH1cblxuICAuYnV0dG9ucy1iYXItcm93IHtcbiAgICBtYXJnaW4tdG9wOiA1NHB4O1xuICAgICYucGRmLW1vZGUgeyBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgfVxuXG4gIC8vIGNvbnRhaW5lciBmb3IgZGFzaGJvYXJkIHNlbGVjdG9yICdkcm9wZG93bicgdGVtcGxhdGVcbiAgLmJ1dHRvbnMtYmFyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5idG4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiBAaW1wYWMtZGFzaGJvYXJkLWJ1dHRvbnMtYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAudGl0bGUtY29udGFpbmVyIHtcbiAgICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kcm9wZG93bi1jb250YWluZXIge1xuICAgICAgLmRhc2hib2FyZC10aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yLDEwJSk7XG4gICAgICAgIH1cbiAgICAgICAgaS5mYS5mYS1wZW5jaWwge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbWdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRhc2hib2FyZC1zZWxlY3Qge1xuICAgICAgICBtYXJnaW46IDVweCAwcHggMTBweCAzMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Z3JheTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAub3B0aW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmRhc2hib2FyZC1jcmVhdGUge1xuICAgICAgICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaS5mYS5mYS1wZW5jaWwge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDdweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yLDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwYW4ubmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogODUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY2hhbmdlLW5hbWUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzLCAzOCwgNDUpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAuYm94LXNoYWRvdygwcHggMHB4IDI1cHggNHB4IGJsYWNrKTtcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRhdGEtc291cmNlLWxhYmVsIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc291cmNlLWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxvYWRlci1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgIC5sb2FkZXItc3R5bGUoKTtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGFuZ3VsYXIgYm9vdHN0cmFwIHRhYnMgJiBwaWxsc1xuICAubmF2LXRhYnMge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbiAgLm5hdi5uYXYtdGFicyxcbiAgLm5hdi5uYXYtcGlsbHMge1xuXG4gICAgLy8gYWRkIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgdGFiLWhlYWRpbmcgYSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVEFCU1xuICAubmF2Lm5hdi10YWJzIHtcbiAgICAvLyB0YWJcbiAgICBsaSA+IGEge1xuICAgICAgcGFkZGluZzogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLXBhZGRpbmc7XG4gICAgICBtYXJnaW46IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1tYXJnaW47XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci1ib3JkZXI7XG4gICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yO1xuICAgIH1cbiAgICAvLyBhY3RpdmUgdGFiXG4gICAgbGkuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1jb2xvcjtcbiAgICB9XG4gICAgLy8gYWRkIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICAvLyBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICB9XG4gICAgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBJTExTXG4gIC8vIFRPRE86IEFkZCBsZXNzIHZhcmlhYmxlcyBmb3IgY3VzdG9taXNhdGlvbi5cbiAgLm5hdi5uYXYtcGlsbHMge1xuICAgIC8vIHRhYlxuICAgIGxpID4gYSB7XG4gICAgICBtaW4td2lkdGg6IDBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICB9XG4gICAgLy8gYWRkIGEgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgdGFiLWhlYWRpbmcgYSB7XG4gICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIH1cbiAgICAvLyBhZGQgYSBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gICAgfVxuICB9XG4gIC8vIHRhYiBpY29uc1xuICB0YWItaGVhZGluZyBhLmNsb3NlLWxpbmsge1xuICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZDtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtOXB4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1jb2xvcjtcbiAgfVxuICAvLy8vLy8vL1xufVxuIiwiZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciB7XG4gIC50ZW1wbGF0ZXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC50ZW1wbGF0ZXMtdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgaS5mYSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRlbXBsYXRlcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDFweCAwcHggI2NjYztcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgIC50ZW1wbGF0ZSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNlYztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvciwgMjAlKTtcbiAgICAgIH1cbiAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMjIwcHg7XG4gIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodDtcbiAgbWF4LWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLWJhY2tncm91bmQtY29sb3I7XG4gIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBrcGktYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi50cmlnZ2VyZWQsICYuYWRkOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiBAa3BpLXRyaWdnZXJlZC1ib3JkZXItYm90dG9tO1xuICB9XG5cbiAgJi5hZGQge1xuICAgIC5rcGktdGV4dCB7XG4gICAgICAuZW1waGFzaXMgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICB9XG4gIH1cblxuICAmLmFkZDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC50b3AtbGluZSB7IGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I7IH1cbiAgICAua3BpLXRleHQge1xuICAgICAgY29sb3I6IEBrcGktdGV4dC10cmlnZ2VyZWQtY29sb3I7XG4gICAgICAuZW1waGFzaXMgeyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgfVxuICAgIC5rcGktaWNvbiB7XG4gICAgICBjb2xvcjogQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjtcbiAgICAgIC5mYS1wbHVzOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5lZGl0aW5nIHtcbiAgICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgKyBAa3BpLWVkaXRpbmctbWF4LWhlaWdodDtcbiAgfVxuXG4gICY6aG92ZXIgeyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuICAmLnN0YXRpYyB7XG4gICAgLmtwaS12YWx1ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuICB9XG5cbiAgLnRvcC1saW5lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBtaW4taGVpZ2h0OiBAa3BpLXRvcC1saW5lLWhlaWdodDtcbiAgICBib3gtc2hhZG93OiBAa3BpLXRvcC1saW5lLWJveC1zaGFkb3c7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3I7XG4gICAgJi50cmlnZ2VyZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOyB9XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMgZWFzZS1pbjtcbiAgfVxuXG4gIC5rcGktY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0IC0gNXB4O1xuICAgICYuZWRpdGluZyB7XG4gICAgICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgKyBAa3BpLWVkaXRpbmctbWF4LWhlaWdodCAtIEBrcGktY29udGVudC1lZGl0aW5nLWhlaWdodC1idWZmZXI7XG4gICAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5rcGktc2hvdyB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIC8vIHNtYWxsIGZpeCBmb3IgaXBob25lIDYgYW5kIHNtYWxsZXJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzODBweCkge1xuICAgICAgcGFkZGluZzogMTBweCAzcHg7XG4gICAgfVxuXG4gICAgLmVtcGhhc2lzIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgIC5yZWFsLXZhbHVlIHsgY29sb3I6ICM2NzY3Njc7IH1cbiAgICB9XG5cbiAgICAuY2FwdGlvbiB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5rcGktdGV4dCB7XG4gICAgICAmID4gc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgIGNvbG9yOiBAa3BpLXRleHQtY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbjtcbiAgICAgICYudHJpZ2dlcmVkIHsgY29sb3I6IEBrcGktdGV4dC10cmlnZ2VyZWQtY29sb3I7IH1cblxuICAgICAgLmNhcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gICAgICAgIC5jYXB0aW9uIHsgZm9udC1zaXplOiAxMHB4OyB9XG4gICAgICAgIC5lbXBoYXNpcyB7IGZvbnQtc2l6ZTogMTFweDsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5rcGktaWNvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICBjb2xvcjogQGtwaS1pY29uLWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW47XG4gICAgICAmLnRyaWdnZXJlZCB7IGNvbG9yOiBAa3BpLWljb24tdHJpZ2dlcmVkLWNvbG9yOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAua3BpLWVkaXQge1xuXG4gICAgYSB7IGNvbG9yOiB3aGl0ZTsgfVxuXG4gICAgLmtwaS1uYW1lIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIGg2IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJlYWwtdmFsdWUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYWxlcnQtY2FwdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICBiYWNrZ3JvdW5kOiBAa3BpLW5lZ2F0aXZlLWFsZXJ0LWxhYmVsLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvIDVweCBhdXRvO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cblxuICAgIC5rcGktdGFyZ2V0LXdhdGNoYWJsZSxcbiAgICAua3BpLXRhcmdldC11bml0IHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgIC5rcGktdGFyZ2V0LXdhdGNoYWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgfVxuXG4gICAgLmtwaS10YXJnZXQtdW5pdCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCAxMCUpO1xuICAgIH1cblxuICAgIC5wYXJhbS1uYW1lIHtcbiAgICAgIC5zbWFsbCgpO1xuICAgIH1cblxuICAgIC5idG4uYnRuLXhzIHtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG4gIH1cblxuICAua3BpLWVkaXQsXG4gIC5rcGktbm8tZGF0YSB7XG4gICAgLmltcGFjLW1hdGVyaWFsKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIEBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3IpO1xuICB9XG5cbiAgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91ZDogQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBidXR0b24ua3BpLXJlbW92ZS5pbS1mYWIuaW0td2FybiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IC0xMXB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1kYXRhLWxvYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogOTVweDtcbiAgfVxufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtleS1zdGF0cyAua3BpIHtcbiAgbWluLWhlaWdodDogODBweDtcbn1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+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+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG5cbkBib2R5LWJnOiAjZmZmO1xuXG4vLyBTaGFkb3dzXG5Ac2hhZG93LWluc2V0OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCk7XG5Ac2hhZG93LTA6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbkBzaGFkb3ctMjogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctMzogMCAzcHggNHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDhweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctNDogMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMik7XG5Ac2hhZG93LTY6IDAgNnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMThweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKTtcbkBzaGFkb3ctODogMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsLjEyKSwwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLC4yKTtcblxuLy8gRm9udCBTaXplc1xuQGltLWZvbnQtc2l6ZTogMS4yNXJlbTtcbkBpbS1hY3RpdmUtZm9udC1zaXplOiBAaW0tZm9udC1zaXplICogMC44O1xuQGltLWFjdGl2ZS10b3A6IC1AaW0tZm9udC1zaXplO1xuXG4vLyBNYXJnaW4gJiBQYWRkaW5nc1xuQGltLWdhcDogQGltLWZvbnQtc2l6ZSAqIC43O1xuQGltLXNwYWNlcjogQGltLWZvbnQtc2l6ZSAvIDg7XG5AaW0tZmllbGRzZXQtbWFyZ2luOiAwIDAgQGltLWdhcCAqIDI7XG5AaW0tY2hlY2tib3gtZ2FwOiBAaW0tZm9udC1zaXplICogMjtcbkBpbS1jaGVja2JveC10b3A6IDA7XG5AaW0tcmFkaW8tbWFyZ2luOiBAaW0tZm9udC1zaXplIC8gLTQ7XG5cbi8vIENvbG9yc1xuQGltLWJvcmRlci1jb2xvcjogIzk5OTtcbkBpbS1sYWJlbC1jb2xvcjogbGlnaHRlbihAaW0tYm9yZGVyLWNvbG9yLCAxMCUpO1xuQGltLWFjdGl2ZS1jb2xvcjogZGFya2VuKEBpbS1ib3JkZXItY29sb3IsIDEwJSk7XG5cbi8vIEFuaW1hdGlvblxuQGltLXRyYW5zaXRpb24tc3BlZWQ6IDAuMjhzO1xuXG4uaW1wYWMtbWF0ZXJpYWwgKEBpbS1mb2N1cy1jb2xvcjogIzMzN2FiNywgQGltLWVycm9yLWNvbG9yOiAjZDk1MzRmLCBAaW0taW5wdXQtY29sb3I6ICMzMzMpIHtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG4gIC53ZWxsLCAubmF2YmFyLWlubmVyLCAucG9wb3ZlciwgLmJ0biwgLnRvb2x0aXAsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBwcmUsIC5wcm9ncmVzcywgLm1vZGFsLCAuYWRkLW9uLCAuYWxlcnQsIC50YWJsZS1ib3JkZXJlZCwgLm5hdj4uYWN0aXZlPmEsIC5kcm9wZG93bi1tZW51LCAudG9vbHRpcC1pbm5lciwgLmJhZGdlLCAubGFiZWwsIC5pbWctcG9sYXJvaWQge1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHksXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgU3R5bGVzIGZvciB0aGUgZm9ybVxuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiBAaW0tZmllbGRzZXQtbWFyZ2luO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLmltLWZvcm0tcmFkaW8sXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAxLjUpO1xuICAgIG1hcmdpbi1ib3R0b206IChAaW0tZ2FwICogMS41KTtcbiAgfVxuXG4gIC5pbS1mb3JtLWlubGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleDogMTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tbGVmdDogKEBpbS1nYXAgKiAuMik7XG4gICAgICBtYXJnaW4tcmlnaHQ6IChAaW0tZ2FwICogLjIpO1xuICAgIH1cblxuICAgID4gLmJ0biB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBpbnB1dCB7XG4gICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS45KTtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuNik7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogQGltLXNwYWNlcjtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBjb2xvcjogQGltLWxhYmVsLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogKEBpbS1mb250LXNpemUgLyAxNikgc29saWQgQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDgpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3R0b206IChAaW0tZm9udC1zaXplIC8gLTE2KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZSwgd2lkdGggQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMS45O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgIH4gLmltLWJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0OmZvY3VzLFxuICAgIGlucHV0OnZhbGlkLFxuICAgIGlucHV0LmZvcm0tZmlsZSxcbiAgICBpbnB1dC5oYXMtdmFsdWUsXG4gICAgdGV4dGFyZWE6Zm9jdXMsXG4gICAgdGV4dGFyZWE6dmFsaWQsXG4gICAgdGV4dGFyZWEuZm9ybS1maWxlLFxuICAgIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gICAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuXG4gICAgICB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiBAaW0tYWN0aXZlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6IEBpbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIHRvcDogQGltLWFjdGl2ZS10b3A7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB+IC5pbS1iYXIge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmFkaW8gJiBDaGVja2JveFxuICAuaW0tY2hlY2tib3gsXG4gIC5pbS1mb3JtLXJhZGlvIHtcbiAgICBsYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBpbS1jaGVja2JveC1nYXA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmltLXJhZGlvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IEBpbS1yYWRpby1tYXJnaW47XG4gICAgICBsZWZ0OiBAaW0tcmFkaW8tbWFyZ2luO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGNvbG9yOiBAaW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAvLyBUT0RPOiBpbXByb3ZlIHJhZGlvIHRyYW5zaXRpb24gLSByaXBwbGUgZWZmZWN0IGxpa2UgYW5ndWxhciBtZCB3b3VsZCBiZSBjb29sIDopXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luOiAoQGltLXNwYWNlciAqIDIpO1xuICAgICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiBAaW0tZm9udC1zaXplO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQge1xuICAgICAgfiAuaW0taGVscGVyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAyKTtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogQGltLWNoZWNrYm94LXRvcDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogKEBpbS1mb250LXNpemUgLyAxNik7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IChAaW0tZm9udC1zaXplICogMC4yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgQGltLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjY1KTtcbiAgICAgICAgbGVmdDogKEBpbS1mb250LXNpemUgKiAwLjM4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIChAaW0tZm9udC1zaXplIC8gMTYpIEBib2R5LWJnO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjMpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIHtcbiAgICAgIH4gLmltLWhlbHBlciB7XG4gICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG5cbiAgICAgICAgLy8gVE9ETzogaW1wcm92ZSBjaGVja2VkIHRyYW5zaXRpb24uXG4gICAgICAgICY6OmFmdGVyLFxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS4yKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiBAaW0tdHJhbnNpdGlvbi1zcGVlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbiAgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiBAaW0tZm9udC1zaXplO1xuICB9XG5cbiAgLy8gQWRkIGNsYXNzIG9udG8gbmctbWVzc2FnZXMgZGl2XG4gIC5pbS1tZXNzYWdlcyB7XG4gICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplIC8gMS4yO1xuICAgIGNvbG9yOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgY3ViaWMtYmV6aWVyKC41NSwwLC41NSwuMik7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cblxuICAuaGFzLWVycm9yIHtcbiAgICAubGVnZW5kLmxlZ2VuZCxcbiAgICAmLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgIH1cblxuICAgICYuaW0tZm9ybS1ncm91cCxcbiAgICAmLmltLWNoZWNrYm94LFxuICAgICYuaW0tcmFkaW8sXG4gICAgJi5pbS1mb3JtLXJhZGlvIHtcbiAgICAgIC5pbS1tZXNzYWdlcyxcbiAgICAgIC5pbS1oZWxwZXIge1xuICAgICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbihAaW0tZm9jdXMtY29sb3IsIDEwJSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogKEBpbS1mb250LXNpemUgKiAxLjEpO1xuICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG4gICAgbWFyZ2luOiAoQGltLWdhcCAqIC44KSAwO1xuICAgIHBhZGRpbmc6IChAaW0tZ2FwIC8gMikgKEBpbS1nYXAgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogQHNoYWRvdy0yO1xuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1mb2N1cy1jb2xvciwgNSUpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctaW5zZXQ7XG4gICAgfVxuXG4gICAgYTpmb2N1cyxcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmltLWZhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDZweDtcbiAgICB3aWR0aDogNDZweDtcbiAgICBmbGV4OiAwIDAgNTZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDRweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBib3gtc2hhZG93OiBAc2hhZG93LTQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogQHNoYWRvdy1pbnNldDtcbiAgICB9XG4gICAgJi5pbS1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oQGltLWZvY3VzLWNvbG9yLCA1JSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuaW0td2FybiB7XG4gICAgICBiYWNrZ3JvdW5kOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1lcnJvci1jb2xvciwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmltcGFjLW1hdGVyaWFsKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIEBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3IpO1xuXG4gICAgYSB7IGNvbG9yOiB3aGl0ZTsgfVxuXG4gICAgYnV0dG9uLmltLWZhYi5hZGQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLmVkaXQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZS1pbjtcbiAgICAgICYuaW0tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNiMmI1YzE7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBhIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICAgIHRvcDogLTE1cHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIHJpZ2h0OiAtMTRweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMge1xuICAgICAgdG9wOiAzMHB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogMzNweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICAgIHRvcDogNzVweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgJi5lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvcjtcbiAgICAgICAgJjpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbihAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCAxNSUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogNzlweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3Bpcy1iYXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBAa3Bpcy1iYXItYm94LXNoYWRvdztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gICAgICBwYWRkaW5nOiAwIDYwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgfVxuXG4gICAgLmltcGFjLWtwaSB7XG4gICAgICAuY29sdW1uLWd1dHRlcig1cHgpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAua3BpLmFkZCB7XG4gICAgICAgIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC50aXRsZSB7XG4gICAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgICBmb250LXNpemU6IGxhcmdlcjtcbiAgICAgIH1cbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlNTVjO1xuICAgICAgICBjb2xvcjogIzRmNTk1OTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggLTFweDtcbiAgICAgIH1cbiAgICAgIC5uby1rcGktdGVtcGxhdGVzIHtcbiAgICAgICAgY29sb3I6ICNhZmFkYjU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFkZC1iYXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbiAgICB9XG5cbiAgICAua3BpLWxvYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgMjBweDtcbiAgICB9XG5cbiAgICAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgIC5zZHAtZnJvbS1sYWJlbCxcbiAgICAgIC5zZHAtdG8tbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG5cbi5hbmFseXRpY3MucGRmLW1vZGUga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7IGRpc3BsYXk6IG5vbmU7IH1cbiIsIi53aWRnZXQtaXRlbSB7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG4gIHBhZGRpbmc6IEBpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0cztcbiAgJi5wZGYtbW9kZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogflwiQHtpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0c30gMHB4XCI7XG4gIH1cbn1cblxuLndpZGdldC1pdGVtIC50b3AtbGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJnO1xuICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJvcmRlci1yYWRpdXM7XG4gIGJvcmRlcjogQGltcGFjLXdpZGdldC1ib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDQxcHg7XG4gIC5ib3gtc2hhZG93KDBweCAxcHggOHB4IC00cHgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgei1pbmRleDogNDtcbn1cblxuLndpZGdldC1pdGVtIHtcbiAgLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogQGltcGFjLXdpZGdldC1jb250ZW50LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiBAaW1wYWMtd2lkZ2V0LWJvcmRlcjtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLmJveC1zaGFkb3coMHB4IDFweCA4cHggLTRweCk7XG4gICAgLnNob3J0LXdpZGdldCgpO1xuXG4gICAgLmVkaXQge1xuICAgICAgLmVkaXQtcGFuZWwtc3R5bGUoKTtcbiAgICB9XG5cbiAgICAmLmFjY2Vzc2libGUge1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICAgICAgbWF4LWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIEF2b2lkIGNvbnRlbnQgdG8gbGVhayBvdXQgb2Ygd2lkZ2V0J3MgYm94XG4gICAgLmNvbnRlbnQtdGVtcGxhdGUtd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAmLnBkZi1tb2RlIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAuY29sbGFwc2Uge1xuICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICB9XG4gICAgLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMTQ3XCI7XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGZ7XG4gICYudGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gMipAe2ltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzfSApXCI7XG4gICAgei1pbmRleDogMztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7XG4gICAgaDYge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG4gICYudGljayB7XG4gICAgaSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDM1JTtcbiAgICAgIGxlZnQ6IDQ2JTtcbiAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XG4gICAgICBvcGFjaXR5OiAuNTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICB9XG4gIC53aWRnZXQtaG92ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgei1pbmRleDogMTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgYmFja2dyb3VuZDogI0NDQ0ZEMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRml4IG92ZXJmbG93IGZvciBsYXJnZSBzdW1zL3RleHQgaW4gLndpZGdldC1saW5lcy1jb250YWluZXIgdGFibGVzXG4ud2lkZ2V0LWl0ZW0gLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lID4gW2NsYXNzKj0nY29sLSddIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yO1xuXG4gIC5vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAycHg7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHotaW5kZXg6IDM7XG4gIH1cblxuICAubWVzc2FnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTI1cHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHdpZHRoOiA4NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG4gICAgei1pbmRleDogNDtcblxuICAgIC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgICAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAuYnRuIHsgbWFyZ2luLXRvcDogNXB4OyB9XG4gIH1cblxuICAuZXhhbXBsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgei1pbmRleDogNjtcblxuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWRlbW8tZGF0YS1saW5rLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgLm1lc3NhZ2Uge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwIHsgbWFyZ2luOiA1cHg7IH1cbiAgfVxuICAub3ZlcmxheSwgLnRpdGxlLCAuYnRuLCAuZXhhbXBsZSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cbiIsIiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3Qge1xuICAudG9wIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYS5iYWNrLWxpbmsgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhZ2luYXRpb24geyBtYXJnaW46IDBweDsgfVxuICB9XG5cbiAgLnRhYmxlLXN0cmlwZWQge1xuICAgIHRyLm9yaWdpbjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA2MHB4KVwiO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dC5idG4uYnRuLXhzIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICAgIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICAuZmEuZmEtdGltZXMge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgdHIudG90YWwge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAmLmludm9pY2VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtcG9zaXRpdmUsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLmJpbGxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtbmVnYXRpdmUsIDIwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIjdHJhbnNhY3Rpb25zLWFkZCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIHRvcDogMzBweDtcbiAgICBsZWZ0OiAzNSU7XG4gICAgd2lkdGg6IDMwJTtcbiAgICAuZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICAgID4gbGFiZWwsXG4gICAgICAuc2NoZWR1bGFibGUtc2VjdGlvbiA+IGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgIH1cbiAgICAgIGlucHV0LmZvcm0tY29udHJvbCwgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgICAuYnRuLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIycHg7XG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kaXNhYmxlIHtcbiAgICAgICAgY29sb3I6ICM4ODg4ODg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cbiAgICAgIC5uZXZlci1kaXNhYmxlIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICB9XG4gICAgICAucmVwZWF0LWJ0biB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdCB7IGhlaWdodDogMjJweDsgfVxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zY2hlZHVsYWJsZS1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICB9XG4gICAgICAgIC5pbnRlcnZhbC1maWVsZCB7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJ0bi1ncm91cCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgc2VsZWN0IHsgaGVpZ2h0OiAyMnB4OyB9XG4gICAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmJvdHRvbSB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiI3RyYW5zYWN0aW9ucy1saXN0IHtcbiAgLnRvcCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5iYWNrIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC5idG4uYnRuLXNtIHsgbWFyZ2luLXRvcDogLTRweDsgfVxuICAgICAgLnNlYXJjaC1iYXIge1xuICAgICAgICB3aWR0aDogMTgwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAucmVzb3VyY2UtdHlwZSB7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IDM3MHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5idG4tZ3JvdXAgeyBtYXJnaW4tbGVmdDogM3B4OyB9XG4gICAgLm5vLW1hcmdpbi10b3AgeyBtYXJnaW4tdG9wOiAwcHggfVxuICB9XG5cbiAgLmJvdHRvbSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAucGFnaW5hdGlvbiB7IG1hcmdpbjogMHB4OyB9XG4gIH1cblxuICAudGFibGUtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDEwMHB4KVwiO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dC5idG4uYnRuLXhzIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICAgIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7IG1hcmdpbi10b3A6IC0ycHg7IH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIC5mYS5mYS10aW1lcyB7IGNvbG9yOiBAYnJhbmQtZGFuZ2VyOyB9XG4gICAgfVxuXG4gICAgdHIudG90YWwge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAmLmludm9pY2VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjOGVhYjcxLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5iaWxscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oI2M3NjM3OSwgMjAlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCA+IC5leHBlY3RlZC1wYXltZW50LWRhdGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIC5yZXNldC1kYXRlIHsgbWFyZ2luLWxlZnQ6IDNweDsgfVxuICAgIH1cbiAgfVxufVxuIiwiI3RyZW5kcy1saXN0IHtcbiAgLnRvcCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGEuYmFjay1saW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNjBweClcIjtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQuYnRuLmJ0bi14cyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICBidXR0b24uYnRuLnJlc2V0LWRhdGUgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG5cbiAgICAubGlzdGluZyB7XG4gICAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiI3RyZW5kcy1hZGQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgbGVmdDogMTUlO1xuICAgIHdpZHRoOiA3MCU7XG4gICAgLndyYXBwZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICAgIC5mb3JtIHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwcHggMTBweDtcbiAgICAgID4gbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgPiAuYnRuIHtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAgIG1hcmdpbjogNHB4IDAgMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICAgIC5jYXNoLXByb2plY3Rpb24tY2hhcnQge1xuICAgICAgd2lkdGg6IDc0JTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3MuY3VycmVuY3kge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMge1xuICAuc2hvdy1zdGF0dXMge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgIC5mYS5mYS1pbmZvIHsgbWFyZ2luLXJpZ2h0OiAycHg7IH1cbiAgfVxuICAuc3RhdHVzLWJ0biB7XG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAmLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHsgY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAgICAgJi5mYS1jaGVjayB7IGNvbG9yOiBAZ3JlZW47IH1cbiAgICB9XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggN3B4IDVweCAwcHg7XG4gIH1cblxuICAucG9wb3ZlciB7XG4gICAgbWF4LXdpZHRoOiA1NTBweDtcbiAgICAuY29ubmVjdG9yIHtcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgJi5hZGQtc2VwZXJhdG9yIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7IH1cbiAgICB9XG4gICAgLnBvcG92ZXItY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAucG9wb3Zlci1mb290ZXIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBwYWRkaW5nOiA0cHggMTNweDtcbiAgICAgIHAge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgICAgJi5yZW1vdmUtc2VwZXJhdG9yIHsgYm9yZGVyOiAwOyB9XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogOHB4OyB9XG4gIC5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbn1cblxuI3N5bmMtYXBwcy1tb2RhbCB7XG4gIC5tb2RhbC1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4ICNjY2M7XG4gIH1cbiAgLm1vZGFsLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IDI4MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbiAgLm1vZGFsLWxpc3QtaXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIC5iYWRnZSB7IGZsb2F0OiByaWdodDsgfVxuICAgICYuc3VjY2VzcyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW47IH1cbiAgICAmLnBlbmRpbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5ydW5uaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAgICYuZXJyb3IgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgICAmLmZhaWxlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYudW5rbm93biAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZGlzY29ubmVjdGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG5cbiAgICAubWVzc2FnZSB7XG4gICAgICBwIHsgbWFyZ2luOiAwOyB9XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMzFweDtcbiAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICB9XG5cbiAgICAmLnN1Y2Nlc3MgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI1NSwgNTUsIDAuMDgpOyB9XG4gICAgJi5wZW5kaW5nIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMCwgMC4wOCk7IH1cbiAgICAmLnJ1bm5pbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYuZXJyb3IgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cbiAgICAmLmZhaWxlZCAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYudW5rbm93biAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZGlzY29ubmVjdGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG5cbiAgICAmLndpdGgtbWVzc2FnZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1vZGFsLWZvb3RlciB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG4gIC5mYSB7IHBhZGRpbmc6IDBweCAxMHB4OyB9XG4gIC5mYS5lcnJvciB7IGNvbG9yOiBAcmVkOyB9XG4gIC5mYS53YXJuIHsgY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAuZmEuc3VjY2VzcyB7IGNvbG9yOiBAZmx1cm9ncmVlbjsgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB7XG5cbiAgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIHRoLFxuICAgIHRkOm5vdCgubmVzdGVkLXRhYmxlKSB7XG4gICAgICBjb2xvcjogQG1lZGl1bWJsdWU7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuXG4gICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhbbmctY2xpY2tdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAjdGFibGUtbGF5b3V0IHtcbiAgICAmID4gdGhlYWQgdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgLmZvbnQoMTJweCw1MDAsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bSk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEBsaWdodGdyYXk7XG4gICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICB9XG5cbiAgICAubmVzdGVkLXRhYmxlIHtcbiAgICAgIGkuZmEgeyBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cbiAgICB9XG4gIH1cbn1cbiIsImNoYXJ0LXRocmVzaG9sZCB7XG4gIC5hdHRhY2gtcGFuZWwge1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAsIDEzMiwgMjI4LCAwLjE2KTtcblxuICAgICYgPiBkaXYge1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuXG4gICAgICAmLnRhcmdldCB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJvcmRlcjogMXB4IHdoaXRlO1xuICAgICAgcGFkZGluZzogM3B4O1xuXG4gICAgICAmW25hbWU9YW1vdW50XSB7XG4gICAgICAgIG1heC13aWR0aDogNzBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY3VycmVuY3kge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDJweDtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgJi5sb2FkaW5nIHtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIHtcbiAgLndpZGdldC1wb3B1cCgpO1xuICAubWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIHAgeyBwYWRkaW5nOiAwcHggMTBweDsgfVxuXG4gICAgYnV0dG9uLmJ0biB7IG1hcmdpbi10b3A6IDIwcHg7IH1cblxuICAgIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gIGltZyB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJi5wb3BvdmVyIC5wb3BvdmVyLXRpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIycHg7XG5cbiAgLnRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtc2l6ZSw2MDAsQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LWNvbG9yKTtcbiAgICBjdXJzb3I6IHRleHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIH1cblxuICAuZWRpdGFibGUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgLy8gb3RoZXJ3aXNlLCB3aGl0ZS1zcGFjZSBpcyBvdmVycmlkZW4gaW4gbW5vLWVudGVycHJpc2VcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLmVkaXRhYmxlLWNvbnRyb2xzIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgLmVkaXRhYmxlLWlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAvLyA2NXB4IGlzIC5lZGl0YWJsZS1idXR0b25zIHdpZHRoXG4gICAgICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA2NXB4KVwiO1xuICAgICAgICBwYWRkaW5nOiAwcHggM3B4O1xuICAgICAgfVxuXG4gICAgICAuZWRpdGFibGUtYnV0dG9ucyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGl0bGUtYmc7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAzMHB4KVwiO1xuICBtYXgtaGVpZ2h0OiB+XCJjYWxjKDEwMCUgLSAzMHB4KVwiO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBkb3R0ZWQgMXB4ICNCN0NEQ0U7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1mYW1pbHk6IFwiTGF0byBTZW1pYm9sZFwiLCBcIkxhdG9cIjtcblxuICB6LWluZGV4OiA0O1xuXG4gICY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cbiAgLmktaGVhZGVyIHtcbiAgICAuZmEgeyBmb250LXNpemU6IDE4cHg7IH1cbiAgICAuZmEtaW5mby1jaXJjbGUgeyBmbG9hdDogbGVmdDsgfVxuICAgIC5mYS10aW1lcy1jaXJjbGUgeyBjdXJzb3I6IHBvaW50ZXI7IGZsb2F0OiByaWdodDsgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkxhdG8gTWVkaXVtXCIsIFwiTGF0b1wiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC5pLWNvbnRlbnQge1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgZmxleDogMTtcblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICAua2V5IHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgfVxuXG4gICAgICAudmFsdWUgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcblxuICAudG9wLWJ1dHRvbnMtd3JhcHBlciB7XG4gICAgLnRvcC1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10b3AtYnV0dG9ucy1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgd2lkdGg6IDE3cHg7XG5cbiAgICAgICY6YWN0aXZlLCAmOmZvY3VzIHsgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4gICAgICAmLmJ0bi1pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogI0ZGQzkyODsgfVxuICAgICAgfVxuICAgICAgJi5idG4tZXhwb3J0IHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1yZWZyZXNoIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1lZGl0IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyLCAmLmVkaXQtbW9kZSB7IGNvbG9yOiBkYXJrZW4oQG1ncmVlbiwxMCUpOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1jbG9zZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiBAcGluazsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAudGltZS1wZXJpb2QtaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNBQkM0QzY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkge1xuICAucGFyYW0tc2VsZWN0b3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDkwcHg7XG5cbiAgICAudGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSB7XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMTE1cHg7XG5cbiAgICAudGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMge1xuICAubGVnZW5kID4gLnRpdGxlIHNwYW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Uge1xuICBoMyB7XG4gICAgLmxlZnQtdGhpbigzMHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDQ5MHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yOyB9XG4gICAgICB9XG4gICAgfVxuICAgIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4gICAgJi5uby1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLm5vLWRhdGEtYmxvY2sge1xuICAgIC5jZW50ZXItdGhpbigpO1xuICAgIG1hcmdpbjogMTVweCAwcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICB9XG5cbiAgLnJvdy5saW5lcy1ncm91cC5jYXNoIHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xuICB9XG59XG4iLCIvLyAtLS0gUmV1c2FibGUgd2lkZ2V0IHN0eWxlIG1peGluc1xuXG4vLyBQYXlyb2xsLVN1bW1hcnkgLSBQcm9maXQtYW5kLUxvc3Ncbi5kcmlsbC1kb3duLXdpZGdldCAoKSB7XG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA1NDBweDtcbiAgICAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgICAgIC5zZWxlY3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICAuc2Nyb2xsYWJsZShhdXRvKTtcbiAgICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5uby1lbGVtZW50IHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgfVxufVxuXG4vLyBUb3AgY3VzdG9tZXJzIHN1bW1hcnkgLSBTYWxlcyBjeWNsZS4uLlxuLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpIHtcbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA0MTBweDtcbiAgfVxuICAubGVnZW5kIHtcbiAgICBtYXgtaGVpZ2h0OiAyOHB4O1xuICB9XG59XG5cbi8vIEludm9pY2VzIGxpc3QgLSBzYWxlcyBsaXN0XG4uc2ltcGxlLWxpc3Qtd2lkZ2V0KCkge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIC5hbHRlcm5hdGUtYmcoKTtcbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBXb3JrZm9yY2UtU3VtbWFyeSAtIFNhbGFyaWVzLVN1bW1hcnlcbi5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCkge1xuICBoMy5sZWZ0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogNjlweDsgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGgzLnJpZ2h0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAucHJpY2Uge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDc1cHg7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXhzLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7IG1heC13aWR0aDogMzIwcHg7IH1cbiAgfVxufVxuXG4vLyBMZWFkcyBmdW5uZWwgLSBPcHBvcnR1bml0aWVzIGZ1bm5lbFxuLmZ1bm5lbC13aWRnZXQoKSB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAuZnVubmVsLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSA2MHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogQGltcGFjLWJpZy13aWRnZXQtc2l6ZSAtIDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIHtcbiAgLnBhcmFtLXNlbGVjdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDk0cHg7XG4gICAgY29sb3I6ICM2MjZkNmQ7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgcHJpbnQgeyBtYXgtd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIH1cblxuICAuYWRkLWFjY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNDBweDtcbiAgICBib3R0b206IDMwcHg7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIHNlbGVjdCB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7XG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJ1dHRvbi5jbG9zZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMTAzcHg7XG4gIH1cbiAgLnJvdyB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLXdpZGdldC1hY2NvdW50cy1jb21wYXJpc29uLWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICB9XG5cbiAgLmNvbXBhcmFibGUtZXJyb3IgaDUge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA4NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAubGVnZW5kIHsgbWF4LWhlaWdodDogMTI1cHg7IH1cbn1cblxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xufVxuXG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSB7XG4gIC5lZGl0IHtcbiAgICAuZWRpdC1wYW5lbC1zdHlsZSgpO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4O1xuICB9XG5cbiAgLmFjY291bnQtY2xhc3MtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMTFweDtcbiAgfVxuXG4gIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC53aWRnZXQtbGluZS5oZWFkZXIuc29ydGluZyAge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG59XG5cblxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQge1xuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDExNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2VzLXJldmVudWUge1xuICAubGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1saXZlLWJhbGFuY2Uge1xuICBoMyB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMXB4O1xuICB9XG5cbiAgLnN0YXRlbWVudC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAuYmFsYW5jZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNlbnRlcmVkIHtcbiAgICAuY2VudGVyLXNtYWxsKClcbiAgfVxuXG4gIC5oZWFkZXJzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc3BhY2VyIHtcbiAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICB9XG5cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuXG4gIC5jb21lLWJhY2stbGF0ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgLm5lZ2F0aXZlMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucm93LmxpbmVzLWdyb3VwLnByb2ZpdCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSB7XG4gIGgzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBheWFibGUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyB7XG4gIFxuICAubGVmdC1wYW5lbCB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgXG5cbiAgICAuc2VwYXJhdG9yIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICB3aWR0aDogNzUlO1xuICAgIH1cbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgfVxuICAgIC5tZW1iZXIgLnByaWNlIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgYnV0dG9uIHsgb3V0bGluZTogbm9uZTsgfVxuICB9XG5cbiAgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiB7XG4gICAgLm1lbWJlciB7XG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgLmxlZ2VuZCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5wcmljZSB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgfVxuICAgIC5zZXBhcmF0b3IgeyB3aWR0aDogMTAwJTsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICAuZGV0YWlscy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMDBweDsgfVxuICAgIC5zY3JvbGxhYmxlKCk7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAuZGV0YWlscy1jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuICAudGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3Qge1xuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgLmFsdGVybmF0ZS1iZygpO1xuICAgIH1cbiAgfVxuICAuZWRpdCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZXtcbiAgLmVtcGxveWVlLW5hbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYmFsYW5jZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDMzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxle1xuICAuZmMtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQ6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgLmZjLXRvb2xiYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuZmMtZGF5LWdyaWQsLmZjLXdpZGdldC1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiAxNDVweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0ge1xuICAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IHtcbiAgICAuZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA2M3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiAyM3B4O1xuICB9XG4gIC5jdXJyZW5jeSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAge1xuICAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSB7XG4gICAgLmV4cGFuZGFibGUtZmlsdGVyYWJsZS13aWRnZXQoKTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItdGltZXNoZWV0cyB7XG4gIC5jdXJyZW5jeSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTBweDtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICB9XG5cbiAgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgfVxuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgfVxuXG4gIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gIC5yaWdodC1jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIHtcbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAuYmxvY2sge1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICAgICYudG8tZGF0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgfVxuICAgICYudG8tYnJlYWtldmVuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICAudGl0bGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmcsIDEwJSk7XG4gICAgICB9XG4gICAgICAuZGVmaW5lLXRleHQge1xuICAgICAgICAuY2VudGVyLXRoaW4oKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTMwcHg7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCB7XG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzhweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIC5sb2FkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAxOTRweDsgfVxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMzBweDsgfVxuICAgIH1cbiAgICAubGVnZW5kIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gIH1cbiAgLnJvdy50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUge1xuICAuc2ltcGxlLXN1bW1hcnktd2lkZ2V0KCk7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI3NXB4O1xuICAgIC53aWRnZXQtbGluZS5tYWluIHtcbiAgICAgIC5zZWxlY3RhYmxlKCk7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGgge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1heC1oZWlnaHQ6IDQ5cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCB7XG4gIC5mdW5uZWwtd2lkZ2V0KCk7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IHtcbiAgLnNpbXBsZS1saXN0LXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDE3MHB4O1xuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIHtcbiAgLnZhbHVlLWNvbnRhaW5lciwgLm9wZXJhdG9yIHtcbiAgICAvLyBmbG9hdDogbGVmdDtcbiAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDg1cHg7XG4gIH1cblxuICAvLyAudmFsdWUtY29udGFpbmVyIHtcbiAgLy8gICB3aWR0aDogMjYlO1xuICAvLyB9XG5cbiAgLnZhbHVlLWNvbnRhaW5lciAudGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgcGFkZGluZzogMTBweCAwcHg7XG4gIH1cblxuICAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAvLyBib3JkZXI6IHNvbGlkIDFweCAjRTRFNEU0O1xuICAgIC8vIGJveC1zaGFkb3c6IDFweCAxcHggMXB4ICNDNUM1QzU7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5vcGVyYXRvciB7XG4gICAgLy8gQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IHBhZGRpbmctdG9wOiAzOHB4OyB9XG4gICAgcGFkZGluZy10b3A6IDM4cHg7XG4gICAgLy8gd2lkdGg6IDEwJTtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICB9XG5cbiAgLnZhbHVlcyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDI1cHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyB7XG5cbiAgLnNlbGVjdG9yIC5zZWxlY3Rvci13cmFwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgLmxlZ2VuZCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1heC1oZWlnaHQ6IDc3cHggIWltcG9ydGFudDtcblxuICAgIC5yb3cgeyBtYXJnaW46IDBweCAtNXB4OyAmPmRpdiB7IHBhZGRpbmc6IDBweCA1cHg7IH19XG5cbiAgICAudG90YWwge1xuICAgICAgY29sb3I6ICM1QjY2Njc7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMge1xuICAuc3RhdHMge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIC5zdGF0IHtcbiAgICAgIG1hcmdpbjogMTVweCAwcHggMTBweCAwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIHNwYW4udGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICAgIHNwYW4ubm9taW5hbCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB9XG4gICAgICBzcGFuLnZhcmlhdGlvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIFx0IG1heC1oZWlnaHQ6IDIxNXB4O1xuICAgIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciB7XG4gIGgzLnJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiA1NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmFuYWx5c2lzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNzVweDtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgaDMge1xuICAgICAgbWFyZ2luOiAxNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmZhLmZhLWluZm8tY2lyY2xlIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbiAgLnNlbGVjdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIHtcbiAgLnNlbGVjdG9yIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICBhIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYXJhbS1zZWxlY3RvciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICAud2lkZ2V0LWxpbmUuc3ViLWxpbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjsgfVxuXG4gICAgLy8gV2lsbCBhbGxvdyB0aGUgcGFyYW1zIHNlbGVjdG9ycyB0byBiZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBjb250YWluZXIgKHdpdGhvdXQgYmVpbmcgY3V0IG9uIHRoZSByaWdodClcbiAgICAucm93ID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyB7XG4gIC5vcHBzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMTk1cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgLnRpbGUge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIH1cbiAgICAgIC5tYWluLXRleHQge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xuICAgICAgfVxuICAgICAgJi5maXJzdCB7XG4gICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDExMCwgNjUpO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2Vjb25kIHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRlOWI2O1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufSIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIHtcblxuICAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtbGluay1jb2xvciwgMTAlKTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgJi5mb2N1cywgJi5hY3RpdmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7IH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyB7XG4gIC5hdHRhY2gta3BpIHtcbiAgICBwYWRkaW5nOiA4cHggNXB4O1xuXG4gICAgZm9ybSAucm93IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLmF0dGFjaC1rcGktZm9ybSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgfVxuXG4gICAgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDJweDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtLmF0dGFjaC1rcGktZm9ybSB7XG4gICAgICBpbnB1dC5hdHRhY2gtdGFyZ2V0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXJyb3ItbWVzc2FnZXMge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgfVxuICB9XG5cbiAgLmF0dGFjaGVkLWtwaXMge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcblxuICAgIC5hdHRhY2hlZC1rcGktbmFtZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAuYWxlcnRzLWNvbmZpZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAbWJsdWU7XG5cbiAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgfVxuICAgICAgLmVkaXQtYXR0YWNoZWQta3BpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBpIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAbWJsdWU7XG4gICAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucmVtb3ZlLWF0dGFjaGVkLWtwaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBicmFuZC1kYW5nZXI7XG4gICAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIHtcbiAgLnJvdyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciB7XG4gIGg1IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gIGJ1dHRvbi5idG4uYnRuLXNtIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAmLmRhdGUtYnV0dG9uIHsgbWFyZ2luOiAwcHggNXB4OyB9XG4gICAgJi5idG4tZGFuZ2VyIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICYuYnRuLWluZm8geyBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgfVxuXG4gIC50b29sdGlwLWlubmVyIHsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuICAuZHJvcGRvd24tbWVudSA+IGxpID4gZGl2ID4gdGFibGUgeyBvdXRsaW5lOiBub25lOyB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciB7XG4gIG1heC1oZWlnaHQ6IDcwcHg7XG5cbiAgW2NvbW1vbi10aW1lLXBlcmlvZC1pbmZvXSB7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgfVxuXG4gIC5vcHRpb25zIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmU2ZTY7XG4gICAgLmZvbnQoQGltcGFjLXdpZGdldC1oaXN0LXRleHQtc2l6ZSw1MDAsQGltcGFjLXdpZGdldC1oaXN0LXRleHQtY29sb3IpO1xuICAgIGEge1xuICAgICAgLmZvbnQoQGltcGFjLXdpZGdldC1oaXN0LXRleHQtc2l6ZSw1MDAsQGltcGFjLXdpZGdldC1oaXN0LXRleHQtY29sb3IpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmFycm93LWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xNHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICAmLnJpZ2h0IHtcbiAgICAgIGxlZnQ6IDQ2cHg7XG4gICAgfVxuICAgICYubGVmdCB7XG4gICAgICBsZWZ0OiAtMzBweDtcbiAgICB9XG4gICAgLmFycm93LWJvcmRlciB7XG4gICAgICBib3JkZXItdG9wOiAxNHB4IHNvbGlkICNlNmU2ZTY7XG4gICAgICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG4gICAgLmFycm93IHtcbiAgICAgIGJvcmRlci10b3A6IDE0cHggc29saWQgQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDEycHg7XG4gICAgICB3aWR0aDogMHB4O1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5saW1pdC1lbnRyaWVzIHtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGltaXQtZW50cmllcy1jb2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG5cbiAgYS5vcHRpb24ge1xuICAgICYuYmFkZ2Uge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yO1xuICAgIH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIHtcbiAgLm9mZnNldC12YWx1ZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuXG4gIC5vZmZzZXQtdmFsdWUgLmZhLXRyYXNoLW8ge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgaW5wdXQgeyB3aWR0aDogNzUlOyB9XG4gIGJ1dHRvbiB7IHdpZHRoOiAzMHB4OyB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbiAgICAgIC5hbHRlcm5hdGUtYmcoI2YzZjRmNCk7XG4gICAgICAuZmEge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmLmZhLXRvZ2dsZS1vbiwgJi5mYS1jaGVjay1jaXJjbGUge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJi5mYS10b2dnbGUtb2ZmLCAmLmZhLWNpcmNsZS10aGluIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICYuY2xhc3NpYyB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbjogMHB4IDBweCA1cHggMHB4O1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAub3B0aW9ucy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgei1pbmRleDogOTk5O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIC5ib3gtc2hhZG93KHJnYigwLCAwLCAwKSAwcHggM3B4IDE1cHggLTNweCk7XG5cbiAgICAucGFyYW0tc2VsZWN0b3ItbGFiZWwge1xuICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgIC5mb250KGluaGVyaXQsNTAwLGJsYWNrKTtcbiAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBsaW5lLWhlaWdodDogMS45O1xuICAgIH1cbiAgICAucGFyYW0tc2VsZWN0b3ItbGFiZWw6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBsaWdodGdyYXksNSUpO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yLDUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgcGFkZGluZzogMnB4IDBweDtcbiAgaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbiAgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgLnBhcmFtZXRlciB7XG4gICAgbWFyZ2luOiAwcHggM3B4IDNweCAwcHg7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIG1hcmdpbjogMHB4IC0zcHggMHB4IDNweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICAuYmFkZ2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICB9XG5cbiAgICAmLnVuY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnO1xuICAgICAgLmJhZGdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciB7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCNmM2Y0ZjQpO1xuICAgICAgLmZhIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24sICYuZmEtY2hlY2stY2lyY2xlIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuZmEtdG9nZ2xlLW9mZiwgJi5mYS1jaXJjbGUtdGhpbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnBheXJvbGwge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xuICAgICAgLmFsdGVybmF0ZS1iZygjZjNmNGY0KTtcbiAgICAgIC5mYSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuZmEtdG9nZ2xlLW9mZiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuXG4gIC5idG4uYnRuLWRlZmF1bHQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzBweDtcbiAgfVxuXG4gIC50YWctbGluZXMtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcblxuICAgIC50YWctbGluZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgIC50YWdzLWNvbCB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuICAgICAgdGFncy1pbnB1dCB7XG4gICAgICAgIC50YWdzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xuICAgICAgICAgIC50YWctaXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNzlhMmJiO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaG9zdCB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHtcbiAgcGFkZGluZzogMHB4IDVweDtcblxuICBzZWxlY3Qge1xuICAgIGhlaWdodDogMjJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBcbiAgJiA+IC5yb3cge1xuICAgIG1hcmdpbjogMHB4IC01cHggN3B4IC01cHg7XG4gICAgJiA+IGRpdiB7XG4gICAgICBwYWRkaW5nOiAwcHggNXB4O1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAuc3ViLXNldHRpbmcgeyBwYWRkaW5nOiA1cHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGkge1xuICAgIGNvbG9yOiBzaWx2ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICYucmVkdWNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgfVxuICAgICYuZXhwYW5kIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuZGF0YS1jb250YWluZXIge1xuICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmxlZnQtcGFuZWwge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gICNjYXNoLWJhbGFuY2UtbGVnZW5kIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIC5ncm91cC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LW1lbnVzLWhvdmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHhcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHsgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAxODBweClcIjtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAvLyBIaWdoY2hhcnQgY29udGFpbmVyXG4gICAgLmNhc2gtYmFsYW5jZS1jaGFydCB7XG4gICAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDUwcHgpXCI7XG4gIH1cblxuICAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSB7XG4gICAgcmVjdC5oaWdoY2hhcnRzLXBvaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICB3aWR0aDogMTEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGVzLXBpY2tlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICB0cmFuc2FjdGlvbnMtbGlzdCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IHtcbiAgLy8gY29tcG9uZW50IHNwZWNpZmljIHN0eWxlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxufVxuIl19 */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLWNyZWF0ZS9kYXNoYm9hcmQtY3JlYXRlLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZWxlY3Rvci9kYXNoYm9hcmQtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3Rvci9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yLmxlc3MiLCJjb21wb25lbnRzL2twaXMtYmFyL2twaXMtYmFyLmxlc3MiLCJzdHlsZXNoZWV0cy9pbXBhYy1tYXRlcmlhbC5sZXNzIiwiY29tcG9uZW50cy9rcGkva3BpLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldC93aWRnZXQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RhdGEtbm90LWZvdW5kL2RhdGEtbm90LWZvdW5kLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi9kdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QvZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtYWRkL3RyYW5zYWN0aW9ucy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyYW5zYWN0aW9ucy1saXN0L3RyYW5zYWN0aW9ucy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmVuZHMtYWRkL3RyZW5kcy1hZGQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL3RyZW5kcy1saXN0L3RyZW5kcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC1zZXR0aW5ncy9jdXJyZW5jeS9jdXJyZW5jeS5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3Mvc3luYy1hcHBzL3N5bmMtYXBwcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWxheW91dHMvdGFibGUvdGFibGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY2hhcnQtdGhyZXNob2xkL2NoYXJ0LXRocmVzaG9sZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jb25maXJtLW1vZGFsL2NvbmZpcm0tbW9kYWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY3VycmVuY3ktY29udmVyc2lvbnMvY3VycmVuY3ktY29udmVyc2lvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vaW5mby1wYW5lbC9pbmZvLXBhbmVsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2VkaXRhYmxlLXRpdGxlL2VkaXRhYmxlLXRpdGxlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RpbWUtcGVyaW9kLWluZm8vdGltZS1wZXJpb2QtaW5mby5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi90b3AtYnV0dG9ucy90b3AtYnV0dG9ucy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeS9hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtc3VtbWFyeS9hY2NvdW50cy1hc3NldHMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcy9hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1iYWxhbmNlL2FjY291bnRzLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1iYWxhbmNlLXNoZWV0L2FjY291bnRzLWJhbGFuY2Utc2hlZXQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXN1bW1hcnkvYWNjb3VudHMtY2FzaC1zdW1tYXJ5Lmxlc3MiLCJzdHlsZXNoZWV0cy93aWRnZXQtbWFzdGVyLXN0eWxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNvbXBhcmlzb24vYWNjb3VudHMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24vYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlL2FjY291bnRzLWV4cGVuc2VzLXJldmVudWUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1saXZlLWJhbGFuY2UvYWNjb3VudHMtbGl2ZS1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlL2FjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXByb2ZpdC1hbmQtbG9zcy9hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1yYXRpb3MvYWNjb3VudHMtcmF0aW9zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWUtZGV0YWlscy9oci1lbXBsb3llZS1kZXRhaWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWVzLWxpc3QvaHItZW1wbG95ZWVzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1sZWF2ZXMtYmFsYW5jZS9oci1sZWF2ZXMtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWxlYXZlcy1zY2hlZHVsZS9oci1sZWF2ZXMtc2NoZWR1bGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1wYXlyb2xsLXN1bW1hcnkvaHItcGF5cm9sbC1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc2FsYXJpZXMtc3VtbWFyeS9oci1zYWxhcmllcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci13b3JrZm9yY2Utc3VtbWFyeS9oci13b3JrZm9yY2Utc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXRpbWVzaGVldHMvaHItdGltZXNoZWV0cy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMvaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLXN1bW1hcnkvaW52b2ljZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLWxpc3QvaW52b2ljZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWFnZWQvc2FsZXMtYWdlZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN1c3RvbWVyLWRldGFpbHMvc2FsZXMtY3VzdG9tZXItZGV0YWlscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWJyZWFrLWV2ZW4vc2FsZXMtYnJlYWstZXZlbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWNvbXBhcmlzb24vc2FsZXMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWZvcmVjYXN0L3NhbGVzLWZvcmVjYXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtZ3Jvd3RoL3NhbGVzLWdyb3d0aC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN5Y2xlL3NhbGVzLWN5Y2xlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbGVhZHMtZnVubmVsL3NhbGVzLWxlYWRzLWZ1bm5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxlYWRzLWxpc3Qvc2FsZXMtbGVhZHMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxpc3Qvc2FsZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW5ldC1zYWxlcy9zYWxlcy1uZXQtc2FsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzL3NhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1udW1iZXItb2YtbGVhZHMvc2FsZXMtbnVtYmVyLW9mLWxlYWRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtcGVyZm9ybWFuY2Uvc2FsZXMtcGVyZm9ybWFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbC9zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXNlZ21lbnRlZC10dXJub3Zlci9zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1zdW1tYXJ5L3NhbGVzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3AtY3VzdG9tZXJzL3NhbGVzLXRvcC1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2FjY291bnQvYWNjb3VudC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2FjY291bnRpbmctYmVoYXZpb3VyL2FjY291bnRpbmctYmVoYXZpb3VyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYXR0YWNoLWtwaXMvYXR0YWNoLWtwaXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9ib2x0LWFjY291bnQvYm9sdC1hY2NvdW50Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvY2hhcnQtZmlsdGVycy9jaGFydC1maWx0ZXJzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvZGF0ZXMtcGlja2VyL2RhdGVzLXBpY2tlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2hpc3QtbW9kZS9oaXN0LW1vZGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9saW1pdC1lbnRyaWVzL2xpbWl0LWVudHJpZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9vZmZzZXRzL29mZnNldHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9vcmdhbml6YXRpb25zL29yZ2FuaXphdGlvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbS1zZWxlY3Rvci9wYXJhbS1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtcy1jaGVja2JveGVzL3BhcmFtcy1jaGVja2JveGVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW1zLXBpY2tlci9wYXJhbXMtcGlja2VyLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGF5cm9sbC9wYXlyb2xsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvc291cmNlLXNlbGVjdG9yL3NvdXJjZS1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RhZy1maWx0ZXIvdGFnLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RpbWUtcGVyaW9kL3RpbWUtcGVyaW9kLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvd2lkdGgvd2lkdGgubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1sYXlvdXRzL2N1c3RvbS9hY2NvdW50cy1jYXNoLWJhbGFuY2UvYWNjb3VudHMtY2FzaC1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtbGF5b3V0cy9jdXN0b20vYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uL2FjY291bnRzLWNhc2gtcHJvamVjdGlvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWxheW91dHMvY3VzdG9tL2FjY291bnRzLWludm9pY2VzLWxpc3QvYWNjb3VudHMtaW52b2ljZXMtbGlzdC5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FBQ0Y7OztHQUdHO0FBQ0g7Ozs7R0FJRztBQUNILDRFQUE0RTtBQ0o1RTtFQUNFLHdCQUFBO0VBQ0EsMkJBQUE7RUFDQSwrQkFBQTtDRE1EO0FDQ0Q7RUFDRSxVQUFBO0NEQ0Q7QUNZRDs7Ozs7Ozs7Ozs7OztFQWFFLGVBQUE7Q0RWRDtBQ2tCRDs7OztFQUlFLHNCQUFBO0VBQ0EseUJBQUE7Q0RoQkQ7QUN3QkQ7RUFDRSxjQUFBO0VBQ0EsVUFBQTtDRHRCRDtBQzhCRDs7RUFFRSxjQUFBO0NE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QUVqT21DO0VBQVcsaUJBQUE7Q0ZvTzlDO0FFbk9tQztFQUFXLGlCQUFBO0NGc085QztBRXJPbUM7RUFBVyxpQkFBQTtDRndPOUM7QUV2T21DO0VBQVcsaUJBQUE7Q0YwTzlDO0FFek9tQztFQUFXLGlCQUFBO0NGNE85QztBRTNPbUM7RUFBVyxpQkFBQTtDRjhPOUM7QUU3T21DO0VBQVcsaUJBQUE7Q0ZnUDlDO0FFL09tQztFQUFXLGlCQUFBO0NGa1A5QztBRWpQbUM7RUFBVyxpQkFBQTtDRm9QOUM7QUVuUG1DO0VBQVcsaUJBQUE7Q0ZzUDlDO0FFclBtQztFQUFXLGlCQUFBO0NGd1A5QztBRXZQbUM7RUFBVyxpQkFBQTtDRjBQOUM7QUV6UG1DO0VBQVcsaUJBQUE7Q0Y0UDlDO0FFM1BtQztFQUFXLGlCQUFBO0NGOFA5QztBRTdQbUM7RUFBVyxpQkFBQTtDRmdROUM7QUUvUG1DO0VBQVcsaUJBQUE7Q0ZrUTlDO0FFalFtQztFQUFXLGlCQUFBO0NGb1E5QztBRW5RbUM7RUFBVyxpQkFBQTtDRnNROUM7QUVyUW1DO0VBQVcsaUJBQUE7Q0Z3UTlDO0FFdlFtQztFQUFXLGlCQUFBO0NGMFE5QztBRXpRbUM7RUFBVyxpQkFBQTtDRjRROUM7QUUzUW1DO0VBQVcsaUJBQUE7Q0Y4UTlDO0FFN1FtQztFQUFXLGlCQUFBO0NGZ1I5QztBRS9RbUM7RUFBVyxpQkFBQTtDRmtSOUM7QUVqUm1DO0VBQVcsaUJBQUE7Q0ZvUjlDO0FFblJtQztFQUFXLGlCQUFBO0NGc1I5QztBRXJSbUM7RUFBVyxpQkFBQTtDRndSOUM7QUV2Um1DO0VBQVcsaUJBQUE7Q0YwUjlDO0FFelJtQztFQUFXLGlCQUFBO0NGNFI5QztBRTNSbUM7RUFBVyxpQkFBQTtDRjhSOUM7QUU3Um1DO0VBQVcsaUJBQUE7Q0ZnUzlDO0FFL1JtQztFQUFXLGlCQUFBO0NGa1M5QztBRWpTbUM7RUFBVyxpQkFBQTtDRm9TOUM7QUVuU21DO0VBQVcsaUJBQUE7Q0ZzUzlDO0FFclNtQztFQUFXLGlCQUFBO0NGd1M5QztBRXZTbUM7RUFBVyxpQkFBQTtDRjBTOUM7QUV6U21DO0VBQVcsaUJBQUE7Q0Y0UzlDO0FFM1NtQztFQUFXLGlCQUFBO0NGOFM5QztBRTdTbUM7RUFBVyxpQkFBQTtDRmdUOUM7QUUvU21DO0VBQVcsaUJBQUE7Q0ZrVDlDO0FFalRtQztFQUFXLGlCQUFBO0NGb1Q5QztBRW5UbUM7RUFBVyxpQkFBQTtDRnNUOUM7QUVyVG1DO0VBQVcsaUJBQUE7Q0Z3VDlDO0FFdlRtQztFQUFXLGlCQUFBO0NGMFQ5QztBRXpUbUM7RUFBVyxpQkFBQTtDRjRUOUM7QUUzVG1DO0VBQVcsaUJBQUE7Q0Y4VDlDO0FFN1RtQztFQUFXLGlCQUFBO0NGZ1U5QztBRS9UbUM7RUFBVyxpQkFBQTtDRmtVOUM7QUVqVW1DO0VBQVcsaUJBQUE7Q0ZvVTlDO0FFblVtQztFQUFXLGlCQUFBO0NGc1U5QztBRXJVbUM7RUFBVyxpQkFBQTtDRndVOUM7QUV2VW1DO0VBQVcsaUJBQUE7Q0YwVTlDO0FFelVtQztFQUFXLGlCQUFBO0NGNFU5QztBRTNVbUM7RUFBVyxpQkFBQTtDRjhVOUM7QUU3VW1DO0VBQVcsaUJBQUE7Q0ZnVjlDO0FFL1VtQztFQUFXLGlCQUFBO0NGa1Y5QztBRWpWbUM7RUFBVyxpQkFBQTtDRm9WOUM7QUVuVm1DO0VBQVcsaUJBQUE7Q0ZzVjlDO0FFclZtQztFQUFXLGlCQUFBO0NGd1Y5QztBRXZWbUM7RUFBVyxpQkFBQTtDRjBWOUM7QUV6Vm1DO0VBQVcsaUJBQUE7Q0Y0VjlDO0FFM1ZtQztFQUFXLGlCQUFBO0NGOFY5QztBRTdWbUM7RUFBVyxpQkFBQTtDRmdXOUM7QUUvVm1DO0VBQVcsaUJBQUE7Q0ZrVzlDO0FFaldtQztFQUFXLGlCQUFBO0NGb1c5QztBRW5XbUM7RUFBVyxpQkFBQTtDRnNXOUM7QUVyV21DO0VBQVcsaUJBQUE7Q0Z3VzlDO0FFdldtQztFQUFXLGlCQUFBO0NGMFc5QztBRXpXbUM7RUFBVyxpQkFBQTtDRjRXOUM7QUUzV21DO0VBQVcsaUJBQUE7Q0Y4VzlDO0FFN1dtQztFQUFXLGlCQUFBO0NGZ1g5QztBRS9XbUM7RUFBVyxpQkFBQTtDRmtYOUM7QUVqWG1DO0VBQVcsaUJBQUE7Q0ZvWDlDO0FFblhtQztFQUFXLGlCQUFBO0NGc1g5QztBRXJYbUM7RUFBVyxpQkFBQTtDRndYOUM7QUV2WG1DO0VBQVcsaUJBQUE7Q0YwWDlDO0FFelhtQztFQUFXLGlCQUFBO0NGNFg5QztBRTNYbUM7RUFBVyxpQkFBQTtDRjhYOUM7QUU3WG1DO0VBQVcsaUJBQUE7Q0ZnWTlDO0FFL1htQztFQUFXLGlCQUFBO0NGa1k5QztBRWpZbUM7RUFBVyxpQkFBQTtDRm9ZOUM7QUVuWW1DO0VBQVcsaUJBQUE7Q0ZzWTlDO0FFclltQztFQUFXLGlCQUFBO0NGd1k5QztBRXZZbUM7RUFBVyxpQkFBQTtDRjBZOUM7QUV6WW1DO0VBQVcsaUJBQUE7Q0Y0WTlDO0FFM1ltQztFQUFXLGlCQUFBO0NGOFk5QztBRTdZbUM7RUFBVyxpQkFBQTtDRmdaOUM7QUUvWW1DO0VBQVcsaUJBQUE7Q0ZrWjlDO0FFalptQztFQUFXLGlCQUFBO0NGb1o5QztBRW5abUM7RUFBVyxpQkFBQTtDRnNaOUM7QUVyWm1DO0VBQVcsaUJBQUE7Q0Z3WjlDO0FFdlptQztFQUFXLGlCQUFBO0NGMFo5QztBRXpabUM7RUFBVyxpQkFBQTtDRjRaOUM7QUUzWm1DO0VBQVcsaUJBQUE7Q0Y4WjlDO0FFN1ptQztFQUFXLGlCQUFBO0NGZ2E5QztBRS9abUM7RUFBVyxpQkFBQTtDRmthOUM7QUVqYW1DO0VBQVcsaUJBQUE7Q0ZvYTlDO0FFbmFtQztFQUFXLGlCQUFBO0NGc2E5QztBRXJhbUM7RUFBVyxpQkFBQTtDRndhOUM7QUV2YW1DO0VBQVcsaUJBQUE7Q0YwYTlDO0FFemFtQztFQUFXLGlCQUFBO0NGNGE5QztBRTNhbUM7RUFBVyxpQkFBQTtDRjhhOUM7QUU3YW1DO0VBQVcsaUJBQUE7Q0ZnYjlDO0FFL2FtQztFQUFXLGlCQUFBO0NGa2I5QztBRWpibUM7RUFBVyxpQkFBQTtDRm9iOUM7QUVuYm1DO0VBQVcsaUJBQUE7Q0ZzYjlDO0FFcmJtQztFQUFXLGlCQUFBO0NGd2I5QztBRXZibUM7RUFBVyxpQkFBQTtDRjBiOUM7QUV6Ym1DO0VBQVcsaUJBQUE7Q0Y0YjlDO0FFM2JtQztFQUFXLGlCQUFBO0NGOGI5QztBRTdibUM7RUFBVyxpQkFBQTtDRmdjOUM7QUUvYm1DO0VBQVcsaUJBQUE7Q0ZrYzlDO0FFamNtQztFQUFXLGlCQUFBO0NGb2M5QztBRW5jbUM7RUFBVyxpQkFBQTtDRnNjOUM7QUVyY21DO0VBQVcsaUJBQUE7Q0Z3YzlDO0FFdmNtQztFQUFXLGlCQUFBO0NGMGM5QztBRXpjbUM7RUFBVyxpQkFBQTtDRjRjOUM7QUUzY21DO0VBQVcsaUJBQUE7Q0Y4YzlDO0FFN2NtQztFQUFXLGlCQUFBO0NGZ2Q5QztBRS9jbUM7RUFBVyxpQkFBQTtDRmtkOUM7QUVqZG1DO0VBQVcsaUJBQUE7Q0ZvZDlDO0FFbmRtQztFQUFXLGlCQUFBO0NGc2Q5QztBRXJkbUM7RUFBVyxpQkFBQTtDRndkOUM7QUV2ZG1DO0VBQVcsaUJBQUE7Q0YwZDlDO0FFemRtQztFQUFXLGlCQUFBO0NGNGQ5QztBRTNkbUM7RUFBVyxpQkFBQTtDRjhkOUM7QUU3ZG1DO0VBQVcsaUJBQUE7Q0ZnZTlDO0FFL2RtQztFQUFXLGlCQUFBO0NGa2U5QztBRWplbUM7RUFBVyxpQkFBQTtDRm9lOUM7QUVuZW1DO0VBQVcsaUJBQUE7Q0ZzZTlDO0FFcmVtQztFQUFXLGlCQUFBO0NGd2U5QztBRXZlbUM7RUFBVyxpQkFBQTtDRjBlOUM7QUV6ZW1DO0VBQVcsaUJBQUE7Q0Y0ZTlDO0FFM2VtQztFQUFXLGlCQUFBO0NGOGU5QztBRTdlbUM7RUFBVyxpQkFBQTtDRmdmOUM7QUUvZW1DO0VBQVcsaUJBQUE7Q0ZrZjlDO0FFamZtQztFQUFXLGlCQUFBO0NGb2Y5QztBRW5mbUM7RUFBVyxpQkFBQTtDRnNmOUM7QUVyZm1DO0VBQVcsaUJBQUE7Q0Z3ZjlDO0FFdmZtQztFQUFXLGlCQUFBO0NGMGY5QztBRXpmbUM7RUFBVyxpQkFBQTtDRjRmOUM7QUUzZm1DO0VBQVcsaUJBQUE7Q0Y4ZjlDO0FFN2ZtQztFQUFXLGlCQUFBO0NGZ2dCOUM7QUUvZm1DO0VBQVcsaUJBQUE7Q0ZrZ0I5QztBRWpnQm1DO0VBQVcsaUJBQUE7Q0ZvZ0I5QztBRW5nQm1DO0VBQVcsaUJBQUE7Q0ZzZ0I5QztBRXJnQm1DO0VBQVcsaUJBQUE7Q0Z3Z0I5QztBRXZnQm1DO0VBQVcsaUJBQUE7Q0YwZ0I5QztBRXpnQm1DO0VBQVcsaUJBQUE7Q0Y0Z0I5QztBRTNnQm1DO0VBQVcsaUJBQUE7Q0Y4Z0I5QztBRTdnQm1DO0VBQVcsaUJBQUE7Q0ZnaEI5QztBRS9nQm1DO0VBQVcsaUJBQUE7Q0ZraEI5QztBRWpoQm1DO0VBQVcsaUJBQUE7Q0ZvaEI5QztBRW5oQm1DO0VBQVcsaUJBQUE7Q0ZzaEI5QztBRXJoQm1DO0VBQVcsaUJBQUE7Q0Z3aEI5QztBRXZoQm1DO0VBQVcsaUJBQUE7Q0YwaEI5QztBRXpoQm1DO0VBQVcsaUJBQUE7Q0Y0aEI5QztBRTNoQm1DO0VBQVcsaUJBQUE7Q0Y4aEI5QztBRTdoQm1DO0VBQVcsaUJBQUE7Q0ZnaUI5QztBRS9oQm1DO0VBQVcsaUJBQUE7Q0ZraUI5QztBRWppQm1DO0VBQVcsaUJBQUE7Q0ZvaUI5QztBRW5pQm1DO0VBQVcsaUJBQUE7Q0ZzaUI5QztBRXJpQm1DO0VBQVcsaUJBQUE7Q0Z3aUI5QztBRXZpQm1DO0VBQVcsaUJBQUE7Q0YwaUI5QztBRXppQm1DO0VBQVcsaUJBQUE7Q0Y0aUI5QztBRTNpQm1DO0VBQVcsaUJBQUE7Q0Y4aUI5QztBRTdpQm1DO0VBQVcsaUJBQUE7Q0ZnakI5QztBRS9pQm1DO0VBQVcsaUJBQUE7Q0ZrakI5QztBRWpqQm1DO0VBQVcsaUJBQUE7Q0ZvakI5QztBRW5qQm1DO0VBQVcsaUJBQUE7Q0ZzakI5QztBRXJqQm1DO0VBQVcsaUJBQUE7Q0Z3akI5QztBRXZqQm1DO0VBQVcsaUJBQUE7Q0YwakI5QztBRXpqQm1DO0VBQVcsaUJBQUE7Q0Y0akI5QztBRTNqQm1DO0VBQVcsaUJBQUE7Q0Y4akI5QztBRTdqQm1DO0VBQVcsaUJBQUE7Q0Zna0I5QztBRS9qQm1DO0VBQVcsaUJBQUE7Q0Zra0I5QztBRWprQm1DO0VBQVcsaUJBQUE7Q0Zva0I5QztBRW5rQm1DO0VBQVcsaUJBQUE7Q0Zza0I5QztBRXJrQm1DO0VBQVcsaUJBQUE7Q0Z3a0I5QztBRS9qQm1DO0VBQVcsaUJBQUE7Q0Zra0I5QztBRWprQm1DO0VBQVcsaUJBQUE7Q0Zva0I5QztBRW5rQm1DO0VBQVcsaUJBQUE7Q0Zza0I5QztBRXJrQm1DO0VBQVcsaUJBQUE7Q0Z3a0I5QztBRXZrQm1DO0VBQVcsaUJBQUE7Q0Ywa0I5QztBRXprQm1DO0VBQVcsaUJBQUE7Q0Y0a0I5QztBRTNrQm1DO0VBQVcsaUJBQUE7Q0Y4a0I5QztBRTdrQm1DO0VBQVcsaUJBQUE7Q0ZnbEI5QztBRS9rQm1DO0VBQVcsaUJBQUE7Q0ZrbEI5QztBRWpsQm1DO0VBQVcsaUJBQUE7Q0ZvbEI5QztBRW5sQm1DO0VBQVcsaUJBQUE7Q0ZzbEI5QztBRXJsQm1DO0VBQVcsaUJBQUE7Q0Z3bEI5QztBRXZsQm1DO0VBQVcsaUJBQUE7Q0YwbEI5QztBRXpsQm1DO0VBQVcsaUJBQUE7Q0Y0bEI5QztBRTNsQm1DO0VBQVcsaUJBQUE7Q0Y4bEI5QztBRTdsQm1DO0VBQVcsaUJBQUE7Q0ZnbUI5QztBRS9sQm1DO0VBQVcsaUJBQUE7Q0ZrbUI5QztBRWptQm1DO0VBQVcsaUJBQUE7Q0ZvbUI5QztBRW5tQm1DO0VBQVcsaUJBQUE7Q0ZzbUI5QztBRXJtQm1DO0VBQVcsaUJBQUE7Q0Z3bUI5QztBRXZtQm1DO0VBQVcsaUJBQUE7Q0YwbUI5QztBRXptQm1DO0VBQVcsaUJBQUE7Q0Y0bUI5QztBRTNtQm1DO0VBQVcsaUJBQUE7Q0Y4bUI5QztBRTdtQm1DO0VBQVcsaUJBQUE7Q0ZnbkI5QztBRS9tQm1DO0VBQVcsaUJBQUE7Q0ZrbkI5QztBRWpuQm1DO0VBQVcsaUJBQUE7Q0ZvbkI5QztBRW5uQm1DO0VBQVcsaUJBQUE7Q0ZzbkI5QztBRXJuQm1DO0VBQVcsaUJBQUE7Q0Z3bkI5QztBRXZuQm1DO0VBQVcsaUJBQUE7Q0YwbkI5QztBRXpuQm1DO0VBQVcsaUJBQUE7Q0Y0bkI5QztBRTNuQm1DO0VBQVcsaUJBQUE7Q0Y4bkI5QztBRTduQm1DO0VBQVcsaUJB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UDBuQ1Q7QU96bkNEOztFQUFVLGdCQUFBO0NQNm5DVDtBTzVuQ0Q7O0VBQVUsZ0JBQUE7Q1Bnb0NUO0FPL25DRDs7RUFBVSxnQkFBQTtDUG1vQ1Q7QU9sb0NEOztFQUFVLGdCQUFBO0NQc29DVDtBT3JvQ0Q7O0VBQVUsZ0JBQUE7Q1B5b0NUO0FPbm9DRDtFQUNFLGlCQUFBO0NQcW9DRDtBT2xvQ0Q7RUFDRSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtDUG9vQ0Q7QU9sb0NDO0VBMk9GO0lBMU9JLGdCQUFBO0dQcW9DRDtDQUNGO0FPN25DRDs7RUFFRSxlQUFBO0NQK25DRDtBTzVuQ0Q7O0VBRUUsMEJBQUE7RUFDQSxjQUFBO0NQOG5DRDtBTzFuQ0Q7RUFBdUIsaUJBQUE7Q1A2bkN0QjtBTzVuQ0Q7RUFBdUIsa0JBQUE7Q1ArbkN0QjtBTzluQ0Q7RUFBdUIsbUJBQUE7Q1Bpb0N0QjtBT2hvQ0Q7RUFBdUIsb0JBQUE7Q1Btb0N0QjtBT2xvQ0Q7RUFBdUIsb0JBQUE7Q1Bxb0N0QjtBT2xvQ0Q7RUFBdUIsMEJBQUE7Q1Bxb0N0QjtBT3BvQ0Q7RUFBdUIsMEJBQUE7Q1B1b0N0QjtBT3RvQ0Q7RUFBdUIsMkJBQUE7Q1B5b0N0QjtBT3RvQ0Q7RUFDRSxlQUFBO0NQd29DRDtBT3RvQ0Q7RUNyR0UsZUFBQTtDUjh1Q0Q7QVE3dUNDOztFQUVFLGVBQUE7Q1IrdUNIO0FPMW9DRDtFQ3hHRSxlQUFBO0NScXZDRDtBUXB2Q0M7O0VBRUUsZUFBQTtDUnN2Q0g7QU85b0NEO0VDM0dFLGVBQUE7Q1I0dkNEO0FRM3ZDQzs7RUFFRSxlQUFBO0NSNnZDSDtBT2xwQ0Q7RUM5R0UsZUFBQTtDUm13Q0Q7QVFsd0NDOztFQUVFLGVBQUE7Q1Jvd0NIO0FPdHBDRDtFQ2pIRSxlQUFBO0NSMHdDRDtBUXp3Q0M7O0VBRUUsZUFBQTtDUjJ3Q0g7QU90cENEO0VBR0UsWUFBQTtFRTNIQSwwQkFBQTtDVGt4Q0Q7QVNqeENDOztFQUVFLDBCQUFBO0NUbXhDSDtBT3hwQ0Q7RUU5SEUsMEJBQUE7Q1R5eENEO0FTeHhD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Q2R3akRIO0FjempEQztFQUNFLG1CQUFBO0NkMmpESDtBYzVqREM7RUFDRSxVQUFBO0NkOGpESDtBYy9qREM7RUFDRSxtQkFBQTtDZGlrREg7QWNsa0RDO0VBQ0Usa0JBQUE7Q2Rva0RIO0FjaGtEQztFQUNFLFdBQUE7Q2Rra0RIO0FjcGpEQztFQUNFLGtCQUFBO0Nkc2pESDtBY3ZqREM7RUFDRSwwQkFBQTtDZHlqREg7QWMxakRDO0VBQ0UsMEJBQUE7Q2Q0akRIO0FjN2pEQztFQUNFLGlCQUFBO0NkK2pESDtBY2hrREM7RUFDRSwwQkFBQTtDZGtrREg7QWNua0RDO0VBQ0UsMEJBQUE7Q2Rxa0RIO0FjdGtEQztFQUNFLGlCQUFBO0Nkd2tESDtBY3prREM7RUFDRSwwQkFBQTtDZDJrREg7QWM1a0RDO0VBQ0UsMEJBQUE7Q2Q4a0RIO0FjL2tEQztFQUNFLGlCQUFBO0NkaWxESDtBY2xsREM7RUFDRSwwQkFBQTtDZG9sREg7QWNybERDO0VBQ0UseUJBQUE7Q2R1bERIO0FjeGxEQztFQUNFLGdCQUFBO0NkMGxESDtBWW5tREQ7RUV6Qkk7SUFDRSxZQUFBO0dkK25ESDtFY3huREQ7SUFDRSxZQUFBO0dkMG5ERDtFYzNuREQ7SUFDRSxvQkFBQTtHZDZuREQ7RWM5bkREO0lBQ0Usb0JBQUE7R2Rnb0REO0Vjam9ERDtJQUNFLFdBQUE7R2Rtb0REO0VjcG9ERDtJQUNFLG9CQUFBO0dkc29ERDtFY3ZvREQ7SUFDRSxvQkFBQTtHZHlvREQ7RWMxb0REO0lBQ0UsV0FBQTtHZDRvREQ7RWM3b0REO0lBQ0Usb0JBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxXQUFBO0dkcXBERDtFY3RwREQ7SUFDRSxvQkFBQTtHZHdwREQ7RWN6cEREO0lBQ0UsbUJBQUE7R2QycEREO0VjN29ERDtJQUNFLFlBQUE7R2Qrb0REO0VjaHBERDtJQUNFLG9CQUFBO0dka3BERDtFY25wREQ7SUFDRSxvQkFBQTtHZHFwREQ7RWN0cEREO0lBQ0UsV0FBQTtHZHdwREQ7RWN6cEREO0lBQ0Usb0JBQUE7R2QycEREO0VjNXBERDtJQUNFLG9CQUFBO0dkOHBERDtFYy9wREQ7SUFDRSxXQUFBO0dkaXFERDtFY2xxREQ7SUFDRSxvQkFBQTtHZG9xREQ7RWNycUREO0lBQ0Usb0JBQUE7R2R1cUREO0VjeHFERDtJQUNFLFdBQUE7R2QwcUREO0VjM3FERDtJQUNFLG9CQUFBO0dkNnFERDtFYzlxREQ7SUFDRSxtQkFBQTtHZGdyREQ7RWM1cUREO0lBQ0UsWUFBQTtHZDhxREQ7RWM5ckREO0lBQ0UsV0FBQTtHZGdzREQ7RWNqc0REO0lBQ0UsbUJBQUE7R2Rtc0REO0VjcHNERDtJQUNFLG1CQUFBO0dkc3NERDtFY3ZzREQ7SUFDRSxVQUFBO0dkeXNERDtFYzFzREQ7SUFDRSxtQkFBQTtHZDRzREQ7RWM3c0REO0lBQ0UsbUJBQUE7R2Qrc0REO0VjaHRERDtJQUNFLFVBQUE7R2RrdEREO0VjbnRERDtJQUNFLG1CQUFBO0dkcXRERDtFY3R0REQ7SUFDRSxtQkFBQTtHZHd0REQ7RWN6dEREO0lBQ0UsVUFBQTtHZDJ0REQ7RWM1dEREO0lBQ0UsbUJBQUE7R2Q4dEREO0VjL3RERDtJQUNFLGtCQUFBO0dkaXVERDtFYzd0REQ7SUFDRSxXQUFBO0dkK3RERDtFY2p0REQ7SUFDRSxrQkFBQTtHZG10REQ7RWNwdEREO0lBQ0UsMEJBQUE7R2RzdEREO0VjdnRERDtJQUNFLDBCQUFBO0dkeXRERDtFYzF0REQ7SUFDRSxpQkFBQTtHZDR0REQ7RWM3dEREO0lBQ0UsMEJBQUE7R2QrdEREO0VjaHVERDtJQUNFLDBCQUFBO0dka3VERDtFY251REQ7SUFDRSxpQkFBQTtHZHF1REQ7RWN0dUREO0lBQ0UsMEJBQUE7R2R3dUREO0VjenVERDtJQUNFLDBCQUFBO0dkMnVERDtFYzV1REQ7SUFDRSxpQkFBQTtHZDh1REQ7RWMvdUREO0lBQ0UsMEJBQUE7R2RpdkREO0VjbHZERDtJQUNFLHlCQUFBO0dkb3ZERDtFY3J2REQ7SUFDRSxnQkFBQTtHZHV2REQ7Q0FDRjtBWXh2REQ7RUVsQ0k7SUFDRSxZQUFBO0dkNnhESDtFY3R4REQ7SUFDRSxZQUFBO0dkd3hERDtFY3p4REQ7SUFDRSxvQkFBQTtHZDJ4REQ7RWM1eEREO0lBQ0Usb0JBQUE7R2Q4eEREO0VjL3hERDtJQUNFLFdBQUE7R2RpeUREO0VjbHlERDtJQUNFLG9CQUFBO0dkb3lERDtFY3J5REQ7SUFDRSxvQkFBQTtHZHV5REQ7RWN4eUREO0lBQ0UsV0FBQTtHZDB5REQ7RWMzeUREO0lBQ0Usb0JBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxXQUFBO0dkbXpERDtFY3B6REQ7SUFDRSxvQkFBQTtHZHN6REQ7RWN2ekREO0lBQ0UsbUJBQUE7R2R5ekREO0VjM3lERDtJQUNFLFlBQUE7R2Q2eUREO0VjOXlERDtJQUNFLG9CQUFBO0dkZ3pERDtFY2p6REQ7SUFDRSxvQkFBQTtHZG16REQ7RWNwekREO0lBQ0UsV0FBQTtHZHN6REQ7RWN2ekREO0lBQ0Usb0JBQUE7R2R5ekREO0VjMXpERDtJQUNFLG9CQUFBO0dkNHpERDtFYzd6REQ7SUFDRSxXQUFBO0dkK3pERDtFY2gwREQ7SUFDRSxvQkFBQTtHZGswREQ7RWNuMEREO0lBQ0Usb0JBQUE7R2RxMEREO0VjdDBERDtJQUNFLFdBQUE7R2R3MEREO0VjejBERDtJQUNFLG9CQUFBO0dkMjBERDtFYzUwREQ7SUFDRSxtQkFBQTtHZDgwREQ7RWMxMEREO0lBQ0UsWUFBQTtHZDQwREQ7RWM1MUREO0lBQ0UsV0FBQTtHZDgxREQ7RWMvMUREO0lBQ0UsbUJBQUE7R2RpMkREO0VjbDJERDtJQUNFLG1CQUFBO0dkbzJERDtFY3IyREQ7SUFDRSxVQUFBO0dkdTJERDtFY3gyREQ7SUFDRSxtQkFBQTtHZDAyREQ7RWMzMkREO0lBQ0UsbUJBQUE7R2Q2MkREO0VjOTJERDtJQUNFLFVBQUE7R2RnM0REO0VjajNERDtJQUNFLG1CQUFBO0dkbTNERDtFY3AzREQ7SUFDRSxtQkFBQTtHZHMzREQ7RWN2M0REO0lBQ0UsVUFBQTtHZHkzREQ7RWMxM0REO0lBQ0UsbUJBQUE7R2Q0M0REO0VjNzNERDtJQUNFLGtCQUFBO0dkKzNERDtFYzMzREQ7SUFDRSxXQUFBO0dkNjNERDtFYy8yREQ7SUFDRSxrQkFBQTtHZGkzREQ7RWNsM0REO0lBQ0UsMEJBQUE7R2RvM0REO0VjcjNERDtJQUNFLDBCQUFBO0dkdTNERDtFY3gzREQ7SUFDRSxpQkFBQTtHZDAzREQ7RWMzM0REO0lBQ0UsMEJBQUE7R2Q2M0REO0VjOTNERDtJQUNFLDBCQUFBO0dkZzRERDtFY2o0REQ7SUFDRSxpQkFBQTtHZG00REQ7RWNwNEREO0lBQ0UsMEJBQUE7R2RzNEREO0VjdjRERDtJQUNFLDBCQUFBO0dkeTRERDtFYzE0REQ7SUFDRSxpQkFBQTtHZDQ0REQ7RWM3NEREO0lBQ0UsMEJBQUE7R2QrNEREO0VjaDVERDtJQUNFLHlCQUFBO0dkazVERDtFY241REQ7SUFDRSxnQkFBQTtHZHE1REQ7Q0FDRjtBWTc0REQ7RUUzQ0k7SUFDRSxZQUFBO0dkMjdESDtFY3A3REQ7SUFDRSxZQUFBO0dkczdERDtFY3Y3REQ7SUFDRSxvQkFBQTtHZHk3REQ7RWMxN0REO0lBQ0Usb0JBQUE7R2Q0N0REO0VjNzdERDtJQUNFLFdBQUE7R2QrN0REO0VjaDhERDtJQUNFLG9CQUFBO0dkazhERDtFY244REQ7SUFDRSxvQkFBQTtHZHE4REQ7RWN0OEREO0lBQ0UsV0FBQTtHZHc4REQ7RWN6OEREO0lBQ0Usb0JBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxXQUFBO0dkaTlERDtFY2w5REQ7SUFDRSxvQkFBQTtHZG85REQ7RWNyOUREO0lBQ0UsbUJBQUE7R2R1OUREO0VjejhERDtJQUNFLFlBQUE7R2QyOEREO0VjNThERDtJQUNFLG9CQUFBO0dkODhERDtFYy84REQ7SUFDRSxvQkFBQTtHZGk5REQ7RWNsOUREO0lBQ0UsV0FBQTtHZG85REQ7RWNyOUREO0lBQ0Usb0JBQUE7R2R1OUREO0VjeDlERDtJQUNFLG9CQUFBO0dkMDlERDtFYzM5REQ7SUFDRSxXQUFBO0dkNjlERDtFYzk5REQ7SUFDRSxvQkFBQTtHZGcrREQ7RWNqK0REO0lBQ0Usb0JBQUE7R2RtK0REO0VjcCtE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RXVyWEg7Q0FDRjtBa0szdFhEO0UvRmtESSxrQkFBQTtDbkU0cVhIO0FrSzl0WEQ7RS9GMERFLG1CQUFBO0VBQ0EsbUJBQUE7Q25FdXFYRDtBa0tsdVhEO0VBTUksZ0JBQUE7Q2xLK3RYSDtBQUNELGVBQWUiLCJmaWxlIjoiaW1wYWMtYW5ndWxhci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKiogQWxsIEBpbXBvcnQncyBzaG91bGQgbGl2ZSBpbiB0aGlzIGZpbGUhXG4qL1xuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGlzIGNvbW1lbnRzIGJlbGxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IHdpcmVkZXAgdG8gaW5qZWN0XG4gKiAgbGVzcyBkZXBlbmRlbmNpZXMgd2hlbiBkZWZpbmVkIGluIHRoZSBib3dlci5qc29uIG9mIHlvdXIgZGVwZW5kZW5jaWVzXG4gKi9cbi8qIVxuICogQm9vdHN0cmFwIHYzLjMuNyAoaHR0cDovL2dldGJvb3RzdHJhcC5jb20pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE2IFR3aXR0ZXIsIEluYy5cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gKi9cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xufVxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuc3ZnI2dseXBoaWNvbnNfaGFsZmxpbmdzcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XG59XG4uZ2x5cGhpY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uZ2x5cGhpY29uLWFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMDJhXCI7XG59XG4uZ2x5cGhpY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwMmJcIjtcbn1cbi5nbHlwaGljb24tZXVybzpiZWZvcmUsXG4uZ2x5cGhpY29uLWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBhY1wiO1xufVxuLmdseXBoaWNvbi1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjIxMlwiO1xufVxuLmdseXBoaWNvbi1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjYwMVwiO1xufVxuLmdseXBoaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwOVwiO1xufVxuLmdseXBoaWNvbi1wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI3MGZcIjtcbn1cbi5nbHlwaGljb24tZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDFcIjtcbn1cbi5nbHlwaGljb24tbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDJcIjtcbn1cbi5nbHlwaGljb24tc2VhcmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAzXCI7XG59XG4uZ2x5cGhpY29uLWhlYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA1XCI7XG59XG4uZ2x5cGhpY29uLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDZcIjtcbn1cbi5nbHlwaGljb24tc3Rhci1lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwN1wiO1xufVxuLmdseXBoaWNvbi11c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA4XCI7XG59XG4uZ2x5cGhpY29uLWZpbG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDlcIjtcbn1cbi5nbHlwaGljb24tdGgtbGFyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTBcIjtcbn1cbi5nbHlwaGljb24tdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTFcIjtcbn1cbi5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMlwiO1xufVxuLmdseXBoaWNvbi1vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxM1wiO1xufVxuLmdseXBoaWNvbi1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTRcIjtcbn1cbi5nbHlwaGljb24tem9vbS1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNVwiO1xufVxuLmdseXBoaWNvbi16b29tLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNlwiO1xufVxuLmdseXBoaWNvbi1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTdcIjtcbn1cbi5nbHlwaGljb24tc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE4XCI7XG59XG4uZ2x5cGhpY29uLWNvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxOVwiO1xufVxuLmdseXBoaWNvbi10cmFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMFwiO1xufVxuLmdseXBoaWNvbi1ob21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIxXCI7XG59XG4uZ2x5cGhpY29uLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjJcIjtcbn1cbi5nbHlwaGljb24tdGltZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyM1wiO1xufVxuLmdseXBoaWNvbi1yb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI0XCI7XG59XG4uZ2x5cGhpY29uLWRvd25sb2FkLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyNVwiO1xufVxuLmdseXBoaWNvbi1kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyNlwiO1xufVxuLmdseXBoaWNvbi11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjdcIjtcbn1cbi5nbHlwaGljb24taW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjhcIjtcbn1cbi5nbHlwaGljb24tcGxheS1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjlcIjtcbn1cbi5nbHlwaGljb24tcmVwZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMwXCI7XG59XG4uZ2x5cGhpY29uLXJlZnJlc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzFcIjtcbn1cbi5nbHlwaGljb24tbGlzdC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzJcIjtcbn1cbi5nbHlwaGljb24tbG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzM1wiO1xufVxuLmdseXBoaWNvbi1mbGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM0XCI7XG59XG4uZ2x5cGhpY29uLWhlYWRwaG9uZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzVcIjtcbn1cbi5nbHlwaGljb24tdm9sdW1lLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuLmdseXBoaWNvbi12b2x1bWUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzN1wiO1xufVxuLmdseXBoaWNvbi12b2x1bWUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzhcIjtcbn1cbi5nbHlwaGljb24tcXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM5XCI7XG59XG4uZ2x5cGhpY29uLWJhcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDBcIjtcbn1cbi5nbHlwaGljb24tdGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQxXCI7XG59XG4uZ2x5cGhpY29uLXRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDJcIjtcbn1cbi5nbHlwaGljb24tYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0M1wiO1xufVxuLmdseXBoaWNvbi1ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NFwiO1xufVxuLmdseXBoaWNvbi1wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NVwiO1xufVxuLmdseXBoaWNvbi1jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDZcIjtcbn1cbi5nbHlwaGljb24tZm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0N1wiO1xufVxuLmdseXBoaWNvbi1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ4XCI7XG59XG4uZ2x5cGhpY29uLWl0YWxpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0OVwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWhlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MFwiO1xufVxuLmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUxXCI7XG59XG4uZ2x5cGhpY29uLWFsaWduLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTJcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUzXCI7XG59XG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU0XCI7XG59XG4uZ2x5cGhpY29uLWFsaWduLWp1c3RpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTVcIjtcbn1cbi5nbHlwaGljb24tbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NlwiO1xufVxuLmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1N1wiO1xufVxuLmdseXBoaWNvbi1pbmRlbnQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNThcIjtcbn1cbi5nbHlwaGljb24tZmFjZXRpbWUtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTlcIjtcbn1cbi5nbHlwaGljb24tcGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MFwiO1xufVxuLmdseXBoaWNvbi1tYXAtbWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYyXCI7XG59XG4uZ2x5cGhpY29uLWFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2M1wiO1xufVxuLmdseXBoaWNvbi10aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY0XCI7XG59XG4uZ2x5cGhpY29uLWVkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjVcIjtcbn1cbi5nbHlwaGljb24tc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjZcIjtcbn1cbi5nbHlwaGljb24tY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjdcIjtcbn1cbi5nbHlwaGljb24tbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2OFwiO1xufVxuLmdseXBoaWNvbi1zdGVwLWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY5XCI7XG59XG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzBcIjtcbn1cbi5nbHlwaGljb24tYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzFcIjtcbn1cbi5nbHlwaGljb24tcGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MlwiO1xufVxuLmdseXBoaWNvbi1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3M1wiO1xufVxuLmdseXBoaWNvbi1zdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc0XCI7XG59XG4uZ2x5cGhpY29uLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzVcIjtcbn1cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc2XCI7XG59XG4uZ2x5cGhpY29uLXN0ZXAtZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3N1wiO1xufVxuLmdseXBoaWNvbi1lamVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3OFwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzlcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MFwiO1xufVxuLmdseXBoaWNvbi1wbHVzLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODFcIjtcbn1cbi5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MlwiO1xufVxuLmdseXBoaWNvbi1yZW1vdmUtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4M1wiO1xufVxuLmdseXBoaWNvbi1vay1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg0XCI7XG59XG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODVcIjtcbn1cbi5nbHlwaGljb24taW5mby1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg2XCI7XG59XG4uZ2x5cGhpY29uLXNjcmVlbnNob3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODdcIjtcbn1cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OFwiO1xufVxuLmdseXBoaWNvbi1vay1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODlcIjtcbn1cbi5nbHlwaGljb24tYmFuLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MFwiO1xufVxuLmdseXBoaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkxXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkyXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkzXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTRcIjtcbn1cbi5nbHlwaGljb24tc2hhcmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk1XCI7XG59XG4uZ2x5cGhpY29uLXJlc2l6ZS1mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk2XCI7XG59XG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5N1wiO1xufVxuLmdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAxXCI7XG59XG4uZ2x5cGhpY29uLWdpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDJcIjtcbn1cbi5nbHlwaGljb24tbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwM1wiO1xufVxuLmdseXBoaWNvbi1maXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA0XCI7XG59XG4uZ2x5cGhpY29uLWV5ZS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA1XCI7XG59XG4uZ2x5cGhpY29uLWV5ZS1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNlwiO1xufVxuLmdseXBoaWNvbi13YXJuaW5nLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDdcIjtcbn1cbi5nbHlwaGljb24tcGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDhcIjtcbn1cbi5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDlcIjtcbn1cbi5nbHlwaGljb24tcmFuZG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEwXCI7XG59XG4uZ2x5cGhpY29uLWNvbW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTFcIjtcbn1cbi5nbHlwaGljb24tbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEyXCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTNcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE0XCI7XG59XG4uZ2x5cGhpY29uLXJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTVcIjtcbn1cbi5nbHlwaGljb24tc2hvcHBpbmctY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNlwiO1xufVxuLmdseXBoaWNvbi1mb2xkZXItY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTdcIjtcbn1cbi5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMThcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE5XCI7XG59XG4uZ2x5cGhpY29uLXJlc2l6ZS1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIwXCI7XG59XG4uZ2x5cGhpY29uLWhkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMVwiO1xufVxuLmdseXBoaWNvbi1idWxsaG9ybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMlwiO1xufVxuLmdseXBoaWNvbi1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIzXCI7XG59XG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI0XCI7XG59XG4uZ2x5cGhpY29uLXRodW1icy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyNVwiO1xufVxuLmdseXBoaWNvbi10aHVtYnMtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyNlwiO1xufVxuLmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI3XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyOFwiO1xufVxuLmdseXBoaWNvbi1oYW5kLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI5XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMFwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzFcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzJcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMzXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM0XCI7XG59XG4uZ2x5cGhpY29uLWdsb2JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM1XCI7XG59XG4uZ2x5cGhpY29uLXdyZW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNlwiO1xufVxuLmdseXBoaWNvbi10YXNrczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzN1wiO1xufVxuLmdseXBoaWNvbi1maWx0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzhcIjtcbn1cbi5nbHlwaGljb24tYnJpZWZjYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM5XCI7XG59XG4uZ2x5cGhpY29uLWZ1bGxzY3JlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDBcIjtcbn1cbi5nbHlwaGljb24tZGFzaGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQxXCI7XG59XG4uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MlwiO1xufVxuLmdseXBoaWNvbi1oZWFydC1lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0M1wiO1xufVxuLmdseXBoaWNvbi1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ0XCI7XG59XG4uZ2x5cGhpY29uLXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ1XCI7XG59XG4uZ2x5cGhpY29uLXB1c2hwaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDZcIjtcbn1cbi5nbHlwaGljb24tdXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ4XCI7XG59XG4uZ2x5cGhpY29uLWdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OVwiO1xufVxuLmdseXBoaWNvbi1zb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUwXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTFcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTJcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1M1wiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1NFwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTVcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1NlwiO1xufVxuLmdseXBoaWNvbi11bmNoZWNrZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTdcIjtcbn1cbi5nbHlwaGljb24tZXhwYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU4XCI7XG59XG4uZ2x5cGhpY29uLWNvbGxhcHNlLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTlcIjtcbn1cbi5nbHlwaGljb24tY29sbGFwc2UtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjBcIjtcbn1cbi5nbHlwaGljb24tbG9nLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYxXCI7XG59XG4uZ2x5cGhpY29uLWZsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYyXCI7XG59XG4uZ2x5cGhpY29uLWxvZy1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjNcIjtcbn1cbi5nbHlwaGljb24tbmV3LXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NFwiO1xufVxuLmdseXBoaWNvbi1yZWNvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjVcIjtcbn1cbi5nbHlwaGljb24tc2F2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NlwiO1xufVxuLmdseXBoaWNvbi1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY3XCI7XG59XG4uZ2x5cGhpY29uLXNhdmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY4XCI7XG59XG4uZ2x5cGhpY29uLWltcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2OVwiO1xufVxuLmdseXBoaWNvbi1leHBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzBcIjtcbn1cbi5nbHlwaGljb24tc2VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3MVwiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3MlwiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzNcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3NFwiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3NVwiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3NlwiO1xufVxuLmdseXBoaWNvbi1jcmVkaXQtY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3N1wiO1xufVxuLmdseXBoaWNvbi10cmFuc2ZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3OFwiO1xufVxuLmdseXBoaWNvbi1jdXRsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc5XCI7XG59XG4uZ2x5cGhpY29uLWhlYWRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MFwiO1xufVxuLmdseXBoaWNvbi1jb21wcmVzc2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgxXCI7XG59XG4uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgyXCI7XG59XG4uZ2x5cGhpY29uLXBob25lLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4M1wiO1xufVxuLmdseXBoaWNvbi10b3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4NFwiO1xufVxuLmdseXBoaWNvbi1zdGF0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4NVwiO1xufVxuLmdseXBoaWNvbi1zZC12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4NlwiO1xufVxuLmdseXBoaWNvbi1oZC12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4N1wiO1xufVxuLmdseXBoaWNvbi1zdWJ0aXRsZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODhcIjtcbn1cbi5nbHlwaGljb24tc291bmQtc3RlcmVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg5XCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLWRvbGJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkwXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MVwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC02LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTJcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNy0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkzXCI7XG59XG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk0XCI7XG59XG4uZ2x5cGhpY29uLXJlZ2lzdHJhdGlvbi1tYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk1XCI7XG59XG4uZ2x5cGhpY29uLWNsb3VkLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk3XCI7XG59XG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OFwiO1xufVxuLmdseXBoaWNvbi10cmVlLWNvbmlmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTlcIjtcbn1cbi5nbHlwaGljb24tdHJlZS1kZWNpZHVvdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDBcIjtcbn1cbi5nbHlwaGljb24tY2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDFcIjtcbn1cbi5nbHlwaGljb24tc2F2ZS1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAyXCI7XG59XG4uZ2x5cGhpY29uLW9wZW4tZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwM1wiO1xufVxuLmdseXBoaWNvbi1sZXZlbC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNFwiO1xufVxuLmdseXBoaWNvbi1jb3B5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA1XCI7XG59XG4uZ2x5cGhpY29uLXBhc3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA2XCI7XG59XG4uZ2x5cGhpY29uLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA5XCI7XG59XG4uZ2x5cGhpY29uLWVxdWFsaXplcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMFwiO1xufVxuLmdseXBoaWNvbi1raW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjExXCI7XG59XG4uZ2x5cGhpY29uLXF1ZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEyXCI7XG59XG4uZ2x5cGhpY29uLXBhd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTNcIjtcbn1cbi5nbHlwaGljb24tYmlzaG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE0XCI7XG59XG4uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNVwiO1xufVxuLmdseXBoaWNvbi1iYWJ5LWZvcm11bGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTZcIjtcbn1cbi5nbHlwaGljb24tdGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjZmYVwiO1xufVxuLmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE4XCI7XG59XG4uZ2x5cGhpY29uLWJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxOVwiO1xufVxuLmdseXBoaWNvbi1hcHBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhmZlwiO1xufVxuLmdseXBoaWNvbi1lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyMVwiO1xufVxuLmdseXBoaWNvbi1ob3VyZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIzMWJcIjtcbn1cbi5nbHlwaGljb24tbGFtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyM1wiO1xufVxuLmdseXBoaWNvbi1kdXBsaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjRcIjtcbn1cbi5nbHlwaGljb24tcGlnZ3ktYmFuazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyNVwiO1xufVxuLmdseXBoaWNvbi1zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyNlwiO1xufVxuLmdseXBoaWNvbi1iaXRjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLWJ0YzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi14YnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24teWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG4uZ2x5cGhpY29uLWpweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDBhNVwiO1xufVxuLmdseXBoaWNvbi1ydWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBiZFwiO1xufVxuLmdseXBoaWNvbi1ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjtcbn1cbi5nbHlwaGljb24tc2NhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzBcIjtcbn1cbi5nbHlwaGljb24taWNlLWxvbGx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMxXCI7XG59XG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzJcIjtcbn1cbi5nbHlwaGljb24tZWR1Y2F0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMzXCI7XG59XG4uZ2x5cGhpY29uLW9wdGlvbi1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM0XCI7XG59XG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNVwiO1xufVxuLmdseXBoaWNvbi1tZW51LWhhbWJ1cmdlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNlwiO1xufVxuLmdseXBoaWNvbi1tb2RhbC13aW5kb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzdcIjtcbn1cbi5nbHlwaGljb24tb2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM4XCI7XG59XG4uZ2x5cGhpY29uLWdyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM5XCI7XG59XG4uZ2x5cGhpY29uLXN1bmdsYXNzZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDBcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQxXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtY29sb3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDJcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1iYWNrZ3JvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQzXCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDRcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0NVwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24taG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0NlwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0N1wiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDhcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ5XCI7XG59XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUwXCI7XG59XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTFcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUyXCI7XG59XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1M1wiO1xufVxuLmdseXBoaWNvbi1jb25zb2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU0XCI7XG59XG4uZ2x5cGhpY29uLXN1cGVyc2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU1XCI7XG59XG4uZ2x5cGhpY29uLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NlwiO1xufVxuLmdseXBoaWNvbi1tZW51LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTdcIjtcbn1cbi5nbHlwaGljb24tbWVudS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1OFwiO1xufVxuLmdseXBoaWNvbi1tZW51LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTlcIjtcbn1cbi5nbHlwaGljb24tbWVudS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI2MFwiO1xufVxuKiB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5hIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmE6aG92ZXIsXG5hOmZvY3VzIHtcbiAgY29sb3I6ICMwMDljYTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuYTpmb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmltZy1yZXNwb25zaXZlLFxuLnRodW1ibmFpbCA+IGltZyxcbi50aHVtYm5haWwgYSA+IGltZyxcbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBhID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmltZy1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuaHIge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlZWVlO1xufVxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGJvcmRlcjogMDtcbn1cbi5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsXG4uc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuW3JvbGU9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5oMSBzbWFsbCxcbmgyIHNtYWxsLFxuaDMgc21hbGwsXG5oNCBzbWFsbCxcbmg1IHNtYWxsLFxuaDYgc21hbGwsXG4uaDEgc21hbGwsXG4uaDIgc21hbGwsXG4uaDMgc21hbGwsXG4uaDQgc21hbGwsXG4uaDUgc21hbGwsXG4uaDYgc21hbGwsXG5oMSAuc21hbGwsXG5oMiAuc21hbGwsXG5oMyAuc21hbGwsXG5oNCAuc21hbGwsXG5oNSAuc21hbGwsXG5oNiAuc21hbGwsXG4uaDEgLnNtYWxsLFxuLmgyIC5zbWFsbCxcbi5oMyAuc21hbGwsXG4uaDQgLnNtYWxsLFxuLmg1IC5zbWFsbCxcbi5oNiAuc21hbGwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuaDEgc21hbGwsXG4uaDEgc21hbGwsXG5oMiBzbWFsbCxcbi5oMiBzbWFsbCxcbmgzIHNtYWxsLFxuLmgzIHNtYWxsLFxuaDEgLnNtYWxsLFxuLmgxIC5zbWFsbCxcbmgyIC5zbWFsbCxcbi5oMiAuc21hbGwsXG5oMyAuc21hbGwsXG4uaDMgLnNtYWxsIHtcbiAgZm9udC1zaXplOiA2NSU7XG59XG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuaDQgc21hbGwsXG4uaDQgc21hbGwsXG5oNSBzbWFsbCxcbi5oNSBzbWFsbCxcbmg2IHNtYWxsLFxuLmg2IHNtYWxsLFxuaDQgLnNtYWxsLFxuLmg0IC5zbWFsbCxcbmg1IC5zbWFsbCxcbi5oNSAuc21hbGwsXG5oNiAuc21hbGwsXG4uaDYgLnNtYWxsIHtcbiAgZm9udC1zaXplOiA3NSU7XG59XG5oMSxcbi5oMSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbn1cbmgyLFxuLmgyIHtcbiAgZm9udC1zaXplOiAzMHB4O1xufVxuaDMsXG4uaDMge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5oNCxcbi5oNCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbmg1LFxuLmg1IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuaDYsXG4uaDYge1xuICBmb250LXNpemU6IDEycHg7XG59XG5wIHtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbn1cbi5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gIH1cbn1cbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiA4NSU7XG59XG5tYXJrLFxuLm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICBwYWRkaW5nOiAuMmVtO1xufVxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4udGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cbi50ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4udGV4dC1tdXRlZCB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xufVxuYS50ZXh0LXByaW1hcnk6aG92ZXIsXG5hLnRleHQtcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMDBiNGJkO1xufVxuLnRleHQtc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuYS50ZXh0LXN1Y2Nlc3M6aG92ZXIsXG5hLnRleHQtc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjMmI1NDJjO1xufVxuLnRleHQtaW5mbyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuYS50ZXh0LWluZm86aG92ZXIsXG5hLnRleHQtaW5mbzpmb2N1cyB7XG4gIGNvbG9yOiAjMjQ1MjY5O1xufVxuLnRleHQtd2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuYS50ZXh0LXdhcm5pbmc6aG92ZXIsXG5hLnRleHQtd2FybmluZzpmb2N1cyB7XG4gIGNvbG9yOiAjNjY1MTJjO1xufVxuLnRleHQtZGFuZ2VyIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG5hLnRleHQtZGFuZ2VyOmhvdmVyLFxuYS50ZXh0LWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiAjODQzNTM0O1xufVxuLmJnLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbmEuYmctcHJpbWFyeTpob3ZlcixcbmEuYmctcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4uYmctc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG59XG5hLmJnLXN1Y2Nlc3M6aG92ZXIsXG5hLmJnLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzFlMmIzO1xufVxuLmJnLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xufVxuYS5iZy1pbmZvOmhvdmVyLFxuYS5iZy1pbmZvOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FmZDllZTtcbn1cbi5iZy13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbmEuYmctd2FybmluZzpob3ZlcixcbmEuYmctd2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2VjYjU7XG59XG4uYmctZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbn1cbmEuYmctZGFuZ2VyOmhvdmVyLFxuYS5iZy1kYW5nZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRiOWI5O1xufVxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDlweDtcbiAgbWFyZ2luOiA0MHB4IDAgMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWVlZWU7XG59XG51bCxcbm9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbnVsIHVsLFxub2wgdWwsXG51bCBvbCxcbm9sIG9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmxpc3QtaW5saW5lIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cbi5saXN0LWlubGluZSA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuZGwge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuZHQsXG5kZCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmRsLWhvcml6b250YWwgZHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBjbGVhcjogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLmRsLWhvcml6b250YWwgZGQge1xuICAgIG1hcmdpbi1sZWZ0OiAxODBweDtcbiAgfVxufVxuYWJiclt0aXRsZV0sXG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM3Nzc3Nzc7XG59XG4uaW5pdGlhbGlzbSB7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgbWFyZ2luOiAwIDAgMjBweDtcbiAgZm9udC1zaXplOiAxNy41cHg7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgI2VlZWVlZTtcbn1cbmJsb2NrcXVvdGUgcDpsYXN0LWNoaWxkLFxuYmxvY2txdW90ZSB1bDpsYXN0LWNoaWxkLFxuYmxvY2txdW90ZSBvbDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbmJsb2NrcXVvdGUgZm9vdGVyLFxuYmxvY2txdW90ZSBzbWFsbCxcbmJsb2NrcXVvdGUgLnNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG5ibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsXG5ibG9ja3F1b3RlIHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUgLnNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJztcbn1cbi5ibG9ja3F1b3RlLXJldmVyc2UsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkICNlZWVlZWU7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YmVmb3JlLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgc21hbGw6YmVmb3JlLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSAuc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbn1cbi5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjphZnRlcixcbi5ibG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgc21hbGw6YWZ0ZXIsXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5zbWFsbDphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YWZ0ZXIge1xuICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7XG59XG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mztcbn1cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICNjNzI1NGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWYyZjQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbmtiZCB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxua2JkIGtiZCB7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogOS41cHg7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxucHJlIGNvZGUge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogMzQwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5jb250YWluZXIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDc1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk3MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMTcwcHg7XG4gIH1cbn1cbi5jb250YWluZXItZmx1aWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ucm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuLmNvbC14cy0xLCAuY29sLXNtLTEsIC5jb2wtbWQtMSwgLmNvbC1sZy0xLCAuY29sLXhzLTIsIC5jb2wtc20tMiwgLmNvbC1tZC0yLCAuY29sLWxnLTIsIC5jb2wteHMtMywgLmNvbC1zbS0zLCAuY29sLW1kLTMsIC5jb2wtbGctMywgLmNvbC14cy00LCAuY29sLXNtLTQsIC5jb2wtbWQtNCwgLmNvbC1sZy00LCAuY29sLXhzLTUsIC5jb2wtc20tNSwgLmNvbC1tZC01LCAuY29sLWxnLTUsIC5jb2wteHMtNiwgLmNvbC1zbS02LCAuY29sLW1kLTYsIC5jb2wtbGctNiwgLmNvbC14cy03LCAuY29sLXNtLTcsIC5jb2wtbWQtNywgLmNvbC1sZy03LCAuY29sLXhzLTgsIC5jb2wtc20tOCwgLmNvbC1tZC04LCAuY29sLWxnLTgsIC5jb2wteHMtOSwgLmNvbC1zbS05LCAuY29sLW1kLTksIC5jb2wtbGctOSwgLmNvbC14cy0xMCwgLmNvbC1zbS0xMCwgLmNvbC1tZC0xMCwgLmNvbC1sZy0xMCwgLmNvbC14cy0xMSwgLmNvbC1zbS0xMSwgLmNvbC1tZC0xMSwgLmNvbC1sZy0xMSwgLmNvbC14cy0xMiwgLmNvbC1zbS0xMiwgLmNvbC1tZC0xMiwgLmNvbC1sZy0xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4uY29sLXhzLTEsIC5jb2wteHMtMiwgLmNvbC14cy0zLCAuY29sLXhzLTQsIC5jb2wteHMtNSwgLmNvbC14cy02LCAuY29sLXhzLTcsIC5jb2wteHMtOCwgLmNvbC14cy05LCAuY29sLXhzLTEwLCAuY29sLXhzLTExLCAuY29sLXhzLTEyIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uY29sLXhzLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY29sLXhzLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtMTAge1xuICB3aWR0aDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy05IHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5jb2wteHMtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLTcge1xuICB3aWR0aDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy02IHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5jb2wteHMtNSB7XG4gIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLTQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi5jb2wteHMtMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLTEge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtMTIge1xuICByaWdodDogMTAwJTtcbn1cbi5jb2wteHMtcHVsbC0xMSB7XG4gIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtMTAge1xuICByaWdodDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTkge1xuICByaWdodDogNzUlO1xufVxuLmNvbC14cy1wdWxsLTgge1xuICByaWdodDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdWxsLTcge1xuICByaWdodDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTYge1xuICByaWdodDogNTAlO1xufVxuLmNvbC14cy1wdWxsLTUge1xuICByaWdodDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdWxsLTQge1xuICByaWdodDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTMge1xuICByaWdodDogMjUlO1xufVxuLmNvbC14cy1wdWxsLTIge1xuICByaWdodDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdWxsLTEge1xuICByaWdodDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtMCB7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmNvbC14cy1wdXNoLTEyIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jb2wteHMtcHVzaC0xMSB7XG4gIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC0xMCB7XG4gIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVzaC05IHtcbiAgbGVmdDogNzUlO1xufVxuLmNvbC14cy1wdXNoLTgge1xuICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1c2gtNyB7XG4gIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVzaC02IHtcbiAgbGVmdDogNTAlO1xufVxuLmNvbC14cy1wdXNoLTUge1xuICBsZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1c2gtNCB7XG4gIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVzaC0zIHtcbiAgbGVmdDogMjUlO1xufVxuLmNvbC14cy1wdXNoLTIge1xuICBsZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1c2gtMSB7XG4gIGxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTAge1xuICBsZWZ0OiBhdXRvO1xufVxuLmNvbC14cy1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuLmNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuLmNvbC14cy1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuLmNvbC14cy1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuY29sLXNtLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLXNtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtc20tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtc20tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtc20tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1tZC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLW1kLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLW1kLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLW1kLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuY29sLWxnLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLWxnLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtbGctOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbGctNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtbGctMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgPiBjYXB0aW9uICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnRhYmxlID4gY29sZ3JvdXAgKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjYXB0aW9uICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnRhYmxlID4gY29sZ3JvdXAgKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4udGFibGUgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQge1xuICBib3JkZXItdG9wOiAwO1xufVxuLnRhYmxlID4gdGJvZHkgKyB0Ym9keSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlIC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4udGFibGUtY29uZGVuc2VkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRib2R5ID4gdHIgPiB0ZCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBwYWRkaW5nOiA1cHg7XG59XG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbn1cbi50YWJsZS1zdHJpcGVkID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxudGFibGUgY29sW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUgdGRbY2xhc3MqPVwiY29sLVwiXSxcbnRhYmxlIHRoW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRoZWFkID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmFjdGl2ZSA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5hY3RpdmUgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuYWN0aXZlOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmFjdGl2ZTpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuYWN0aXZlOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLmFjdGl2ZSxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuYWN0aXZlOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5zdWNjZXNzID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLnN1Y2Nlc3MgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuc3VjY2VzcyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnN1Y2Nlc3M6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuc3VjY2Vzcyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRoZWFkID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuaW5mbyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5pbmZvID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmluZm8gPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuaW5mbzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5pbmZvOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5pbmZvOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLmluZm8sXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmluZm86aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGUzZjM7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0aGVhZCA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLndhcm5pbmcgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci53YXJuaW5nID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLndhcm5pbmc6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGgud2FybmluZzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIud2FybmluZzpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC53YXJuaW5nLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci53YXJuaW5nOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmMmNjO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5kYW5nZXIgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuZGFuZ2VyID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmRhbmdlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguZGFuZ2VyOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuZGFuZ2VyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmNjY2M7XG59XG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDAuMDElO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0aGVhZCA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRmb290ID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0aGVhZCA+IHRyID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRmb290ID4gdHIgPiB0ZCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICB9XG59XG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBtaW4td2lkdGg6IDA7XG59XG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5zZWxlY3RbbXVsdGlwbGVdLFxuc2VsZWN0W3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxub3V0cHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNTU1NTU1O1xufVxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNHB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuICAtby10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xufVxuLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzY2YWZlOTtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbiAgb3BhY2l0eTogMTtcbn1cbi5mb3JtLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG59XG4uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG59XG4uZm9ybS1jb250cm9sOjotbXMtZXhwYW5kIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuLmZvcm0tY29udHJvbFtyZWFkb25seV0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbnRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uZm9ybS1jb250cm9sIHtcbiAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1zbSxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaW5wdXQtc20sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1zbSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIH1cbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaW5wdXQtbGcsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LWxnLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaW5wdXQtbGcsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgIGxpbmUtaGVpZ2h0OiA0NnB4O1xuICB9XG59XG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnJhZGlvIGxhYmVsLFxuLmNoZWNrYm94IGxhYmVsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbWFyZ2luLXRvcDogNHB4IFxcOTtcbn1cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpby1pbmxpbmUgKyAucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSArIC5jaGVja2JveC1pbmxpbmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1bZGlzYWJsZWRdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLmRpc2FibGVkLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnJhZGlvLWlubGluZS5kaXNhYmxlZCxcbi5jaGVja2JveC1pbmxpbmUuZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvLWlubGluZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tib3gtaW5saW5lIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5yYWRpby5kaXNhYmxlZCBsYWJlbCxcbi5jaGVja2JveC5kaXNhYmxlZCBsYWJlbCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8gbGFiZWwsXG5maWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWluLWhlaWdodDogMzRweDtcbn1cbi5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LWxnLFxuLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtc20ge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uaW5wdXQtc20ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbnNlbGVjdC5pbnB1dC1zbSB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG50ZXh0YXJlYS5pbnB1dC1zbSxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtc20ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uZm9ybS1ncm91cC1zbSBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi5mb3JtLWdyb3VwLXNtIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5mb3JtLWdyb3VwLXNtIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uaW5wdXQtbGcge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5zZWxlY3QuaW5wdXQtbGcge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NnB4O1xufVxudGV4dGFyZWEuaW5wdXQtbGcsXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWxnIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5mb3JtLWdyb3VwLWxnIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NnB4O1xufVxuLmZvcm0tZ3JvdXAtbGcgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIGhlaWdodDogNDZweDtcbiAgbWluLWhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMTFweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG59XG4uaGFzLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sIHtcbiAgcGFkZGluZy1yaWdodDogNDIuNXB4O1xufVxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmlucHV0LWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiA0NnB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NnB4O1xufVxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmhhcy1zdWNjZXNzIC5oZWxwLWJsb2NrLFxuLmhhcy1zdWNjZXNzIC5jb250cm9sLWxhYmVsLFxuLmhhcy1zdWNjZXNzIC5yYWRpbyxcbi5oYXMtc3VjY2VzcyAuY2hlY2tib3gsXG4uaGFzLXN1Y2Nlc3MgLnJhZGlvLWlubGluZSxcbi5oYXMtc3VjY2VzcyAuY2hlY2tib3gtaW5saW5lLFxuLmhhcy1zdWNjZXNzLnJhZGlvIGxhYmVsLFxuLmhhcy1zdWNjZXNzLmNoZWNrYm94IGxhYmVsLFxuLmhhcy1zdWNjZXNzLnJhZGlvLWlubGluZSBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMyYjU0MmM7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM2N2IxNjg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjNjdiMTY4O1xufVxuLmhhcy1zdWNjZXNzIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuLmhhcy13YXJuaW5nIC5oZWxwLWJsb2NrLFxuLmhhcy13YXJuaW5nIC5jb250cm9sLWxhYmVsLFxuLmhhcy13YXJuaW5nIC5yYWRpbyxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLWlubGluZSxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gtaW5saW5lLFxuLmhhcy13YXJuaW5nLnJhZGlvIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94IGxhYmVsLFxuLmhhcy13YXJuaW5nLnJhZGlvLWlubGluZSBsYWJlbCxcbi5oYXMtd2FybmluZy5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGE2ZDNiO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NjUxMmM7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjYzBhMTZiO1xufVxuLmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmhhcy1lcnJvciAuaGVscC1ibG9jayxcbi5oYXMtZXJyb3IgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLWVycm9yIC5yYWRpbyxcbi5oYXMtZXJyb3IgLmNoZWNrYm94LFxuLmhhcy1lcnJvciAucmFkaW8taW5saW5lLFxuLmhhcy1lcnJvciAuY2hlY2tib3gtaW5saW5lLFxuLmhhcy1lcnJvci5yYWRpbyBsYWJlbCxcbi5oYXMtZXJyb3IuY2hlY2tib3ggbGFiZWwsXG4uaGFzLWVycm9yLnJhZGlvLWlubGluZSBsYWJlbCxcbi5oYXMtZXJyb3IuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM4NDM1MzQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjZTg0ODM7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjY2U4NDgzO1xufVxuLmhhcy1lcnJvciAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYm9yZGVyLWNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG4uaGFzLWZlZWRiYWNrIGxhYmVsIH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHRvcDogMjVweDtcbn1cbi5oYXMtZmVlZGJhY2sgbGFiZWwuc3Itb25seSB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB0b3A6IDA7XG59XG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjNzM3MzczO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWlubGluZSAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ0bixcbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5jb250cm9sLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8gbGFiZWwsXG4gIC5mb3JtLWlubGluZSAuY2hlY2tib3ggbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gsXG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpby1pbmxpbmUsXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveC1pbmxpbmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLXRvcDogN3B4O1xufVxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDI3cHg7XG59XG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtbGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDdweDtcbiAgfVxufVxuLmZvcm0taG9yaXpvbnRhbCAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICByaWdodDogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLWxnIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogMTFweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLXNtIC5jb250cm9sLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxufVxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5idG46Zm9jdXMsXG4uYnRuOmFjdGl2ZTpmb2N1cyxcbi5idG4uYWN0aXZlOmZvY3VzLFxuLmJ0bi5mb2N1cyxcbi5idG46YWN0aXZlLmZvY3VzLFxuLmJ0bi5hY3RpdmUuZm9jdXMge1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuLmJ0bjpob3Zlcixcbi5idG46Zm9jdXMsXG4uYnRuLmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5idG46YWN0aXZlLFxuLmJ0bi5hY3RpdmUge1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xufVxuLmJ0bi5kaXNhYmxlZCxcbi5idG5bZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAwLjY1O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NjUpO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0biB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmJ0bi1kZWZhdWx0IHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbn1cbi5idG4tZGVmYXVsdDpmb2N1cyxcbi5idG4tZGVmYXVsdC5mb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICM4YzhjOGM7XG59XG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkO1xufVxuLmJ0bi1kZWZhdWx0OmFjdGl2ZSxcbi5idG4tZGVmYXVsdC5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkO1xufVxuLmJ0bi1kZWZhdWx0OmFjdGl2ZTpob3Zlcixcbi5idG4tZGVmYXVsdC5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQ6aG92ZXIsXG4uYnRuLWRlZmF1bHQ6YWN0aXZlOmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpmb2N1cyxcbi5idG4tZGVmYXVsdDphY3RpdmUuZm9jdXMsXG4uYnRuLWRlZmF1bHQuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGQ0ZDQ7XG4gIGJvcmRlci1jb2xvcjogIzhjOGM4Yztcbn1cbi5idG4tZGVmYXVsdDphY3RpdmUsXG4uYnRuLWRlZmF1bHQuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tZGVmYXVsdC5kaXNhYmxlZDpob3Zlcixcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmhvdmVyLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdC5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbn1cbi5idG4tZGVmYXVsdCAuYmFkZ2Uge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cbi5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXByaW1hcnk6Zm9jdXMsXG4uYnRuLXByaW1hcnkuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tcHJpbWFyeTphY3RpdmUsXG4uYnRuLXByaW1hcnkuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tcHJpbWFyeTphY3RpdmU6aG92ZXIsXG4uYnRuLXByaW1hcnkuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi1wcmltYXJ5OmFjdGl2ZTpmb2N1cyxcbi5idG4tcHJpbWFyeS5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnk6Zm9jdXMsXG4uYnRuLXByaW1hcnk6YWN0aXZlLmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXByaW1hcnk6YWN0aXZlLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3Zlcixcbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpmb2N1cyxcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnkuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXByaW1hcnkgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1zdWNjZXNzOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tc3VjY2Vzczpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXN1Y2Nlc3M6YWN0aXZlOmhvdmVyLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzczpob3Zlcixcbi5idG4tc3VjY2VzczphY3RpdmU6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzOmZvY3VzLFxuLmJ0bi1zdWNjZXNzOmFjdGl2ZS5mb2N1cyxcbi5idG4tc3VjY2Vzcy5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1zdWNjZXNzOmFjdGl2ZSxcbi5idG4tc3VjY2Vzcy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6aG92ZXIsXG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpmb2N1cyxcbi5idG4tc3VjY2Vzcy5kaXNhYmxlZC5mb2N1cyxcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1zdWNjZXNzIC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1pbmZvIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mby5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1pbmZvOmFjdGl2ZSxcbi5idG4taW5mby5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1pbmZvOmFjdGl2ZTpob3Zlcixcbi5idG4taW5mby5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm86aG92ZXIsXG4uYnRuLWluZm86YWN0aXZlOmZvY3VzLFxuLmJ0bi1pbmZvLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mbzphY3RpdmUuZm9jdXMsXG4uYnRuLWluZm8uYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4taW5mbzphY3RpdmUsXG4uYnRuLWluZm8uYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4taW5mby5kaXNhYmxlZDpob3Zlcixcbi5idG4taW5mb1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmhvdmVyLFxuLmJ0bi1pbmZvLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86Zm9jdXMsXG4uYnRuLWluZm8uZGlzYWJsZWQuZm9jdXMsXG4uYnRuLWluZm9bZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4taW5mbyAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBib3JkZXItY29sb3I6ICM4NTY0ZWQ7XG59XG4uYnRuLXdhcm5pbmc6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjM2QxNWJkO1xufVxuLmJ0bi13YXJuaW5nOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG4gIGJvcmRlci1jb2xvcjogIzVhMmRlNztcbn1cbi5idG4td2FybmluZzphY3RpdmUsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG4gIGJvcmRlci1jb2xvcjogIzVhMmRlNztcbn1cbi5idG4td2FybmluZzphY3RpdmU6aG92ZXIsXG4uYnRuLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nOmhvdmVyLFxuLmJ0bi13YXJuaW5nOmFjdGl2ZTpmb2N1cyxcbi5idG4td2FybmluZy5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmc6Zm9jdXMsXG4uYnRuLXdhcm5pbmc6YWN0aXZlLmZvY3VzLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWEyZGU3O1xuICBib3JkZXItY29sb3I6ICMzZDE1YmQ7XG59XG4uYnRuLXdhcm5pbmc6YWN0aXZlLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3Zlcixcbi5idG4td2FybmluZy5kaXNhYmxlZDpmb2N1cyxcbi5idG4td2FybmluZ1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmcuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBib3JkZXItY29sb3I6ICM4NTY0ZWQ7XG59XG4uYnRuLXdhcm5pbmcgLmJhZGdlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xuICBib3JkZXItY29sb3I6ICNjYTFjNjg7XG59XG4uYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzE5NWQ7XG4gIGJvcmRlci1jb2xvcjogIzVhMGMyZTtcbn1cbi5idG4tZGFuZ2VyOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzE5NWQ7XG4gIGJvcmRlci1jb2xvcjogIzk0MTQ0ZDtcbn1cbi5idG4tZGFuZ2VyOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzE5NWQ7XG4gIGJvcmRlci1jb2xvcjogIzk0MTQ0ZDtcbn1cbi5idG4tZGFuZ2VyOmFjdGl2ZTpob3Zlcixcbi5idG4tZGFuZ2VyLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyOmhvdmVyLFxuLmJ0bi1kYW5nZXI6YWN0aXZlOmZvY3VzLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlcjphY3RpdmUuZm9jdXMsXG4uYnRuLWRhbmdlci5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlci5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTQxNDRkO1xuICBib3JkZXItY29sb3I6ICM1YTBjMmU7XG59XG4uYnRuLWRhbmdlcjphY3RpdmUsXG4uYnRuLWRhbmdlci5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLWRhbmdlci5kaXNhYmxlZDpob3Zlcixcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpob3Zlcixcbi5idG4tZGFuZ2VyLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xuICBib3JkZXItY29sb3I6ICNjYTFjNjg7XG59XG4uYnRuLWRhbmdlciAuYmFkZ2Uge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tbGluayB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1saW5rLFxuLmJ0bi1saW5rOmFjdGl2ZSxcbi5idG4tbGluay5hY3RpdmUsXG4uYnRuLWxpbmtbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuLWxpbmssXG4uYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbms6Zm9jdXMsXG4uYnRuLWxpbms6YWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idG4tbGluazpob3Zlcixcbi5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjMDA5Y2EzO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpob3Zlcixcbi5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5idG4tbGcsXG4uYnRuLWdyb3VwLWxnID4gLmJ0biB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uYnRuLXNtLFxuLmJ0bi1ncm91cC1zbSA+IC5idG4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnRuLXhzLFxuLmJ0bi1ncm91cC14cyA+IC5idG4ge1xuICBwYWRkaW5nOiAxcHggNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbn1cbi5mYWRlLmluIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnRyLmNvbGxhcHNlLmluIHtcbiAgZGlzcGxheTogdGFibGUtcm93O1xufVxudGJvZHkuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7XG59XG4uY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjM1cztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG4uY2FyZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci10b3A6IDRweCBkYXNoZWQ7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCBcXDk7XG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBtYXJnaW46IDJweCAwIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE3NSk7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE3NSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG4uZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG4uZHJvcGRvd24tbWVudSAuZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDlweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xufVxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzI2MjYyNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ub3BlbiA+IC5kcm9wZG93bi1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ub3BlbiA+IGEge1xuICBvdXRsaW5lOiAwO1xufVxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cbi5kcm9wZG93bi1tZW51LWxlZnQge1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbn1cbi5kcm9wZG93bi1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk5MDtcbn1cbi5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5kcm9wdXAgLmNhcmV0LFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5jYXJldCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1ib3R0b206IDRweCBkYXNoZWQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBcXDk7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4uZHJvcHVwIC5kcm9wZG93bi1tZW51LFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXJpZ2h0IC5kcm9wZG93bi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi1ncm91cCA+IC5idG46aG92ZXIsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46Zm9jdXMsXG4uYnRuLWdyb3VwID4gLmJ0bjphY3RpdmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjphY3RpdmUsXG4uYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi5hY3RpdmUge1xuICB6LWluZGV4OiAyO1xufVxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0biArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwIC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLmJ0bi10b29sYmFyIHtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG4uYnRuLXRvb2xiYXIgLmJ0bixcbi5idG4tdG9vbGJhciAuYnRuLWdyb3VwLFxuLmJ0bi10b29sYmFyIC5pbnB1dC1ncm91cCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi10b29sYmFyID4gLmJ0bixcbi5idG4tdG9vbGJhciA+IC5idG4tZ3JvdXAsXG4uYnRuLXRvb2xiYXIgPiAuaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbi5idG4tZ3JvdXAgPiAuZHJvcGRvd24tdG9nZ2xlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLFxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBvdXRsaW5lOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbn1cbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1saW5rIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4uZHJvcHVwIC5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOmxhc3QtY2hpbGQsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLFxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiAxJTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCAuYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUge1xuICBsZWZ0OiBhdXRvO1xufVxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cbi5pbnB1dC1ncm91cFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIHotaW5kZXg6IDM7XG59XG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0LmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuc2VsZWN0LmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGxpbmUtaGVpZ2h0OiA0NnB4O1xufVxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0LmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuc2VsZWN0LmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0bixcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgd2lkdGg6IDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1zbSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1sZyB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmhvdmVyLFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46Zm9jdXMsXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjphY3RpdmUge1xuICB6LWluZGV4OiAyO1xufVxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwIHtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4ubmF2IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm5hdiA+IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5uYXYgPiBsaSA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG59XG4ubmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdiA+IGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGEge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubmF2IC5vcGVuID4gYSxcbi5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLm5hdiAub3BlbiA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ubmF2IC5uYXYtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDlweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xufVxuLm5hdiA+IGxpID4gYSA+IGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuLm5hdi10YWJzID4gbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cbi5uYXYtdGFicyA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xufVxuLm5hdi10YWJzID4gbGkgPiBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWVlZWVlICNlZWVlZWUgI2RkZDtcbn1cbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGEsXG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkge1xuICBmbG9hdDogbm9uZTtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAxJTtcbiAgfVxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICB9XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG4gIH1cbn1cbi5uYXYtcGlsbHMgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLm5hdi1waWxscyA+IGxpID4gYSB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXYtcGlsbHMgPiBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhLFxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLm5hdi1zdGFja2VkID4gbGkge1xuICBmbG9hdDogbm9uZTtcbn1cbi5uYXYtc3RhY2tlZCA+IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcbn1cbi5uYXYtanVzdGlmaWVkID4gbGkge1xuICBmbG9hdDogbm9uZTtcbn1cbi5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubmF2LWp1c3RpZmllZCA+IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAxJTtcbiAgfVxuICAubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ubmF2LXRhYnMtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4ubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICB9XG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG4gIH1cbn1cbi50YWItY29udGVudCA+IC50YWItcGFuZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFiLWNvbnRlbnQgPiAuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItaGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIG92ZXJmbG93LXg6IHZpc2libGU7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLm5hdmJhci1jb2xsYXBzZS5pbiB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC5uYXZiYXItY29sbGFwc2UuY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuICAubmF2YmFyLWNvbGxhcHNlLmluIHtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG4gIC5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItc3RhdGljLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbn1cbkBtZWRpYSAobWF4LWRldmljZS13aWR0aDogNDgwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuLmNvbnRhaW5lciA+IC5uYXZiYXItaGVhZGVyLFxuLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuLmNvbnRhaW5lciA+IC5uYXZiYXItY29sbGFwc2UsXG4uY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyID4gLm5hdmJhci1oZWFkZXIsXG4gIC5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWhlYWRlcixcbiAgLmNvbnRhaW5lciA+IC5uYXZiYXItY29sbGFwc2UsXG4gIC5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbi5uYXZiYXItc3RhdGljLXRvcCB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXN0YXRpYy10b3Age1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDMwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wLFxuICAubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3Age1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItd2lkdGg6IDFweCAwIDA7XG59XG4ubmF2YmFyLWJyYW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDE1cHggMTVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubmF2YmFyLWJyYW5kID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhciA+IC5jb250YWluZXIgLm5hdmJhci1icmFuZCxcbiAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgLm5hdmJhci1icmFuZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICB9XG59XG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG59XG4ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXItbmF2IHtcbiAgbWFyZ2luOiA3LjVweCAtMTVweDtcbn1cbi5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhLFxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVyIHtcbiAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1uYXYge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAubmF2YmFyLW5hdiA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIH1cbn1cbi5uYXZiYXItZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyBsYWJlbCxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1ncm91cDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1mb3JtIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4ubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4ubmF2YmFyLWJ0biB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm5hdmJhci1idG4uYnRuLXNtIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5uYXZiYXItYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ubmF2YmFyLXRleHQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItdGV4dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB+IC5uYXZiYXItcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuLm5hdmJhci1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICBjb2xvcjogIzVlNWU1ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNjY2M7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbiAgY29sb3I6ICM1NTU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzc3NztcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICM1NTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2NjYztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbGluayB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGluayB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzMzMztcbn1cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICNjY2M7XG59XG4ubmF2YmFyLWludmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBib3JkZXItY29sb3I6ICMwODA4MDg7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRleHQge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGEsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGU6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICMxMDEwMTA7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAub3BlbiA+IGEsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICBjb2xvcjogI2ZmZjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZHJvcGRvd24taGVhZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICMwODA4MDg7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICM5ZDlkOWQ7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3ZlcixcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWxpbmsge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWxpbms6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmsge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjNDQ0O1xufVxuLmJyZWFkY3J1bWIge1xuICBwYWRkaW5nOiA4cHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmJyZWFkY3J1bWIgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5icmVhZGNydW1iID4gbGkgKyBsaTpiZWZvcmUge1xuICBjb250ZW50OiBcIi9cXDAwYTBcIjtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJyZWFkY3J1bWIgPiAuYWN0aXZlIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5wYWdpbmF0aW9uID4gbGkgPiBhLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLnBhZ2luYXRpb24gPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbn1cbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5wYWdpbmF0aW9uID4gbGkgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46aG92ZXIsXG4ucGFnaW5hdGlvbiA+IGxpID4gYTpmb2N1cyxcbi5wYWdpbmF0aW9uID4gbGkgPiBzcGFuOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICMwMDljYTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGEsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW46aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpmb2N1cyB7XG4gIHotaW5kZXg6IDM7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gc3Bhbixcbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gc3Bhbjpmb2N1cyxcbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gYSxcbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucGFnaW5hdGlvbi1sZyA+IGxpID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGkgPiBzcGFuIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG59XG4ucGFnaW5hdGlvbi1sZyA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2cHg7XG59XG4ucGFnaW5hdGlvbi1sZyA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG59XG4ucGFnaW5hdGlvbi1zbSA+IGxpID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGkgPiBzcGFuIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5wYWdpbmF0aW9uLXNtID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYWdpbmF0aW9uLXNtID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYWdlciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5wYWdlciBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5wYWdlciBsaSA+IGEsXG4ucGFnZXIgbGkgPiBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbn1cbi5wYWdlciBsaSA+IGE6aG92ZXIsXG4ucGFnZXIgbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLnBhZ2VyIC5uZXh0ID4gYSxcbi5wYWdlciAubmV4dCA+IHNwYW4ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4ucGFnZXIgLnByZXZpb3VzID4gYSxcbi5wYWdlciAucHJldmlvdXMgPiBzcGFuIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ucGFnZXIgLmRpc2FibGVkID4gYSxcbi5wYWdlciAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IGE6Zm9jdXMsXG4ucGFnZXIgLmRpc2FibGVkID4gc3BhbiB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcbn1cbmEubGFiZWw6aG92ZXIsXG5hLmxhYmVsOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmxhYmVsOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5idG4gLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG4ubGFiZWwtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7XG59XG4ubGFiZWwtZGVmYXVsdFtocmVmXTpob3Zlcixcbi5sYWJlbC1kZWZhdWx0W2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbn1cbi5sYWJlbC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1wcmltYXJ5W2hyZWZdOmhvdmVyLFxuLmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl06aG92ZXIsXG4ubGFiZWwtc3VjY2Vzc1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtaW5mb1tocmVmXTpob3Zlcixcbi5sYWJlbC1pbmZvW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5sYWJlbC13YXJuaW5nW2hyZWZdOmhvdmVyLFxuLmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xufVxuLmxhYmVsLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG59XG4ubGFiZWwtZGFuZ2VyW2hyZWZdOmhvdmVyLFxuLmxhYmVsLWRhbmdlcltocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMzE5NWQ7XG59XG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYmFkZ2U6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ0biAuYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbn1cbi5idG4teHMgLmJhZGdlLFxuLmJ0bi1ncm91cC14cyA+IC5idG4gLmJhZGdlIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAxcHggNXB4O1xufVxuYS5iYWRnZTpob3ZlcixcbmEuYmFkZ2U6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSA+IC5iYWRnZSxcbi5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+IC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmxpc3QtZ3JvdXAtaXRlbSA+IC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0gPiAuYmFkZ2UgKyAuYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5uYXYtcGlsbHMgPiBsaSA+IGEgPiAuYmFkZ2Uge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uanVtYm90cm9uIGgxLFxuLmp1bWJvdHJvbiAuaDEge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5qdW1ib3Ryb24gcCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbn1cbi5qdW1ib3Ryb24gPiBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNkNWQ1ZDU7XG59XG4uY29udGFpbmVyIC5qdW1ib3Ryb24sXG4uY29udGFpbmVyLWZsdWlkIC5qdW1ib3Ryb24ge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5qdW1ib3Ryb24gLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5qdW1ib3Ryb24ge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4O1xuICB9XG4gIC5jb250YWluZXIgLmp1bWJvdHJvbixcbiAgLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxuICAuanVtYm90cm9uIGgxLFxuICAuanVtYm90cm9uIC5oMSB7XG4gICAgZm9udC1zaXplOiA2M3B4O1xuICB9XG59XG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xufVxuLnRodW1ibmFpbCA+IGltZyxcbi50aHVtYm5haWwgYSA+IGltZyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5hLnRodW1ibmFpbDpob3ZlcixcbmEudGh1bWJuYWlsOmZvY3VzLFxuYS50aHVtYm5haWwuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnRodW1ibmFpbCAuY2FwdGlvbiB7XG4gIHBhZGRpbmc6IDlweDtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4uYWxlcnQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmFsZXJ0IGg0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYWxlcnQgLmFsZXJ0LWxpbmsge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbGVydCA+IHAsXG4uYWxlcnQgPiB1bCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYWxlcnQgPiBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5hbGVydC1kaXNtaXNzYWJsZSxcbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDM1cHg7XG59XG4uYWxlcnQtZGlzbWlzc2FibGUgLmNsb3NlLFxuLmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMnB4O1xuICByaWdodDogLTIxcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICBib3JkZXItY29sb3I6ICNkNmU5YzY7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuLmFsZXJ0LXN1Y2Nlc3MgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYzllMmIzO1xufVxuLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzJiNTQyYztcbn1cbi5hbGVydC1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbi5hbGVydC1pbmZvIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2E2ZTFlYztcbn1cbi5hbGVydC1pbmZvIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMyNDUyNjk7XG59XG4uYWxlcnQtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uYWxlcnQtd2FybmluZyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmN2UxYjU7XG59XG4uYWxlcnQtd2FybmluZyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjNjY1MTJjO1xufVxuLmFsZXJ0LWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG4gIGJvcmRlci1jb2xvcjogI2ViY2NkMTtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG4uYWxlcnQtZGFuZ2VyIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2U0YjljMDtcbn1cbi5hbGVydC1kYW5nZXIgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzg0MzUzNDtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbi5wcm9ncmVzcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ucHJvZ3Jlc3MtYmFyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci5hY3RpdmUge1xuICAtd2Via2l0LWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xuICAtby1hbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG59XG4ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5tZWRpYSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4ubWVkaWE6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLm1lZGlhLFxuLm1lZGlhLWJvZHkge1xuICB6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1lZGlhLWJvZHkge1xuICB3aWR0aDogMTAwMDBweDtcbn1cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5tZWRpYS1vYmplY3QuaW1nLXRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi5tZWRpYS1yaWdodCxcbi5tZWRpYSA+IC5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhLWJvZHkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm1lZGlhLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLm1lZGlhLWxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubGlzdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xufVxuLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgY29sb3I6ICM1NTU7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiAjMzMzO1xufVxuYS5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIGNvbG9yOiAjYmRmY2ZmO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNzYzZDtcbiAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICMzMTcwOGY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGUzZjM7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMxNzA4ZjtcbiAgYm9yZGVyLWNvbG9yOiAjMzE3MDhmO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcbiAgYm9yZGVyLWNvbG9yOiAjOGE2ZDNiO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmNjY2M7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5NDQ0MjtcbiAgYm9yZGVyLWNvbG9yOiAjYTk0NDQyO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5wYW5lbCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiAxNXB4O1xufVxuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsLWhlYWRpbmcgPiAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5wYW5lbC10aXRsZSA+IGEsXG4ucGFuZWwtdGl0bGUgPiBzbWFsbCxcbi5wYW5lbC10aXRsZSA+IC5zbWFsbCxcbi5wYW5lbC10aXRsZSA+IHNtYWxsID4gYSxcbi5wYW5lbC10aXRsZSA+IC5zbWFsbCA+IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5wYW5lbC1mb290ZXIge1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0sXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLnBhbmVsLWhlYWRpbmcgKyAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cbi5saXN0LWdyb3VwICsgLnBhbmVsLWZvb3RlciB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG4ucGFuZWwgPiAudGFibGUsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAudGFibGUgY2FwdGlvbixcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlIGNhcHRpb24sXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUgY2FwdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLFxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUtcmVzcG9uc2l2ZSxcbi5wYW5lbCA+IC50YWJsZSArIC5wYW5lbC1ib2R5LFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgKyAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xufVxuLnBhbmVsID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aCxcbi5wYW5lbCA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3JkZXItdG9wOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbCArIC5wYW5lbCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSxcbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZjVmNWY1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLXByaW1hcnkge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZGZmMGQ4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLWluZm8ge1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMTcwOGY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZDllZGY3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzE3MDhmO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLXdhcm5pbmcge1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZmNmOGUzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE2ZDNiO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLWRhbmdlciB7XG4gIGJvcmRlci1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG59XG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNlYmNjZDE7XG59XG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmMmRlZGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTQ0NDI7XG59XG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ViY2NkMTtcbn1cbi5lbWJlZC1yZXNwb25zaXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbi5lbWJlZC1yZXNwb25zaXZlIGlmcmFtZSxcbi5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLFxuLmVtYmVkLXJlc3BvbnNpdmUgb2JqZWN0LFxuLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG59XG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OSB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG4uZW1iZWQtcmVzcG9uc2l2ZS00YnkzIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbn1cbi53ZWxsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTlweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UzZTNlMztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi53ZWxsIGJsb2NrcXVvdGUge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi53ZWxsLWxnIHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLndlbGwtc20ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICBvcGFjaXR5OiAwLjI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0yMCk7XG59XG4uY2xvc2U6aG92ZXIsXG4uY2xvc2U6Zm9jdXMge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbn1cbmJ1dHRvbi5jbG9zZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLm1vZGFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNTA7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3V0bGluZTogMDtcbn1cbi5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbn1cbi5tb2RhbC5pbiAubW9kYWwtZGlhbG9nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxMHB4O1xufVxuLm1vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIG91dGxpbmU6IDA7XG59XG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi5tb2RhbC1iYWNrZHJvcC5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLm1vZGFsLWJhY2tkcm9wLmluIHtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mztcbn1cbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxNXB4O1xufVxuLm1vZGFsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0biArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm1vZGFsLWZvb3RlciAuYnRuLWdyb3VwIC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIH1cbiAgLm1vZGFsLXNtIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubW9kYWwtbGcge1xuICAgIHdpZHRoOiA5MDBweDtcbiAgfVxufVxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwNzA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cbi50b29sdGlwLmluIHtcbiAgb3BhY2l0eTogMC45O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9OTApO1xufVxuLnRvb2x0aXAudG9wIHtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgcGFkZGluZzogNXB4IDA7XG59XG4udG9vbHRpcC5yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLnRvb2x0aXAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi50b29sdGlwLmxlZnQge1xuICBtYXJnaW4tbGVmdDogLTNweDtcbiAgcGFkZGluZzogMCA1cHg7XG59XG4udG9vbHRpcC1pbm5lciB7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnRvb2x0aXAudG9wIC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLnRvcC1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLnJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCA1cHggMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAubGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogMDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggMCA1cHggNXB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5ib3R0b20tbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDYwO1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IDI3NnB4O1xuICBwYWRkaW5nOiAxcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLnBvcG92ZXIudG9wIHtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG59XG4ucG9wb3Zlci5yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLnBvcG92ZXIuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5wb3BvdmVyLmxlZnQge1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG59XG4ucG9wb3Zlci10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xufVxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuLnBvcG92ZXIgPiAuYXJyb3csXG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gIGJvcmRlci13aWR0aDogMTFweDtcbn1cbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICBjb250ZW50OiBcIlwiO1xufVxuLnBvcG92ZXIudG9wID4gLmFycm93IHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTExcHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGJvdHRvbTogLTExcHg7XG59XG4ucG9wb3Zlci50b3AgPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgYm90dG9tOiAxcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbn1cbi5wb3BvdmVyLnJpZ2h0ID4gLmFycm93IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0xMXB4O1xuICBtYXJnaW4tdG9wOiAtMTFweDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuLnBvcG92ZXIucmlnaHQgPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgbGVmdDogMXB4O1xuICBib3R0b206IC0xMHB4O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIuYm90dG9tID4gLmFycm93IHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTExcHg7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHRvcDogLTExcHg7XG59XG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgdG9wOiAxcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbn1cbi5wb3BvdmVyLmxlZnQgPiAuYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IC0xMXB4O1xuICBtYXJnaW4tdG9wOiAtMTFweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4ucG9wb3Zlci5sZWZ0ID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHJpZ2h0OiAxcHg7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG4gIGJvdHRvbTogLTEwcHg7XG59XG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2Fyb3VzZWwtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xuICAtby10cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG4gIHRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBhID4gaW1nIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgYWxsIGFuZCAodHJhbnNmb3JtLTNkKSwgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gICAgLW1vei1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAgIHBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ubmV4dCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlLnJpZ2h0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLnByZXYsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZS5sZWZ0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ubmV4dC5sZWZ0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5wcmV2LnJpZ2h0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUsXG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlIHtcbiAgbGVmdDogMDtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCB7XG4gIGxlZnQ6IDEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIGxlZnQ6IC0xMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQubGVmdCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2LnJpZ2h0IHtcbiAgbGVmdDogMDtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUubGVmdCB7XG4gIGxlZnQ6IC0xMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZS5yaWdodCB7XG4gIGxlZnQ6IDEwMCU7XG59XG4uY2Fyb3VzZWwtY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxNSU7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sLmxlZnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM4MDAwMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7XG59XG4uY2Fyb3VzZWwtY29udHJvbC5yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAwMCcsIGVuZENvbG9yc3RyPScjODAwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7XG59XG4uY2Fyb3VzZWwtY29udHJvbDpob3Zlcixcbi5jYXJvdXNlbC1jb250cm9sOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMC45O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9OTApO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICB6LWluZGV4OiA1O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICByaWdodDogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IHNlcmlmO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldjpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDM5Jztcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAzYSc7XG59XG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbWFyZ2luOiAxcHg7XG4gIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMCBcXDk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyAuYWN0aXZlIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmNhcm91c2VsLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1JTtcbiAgcmlnaHQ6IDE1JTtcbiAgYm90dG9tOiAyMHB4O1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5jYXJvdXNlbC1jYXB0aW9uIC5idG4ge1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWNhcHRpb24ge1xuICAgIGxlZnQ6IDIwJTtcbiAgICByaWdodDogMjAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBib3R0b206IDIwcHg7XG4gIH1cbn1cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZGwtaG9yaXpvbnRhbCBkZDpiZWZvcmUsXG4uZGwtaG9yaXpvbnRhbCBkZDphZnRlcixcbi5jb250YWluZXI6YmVmb3JlLFxuLmNvbnRhaW5lcjphZnRlcixcbi5jb250YWluZXItZmx1aWQ6YmVmb3JlLFxuLmNvbnRhaW5lci1mbHVpZDphZnRlcixcbi5yb3c6YmVmb3JlLFxuLnJvdzphZnRlcixcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YmVmb3JlLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlcixcbi5idG4tdG9vbGJhcjpiZWZvcmUsXG4uYnRuLXRvb2xiYXI6YWZ0ZXIsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpiZWZvcmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlcixcbi5uYXY6YmVmb3JlLFxuLm5hdjphZnRlcixcbi5uYXZiYXI6YmVmb3JlLFxuLm5hdmJhcjphZnRlcixcbi5uYXZiYXItaGVhZGVyOmJlZm9yZSxcbi5uYXZiYXItaGVhZGVyOmFmdGVyLFxuLm5hdmJhci1jb2xsYXBzZTpiZWZvcmUsXG4ubmF2YmFyLWNvbGxhcHNlOmFmdGVyLFxuLnBhZ2VyOmJlZm9yZSxcbi5wYWdlcjphZnRlcixcbi5wYW5lbC1ib2R5OmJlZm9yZSxcbi5wYW5lbC1ib2R5OmFmdGVyLFxuLm1vZGFsLWhlYWRlcjpiZWZvcmUsXG4ubW9kYWwtaGVhZGVyOmFmdGVyLFxuLm1vZGFsLWZvb3RlcjpiZWZvcmUsXG4ubW9kYWwtZm9vdGVyOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLmNsZWFyZml4OmFmdGVyLFxuLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIsXG4uY29udGFpbmVyOmFmdGVyLFxuLmNvbnRhaW5lci1mbHVpZDphZnRlcixcbi5yb3c6YWZ0ZXIsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLFxuLmJ0bi10b29sYmFyOmFmdGVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YWZ0ZXIsXG4ubmF2OmFmdGVyLFxuLm5hdmJhcjphZnRlcixcbi5uYXZiYXItaGVhZGVyOmFmdGVyLFxuLm5hdmJhci1jb2xsYXBzZTphZnRlcixcbi5wYWdlcjphZnRlcixcbi5wYW5lbC1ib2R5OmFmdGVyLFxuLm1vZGFsLWhlYWRlcjphZnRlcixcbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi5jZW50ZXItYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnNob3cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi50ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5ALW1zLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cbi52aXNpYmxlLXhzLFxuLnZpc2libGUtc20sXG4udmlzaWJsZS1tZCxcbi52aXNpYmxlLWxnIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnZpc2libGUteHMtYmxvY2ssXG4udmlzaWJsZS14cy1pbmxpbmUsXG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1zbS1ibG9jayxcbi52aXNpYmxlLXNtLWlubGluZSxcbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayxcbi52aXNpYmxlLW1kLWJsb2NrLFxuLnZpc2libGUtbWQtaW5saW5lLFxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtbGctYmxvY2ssXG4udmlzaWJsZS1sZy1pbmxpbmUsXG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXhzLFxuICB0ZC52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cy1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtc20sXG4gIHRkLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20tYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtbWQsXG4gIHRkLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLWxnLFxuICB0ZC52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhpZGRlbi14cyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuaGlkZGVuLXNtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuaGlkZGVuLW1kIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhpZGRlbi1sZyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1wcmludCxcbiAgdGQudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAuaGlkZGVuLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFU1MgVkFSSUFCTEVTXG4qKiAgICAgICAgICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiB2YXJpYWJsZXMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHBhbGV0dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi50b3AtYnVmZmVyLTEge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLnRvcC1idWZmZXItMiB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4udG9wLWJ1ZmZlci0zIHtcbiAgbWFyZ2luLXRvcDogNDVweDtcbn1cbi50b3AtYnVmZmVyLTQge1xuICBtYXJnaW4tdG9wOiA2MHB4O1xufVxuLnRvcC1idWZmZXItNSB7XG4gIG1hcmdpbi10b3A6IDc1cHg7XG59XG4udG9wLWJ1ZmZlci02IHtcbiAgbWFyZ2luLXRvcDogOTBweDtcbn1cbi50b3AtYnVmZmVyLTcge1xuICBtYXJnaW4tdG9wOiAxMDVweDtcbn1cbi50b3AtYnVmZmVyLTgge1xuICBtYXJnaW4tdG9wOiAxMjBweDtcbn1cbi50b3AtYnVmZmVyLTkge1xuICBtYXJnaW4tdG9wOiAxMzVweDtcbn1cbi50b3AtYnVmZmVyLTEwIHtcbiAgbWFyZ2luLXRvcDogMTUwcHg7XG59XG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTVBBQyBNQVRFUklBTFxuLyogICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbioqIE1peGluIG1hdGVyaWFsIHN0eWxlZCBmb3JtIGlucHV0cywgb3ZlcnJpZGluZyBib290c3RyYXAncyB1bmdvZGx5IHJvdW5kLW5lc3MuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIERFTU8gSFRNTCAtIHVzZSB0aGlzIGh0bWwgdG8gdGVzdCBhbGwgaW1wYWMgbWF0ZXJpYWwgZmVhdHVyZXMuXG48Zm9ybT5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8c2VsZWN0PlxuICAgICAgPG9wdGlvbj5WYWx1ZSAxPC9vcHRpb24+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+XG4qL1xuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQkFMIFNUWUxFU1xuKiogICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHN0eWxlcyBhcHBsaWVkIGdsb2JhbCBvciBpblxuKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBvciBtb3JlIGNvbXBvbmVudHMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmJvZHkge1xuICBoZWlnaHQ6IDEwMSUgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgaDIge1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIGgzIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgaDQge1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmFuYWx5dGljcyAucG9zaXRpdmUsXG4uYW5hbHl0aWNzIC5ncmVlbiB7XG4gIGNvbG9yOiBncmVlbiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAubmVnYXRpdmUsXG4uYW5hbHl0aWNzIC5yZWQge1xuICBjb2xvcjogI2VkMWU3OSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAucG9zaXRpdmUyIHtcbiAgY29sb3I6ICMzZmM0ZmYgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLm5lZ2F0aXZlMiB7XG4gIGNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIGEge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLmlucHV0LWdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIHNlbGVjdCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMzJweDtcbn1cbi5hbmFseXRpY3MgcHJlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogMXB4IDBweCA4cHggMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgOjotd2Via2l0LXNjcm9sbGJhcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgLmtwaSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg5NmIyO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Zlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgLmtwaSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5YTJiYjtcbn1cbi5hbmFseXRpY3MgLm5vcGFkZGluZyB7XG4gIHBhZGRpbmc6IDA7XG59XG4uYW5hbHl0aWNzIC5ub21hcmdpbiB7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmJ0bi5idG4tc2hhZGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MjYyZDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzBlMTgxYztcbiAgY29sb3I6ICM2MjZkNmQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uYW5hbHl0aWNzIC5idG4uYnRuLXNoYWRlZDpob3ZlciB7XG4gIGNvbG9yOiAjNmU3YTdhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAzNDNlO1xufVxuLmFuYWx5dGljcyAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC5sZWdlbmQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmFuYWx5dGljcyAubG9hZGVyIGkge1xuICBjb2xvcjogIzY3QkJFOTtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciBwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5hbmFseXRpY3MgLnJpZ2h0LXBhbmVsIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjZTZlNmU2O1xufVxuLmFuYWx5dGljcyAuc2VsZWN0b3Ige1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNjI2ZDZkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC50aWxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgaGVpZ2h0OiA0NXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC50aWxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyZjJmZjtcbn1cbi5hbmFseXRpY3MgLnRpbGUgLmNvbG9yZWQtYXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzRkM0RkY7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgbWluLXdpZHRoOiA4JTtcbn1cbi5hbmFseXRpY3MgLnRpbGUgLmNvbG9yZWQtYXJlYS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC50aWxlIC5tYWluLXRleHQge1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogMjBweCAwcHggMHB4IDVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUge1xuICBwYWRkaW5nOiA1cHg7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5YmE2YTc7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lIHtcbiAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lIGkuZmEge1xuICBtaW4td2lkdGg6IDEycHg7XG4gIG1pbi1oZWlnaHQ6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cgLmRhc2hlZCB7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LmxpbmVzLWdyb3VwIHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4ICNlNmVkZWU7XG59XG4udmVydGljYWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmhvcml6b250YWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0cy10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyNTI4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udG9vbHRpcC5pbXBhYy13aWRnZXRzLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyBzdHJvbmcge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5zb3J0YWJsZS10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zb3J0YWJsZS10aXRsZSBkaXYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5kaXZbbmctbWVzc2FnZXNdIHtcbiAgY29sb3I6ICNGRjAwMDA7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICNlMDFmNzQ7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNlMDFmNzQ7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnJvdy5uby1ndXR0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbltjbGFzc149XCJjb2wtXCJdLm5vLWd1dHRlcnMsXG5bY2xhc3MqPVwiIGNvbC1cIl0ubm8tZ3V0dGVycyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIGJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3MgI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC50aXRsZS1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0ge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIGNhbnZhcyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAucmlnaHQtcGFuZWwge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIgY2FudmFzIHtcbiAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA4MCUgIWltcG9ydGFudDtcbiAgfVxuICAqIHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhpcyBjb21tZW50cyBiZWxsb3cuIEl0J3MgdGhlIG1hcmtlcnMgdXNlZCBieSBndWxwLWluamVjdCB0byBpbmplY3RcbiAqICBhbGwgeW91ciBsZXNzIGZpbGVzIGF1dG9tYXRpY2FsbHlcbiAqL1xuLyogaW5qZWN0OmltcG9ydHMgKi9cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1oZWFkZXIge1xuICBmb250LXNpemU6IDIwcHg7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiA2cHggMTVweDtcbiAgY29sb3I6ICM5YmE2YTc7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0gLmFsZXJ0LXRvZ2dsZTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsID4gbGkubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogI2M0Y2FjYTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IC5mYS5mYS10b2dnbGUtb24sXG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSAuZmEuZmEtdG9nZ2xlLW9mZiB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5yZWNpcGllbnRzLWxpc3Qge1xuICBoZWlnaHQ6IDc1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2M0Y2FjYTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLnJlY2lwaWVudHMtbGlzdCBsaSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IGlucHV0LnJlY2lwaWVudC1zZWFyY2gge1xuICBjb2xvcjogYmxhY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwuYXZhaWxhYmxlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBtYXJnaW4tbGVmdDogMTAwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIHtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MucGRmLW1vZGUge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbn1cbi5hbmFseXRpY3Muc2hvdy1kaGIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcy5oaWRlLWRoYiB7XG4gIG9wYWNpdHk6IDA7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtaGVhZGluZyBpbWcge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBtYXgtaGVpZ2h0OiAxNTBweDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1oZWFkaW5nIGltZy5wZGYtbW9kZTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1oZWFkaW5nIC5jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzICNzdWItbWVudSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzICNzdWItbWVudSBoMyB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMyMzM4NDU7XG59XG4uYW5hbHl0aWNzICNzdWItbWVudSAuZmEuZmEtdGltZXMge1xuICBtYXJnaW46IDZweDtcbiAgY29sb3I6ICMzZDYxNzg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzMzg0NTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAwcHggNDVweCAxMHB4IDQ1cHg7XG4gIG1hcmdpbjogMTBweCAtNDVweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBDaHJvbWUvU2FmYXJpICovXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIEZpcmVmb3ggKi9cbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBJRTEwKyAqL1xuICAvKiBSdWxlcyBiZWxvdyBub3QgaW1wbGVtZW50ZWQgaW4gYnJvd3NlcnMgeWV0ICovXG4gIC1vLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3Ige1xuICAgIHBhZGRpbmc6IDAgMTVweCAxMHB4IDE1cHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIHtcbiAgcGFkZGluZzogMTVweCAwcHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMmQ0ODU5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSBwLmluc3RydWN0aW9uIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW46IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIHAuaW5zdHJ1Y3Rpb24ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIC53aWRnZXQtYWRkZWQuYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG9wYWNpdHk6IDA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIC5mYS5jbG9zZS1zZWxlY3RvciB7XG4gIGZsb2F0OiByaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBhZGRpbmc6IDZweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLmZhLmNsb3NlLXNlbGVjdG9yOmhvdmVyIHtcbiAgY29sb3I6ICM5OTk5OTk7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRvcC1jb250YWluZXIge1xuICBtYXJnaW46IDE1cHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWhlYWRlciB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogMjAwcHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWFyZ2luOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwOmhvdmVyLFxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHAuc2VsZWN0ZWQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4NDA0ZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0ODU5O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiBbY2xhc3MqPSdjb2wtJ106Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nOiAzcHggMTJweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmxpbmUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTMwM2I7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5saW5lLWl0ZW0uc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMnB4IDJweCAxMHB4IC00cHggYmxhY2s7XG4gIGJveC1zaGFkb3c6IC0ycHggMnB4IDEwcHggLTRweCBibGFjaztcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIC5hcnJvdy1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMzcHg7XG4gIHJpZ2h0OiAtMTFweDtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIC5hcnJvdy1pY29uIC5zcXVhcmUge1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDE3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiAuYXJyb3ctaWNvbiBpLmZhLmZhLWNhcmV0LXJpZ2h0IHtcbiAgZm9udC1zaXplOiA1MnB4O1xuICBjb2xvcjogIzk3N2JmMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEuNXB4O1xuICByaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUzMDNiO1xuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24taGVhZGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMge1xuICBwYWRkaW5nOiAzcHggMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAuZmEuZmEtcGx1cy1jaXJjbGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDNweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgaGVpZ2h0OiAwJTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSB7XG4gIHBhZGRpbmc6IDAgMTNweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4OiAwIDMxLjMzJTtcbiAgbWFyZ2luOiAwIDElO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzIzMzg0NTtcbiAgbWluLWhlaWdodDogMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHtcbiAgICBmbGV4OiAwIDEwMCU7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0gcC5saW5lLWl0ZW0ge1xuICBmbGV4LWdyb3c6IDE7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSB7XG4gIGhlaWdodDogMjBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tID4gLnN1Z2dlc3Rpb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tID4gLnN1Z2dlc3Rpb24gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tID4gLnN1Z2dlc3Rpb24gYTpob3ZlciB7XG4gIGNvbG9yOiAjMDBlNWYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCA+IGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgPiBkaXYgPiAqIHtcbiAgbWFyZ2luOiAwcHggM3B4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsIHNlbGVjdCB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBwYWRkaW5nLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAjbm8td2lkZ2V0cy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDE1MHB4O1xufVxuLmFuYWx5dGljcyAjbm8td2lkZ2V0cy1jb250YWluZXIgaW1nLmJnIHtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciAuaW1wYWMtaW5mby1tZXNzYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAjbm8td2lkZ2V0cy1jb250YWluZXIgLmltcGFjLWluZm8tbWVzc2FnZSAuaW5mby10ZXh0IHtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBwYWRkaW5nOiAyMHB4O1xuICBtaW4taGVpZ2h0OiAxMTVweDtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzLCAzOCwgNDUsIDAuNyk7XG59XG4uYW5hbHl0aWNzICN3aWRnZXRzLXNlY3Rpb24gI3dpZGdldHMtY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogNzAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXRzLXNlY3Rpb24gLnBsYWNlSG9sZGVyQm94IHtcbiAgbWFyZ2luOiAxMnB4O1xuICBoZWlnaHQ6IDI2N3B4O1xuICB3aWR0aDogMzAwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBib3JkZXI6IDJweCBkYXNoZWQgI2FiYzRjNjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5hbmFseXRpY3MubG9hZC1mYWlsZWQgcCB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cbi5hbmFseXRpY3MubG9hZC1mYWlsZWQgLnNlY29uZC1tc2cgcCB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4udG9vbHRpcC5pbXBhYy13aWRnZXQtc2VsZWN0b3ItdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IGlucHV0LFxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogMTUwcHg7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgLnRoYW5rcy1tZXNzYWdlIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4ubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtY3JlYXRlIC5idG4tY3JlYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5tb2RhbC5pbXBhYy1kYXNoYm9hcmQtY3JlYXRlIGgxIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUgLmZhLmZhLXRpbWVzIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUgLmNvbnRyb2wtbGFiZWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm1vZGFsLmltcGFjLWRhc2hib2FyZC1jcmVhdGUgLm1vZGFsLWZvb3RlciAubG9hZGVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYmM0YzY7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyLXJvdyB7XG4gIG1hcmdpbi10b3A6IDU0cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyLXJvdy5wZGYtbW9kZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIge1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5idG4ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogM3B4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC50aXRsZS1jb250YWluZXIgaDEge1xuICBtYXJnaW46IDBweDtcbiAgY29sb3I6IGJsYWNrO1xuICBjdXJzb3I6IGF1dG87XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC10aXRsZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlOmhvdmVyIHtcbiAgY29sb3I6ICM3MzRkZWI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC10aXRsZSBpLmZhLmZhLXBlbmNpbCB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC10aXRsZSBpLmZhLmZhLXBlbmNpbDpob3ZlciB7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IHtcbiAgbWFyZ2luOiA1cHggMHB4IDEwcHggMzBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM5NzdiZjA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOTc3YmYwO1xuICB3aWR0aDogMzAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmVkZWU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIHtcbiAgY29sb3I6ICMxNzI2MmQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24uZGFzaGJvYXJkLWNyZWF0ZSB7XG4gIGhlaWdodDogMzNweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uLmRhc2hib2FyZC1jcmVhdGUgLmJ0biB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIGkuZmEuZmEtcGVuY2lsIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxNSU7XG4gIGhlaWdodDogMzBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIGkuZmEuZmEtcGVuY2lsOmhvdmVyIHtcbiAgY29sb3I6ICM3MzRkZWI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiBzcGFuLm5hbWUge1xuICB3aWR0aDogODUlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmNoYW5nZS1uYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMwcHg7XG4gIGxlZnQ6IDIwcHg7XG4gIHdpZHRoOiA2MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzI2MmQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDRweCBibGFjaztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDRweCBibGFjaztcbiAgei1pbmRleDogNTA7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5jaGFuZ2UtbmFtZSAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXRhLXNvdXJjZS1sYWJlbCB7XG4gIGNvbG9yOiAjMTcyNjJkO1xuICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgbWFyZ2luOiAwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5sb2FkZXItY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAubG9hZGVyLWNvbnRhaW5lciAubG9hZGluZy1zcGlubmVyIHtcbiAgY29sb3I6ICM2N0JCRTk7XG4gIGZvbnQtc2l6ZTogNDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGk6bGFzdC1jaGlsZCA+IGEsXG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCA+IGEge1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGk6bGFzdC1jaGlsZCA+IGEgdGFiLWhlYWRpbmcgYSxcbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkID4gYSB0YWItaGVhZGluZyBhIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpID4gYSB7XG4gIHBhZGRpbmc6IDEwcHggOHB4IDEwcHggMTVweDtcbiAgbWFyZ2luOiAwIDJweCAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWJjNGM2O1xuICBjb2xvcjogYmxhY2s7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaS5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaSA+IGEge1xuICBtaW4td2lkdGg6IDBweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgdGFiLWhlYWRpbmcgYSB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciB0YWItaGVhZGluZyBhLmNsb3NlLWxpbmsge1xuICBib3JkZXItYm90dG9tOiAwcHggc29saWQ7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTlweDtcbiAgcmlnaHQ6IDFweDtcbiAgY29sb3I6IGJsYWNrO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIC50ZW1wbGF0ZXMtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIC50ZW1wbGF0ZXMtdG9nZ2xlIGkuZmEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIC50ZW1wbGF0ZXMtdG9nZ2xlIGkuZmEuZmEtdG9nZ2xlLW9uIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDFweCAwcHggI2NjYztcbiAgaGVpZ2h0OiAxMzBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyAudGVtcGxhdGUge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2VjO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIC50ZW1wbGF0ZTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMjMyLCAxMTksIDAuNjIpO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIC50ZW1wbGF0ZS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjksIDE5NywgNTcsIDAuNjIpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+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+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtZnJvbS1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciAuc2RwLXRvLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMjIwcHg7XG4gIG1pbi1oZWlnaHQ6IDk1cHg7XG4gIG1heC1oZWlnaHQ6IDk1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLnRyaWdnZXJlZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciB7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkIC5rcGktdGV4dCAuZW1waGFzaXMge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLnRvcC1saW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS10ZXh0IHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktdGV4dCAuZW1waGFzaXMge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktaWNvbiB7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLWljb24gLmZhLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmVkaXRpbmcge1xuICBtaW4taGVpZ2h0OiAxODVweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuc3RhdGljIC5rcGktdmFsdWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLnRvcC1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtaW4taGVpZ2h0OiA3cHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGdyZXk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLnRvcC1saW5lLnRyaWdnZXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogOTBweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktY29udGVudC5lZGl0aW5nIHtcbiAgbWluLWhlaWdodDogMTgwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyB7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzODBweCkge1xuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cge1xuICAgIHBhZGRpbmc6IDEwcHggM3B4O1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmVtcGhhc2lzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmVtcGhhc2lzIC5yZWFsLXZhbHVlIHtcbiAgY29sb3I6ICM2NzY3Njc7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmNhcHRpb24ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQge1xuICBwYWRkaW5nOiA3cHggMDtcbiAgY29sb3I6IGdyZXk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgPiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0LnRyaWdnZXJlZCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmNhcHRpb24ge1xuICBmb250LXNpemU6IDExcHg7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuZW1waGFzaXMge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBjb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktaWNvbi50cmlnZ2VyZWQge1xuICBjb2xvcjogYmxhY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAwO1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLW5hbWUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLW5hbWUgaDYge1xuICBtYXJnaW46IDAgMCA1cHggMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucmVhbC12YWx1ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5hbGVydC1jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIGJhY2tncm91bmQ6ICNmZjk5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvIDVweCBhdXRvO1xuICBib3gtc2hhZG93OiBub25lO1xuICBwYWRkaW5nOiAycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC13YXRjaGFibGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtdW5pdCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC13YXRjaGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBjb2xvcjogIzhkOGQ4ZDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC11bml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDZweDtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiAjOWE5YTlhO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wYXJhbS1uYW1lIHtcbiAgZm9udC1zaXplOiA4NSU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEge1xuICAvKiBGbGF0dGVuIGRlciBCb290c3RyYXAgKi9cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAud2VsbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAud2VsbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubmF2YmFyLWlubmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnBvcG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnBvcG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmJ0bixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuYnRuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC50b29sdGlwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC50b29sdGlwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgcHJlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHByZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucHJvZ3Jlc3MsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnByb2dyZXNzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5tb2RhbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubW9kYWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFkZC1vbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuYWRkLW9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5hbGVydCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuYWxlcnQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC50YWJsZS1ib3JkZXJlZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubmF2ID4gLmFjdGl2ZSA+IGEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm5hdiA+IC5hY3RpdmUgPiBhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5kcm9wZG93bi1tZW51LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5kcm9wZG93bi1tZW51LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC50b29sdGlwLWlubmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC50b29sdGlwLWlubmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5iYWRnZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuYmFkZ2UsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW1nLXBvbGFyb2lkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbWctcG9sYXJvaWQge1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJvZHksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYm9keSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBib2R5OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBib2R5OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQ6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWE6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJvZHk6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBib2R5OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQ6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWE6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYTpob3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGZpZWxkc2V0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwIDAgMS43NXJlbTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAxLjMxMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMzEyNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1pbmxpbmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1pbmxpbmUgPiAuaW0tZm9ybS1ncm91cCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUgPiAuaW0tZm9ybS1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAwLjE3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjE3NXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1pbmxpbmUgPiAuYnRuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSA+IC5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQge1xuICBoZWlnaHQ6IDIuMzc1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuMzEyNXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMC4xNTYyNXJlbTtcbiAgei1pbmRleDogMTtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWJhcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAwLjA3ODEyNXJlbSBzb2xpZCAjOTk5O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMC4xNTYyNXJlbTtcbiAgd2lkdGg6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAtMC4wNzgxMjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjI4cyBlYXNlLCB3aWR0aCAwLjI4cyBlYXNlO1xuICB6LWluZGV4OiAyO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIHtcbiAgY29sb3I6ICMzMzM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzgwODA4MDtcbiAgdG9wOiAtMS4yNXJlbTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8gbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8gbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLXJhZGlvIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLXJhZGlvIGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMC4zMTI1cmVtO1xuICBsZWZ0OiAtMC4zMTI1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBjb2xvcjogIzk5OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWFyZ2luOiAwLjMxMjVyZW07XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI4cyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMC4xNTYyNXJlbSBzb2xpZCBjdXJyZW50Q29sb3I7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGJvcmRlci1jb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gbGFiZWw6aG92ZXIgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB6LWluZGV4OiAwO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXItcmFkaXVzOiAwLjA3ODEyNXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI4cyBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIDAuMjhzO1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIHRvcDogMC44MTI1cmVtO1xuICBsZWZ0OiAwLjQ3NXJlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMDc4MTI1cmVtICNmZmY7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHRvcDogMC4zNzVyZW07XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgaGVpZ2h0OiAwLjYyNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIGhlaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjI4cztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tbWVzc2FnZXMge1xuICBmb250LXNpemU6IDEuMDQxNjY2NjdyZW07XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMik7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvciAubGVnZW5kLmxlZ2VuZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1oZWxwZXIge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yIC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzYwYTdlNDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBjb2xvcjogIzMzMztcbiAgbWFyZ2luOiAwLjdyZW0gMDtcbiAgcGFkZGluZzogMC40Mzc1cmVtIDEuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbiBzcGFuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbjpob3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbjphY3RpdmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbjpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0NnB4O1xuICB3aWR0aDogNDZweDtcbiAgZmxleDogMCAwIDU2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiA0cHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYjpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiOmFjdGl2ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0td2Fybixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXdhcm46aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogI2NhMWM2ODtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktYWxlcnRzLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMnB4O1xuICByaWdodDogMTVweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdWQ6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLXJlbW92ZS5pbS1mYWIuaW0td2FybiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTJweDtcbiAgcmlnaHQ6IC0xMXB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLXJlbW92ZS5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNjYTFjNjg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWRhdGEtbG9hZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDk1cHg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtleS1zdGF0cyAua3BpIHtcbiAgbWluLWhlaWdodDogODBweDtcbn1cbi53aWRnZXQtaXRlbSB7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG4gIHBhZGRpbmc6IDEycHg7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAwcHg7XG59XG4ud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDBweCAwcHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNjOGQ3ZDk7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDQxcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgei1pbmRleDogNDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNjOGQ3ZDk7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC53aWRnZXQtaXRlbSAuY29udGVudCB7XG4gICAgaGVpZ2h0OiAyNTBweDtcbiAgfVxuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICBtYXgtaGVpZ2h0OiAxMjVweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwYWRkaW5nOiAzcHggMTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2E4YWJhYjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuLmJ0bi1kZWZhdWx0OmhvdmVyIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzhlOTI5MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E4YWJhYjtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZmNmYztcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2RmZTJlMjtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCBoNSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhY2IwYjE7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzcyNzI4Yjtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudC5hY2Nlc3NpYmxlIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuY29udGVudC10ZW1wbGF0ZS13cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAuY29sbGFwc2Uge1xuICBkaXNwbGF5OiBpbmhlcml0O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5mYS1wbHVzLXNxdWFyZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ3XCI7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmLnRpdGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMioxMnB4ICk7XG4gIHotaW5kZXg6IDM7XG4gIHBhZGRpbmctcmlnaHQ6IDFweDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYudGl0bGUgaDYge1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYudGljayBpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDM1JTtcbiAgbGVmdDogNDYlO1xuICBmb250LXNpemU6IDEwMHB4O1xuICBvcGFjaXR5OiAuNTtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6IGJsYWNrO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZiAud2lkZ2V0LWhvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiA5cHg7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICB6LWluZGV4OiAxO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZiAud2lkZ2V0LWhvdmVyOmhvdmVyIHtcbiAgb3BhY2l0eTogLjU7XG4gIGJhY2tncm91bmQ6ICNDQ0NGRDA7XG59XG4ud2lkZ2V0LWl0ZW0gLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lID4gW2NsYXNzKj0nY29sLSddIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXksXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiAzO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMjVweDtcbiAgbGVmdDogNTAlO1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA4NSU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbiAgei1pbmRleDogNDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAudGl0bGUsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgcCxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC5idG4sXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC5idG4ge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBwYWRkaW5nOiAzcHg7XG4gIHotaW5kZXg6IDY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUgYSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gIHdpZHRoOiA5MCU7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbjogNXB4O1xufVxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLnRpdGxlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuYnRuLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50b3Age1xuICBoZWlnaHQ6IDQwcHg7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50b3AgYS5iYWNrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1zdHJpcGVkIHRyLm9yaWdpbjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoNTY1cHggLSA2MHB4KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGlucHV0LmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jZHVwbGljYXRlLXRyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgLmZhLmZhLXRpbWVzIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsLmludm9pY2VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTYwMDtcbn1cbiNkdXBsaWNhdGUtdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5iaWxscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNTdjYjE7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiA1O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2Uge1xuICB6LWluZGV4OiA2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdG9wOiA0NXB4O1xuICBsZWZ0OiA3JTtcbiAgd2lkdGg6IDg2JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIHtcbiAgdG9wOiAzMHB4O1xuICBsZWZ0OiAzNSU7XG4gIHdpZHRoOiAzMCU7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gPiBsYWJlbCxcbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uID4gbGFiZWwge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gaW5wdXQuZm9ybS1jb250cm9sLFxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHNlbGVjdCB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuZGlzYWJsZSB7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAubmV2ZXItZGlzYWJsZSB7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4ge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnJlcGVhdC1idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5yZXBlYXQtYnRuIHNlbGVjdCB7XG4gIGhlaWdodDogMjJweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5yZXBlYXQtYnRuIC5idG4ge1xuICBmbG9hdDogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5iYWRnZSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuc2NoZWR1bGFibGUtc2VjdGlvbiAuaW50ZXJ2YWwtZmllbGQge1xuICB3aWR0aDogNDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5zY2hlZHVsYWJsZS1zZWN0aW9uIC5idG4tZ3JvdXAgc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLnNjaGVkdWxhYmxlLXNlY3Rpb24gLmJ0bi1ncm91cCAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3Age1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLmJhY2sgLmJ0bi5idG4tc20ge1xuICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLmJhY2sgLnNlYXJjaC1iYXIge1xuICB3aWR0aDogMTgwcHg7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLnJlc291cmNlLXR5cGUge1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzNzBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLnJlc291cmNlLXR5cGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLm5vLW1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLmJvdHRvbSB7XG4gIGhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLmJvdHRvbSAucGFnaW5hdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDU2NXB4IC0gMTAwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBpbnB1dC5idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciAuYWN0aW9ucyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIC5hY3Rpb25zIC5mYS5mYS10aW1lcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsLmludm9pY2VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxZDFiMTtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsLmJpbGxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UyYWViOTtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRkID4gLmV4cGVjdGVkLXBheW1lbnQtZGF0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ZCA+IC5leHBlY3RlZC1wYXltZW50LWRhdGUgLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuI3RyZW5kcy1hZGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4jdHJlbmRzLWFkZCAub3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogNTtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIHtcbiAgei1pbmRleDogNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRvcDogNDVweDtcbiAgbGVmdDogNyU7XG4gIHdpZHRoOiA4NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSB7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMTUlO1xuICB3aWR0aDogNzAlO1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLndyYXBwZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0ge1xuICB3aWR0aDogMjUlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gPiBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuZm9ybSBpbnB1dC5mb3JtLWNvbnRyb2wge1xuICB3aWR0aDogOTAlO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogMjhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyMnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTtcbn1cbiN0cmVuZHMtYWRkIC5tZXNzYWdlIC5mb3JtIC5idG4tZ3JvdXAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgbWFyZ2luOiA0cHggMCAxMHB4O1xufVxuI3RyZW5kcy1hZGQgLm1lc3NhZ2UgLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4jdHJlbmRzLWFkZCAubWVzc2FnZSAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgd2lkdGg6IDc0JTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyZW5kcy1saXN0IC50b3Age1xuICBoZWlnaHQ6IDQwcHg7XG59XG4jdHJlbmRzLWxpc3QgLnRvcCBhLmJhY2stbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jdHJlbmRzLWxpc3QgLnRvcCAucGFnaW5hdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNjBweCk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJlbmRzLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyZW5kcy1saXN0IC50YWJsZS1jb250YWluZXIgLmxpc3Rpbmcge1xuICBvdXRsaW5lLXN0eWxlOiBub25lO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLmN1cnJlbmN5IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3MuY3VycmVuY3kgc2VsZWN0IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXMge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zaG93LXN0YXR1czpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zaG93LXN0YXR1cyAuZmEuZmEtaW5mbyB7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA1cHggN3B4IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUge1xuICBjb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4gaS5mYS1jaGVjayB7XG4gIGNvbG9yOiAjZDFlNTVjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciB7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5jb25uZWN0b3Ige1xuICBwYWRkaW5nOiA0cHggMTNweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLmNvbm5lY3Rvci5hZGQtc2VwZXJhdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogNHB4IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3RlciBwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyLnJlbW92ZS1zZXBlcmF0b3Ige1xuICBib3JkZXI6IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN1Y2Nlc3MgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1Yztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBlbmRpbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnJ1bm5pbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmVycm9yIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5mYWlsZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnVua25vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmRpc2Nvbm5lY3RlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCAjY2NjO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnN1Y2Nlc3MgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1Yztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5wZW5kaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucnVubmluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmVycm9yIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZmFpbGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0udW5rbm93biAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmRpc2Nvbm5lY3RlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5tZXNzYWdlIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICBtYXJnaW4tdG9wOiA5cHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0gLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbjogMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5zdWNjZXNzIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDU1LCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5wZW5kaW5nIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucnVubmluZyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmVycm9yIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmZhaWxlZCAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS51bmtub3duIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmRpc2Nvbm5lY3RlZCAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS53aXRoLW1lc3NhZ2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ud2l0aC1tZXNzYWdlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlcjogMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYS5lcnJvciB7XG4gIGNvbG9yOiAjRkYwMDAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEud2FybiB7XG4gIGNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEuc3VjY2VzcyB7XG4gIGNvbG9yOiAjNDdmZjAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAudGFibGUtbGF5b3V0IHRhYmxlIHRoLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB0YWJsZSB0ZDpub3QoLm5lc3RlZC10YWJsZSkge1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmVkZWU7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCB0YWJsZSB0aDpub3QoOmZpcnN0LWNoaWxkKSxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgdGFibGUgdGQ6bm90KC5uZXN0ZWQtdGFibGUpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAudGFibGUtbGF5b3V0IHRhYmxlIHRoW25nLWNsaWNrXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC50YWJsZS1sYXlvdXQgI3RhYmxlLWxheW91dCA+IHRoZWFkIHRyOmZpcnN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlNmVkZWU7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnRhYmxlLWxheW91dCAjdGFibGUtbGF5b3V0IC5uZXN0ZWQtdGFibGUgaS5mYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIHtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAsIDEzMiwgMjI4LCAwLjE2KTtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgPiBkaXYudGFyZ2V0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xuICBjaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIGNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsID4gZGl2IHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC50ZXh0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCBpbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggd2hpdGU7XG4gIHBhZGRpbmc6IDNweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIGlucHV0W25hbWU9YW1vdW50XSB7XG4gIG1heC13aWR0aDogNzBweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDJweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbiB7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYXR0YWNoLXBhbmVsIC5hY3Rpb25zIGJ1dHRvbi5sb2FkaW5nIHtcbiAgcGFkZGluZzogM3B4IDIwcHg7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICB6LWluZGV4OiA2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdG9wOiA0NXB4O1xuICBsZWZ0OiA3JTtcbiAgd2lkdGg6IDg2JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwgLm1lc3NhZ2UgcCB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIGJ1dHRvbi5idG4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcyB3aWRnZXRzLWNvbW1vbi1jb25maXJtLW1vZGFsIC5tZXNzYWdlIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIHdpZHRoOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3VycmVuY3ktY29udmVyc2lvbnMucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogZG90dGVkIDFweCAjQjdDRENFO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogXCJMYXRvIFNlbWlib2xkXCIsIFwiTGF0b1wiO1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWw6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiTGF0byBNZWRpdW1cIiwgXCJMYXRvXCI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLWluZm8tY2lyY2xlIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLXRpbWVzLWNpcmNsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBmbGV4OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2FiYzRjNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC5rZXkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC52YWx1ZSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC50aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM0ZjU5NTk7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjBweDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWlucHV0IHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAgcGFkZGluZzogMHB4IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgLmVkaXRhYmxlLWJ1dHRvbnMgYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxN3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbjphY3RpdmUsXG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm8ge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI0ZGQzkyODtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWV4cG9ydCB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZXhwb3J0OmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoOmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdDpob3Zlcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQuZWRpdC1tb2RlIHtcbiAgY29sb3I6ICNjZmQ4NDk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkgLnBhcmFtLXNlbGVjdG9yIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIC5sZWdlbmQgPiAudGl0bGUgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNDkwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyLm5vLXNjcm9sbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAubm8tZGF0YS1ibG9jayB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJvdy5saW5lcy1ncm91cC5jYXNoIHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgcHJpbnQge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNDBweDtcbiAgYm90dG9tOiAzMHB4O1xuICB3aWR0aDogMTYwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdFtkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCBvcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qgb3B0aW9uW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gYnV0dG9uLmNsb3NlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5yb3cge1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogNjVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuY29tcGFyYWJsZS1lcnJvciBoNSB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICBjb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNsYXNzLWNvbXBhcmlzb24gLnBhcmFtLXNlbGVjdG9yIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDk0cHg7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uIGgzIHtcbiAgbWFyZ2luLXRvcDogODVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMTI1cHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwYWRkaW5nOiAzcHggMTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICM4ZTkyOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGFiYWI7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQgaDUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuYWNjb3VudC1jbGFzcy10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLnRpbWUtcGVyaW9kLWluZm8ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3RhdGVtZW50LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5iYWxhbmNlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5jdXJyZW5jeS1jZW50ZXJlZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuaGVhZGVycyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3BhY2VyIHtcbiAgbWluLWhlaWdodDogMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuY29tZS1iYWNrLWxhdGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAubmVnYXRpdmUyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5sZWdlbmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAucGF5YWJsZSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjNUI2NjY3O1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLm1lbWJlciAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCBidXR0b24ge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAubWVtYmVyIC5sZWdlbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5zZXBhcmF0b3Ige1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5lbXBsb3llZS1uYW1lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLWJhbGFuY2UgLmJhbGFuY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIGgzIHtcbiAgbWFyZ2luLXRvcDogMzNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b24ge1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b246aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLXRvb2xiYXIge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLWRheS1ncmlkLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy13aWRnZXQtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLmxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiA2OXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBmb250LXNpemU6IDExcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyBoMyB7XG4gIG1hcmdpbi10b3A6IDYzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5sZWdlbmQge1xuICBtYXJnaW4tdG9wOiAyM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLmN1cnJlbmN5IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLmxlZnQge1xuICAgIG1hcmdpbi10b3A6IDY5cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXRpbWVzaGVldHMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLmZhLmZhLWluZm8tY2lyY2xlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC5yaWdodC1jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmxvYWRlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDE5NHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJvdy50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sge1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIGZvcm0uZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMgaW5wdXQge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHdpZHRoOiAxMDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWRhdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiAjMWRlOWI2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIC50aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMmE0NDUzO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIC5kZWZpbmUtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLnByaWNlIHtcbiAgY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayAudGl0bGUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZWRlZTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24ge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDUzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyNTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjc1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUubWFpbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUubWFpbiAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUubWFpbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUubWFpbi5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUubWFpbi5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWdyb3d0aCAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWdyb3d0aCAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogNDlweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN5Y2xlIC5jaGFydC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUgLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDI4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDE3MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lci5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC5vcGVyYXRvciB7XG4gIGxpbmUtaGVpZ2h0OiA4NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnRpdGxlIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjQzRDQUNBO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBwYWRkaW5nLXRvcDogMzhweDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlcyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIC5jaGFydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cge1xuICBtYXJnaW46IDBweCAtNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cgPiBkaXYge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC50b3RhbCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIHtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCB7XG4gIG1hcmdpbjogMTVweCAwcHggMTBweCAwcHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4ubm9taW5hbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4udmFyaWF0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogNTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgaDMucmlnaHQge1xuICBtYXJnaW4tdG9wOiA1NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAuYW5hbHlzaXMge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDc1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCBoMyB7XG4gIG1hcmdpbjogMTVweCAxMHB4IDVweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnJpZ2h0LXBhbmVsIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDI4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjRTZFNkU2O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciAucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5zdWItbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE5NXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgd2lkdGg6IDEwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IHtcbiAgaGVpZ2h0OiA1NXB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5jb2xvcmVkLWFyZWEge1xuICBmb250LXNpemU6IDI2cHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTQxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLm1haW4tdGV4dCB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmE5ZjU7XG4gIGJvcmRlcjogc29saWQgMXB4ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5LmZvY3VzLFxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIgLmJ0bi5idG4tcHJpbWFyeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkge1xuICBwYWRkaW5nOiA4cHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93IHtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5hdHRhY2gta3BpLWZvcm0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6IDEwcHggMnB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtLmF0dGFjaC1rcGktZm9ybSBpbnB1dC5hdHRhY2gtdGFyZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5lcnJvci1tZXNzYWdlcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICB3aWR0aDogMTIwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoZWQta3BpcyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYXR0YWNoZWQta3BpLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogNzUlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuYWxlcnRzLWNvbmZpZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5hbGVydHMtY29uZmlnOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIGkge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMjFweDtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnNlbGVjdC1hY2NvdW50IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIC5yb3cge1xuICBtYXJnaW46IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBoNSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgYnV0dG9uLmJ0bi5idG4tc20ge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5kYXRlLWJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5idG4tZGFuZ2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbS5idG4taW5mbyB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciAudG9vbHRpcC1pbm5lciB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIC5kcm9wZG93bi1tZW51ID4gbGkgPiBkaXYgPiB0YWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciB7XG4gIG1heC1oZWlnaHQ6IDcwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciBbY29tbW9uLXRpbWUtcGVyaW9kLWluZm9dIHtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIHtcbiAgd2lkdGg6IDE1MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlNmU2O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMgYSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyBhLmFjdGl2ZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTRweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lci5yaWdodCB7XG4gIGxlZnQ6IDQ2cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIgLmFycm93LWJvcmRlciB7XG4gIGJvcmRlci10b3A6IDE0cHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIC5hcnJvdyB7XG4gIGJvcmRlci10b3A6IDE0cHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMnB4O1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMge1xuICBjb2xvcjogIzFFMzAzQjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5saW1pdC1lbnRyaWVzIGEub3B0aW9uLmJhZGdlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzMDNCO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUgLmZhLXRyYXNoLW8ge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbzpob3ZlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIGlucHV0IHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgYnV0dG9uIHtcbiAgd2lkdGg6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vbixcbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS1jaGVjay1jaXJjbGUge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYS5mYS10b2dnbGUtb2ZmLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNpcmNsZS10aGluIHtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IuY2xhc3NpYyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yLmNsYXNzaWMgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAwcHggMHB4IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1pbi13aWR0aDogMTUwcHg7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAjMDAwMDAwIDBweCAzcHggMTVweCAtM3B4O1xuICBib3gtc2hhZG93OiAjMDAwMDAwIDBweCAzcHggMTVweCAtM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciAucGFyYW0tc2VsZWN0b3ItbGFiZWwge1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBibGFjaztcbiAgY3Vyc29yOiB0ZXh0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIgLnBhcmFtLXNlbGVjdG9yLWxhYmVsOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2UyZTQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTkyZjM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIHBhZGRpbmc6IDJweCAwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBpbnB1dCB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIHtcbiAgbWFyZ2luOiAwcHggM3B4IDNweCAwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRTMwM0I7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzFFMzAzQjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiAwcHggLTNweCAwcHggM3B4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIgLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyLnVuY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItY29sb3I6ICNjMmM0YzQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyLnVuY2hlY2tlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBheXJvbGwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXlyb2xsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vbiB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGF5cm9sbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vZmYge1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vbixcbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNoZWNrLWNpcmNsZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9mZixcbi5hbmFseXRpY3MgLnNldHRpbmdzLnNvdXJjZS1zZWxlY3RvciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNpcmNsZS10aGluIHtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAudGFncy1jb2wge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgdGFncy1pbnB1dCAudGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHRhZ3MtaW5wdXQgLnRhZ3MgLnRhZy1pdGVtIHtcbiAgYmFja2dyb3VuZDogIzc5YTJiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAuaG9zdCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93IHtcbiAgbWFyZ2luOiAwcHggLTVweCA3cHggLTVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyA+IGRpdiB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cgLnN1Yi1zZXR0aW5nIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaSB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpLnJlZHVjZSB7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaS5leHBhbmQge1xuICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5kYXRhLWNvbnRhaW5lciB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAubGVmdC1wYW5lbCB7XG4gIHdpZHRoOiAxODBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDVweDtcbiAgbWFyZ2luOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0gaSB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSBzcGFuIHtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmxlZ2VuZC1pdGVtLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5yaWdodC1wYW5lbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAucmlnaHQtcGFuZWwgLmNhc2gtYmFsYW5jZS1jaGFydCB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5kYXRlcy1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNTBweCk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gcmVjdC5oaWdoY2hhcnRzLXBvaW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSBzcGFuIHtcbiAgd2lkdGg6IDExMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gc3BhbiBpbWcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA1NXB4O1xuICBoZWlnaHQ6IDI1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmRhdGVzLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gdHJhbnNhY3Rpb25zLWxpc3Qge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtaW52b2ljZXMtbGlzdCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1pbnZvaWNlcy1saXN0IHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLyogZW5kaW5qZWN0ICovXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8vXG4vLyAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuLy8gMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbi8vICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbi8vXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMVxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbi8vXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8vIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbi8vIGFuZCBGaXJlZm94LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbi8vXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbi8vIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbi8vXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gMVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDJcbn1cblxuLy9cbi8vIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuLy9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuLy8gSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuLy9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4vL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vXG4vLyBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4vLyBhY3RpdmUvaG92ZXIgc3RhdGUuXG4vL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBUZXh0LWxldmVsIHNlbWFudGljc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy9cbi8vIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbi8vIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuLy9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vL1xuLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuLy9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vL1xuLy8gQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4vL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIEdyb3VwaW5nIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbi8vXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4vL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4vLyBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4vL1xuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbi8vIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4vLyBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuLy8gQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuLy9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vXG4vLyAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuLy8gICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4vLyAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4vLyAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuLy8gICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuLy9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvLyAxXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbiAgY3Vyc29yOiBwb2ludGVyOyAvLyAzXG59XG5cbi8vXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuLy9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuLy9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4vLyB0aGUgVUEgc3R5bGVzaGVldC5cbi8vXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLy9cbi8vIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbi8vIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4vL1xuLy8gMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbi8vIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4vLyBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuLy8gZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuLy9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vXG4vLyAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4vLyBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4vLyBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy9cbi8vIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbi8vXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuLy8gMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuLy9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuLy8gTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4vL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4vL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vXG4vLyBHbHlwaGljb25zIGZvciBCb290c3RyYXBcbi8vXG4vLyBTaW5jZSBpY29ucyBhcmUgZm9udHMsIHRoZXkgY2FuIGJlIHBsYWNlZCBhbnl3aGVyZSB0ZXh0IGlzIHBsYWNlZCBhbmQgYXJlXG4vLyB0aHVzIGF1dG9tYXRpY2FsbHkgc2l6ZWQgdG8gbWF0Y2ggdGhlIHN1cnJvdW5kaW5nIGNoaWxkLiBUbyB1c2UsIGNyZWF0ZSBhblxuLy8gaW5saW5lIGVsZW1lbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgY2xhc3NlcywgbGlrZSBzbzpcbi8vXG4vLyA8YSBocmVmPVwiI1wiPjxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1zdGFyXCI+PC9zcGFuPiBTdGFyPC9hPlxuXG4vLyBJbXBvcnQgdGhlIGZvbnRzXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIHNyYzogdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LmVvdCcpO1xuICBzcmM6IHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LnN2ZyNAe2ljb24tZm9udC1zdmctaWR9JykgZm9ybWF0KCdzdmcnKTtcbn1cblxuLy8gQ2F0Y2hhbGwgYmFzZWNsYXNzXG4uZ2x5cGhpY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vIEluZGl2aWR1YWwgaWNvbnNcbi5nbHlwaGljb24tYXN0ZXJpc2sgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwMmFcIjsgfSB9XG4uZ2x5cGhpY29uLXBsdXMgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMDJiXCI7IH0gfVxuLmdseXBoaWNvbi1ldXJvLFxuLmdseXBoaWNvbi1ldXIgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBhY1wiOyB9IH1cbi5nbHlwaGljb24tbWludXMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIyMTJcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNjAxXCI7IH0gfVxuLmdseXBoaWNvbi1lbnZlbG9wZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjcwOVwiOyB9IH1cbi5nbHlwaGljb24tcGVuY2lsICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI3MGZcIjsgfSB9XG4uZ2x5cGhpY29uLWdsYXNzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAxXCI7IH0gfVxuLmdseXBoaWNvbi1tdXNpYyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwMlwiOyB9IH1cbi5nbHlwaGljb24tc2VhcmNoICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYXJ0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA1XCI7IH0gfVxuLmdseXBoaWNvbi1zdGFyICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwNlwiOyB9IH1cbi5nbHlwaGljb24tc3Rhci1lbXB0eSAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDdcIjsgfSB9XG4uZ2x5cGhpY29uLXVzZXIgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA4XCI7IH0gfVxuLmdseXBoaWNvbi1maWxtICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwOVwiOyB9IH1cbi5nbHlwaGljb24tdGgtbGFyZ2UgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRoICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDExXCI7IH0gfVxuLmdseXBoaWNvbi10aC1saXN0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMlwiOyB9IH1cbi5nbHlwaGljb24tb2sgICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTNcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE0XCI7IH0gfVxuLmdseXBoaWNvbi16b29tLWluICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNVwiOyB9IH1cbi5nbHlwaGljb24tem9vbS1vdXQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTZcIjsgfSB9XG4uZ2x5cGhpY29uLW9mZiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE3XCI7IH0gfVxuLmdseXBoaWNvbi1zaWduYWwgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxOFwiOyB9IH1cbi5nbHlwaGljb24tY29nICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyYXNoICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIwXCI7IH0gfVxuLmdseXBoaWNvbi1ob21lICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMVwiOyB9IH1cbi5nbHlwaGljb24tZmlsZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjJcIjsgfSB9XG4uZ2x5cGhpY29uLXRpbWUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIzXCI7IH0gfVxuLmdseXBoaWNvbi1yb2FkICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNFwiOyB9IH1cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjVcIjsgfSB9XG4uZ2x5cGhpY29uLWRvd25sb2FkICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI2XCI7IH0gfVxuLmdseXBoaWNvbi11cGxvYWQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyN1wiOyB9IH1cbi5nbHlwaGljb24taW5ib3ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjhcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYXktY2lyY2xlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI5XCI7IH0gfVxuLmdseXBoaWNvbi1yZXBlYXQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMFwiOyB9IH1cbi5nbHlwaGljb24tcmVmcmVzaCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWxpc3QtYWx0ICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMyXCI7IH0gfVxuLmdseXBoaWNvbi1sb2NrICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzM1wiOyB9IH1cbi5nbHlwaGljb24tZmxhZyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzRcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYWRwaG9uZXMgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM1XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtb2ZmICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNlwiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLWRvd24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzdcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS11cCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM4XCI7IH0gfVxuLmdseXBoaWNvbi1xcmNvZGUgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzOVwiOyB9IH1cbi5nbHlwaGljb24tYmFyY29kZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDBcIjsgfSB9XG4uZ2x5cGhpY29uLXRhZyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQxXCI7IH0gfVxuLmdseXBoaWNvbi10YWdzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MlwiOyB9IH1cbi5nbHlwaGljb24tYm9vayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDNcIjsgfSB9XG4uZ2x5cGhpY29uLWJvb2ttYXJrICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ0XCI7IH0gfVxuLmdseXBoaWNvbi1wcmludCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NVwiOyB9IH1cbi5nbHlwaGljb24tY2FtZXJhICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDZcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ3XCI7IH0gfVxuLmdseXBoaWNvbi1ib2xkICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0OFwiOyB9IH1cbi5nbHlwaGljb24taXRhbGljICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUwXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LXdpZHRoICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MVwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tbGVmdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTJcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWNlbnRlciAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUzXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1yaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NFwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTVcIjsgfSB9XG4uZ2x5cGhpY29uLWxpc3QgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU2XCI7IH0gfVxuLmdseXBoaWNvbi1pbmRlbnQtbGVmdCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1N1wiOyB9IH1cbi5nbHlwaGljb24taW5kZW50LXJpZ2h0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNThcIjsgfSB9XG4uZ2x5cGhpY29uLWZhY2V0aW1lLXZpZGVvICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU5XCI7IH0gfVxuLmdseXBoaWNvbi1waWN0dXJlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2MFwiOyB9IH1cbi5nbHlwaGljb24tbWFwLW1hcmtlciAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjJcIjsgfSB9XG4uZ2x5cGhpY29uLWFkanVzdCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYzXCI7IH0gfVxuLmdseXBoaWNvbi10aW50ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NFwiOyB9IH1cbi5nbHlwaGljb24tZWRpdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNoYXJlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY2XCI7IH0gfVxuLmdseXBoaWNvbi1jaGVjayAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2N1wiOyB9IH1cbi5nbHlwaGljb24tbW92ZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjhcIjsgfSB9XG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY5XCI7IH0gfVxuLmdseXBoaWNvbi1mYXN0LWJhY2t3YXJkICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MFwiOyB9IH1cbi5nbHlwaGljb24tYmFja3dhcmQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzFcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYXkgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcyXCI7IH0gfVxuLmdseXBoaWNvbi1wYXVzZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3M1wiOyB9IH1cbi5nbHlwaGljb24tc3RvcCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzRcIjsgfSB9XG4uZ2x5cGhpY29uLWZvcndhcmQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc1XCI7IH0gfVxuLmdseXBoaWNvbi1mYXN0LWZvcndhcmQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NlwiOyB9IH1cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzdcIjsgfSB9XG4uZ2x5cGhpY29uLWVqZWN0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc4XCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3OVwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1yaWdodCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODBcIjsgfSB9XG4uZ2x5cGhpY29uLXBsdXMtc2lnbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgxXCI7IH0gfVxuLmdseXBoaWNvbi1taW51cy1zaWduICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MlwiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlLXNpZ24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODNcIjsgfSB9XG4uZ2x5cGhpY29uLW9rLXNpZ24gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg0XCI7IH0gfVxuLmdseXBoaWNvbi1xdWVzdGlvbi1zaWduICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NVwiOyB9IH1cbi5nbHlwaGljb24taW5mby1zaWduICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODZcIjsgfSB9XG4uZ2x5cGhpY29uLXNjcmVlbnNob3QgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg3XCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUtY2lyY2xlICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4OFwiOyB9IH1cbi5nbHlwaGljb24tb2stY2lyY2xlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODlcIjsgfSB9XG4uZ2x5cGhpY29uLWJhbi1jaXJjbGUgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkwXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1sZWZ0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MVwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTJcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LXVwICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkzXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1kb3duICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NFwiOyB9IH1cbi5nbHlwaGljb24tc2hhcmUtYWx0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTVcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1mdWxsICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk2XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtc21hbGwgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5N1wiOyB9IH1cbi5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDFcIjsgfSB9XG4uZ2x5cGhpY29uLWdpZnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAyXCI7IH0gfVxuLmdseXBoaWNvbi1sZWFmICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwM1wiOyB9IH1cbi5nbHlwaGljb24tZmlyZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDRcIjsgfSB9XG4uZ2x5cGhpY29uLWV5ZS1vcGVuICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA1XCI7IH0gfVxuLmdseXBoaWNvbi1leWUtY2xvc2UgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNlwiOyB9IH1cbi5nbHlwaGljb24td2FybmluZy1zaWduICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDdcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYW5lICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA4XCI7IH0gfVxuLmdseXBoaWNvbi1jYWxlbmRhciAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwOVwiOyB9IH1cbi5nbHlwaGljb24tcmFuZG9tICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTBcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbW1lbnQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTExXCI7IH0gfVxuLmdseXBoaWNvbi1tYWduZXQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMlwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi11cCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tZG93biAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE0XCI7IH0gfVxuLmdseXBoaWNvbi1yZXR3ZWV0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNVwiOyB9IH1cbi5nbHlwaGljb24tc2hvcHBpbmctY2FydCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTZcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZSAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE3XCI7IH0gfVxuLmdseXBoaWNvbi1mb2xkZXItb3BlbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExOFwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLXZlcnRpY2FsICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTlcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1ob3Jpem9udGFsICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIwXCI7IH0gfVxuLmdseXBoaWNvbi1oZGQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMVwiOyB9IH1cbi5nbHlwaGljb24tYnVsbGhvcm4gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjJcIjsgfSB9XG4uZ2x5cGhpY29uLWJlbGwgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIzXCI7IH0gfVxuLmdseXBoaWNvbi1jZXJ0aWZpY2F0ZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNFwiOyB9IH1cbi5nbHlwaGljb24tdGh1bWJzLXVwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjVcIjsgfSB9XG4uZ2x5cGhpY29uLXRodW1icy1kb3duICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI2XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLXJpZ2h0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyN1wiOyB9IH1cbi5nbHlwaGljb24taGFuZC1sZWZ0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjhcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtdXAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI5XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLWRvd24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMFwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0ICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1sZWZ0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMyXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctdXAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzM1wiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd24gICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzRcIjsgfSB9XG4uZ2x5cGhpY29uLWdsb2JlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM1XCI7IH0gfVxuLmdseXBoaWNvbi13cmVuY2ggICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNlwiOyB9IH1cbi5nbHlwaGljb24tdGFza3MgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzdcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbHRlciAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM4XCI7IH0gfVxuLmdseXBoaWNvbi1icmllZmNhc2UgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzOVwiOyB9IH1cbi5nbHlwaGljb24tZnVsbHNjcmVlbiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDBcIjsgfSB9XG4uZ2x5cGhpY29uLWRhc2hib2FyZCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQxXCI7IH0gfVxuLmdseXBoaWNvbi1wYXBlcmNsaXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MlwiOyB9IH1cbi5nbHlwaGljb24taGVhcnQtZW1wdHkgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDNcIjsgfSB9XG4uZ2x5cGhpY29uLWxpbmsgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ0XCI7IH0gfVxuLmdseXBoaWNvbi1waG9uZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NVwiOyB9IH1cbi5nbHlwaGljb24tcHVzaHBpbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDZcIjsgfSB9XG4uZ2x5cGhpY29uLXVzZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ4XCI7IH0gfVxuLmdseXBoaWNvbi1nYnAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0OVwiOyB9IH1cbi5nbHlwaGljb24tc29ydCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUxXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdCAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MlwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlciAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTNcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU0XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NVwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzLWFsdCB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTZcIjsgfSB9XG4uZ2x5cGhpY29uLXVuY2hlY2tlZCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU3XCI7IH0gfVxuLmdseXBoaWNvbi1leHBhbmQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1OFwiOyB9IH1cbi5nbHlwaGljb24tY29sbGFwc2UtZG93biAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTlcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbGxhcHNlLXVwICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYwXCI7IH0gfVxuLmdseXBoaWNvbi1sb2ctaW4gICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MVwiOyB9IH1cbi5nbHlwaGljb24tZmxhc2ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjJcIjsgfSB9XG4uZ2x5cGhpY29uLWxvZy1vdXQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYzXCI7IH0gfVxuLmdseXBoaWNvbi1uZXctd2luZG93ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NFwiOyB9IH1cbi5nbHlwaGljb24tcmVjb3JkICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY2XCI7IH0gfVxuLmdseXBoaWNvbi1vcGVuICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2N1wiOyB9IH1cbi5nbHlwaGljb24tc2F2ZWQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjhcIjsgfSB9XG4uZ2x5cGhpY29uLWltcG9ydCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY5XCI7IH0gfVxuLmdseXBoaWNvbi1leHBvcnQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MFwiOyB9IH1cbi5nbHlwaGljb24tc2VuZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzFcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcyXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZWQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3M1wiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXJlbW92ZSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzRcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc1XCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktb3BlbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NlwiOyB9IH1cbi5nbHlwaGljb24tY3JlZGl0LWNhcmQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzdcIjsgfSB9XG4uZ2x5cGhpY29uLXRyYW5zZmVyICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc4XCI7IH0gfVxuLmdseXBoaWNvbi1jdXRsZXJ5ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3OVwiOyB9IH1cbi5nbHlwaGljb24taGVhZGVyICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODBcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbXByZXNzZWQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgxXCI7IH0gfVxuLmdseXBoaWNvbi1lYXJwaG9uZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MlwiOyB9IH1cbi5nbHlwaGljb24tcGhvbmUtYWx0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODNcIjsgfSB9XG4uZ2x5cGhpY29uLXRvd2VyICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg0XCI7IH0gfVxuLmdseXBoaWNvbi1zdGF0cyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NVwiOyB9IH1cbi5nbHlwaGljb24tc2QtdmlkZW8gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODZcIjsgfSB9XG4uZ2x5cGhpY29uLWhkLXZpZGVvICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg3XCI7IH0gfVxuLmdseXBoaWNvbi1zdWJ0aXRsZXMgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4OFwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtc3RlcmVvICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODlcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLWRvbGJ5ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkwXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC01LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MVwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNi0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTJcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTctMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkzXCI7IH0gfVxuLmdseXBoaWNvbi1jb3B5cmlnaHQtbWFyayAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5NFwiOyB9IH1cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcmsgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTVcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkLWRvd25sb2FkICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk3XCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZC11cGxvYWQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5OFwiOyB9IH1cbi5nbHlwaGljb24tdHJlZS1jb25pZmVyICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyZWUtZGVjaWR1b3VzICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAwXCI7IH0gfVxuLmdseXBoaWNvbi1jZCAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMVwiOyB9IH1cbi5nbHlwaGljb24tc2F2ZS1maWxlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDJcIjsgfSB9XG4uZ2x5cGhpY29uLW9wZW4tZmlsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAzXCI7IH0gfVxuLmdseXBoaWNvbi1sZXZlbC11cCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNFwiOyB9IH1cbi5nbHlwaGljb24tY29weSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDVcIjsgfSB9XG4uZ2x5cGhpY29uLXBhc3RlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA2XCI7IH0gfVxuLy8gVGhlIGZvbGxvd2luZyAyIEdseXBoaWNvbnMgYXJlIG9taXR0ZWQgZm9yIHRoZSB0aW1lIGJlaW5nIGJlY2F1c2Vcbi8vIHRoZXkgY3VycmVudGx5IHVzZSBVbmljb2RlIGNvZGVwb2ludHMgdGhhdCBhcmUgb3V0c2lkZSB0aGVcbi8vIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKS4gT2xkZXIgYnVnZ3kgdmVyc2lvbnMgb2YgV2ViS2l0IGNhbid0IGhhbmRsZVxuLy8gbm9uLUJNUCBjb2RlcG9pbnRzIGluIENTUyBzdHJpbmcgZXNjYXBlcywgYW5kIHRodXMgY2FuJ3QgZGlzcGxheSB0aGVzZSB0d28gaWNvbnMuXG4vLyBOb3RhYmx5LCB0aGUgYnVnIGFmZmVjdHMgc29tZSBvbGRlciB2ZXJzaW9ucyBvZiB0aGUgQW5kcm9pZCBCcm93c2VyLlxuLy8gTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwMTA2XG4vLyAuZ2x5cGhpY29uLWRvb3IgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwxZjZhYVwiOyB9IH1cbi8vIC5nbHlwaGljb24ta2V5ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDFmNTExXCI7IH0gfVxuLmdseXBoaWNvbi1hbGVydCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwOVwiOyB9IH1cbi5nbHlwaGljb24tZXF1YWxpemVyICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTBcIjsgfSB9XG4uZ2x5cGhpY29uLWtpbmcgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjExXCI7IH0gfVxuLmdseXBoaWNvbi1xdWVlbiAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMlwiOyB9IH1cbi5nbHlwaGljb24tcGF3biAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTNcIjsgfSB9XG4uZ2x5cGhpY29uLWJpc2hvcCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE0XCI7IH0gfVxuLmdseXBoaWNvbi1rbmlnaHQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNVwiOyB9IH1cbi5nbHlwaGljb24tYmFieS1mb3JtdWxhICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTZcIjsgfSB9XG4uZ2x5cGhpY29uLXRlbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNmZhXCI7IH0gfVxuLmdseXBoaWNvbi1ibGFja2JvYXJkICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxOFwiOyB9IH1cbi5nbHlwaGljb24tYmVkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTlcIjsgfSB9XG4uZ2x5cGhpY29uLWFwcGxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmOGZmXCI7IH0gfVxuLmdseXBoaWNvbi1lcmFzZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyMVwiOyB9IH1cbi5nbHlwaGljb24taG91cmdsYXNzICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIzMWJcIjsgfSB9XG4uZ2x5cGhpY29uLWxhbXAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjIzXCI7IH0gfVxuLmdseXBoaWNvbi1kdXBsaWNhdGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNFwiOyB9IH1cbi5nbHlwaGljb24tcGlnZ3ktYmFuayAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNjaXNzb3JzICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI2XCI7IH0gfVxuLmdseXBoaWNvbi1iaXRjb2luICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24tYnRjICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLXhidCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi15ZW4gICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDBhNVwiOyB9IH1cbi5nbHlwaGljb24tanB5ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwYTVcIjsgfSB9XG4uZ2x5cGhpY29uLXJ1YmxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH0gfVxuLmdseXBoaWNvbi1ydWIgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBiZFwiOyB9IH1cbi5nbHlwaGljb24tc2NhbGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzBcIjsgfSB9XG4uZ2x5cGhpY29uLWljZS1sb2xseSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMxXCI7IH0gfVxuLmdseXBoaWNvbi1pY2UtbG9sbHktdGFzdGVkICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMlwiOyB9IH1cbi5nbHlwaGljb24tZWR1Y2F0aW9uICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzNcIjsgfSB9XG4uZ2x5cGhpY29uLW9wdGlvbi1ob3Jpem9udGFsICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM0XCI7IH0gfVxuLmdseXBoaWNvbi1vcHRpb24tdmVydGljYWwgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNVwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1oYW1idXJnZXIgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzZcIjsgfSB9XG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdyAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM3XCI7IH0gfVxuLmdseXBoaWNvbi1vaWwgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzOFwiOyB9IH1cbi5nbHlwaGljb24tZ3JhaW4gICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzlcIjsgfSB9XG4uZ2x5cGhpY29uLXN1bmdsYXNzZXMgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQwXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LXNpemUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MVwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1jb2xvciAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDJcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtYmFja2dyb3VuZCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQzXCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdG9wICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NFwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWJvdHRvbSAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDVcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFseyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ2XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0N1wiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDhcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1yaWdodCAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ5XCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1yaWdodCAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MFwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTFcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbSAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUyXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS10b3AgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1M1wiOyB9IH1cbi5nbHlwaGljb24tY29uc29sZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTRcIjsgfSB9XG4uZ2x5cGhpY29uLXN1cGVyc2NyaXB0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU1XCI7IH0gfVxuLmdseXBoaWNvbi1zdWJzY3JpcHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NlwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1sZWZ0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTdcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtcmlnaHQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU4XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWRvd24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1OVwiOyB9IH1cbi5nbHlwaGljb24tbWVudS11cCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNjBcIjsgfSB9XG4iLCIvL1xuLy8gU2NhZmZvbGRpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gUmVzZXQgdGhlIGJveC1zaXppbmdcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyByZXNldCBtYXkgY2F1c2UgY29uZmxpY3RzIHdpdGggc29tZSB0aGlyZC1wYXJ0eSB3aWRnZXRzLlxuLy8gRm9yIHJlY29tbWVuZGF0aW9ucyBvbiByZXNvbHZpbmcgc3VjaCBjb25mbGljdHMsIHNlZVxuLy8gaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyN0aGlyZC1ib3gtc2l6aW5nXG4qIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuXG4vLyBCb2R5IHJlc2V0XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktYmFzZTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1iZztcbn1cblxuLy8gUmVzZXQgZm9udHMgZm9yIHJlbGV2YW50IGVsZW1lbnRzXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuLy8gTGlua3NcblxuYSB7XG4gIGNvbG9yOiBAbGluay1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICAudGFiLWZvY3VzKCk7XG4gIH1cbn1cblxuXG4vLyBGaWd1cmVzXG4vL1xuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcbi8vIGVuc3VyZXMgd2UgZG9uJ3QgYnJlYWsgYW55b25lJ3MgdXNlIG9mIHRoZSBlbGVtZW50LlxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cblxuLy8gSW1hZ2VzXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2VzIChlbnN1cmUgaW1hZ2VzIGRvbid0IHNjYWxlIGJleW9uZCB0aGVpciBwYXJlbnRzKVxuLmltZy1yZXNwb25zaXZlIHtcbiAgLmltZy1yZXNwb25zaXZlKCk7XG59XG5cbi8vIFJvdW5kZWQgY29ybmVyc1xuLmltZy1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG5cbi8vIEltYWdlIHRodW1ibmFpbHNcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIHRodW1ibmFpbHMubGVzcyBmb3IgYC50aHVtYm5haWxgLlxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiBAdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEB0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlLWluLW91dCk7XG5cbiAgLy8gS2VlcCB0aGVtIGF0IG1vc3QgMTAwJSB3aWRlXG4gIC5pbWctcmVzcG9uc2l2ZShpbmxpbmUtYmxvY2spO1xufVxuXG4vLyBQZXJmZWN0IGNpcmNsZVxuLmltZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IC8vIHNldCByYWRpdXMgaW4gcGVyY2VudHNcbn1cblxuXG4vLyBIb3Jpem9udGFsIHJ1bGVzXG5cbmhyIHtcbiAgbWFyZ2luLXRvcDogICAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBoci1ib3JkZXI7XG59XG5cblxuLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnNcbi8vXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudFxuXG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vIFVzZWZ1bCBmb3IgXCJTa2lwIHRvIG1haW4gY29udGVudFwiIGxpbmtzOyBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG4uc3Itb25seS1mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGNsaXA6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBpT1MgXCJjbGlja2FibGUgZWxlbWVudHNcIiBmaXggZm9yIHJvbGU9XCJidXR0b25cIlxuLy9cbi8vIEZpeGVzIFwiY2xpY2thYmlsaXR5XCIgaXNzdWUgKGFuZCBtb3JlIGdlbmVyYWxseSwgdGhlIGZpcmluZyBvZiBldmVudHMgc3VjaCBhcyBmb2N1cyBhcyB3ZWxsKVxuLy8gZm9yIHRyYWRpdGlvbmFsbHkgbm9uLWZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIHJvbGU9XCJidXR0b25cIlxuLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNTYWZhcmlfTW9iaWxlXG5cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLy8gVmVuZG9yIFByZWZpeGVzXG4vL1xuLy8gQWxsIHZlbmRvciBtaXhpbnMgYXJlIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mXG4vLyBBdXRvcHJlZml4ZXIgaW4gb3VyIEdydW50ZmlsZS4gVGhleSBoYXZlIGJlZW4gcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuLmFuaW1hdGlvbihAYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246IEBhbmltYXRpb247XG59XG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogQG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xufVxuLmFuaW1hdGlvbi1kdXJhdGlvbihAZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbn1cbi5hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xufVxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoQGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbn1cbi5hbmltYXRpb24tZGlyZWN0aW9uKEBkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG59XG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xufVxuXG4vLyBEcm9wIHNoYWRvd3Ncbi8vXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXG4vLyBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBoYXZlIGJveCBzaGFkb3cgY2FwYWJpbGl0aWVzIG5vdyBzdXBwb3J0IGl0LlxuXG4uYm94LXNoYWRvdyhAc2hhZG93KSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogQHNoYWRvdzsgLy8gaU9TIDw0LjMgJiBBbmRyb2lkIDw0LjFcbiAgICAgICAgICBib3gtc2hhZG93OiBAc2hhZG93O1xufVxuXG4vLyBCb3ggc2l6aW5nXG4uYm94LXNpemluZyhAYm94bW9kZWwpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgIC1tb3otYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAgICAgIGJveC1zaXppbmc6IEBib3htb2RlbDtcbn1cblxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcbi5jb250ZW50LWNvbHVtbnMoQGNvbHVtbi1jb3VudDsgQGNvbHVtbi1nYXA6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xuICAgICAtbW96LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuLmh5cGhlbnMoQG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IEBtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6IEBtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlOyAvLyBJRTEwK1xuICAgICAgIC1vLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6IEBtb2RlO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG4ucGxhY2Vob2xkZXIoQGNvbG9yOiBAaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcbiAgLy8gRmlyZWZveFxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIG9wYWNpdHk6IDE7IC8vIE92ZXJyaWRlIEZpcmVmb3gncyB1bnVzdWFsIGRlZmF1bHQgb3BhY2l0eTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogQGNvbG9yOyB9IC8vIEludGVybmV0IEV4cGxvcmVyIDEwK1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG4uc2NhbGUoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xufVxuLnNjYWxlKEByYXRpb1g7IEByYXRpb1kpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xufVxuLnNjYWxlWChAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xufVxuLnNjYWxlWShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xufVxuLnNrZXcoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNDg4NTsgSUU5K1xuICAgICAgIC1vLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG59XG4udHJhbnNsYXRlKEB4OyBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG59XG4udHJhbnNsYXRlM2QoQHg7IEB5OyBAeikge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHgsIEB5LCBAeik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbn1cbi5yb3RhdGUoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG59XG4ucm90YXRlWChAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG59XG4ucm90YXRlWShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG59XG4ucGVyc3BlY3RpdmUoQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAgICAgIHBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG59XG4ucGVyc3BlY3RpdmUtb3JpZ2luKEBwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xuICAgICAgICAgIHBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xufVxuLnRyYW5zZm9ybS1vcmlnaW4oQG9yaWdpbikge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG4gICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luOyAvLyBJRTkgb25seVxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG59XG5cblxuLy8gVHJhbnNpdGlvbnNcblxuLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cbi50cmFuc2l0aW9uLXByb3BlcnR5KEB0cmFuc2l0aW9uLXByb3BlcnR5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogQHRyYW5zaXRpb24tcHJvcGVydHk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogQHRyYW5zaXRpb24tcHJvcGVydHk7XG59XG4udHJhbnNpdGlvbi1kZWxheShAdHJhbnNpdGlvbi1kZWxheSkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xufVxuLnRyYW5zaXRpb24tZHVyYXRpb24oQHRyYW5zaXRpb24tZHVyYXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4udHJhbnNpdGlvbi10cmFuc2Zvcm0oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xufVxuXG5cbi8vIFVzZXIgc2VsZWN0XG4vLyBGb3Igc2VsZWN0aW5nIHRleHQgb24gdGhlIHBhZ2VcblxuLnVzZXItc2VsZWN0KEBzZWxlY3QpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogQHNlbGVjdDsgLy8gSUUxMCtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogQHNlbGVjdDtcbn1cbiIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xuXG4udGFiLWZvY3VzKCkge1xuICAvLyBXZWJLaXQtc3BlY2lmaWMuIE90aGVyIGJyb3dzZXJzIHdpbGwga2VlcCB0aGVpciBkZWZhdWx0IG91dGxpbmUgc3R5bGUuXG4gIC8vIChJbml0aWFsbHkgdHJpZWQgdG8gYWxzbyBmb3JjZSBkZWZhdWx0IHZpYSBgb3V0bGluZTogaW5pdGlhbGAsXG4gIC8vIGJ1dCB0aGF0IHNlZW1zIHRvIGVycm9uZW91c2x5IHJlbW92ZSB0aGUgb3V0bGluZSBpbiBGaXJlZm94IGFsdG9nZXRoZXIuKVxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuIiwiLy8gSW1hZ2UgTWl4aW5zXG4vLyAtIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vIC0gUmV0aW5hIGltYWdlXG5cblxuLy8gUmVzcG9uc2l2ZSBpbWFnZVxuLy9cbi8vIEtlZXAgaW1hZ2VzIGZyb20gc2NhbGluZyBiZXlvbmQgdGhlIHdpZHRoIG9mIHRoZWlyIHBhcmVudHMuXG4uaW1nLXJlc3BvbnNpdmUoQGRpc3BsYXk6IGJsb2NrKSB7XG4gIGRpc3BsYXk6IEBkaXNwbGF5O1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gIGhlaWdodDogYXV0bzsgLy8gUGFydCAyOiBTY2FsZSB0aGUgaGVpZ2h0IGFjY29yZGluZyB0byB0aGUgd2lkdGgsIG90aGVyd2lzZSB5b3UgZ2V0IHN0cmV0Y2hpbmdcbn1cblxuXG4vLyBSZXRpbmEgaW1hZ2Vcbi8vXG4vLyBTaG9ydCByZXRpbmEgbWl4aW4gZm9yIHNldHRpbmcgYmFja2dyb3VuZC1pbWFnZSBhbmQgLXNpemUuIE5vdGUgdGhhdCB0aGVcbi8vIHNwZWxsaW5nIG9mIGBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW9gIGlzIGludGVudGlvbmFsLlxuLmltZy1yZXRpbmEoQGZpbGUtMXg7IEBmaWxlLTJ4OyBAd2lkdGgtMXg7IEBoZWlnaHQtMXgpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHtmaWxlLTF4fVwiKTtcblxuICBAbWVkaWFcbiAgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgIG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMnh9XCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogQHdpZHRoLTF4IEBoZWlnaHQtMXg7XG4gIH1cbn1cbiIsIi8vXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEhlYWRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IEBoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6IEBoZWFkaW5ncy1jb2xvcjtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBAaGVhZGluZ3Mtc21hbGwtY29sb3I7XG4gIH1cbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzIHtcbiAgbWFyZ2luLXRvcDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA2NSU7XG4gIH1cbn1cbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIG1hcmdpbi10b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICB9XG59XG5cbmgxLCAuaDEgeyBmb250LXNpemU6IEBmb250LXNpemUtaDE7IH1cbmgyLCAuaDIgeyBmb250LXNpemU6IEBmb250LXNpemUtaDI7IH1cbmgzLCAuaDMgeyBmb250LXNpemU6IEBmb250LXNpemUtaDM7IH1cbmg0LCAuaDQgeyBmb250LXNpemU6IEBmb250LXNpemUtaDQ7IH1cbmg1LCAuaDUgeyBmb250LXNpemU6IEBmb250LXNpemUtaDU7IH1cbmg2LCAuaDYgeyBmb250LXNpemU6IEBmb250LXNpemUtaDY7IH1cblxuXG4vLyBCb2R5IHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxucCB7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbn1cblxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKEBmb250LXNpemUtYmFzZSAqIDEuMTUpKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICB9XG59XG5cblxuLy8gRW1waGFzaXMgJiBtaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEV4OiAoMTJweCBzbWFsbCBmb250IC8gMTRweCBiYXNlIGZvbnQpICogMTAwJSA9IGFib3V0IDg1JVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IGZsb29yKCgxMDAlICogQGZvbnQtc2l6ZS1zbWFsbCAvIEBmb250LXNpemUtYmFzZSkpO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RhdGUtd2FybmluZy1iZztcbiAgcGFkZGluZzogLjJlbTtcbn1cblxuLy8gQWxpZ25tZW50XG4udGV4dC1sZWZ0ICAgICAgICAgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi50ZXh0LXJpZ2h0ICAgICAgICAgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ZXh0LWNlbnRlciAgICAgICAgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udGV4dC1qdXN0aWZ5ICAgICAgICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbi50ZXh0LW5vd3JhcCAgICAgICAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vLyBUcmFuc2Zvcm1hdGlvblxuLnRleHQtbG93ZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4udGV4dC11cHBlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbi50ZXh0LWNhcGl0YWxpemUgICAgIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLy8gQ29udGV4dHVhbCBjb2xvcnNcbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xufVxuLnRleHQtcHJpbWFyeSB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLnRleHQtc3VjY2VzcyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG59XG4udGV4dC1pbmZvIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtaW5mby10ZXh0KTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLXRleHQpO1xufVxuLnRleHQtZGFuZ2VyIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtZGFuZ2VyLXRleHQpO1xufVxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG4vLyBGb3Igbm93IHdlJ2xsIGxlYXZlIHRoZXNlIGFsb25nc2lkZSB0aGUgdGV4dCBjbGFzc2VzIHVudGlsIHY0IHdoZW4gd2UgY2FuXG4vLyBzYWZlbHkgc2hpZnQgdGhpbmdzIGFyb3VuZCAocGVyIFNlbVZlciBydWxlcykuXG4uYmctcHJpbWFyeSB7XG4gIC8vIEdpdmVuIHRoZSBjb250cmFzdCBoZXJlLCB0aGlzIGlzIHRoZSBvbmx5IGNsYXNzIHRvIGhhdmUgaXRzIGNvbG9yIGludmVydGVkXG4gIC8vIGF1dG9tYXRpY2FsbHkuXG4gIGNvbG9yOiAjZmZmO1xuICAuYmctdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4uYmctc3VjY2VzcyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5iZy1pbmZvIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWluZm8tYmcpO1xufVxuLmJnLXdhcm5pbmcge1xuICAuYmctdmFyaWFudChAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uYmctZGFuZ2VyIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cblxuLy8gUGFnZSBoZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKTtcbiAgbWFyZ2luOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMikgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yO1xufVxuXG5cbi8vIExpc3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFVub3JkZXJlZCBhbmQgT3JkZXJlZCBsaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIExpc3Qgb3B0aW9uc1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgLmxpc3QtdW5zdHlsZWQoKTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgfVxufVxuXG4vLyBEZXNjcmlwdGlvbiBMaXN0c1xuZGwge1xuICBtYXJnaW4tdG9wOiAwOyAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuLy8gSG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIERlZmF1bHRzIHRvIGJlaW5nIHN0YWNrZWQgd2l0aG91dCBhbnkgb2YgdGhlIGJlbG93IHN0eWxlcyBhcHBsaWVkLCB1bnRpbCB0aGVcbi8vIGdyaWQgYnJlYWtwb2ludCBpcyByZWFjaGVkIChkZWZhdWx0IG9mIH43NjhweCkuXG5cbi5kbC1ob3Jpem9udGFsIHtcbiAgZGQge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBDbGVhciB0aGUgZmxvYXRlZCBgZHRgIGlmIGFuIGVtcHR5IGBkZGAgaXMgcHJlc2VudFxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBkbC1ob3Jpem9udGFsLWJyZWFrcG9pbnQpIHtcbiAgICBkdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAoQGRsLWhvcml6b250YWwtb2Zmc2V0IC0gMjApO1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIC50ZXh0LW92ZXJmbG93KCk7XG4gICAgfVxuICAgIGRkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZGwtaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBYmJyZXZpYXRpb25zIGFuZCBhY3Jvbnltc1xuYWJiclt0aXRsZV0sXG4vLyBBZGQgZGF0YS0qIGF0dHJpYnV0ZSB0byBoZWxwIG91dCBvdXIgdG9vbHRpcCBwbHVnaW4sIHBlciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzUyNTdcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgQGFiYnItYm9yZGVyLWNvbG9yO1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgLnRleHQtdXBwZXJjYXNlKCk7XG59XG5cbi8vIEJsb2NrcXVvdGVzXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luOiAwIDAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IEBibG9ja3F1b3RlLWZvbnQtc2l6ZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBAYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG5cbiAgcCxcbiAgdWwsXG4gIG9sIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBOb3RlOiBEZXByZWNhdGVkIHNtYWxsIGFuZCAuc21hbGwgYXMgb2YgdjMuMS4wXG4gIC8vIENvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NjBcbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDgwJTsgLy8gYmFjayB0byBkZWZhdWx0IGZvbnQtc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogQGJsb2NrcXVvdGUtc21hbGwtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7IC8vIGVtIGRhc2gsIG5ic3BcbiAgICB9XG4gIH1cbn1cblxuLy8gT3Bwb3NpdGUgYWxpZ25tZW50IG9mIGJsb2NrcXVvdGVcbi8vXG4vLyBIZWFkcyB1cDogYGJsb2NrcXVvdGUucHVsbC1yaWdodGAgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2My4xLjAuXG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCBAYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAvLyBBY2NvdW50IGZvciBjaXRhdGlvblxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgICY6YmVmb3JlIHsgY29udGVudDogJyc7IH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0JzsgLy8gbmJzcCwgZW0gZGFzaFxuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRyZXNzZXNcbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4udGV4dC1lbXBoYXNpcy12YXJpYW50KEBjb2xvcikge1xuICBjb2xvcjogQGNvbG9yO1xuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMge1xuICAgIGNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG5cbi5iZy12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gVGV4dCBvdmVyZmxvd1xuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG4udGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvL1xuLy8gQ29kZSAoaW5saW5lIGFuZCBibG9jaylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSW5saW5lIGFuZCBibG9jayBjb2RlIHN0eWxlc1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbn1cblxuLy8gSW5saW5lIGNvZGVcbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6IEBjb2RlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29kZS1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbn1cblxuLy8gVXNlciBpbnB1dCB0eXBpY2FsbHkgZW50ZXJlZCB2aWEga2V5Ym9hcmRcbmtiZCB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogQGtiZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGtiZC1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtc21hbGw7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjI1KTtcblxuICBrYmQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLy8gQmxvY2tzIG9mIGNvZGVcbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAtIDEpIC8gMik7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlIC0gMSk7IC8vIDE0cHggdG8gMTNweFxuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBjb2xvcjogQHByZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByZS1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHByZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgLy8gQWNjb3VudCBmb3Igc29tZSBjb2RlIG91dHB1dHMgdGhhdCBwbGFjZSBjb2RlIHRhZ3MgaW4gcHJlIHRhZ3NcbiAgY29kZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IEBwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4iLCIvL1xuLy8gR3JpZCBzeXN0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQ29udGFpbmVyIHdpZHRoc1xuLy9cbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cblxuLmNvbnRhaW5lciB7XG4gIC5jb250YWluZXItZml4ZWQoKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1zbTtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1tZDtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1sZztcbiAgfVxufVxuXG5cbi8vIEZsdWlkIGNvbnRhaW5lclxuLy9cbi8vIFV0aWxpemVzIHRoZSBtaXhpbiBtZWFudCBmb3IgZml4ZWQgd2lkdGggY29udGFpbmVycywgYnV0IHdpdGhvdXQgYW55IGRlZmluZWRcbi8vIHdpZHRoIGZvciBmbHVpZCwgZnVsbCB3aWR0aCBsYXlvdXRzLlxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgLmNvbnRhaW5lci1maXhlZCgpO1xufVxuXG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbi5yb3cge1xuICAubWFrZS1yb3coKTtcbn1cblxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG4ubWFrZS1ncmlkLWNvbHVtbnMoKTtcblxuXG4vLyBFeHRyYSBzbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIGV4dHJhIHNtYWxsIGRldmljZXMgbGlrZVxuLy8gc21hcnRwaG9uZXMuXG5cbi5tYWtlLWdyaWQoeHMpO1xuXG5cbi8vIFNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIHNtYWxsIGRldmljZSByYW5nZSwgZnJvbSBwaG9uZXNcbi8vIHRvIHRhYmxldHMuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAubWFrZS1ncmlkKHNtKTtcbn1cblxuXG4vLyBNZWRpdW0gZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAubWFrZS1ncmlkKG1kKTtcbn1cblxuXG4vLyBMYXJnZSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBsYXJnZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gIC5tYWtlLWdyaWQobGcpO1xufVxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICBmbG9vcigoQGd1dHRlciAvIDIpKTtcbiAgcGFkZGluZy1yaWdodDogY2VpbCgoQGd1dHRlciAvIDIpKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXG4ubWFrZS1yb3coQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1sZWZ0OiAgY2VpbCgoQGd1dHRlciAvIC0yKSk7XG4gIG1hcmdpbi1yaWdodDogZmxvb3IoKEBndXR0ZXIgLyAtMikpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIGV4dHJhIHNtYWxsIGNvbHVtbnNcbi5tYWtlLXhzLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xufVxuLm1ha2UteHMtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcbi5tYWtlLXNtLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIG1lZGl1bSBjb2x1bW5zXG4ubWFrZS1tZC1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBsYXJnZSBjb2x1bW5zXG4ubWFrZS1sZy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4iLCIvLyBGcmFtZXdvcmsgZ3JpZCBnZW5lcmF0aW9uXG4vL1xuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXG4vLyBhbnkgdmFsdWUgb2YgYEBncmlkLWNvbHVtbnNgLlxuXG4ubWFrZS1ncmlkLWNvbHVtbnMoKSB7XG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIGFsbCBzaXplcyBvZiBncmlkIGNvbHVtbnMsIHdpZHRocyAxLTEyXG4gIC5jb2woQGluZGV4KSB7IC8vIGluaXRpYWxcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCBAaXRlbSk7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsOyBcIj08XCIgaXNuJ3QgYSB0eXBvXG4gICAgQGl0ZW06IH5cIi5jb2wteHMtQHtpbmRleH0sIC5jb2wtc20tQHtpbmRleH0sIC5jb2wtbWQtQHtpbmRleH0sIC5jb2wtbGctQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgflwiQHtsaXN0fSwgQHtpdGVtfVwiKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA+IEBncmlkLWNvbHVtbnMpIHsgLy8gdGVybWluYWxcbiAgICBAe2xpc3R9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGNvbGxhcHNpbmcgd2hlbiBlbXB0eVxuICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgICBwYWRkaW5nLWxlZnQ6ICBjZWlsKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBmbG9vcigoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIH1cbiAgfVxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcbn1cblxuLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpIHtcbiAgLmNvbChAaW5kZXgpIHsgLy8gaW5pdGlhbFxuICAgIEBpdGVtOiB+XCIuY29sLUB7Y2xhc3N9LUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA9PCBAZ3JpZC1jb2x1bW5zKSB7IC8vIGdlbmVyYWxcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCB+XCJAe2xpc3R9LCBAe2l0ZW19XCIpO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxuICAgIEB7bGlzdH0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG4gIC5jb2woMSk7IC8vIGtpY2tzdGFydCBpdFxufVxuXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gd2lkdGgpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LUB7aW5kZXh9IHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVzaC1Ae2luZGV4fSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPSAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVsbC1Ae2luZGV4fSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID0gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBvZmZzZXQpIHtcbiAgLmNvbC1Ae2NsYXNzfS1vZmZzZXQtQHtpbmRleH0ge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gQmFzaWMgbG9vcGluZyBpbiBMRVNTXG4ubG9vcC1ncmlkLWNvbHVtbnMoQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAaW5kZXggPj0gMCkge1xuICAuY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpO1xuICAvLyBuZXh0IGl0ZXJhdGlvblxuICAubG9vcC1ncmlkLWNvbHVtbnMoKEBpbmRleCAtIDEpLCBAY2xhc3MsIEB0eXBlKTtcbn1cblxuLy8gQ3JlYXRlIGdyaWQgZm9yIHNwZWNpZmljIGNsYXNzXG4ubWFrZS1ncmlkKEBjbGFzcykge1xuICAuZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcyk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHdpZHRoKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgcHVsbCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1c2gpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBvZmZzZXQpO1xufVxuIiwiLy9cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZztcbn1cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIGNvbG9yOiBAdGV4dC1tdXRlZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG4vLyBCYXNlbGluZSBzdHlsZXNcblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICAvLyBDZWxsc1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQm90dG9tIGFsaWduIGZvciBjb2x1bW4gaGVhZGluZ3NcbiAgPiB0aGVhZCA+IHRyID4gdGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gUmVtb3ZlIHRvcCBib3JkZXIgZnJvbSB0aGVhZCBieSBkZWZhdWx0XG4gID4gY2FwdGlvbiArIHRoZWFkLFxuICA+IGNvbGdyb3VwICsgdGhlYWQsXG4gID4gdGhlYWQ6Zmlyc3QtY2hpbGQge1xuICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBBY2NvdW50IGZvciBtdWx0aXBsZSB0Ym9keSBpbnN0YW5jZXNcbiAgPiB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIE5lc3RpbmdcbiAgLnRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1iZztcbiAgfVxufVxuXG5cbi8vIENvbmRlbnNlZCB0YWJsZSB3LyBoYWxmIHBhZGRpbmdcblxuLnRhYmxlLWNvbmRlbnNlZCB7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCb3JkZXJlZCB2ZXJzaW9uXG4vL1xuLy8gQWRkIGJvcmRlcnMgYWxsIGFyb3VuZCB0aGUgdGFibGUgYW5kIGJldHdlZW4gYWxsIHRoZSBjb2x1bW5zLlxuXG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiB0aGVhZCA+IHRyIHtcbiAgICA+IHRoLFxuICAgID4gdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFplYnJhLXN0cmlwaW5nXG4vL1xuLy8gRGVmYXVsdCB6ZWJyYS1zdHJpcGUgc3R5bGVzIChhbHRlcm5hdGluZyBncmF5IGFuZCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcylcblxuLnRhYmxlLXN0cmlwZWQge1xuICA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnLWFjY2VudDtcbiAgfVxufVxuXG5cbi8vIEhvdmVyIGVmZmVjdFxuLy9cbi8vIFBsYWNlZCBoZXJlIHNpbmNlIGl0IGhhcyB0byBjb21lIGFmdGVyIHRoZSBwb3RlbnRpYWwgemVicmEgc3RyaXBpbmdcblxuLnRhYmxlLWhvdmVyIHtcbiAgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmctaG92ZXI7XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBjZWxsIHNpemluZ1xuLy9cbi8vIFJlc2V0IGRlZmF1bHQgdGFibGUgYmVoYXZpb3JcblxudGFibGUgY29sW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjtcbn1cbnRhYmxlIHtcbiAgdGQsXG4gIHRoIHtcbiAgICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgLy8gUHJldmVudCBib3JkZXIgaGlkaW5nIGluIEZpcmVmb3ggYW5kIElFOS0xMSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2MjMpXG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFibGUgYmFja2dyb3VuZHNcbi8vXG4vLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuLy8gaW5oZXJpdGFuY2UgdG8gbmVzdGVkIHRhYmxlcy5cblxuLy8gR2VuZXJhdGUgdGhlIGNvbnRleHR1YWwgdmFyaWFudHNcbi50YWJsZS1yb3ctdmFyaWFudChhY3RpdmU7IEB0YWJsZS1iZy1hY3RpdmUpO1xuLnRhYmxlLXJvdy12YXJpYW50KHN1Y2Nlc3M7IEBzdGF0ZS1zdWNjZXNzLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudChpbmZvOyBAc3RhdGUtaW5mby1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQod2FybmluZzsgQHN0YXRlLXdhcm5pbmctYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KGRhbmdlcjsgQHN0YXRlLWRhbmdlci1iZyk7XG5cblxuLy8gUmVzcG9uc2l2ZSB0YWJsZXNcbi8vXG4vLyBXcmFwIHlvdXIgdGFibGVzIGluIGAudGFibGUtcmVzcG9uc2l2ZWAgYW5kIHdlJ2xsIG1ha2UgdGhlbSBtb2JpbGUgZnJpZW5kbHlcbi8vIGJ5IGVuYWJsaW5nIGhvcml6b250YWwgc2Nyb2xsaW5nLiBPbmx5IGFwcGxpZXMgPDc2OHB4LiBFdmVyeXRoaW5nIGFib3ZlIHRoYXRcbi8vIHdpbGwgZGlzcGxheSBub3JtYWxseS5cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwLjAxJTsgLy8gV29ya2Fyb3VuZCBmb3IgSUU5IGJ1ZyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTQ4MzcpXG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMC43NSk7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG5cbiAgICAvLyBUaWdodGVuIHVwIHNwYWNpbmdcbiAgICA+IC50YWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGNvbnRlbnQgZG9lc24ndCB3cmFwXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTcGVjaWFsIG92ZXJyaWRlcyBmb3IgdGhlIGJvcmRlcmVkIHRhYmxlc1xuICAgID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgLy8gTnVrZSB0aGUgYXBwcm9wcmlhdGUgYm9yZGVycyBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGhhbmRsZSB0aGVtXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgID4gdGg6bGFzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPbmx5IG51a2UgdGhlIGxhc3Qgcm93J3MgYm90dG9tLWJvcmRlciBpbiBgdGJvZHlgIGFuZCBgdGZvb3RgIHNpbmNlXG4gICAgICAvLyBjaGFuY2VzIGFyZSB0aGVyZSB3aWxsIGJlIG9ubHkgb25lIGB0cmAgaW4gYSBgdGhlYWRgIGFuZCB0aGF0IHdvdWxkXG4gICAgICAvLyByZW1vdmUgdGhlIGJvcmRlciBhbHRvZ2V0aGVyLlxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgID4gdGgsXG4gICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCIvLyBUYWJsZXNcblxuLnRhYmxlLXJvdy12YXJpYW50KEBzdGF0ZTsgQGJhY2tncm91bmQpIHtcbiAgLy8gRXhhY3Qgc2VsZWN0b3JzIGJlbG93IHJlcXVpcmVkIHRvIG92ZXJyaWRlIGAudGFibGUtc3RyaXBlZGAgYW5kIHByZXZlbnRcbiAgLy8gaW5oZXJpdGFuY2UgdG8gbmVzdGVkIHRhYmxlcy5cbiAgLnRhYmxlID4gdGhlYWQgPiB0cixcbiAgLnRhYmxlID4gdGJvZHkgPiB0cixcbiAgLnRhYmxlID4gdGZvb3QgPiB0ciB7XG4gICAgPiB0ZC5Ae3N0YXRlfSxcbiAgICA+IHRoLkB7c3RhdGV9LFxuICAgICYuQHtzdGF0ZX0gPiB0ZCxcbiAgICAmLkB7c3RhdGV9ID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciB7XG4gICAgPiB0ZC5Ae3N0YXRlfTpob3ZlcixcbiAgICA+IHRoLkB7c3RhdGV9OmhvdmVyLFxuICAgICYuQHtzdGF0ZX06aG92ZXIgPiB0ZCxcbiAgICAmOmhvdmVyID4gLkB7c3RhdGV9LFxuICAgICYuQHtzdGF0ZX06aG92ZXIgPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDUlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBGb3Jtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBOb3JtYWxpemUgbm9uLWNvbnRyb2xzXG4vL1xuLy8gUmVzdHlsZSBhbmQgYmFzZWxpbmUgbm9uLWNvbnRyb2wgZm9ybSBlbGVtZW50cy5cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgLy8gQ2hyb21lIGFuZCBGaXJlZm94IHNldCBhIGBtaW4td2lkdGg6IG1pbi1jb250ZW50O2Agb24gZmllbGRzZXRzLFxuICAvLyBzbyB3ZSByZXNldCB0aGF0IHRvIGVuc3VyZSBpdCBiZWhhdmVzIG1vcmUgbGlrZSBhIHN0YW5kYXJkIGJsb2NrIGVsZW1lbnQuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEyMzU5LlxuICBtaW4td2lkdGg6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IEBsZWdlbmQtY29sb3I7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBsZWdlbmQtYm9yZGVyLWNvbG9yO1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBGb3JjZSBJRTggdG8gd3JhcCBsb25nIGNvbnRlbnQgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEzMTQxKVxuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5cbi8vIE5vcm1hbGl6ZSBmb3JtIGNvbnRyb2xzXG4vL1xuLy8gV2hpbGUgbW9zdCBvZiBvdXIgZm9ybSBzdHlsZXMgcmVxdWlyZSBleHRyYSBjbGFzc2VzLCBzb21lIGJhc2ljIG5vcm1hbGl6YXRpb25cbi8vIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBvcHRpbXVtIGRpc3BsYXkgd2l0aCBvciB3aXRob3V0IHRob3NlIGNsYXNzZXMgdG8gYmV0dGVyXG4vLyBhZGRyZXNzIGJyb3dzZXIgaW5jb25zaXN0ZW5jaWVzLlxuXG4vLyBPdmVycmlkZSBjb250ZW50LWJveCBpbiBOb3JtYWxpemUgKCogaXNuJ3Qgc3BlY2lmaWMgZW5vdWdoKVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG4vLyBQb3NpdGlvbiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgYmV0dGVyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7IC8vIElFOC05XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIE1ha2UgcmFuZ2UgaW5wdXRzIGJlaGF2ZSBsaWtlIHRleHR1YWwgZm9ybSBjb250cm9sc1xuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBNYWtlIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50cyBoZWlnaHQgbm90IGZpeGVkXG5zZWxlY3RbbXVsdGlwbGVdLFxuc2VsZWN0W3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBGb2N1cyBmb3IgZmlsZSwgcmFkaW8sIGFuZCBjaGVja2JveFxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICAudGFiLWZvY3VzKCk7XG59XG5cbi8vIEFkanVzdCBvdXRwdXQgZWxlbWVudFxub3V0cHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xufVxuXG5cbi8vIENvbW1vbiBmb3JtIGNvbnRyb2xzXG4vL1xuLy8gU2hhcmVkIHNpemUgYW5kIHR5cGUgcmVzZXRzIGZvciBmb3JtIGNvbnRyb2xzLiBBcHBseSBgLmZvcm0tY29udHJvbGAgdG8gYW55XG4vLyBvZiB0aGUgZm9sbG93aW5nIGZvcm0gY29udHJvbHM6XG4vL1xuLy8gc2VsZWN0XG4vLyB0ZXh0YXJlYVxuLy8gaW5wdXRbdHlwZT1cInRleHRcIl1cbi8vIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRlXCJdXG4vLyBpbnB1dFt0eXBlPVwibW9udGhcIl1cbi8vIGlucHV0W3R5cGU9XCJ0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwid2Vla1wiXVxuLy8gaW5wdXRbdHlwZT1cIm51bWJlclwiXVxuLy8gaW5wdXRbdHlwZT1cImVtYWlsXCJdXG4vLyBpbnB1dFt0eXBlPVwidXJsXCJdXG4vLyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGVsXCJdXG4vLyBpbnB1dFt0eXBlPVwiY29sb3JcIl1cblxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7IC8vIE1ha2UgaW5wdXRzIGF0IGxlYXN0IHRoZSBoZWlnaHQgb2YgdGhlaXIgYnV0dG9uIGNvdW50ZXJwYXJ0IChiYXNlIGxpbmUtaGVpZ2h0ICsgcGFkZGluZyArIGJvcmRlcilcbiAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1iZztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCBAaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1czsgLy8gTm90ZTogVGhpcyBoYXMgbm8gZWZmZWN0IG9uIDxzZWxlY3Q+cyBpbiBzb21lIGJyb3dzZXJzLCBkdWUgdG8gdGhlIGxpbWl0ZWQgc3R5bGFiaWxpdHkgb2YgPHNlbGVjdD5zIGluIENTUy5cbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpO1xuICAudHJhbnNpdGlvbih+XCJib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzXCIpO1xuXG4gIC8vIEN1c3RvbWl6ZSB0aGUgYDpmb2N1c2Agc3RhdGUgdG8gaW1pdGF0ZSBuYXRpdmUgV2ViS2l0IHN0eWxlcy5cbiAgLmZvcm0tY29udHJvbC1mb2N1cygpO1xuXG4gIC8vIFBsYWNlaG9sZGVyXG4gIC5wbGFjZWhvbGRlcigpO1xuXG4gIC8vIFVuc3R5bGUgdGhlIGNhcmV0IG9uIGA8c2VsZWN0PmBzIGluIElFMTArLlxuICAmOjotbXMtZXhwYW5kIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0c1xuICAvL1xuICAvLyBIVE1MNSBzYXlzIHRoYXQgY29udHJvbHMgdW5kZXIgYSBmaWVsZHNldCA+IGxlZ2VuZDpmaXJzdC1jaGlsZCB3b24ndCBiZVxuICAvLyBkaXNhYmxlZCBpZiB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQuIER1ZSB0byBpbXBsZW1lbnRhdGlvbiBkaWZmaWN1bHR5LCB3ZVxuICAvLyBkb24ndCBob25vciB0aGF0IGVkZ2UgY2FzZTsgd2Ugc3R5bGUgdGhlbSBhcyBkaXNhYmxlZCBhbnl3YXkuXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1iZy1kaXNhYmxlZDtcbiAgICBvcGFjaXR5OiAxOyAvLyBpT1MgZml4IGZvciB1bnJlYWRhYmxlIGRpc2FibGVkIGNvbnRlbnQ7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjU1XG4gIH1cblxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCBmb3IgYHRleHRhcmVhYHNcbiAgdGV4dGFyZWEmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBTZWFyY2ggaW5wdXRzIGluIGlPU1xuLy9cbi8vIFRoaXMgb3ZlcnJpZGVzIHRoZSBleHRyYSByb3VuZGVkIGNvcm5lcnMgb24gc2VhcmNoIGlucHV0cyBpbiBpT1Mgc28gdGhhdCBvdXJcbi8vIGAuZm9ybS1jb250cm9sYCBjbGFzcyBjYW4gcHJvcGVybHkgc3R5bGUgdGhlbS4gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHNpbXBseVxuLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU4Ni5cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG4vLyBTcGVjaWFsIHN0eWxlcyBmb3IgaU9TIHRlbXBvcmFsIGlucHV0c1xuLy9cbi8vIEluIE1vYmlsZSBTYWZhcmksIHNldHRpbmcgYGRpc3BsYXk6IGJsb2NrYCBvbiB0ZW1wb3JhbCBpbnB1dHMgY2F1c2VzIHRoZVxuLy8gdGV4dCB3aXRoaW4gdGhlIGlucHV0IHRvIGJlY29tZSB2ZXJ0aWNhbGx5IG1pc2FsaWduZWQuIEFzIGEgd29ya2Fyb3VuZCwgd2Vcbi8vIHNldCBhIHBpeGVsIGxpbmUtaGVpZ2h0IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaGVpZ2h0IG9mIHRoZSBpbnB1dCwgYnV0IG9ubHlcbi8vIGZvciBTYWZhcmkuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODQ4XG4vL1xuLy8gTm90ZSB0aGF0IGFzIG9mIDkuMywgaU9TIGRvZXNuJ3Qgc3VwcG9ydCBgd2Vla2AuXG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgJi5mb3JtLWNvbnRyb2wge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgICB9XG5cbiAgICAmLmlucHV0LXNtLFxuICAgIC5pbnB1dC1ncm91cC1zbSAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIH1cblxuICAgICYuaW5wdXQtbGcsXG4gICAgLmlucHV0LWdyb3VwLWxnICYge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuICB9XG59XG5cblxuLy8gRm9ybSBncm91cHNcbi8vXG4vLyBEZXNpZ25lZCB0byBoZWxwIHdpdGggdGhlIG9yZ2FuaXphdGlvbiBhbmQgc3BhY2luZyBvZiB2ZXJ0aWNhbCBmb3Jtcy4gRm9yXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IEBmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XG59XG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cblxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBsYWJlbCB7XG4gICAgbWluLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkOyAvLyBFbnN1cmUgdGhlIGlucHV0IGRvZXNuJ3QganVtcCB3aGVuIHRoZXJlIGlzIG5vIHRleHRcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7IC8vIE1vdmUgdXAgc2libGluZyByYWRpb3Mgb3IgY2hlY2tib3hlcyBmb3IgdGlnaHRlciBzcGFjaW5nXG59XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBvbiBzYW1lIGxpbmVcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXG59XG5cbi8vIEFwcGx5IHNhbWUgZGlzYWJsZWQgY3Vyc29yIHR3ZWFrIGFzIGZvciBpbnB1dHNcbi8vIFNvbWUgc3BlY2lhbCBjYXJlIGlzIG5lZWRlZCBiZWNhdXNlIDxsYWJlbD5zIGRvbid0IGluaGVyaXQgdGhlaXIgcGFyZW50J3MgYGN1cnNvcmAuXG4vL1xuLy8gTm90ZTogTmVpdGhlciByYWRpb3Mgbm9yIGNoZWNrYm94ZXMgY2FuIGJlIHJlYWRvbmx5LlxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgZGlyZWN0bHkgb24gPGxhYmVsPnNcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBvbiBlbGVtZW50cyB3aXRoIDxsYWJlbD4gZGVzY2VuZGFudHNcbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBsYWJlbCB7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhdGljIGZvcm0gY29udHJvbCB0ZXh0XG4vL1xuLy8gQXBwbHkgY2xhc3MgdG8gYSBgcGAgZWxlbWVudCB0byBtYWtlIGFueSBzdHJpbmcgb2YgdGV4dCBhbGlnbiB3aXRoIGxhYmVscyBpblxuLy8gYSBob3Jpem9udGFsIGZvcm0gbGF5b3V0LlxuXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIC8vIFNpemUgaXQgYXBwcm9wcmlhdGVseSBuZXh0IHRvIHJlYWwgZm9ybSBjb250cm9sc1xuICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgcGFkZGluZy1ib3R0b206IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBmcm9tIGBwYFxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1iYXNlKTtcblxuICAmLmlucHV0LWxnLFxuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBCdWlsZCBvbiBgLmZvcm0tY29udHJvbGAgd2l0aCBtb2RpZmllciBjbGFzc2VzIHRvIGRlY3JlYXNlIG9yIGluY3JlYXNlIHRoZVxuLy8gaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgZm9ybSBjb250cm9scy5cbi8vXG4vLyBUaGUgYC5mb3JtLWdyb3VwLSogZm9ybS1jb250cm9sYCB2YXJpYXRpb25zIGFyZSBzYWRseSBkdXBsaWNhdGVkIHRvIGF2b2lkIHRoZVxuLy8gaXNzdWUgZG9jdW1lbnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE1MDc0LlxuXG4uaW5wdXQtc20ge1xuICAuaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0LXNtYWxsOyBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4uZm9ybS1ncm91cC1zbSB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1zbWFsbCk7XG4gICAgcGFkZGluZzogKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSkgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1zbWFsbDtcbiAgfVxufVxuXG4uaW5wdXQtbGcge1xuICAuaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0LWxhcmdlOyBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG4uZm9ybS1ncm91cC1sZyB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1sYXJnZSk7XG4gICAgcGFkZGluZzogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSkgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1sYXJnZTtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmZWVkYmFjayBzdGF0ZXNcbi8vXG4vLyBBcHBseSBjb250ZXh0dWFsIGFuZCBzZW1hbnRpYyBzdGF0ZXMgdG8gaW5kaXZpZHVhbCBmb3JtIGNvbnRyb2xzLlxuXG4uaGFzLWZlZWRiYWNrIHtcbiAgLy8gRW5hYmxlIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBFbnN1cmUgaWNvbnMgZG9uJ3Qgb3ZlcmxhcCB0ZXh0XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmctcmlnaHQ6IChAaW5wdXQtaGVpZ2h0LWJhc2UgKiAxLjI1KTtcbiAgfVxufVxuLy8gRmVlZGJhY2sgaWNvbiAocmVxdWlyZXMgLmdseXBoaWNvbiBjbGFzc2VzKVxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjsgLy8gRW5zdXJlIGljb24gaXMgYWJvdmUgaW5wdXQgZ3JvdXBzXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1iYXNlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbn1cblxuLy8gRmVlZGJhY2sgc3RhdGVzXG4uaGFzLXN1Y2Nlc3Mge1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLXN1Y2Nlc3MtdGV4dDsgQHN0YXRlLXN1Y2Nlc3MtdGV4dDsgQHN0YXRlLXN1Y2Nlc3MtYmcpO1xufVxuLmhhcy13YXJuaW5nIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS13YXJuaW5nLXRleHQ7IEBzdGF0ZS13YXJuaW5nLXRleHQ7IEBzdGF0ZS13YXJuaW5nLWJnKTtcbn1cbi5oYXMtZXJyb3Ige1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLWRhbmdlci10ZXh0OyBAc3RhdGUtZGFuZ2VyLXRleHQ7IEBzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG4vLyBSZXBvc2l0aW9uIGZlZWRiYWNrIGljb24gaWYgaW5wdXQgaGFzIHZpc2libGUgbGFiZWwgYWJvdmVcbi5oYXMtZmVlZGJhY2sgbGFiZWwge1xuXG4gICYgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyA1KTsgLy8gSGVpZ2h0IG9mIHRoZSBgbGFiZWxgIGFuZCBpdHMgbWFyZ2luXG4gIH1cbiAgJi5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5cblxuLy8gSGVscCB0ZXh0XG4vL1xuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgeW91IHdpc2ggdG8gY3JlYXRlIGxpZ2h0IHRleHQgZm9yIHBsYWNlbWVudCBpbW1lZGlhdGVseVxuLy8gYmVsb3cgYSBmb3JtIGNvbnRyb2wuIFVzZSBmb3IgZ2VuZXJhbCBoZWxwLCBmb3JtYXR0aW5nLCBvciBpbnN0cnVjdGlvbmFsIHRleHQuXG5cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7IC8vIGFjY291bnQgZm9yIGFueSBlbGVtZW50IHVzaW5nIGhlbHAtYmxvY2tcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogbGlnaHRlbihAdGV4dC1jb2xvciwgMjUlKTsgLy8gbGlnaHRlbiB0aGUgdGV4dCBzb21lIGZvciBjb250cmFzdFxufVxuXG5cbi8vIElubGluZSBmb3Jtc1xuLy9cbi8vIE1ha2UgZm9ybXMgYXBwZWFyIGlubGluZSgtYmxvY2spIGJ5IGFkZGluZyB0aGUgYC5mb3JtLWlubGluZWAgY2xhc3MuIElubGluZVxuLy8gZm9ybXMgYmVnaW4gc3RhY2tlZCBvbiBleHRyYSBzbWFsbCAobW9iaWxlKSBkZXZpY2VzIGFuZCB0aGVuIGdvIGlubGluZSB3aGVuXG4vLyB2aWV3cG9ydHMgcmVhY2ggPDc2OHB4LlxuLy9cbi8vIFJlcXVpcmVzIHdyYXBwaW5nIGlucHV0cyBhbmQgbGFiZWxzIHdpdGggYC5mb3JtLWdyb3VwYCBmb3IgcHJvcGVyIGRpc3BsYXkgb2Zcbi8vIGRlZmF1bHQgSFRNTCBmb3JtIGNvbnRyb2xzIGFuZCBvdXIgY3VzdG9tIGZvcm0gY29udHJvbHMgKGUuZy4sIGlucHV0IGdyb3VwcykuXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byBgLm5hdmJhci1mb3JtYCBpbiBuYXZiYXJzLmxlc3MuXG5cbi5mb3JtLWlubGluZSB7XG5cbiAgLy8gS2ljayBpbiB0aGUgaW5saW5lXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIEluIG5hdmJhci1mb3JtLCBhbGxvdyBmb2xrcyB0byAqbm90KiB1c2UgYC5mb3JtLWdyb3VwYFxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IC8vIFByZXZlbnQgbGFiZWxzIGZyb20gc3RhY2tpbmcgYWJvdmUgaW5wdXRzIGluIGAuZm9ybS1ncm91cGBcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdGF0aWMgY29udHJvbHMgYmVoYXZlIGxpa2UgcmVndWxhciBvbmVzXG4gICAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgICAuaW5wdXQtZ3JvdXAtYnRuLFxuICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0IGdyb3VwcyBuZWVkIHRoYXQgMTAwJSB3aWR0aCB0aG91Z2hcbiAgICAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBvbiByYWRpb3MvY2hlY2tib3hlcyB0aGF0IHdlcmUgdXNlZCBmb3Igc3RhY2tpbmcsIGFuZFxuICAgIC8vIHRoZW4gdW5kbyB0aGUgZmxvYXRpbmcgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzIHRvIG1hdGNoLlxuICAgIC5yYWRpbyxcbiAgICAuY2hlY2tib3gge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC8vIFJlLW92ZXJyaWRlIHRoZSBmZWVkYmFjayBpY29uLlxuICAgIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy8gSG9yaXpvbnRhbCBmb3Jtc1xuLy9cbi8vIEhvcml6b250YWwgZm9ybXMgYXJlIGJ1aWx0IG9uIGdyaWQgY2xhc3NlcyBhbmQgYWxsb3cgeW91IHRvIGNyZWF0ZSBmb3JtcyB3aXRoXG4vLyBsYWJlbHMgb24gdGhlIGxlZnQgYW5kIGlucHV0cyBvbiB0aGUgcmlnaHQuXG5cbi5mb3JtLWhvcml6b250YWwge1xuXG4gIC8vIENvbnNpc3RlbnQgdmVydGljYWwgYWxpZ25tZW50IG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlc1xuICAvL1xuICAvLyBMYWJlbHMgYWxzbyBnZXQgc29tZSByZXNldCBzdHlsZXMsIGJ1dCB0aGF0IGlzIHNjb3BlZCB0byBhIG1lZGlhIHF1ZXJ5IGJlbG93LlxuICAucmFkaW8sXG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLWlubGluZSxcbiAgLmNoZWNrYm94LWlubGluZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpOyAvLyBEZWZhdWx0IHBhZGRpbmcgcGx1cyBhIGJvcmRlclxuICB9XG4gIC8vIEFjY291bnQgZm9yIHBhZGRpbmcgd2UncmUgYWRkaW5nIHRvIGVuc3VyZSB0aGUgYWxpZ25tZW50IGFuZCBvZiBoZWxwIHRleHRcbiAgLy8gYW5kIG90aGVyIGNvbnRlbnQgYmVsb3cgaXRlbXNcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gge1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpKTtcbiAgfVxuXG4gIC8vIE1ha2UgZm9ybSBncm91cHMgYmVoYXZlIGxpa2Ugcm93c1xuICAuZm9ybS1ncm91cCB7XG4gICAgLm1ha2Utcm93KCk7XG4gIH1cblxuICAvLyBSZXNldCBzcGFjaW5nIGFuZCByaWdodCBhbGlnbiBsYWJlbHMsIGJ1dCBzY29wZSB0byBtZWRpYSBxdWVyaWVzIHNvIHRoYXRcbiAgLy8gbGFiZWxzIG9uIG5hcnJvdyB2aWV3cG9ydHMgc3RhY2sgdGhlIHNhbWUgYXMgYSBkZWZhdWx0IGZvcm0gZXhhbXBsZS5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7IC8vIERlZmF1bHQgcGFkZGluZyBwbHVzIGEgYm9yZGVyXG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGlvbiBzdGF0ZXNcbiAgLy9cbiAgLy8gUmVwb3NpdGlvbiB0aGUgaWNvbiBiZWNhdXNlIGl0J3Mgbm93IHdpdGhpbiBhIGdyaWQgY29sdW1uIGFuZCBjb2x1bW5zIGhhdmVcbiAgLy8gYHBvc2l0aW9uOiByZWxhdGl2ZTtgIG9uIHRoZW0uIEFsc28gYWNjb3VudHMgZm9yIHRoZSBncmlkIGd1dHRlciBwYWRkaW5nLlxuICAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHJpZ2h0OiBmbG9vcigoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICB9XG5cbiAgLy8gRm9ybSBncm91cCBzaXplc1xuICAvL1xuICAvLyBRdWljayB1dGlsaXR5IGNsYXNzIGZvciBhcHBseWluZyBgLmlucHV0LWxnYCBhbmQgYC5pbnB1dC1zbWAgc3R5bGVzIHRvIHRoZVxuICAvLyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoaW4gYSBgLmZvcm0tZ3JvdXBgLlxuICAuZm9ybS1ncm91cC1sZyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZm9ybS1ncm91cC1zbSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctc21hbGwtdmVydGljYWwgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9ybSB2YWxpZGF0aW9uIHN0YXRlc1xuLy9cbi8vIFVzZWQgaW4gZm9ybXMubGVzcyB0byBnZW5lcmF0ZSB0aGUgZm9ybSB2YWxpZGF0aW9uIENTUyBmb3Igd2FybmluZ3MsIGVycm9ycyxcbi8vIGFuZCBzdWNjZXNzZXMuXG5cbi5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAdGV4dC1jb2xvcjogIzU1NTsgQGJvcmRlci1jb2xvcjogI2NjYzsgQGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gQ29sb3IgdGhlIGxhYmVsIGFuZCBoZWxwIHRleHRcbiAgLmhlbHAtYmxvY2ssXG4gIC5jb250cm9sLWxhYmVsLFxuICAucmFkaW8sXG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLWlubGluZSxcbiAgLmNoZWNrYm94LWlubGluZSxcbiAgJi5yYWRpbyBsYWJlbCxcbiAgJi5jaGVja2JveCBsYWJlbCxcbiAgJi5yYWRpby1pbmxpbmUgbGFiZWwsXG4gICYuY2hlY2tib3gtaW5saW5lIGxhYmVsICB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICB9XG4gIC8vIFNldCB0aGUgYm9yZGVyIGFuZCBib3ggc2hhZG93IG9uIHNwZWNpZmljIGlucHV0cyB0byBtYXRjaFxuICAuZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXItY29sb3I7XG4gICAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpOyAvLyBSZWRlY2xhcmUgc28gdHJhbnNpdGlvbnMgd29ya1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlci1jb2xvciwgMTAlKTtcbiAgICAgIEBzaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgNnB4IGxpZ2h0ZW4oQGJvcmRlci1jb2xvciwgMjAlKTtcbiAgICAgIC5ib3gtc2hhZG93KEBzaGFkb3cpO1xuICAgIH1cbiAgfVxuICAvLyBTZXQgdmFsaWRhdGlvbiBzdGF0ZXMgYWxzbyBmb3IgYWRkb25zXG4gIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuICAvLyBPcHRpb25hbCBmZWVkYmFjayBpY29uXG4gIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmb2N1cyBzdGF0ZVxuLy9cbi8vIEdlbmVyYXRlIGEgY3VzdG9taXplZCBmb2N1cyBzdGF0ZSBhbmQgZm9yIGFueSBpbnB1dCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sb3IsXG4vLyB3aGljaCBkZWZhdWx0cyB0byB0aGUgYEBpbnB1dC1ib3JkZXItZm9jdXNgIHZhcmlhYmxlLlxuLy9cbi8vIFdlIGhpZ2hseSBlbmNvdXJhZ2UgeW91IHRvIG5vdCBjdXN0b21pemUgdGhlIGRlZmF1bHQgdmFsdWUsIGJ1dCBpbnN0ZWFkIHVzZVxuLy8gdGhpcyB0byB0d2VhayBjb2xvcnMgb24gYW4gYXMtbmVlZGVkIGJhc2lzLiBUaGlzIGFlc3RoZXRpYyBjaGFuZ2UgaXMgYmFzZWQgb25cbi8vIFdlYktpdCdzIGRlZmF1bHQgc3R5bGVzLCBidXQgYXBwbGljYWJsZSB0byBhIHdpZGVyIHJhbmdlIG9mIGJyb3dzZXJzLiBJdHNcbi8vIHVzYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eSBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdpdGggYW55IGNoYW5nZS5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOiBjaGFuZ2UgdGhlIGRlZmF1bHQgYmx1ZSBib3JkZXIgYW5kIHNoYWRvdyB0byB3aGl0ZSBmb3IgYmV0dGVyXG4vLyBjb250cmFzdCBhZ2FpbnN0IGEgZGFyayBncmF5IGJhY2tncm91bmQuXG4uZm9ybS1jb250cm9sLWZvY3VzKEBjb2xvcjogQGlucHV0LWJvcmRlci1mb2N1cykge1xuICBAY29sb3ItcmdiYTogcmdiYShyZWQoQGNvbG9yKSwgZ3JlZW4oQGNvbG9yKSwgYmx1ZShAY29sb3IpLCAuNik7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICAgIG91dGxpbmU6IDA7XG4gICAgLmJveC1zaGFkb3coflwiaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggQHtjb2xvci1yZ2JhfVwiKTtcbiAgfVxufVxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gUmVsYXRpdmUgdGV4dCBzaXplLCBwYWRkaW5nLCBhbmQgYm9yZGVyLXJhZGlpIGNoYW5nZXMgZm9yIGZvcm0gY29udHJvbHMuIEZvclxuLy8gaG9yaXpvbnRhbCBzaXppbmcsIHdyYXAgY29udHJvbHMgaW4gdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLiBgPHNlbGVjdD5gXG4vLyBlbGVtZW50IGdldHMgc3BlY2lhbCBsb3ZlIGJlY2F1c2UgaXQncyBzcGVjaWFsLCBhbmQgdGhhdCdzIGEgZmFjdCFcbi5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQ7IEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblxuICBzZWxlY3QmIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gIH1cblxuICB0ZXh0YXJlYSYsXG4gIHNlbGVjdFttdWx0aXBsZV0mIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIi8vXG4vLyBCdXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBGb3IgaW5wdXQuYnRuXG4gIGZvbnQtd2VpZ2h0OiBAYnRuLWZvbnQtd2VpZ2h0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1iYXNlLXZlcnRpY2FsOyBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7IEBmb250LXNpemUtYmFzZTsgQGxpbmUtaGVpZ2h0LWJhc2U7IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgLnVzZXItc2VsZWN0KG5vbmUpO1xuXG4gICYsXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIC50YWItZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogQGJ0bi1kZWZhdWx0LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIC5ib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIC5vcGFjaXR5KC42NSk7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cblxuICBhJiB7XG4gICAgJi5kaXNhYmxlZCxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gRnV0dXJlLXByb29mIGRpc2FibGluZyBvZiBjbGlja3Mgb24gYDxhPmAgZWxlbWVudHNcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1kZWZhdWx0IHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tZGVmYXVsdC1jb2xvcjsgQGJ0bi1kZWZhdWx0LWJnOyBAYnRuLWRlZmF1bHQtYm9yZGVyKTtcbn1cbi5idG4tcHJpbWFyeSB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXByaW1hcnktY29sb3I7IEBidG4tcHJpbWFyeS1iZzsgQGJ0bi1wcmltYXJ5LWJvcmRlcik7XG59XG4vLyBTdWNjZXNzIGFwcGVhcnMgYXMgZ3JlZW5cbi5idG4tc3VjY2VzcyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXN1Y2Nlc3MtY29sb3I7IEBidG4tc3VjY2Vzcy1iZzsgQGJ0bi1zdWNjZXNzLWJvcmRlcik7XG59XG4vLyBJbmZvIGFwcGVhcnMgYXMgYmx1ZS1ncmVlblxuLmJ0bi1pbmZvIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4taW5mby1jb2xvcjsgQGJ0bi1pbmZvLWJnOyBAYnRuLWluZm8tYm9yZGVyKTtcbn1cbi8vIFdhcm5pbmcgYXBwZWFycyBhcyBvcmFuZ2Vcbi5idG4td2FybmluZyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXdhcm5pbmctY29sb3I7IEBidG4td2FybmluZy1iZzsgQGJ0bi13YXJuaW5nLWJvcmRlcik7XG59XG4vLyBEYW5nZXIgYW5kIGVycm9yIGFwcGVhciBhcyByZWRcbi5idG4tZGFuZ2VyIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tZGFuZ2VyLWNvbG9yOyBAYnRuLWRhbmdlci1iZzsgQGJ0bi1kYW5nZXItYm9yZGVyKTtcbn1cblxuXG4vLyBMaW5rIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSBhIGJ1dHRvbiBsb29rIGFuZCBiZWhhdmUgbGlrZSBhIGxpbmtcbi5idG4tbGluayB7XG4gIGNvbG9yOiBAbGluay1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGJ0bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJ1dHRvbiBTaXplc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1sZyB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgZXZlbi1udW1iZXJlZCBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gbGFyZ2UgaW5wdXRcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBidG4tYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG4uYnRuLXNtIHtcbiAgLy8gbGluZS1oZWlnaHQ6IGVuc3VyZSBwcm9wZXIgaGVpZ2h0IG9mIGJ1dHRvbiBuZXh0IHRvIHNtYWxsIGlucHV0XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuLmJ0bi14cyB7XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy14cy12ZXJ0aWNhbDsgQHBhZGRpbmcteHMtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuXG5cbi8vIEJsb2NrIGJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gVmVydGljYWxseSBzcGFjZSBvdXQgbXVsdGlwbGUgYmxvY2sgYnV0dG9uc1xuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi8vIFNwZWNpZmljaXR5IG92ZXJyaWRlc1xuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAmLmJ0bi1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50c1xuLy9cbi8vIEVhc2lseSBwdW1wIG91dCBkZWZhdWx0IHN0eWxlcywgYXMgd2VsbCBhcyA6aG92ZXIsIDpmb2N1cywgOmFjdGl2ZSxcbi8vIGFuZCBkaXNhYmxlZCBvcHRpb25zIGZvciBhbGwgYnV0dG9uc1xuXG4uYnV0dG9uLXZhcmlhbnQoQGNvbG9yOyBAYmFja2dyb3VuZDsgQGJvcmRlcikge1xuICBjb2xvcjogQGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAyNSUpO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAxMiUpO1xuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlJiB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDEyJSk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBjb2xvcjogQGNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxNyUpO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDI1JSk7XG4gICAgfVxuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlJiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAuYmFkZ2Uge1xuICAgIGNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gIH1cbn1cblxuLy8gQnV0dG9uIHNpemVzXG4uYnV0dG9uLXNpemUoQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcbn1cbiIsIi8vIE9wYWNpdHlcblxuLm9wYWNpdHkoQG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogQG9wYWNpdHk7XG4gIC8vIElFOCBmaWx0ZXJcbiAgQG9wYWNpdHktaWU6IChAb3BhY2l0eSAqIDEwMCk7XG4gIGZpbHRlcjogflwiYWxwaGEob3BhY2l0eT1Ae29wYWNpdHktaWV9KVwiO1xufVxuIiwiLy9cbi8vIENvbXBvbmVudCBhbmltYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIZWFkcyB1cCFcbi8vXG4vLyBXZSBkb24ndCB1c2UgdGhlIGAub3BhY2l0eSgpYCBtaXhpbiBoZXJlIHNpbmNlIGl0IGNhdXNlcyBhIGJ1ZyB3aXRoIHRleHRcbi8vIGZpZWxkcyBpbiBJRTctOC4gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8zNTUyLlxuXG4uZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIC50cmFuc2l0aW9uKG9wYWNpdHkgLjE1cyBsaW5lYXIpO1xuICAmLmluIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5pbiAgICAgIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgdHImLmluICAgIHsgZGlzcGxheTogdGFibGUtcm93OyB9XG4gIHRib2R5Ji5pbiB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsgfVxufVxuXG4uY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAudHJhbnNpdGlvbi1wcm9wZXJ0eSh+XCJoZWlnaHQsIHZpc2liaWxpdHlcIik7XG4gIC50cmFuc2l0aW9uLWR1cmF0aW9uKC4zNXMpO1xuICAudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSk7XG59XG4iLCIvL1xuLy8gRHJvcGRvd24gbWVudXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRHJvcGRvd24gYXJyb3cvY2FyZXRcbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogICBAY2FyZXQtd2lkdGgtYmFzZSBkYXNoZWQ7XG4gIGJvcmRlci10b3A6ICAgQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgflwiXFw5XCI7IC8vIElFOFxuICBib3JkZXItcmlnaHQ6IEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogIEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoZGl2KVxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gUHJldmVudCB0aGUgZm9jdXMgb24gdGhlIGRyb3Bkb3duIHRvZ2dsZSB3aGVuIGNsb3NpbmcgZHJvcGRvd25zXG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIG1lbnUgKHVsKVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1kcm9wZG93bjtcbiAgZGlzcGxheTogbm9uZTsgLy8gbm9uZSBieSBkZWZhdWx0LCBidXQgYmxvY2sgb24gXCJvcGVuXCIgb2YgdGhlIG1lbnVcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBtYXJnaW46IDJweCAwIDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOyAvLyBJRTggZmFsbGJhY2tcbiAgYm9yZGVyOiAxcHggc29saWQgQGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgLmJveC1zaGFkb3coMCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAvLyBBbGlnbnMgdGhlIGRyb3Bkb3duIG1lbnUgdG8gcmlnaHRcbiAgLy9cbiAgLy8gRGVwcmVjYXRlZCBhcyBvZiAzLjEuMCBpbiBmYXZvciBvZiBgLmRyb3Bkb3duLW1lbnUtW2Rpcl1gXG4gICYucHVsbC1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIC8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiB0aGUgZHJvcGRvd25cbiAgLmRpdmlkZXIge1xuICAgIC5uYXYtZGl2aWRlcihAZHJvcGRvd24tZGl2aWRlci1iZyk7XG4gIH1cblxuICAvLyBMaW5rcyB3aXRoaW4gdGhlIGRyb3Bkb3duIG1lbnVcbiAgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDNweCAyMHB4O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1jb2xvcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBwcmV2ZW50IGxpbmtzIGZyb20gcmFuZG9tbHkgYnJlYWtpbmcgb250byBuZXcgbGluZXNcbiAgfVxufVxuXG4vLyBIb3Zlci9Gb2N1cyBzdGF0ZVxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1saW5rLWhvdmVyLWJnO1xuICB9XG59XG5cbi8vIEFjdGl2ZSBzdGF0ZVxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWxpbmstYWN0aXZlLWJnO1xuICB9XG59XG5cbi8vIERpc2FibGVkIHN0YXRlXG4vL1xuLy8gR3JheSBvdXQgdGV4dCBhbmQgZW5zdXJlIHRoZSBob3Zlci9mb2N1cyBzdGF0ZSByZW1haW5zIGdyYXlcblxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLy8gTnVrZSBob3Zlci9mb2N1cyBlZmZlY3RzXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50XG4gICAgLnJlc2V0LWZpbHRlcigpO1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuXG4vLyBPcGVuIHN0YXRlIGZvciB0aGUgZHJvcGRvd25cbi5vcGVuIHtcbiAgLy8gU2hvdyB0aGUgbWVudVxuICA+IC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgb3V0bGluZSB3aGVuIDpmb2N1cyBpcyB0cmlnZ2VyZWRcbiAgPiBhIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vIE1lbnUgcG9zaXRpb25pbmdcbi8vXG4vLyBBZGQgZXh0cmEgY2xhc3MgdG8gYC5kcm9wZG93bi1tZW51YCB0byBmbGlwIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGRyb3Bkb3duXG4vLyBtZW51IHdpdGggdGhlIHBhcmVudC5cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bzsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgZnJvbSBgLmRyb3Bkb3duLW1lbnVgXG4gIHJpZ2h0OiAwO1xufVxuLy8gV2l0aCB2Mywgd2UgZW5hYmxlZCBhdXRvLWZsaXBwaW5nIGlmIHlvdSBoYXZlIGEgZHJvcGRvd24gd2l0aGluIGEgcmlnaHRcbi8vIGFsaWduZWQgbmF2IGNvbXBvbmVudC4gVG8gZW5hYmxlIHRoZSB1bmRvaW5nIG9mIHRoYXQsIHdlIHByb3ZpZGUgYW4gb3ZlcnJpZGVcbi8vIHRvIHJlc3RvcmUgdGhlIGRlZmF1bHQgZHJvcGRvd24gbWVudSBhbGlnbm1lbnQuXG4vL1xuLy8gVGhpcyBpcyBvbmx5IGZvciBsZWZ0LWFsaWduaW5nIGEgZHJvcGRvd24gbWVudSB3aXRoaW4gYSBgLm5hdmJhci1yaWdodGAgb3Jcbi8vIGAucHVsbC1yaWdodGAgbmF2IGNvbXBvbmVudC5cbi5kcm9wZG93bi1tZW51LWxlZnQge1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbn1cblxuLy8gRHJvcGRvd24gc2VjdGlvbiBoZWFkZXJzXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBkcm9wZG93bi1oZWFkZXItY29sb3I7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIGFzIHdpdGggPiBsaSA+IGFcbn1cblxuLy8gQmFja2Ryb3AgdG8gY2F0Y2ggYm9keSBjbGlja3Mgb24gbW9iaWxlLCBldGMuXG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogKEB6aW5kZXgtZHJvcGRvd24gLSAxMCk7XG59XG5cbi8vIFJpZ2h0IGFsaWduZWQgZHJvcGRvd25zXG4ucHVsbC1yaWdodCA+IC5kcm9wZG93bi1tZW51IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi8vIEFsbG93IGZvciBkcm9wZG93bnMgdG8gZ28gYm90dG9tIHVwIChha2EsIGRyb3B1cC1tZW51KVxuLy9cbi8vIEp1c3QgYWRkIC5kcm9wdXAgYWZ0ZXIgdGhlIHN0YW5kYXJkIC5kcm9wZG93biBjbGFzcyBhbmQgeW91J3JlIHNldCwgYnJvLlxuLy8gVE9ETzogYWJzdHJhY3QgdGhpcyBzbyB0aGF0IHRoZSBuYXZiYXIgZml4ZWQgc3R5bGVzIGFyZSBub3QgcGxhY2VkIGhlcmU/XG5cbi5kcm9wdXAsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24ge1xuICAvLyBSZXZlcnNlIHRoZSBjYXJldFxuICAuY2FyZXQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogQGNhcmV0LXdpZHRoLWJhc2UgZGFzaGVkO1xuICAgIGJvcmRlci1ib3R0b206IEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIH5cIlxcOVwiOyAvLyBJRThcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC8vIERpZmZlcmVudCBwb3NpdGlvbmluZyBmb3IgYm90dG9tIHVwIG1lbnVcbiAgLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB9XG59XG5cblxuLy8gQ29tcG9uZW50IGFsaWdubWVudFxuLy9cbi8vIFJlaXRlcmF0ZSBwZXIgbmF2YmFyLmxlc3MgYW5kIHRoZSBtb2RpZmllZCBjb21wb25lbnQgYWxpZ25tZW50IHRoZXJlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLXJpZ2h0IHtcbiAgICAuZHJvcGRvd24tbWVudSB7XG4gICAgICAuZHJvcGRvd24tbWVudS1yaWdodCgpO1xuICAgIH1cbiAgICAvLyBOZWNlc3NhcnkgZm9yIG92ZXJyaWRlcyBvZiB0aGUgZGVmYXVsdCByaWdodCBhbGlnbmVkIG1lbnUuXG4gICAgLy8gV2lsbCByZW1vdmUgY29tZSB2NCBpbiBhbGwgbGlrZWxpaG9vZC5cbiAgICAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICAgIC5kcm9wZG93bi1tZW51LWxlZnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhvcml6b250YWwgZGl2aWRlcnNcbi8vXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gZHJvcGRvd25zIGFuZCBuYXYgbGlzdHNcblxuLm5hdi1kaXZpZGVyKEBjb2xvcjogI2U1ZTVlNSkge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIC0gMSkgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xufVxuIiwiLy8gUmVzZXQgZmlsdGVycyBmb3IgSUVcbi8vXG4vLyBXaGVuIHlvdSBuZWVkIHRvIHJlbW92ZSBhIGdyYWRpZW50IGJhY2tncm91bmQsIGRvIG5vdCBmb3JnZXQgdG8gdXNlIHRoaXMgdG8gcmVzZXRcbi8vIHRoZSBJRSBmaWx0ZXIgZm9yIElFOSBhbmQgYmVsb3cuXG5cbi5yZXNldC1maWx0ZXIoKSB7XG4gIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSlcIikpO1xufVxuIiwiLy9cbi8vIEJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgdGhlIGRpdiBiZWhhdmUgbGlrZSBhIGJ1dHRvblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gbWF0Y2ggLmJ0biBhbGlnbm1lbnQgZ2l2ZW4gZm9udC1zaXplIGhhY2sgYWJvdmVcbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgYnV0dG9uIHRvIHRoZSBmcm9udFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcmV2ZW50IGRvdWJsZSBib3JkZXJzIHdoZW4gYnV0dG9ucyBhcmUgbmV4dCB0byBlYWNoIG90aGVyXG4uYnRuLWdyb3VwIHtcbiAgLmJ0biArIC5idG4sXG4gIC5idG4gKyAuYnRuLWdyb3VwLFxuICAuYnRuLWdyb3VwICsgLmJ0bixcbiAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG59XG5cbi8vIE9wdGlvbmFsOiBHcm91cCBtdWx0aXBsZSBidXR0b24gZ3JvdXBzIHRvZ2V0aGVyIGZvciBhIHRvb2xiYXJcbi5idG4tdG9vbGJhciB7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4OyAvLyBPZmZzZXQgdGhlIGZpcnN0IGNoaWxkJ3MgbWFyZ2luXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIC5idG4sXG4gIC5idG4tZ3JvdXAsXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAsXG4gID4gLmlucHV0LWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gU2V0IGNvcm5lcnMgaW5kaXZpZHVhbCBiZWNhdXNlIHNvbWV0aW1lcyBhIHNpbmdsZSBidXR0b24gY2FuIGJlIGluIGEgLmJ0bi1ncm91cCBhbmQgd2UgbmVlZCA6Zmlyc3QtY2hpbGQgYW5kIDpsYXN0LWNoaWxkIHRvIGJvdGggbWF0Y2hcbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gICY6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4vLyBOZWVkIC5kcm9wZG93bi10b2dnbGUgc2luY2UgOmxhc3QtY2hpbGQgZG9lc24ndCBhcHBseSwgZ2l2ZW4gdGhhdCBhIC5kcm9wZG93bi1tZW51IGlzIHVzZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgaXRcbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIEN1c3RvbSBlZGl0cyBmb3IgaW5jbHVkaW5nIGJ0bi1ncm91cHMgd2l0aGluIGJ0bi1ncm91cHMgKHVzZWZ1bCBmb3IgaW5jbHVkaW5nIGRyb3Bkb3duIGJ1dHRvbnMgd2l0aGluIGEgYnRuLWdyb3VwKVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbiAgfVxufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuXG4vLyBPbiBhY3RpdmUgYW5kIG9wZW4sIGRvbid0IHNob3cgb3V0bGluZVxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSxcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3V0bGluZTogMDtcbn1cblxuXG4vLyBTaXppbmdcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBidXR0b24gc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbi5cblxuLmJ0bi1ncm91cC14cyA+IC5idG4geyAmOmV4dGVuZCguYnRuLXhzKTsgfVxuLmJ0bi1ncm91cC1zbSA+IC5idG4geyAmOmV4dGVuZCguYnRuLXNtKTsgfVxuLmJ0bi1ncm91cC1sZyA+IC5idG4geyAmOmV4dGVuZCguYnRuLWxnKTsgfVxuXG5cbi8vIFNwbGl0IGJ1dHRvbiBkcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR2l2ZSB0aGUgbGluZSBiZXR3ZWVuIGJ1dHRvbnMgc29tZSBkZXB0aFxuLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbn1cblxuLy8gVGhlIGNsaWNrYWJsZSBidXR0b24gZm9yIHRvZ2dsaW5nIHRoZSBtZW51XG4vLyBSZW1vdmUgdGhlIGdyYWRpZW50IGFuZCBzZXQgdGhlIHNhbWUgaW5zZXQgc2hhZG93IGFzIHRoZSA6YWN0aXZlIHN0YXRlXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cblxuLy8gUmVwb3NpdGlvbiB0aGUgY2FyZXRcbi5idG4gLmNhcmV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4vLyBDYXJldHMgaW4gb3RoZXIgYnV0dG9uIHNpemVzXG4uYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogQGNhcmV0LXdpZHRoLWxhcmdlIEBjYXJldC13aWR0aC1sYXJnZSAwO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuLy8gVXBzaWRlIGRvd24gY2FyZXRzIGZvciAuZHJvcHVwXG4uZHJvcHVwIC5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAwIEBjYXJldC13aWR0aC1sYXJnZSBAY2FyZXQtd2lkdGgtbGFyZ2U7XG59XG5cblxuLy8gVmVydGljYWwgYnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAsXG4gID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIENsZWFyIGZsb2F0cyBzbyBkcm9wZG93biBtZW51cyBjYW4gYmUgcHJvcGVybHkgcGxhY2VkXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gICAgPiAuYnRuIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gID4gLmJ0biArIC5idG4sXG4gID4gLmJ0biArIC5idG4tZ3JvdXAsXG4gID4gLmJ0bi1ncm91cCArIC5idG4sXG4gID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbiAgJjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgPiAuYnRuOmxhc3QtY2hpbGQsXG4gID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cblxuXG4vLyBKdXN0aWZpZWQgYnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gID4gLmJ0bi1ncm91cCAuYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuXG5cbi8vIENoZWNrYm94IGFuZCByYWRpbyBvcHRpb25zXG4vL1xuLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgYnJvd3NlcidzIGZvcm0gdmFsaWRhdGlvbiBmZWVkYmFjaywgcG93ZXJlZCBieSB0aGVcbi8vIGByZXF1aXJlZGAgYXR0cmlidXRlLCB3ZSBoYXZlIHRvIFwiaGlkZVwiIHRoZSBpbnB1dHMgdmlhIGBjbGlwYC4gV2UgY2Fubm90IHVzZVxuLy8gYGRpc3BsYXk6IG5vbmU7YCBvciBgdmlzaWJpbGl0eTogaGlkZGVuO2AgYXMgdGhhdCBhbHNvIGhpZGVzIHRoZSBwb3BvdmVyLlxuLy8gU2ltcGx5IHZpc3VhbGx5IGhpZGluZyB0aGUgaW5wdXRzIHZpYSBgb3BhY2l0eWAgd291bGQgbGVhdmUgdGhlbSBjbGlja2FibGUgaW5cbi8vIGNlcnRhaW4gY2FzZXMgd2hpY2ggaXMgcHJldmVudGVkIGJ5IHVzaW5nIGBjbGlwYCBhbmQgYHBvaW50ZXItZXZlbnRzYC5cbi8vIFRoaXMgd2F5LCB3ZSBlbnN1cmUgYSBET00gZWxlbWVudCBpcyB2aXNpYmxlIHRvIHBvc2l0aW9uIHRoZSBwb3BvdmVyIGZyb20uXG4vL1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEyNzk0IGFuZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTQ1NTkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5cbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0ge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG4uYm9yZGVyLXRvcC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLXJpZ2h0LXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItYm90dG9tLXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItbGVmdC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xuICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuIiwiLy9cbi8vIElucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gRm9yIGRyb3Bkb3duc1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgLy8gcHJldmVudCBpbnB1dCBncm91cHMgZnJvbSBpbmhlcml0aW5nIGJvcmRlciBzdHlsZXMgZnJvbSB0YWJsZSBjZWxscyB3aGVuIHBsYWNlZCB3aXRoaW4gYSB0YWJsZVxuXG4gIC8vIFVuZG8gcGFkZGluZyBhbmQgZmxvYXQgb2YgZ3JpZCBjbGFzc2VzXG4gICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgaW5wdXQgaXMgYWx3YXlzIGFib3ZlIHRoZSAqYXBwZW5kZWQqIGFkZG9uIGJ1dHRvbiBmb3JcbiAgICAvLyBwcm9wZXIgYm9yZGVyIGNvbG9ycy5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcblxuICAgIC8vIElFOSBmdWJhcnMgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZSBpbiB0ZXh0IGlucHV0cyBhbmQgdGhlIGFycm93cyBvblxuICAgIC8vIHNlbGVjdCBlbGVtZW50cyBpbiBpbnB1dCBncm91cHMuIFRvIGZpeCBpdCwgd2UgZmxvYXQgdGhlIGlucHV0LiBEZXRhaWxzOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1NjEjaXNzdWVjb21tZW50LTI4OTM2ODU1XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaXppbmcgb3B0aW9uc1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGZvcm0gY29udHJvbCBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXJcbi8vIG1hbmlwdWxhdGlvbi5cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgLmlucHV0LWxnKCk7XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICAuaW5wdXQtc20oKTtcbn1cblxuXG4vLyBEaXNwbGF5IGFzIHRhYmxlLWNlbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4vLyBBZGRvbiBhbmQgYWRkb24gd3JhcHBlciBmb3IgYnV0dG9uc1xuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHdpZHRoOiAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gTWF0Y2ggdGhlIGlucHV0c1xufVxuXG4vLyBUZXh0IGlucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtZ3JvdXAtYWRkb24tYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIFNpemluZ1xuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgfVxuICAmLmlucHV0LWxnIHtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgfVxuXG4gIC8vIE51a2UgZGVmYXVsdCBtYXJnaW5zIGZyb20gY2hlY2tib3hlcyBhbmQgcmFkaW9zIHRvIHZlcnRpY2FsbHkgY2VudGVyIHdpdGhpbi5cbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLy8gUmVzZXQgcm91bmRlZCBjb3JuZXJzXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi8vIEJ1dHRvbiBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIEphbmtpbHkgcHJldmVudCBpbnB1dCBidXR0b24gZ3JvdXBzIGZyb20gd3JhcHBpbmcgd2l0aCBgd2hpdGUtc3BhY2VgIGFuZFxuICAvLyBgZm9udC1zaXplYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBpbmxpbmUtYmxvY2tgIG9uIGJ1dHRvbnMuXG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIHNwYWNpbmcsIHBvc2l0aW9uIGZvciBicmluZ2luZyBob3ZlcmVkL2ZvY3VzZWQvYWN0aXZlZFxuICAvLyBlbGVtZW50IGFib3ZlIHRoZSBzaWJsaW5ncy5cbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgKyAuYnRuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIHRvIG9ubHkgaGF2ZSBhIDFweCBib3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIH1cbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIE5hdnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCB1bC9vbFxuICBsaXN0LXN0eWxlOiBub25lO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiBAbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgc2V0cyB0ZXh0IHRvIGdyYXkgYW5kIG51a2VzIGhvdmVyL3RhYiBlZmZlY3RzXG4gICAgJi5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6IEBuYXYtZGlzYWJsZWQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3BlbiBkcm9wZG93bnNcbiAgLm9wZW4gPiBhIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBsaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5hdiBkaXZpZGVycyAoZGVwcmVjYXRlZCB3aXRoIHYzLjAuMSlcbiAgLy9cbiAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjMgd2l0aCB0aGUgZHJvcHBpbmcgb2YgYC5uYXYtbGlzdGAsIGJ1dFxuICAvLyB3ZSBtaXNzZWQgaXQuIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRoaXMgYW55d2hlcmUsIGJ1dCBpbiB0aGUgaW50ZXJlc3RcbiAgLy8gb2YgbWFpbnRhaW5pbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbiBjYXNlIHlvdSB1c2UgaXQsIGl0J3MgZGVwcmVjYXRlZC5cbiAgLm5hdi1kaXZpZGVyIHtcbiAgICAubmF2LWRpdmlkZXIoKTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgSUU4IGZyb20gbWlzcGxhY2luZyBpbWdzXG4gIC8vXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvOTg0I2lzc3VlY29tbWVudC0zOTg1OTg5XG4gID4gbGkgPiBhID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBUYWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIHRhYnMgc29tZXRoaW5nIHRvIHNpdCBvblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIE1ha2UgdGhlIGxpc3QtaXRlbXMgb3ZlcmxheSB0aGUgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG5cbiAgICAvLyBBY3R1YWwgdGFicyAoYXMgbGlua3MpXG4gICAgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlIEBib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yIEBuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciBAbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0cyA6aG92ZXIgdG8gb3ZlcnJpZGUgbm9ybWFsIDpob3ZlclxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHB1bGxpbmcgdGhpcyBpbiBtYWlubHkgZm9yIGxlc3Mgc2hvcnRoYW5kXG4gICYubmF2LWp1c3RpZmllZCB7XG4gICAgLm5hdi1qdXN0aWZpZWQoKTtcbiAgICAubmF2LXRhYnMtanVzdGlmaWVkKCk7XG4gIH1cbn1cblxuXG4vLyBQaWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm5hdi1waWxscyB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gTGlua3MgcmVuZGVyZWQgYXMgcGlsbHNcbiAgICA+IGEge1xuICAgICAgYm9yZGVyLXJhZGl1czogQG5hdi1waWxscy1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YWNrZWQgcGlsbHNcbi5uYXYtc3RhY2tlZCB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG5vIG5lZWQgZm9yIHRoaXMgZ2FwIGJldHdlZW4gbmF2IGl0ZW1zXG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2IHZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEp1c3RpZmllZCBuYXYgbGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcblxuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdmUgYm9yZGVycyB0byBhbmNob3JzIGluc3RlYWQgb2YgYm90dG9tIG9mIGxpc3Rcbi8vXG4vLyBNaXhpbiBmb3IgYWRkaW5nIG9uIHRvcCB0aGUgc2hhcmVkIGAubmF2LWp1c3RpZmllZGAgc3R5bGVzIGZvciBvdXIgdGFic1xuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgPiBsaSA+IGEge1xuICAgIC8vIE92ZXJyaWRlIG1hcmdpbiBmcm9tIC5uYXYtdGFic1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSBAYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSxcbiAgICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIHRhYmJhYmxlIHBhbmVzIHRvIHN0YXJ0LCBzaG93IHRoZW0gd2hlbiBgLmFjdGl2ZWBcbi50YWItY29udGVudCB7XG4gID4gLnRhYi1wYW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU3BlY2lmaWMgZHJvcGRvd25zXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICAvLyBtYWtlIGRyb3Bkb3duIGJvcmRlciBvdmVybGFwIHRhYiBib3JkZXJcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuIiwiLy9cbi8vIE5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBhbmQgYmFzZSBjbGFzc1xuLy9cbi8vIFByb3ZpZGUgYSBzdGF0aWMgbmF2YmFyIGZyb20gd2hpY2ggd2UgZXhwYW5kIHRvIGNyZWF0ZSBmdWxsLXdpZHRoLCBmaXhlZCwgYW5kXG4vLyBvdGhlciBuYXZiYXIgdmFyaWF0aW9ucy5cblxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogQG5hdmJhci1oZWlnaHQ7IC8vIEVuc3VyZSBhIG5hdmJhciBhbHdheXMgc2hvd3MgKGUuZy4sIHdpdGhvdXQgYSAubmF2YmFyLWJyYW5kIGluIGNvbGxhcHNlZCBtb2RlKVxuICBtYXJnaW4tYm90dG9tOiBAbmF2YmFyLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIC8vIFByZXZlbnQgZmxvYXRzIGZyb20gYnJlYWtpbmcgdGhlIG5hdmJhclxuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IEBuYXZiYXItYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBoZWFkaW5nXG4vL1xuLy8gR3JvdXBzIGAubmF2YmFyLWJyYW5kYCBhbmQgYC5uYXZiYXItdG9nZ2xlYCBpbnRvIGEgc2luZ2xlIGNvbXBvbmVudCBmb3IgZWFzeVxuLy8gc3R5bGluZyBvZiByZXNwb25zaXZlIGFzcGVjdHMuXG5cbi5uYXZiYXItaGVhZGVyIHtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBjb2xsYXBzZSAoYm9keSlcbi8vXG4vLyBHcm91cCB5b3VyIG5hdmJhciBjb250ZW50IGludG8gdGhpcyBmb3IgZWFzeSBjb2xsYXBzaW5nIGFuZCBleHBhbmRpbmcgYWNyb3NzXG4vLyB2YXJpb3VzIGRldmljZSBzaXplcy4gQnkgZGVmYXVsdCwgdGhpcyBjb250ZW50IGlzIGNvbGxhcHNlZCB3aGVuIDw3NjhweCwgYnV0XG4vLyB3aWxsIGV4cGFuZCBwYXN0IHRoYXQgZm9yIGEgaG9yaXpvbnRhbCBkaXNwbGF5LlxuLy9cbi8vIFRvIHN0YXJ0IChvbiBtb2JpbGUgZGV2aWNlcykgdGhlIG5hdmJhciBsaW5rcywgZm9ybXMsIGFuZCBidXR0b25zIGFyZSBzdGFja2VkXG4vLyB2ZXJ0aWNhbGx5IGFuZCBpbmNsdWRlIGEgYG1heC1oZWlnaHRgIHRvIG92ZXJmbG93IGluIGNhc2UgeW91IGhhdmUgdG9vIG11Y2hcbi8vIGNvbnRlbnQgZm9yIHRoZSB1c2VyJ3Mgdmlld3BvcnQuXG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZy1sZWZ0OiAgQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAmLmluIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IHNldHRpbmdcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5pbiB7XG4gICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8vIFVuZG8gdGhlIGNvbGxhcHNlIHNpZGUgcGFkZGluZyBmb3IgbmF2YmFycyB3aXRoIGNvbnRhaW5lcnMgdG8gZW5zdXJlXG4gICAgLy8gYWxpZ25tZW50IG9mIHJpZ2h0LWFsaWduZWQgY29udGVudHMuXG4gICAgLm5hdmJhci1maXhlZC10b3AgJixcbiAgICAubmF2YmFyLXN0YXRpYy10b3AgJixcbiAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXgtaGVpZ2h0OiBAbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ7XG5cbiAgICBAbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IEBzY3JlZW4teHMtbWluKSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvdGggbmF2YmFyIGhlYWRlciBhbmQgY29sbGFwc2Vcbi8vXG4vLyBXaGVuIGEgY29udGFpbmVyIGlzIHByZXNlbnQsIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGhlYWRlciBhbmQgY29sbGFwc2UuXG5cbi5jb250YWluZXIsXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgPiAubmF2YmFyLWhlYWRlcixcbiAgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tbGVmdDogIC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogIDA7XG4gICAgfVxuICB9XG59XG5cblxuLy9cbi8vIE5hdmJhciBhbGlnbm1lbnQgb3B0aW9uc1xuLy9cbi8vIERpc3BsYXkgdGhlIG5hdmJhciBhY3Jvc3MgdGhlIGVudGlyZXR5IG9mIHRoZSBwYWdlIG9yIGZpeGVkIGl0IHRvIHRoZSB0b3Agb3Jcbi8vIGJvdHRvbSBvZiB0aGUgcGFnZS5cblxuLy8gU3RhdGljIHRvcCAodW5maXhlZCwgYnV0IDEwMCUgd2lkZSkgbmF2YmFyXG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiBAemluZGV4LW5hdmJhcjtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBGaXggdGhlIHRvcC9ib3R0b20gbmF2YmFycyB3aGVuIHNjcmVlbiByZWFsIGVzdGF0ZSBzdXBwb3J0cyBpdFxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbmF2YmFyLWZpeGVkO1xuXG4gIC8vIFVuZG8gdGhlIHJvdW5kZWQgY29ybmVyc1xuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gb3ZlcnJpZGUgLm5hdmJhciBkZWZhdWx0c1xuICBib3JkZXItd2lkdGg6IDFweCAwIDA7XG59XG5cblxuLy8gQnJhbmQvcHJvamVjdCBuYW1lXG5cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGhlaWdodDogQG5hdmJhci1oZWlnaHQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lciAmLFxuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdG9nZ2xlXG4vL1xuLy8gQ3VzdG9tIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIGAubmF2YmFyLWNvbGxhcHNlYCwgcG93ZXJlZCBieSB0aGUgY29sbGFwc2Vcbi8vIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzNHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgLy8gV2UgcmVtb3ZlIHRoZSBgb3V0bGluZWAgaGVyZSwgYnV0IGxhdGVyIGNvbXBlbnNhdGUgYnkgYXR0YWNoaW5nIGA6aG92ZXJgXG4gIC8vIHN0eWxlcyB0byBgOmZvY3VzYC5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIEJhcnNcbiAgLmljb24tYmFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIH1cbiAgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgbmF2IGxpbmtzXG4vL1xuLy8gQnVpbGRzIG9uIHRvcCBvZiB0aGUgYC5uYXZgIGNvbXBvbmVudHMgd2l0aCBpdHMgb3duIG1vZGlmaWVyIGNsYXNzIHRvIG1ha2Vcbi8vIHRoZSBuYXYgdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBob3Jpem9udGFsIG5hdiAoYWJvdmUgNzY4cHgpLlxuXG4ubmF2YmFyLW5hdiB7XG4gIG1hcmdpbjogKEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbCAvIDIpIC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICA+IGxpID4gYSB7XG4gICAgcGFkZGluZy10b3A6ICAgIDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICA+IGxpID4gYSxcbiAgICAgIC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDtcbiAgICAgIH1cbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFVuY29sbGFwc2UgdGhlIG5hdlxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcblxuICAgID4gbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICA+IGEge1xuICAgICAgICBwYWRkaW5nLXRvcDogICAgQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciBmb3JtXG4vL1xuLy8gRXh0ZW5zaW9uIG9mIHRoZSBgLmZvcm0taW5saW5lYCB3aXRoIHNvbWUgZXh0cmEgZmxhdm9yIGZvciBvcHRpbXVtIGRpc3BsYXkgaW5cbi8vIG91ciBuYXZiYXJzLlxuXG4ubmF2YmFyLWZvcm0ge1xuICBtYXJnaW4tbGVmdDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZzogMTBweCBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBzaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSksIDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XG4gIC5ib3gtc2hhZG93KEBzaGFkb3cpO1xuXG4gIC8vIE1peGluIGJlaGF2aW9yIGZvciBvcHRpbXVtIGRpc3BsYXlcbiAgLmZvcm0taW5saW5lKCk7XG5cbiAgLmZvcm0tZ3JvdXAge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsbHkgY2VudGVyIGluIGV4cGFuZGVkLCBob3Jpem9udGFsIG5hdmJhclxuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XG5cbiAgLy8gVW5kbyAxMDAlIHdpZHRoIGZvciBwdWxsIGNsYXNzZXNcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cblxuLy8gRHJvcGRvd24gbWVudXNcblxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldHNcbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXQgc3VwcG9ydCBmb3IgZHJvcHVwcyB2aWEgZXh0cmEgZHJvcHVwIGNsYXNzXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoQG5hdmJhci1ib3JkZXItcmFkaXVzKTtcbiAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xufVxuXG5cbi8vIEJ1dHRvbnMgaW4gbmF2YmFyc1xuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGEgYnV0dG9uIHdpdGhpbiBhIG5hdmJhciAod2hlbiAqbm90KiBpbiBhIGZvcm0pLlxuXG4ubmF2YmFyLWJ0biB7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAmLmJ0bi1zbSB7XG4gICAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LXNtYWxsKTtcbiAgfVxuICAmLmJ0bi14cyB7XG4gICAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigyMik7XG4gIH1cbn1cblxuXG4vLyBUZXh0IGluIG5hdmJhcnNcbi8vXG4vLyBBZGQgYSBjbGFzcyB0byBtYWtlIGFueSBlbGVtZW50IHByb3Blcmx5IGFsaWduIGl0c2VsZiB2ZXJ0aWNhbGx5IHdpdGhpbiB0aGUgbmF2YmFycy5cblxuLm5hdmJhci10ZXh0IHtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAbGluZS1oZWlnaHQtY29tcHV0ZWQpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVwdXJwb3NlIHRoZSBwdWxsIHV0aWxpdGllcyBhcyB0aGVpciBvd24gbmF2YmFyIHV0aWxpdGllcyB0byBhdm9pZCBzcGVjaWZpY2l0eVxuLy8gaXNzdWVzIHdpdGggcGFyZW50cyBhbmQgY2hhaW5pbmcuIE9ubHkgZG8gdGhpcyB3aGVuIHRoZSBuYXZiYXIgaXMgdW5jb2xsYXBzZWRcbi8vIHRob3VnaCBzbyB0aGF0IG5hdmJhciBjb250ZW50cyBwcm9wZXJseSBzdGFjayBhbmQgYWxpZ24gaW4gbW9iaWxlLlxuLy9cbi8vIERlY2xhcmVkIGFmdGVyIHRoZSBuYXZiYXIgY29tcG9uZW50cyB0byBlbnN1cmUgbW9yZSBzcGVjaWZpY2l0eSBvbiB0aGUgbWFyZ2lucy5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgLm5hdmJhci1sZWZ0ICB7IC5wdWxsLWxlZnQoKTsgfVxuICAubmF2YmFyLXJpZ2h0IHtcbiAgICAucHVsbC1yaWdodCgpO1xuICAgIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgbmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRGVmYXVsdCBuYXZiYXJcbi5uYXZiYXItZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1iZztcbiAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWljb24tYmFyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuICB9XG5cbiAgLy8gRHJvcGRvd24gbWVudSBpdGVtc1xuICAubmF2YmFyLW5hdiB7XG4gICAgLy8gUmVtb3ZlIGJhY2tncm91bmQgY29sb3IgZnJvbSBvcGVuIGRyb3Bkb3duXG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheSB3aGVuIGNvbGxhcHNlZFxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vIExpbmtzIGluIG5hdmJhcnNcbiAgLy9cbiAgLy8gQWRkIGEgY2xhc3MgdG8gZW5zdXJlIGxpbmtzIG91dHNpZGUgdGhlIG5hdmJhciBuYXYgYXJlIGNvbG9yZWQgY29ycmVjdGx5LlxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBJbnZlcnNlIG5hdmJhclxuXG4ubmF2YmFyLWludmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYmc7XG4gIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERhcmtlbiB0aGUgcmVzcG9uc2l2ZSBuYXYgdG9nZ2xlXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBuYXZiYXItaW52ZXJzZS1iZywgNyUpO1xuICB9XG5cbiAgLy8gRHJvcGRvd25zXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IC5vcGVuID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5XG4gICAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIC5kaXZpZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cblxuLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAZWxlbWVudC1oZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogKChAbmF2YmFyLWhlaWdodCAtIEBlbGVtZW50LWhlaWdodCkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKChAbmF2YmFyLWhlaWdodCAtIEBlbGVtZW50LWhlaWdodCkgLyAyKTtcbn1cbiIsIi8vXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRmxvYXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jbGVhcmZpeCB7XG4gIC5jbGVhcmZpeCgpO1xufVxuLmNlbnRlci1ibG9jayB7XG4gIC5jZW50ZXItYmxvY2soKTtcbn1cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuXG4vLyBUb2dnbGluZyBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLmhpZGUgaW4gZmF2b3Igb2YgLmhpZGRlbiBvciAuc3Itb25seSAoYXMgYXBwcm9wcmlhdGUpIGluIHYzLjAuMVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIC50ZXh0LWhpZGUoKTtcbn1cblxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gRm9yIEFmZml4IHBsdWdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4iLCIvL1xuLy8gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmJyZWFkY3J1bWIge1xuICBwYWRkaW5nOiBAYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsIEBicmVhZGNydW1iLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJlYWRjcnVtYi1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICArIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIkB7YnJlYWRjcnVtYi1zZXBhcmF0b3J9XFwwMGEwXCI7IC8vIFVuaWNvZGUgc3BhY2UgYWRkZWQgc2luY2UgaW5saW5lLWJsb2NrIG1lYW5zIG5vbi1jb2xsYXBzaW5nIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIGNvbG9yOiBAYnJlYWRjcnVtYi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGNvbG9yOiBAYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I7XG4gIH1cbn1cbiIsIi8vXG4vLyBQYWdpbmF0aW9uIChtdWx0aXBsZSBwYWdlcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IEBsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgLy8gUmVtb3ZlIGxpc3Qtc3R5bGUgYW5kIGJsb2NrLWxldmVsIGRlZmF1bHRzXG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gQ29sbGFwc2Ugd2hpdGUtc3BhY2VcbiAgICAgIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBAcGFnaW5hdGlvbi1ib3JkZXI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLmJvcmRlci1sZWZ0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKEBib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gbGkgPiBhLFxuICA+IGxpID4gc3BhbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24taG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24taG92ZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSA+IGEsXG4gID4gLmFjdGl2ZSA+IHNwYW4ge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gID4gLmRpc2FibGVkIHtcbiAgICA+IHNwYW4sXG4gICAgPiBzcGFuOmhvdmVyLFxuICAgID4gc3Bhbjpmb2N1cyxcbiAgICA+IGEsXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIExhcmdlXG4ucGFnaW5hdGlvbi1sZyB7XG4gIC5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuXG4vLyBTbWFsbFxuLnBhZ2luYXRpb24tc20ge1xuICAucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbiIsIi8vIFBhZ2luYXRpb25cblxuLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICA+IGxpIHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItbGVmdC1yYWRpdXMoQGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1yaWdodC1yYWRpdXMoQGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFBhZ2VyIHBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IEBsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogNXB4IDE0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBAcGFnZXItYm9yZGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogQHBhZ2VyLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5leHQge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5wcmV2aW91cyB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuZGlzYWJsZWQge1xuICAgID4gYSxcbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzLFxuICAgID4gc3BhbiB7XG4gICAgICBjb2xvcjogQHBhZ2VyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWJnO1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIExhYmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBsYWJlbC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuXG4gIC8vIEFkZCBob3ZlciBlZmZlY3RzLCBidXQgb25seSBmb3IgbGlua3NcbiAgYSYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGxhYmVsLWxpbmstaG92ZXItY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1wdHkgbGFiZWxzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBsYWJlbHMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxuLy8gQ29sb3JzXG4vLyBDb250ZXh0dWFsIHZhcmlhdGlvbnMgKGxpbmtlZCBsYWJlbHMgZ2V0IGRhcmtlciBvbiA6aG92ZXIpXG5cbi5sYWJlbC1kZWZhdWx0IHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWRlZmF1bHQtYmcpO1xufVxuXG4ubGFiZWwtcHJpbWFyeSB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1wcmltYXJ5LWJnKTtcbn1cblxuLmxhYmVsLXN1Y2Nlc3Mge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtc3VjY2Vzcy1iZyk7XG59XG5cbi5sYWJlbC1pbmZvIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWluZm8tYmcpO1xufVxuXG4ubGFiZWwtd2FybmluZyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC13YXJuaW5nLWJnKTtcbn1cblxuLmxhYmVsLWRhbmdlciB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1kYW5nZXItYmcpO1xufVxuIiwiLy8gTGFiZWxzXG5cbi5sYWJlbC12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG5cbiAgJltocmVmXSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQmFkZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiBAYmFkZ2UtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiBAYmFkZ2UtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBAYmFkZ2UtbGluZS1oZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhZGdlLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYmFkZ2UtYm9yZGVyLXJhZGl1cztcblxuICAvLyBFbXB0eSBiYWRnZXMgY29sbGFwc2UgYXV0b21hdGljYWxseSAobm90IGF2YWlsYWJsZSBpbiBJRTgpXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBRdWljayBmaXggZm9yIGJhZGdlcyBpbiBidXR0b25zXG4gIC5idG4gJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgfVxuXG4gIC5idG4teHMgJixcbiAgLmJ0bi1ncm91cC14cyA+IC5idG4gJiB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZSwgYnV0IG9ubHkgZm9yIGxpbmtzXG4gIGEmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBiYWRnZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjY291bnQgZm9yIGJhZGdlcyBpbiBuYXZzXG4gIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gJixcbiAgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gJiB7XG4gICAgY29sb3I6IEBiYWRnZS1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhZGdlLWFjdGl2ZS1iZztcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0gPiAmIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiArICYge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG5cbiAgLm5hdi1waWxscyA+IGxpID4gYSA+ICYge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi8vXG4vLyBKdW1ib3Ryb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmctdG9wOiAgICBAanVtYm90cm9uLXBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAanVtYm90cm9uLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBqdW1ib3Ryb24tcGFkZGluZztcbiAgY29sb3I6IEBqdW1ib3Ryb24tY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBqdW1ib3Ryb24tYmc7XG5cbiAgaDEsXG4gIC5oMSB7XG4gICAgY29sb3I6IEBqdW1ib3Ryb24taGVhZGluZy1jb2xvcjtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IChAanVtYm90cm9uLXBhZGRpbmcgLyAyKTtcbiAgICBmb250LXNpemU6IEBqdW1ib3Ryb24tZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIH1cblxuICA+IGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oQGp1bWJvdHJvbi1iZywgMTAlKTtcbiAgfVxuXG4gIC5jb250YWluZXIgJixcbiAgLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTsgLy8gT25seSByb3VuZCBjb3JuZXJzIGF0IGhpZ2hlciByZXNvbHV0aW9ucyBpZiBjb250YWluZWQgaW4gYSBjb250YWluZXJcbiAgICBwYWRkaW5nLWxlZnQ6ICAoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICB9XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBwYWRkaW5nLXRvcDogICAgKEBqdW1ib3Ryb24tcGFkZGluZyAqIDEuNik7XG4gICAgcGFkZGluZy1ib3R0b206IChAanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuXG4gICAgLmNvbnRhaW5lciAmLFxuICAgIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICAoQGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAoQGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgfVxuXG4gICAgaDEsXG4gICAgLmgxIHtcbiAgICAgIGZvbnQtc2l6ZTogQGp1bWJvdHJvbi1oZWFkaW5nLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBUaHVtYm5haWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE1peGluIGFuZCBhZGp1c3QgdGhlIHJlZ3VsYXIgaW1hZ2UgY2xhc3Ncbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogQHRodW1ibmFpbC1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEB0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgLnRyYW5zaXRpb24oYm9yZGVyIC4ycyBlYXNlLWluLW91dCk7XG5cbiAgPiBpbWcsXG4gIGEgPiBpbWcge1xuICAgICY6ZXh0ZW5kKC5pbWctcmVzcG9uc2l2ZSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gQWRkIGEgaG92ZXIgc3RhdGUgZm9yIGxpbmtlZCB2ZXJzaW9ucyBvbmx5XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyxcbiAgYSYuYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IEBsaW5rLWNvbG9yO1xuICB9XG5cbiAgLy8gSW1hZ2UgY2FwdGlvbnNcbiAgLmNhcHRpb24ge1xuICAgIHBhZGRpbmc6IEB0aHVtYm5haWwtY2FwdGlvbi1wYWRkaW5nO1xuICAgIGNvbG9yOiBAdGh1bWJuYWlsLWNhcHRpb24tY29sb3I7XG4gIH1cbn1cbiIsIi8vXG4vLyBBbGVydHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmFsZXJ0IHtcbiAgcGFkZGluZzogQGFsZXJ0LXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBhbGVydC1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIEhlYWRpbmdzIGZvciBsYXJnZXIgYWxlcnRzXG4gIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8vIFNwZWNpZmllZCBmb3IgdGhlIGg0IHRvIHByZXZlbnQgY29uZmxpY3RzIG9mIGNoYW5naW5nIEBoZWFkaW5ncy1jb2xvclxuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gUHJvdmlkZSBjbGFzcyBmb3IgbGlua3MgdGhhdCBtYXRjaCBhbGVydHNcbiAgLmFsZXJ0LWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiBAYWxlcnQtbGluay1mb250LXdlaWdodDtcbiAgfVxuXG4gIC8vIEltcHJvdmUgYWxpZ25tZW50IGFuZCBzcGFjaW5nIG9mIGlubmVyIGNvbnRlbnRcbiAgPiBwLFxuICA+IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgPiBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICB9XG59XG5cbi8vIERpc21pc3NpYmxlIGFsZXJ0c1xuLy9cbi8vIEV4cGFuZCB0aGUgcmlnaHQgcGFkZGluZyBhbmQgYWNjb3VudCBmb3IgdGhlIGNsb3NlIGJ1dHRvbidzIHBvc2l0aW9uaW5nLlxuXG4uYWxlcnQtZGlzbWlzc2FibGUsIC8vIFRoZSBtaXNzcGVsbGVkIC5hbGVydC1kaXNtaXNzYWJsZSB3YXMgZGVwcmVjYXRlZCBpbiAzLjIuMC5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IChAYWxlcnQtcGFkZGluZyArIDIwKTtcblxuICAvLyBBZGp1c3QgY2xvc2UgbGluayBwb3NpdGlvblxuICAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IC0yMXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIEFsdGVybmF0ZSBzdHlsZXNcbi8vXG4vLyBHZW5lcmF0ZSBjb250ZXh0dWFsIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGNvbG9yaXppbmcgdGhlIGFsZXJ0LlxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1zdWNjZXNzLWJnOyBAYWxlcnQtc3VjY2Vzcy1ib3JkZXI7IEBhbGVydC1zdWNjZXNzLXRleHQpO1xufVxuXG4uYWxlcnQtaW5mbyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1pbmZvLWJnOyBAYWxlcnQtaW5mby1ib3JkZXI7IEBhbGVydC1pbmZvLXRleHQpO1xufVxuXG4uYWxlcnQtd2FybmluZyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC13YXJuaW5nLWJnOyBAYWxlcnQtd2FybmluZy1ib3JkZXI7IEBhbGVydC13YXJuaW5nLXRleHQpO1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LWRhbmdlci1iZzsgQGFsZXJ0LWRhbmdlci1ib3JkZXI7IEBhbGVydC1kYW5nZXItdGV4dCk7XG59XG4iLCIvLyBBbGVydHNcblxuLmFsZXJ0LXZhcmlhbnQoQGJhY2tncm91bmQ7IEBib3JkZXI7IEB0ZXh0LWNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG4gIGNvbG9yOiBAdGV4dC1jb2xvcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKEBib3JkZXIsIDUlKTtcbiAgfVxuICAuYWxlcnQtbGluayB7XG4gICAgY29sb3I6IGRhcmtlbihAdGV4dC1jb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy9cbi8vIFByb2dyZXNzIGJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFyIGFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gV2ViS2l0XG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tICB7IGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDsgfVxuICB0byAgICB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuXG4vLyBTcGVjIGFuZCBJRTEwK1xuQGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cblxuLy8gQmFyIGl0c2VsZlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBPdXRlciBjb250YWluZXJcbi5wcm9ncmVzcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iZztcbiAgYm9yZGVyLXJhZGl1czogQHByb2dyZXNzLWJvcmRlci1yYWRpdXM7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKSk7XG59XG5cbi8vIEJhciBvZiBwcm9ncmVzc1xuLnByb2dyZXNzLWJhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBjb2xvcjogQHByb2dyZXNzLWJhci1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJvZ3Jlc3MtYmFyLWJnO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSkpO1xuICAudHJhbnNpdGlvbih3aWR0aCAuNnMgZWFzZSk7XG59XG5cbi8vIFN0cmlwZWQgYmFyc1xuLy9cbi8vIGAucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLXN0cmlwZWRgIGNsYXNzLCB3aGljaCB5b3UganVzdCBhZGQgdG8gYW4gZXhpc3Rpbmdcbi8vIGAucHJvZ3Jlc3MtYmFyYC5cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICAjZ3JhZGllbnQgPiAuc3RyaXBlZCgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweDtcbn1cblxuLy8gQ2FsbCBhbmltYXRpb24gZm9yIHRoZSBhY3RpdmUgb25lXG4vL1xuLy8gYC5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcmAgaXMgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgaW4gZmF2b3Igb2YgdGhlXG4vLyBgLnByb2dyZXNzLWJhci5hY3RpdmVgIGFwcHJvYWNoLlxuLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci5hY3RpdmUge1xuICAuYW5pbWF0aW9uKHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZSk7XG59XG5cblxuLy8gVmFyaWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1zdWNjZXNzLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItaW5mby1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLWRhbmdlci1iZyk7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuI2dyYWRpZW50IHtcblxuICAvLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAudmVydGljYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC5kaXJlY3Rpb25hbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIH1cbiAgLmhvcml6b250YWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC52ZXJ0aWNhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAucmFkaWFsKEBpbm5lci1jb2xvcjogIzU1NTsgQG91dGVyLWNvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnN0cmlwZWQoQGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7IEBhbmdsZTogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG4iLCIvLyBQcm9ncmVzcyBiYXJzXG5cbi5wcm9ncmVzcy1iYXItdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuXG4gIC8vIERlcHJlY2F0ZWQgcGFyZW50IGNsYXNzIHJlcXVpcmVtZW50IGFzIG9mIHYzLjIuMFxuICAucHJvZ3Jlc3Mtc3RyaXBlZCAmIHtcbiAgICAjZ3JhZGllbnQgPiAuc3RyaXBlZCgpO1xuICB9XG59XG4iLCIubWVkaWEge1xuICAvLyBQcm9wZXIgc3BhY2luZyBiZXR3ZWVuIGluc3RhbmNlcyBvZiAubWVkaWFcbiAgbWFyZ2luLXRvcDogMTVweDtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgem9vbTogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1lZGlhLWJvZHkge1xuICB3aWR0aDogMTAwMDBweDtcbn1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC8vIEZpeCBjb2xsYXBzZSBpbiB3ZWJraXQgZnJvbSBtYXgtd2lkdGg6IDEwMCUgYW5kIGRpc3BsYXk6IHRhYmxlLWNlbGwuXG4gICYuaW1nLXRodW1ibmFpbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG5cbi5tZWRpYS1yaWdodCxcbi5tZWRpYSA+IC5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ubWVkaWEtbGVmdCxcbi5tZWRpYSA+IC5wdWxsLWxlZnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4ubWVkaWEtbGVmdCxcbi5tZWRpYS1yaWdodCxcbi5tZWRpYS1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLm1lZGlhLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZWRpYS1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vLyBSZXNldCBtYXJnaW5zIG9uIGhlYWRpbmdzIGZvciB0aWdodGVyIGRlZmF1bHQgc3BhY2luZ1xuLm1lZGlhLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8vIE1lZGlhIGxpc3QgdmFyaWF0aW9uXG4vL1xuLy8gVW5kbyBkZWZhdWx0IHVsL29sIHN0eWxlc1xuLm1lZGlhLWxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvL1xuLy8gTGlzdCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy9cbi8vIEVhc2lseSB1c2FibGUgb24gPHVsPiwgPG9sPiwgb3IgPGRpdj4uXG5cbi5saXN0LWdyb3VwIHtcbiAgLy8gTm8gbmVlZCB0byBzZXQgbGlzdC1zdHlsZTogbm9uZTsgc2luY2UgLmxpc3QtZ3JvdXAtaXRlbSBpcyBibG9jayBsZXZlbFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIHJlc2V0IHBhZGRpbmcgYmVjYXVzZSB1bCBhbmQgb2xcbn1cblxuXG4vLyBJbmRpdmlkdWFsIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2Ugb24gYGxpYHMgb3IgYGRpdmBzIHdpdGhpbiB0aGUgYC5saXN0LWdyb3VwYCBwYXJlbnQuXG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIC8vIFBsYWNlIHRoZSBib3JkZXIgb24gdGhlIGxpc3QgaXRlbXMgYW5kIG5lZ2F0aXZlIG1hcmdpbiB1cCBmb3IgYmV0dGVyIHN0eWxpbmdcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBsaXN0LWdyb3VwLWJvcmRlcjtcblxuICAvLyBSb3VuZCB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXNcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKEBsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoQGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cblxuXG4vLyBJbnRlcmFjdGl2ZSBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIGFuY2hvciBvciBidXR0b24gZWxlbWVudHMgaW5zdGVhZCBvZiBgbGlgcyBvciBgZGl2YHMgdG8gY3JlYXRlIGludGVyYWN0aXZlIGl0ZW1zLlxuLy8gSW5jbHVkZXMgYW4gZXh0cmEgYC5hY3RpdmVgIG1vZGlmaWVyIGNsYXNzIGZvciBzaG93aW5nIHNlbGVjdGVkIGl0ZW1zLlxuXG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1jb2xvcjtcblxuICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWhlYWRpbmctY29sb3I7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstaG92ZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtaG92ZXItYmc7XG4gIH1cbn1cblxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJi5kaXNhYmxlZCxcbiAgJi5kaXNhYmxlZDpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcblxuICAgIC8vIEZvcmNlIGNvbG9yIHRvIGluaGVyaXQgZm9yIGN1c3RvbSBjb250ZW50XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICAgICAgY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQWN0aXZlIGNsYXNzIG9uIGl0ZW0gaXRzZWxmLCBub3QgcGFyZW50XG4gICYuYWN0aXZlLFxuICAmLmFjdGl2ZTpob3ZlcixcbiAgJi5hY3RpdmU6Zm9jdXMge1xuICAgIHotaW5kZXg6IDI7IC8vIFBsYWNlIGFjdGl2ZSBpdGVtcyBhYm92ZSB0aGVpciBzaWJsaW5ncyBmb3IgcHJvcGVyIGJvcmRlciBzdHlsaW5nXG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtYmc7XG4gICAgYm9yZGVyLWNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyO1xuXG4gICAgLy8gRm9yY2UgY29sb3IgdG8gaW5oZXJpdCBmb3IgY3VzdG9tIGNvbnRlbnRcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICAgICAgY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWFudHNcbi8vXG4vLyBBZGQgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGV4dCBhbmQgYmFja2dyb3VuZCBjb2xvciBvbiBpbmRpdmlkdWFsIGl0ZW1zLlxuLy8gT3JnYW5pemF0aW9uYWxseSwgdGhpcyBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGA6aG92ZXJgIHN0YXRlcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHN1Y2Nlc3M7IEBzdGF0ZS1zdWNjZXNzLWJnOyBAc3RhdGUtc3VjY2Vzcy10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChpbmZvOyBAc3RhdGUtaW5mby1iZzsgQHN0YXRlLWluZm8tdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQod2FybmluZzsgQHN0YXRlLXdhcm5pbmctYmc7IEBzdGF0ZS13YXJuaW5nLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGRhbmdlcjsgQHN0YXRlLWRhbmdlci1iZzsgQHN0YXRlLWRhbmdlci10ZXh0KTtcblxuXG4vLyBDdXN0b20gY29udGVudCBvcHRpb25zXG4vL1xuLy8gRXh0cmEgY2xhc3NlcyBmb3IgY3JlYXRpbmcgd2VsbC1mb3JtYXR0ZWQgY29udGVudCB3aXRoaW4gYC5saXN0LWdyb3VwLWl0ZW1gcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiIsIi8vIExpc3QgR3JvdXBzXG5cbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChAc3RhdGU7IEBiYWNrZ3JvdW5kOyBAY29sb3IpIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbS1Ae3N0YXRlfSB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcblxuICAgIGEmLFxuICAgIGJ1dHRvbiYge1xuICAgICAgY29sb3I6IEBjb2xvcjtcblxuICAgICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCA1JSk7XG4gICAgICB9XG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICYuYWN0aXZlOmhvdmVyLFxuICAgICAgJi5hY3RpdmU6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6IEBjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBQYW5lbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFuZWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAcGFuZWwtYm9yZGVyLXJhZGl1cztcbiAgLmJveC1zaGFkb3coMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KSk7XG59XG5cbi8vIFBhbmVsIGNvbnRlbnRzXG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBPcHRpb25hbCBoZWFkaW5nXG4ucGFuZWwtaGVhZGluZyB7XG4gIHBhZGRpbmc6IEBwYW5lbC1oZWFkaW5nLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBXaXRoaW4gaGVhZGluZywgc3RyaXAgYW55IGBoKmAgdGFnIG9mIGl0cyBkZWZhdWx0IG1hcmdpbnMgZm9yIHNwYWNpbmcuXG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IGNlaWwoKEBmb250LXNpemUtYmFzZSAqIDEuMTI1KSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gID4gYSxcbiAgPiBzbWFsbCxcbiAgPiAuc21hbGwsXG4gID4gc21hbGwgPiBhLFxuICA+IC5zbWFsbCA+IGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGZvb3RlciAoc3RheXMgZ3JheSBpbiBldmVyeSBtb2RpZmllciBjbGFzcylcbi5wYW5lbC1mb290ZXIge1xuICBwYWRkaW5nOiBAcGFuZWwtZm9vdGVyLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYW5lbC1mb290ZXItYmc7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xufVxuXG5cbi8vIExpc3QgZ3JvdXBzIGluIHBhbmVsc1xuLy9cbi8vIEJ5IGRlZmF1bHQsIHNwYWNlIG91dCBsaXN0IGdyb3VwIGNvbnRlbnQgZnJvbSBwYW5lbCBoZWFkaW5ncyB0byBhY2NvdW50IGZvclxuLy8gYW55IGtpbmQgb2YgY3VzdG9tIGNvbnRlbnQgYmV0d2VlbiB0aGUgdHdvLlxuXG4ucGFuZWwge1xuICA+IC5saXN0LWdyb3VwLFxuICA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGJvcmRlciBib3R0b20gcmFkaXVzIGZvciBsYXN0IG9uZVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIH1cbiAgfVxufVxuLy8gQ29sbGFwc2Ugc3BhY2UgYmV0d2VlbiB3aGVuIHRoZXJlJ3Mgbm8gYWRkaXRpb25hbCBjb250ZW50LlxuLnBhbmVsLWhlYWRpbmcgKyAubGlzdC1ncm91cCB7XG4gIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbn1cbi5saXN0LWdyb3VwICsgLnBhbmVsLWZvb3RlciB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG5cbi8vIFRhYmxlcyBpbiBwYW5lbHNcbi8vXG4vLyBQbGFjZSBhIG5vbi1ib3JkZXJlZCBgLnRhYmxlYCB3aXRoaW4gYSBwYW5lbCAobm90IHdpdGhpbiBhIGAucGFuZWwtYm9keWApIGFuZFxuLy8gd2F0Y2ggaXQgZ28gZnVsbCB3aWR0aC5cblxuLnBhbmVsIHtcbiAgPiAudGFibGUsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgY2FwdGlvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICA+IC50YWJsZTpmaXJzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICAgID4gdGhlYWQ6Zmlyc3QtY2hpbGQsXG4gICAgPiB0Ym9keTpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcblxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBBZGQgYm9yZGVyIGJvdHRvbSByYWRpdXMgZm9yIGxhc3Qgb25lXG4gID4gLnRhYmxlOmxhc3QtY2hpbGQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0Ym9keTpsYXN0LWNoaWxkLFxuICAgID4gdGZvb3Q6bGFzdC1jaGlsZCB7XG4gICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUtcmVzcG9uc2l2ZSxcbiAgPiAudGFibGUgKyAucGFuZWwtYm9keSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4gID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICA+IC50YWJsZS1ib3JkZXJlZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHIge1xuICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSB7XG4gICAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRib2R5LFxuICAgID4gdGZvb3Qge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5cbi8vIENvbGxhcHNpYmxlIHBhbmVscyAoYWthLCBhY2NvcmRpb24pXG4vL1xuLy8gV3JhcCBhIHNlcmllcyBvZiBwYW5lbHMgaW4gYC5wYW5lbC1ncm91cGAgdG8gdHVybiB0aGVtIGludG8gYW4gYWNjb3JkaW9uIHdpdGhcbi8vIHRoZSBoZWxwIG9mIG91ciBjb2xsYXBzZSBKYXZhU2NyaXB0IHBsdWdpbi5cblxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuXG4gIC8vIFRpZ2h0ZW4gdXAgbWFyZ2luIHNvIGl0J3Mgb25seSBiZXR3ZWVuIHBhbmVsc1xuICAucGFuZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXJhZGl1czogQHBhbmVsLWJvcmRlci1yYWRpdXM7XG5cbiAgICArIC5wYW5lbCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWhlYWRpbmcge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhdGlvbnNcbi5wYW5lbC1kZWZhdWx0IHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWRlZmF1bHQtYm9yZGVyOyBAcGFuZWwtZGVmYXVsdC10ZXh0OyBAcGFuZWwtZGVmYXVsdC1oZWFkaW5nLWJnOyBAcGFuZWwtZGVmYXVsdC1ib3JkZXIpO1xufVxuLnBhbmVsLXByaW1hcnkge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtcHJpbWFyeS1ib3JkZXI7IEBwYW5lbC1wcmltYXJ5LXRleHQ7IEBwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc7IEBwYW5lbC1wcmltYXJ5LWJvcmRlcik7XG59XG4ucGFuZWwtc3VjY2VzcyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1zdWNjZXNzLWJvcmRlcjsgQHBhbmVsLXN1Y2Nlc3MtdGV4dDsgQHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZzsgQHBhbmVsLXN1Y2Nlc3MtYm9yZGVyKTtcbn1cbi5wYW5lbC1pbmZvIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWluZm8tYm9yZGVyOyBAcGFuZWwtaW5mby10ZXh0OyBAcGFuZWwtaW5mby1oZWFkaW5nLWJnOyBAcGFuZWwtaW5mby1ib3JkZXIpO1xufVxuLnBhbmVsLXdhcm5pbmcge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtd2FybmluZy1ib3JkZXI7IEBwYW5lbC13YXJuaW5nLXRleHQ7IEBwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc7IEBwYW5lbC13YXJuaW5nLWJvcmRlcik7XG59XG4ucGFuZWwtZGFuZ2VyIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWRhbmdlci1ib3JkZXI7IEBwYW5lbC1kYW5nZXItdGV4dDsgQHBhbmVsLWRhbmdlci1oZWFkaW5nLWJnOyBAcGFuZWwtZGFuZ2VyLWJvcmRlcik7XG59XG4iLCIvLyBQYW5lbHNcblxuLnBhbmVsLXZhcmlhbnQoQGJvcmRlcjsgQGhlYWRpbmctdGV4dC1jb2xvcjsgQGhlYWRpbmctYmctY29sb3I7IEBoZWFkaW5nLWJvcmRlcikge1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG5cbiAgJiA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgICBjb2xvcjogQGhlYWRpbmctdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGVhZGluZy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEBoZWFkaW5nLWJvcmRlcjtcblxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gICAgLmJhZGdlIHtcbiAgICAgIGNvbG9yOiBAaGVhZGluZy1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG4gICYgPiAucGFuZWwtZm9vdGVyIHtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBFbWJlZHMgcmVzcG9uc2l2ZVxuLy9cbi8vIENyZWRpdDogTmljb2xhcyBHYWxsYWdoZXIgYW5kIFNVSVQgQ1NTLlxuXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuICBpZnJhbWUsXG4gIGVtYmVkLFxuICBvYmplY3QsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLy8gTW9kaWZpZXIgY2xhc3MgZm9yIDE2OjkgYXNwZWN0IHJhdGlvXG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OSB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciA0OjMgYXNwZWN0IHJhdGlvXG4uZW1iZWQtcmVzcG9uc2l2ZS00YnkzIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbn1cbiIsIi8vXG4vLyBXZWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4ud2VsbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDE5cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3ZWxsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAd2VsbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7XG4gIH1cbn1cblxuLy8gU2l6ZXNcbi53ZWxsLWxnIHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtc21hbGw7XG59XG4iLCIvL1xuLy8gQ2xvc2UgaWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBmb250LXdlaWdodDogQGNsb3NlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBjbG9zZS1jb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBjbG9zZS10ZXh0LXNoYWRvdztcbiAgLm9wYWNpdHkoLjIpO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAY2xvc2UtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAub3BhY2l0eSguNSk7XG4gIH1cblxuICAvLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGJ1dHRvbiB2ZXJzaW9uXG4gIC8vIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuICAvLyBJZiB5b3Ugd2FudCB0aGUgYW5jaG9yIHZlcnNpb24sIGl0IHJlcXVpcmVzIGBocmVmPVwiI1wiYC5cbiAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNTYWZhcmlfTW9iaWxlXG4gIGJ1dHRvbiYge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cbiIsIi8vXG4vLyBNb2RhbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC5tb2RhbC1vcGVuICAgICAgLSBib2R5IGNsYXNzIGZvciBraWxsaW5nIHRoZSBzY3JvbGxcbi8vIC5tb2RhbCAgICAgICAgICAgLSBjb250YWluZXIgdG8gc2Nyb2xsIHdpdGhpblxuLy8gLm1vZGFsLWRpYWxvZyAgICAtIHBvc2l0aW9uaW5nIHNoZWxsIGZvciB0aGUgYWN0dWFsIG1vZGFsXG4vLyAubW9kYWwtY29udGVudCAgIC0gYWN0dWFsIG1vZGFsIHcvIGJnIGFuZCBjb3JuZXJzIGFuZCBzaGl0XG5cbi8vIEtpbGwgdGhlIHNjcm9sbCBvbiB0aGUgYm9keVxuLm1vZGFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBDb250YWluZXIgdGhhdCB0aGUgbW9kYWwgc2Nyb2xscyB3aXRoaW5cbi5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW1vZGFsO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgLy8gUHJldmVudCBDaHJvbWUgb24gV2luZG93cyBmcm9tIGFkZGluZyBhIGZvY3VzIG91dGxpbmUuIEZvciBkZXRhaWxzLCBzZWVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTA5NTEuXG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gV2hlbiBmYWRpbmcgaW4gdGhlIG1vZGFsLCBhbmltYXRlIGl0IHRvIHNsaWRlIGRvd25cbiAgJi5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICAgIC50cmFuc2xhdGUoMCwgLTI1JSk7XG4gICAgLnRyYW5zaXRpb24tdHJhbnNmb3JtKH5cIjAuM3MgZWFzZS1vdXRcIik7XG4gIH1cbiAgJi5pbiAubW9kYWwtZGlhbG9nIHsgLnRyYW5zbGF0ZSgwLCAwKSB9XG59XG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vIFNoZWxsIGRpdiB0byBwb3NpdGlvbiB0aGUgbW9kYWwgd2l0aCBib3R0b20gcGFkZGluZ1xuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLy8gQWN0dWFsIG1vZGFsXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1vZGFsLWNvbnRlbnQtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBtb2RhbC1jb250ZW50LWZhbGxiYWNrLWJvcmRlci1jb2xvcjsgLy9vbGQgYnJvd3NlcnMgZmFsbGJhY2sgKGllOCBldGMpXG4gIGJvcmRlcjogMXB4IHNvbGlkIEBtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIC5ib3gtc2hhZG93KDAgM3B4IDlweCByZ2JhKDAsMCwwLC41KSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC8vIFJlbW92ZSBmb2N1cyBvdXRsaW5lIGZyb20gb3BlbmVkIG1vZGFsXG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIE1vZGFsIGJhY2tncm91bmRcbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW1vZGFsLWJhY2tncm91bmQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBtb2RhbC1iYWNrZHJvcC1iZztcbiAgLy8gRmFkZSBmb3IgYmFja2Ryb3BcbiAgJi5mYWRlIHsgLm9wYWNpdHkoMCk7IH1cbiAgJi5pbiB7IC5vcGFjaXR5KEBtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KTsgfVxufVxuXG4vLyBNb2RhbCBoZWFkZXJcbi8vIFRvcCBzZWN0aW9uIG9mIHRoZSBtb2RhbCB3LyB0aXRsZSBhbmQgZGlzbWlzc1xuLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IEBtb2RhbC10aXRsZS1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuLy8gQ2xvc2UgaWNvblxuLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4vLyBUaXRsZSB0ZXh0IHdpdGhpbiBoZWFkZXJcbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IEBtb2RhbC10aXRsZS1saW5lLWhlaWdodDtcbn1cblxuLy8gTW9kYWwgYm9keVxuLy8gV2hlcmUgYWxsIG1vZGFsIGNvbnRlbnQgcmVzaWRlcyAoc2libGluZyBvZiAubW9kYWwtaGVhZGVyIGFuZCAubW9kYWwtZm9vdGVyKVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IEBtb2RhbC1pbm5lci1wYWRkaW5nO1xufVxuXG4vLyBGb290ZXIgKGZvciBhY3Rpb25zKVxuLm1vZGFsLWZvb3RlciB7XG4gIHBhZGRpbmc6IEBtb2RhbC1pbm5lci1wYWRkaW5nO1xuICB0ZXh0LWFsaWduOiByaWdodDsgLy8gcmlnaHQgYWxpZ24gYnV0dG9uc1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBjbGVhciBpdCBpbiBjYXNlIGZvbGtzIHVzZSAucHVsbC0qIGNsYXNzZXMgb24gYnV0dG9uc1xuXG4gIC8vIFByb3Blcmx5IHNwYWNlIG91dCBidXR0b25zXG4gIC5idG4gKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIGFjY291bnQgZm9yIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0gd2hpY2ggZ2V0cyB0aGUgYm90dG9tIG1hcmdpbiBsaWtlIGFsbCBvdGhlciBpbnB1dHNcbiAgfVxuICAvLyBidXQgb3ZlcnJpZGUgdGhhdCBmb3IgYnV0dG9uIGdyb3Vwc1xuICAuYnRuLWdyb3VwIC5idG4gKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxuICAvLyBhbmQgb3ZlcnJpZGUgaXQgZm9yIGJsb2NrIGJ1dHRvbnMgYXMgd2VsbFxuICAuYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLy8gTWVhc3VyZSBzY3JvbGxiYXIgd2lkdGggZm9yIHBhZGRpbmcgYm9keSBkdXJpbmcgbW9kYWwgc2hvdy9oaWRlXG4ubW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLy8gU2NhbGUgdXAgdGhlIG1vZGFsXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgLy8gQXV0b21hdGljYWxseSBzZXQgbW9kYWwncyB3aWR0aCBmb3IgbGFyZ2VyIHZpZXdwb3J0c1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogQG1vZGFsLW1kO1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICB9XG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICAuYm94LXNoYWRvdygwIDVweCAxNXB4IHJnYmEoMCwwLDAsLjUpKTtcbiAgfVxuXG4gIC8vIE1vZGFsIHNpemVzXG4gIC5tb2RhbC1zbSB7IHdpZHRoOiBAbW9kYWwtc207IH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gIC5tb2RhbC1sZyB7IHdpZHRoOiBAbW9kYWwtbGc7IH1cbn1cbiIsIi8vXG4vLyBUb29sdGlwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogQHppbmRleC10b29sdGlwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLy8gT3VyIHBhcmVudCBlbGVtZW50IGNhbiBiZSBhcmJpdHJhcnkgc2luY2UgdG9vbHRpcHMgYXJlIGJ5IGRlZmF1bHQgaW5zZXJ0ZWQgYXMgYSBzaWJsaW5nIG9mIHRoZWlyIHRhcmdldCBlbGVtZW50LlxuICAvLyBTbyByZXNldCBvdXIgZm9udCBhbmQgdGV4dCBwcm9wZXJ0aWVzIHRvIGF2b2lkIGluaGVyaXRpbmcgd2VpcmQgdmFsdWVzLlxuICAucmVzZXQtdGV4dCgpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG5cbiAgLm9wYWNpdHkoMCk7XG5cbiAgJi5pbiAgICAgeyAub3BhY2l0eShAdG9vbHRpcC1vcGFjaXR5KTsgfVxuICAmLnRvcCAgICB7IG1hcmdpbi10b3A6ICAtM3B4OyBwYWRkaW5nOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYucmlnaHQgIHsgbWFyZ2luLWxlZnQ6ICAzcHg7IHBhZGRpbmc6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbiAgJi5ib3R0b20geyBtYXJnaW4tdG9wOiAgIDNweDsgcGFkZGluZzogQHRvb2x0aXAtYXJyb3ctd2lkdGggMDsgfVxuICAmLmxlZnQgICB7IG1hcmdpbi1sZWZ0OiAtM3B4OyBwYWRkaW5nOiAwIEB0b29sdGlwLWFycm93LXdpZHRoOyB9XG59XG5cbi8vIFdyYXBwZXIgZm9yIHRoZSB0b29sdGlwIGNvbnRlbnRcbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiBAdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGNvbG9yOiBAdG9vbHRpcC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9vbHRpcC1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbn1cblxuLy8gQXJyb3dzXG4udG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnRvcC1sZWZ0LCAudG9wLXJpZ2h0LCAuYm90dG9tLWxlZnQsIGFuZCAuYm90dG9tLXJpZ2h0IGFzIG9mIHYzLjMuMVxuLnRvb2x0aXAge1xuICAmLnRvcCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYubGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20gLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxufVxuIiwiLnJlc2V0LXRleHQoKSB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktYmFzZTtcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvIE5PVCByZXNldCBmb250LXNpemUuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCIvL1xuLy8gUG9wb3ZlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1wb3BvdmVyO1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IEBwb3BvdmVyLW1heC13aWR0aDtcbiAgcGFkZGluZzogMXB4O1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSBwb3BvdmVycyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIC5yZXNldC10ZXh0KCk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3BvdmVyLWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCBAcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3I7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuXG4gIC8vIE9mZnNldCB0aGUgcG9wb3ZlciB0byBhY2NvdW50IGZvciB0aGUgcG9wb3ZlciBhcnJvd1xuICAmLnRvcCAgICAgeyBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5yaWdodCAgIHsgbWFyZ2luLWxlZnQ6IEBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYuYm90dG9tICB7IG1hcmdpbi10b3A6IEBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYubGVmdCAgICB7IG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbn1cblxuLnBvcG92ZXItdGl0bGUge1xuICBtYXJnaW46IDA7IC8vIHJlc2V0IGhlYWRpbmcgbWFyZ2luXG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBvcG92ZXItdGl0bGUtYmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oQHBvcG92ZXItdGl0bGUtYmcsIDUlKTtcbiAgYm9yZGVyLXJhZGl1czogKEBib3JkZXItcmFkaXVzLWxhcmdlIC0gMSkgKEBib3JkZXItcmFkaXVzLWxhcmdlIC0gMSkgMCAwO1xufVxuXG4ucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG59XG5cbi8vIEFycm93c1xuLy9cbi8vIC5hcnJvdyBpcyBvdXRlciwgLmFycm93OmFmdGVyIGlzIGlubmVyXG5cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgJixcbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiBAcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbn1cbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiBAcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLnBvcG92ZXIge1xuICAmLnRvcCA+IC5hcnJvdyB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJi5yaWdodCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBsZWZ0OiAxcHg7XG4gICAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJi5ib3R0b20gPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIHRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0ID4gLmFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHJpZ2h0OiAxcHg7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDYXJvdXNlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGZvciB0aGUgc2xpZGUgY29udGFpbmVyIGFuZCBpbmRpY2F0b3JzXG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiAuaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnRyYW5zaXRpb24oLjZzIGVhc2UtaW4tb3V0IGxlZnQpO1xuXG4gICAgLy8gQWNjb3VudCBmb3IgamFua2l0dWRlIG9uIGltYWdlc1xuICAgID4gaW1nLFxuICAgID4gYSA+IGltZyB7XG4gICAgICAmOmV4dGVuZCguaW1nLXJlc3BvbnNpdmUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLy8gV2ViS2l0IENTUzMgdHJhbnNmb3JtcyBmb3Igc3VwcG9ydGVkIGRldmljZXNcbiAgICBAbWVkaWEgYWxsIGFuZCAodHJhbnNmb3JtLTNkKSwgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XG4gICAgICAudHJhbnNpdGlvbi10cmFuc2Zvcm0oficwLjZzIGVhc2UtaW4tb3V0Jyk7XG4gICAgICAuYmFja2ZhY2UtdmlzaWJpbGl0eSh+J2hpZGRlbicpO1xuICAgICAgLnBlcnNwZWN0aXZlKDEwMDBweCk7XG5cbiAgICAgICYubmV4dCxcbiAgICAgICYuYWN0aXZlLnJpZ2h0IHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5wcmV2LFxuICAgICAgJi5hY3RpdmUubGVmdCB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgICAmLm5leHQubGVmdCxcbiAgICAgICYucHJldi5yaWdodCxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSxcbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5uZXh0LFxuICA+IC5wcmV2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAubmV4dCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICA+IC5wcmV2IHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICA+IC5uZXh0LmxlZnQsXG4gID4gLnByZXYucmlnaHQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5hY3RpdmUubGVmdCB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG5cbn1cblxuLy8gTGVmdC9yaWdodCBjb250cm9scyBmb3IgbmF2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogQGNhcm91c2VsLWNvbnRyb2wtd2lkdGg7XG4gIC5vcGFjaXR5KEBjYXJvdXNlbC1jb250cm9sLW9wYWNpdHkpO1xuICBmb250LXNpemU6IEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZTtcbiAgY29sb3I6IEBjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiBAY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IC8vIEZpeCBJRTkgY2xpY2stdGhydSBidWdcbiAgLy8gV2UgY2FuJ3QgaGF2ZSB0aGlzIHRyYW5zaXRpb24gaGVyZSBiZWNhdXNlIFdlYktpdCBjYW5jZWxzIHRoZSBjYXJvdXNlbFxuICAvLyBhbmltYXRpb24gaWYgeW91IHRyaXAgdGhpcyB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIGFub3RoZXIgYW5pbWF0aW9uLlxuXG4gIC8vIFNldCBncmFkaWVudHMgZm9yIGJhY2tncm91bmRzXG4gICYubGVmdCB7XG4gICAgI2dyYWRpZW50ID4gLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC41KTsgQGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuMDAwMSkpO1xuICB9XG4gICYucmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgI2dyYWRpZW50ID4gLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC4wMDAxKTsgQGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSkpO1xuICB9XG5cbiAgLy8gSG92ZXIvZm9jdXMgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBjb2xvcjogQGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC5vcGFjaXR5KC45KTtcbiAgfVxuXG4gIC8vIFRvZ2dsZXNcbiAgLmljb24tcHJldixcbiAgLmljb24tbmV4dCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5pY29uLXByZXYsXG4gIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICB9XG4gIC5pY29uLW5leHQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICB9XG4gIC5pY29uLXByZXYsXG4gIC5pY29uLW5leHQge1xuICAgIHdpZHRoOiAgMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICB9XG5cblxuICAuaWNvbi1wcmV2IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDM5JzsvLyBTSU5HTEUgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyAoVSsyMDM5KVxuICAgIH1cbiAgfVxuICAuaWNvbi1uZXh0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDNhJzsvLyBTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgKFUrMjAzQSlcbiAgICB9XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgaW5kaWNhdG9yIHBpcHNcbi8vXG4vLyBBZGQgYW4gdW5vcmRlcmVkIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGNsYXNzIGFuZCBhZGQgYSBsaXN0IGl0ZW0gZm9yIGVhY2hcbi8vIHNsaWRlIHlvdXIgY2Fyb3VzZWwgaG9sZHMuXG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMTU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAgMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAY2Fyb3VzZWwtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIElFOC05IGhhY2sgZm9yIGV2ZW50IGhhbmRsaW5nXG4gICAgLy9cbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciA4LTkgZG9lcyBub3Qgc3VwcG9ydCBjbGlja3Mgb24gZWxlbWVudHMgd2l0aG91dCBhIHNldFxuICAgIC8vIGBiYWNrZ3JvdW5kLWNvbG9yYC4gV2UgY2Fubm90IHVzZSBgZmlsdGVyYCBzaW5jZSB0aGF0J3Mgbm90IHZpZXdlZCBhcyBhXG4gICAgLy8gYmFja2dyb3VuZCBjb2xvciBieSB0aGUgYnJvd3Nlci4gVGh1cywgYSBoYWNrIGlzIG5lZWRlZC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI0ludGVybmV0X0V4cGxvcmVyXG4gICAgLy9cbiAgICAvLyBGb3IgSUU4LCB3ZSBzZXQgc29saWQgYmxhY2sgYXMgaXQgZG9lc24ndCBzdXBwb3J0IGByZ2JhKClgLiBGb3IgSUU5LCB3ZVxuICAgIC8vIHNldCBhbHBoYSB0cmFuc3BhcmVuY3kgZm9yIHRoZSBiZXN0IHJlc3VsdHMgcG9zc2libGUuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMCBcXDk7IC8vIElFOFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IC8vIElFOVxuICB9XG4gIC5hY3RpdmUge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogIDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGNhcHRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGlkZGVuIGJ5IGRlZmF1bHQgZm9yIHNtYWxsZXIgdmlld3BvcnRzXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiBAY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogQGNhcm91c2VsLXRleHQtc2hhZG93O1xuICAmIC5idG4ge1xuICAgIHRleHQtc2hhZG93OiBub25lOyAvLyBObyBzaGFkb3cgZm9yIGJ1dHRvbiBlbGVtZW50cyBpbiBjYXJvdXNlbC1jYXB0aW9uXG4gIH1cbn1cblxuXG4vLyBTY2FsZSB1cCBjb250cm9scyBmb3IgdGFibGV0cyBhbmQgdXBcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG5cbiAgLy8gU2NhbGUgdXAgdGhlIGNvbnRyb2xzIGEgc21pZGdlXG4gIC5jYXJvdXNlbC1jb250cm9sIHtcbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gICAgLmljb24tcHJldixcbiAgICAuaWNvbi1uZXh0IHtcbiAgICAgIHdpZHRoOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICAgIGhlaWdodDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgICBtYXJnaW4tdG9wOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgICAgZm9udC1zaXplOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICB9XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gICAgLmljb24tcHJldiB7XG4gICAgICBtYXJnaW4tbGVmdDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICB9XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3cgYW5kIGxlZnQgYWxpZ24gdGhlIGNhcHRpb25zXG4gIC5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgICBsZWZ0OiAyMCU7XG4gICAgcmlnaHQ6IDIwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgfVxuXG4gIC8vIE1vdmUgdXAgdGhlIGluZGljYXRvcnNcbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuIiwiLy8gQ2xlYXJmaXhcbi8vXG4vLyBGb3IgbW9kZXJuIGJyb3dzZXJzXG4vLyAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuLy8gICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbi8vICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuLy8gICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbi8vIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4vLyAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4vL1xuLy8gU291cmNlOiBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay9cblxuLmNsZWFyZml4KCkge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMlxuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCIvLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG5cbi5jZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vL1xuLy8gSGVhZHMgdXAhIHYzIGxhdW5jaGVkIHdpdGggb25seSBgLmhpZGUtdGV4dCgpYCwgYnV0IHBlciBvdXIgcGF0dGVybiBmb3Jcbi8vIG1peGlucyBiZWluZyByZXVzZWQgYXMgY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoaXMgZG9lc24ndCBob2xkIHVwLiBBc1xuLy8gb2YgdjMuMC4xIHdlIGhhdmUgYWRkZWQgYC50ZXh0LWhpZGUoKWAgYW5kIGRlcHJlY2F0ZWQgYC5oaWRlLXRleHQoKWAuXG4vL1xuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XG5cbi8vIERlcHJlY2F0ZWQgYXMgb2YgdjMuMC4xIChoYXMgYmVlbiByZW1vdmVkIGluIHY0KVxuLmhpZGUtdGV4dCgpIHtcbiAgZm9udDogflwiMC8wXCIgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcbi50ZXh0LWhpZGUoKSB7XG4gIC5oaWRlLXRleHQoKTtcbn1cbiIsIi8vXG4vLyBSZXNwb25zaXZlOiBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSUUxMCBpbiBXaW5kb3dzIChQaG9uZSkgOFxuLy9cbi8vIFN1cHBvcnQgZm9yIHJlc3BvbnNpdmUgdmlld3MgdmlhIG1lZGlhIHF1ZXJpZXMgaXMga2luZCBvZiBib3JrZWQgaW4gSUUxMCwgZm9yXG4vLyBTdXJmYWNlL2Rlc2t0b3AgaW4gc3BsaXQgdmlldyBhbmQgZm9yIFdpbmRvd3MgUGhvbmUgOC4gVGhpcyBwYXJ0aWN1bGFyIGZpeFxuLy8gbXVzdCBiZSBhY2NvbXBhbmllZCBieSBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudCBhbmRcbi8vIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTIHRvICpvbmx5KiB0aGUgU3VyZmFjZS9kZXNrdG9wIFdpbmRvd3MgOC4gTG9vayBhdFxuLy8gb3VyIEdldHRpbmcgU3RhcnRlZCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgYnVnLlxuLy9cbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGZvbGxvd2luZzpcbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDQ5N1xuLy8gRG9jczogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGhcbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC9cbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMi8xMC9pZTEwLXNuYXAtbW9kZS1hbmQtcmVzcG9uc2l2ZS1kZXNpZ24vXG5cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXhzLCAudmlzaWJsZS1zbSwgLnZpc2libGUtbWQsIGFuZCAudmlzaWJsZS1sZyBhcyBvZiB2My4yLjBcbi52aXNpYmxlLXhzLFxuLnZpc2libGUtc20sXG4udmlzaWJsZS1tZCxcbi52aXNpYmxlLWxnIHtcbiAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG59XG5cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzaWJsZS14cyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUteHMtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtc20ge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtc20tYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtbWQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtbWQtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtbGcge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRkZW4teHMge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1zbSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tbWQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLWxnIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cblxuXG4vLyBQcmludCB1dGlsaXRpZXNcbi8vXG4vLyBNZWRpYSBxdWVyaWVzIGFyZSBwbGFjZWQgb24gdGhlIGluc2lkZSB0byBiZSBtaXhpbi1mcmllbmRseS5cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS1wcmludCBhcyBvZiB2My4yLjBcbi52aXNpYmxlLXByaW50IHtcbiAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRkZW4tcHJpbnQge1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4iLCIvLyBSZXNwb25zaXZlIHV0aWxpdGllc1xuXG4vL1xuLy8gTW9yZSBlYXNpbHkgaW5jbHVkZSBhbGwgdGhlIHN0YXRlcyBmb3IgcmVzcG9uc2l2ZS11dGlsaXRpZXMubGVzcy5cbi5yZXNwb25zaXZlLXZpc2liaWxpdHkoKSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHRhYmxlJiAgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRyJiAgICAgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0aCYsXG4gIHRkJiAgICAgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbn1cblxuLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVNTIFZBUklBQkxFU1xuKiogICAgICAgICAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdmFyaWFibGVzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHBhbGV0dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAjZGFlMTczO1xuQG1vcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICNkNjc4MmI7XG5AbWRhcmtibHVlOiAgICAgICAgICAgICAgICAgICAgICAgIzIzMjUyODtcbkBtZ3JleTogICAgICAgICAgICAgICAgICAgICAgICAgICAjY2NjY2NjO1xuQG1saWdodGdyZXk6ICAgICAgICAgICAgICAgICAgICAgICM5OTk5OTk7XG5AbWRhcmtiZzogICAgICAgICAgICAgICAgICAgICAgICAgIzE2MTYxQjtcbkBtYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAjMzU4ZmRjO1xuQGRhcmtlcmJsdWU6ICAgICAgICAgICAgICAgICAgICAgICMxNjI1MmM7XG5AZGFya2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgIzE3MjYyZDtcbkBkYXJrZXJibHVlOiAgICAgICAgICAgICAgICAgICAgICBkYXJrZW4oQGRhcmtibHVlLDQlKTtcbkBkYXJrYmx1ZTI6ICAgICAgICAgICAgICAgICAgICAgICAjMjUzMzNhO1xuQG1lZGl1bWJsdWU6ICAgICAgICAgICAgICAgICAgICAgICM2MjZkNmQ7XG5AbGlnaHRibHVlOiAgICAgICAgICAgICAgICAgICAgICAgI2FiYzRjNjtcbkBwaW5rOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZWQxZTc5O1xuQHJlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICNGRjAwMDA7XG5cbkBmbHVyb2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjMDBlNWYwO1xuQGZsdXJvb3JhbmdlOiAgICAgICAgICAgICAgICAgICAgICNmZjczMDA7XG5AZmx1cmVveWVsbG93OiAgICAgICAgICAgICAgICAgICAgI2ZiZDkyNTtcbkBmbHVyb2dyZWVuOiAgICAgICAgICAgICAgICAgICAgICAjNDdmZjAwO1xuQGZsdXJvcGluazogICAgICAgICAgICAgICAgICAgICAgICNlMDFmNzQ7XG5cbkBkYXJrZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAjMzNkMzc1O1xuQGdyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICNkMWU1NWM7XG5AcHVycGxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIzk3N2JmMDtcbkBsaWdodGdyYXk6ICAgICAgICAgICAgICAgICAgICAgICAjZTZlZGVlO1xuQGJsdWVncmF5OiAgICAgICAgICAgICAgICAgICAgICAgICNhYmM0YzY7XG5AYmx1ZWdyYXkyOiAgICAgICAgICAgICAgICAgICAgICAgIzM1NDY0YztcblxuQGJyYW5kLXN1Y2Nlc3M6ICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcbkBicmFuZC13YXJuaW5nOiAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AYnJhbmQtaW5mbzogICAgICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuQGJyYW5kLWRhbmdlcjogICAgICAgICAgICAgICAgICAgQGZsdXJvcGluaztcbkBicmFuZC1wcmltYXJ5OiAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5cbkBpbXBhYy1wb3NpdGl2ZTogICAgICAgICAgICAgICAgIGdyZWVuO1xuQGltcGFjLW5lZ2F0aXZlOiAgICAgICAgICAgICAgICAgQHBpbms7XG5AaW1wYWMtcG9zaXRpdmUyOiAgICAgICAgICAgICAgICAjM2ZjNGZmOyAgICAgLy8gbGlnaHRlciBjb2xvcnMgdXNlZCBmb3IgcGF5YWJsZXMtcmVjZWl2YWJsZXNcbkBpbXBhYy1uZWdhdGl2ZTI6ICAgICAgICAgICAgICAgICMxZGU5YjY7ICAgICAvLyBsaWdodGVyIGNvbG9yc3VzZWQgZm9yIHBheWFibGVzLXJlY2VpdmFibGVzXG5cbi8vIFNwYWNlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHRvcC1idWZmZXItaGVpZ2h0OiBAZ3JpZC1ndXR0ZXItd2lkdGgvMjsgLy8gYm9vdHN0cmFwIHZhcmlhYmxlXG4udG9wLWJ1ZmZlci0xIHsgbWFyZ2luLXRvcDogQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0yIHsgbWFyZ2luLXRvcDogMipAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTMgeyBtYXJnaW4tdG9wOiAzKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNCB7IG1hcmdpbi10b3A6IDQqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci01IHsgbWFyZ2luLXRvcDogNSpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTYgeyBtYXJnaW4tdG9wOiA2KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNyB7IG1hcmdpbi10b3A6IDcqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci04IHsgbWFyZ2luLXRvcDogOCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTkgeyBtYXJnaW4tdG9wOiA5KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMTAgeyBtYXJnaW4tdG9wOiAxMCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cblxuLy8gRGFzaGJvYXJkXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICA1MHB4O1xuQGltcGFjLWRhc2hib2FyZC1zbS1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC1wYWRkaW5nLXRvcCAqIDM7XG5AaW1wYWMtZGFzaGJvYXJkLW1hcmdpbi1sZWZ0OiAgICAgICAgICAgICAgICAgICAxMDBweDtcbkBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjogICAgICAgICAgICAgICAgIEBsaWdodGJsdWU7XG5cbi8vIFRpdGxlXG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAcHVycGxlO1xuQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjogICAgICAgICAgICAgQGRhcmtibHVlO1xuQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jcmVhdGUtY29sb3I6ICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXNvdXJjZS1jb2xvcjogICAgICAgICAgICAgICAgICBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yO1xuQGltcGFjLWRhc2hib2FyZC1idXR0b25zLWJvcmRlci1yYWRpdXM6ICAgICAgICAgNHB4O1xuXG4vLyBDcmVhdGVcbkBpbXBhYy1kYXNoYm9hcmQtY3JlYXRlLWJ1dHRvbi1jb2xvcjogICAgICAgICAgIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG5cbi8vSW5mby10ZXh0XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1jb2xvcjogICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWJhY2tncm91bmQtY29sb3I6ICAgIHJnYmEoMjMsMzgsNDUsIDAuNyk7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXNpemU6ICAgICAgICAgICAyNXB4O1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC13ZWlnaHQ6ICAgICAgICAgMzAwO1xuXG4vLyBEYXNoYm9hcmQgU2VsZWN0b3JcbiAgLy8gVGFic1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci1ib3JkZXI6ICAgICAgICAgICAgICAgMXB4IHNvbGlkIEBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjtcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1tYXJnaW46ICAgICAgICAgIDAgMnB4IDAgMDtcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1wYWRkaW5nOiAgICAgICAgIDEwcHggOHB4IDEwcHggMTVweDtcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1jb2xvcjogICAgICAgICAgIGJsYWNrO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1jb2xvcjogICAgQHB1cnBsZTtcblxuLy8gV2lkZ2V0IHNlbGVjdG9yXG5AaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZzogICAgICAgICAgICAjMjMzODQ1O1xuQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjogICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci13aWRnZXQtaXRlbS1taW4taGVpZ2h0OiAwcHg7XG5cbi8vIFdpZGdldHMgY29udGFpbmVyXG5AaW1wYWMtcGxhY2Vob2xkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAycHggZGFzaGVkIEBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjtcbkBpbXBhYy13aWRnZXRzLWNvbnRhaW5lci1zaWRlLXBhZGRpbmc6ICAgICAgICAgIDBweDtcbkBpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0czogICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAyNTBweDtcbkBpbXBhYy1iaWctd2lkZ2V0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIDU2NXB4O1xuXG4vLyBCdXR0b25zXG5AaW1wYWMtYnRuLXNoYWRkZWQtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgIEBkYXJrYmx1ZTtcbkBpbXBhYy1idG4tc2hhZGRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQG1lZGl1bWJsdWU7XG5cbi8vIERhc2hib2FyZCBNb2RhbHNcbkBpbXBhYy1kYXNoYm9hcmQtbG9hZGluZy1zcGlubmVyOiAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMTk3LCA1NywgMC42Mik7XG5cbi8vIFdpZGdldHNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdsb2JhbFxuQGltcGFjLXdpZGdldC1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAcHVycGxlO1xuQGltcGFjLXdpZGdldC1idXR0b25zLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5AaW1wYWMtd2lkZ2V0LXRpbGUtc2VsZWN0ZWQtY29sb3I6ICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbkBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtd2lkZ2V0LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkIDFweCBkYXJrZW4oQGxpZ2h0Z3JheSwxMCUpO1xuQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAjNUI2NjY3O1xuQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTogICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciwyNSUpO1xuQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0OiAgICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw0MCUpOyAvLyNhY2IwYjFcbkBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjogICAgICAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQsMTAlKTsgLy8jZjNmNGY0XG5AaW1wYWMtd2lkZ2V0LXNjcm9sbGJhci1jb2xvcjogICAgICAgICAgICAgICAgICMyMzM4NDU7XG5AaW1wYWMtd2lkZ2V0LWxvYWRpbmctc3Bpbm5lcjogICAgICAgICAgICAgICAgICM2N0JCRTk7XG5AaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICMxRTMwM0I7XG5AaW1wYWMtd2lkZ2V0LW1lbnVzLWhvdmVyLWJhY2tncm91bmQtY29sb3I6ICAgICNlY2VjZWM7XG5cbi8vIFRpdGxlXG5AaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgIGRhcmtlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IsNSUpO1xuQGltcGFjLXdpZGdldC10aXRsZS1iZzogICAgICAgICAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgIHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgIHVwcGVyY2FzZTtcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgNXB4IDVweCAwcHggMHB4O1xuQGltcGFjLXdpZGdldC10b3AtYnV0dG9ucy1jb2xvcjogICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ7XG5cbi8vIENvbnRlbnRcbkBpbXBhYy13aWRnZXQtY29udGVudC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgMHB4IDBweCA1cHggNXB4O1xuQGltcGFjLXdpZGdldC1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDogICAgICAyMDBweDtcblxuLy8gU2V0dGluZ3Ncbi8vIFBhcmFtIHNlbGVjdG9yXG5AaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yOiAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbi8vIEhpc3QgTW9kZSBDaG9zZXJcbkBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgdXBwZXJjYXNlO1xuQGltcGFjLXdpZGdldC1oaXN0LXRleHQtc2l6ZTogICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLXdpZGdldC1oaXN0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ7XG4vLyBQYXJhbXMgcGlja2VyXG5AaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc6ICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjtcbkBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci11bmNoZWNrZWQtYmc6ICAgICAgI2MyYzRjNDtcbi8vIExpbWl0IGVudHJpZXNcbkBpbXBhYy13aWRnZXQtbGltaXQtZW50cmllcy1jb2xvcjogICAgICAgICAgICAgQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuXG4vLyBHbG9iYWxzIGFuZCBNaXhpbnNcbkBpbXBhYy13aWRnZXQtc2VsZWN0YWJsZS1jb2xvcjogICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuXG4vLyBFZGl0IHNldHRpbmdzXG5AaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjogICAgICAgICAgICAgICAgICAgIGRhcmtlbihAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3IsNiUpO1xuQGltcGFjLXdpZGdldC1zdWItYmctY29sb3ItbGlnaHQ6ICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLDUlKTsgLy9mM2Y0ZjRcblxuLy8gQWNjb3VudHMgQ29tcGFyaXNvblxuQGltcGFjLXdpZGdldC1hY2NvdW50cy1jb21wYXJpc29uLWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAyMjBweDtcblxuLy8gU2FsZXMgYnJlYWstZXZlblxuQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLWJnOiAgICAgICAgICAgICByZ2IoMjUsNDAsNDkpO1xuQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I6ICAgICAjMWRlOWI2O1xuXG4vLyBLUElzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBLcGkgYmFyXG5Aa3Bpcy1iYXItYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgIHdoaXRlO1xuQGtwaXMtYmFyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAwcHggMXB4IDhweCAtNHB4O1xuLy8gS3BpXG5Aa3BpLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlO1xuQGtwaS10cmlnZ2VyZWQtYm9yZGVyLWJvdHRvbTogICAgICAgICAgICAgICAgICA0cHggc29saWQgQGJyYW5kLWRhbmdlcjtcbkBrcGktbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTVweDtcbkBrcGktZWRpdGluZy1tYXgtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgOTBweDsgLy8gaGVpZ2h0IHRvIGJlIGFkZGVkIHRvIHRoZSBAa3BpLW1heC1oZWlnaHQgd2hlbiBpbiBlZGl0aW5nIG1vZGUuXG5Aa3BpLWNvbnRlbnQtZWRpdGluZy1oZWlnaHQtYnVmZmVyOiAgICAgICAgICAgIDVweDsgLy8gaGVpZ2h0IHRvIGJlIG1pbnVzZWQgZnJvbSB0aGUgQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQgdG8gZXZlbiB0aGUga3BpIGhlaWdodCBhbmQgdGhlIGtwaSBjb250ZW50IGhlaWdodC5cbi8vIEtwaSB0b3AtbGluZVxuQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS10b3AtbGluZS10cmlnZ2VyZWQtYmFja2dyb3VuZC1jb2xvcjogICAgICBibGFjaztcbkBrcGktdG9wLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgN3B4O1xuQGtwaS10b3AtbGluZS1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICBub25lO1xuLy8ga3BpIGNvbnRlbnRcbkBrcGktdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktdGV4dC10cmlnZ2VyZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgYmxhY2s7XG5Aa3BpLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLWljb24tdHJpZ2dlcmVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIGJsYWNrO1xuLy8ga3BpIHNldHRpbmdzXG5Aa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBtYmx1ZTtcbkBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQGJyYW5kLWRhbmdlcjtcbkBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIzRjNDc0OTtcbkBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQtaG92ZXI6ICAgICAgICAgZGFya2VuKEBicmFuZC1kYW5nZXIsIDUlKTtcbkBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQ6ICAgICAgICAgIzRjNDc0OTtcbkBrcGktc2V0dGluZ3MtYWxlcnQtY29uZmlnLWJhY2tncm91bmQtaG92ZXI6ICAgQG1ibHVlO1xuQGtwaS1uZWdhdGl2ZS1hbGVydC1sYWJlbC1iYWNrZ3JvdW5kLWNvbG9yOiAgICBsaWdodGVuKCNmZjAwMDAsIDMwJSk7XG5cbi8vIFdpZGdldHMgcG9wLXVwc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAjMTkyODMxO1xuQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6ICByZ2IoMjQ0LCAyNDgsIDI0OSk7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I6ICAgICAgICAgIHdoaXRlO1xuQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I6ICAgICAgICBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG5cbi8vIERlbW8gZGF0YSBtb2RlXG5AaW1wYWMtd2lkZ2V0LWRlbW8tZGF0YS1saW5rLWNvbG9yOiAgICAgICAgICAgIEBtZ3JlZW47XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUwgU1RZTEVTXG4qKiAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gc3R5bGVzIGFwcGxpZWQgZ2xvYmFsIG9yIGluXG4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIG9yIG1vcmUgY29tcG9uZW50cy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vLyBOb3QgaWRlYWw6IGludGVuZHMgdG8gZm9yY2UgYSBzY3JvbGxiYXIgb24gdGhlIHdpbmRvdyAobm90IG9uIHRoZSBib2R5KSxcbi8vIHNvIHRoYXQgdGhlIHRvb2x0aXBzIGFwcGVuZGVkIHRvIGJvZHkgYXJlIG5vdCBtYWtpbmcgdGhlIHNjcmVlbiBmbGlja2VyaW5nLlxuLy8gKHNlZSB3aGVuIHRoZXJlIGlzIG9ubHkgMSBpbnZvaWNlcyBsaXN0IHdpZGdldCBvbiB0aGUgZGFzaGJvYXJkKVxuLy8gSXQgaXMgYmV0dGVyIGlmIHRoZSB0b29sdGlwcyBjYW4gYmUgYXBwZW5kZWQgdG8gYm9keSBiZWNhdXNlIG90aGVyd2lzZSBpdCdzXG4vLyBtZXNzaW5nIHRoZSBhbHRlcm5hdGUtYmcoKSBtaXhpbmcgKGJ5IGFkZGluZyBhIGNoaWxkIHRvIHRoZSBwYXJlbnQgZWxlbWVudClcbmJvZHkge1xuICBoZWlnaHQ6IDEwMSUgIWltcG9ydGFudDtcbn1cblxuLmFuYWx5dGljcyB7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBUaXRsZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICAubGVmdC10aGluKCk7XG4gIH1cblxuICBoNCB7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIENvbG9yc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAucG9zaXRpdmUsLmdyZWVuIHtcbiAgICBjb2xvcjogQGltcGFjLXBvc2l0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubmVnYXRpdmUsLnJlZCB7XG4gICAgY29sb3I6IEBpbXBhYy1uZWdhdGl2ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBvc2l0aXZlMiB7XG4gICAgY29sb3I6IEBpbXBhYy1wb3NpdGl2ZTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uZWdhdGl2ZTIge1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmUyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIEJhc2UgZWxlbWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGhlaWdodDogMzJweDtcbiAgfVxuXG4gIHByZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXJnaW46IDFweCAwcHggOHB4IDBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLndpZGdldC1pdGVtIC5jb250ZW50LCBrcGlzLWJhciAua3BpIHtcbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zY3JvbGxiYXItY29sb3IsMzUlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNjcm9sbGJhci1jb2xvciw0MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ29tbW9uIGFkanVzdG1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAubm9wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLm5vbWFyZ2luIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIEN1c3RvbSBlbGVtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAuYnRuLmJ0bi1zaGFkZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1idG4tc2hhZGRlZC1iZztcbiAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWJnLDUlKTtcbiAgICBjb2xvcjogQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBpbXBhYy1idG4tc2hhZGRlZC1jb2xvciw1JSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1idG4tc2hhZGRlZC1iZyw1JSk7XG4gICAgfVxuICB9XG5cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoKTtcbiAgfVxuXG4gIC5jdXJyZW5jeSB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gIH1cblxuICAubGVnZW5kIHtcbiAgICAuY2VudGVyLXNtYWxsKCk7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0O1xuICB9XG5cbiAgLmxvYWRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBpIHtcbiAgICAgIC5sb2FkZXItc3R5bGUoKTtcbiAgICB9XG4gICAgcCB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjZTZlNmU2O1xuICB9XG5cbiAgLnNlbGVjdG9yIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogQG1lZGl1bWJsdWU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyXG4gIH1cblxuICAudGlsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NywyNDcsMjQ3KTtcbiAgICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICAgIGhlaWdodDogNDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNGMUY5RkYsIDMlKTtcbiAgICB9XG4gICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0ZDNEZGO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIG1pbi13aWR0aDogOCU7XG4gICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC10aWxlLXNlbGVjdGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICAubWFpbi10ZXh0IHtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICBwYWRkaW5nOiAyMHB4IDBweCAwcHggNXB4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG5cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLXdpZGdldC1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwcHggMTVweDtcblxuICAgIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgY29sb3I6IEBtZWRpdW1ibHVlO1xuXG4gICAgICAmLmhlYWRlciB7XG4gICAgICAgIC5mb250KDEycHgsNTAwLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW0pO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgICAgIG1hcmdpbjogaW5oZXJpdDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICAgICAgcGFkZGluZzogMnB4O1xuXG4gICAgICAgICYgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpLmZhIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cgLmRhc2hlZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuXG4gICAgLnJvdy5saW5lcy1ncm91cCB7XG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICB9XG4gIH1cbn1cblxuLnZlcnRpY2FsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLmhvcml6b250YWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuXG4vLyBUaGUgdG9vbHRpcHMgc2hvdWxkIGJlIGFwcGVuZCB0byBib2R5XG4udG9vbHRpcC5pbXBhYy13aWRnZXRzLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBtZGFya2JsdWU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgc3Ryb25nIHtcbiAgICBjb2xvcjogQG1ncmVlbjtcbiAgfVxufVxuXG4uc29ydGFibGUtdGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbmRpdltuZy1tZXNzYWdlc10ge1xuICBjb2xvcjogQHJlZDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0gQm9vdHN0cmFwIG92ZXJyaWRlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogQGJyYW5kLWRhbmdlciB9XG59XG5cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtc3VjY2VzcztcbiAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogQGJyYW5kLXN1Y2Nlc3MgfVxufVxuXG4vLyByZW1vdmUgZ3V0dGVycyBmcm9tIEJvb3N0cmFwIHJvd1xuLnJvdy5uby1ndXR0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8gcmVtb3ZlIGd1dHRlcnMgZnJvbSBCb29zdHJhcCBjb2x1bW5cbltjbGFzc149XCJjb2wtXCJdLm5vLWd1dHRlcnMsXG5bY2xhc3MqPVwiIGNvbC1cIl0ubm8tZ3V0dGVycyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbiIsIi5mb250KEBzaXplLEB3ZWlnaHQsQGNvbG9yKSB7XG4gIGZvbnQtd2VpZ2h0OkB3ZWlnaHQ7XG4gIGZvbnQtc2l6ZTpAc2l6ZTtcbiAgY29sb3I6QGNvbG9yO1xufVxuXG4uY2VudGVyLWJvbGQgKEBtYXJnaW4tdG9wOiAzMHB4KSB7XG4gIC5mb250KDIycHgsIDkwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiBAbWFyZ2luLXRvcDtcbn1cblxuLmNlbnRlci10aGluICgpIHtcbiAgLmZvbnQoMTZweCwgMzAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jZW50ZXItc21hbGwgKCkge1xuICAuZm9udCgxMnB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxlZnQtdGhpbiAoQG1hcmdpbi10b3A6IDBweCkge1xuICAuZm9udCgxNHB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IEBtYXJnaW4tdG9wO1xufVxuXG4ud2lkZ2V0LWhlaWdodCAoQGhlaWdodDogQGltcGFjLW1pbmltdW0td2lkZ2V0LXNpemUpIHtcbiAgbWluLWhlaWdodDogQGhlaWdodDtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgaGVpZ2h0OiBAaGVpZ2h0O1xuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiBAaGVpZ2h0ICsgMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IEBoZWlnaHQgLSAxMjVweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLnNob3J0LXdpZGdldCAoKSB7XG4gIC53aWRnZXQtaGVpZ2h0KCk7XG4gIC5lZGl0IHtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZSAtIDIwcHg7XG4gIH1cbn1cblxuLnRhbGwtd2lkZ2V0ICgpIHtcbiAgLndpZGdldC1oZWlnaHQoQGltcGFjLWJpZy13aWRnZXQtc2l6ZSk7XG4gIC5lZGl0IHtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gMjBweDtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICAuc2Nyb2xsYWJsZShoaWRkZW4pO1xuICAgIH1cbiAgfVxufVxuXG4uc2Nyb2xsYWJsZSAoQHNjcm9sbC1tb2RlOiBhdXRvKSB7XG4gIG92ZXJmbG93LXk6IEBzY3JvbGwtbW9kZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4uc2VsZWN0YWJsZSAoKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAuc2VsZWN0aW9uLXRhZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMjlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNlbGVjdGFibGUtY29sb3IsIDIyJSk7XG4gIH1cbiAgJi5uby1zZWxlY3Qge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICAmOmhvdmVyIHsgY29sb3I6IEBtZWRpdW1ibHVlOyB9XG4gIH1cbn1cblxuLmFsdGVybmF0ZS1iZyAoQGV2ZW4tY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yKSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZXZlbi1jb2xvcjtcbiAgfVxuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gIH1cbn1cblxuLmVkaXQtcGFuZWwtc3R5bGUoKSB7XG4gIC5zY3JvbGxhYmxlKCk7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuXG4gIC5ib3R0b20tYnV0dG9ucyB7XG4gICAgLmJ0biB7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHBhZGRpbmc6IDNweCAxM3B4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgJi5idG4tZGVmYXVsdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigjYzJjNGM0LDEwJSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCNjMmM0YzQsMjAlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI2MyYzRjNCwxMCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAuZm9udCgxMnB4LG5vcm1hbCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpO1xuICB9XG5cbiAgLnBhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvci1saWdodDtcbiAgICAvLyBjb2xvcjogIzYyNmQ2ZDtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG5cbiAgICBoNSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBwYWRkaW5nOiAwcHggMTVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAuZm9udCgxMnB4LG5vcm1hbCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgICBtYXJnaW46IDBweDtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICNhY2IwYjE7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICM3MjcyOGI7XG4gICAgfVxuICB9XG59XG5cbi5sb2FkZXItc3R5bGUoQGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxvYWRpbmctc3Bpbm5lcikge1xuICBjb2xvcjogQGNvbG9yO1xufVxuXG4uY29sdW1uLWd1dHRlcihAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcGFkZGluZy1sZWZ0OiBAZ3V0dGVyO1xuICBwYWRkaW5nLXJpZ2h0OiBAZ3V0dGVyO1xufVxuXG4ud2lkZ2V0LXBvcHVwKCkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yO1xuICBcbiAgLm92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgei1pbmRleDogNTtcbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICB6LWluZGV4OiA2O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0b3A6IDQ1cHg7XG4gICAgbGVmdDogNyU7XG4gICAgd2lkdGg6IDg2JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcblxuICAgIC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgICAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBwcmludCB7XG4gIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICAjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLnRpdGxlLWNvbnRhaW5lciB7IG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgICAud2lkZ2V0LWl0ZW0ge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucmlnaHQtcGFuZWwge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiA4MCUgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgKiB7IHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxufVxuIiwiLy8gTk9URTogRG8gbm90IGFkZCBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiBvciBjdXN0b20gaW5qZWN0ZWQgYnV0dG9uSHRtbCBoZXJlLlxuLy8gICAgICAgdGhlIHBhcmVudCBzdHlsZXNoZWV0IG9mIHdoaWNoIHRoaXMgZGlyZWN0aXZlIGlzIGVtYmVkZGVkIHdpdGhpbiBzaG91bGRcbi8vICAgICAgIGNvbnRhaW4gdGhlIHN0eWxlcy5cblxuLy8gTW9kYWwga3BpcyBhbGVydHMgc2V0dGluZ3Ncbi5rcGktYWxlcnRzLXNldHRpbmdzIHtcbiAgLm1vZGFsLWhlYWRlciB7IGZvbnQtc2l6ZTogMjBweDsgfVxuXG4gIC5tb2RhbC1ib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMjtcblxuICAgIHVsIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4gICAgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0ge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDZweCAxNXB4O1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgLmFsZXJ0LXRvZ2dsZSB7XG4gICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2M0Y2FjYTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmEuZmEtdG9nZ2xlLW9uLCAuZmEuZmEtdG9nZ2xlLW9mZiB7XG4gICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICB1bC5yZWNpcGllbnRzLWxpc3Qge1xuICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjNGNhY2E7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgaW5wdXQucmVjaXBpZW50LXNlYXJjaCB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICB1bC5hdmFpbGFibGUge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyB7XG4gIHBhZGRpbmctdG9wOiBAaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wO1xuICBtYXJnaW4tbGVmdDogQGltcGFjLWRhc2hib2FyZC1tYXJnaW4tbGVmdDtcblxuICAvLyBEZWZhdWx0IHNtYWxsIHNjcmVlbiBiZWhhdmlvdXIgdG8gYWxsb3cgZm9yIHRoZSBjb21tb24gdXNlIG9mIHRvcC1iYXJzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gICAgcGFkZGluZy10b3A6IEBpbXBhYy1kYXNoYm9hcmQtc20tcGFkZGluZy10b3A7XG4gIH1cblxuICAmLnBkZi1tb2RlIHsgcGFkZGluZy10b3A6IDIwcHg7IH1cblxuICAmLnNob3ctZGhiIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgJi5oaWRlLWRoYiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC8vIGNvbnRhaW5zIGN1c3RvbWlzYWJsZSBpbXBhYyBsb2dvLCBhbmQgaGVhZGluZyB0ZXh0LlxuICAjZGFzaGJvYXJkLWhlYWRpbmcge1xuICAgIGltZyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgICAgICYucGRmLW1vZGU6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICB9XG4gICAgLmNhcHRpb24ge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbWFyZ2luOiA1cHggMHB4O1xuICAgIH1cbiAgfVxuXG4gICNzdWItbWVudSB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGNvbG9yOiAjMjMzODQ1O1xuICAgIH1cblxuICAgIC5mYS5mYS10aW1lcyB7XG4gICAgICBtYXJnaW46IDZweDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKCMyMzM4NDUsIDE1JSk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgI3dpZGdldC1zZWxlY3RvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc7XG4gICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXRleHQtY29sb3I7XG4gICAgcGFkZGluZzogMHB4IDQ1cHggMTBweCA0NXB4O1xuICAgIG1hcmdpbjogMTBweCAtNDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAvKiBDaHJvbWUvU2FmYXJpICovXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgLyogRmlyZWZveCAqL1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgLyogSUUxMCsgKi9cbiAgICAvKiBSdWxlcyBiZWxvdyBub3QgaW1wbGVtZW50ZWQgaW4gYnJvd3NlcnMgeWV0ICovXG4gICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIHBhZGRpbmc6IDAgMTVweCAxMHB4IDE1cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIHAuaW5zdHJ1Y3Rpb24ge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAud2lkZ2V0LWFkZGVkLmJhZGdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAuZmEuY2xvc2Utc2VsZWN0b3Ige1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBAbWxpZ2h0Z3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMTVweCAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tbGluZXMge1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcblxuICAgICAgcCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLCAmLnNlbGVjdGVkIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jYXRlZ29yaWVzLXNlY3Rpb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgICAmID4gLnNlY3Rpb24tbGluZXMge1xuXG4gICAgICAgICYgPiBbY2xhc3MqPSdjb2wtJ106Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmc6IDNweCAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmUtaXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDMlKTtcbiAgICAgICAgfVxuICAgICAgICAubGluZS1pdGVtLnNlbGVjdGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLmJveC1zaGFkb3coLTJweCAycHggMTBweCAtNHB4IGJsYWNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXJyb3ctaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzM3B4O1xuICAgICAgICByaWdodDogLTExcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgLnNxdWFyZSB7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgcmlnaHQ6IDE3cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaS5mYS5mYS1jYXJldC1yaWdodCB7XG4gICAgICAgICAgZm9udC1zaXplOiA1MnB4O1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IC0xLjVweDtcbiAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndpZGdldHMtc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgICYgPiAuc2VjdGlvbi1oZWFkZXIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYgPiAuc2VjdGlvbi1saW5lcyB7XG4gICAgICAgIHBhZGRpbmc6IDNweCAwcHg7XG5cbiAgICAgICAgLmZhLmZhLXBsdXMtY2lyY2xlIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5saW5lLWl0ZW1zLWdyaWQge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGhlaWdodDogMCU7XG5cbiAgICAgICAgICAmID4gLmdyaWQtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEzcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgLy8gQXBwbGllcyBhIGZsZXgtYmFzaXMgb2YgMS8zIGZvciBlYWNoIGdyaWQgaXRlbSAoMyBjb2x1bW5zIHBlciByb3cpXG4gICAgICAgICAgICBmbGV4OiAwIDMxLjMzJTtcbiAgICAgICAgICAgIC8vIENyZWF0ZXMgYSBzbWFsbCBndXR0ZXIgYXJvdW5kIGVhY2ggZ3JpZCBpdGVtXG4gICAgICAgICAgICBtYXJnaW46IDAgMSU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnO1xuICAgICAgICAgICAgbWluLWhlaWdodDogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LWl0ZW0tbWluLWhlaWdodDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICAgICAgICAgICAgZmxleDogMCAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcC5saW5lLWl0ZW0ge1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJvdHRvbSB7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAmID4gLnN1Z2dlc3Rpb24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgYSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBmbHVyb2JsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICYgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAmID4gKiB7IG1hcmdpbjogMHB4IDNweDsgfVxuICAgIH1cbiAgICBzZWxlY3Qge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICB9XG4gIH1cblxuICAvLyBubyB3aWRnZXRzIC0gZW1wdHkgZGFzaGJvYXJkLlxuICAjbm8td2lkZ2V0cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiAxNTBweDtcblxuICAgIC8vIGJhY2tncm91bmQgaW1hZ2UgYXNzZXRcbiAgICBpbWcuYmcge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gbm8gd2lkZ2V0cyBtZXNzYWdlIHRoYXQgc2l0cyBhYm92ZSBpbWFnZSBhc3NldFxuICAgIC5pbXBhYy1pbmZvLW1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIC5pbmZvLXRleHQge1xuICAgICAgICBmb250LXNpemU6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBwYWRkaW5nOjIwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDExNXB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcGFyZW50IGRpdiBzZWN0aW9uIGZvciB3aWRnZXRzIHRvIGJlIGhvdXNlZC5cbiAgI3dpZGdldHMtc2VjdGlvbiB7XG4gICAgLy8gY29udGFpbmVyIGZvciB3aWRnZXRzXG4gICAgI3dpZGdldHMtY29udGFpbmVyIHtcbiAgICAgIC8vIFF1aWNrLWZpeCB0byBhdm9pZCBzY3JlZW4gZmxvY2tlcmluZyB3aGVuIHRvb2x0aXBzIGFyZSBhcHBlbmRlZCB0byBib2R5OlxuICAgICAgLy8gbWluLWhlaWdodCB3aWxsIGZvcmNlIGEgc2Nyb2xsYmFyIHRvIGFwcGVhci4uLlxuICAgICAgbWluLWhlaWdodDogNzAwcHg7XG4gICAgfVxuXG4gICAgLnBsYWNlSG9sZGVyQm94IHtcbiAgICAgIG1hcmdpbjogQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzO1xuICAgICAgaGVpZ2h0OiAyNjdweDtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgYm9yZGVyOiBAaW1wYWMtcGxhY2Vob2xkZXItYm9yZGVyO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gZGFzaGJvYXJkIGZhaWxlZCB0byBsb2FkIG1lc3NhZ2UuXG4uYW5hbHl0aWNzLmxvYWQtZmFpbGVkIHtcblxuICBwIHsgZm9udC1zaXplOiAyMnB4OyB9XG5cbiAgLnNlY29uZC1tc2cge1xuICAgIHAge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG5cbi8vIFRvb2x0aXBzIGFyZSBhcHBlbmQgdG8gYm9keVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0LXNlbGVjdG9yLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHtcbiAgaW5wdXQsdGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgfVxuICAudGhhbmtzLW1lc3NhZ2Uge1xuICAgIGNvbG9yOiBAbWdyZWVuO1xuICB9XG59XG5cbi8vIFRoaXMgc3R5bGUgYXBwbGllcyB0byBkYXNoYm9hcmQgbW9kYWxzLCBhbmQgYWxzbyB0aGVcbi8vIGBhY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24vZm9ybXVsYS5tb2RhbC5odG1sYCBtb2RhbC5cbi5tb2RhbC1mb290ZXIgLmxvYWRlciB7XG4gIC5sb2FkZXItc3R5bGUoQGltcGFjLWRhc2hib2FyZC1sb2FkaW5nLXNwaW5uZXIpXG59XG5cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1jcmVhdGUge1xuICAuYnRuLWNyZWF0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1jcmVhdGUtYnV0dG9uLWNvbG9yO1xuICB9XG59XG5cbi5tb2RhbC5pbXBhYy1kYXNoYm9hcmQtY3JlYXRlIHtcbiAgaDEgeyBmb250LXNpemU6IDI0cHg7IH1cbiAgLmZhLmZhLXRpbWVzIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5jb250cm9sLWxhYmVsIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubW9kYWwtZm9vdGVyIHtcbiAgICAubG9hZGVyIHtcbiAgICAgIC5sb2FkZXItc3R5bGUoQGltcGFjLWRhc2hib2FyZC1sb2FkaW5nLXNwaW5uZXIpXG4gICAgfVxuICB9XG59XG4iLCIjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3Ige1xuICBhIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG4gIC8vIGRhc2hib2FyZCBzZWxlY3RvciB0ZW1wbGF0ZSB3cmFwcGVyIGRpdlxuICAmID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjtcbiAgfVxuXG4gIC5idXR0b25zLWJhci1yb3cge1xuICAgIG1hcmdpbi10b3A6IDU0cHg7XG4gICAgJi5wZGYtbW9kZSB7IG1hcmdpbi10b3A6IDBweDsgfVxuICB9XG5cbiAgLy8gY29udGFpbmVyIGZvciBkYXNoYm9hcmQgc2VsZWN0b3IgJ2Ryb3Bkb3duJyB0ZW1wbGF0ZVxuICAuYnV0dG9ucy1iYXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmJ0biB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW46IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBpbXBhYy1kYXNoYm9hcmQtYnV0dG9ucy1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC50aXRsZS1jb250YWluZXIge1xuICAgICAgaDEge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLWNvbnRhaW5lciB7XG4gICAgICAuZGFzaGJvYXJkLXRpdGxlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3IsMTAlKTtcbiAgICAgICAgfVxuICAgICAgICBpLmZhLmZhLXBlbmNpbCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBtZ3JlZW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGFzaGJvYXJkLXNlbGVjdCB7XG4gICAgICAgIG1hcmdpbjogNXB4IDBweCAxMHB4IDMwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRncmF5O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC5vcHRpb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuZGFzaGJvYXJkLWNyZWF0ZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMzcHg7XG4gICAgICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpLmZhLmZhLXBlbmNpbCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogN3B4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3IsMTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3Bhbi5uYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jaGFuZ2UtbmFtZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMsIDM4LCA0NSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC5ib3gtc2hhZG93KDBweCAwcHggMjVweCA0cHggYmxhY2spO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGF0YS1zb3VyY2UtbGFiZWwge1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zb3VyY2UtY29sb3I7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubG9hZGVyLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAubG9hZGluZy1zcGlubmVyIHtcbiAgICAgICAgLmxvYWRlci1zdHlsZSgpO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gYW5ndWxhciBib290c3RyYXAgdGFicyAmIHBpbGxzXG4gIC5uYXYtdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuICAubmF2Lm5hdi10YWJzLFxuICAubmF2Lm5hdi1waWxscyB7XG5cbiAgICAvLyBhZGQgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICB0YWItaGVhZGluZyBhIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUQUJTXG4gIC5uYXYubmF2LXRhYnMge1xuICAgIC8vIHRhYlxuICAgIGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtcGFkZGluZztcbiAgICAgIG1hcmdpbjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLW1hcmdpbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I7XG4gICAgfVxuICAgIC8vIGFjdGl2ZSB0YWJcbiAgICBsaS5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgICAvLyBhZGQgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbiAgICBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gUElMTFNcbiAgLy8gVE9ETzogQWRkIGxlc3MgdmFyaWFibGVzIGZvciBjdXN0b21pc2F0aW9uLlxuICAubmF2Lm5hdi1waWxscyB7XG4gICAgLy8gdGFiXG4gICAgbGkgPiBhIHtcbiAgICAgIG1pbi13aWR0aDogMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIH1cbiAgICAvLyBhZGQgYSBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCB0YWItaGVhZGluZyBhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuICAgIC8vIGFkZCBhIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgICB9XG4gIH1cbiAgLy8gdGFiIGljb25zXG4gIHRhYi1oZWFkaW5nIGEuY2xvc2UtbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkO1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC05cHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yO1xuICB9XG4gIC8vLy8vLy8vXG59XG4iLCJkYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIHtcbiAgLnRlbXBsYXRlcy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLnRlbXBsYXRlcy10b2dnbGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBpLmZhIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmLmZhLXRvZ2dsZS1vbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGVtcGxhdGVzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IDBweCAjY2NjO1xuICAgIGhlaWdodDogMTMwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgLnRlbXBsYXRlIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2VjO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmltcGFjLW1hdGVyaWFsKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIEBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3IpO1xuXG4gICAgYSB7IGNvbG9yOiB3aGl0ZTsgfVxuXG4gICAgYnV0dG9uLmltLWZhYi5hZGQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLmVkaXQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZS1pbjtcbiAgICAgICYuaW0tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNiMmI1YzE7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBhIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICAgIHRvcDogLTE1cHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIHJpZ2h0OiAtMTRweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMge1xuICAgICAgdG9wOiAzMHB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogMzNweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICAgIHRvcDogNzVweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgJi5lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvcjtcbiAgICAgICAgJjpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbihAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCAxNSUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogNzlweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3Bpcy1iYXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBAa3Bpcy1iYXItYm94LXNoYWRvdztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gICAgICBwYWRkaW5nOiAwIDYwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgfVxuXG4gICAgLmltcGFjLWtwaSB7XG4gICAgICAuY29sdW1uLWd1dHRlcig1cHgpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAua3BpLmFkZCB7XG4gICAgICAgIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC50aXRsZSB7XG4gICAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgICBmb250LXNpemU6IGxhcmdlcjtcbiAgICAgIH1cbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlNTVjO1xuICAgICAgICBjb2xvcjogIzRmNTk1OTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggLTFweDtcbiAgICAgIH1cbiAgICAgIC5uby1rcGktdGVtcGxhdGVzIHtcbiAgICAgICAgY29sb3I6ICNhZmFkYjU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFkZC1iYXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbiAgICB9XG5cbiAgICAua3BpLWxvYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgMjBweDtcbiAgICB9XG5cbiAgICAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgIC5zZHAtZnJvbS1sYWJlbCxcbiAgICAgIC5zZHAtdG8tbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG5cbi5hbmFseXRpY3MucGRmLW1vZGUga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7IGRpc3BsYXk6IG5vbmU7IH1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+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+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG5cbkBib2R5LWJnOiAjZmZmO1xuXG4vLyBTaGFkb3dzXG5Ac2hhZG93LWluc2V0OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCk7XG5Ac2hhZG93LTA6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbkBzaGFkb3ctMjogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctMzogMCAzcHggNHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDhweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctNDogMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMik7XG5Ac2hhZG93LTY6IDAgNnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMThweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKTtcbkBzaGFkb3ctODogMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsLjEyKSwwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLC4yKTtcblxuLy8gRm9udCBTaXplc1xuQGltLWZvbnQtc2l6ZTogMS4yNXJlbTtcbkBpbS1hY3RpdmUtZm9udC1zaXplOiBAaW0tZm9udC1zaXplICogMC44O1xuQGltLWFjdGl2ZS10b3A6IC1AaW0tZm9udC1zaXplO1xuXG4vLyBNYXJnaW4gJiBQYWRkaW5nc1xuQGltLWdhcDogQGltLWZvbnQtc2l6ZSAqIC43O1xuQGltLXNwYWNlcjogQGltLWZvbnQtc2l6ZSAvIDg7XG5AaW0tZmllbGRzZXQtbWFyZ2luOiAwIDAgQGltLWdhcCAqIDI7XG5AaW0tY2hlY2tib3gtZ2FwOiBAaW0tZm9udC1zaXplICogMjtcbkBpbS1jaGVja2JveC10b3A6IDA7XG5AaW0tcmFkaW8tbWFyZ2luOiBAaW0tZm9udC1zaXplIC8gLTQ7XG5cbi8vIENvbG9yc1xuQGltLWJvcmRlci1jb2xvcjogIzk5OTtcbkBpbS1sYWJlbC1jb2xvcjogbGlnaHRlbihAaW0tYm9yZGVyLWNvbG9yLCAxMCUpO1xuQGltLWFjdGl2ZS1jb2xvcjogZGFya2VuKEBpbS1ib3JkZXItY29sb3IsIDEwJSk7XG5cbi8vIEFuaW1hdGlvblxuQGltLXRyYW5zaXRpb24tc3BlZWQ6IDAuMjhzO1xuXG4uaW1wYWMtbWF0ZXJpYWwgKEBpbS1mb2N1cy1jb2xvcjogIzMzN2FiNywgQGltLWVycm9yLWNvbG9yOiAjZDk1MzRmLCBAaW0taW5wdXQtY29sb3I6ICMzMzMpIHtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG4gIC53ZWxsLCAubmF2YmFyLWlubmVyLCAucG9wb3ZlciwgLmJ0biwgLnRvb2x0aXAsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBwcmUsIC5wcm9ncmVzcywgLm1vZGFsLCAuYWRkLW9uLCAuYWxlcnQsIC50YWJsZS1ib3JkZXJlZCwgLm5hdj4uYWN0aXZlPmEsIC5kcm9wZG93bi1tZW51LCAudG9vbHRpcC1pbm5lciwgLmJhZGdlLCAubGFiZWwsIC5pbWctcG9sYXJvaWQge1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHksXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgU3R5bGVzIGZvciB0aGUgZm9ybVxuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiBAaW0tZmllbGRzZXQtbWFyZ2luO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLmltLWZvcm0tcmFkaW8sXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAxLjUpO1xuICAgIG1hcmdpbi1ib3R0b206IChAaW0tZ2FwICogMS41KTtcbiAgfVxuXG4gIC5pbS1mb3JtLWlubGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleDogMTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tbGVmdDogKEBpbS1nYXAgKiAuMik7XG4gICAgICBtYXJnaW4tcmlnaHQ6IChAaW0tZ2FwICogLjIpO1xuICAgIH1cblxuICAgID4gLmJ0biB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBpbnB1dCB7XG4gICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS45KTtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuNik7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogQGltLXNwYWNlcjtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBjb2xvcjogQGltLWxhYmVsLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogKEBpbS1mb250LXNpemUgLyAxNikgc29saWQgQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDgpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3R0b206IChAaW0tZm9udC1zaXplIC8gLTE2KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZSwgd2lkdGggQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMS45O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgIH4gLmltLWJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0OmZvY3VzLFxuICAgIGlucHV0OnZhbGlkLFxuICAgIGlucHV0LmZvcm0tZmlsZSxcbiAgICBpbnB1dC5oYXMtdmFsdWUsXG4gICAgdGV4dGFyZWE6Zm9jdXMsXG4gICAgdGV4dGFyZWE6dmFsaWQsXG4gICAgdGV4dGFyZWEuZm9ybS1maWxlLFxuICAgIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gICAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuXG4gICAgICB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiBAaW0tYWN0aXZlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6IEBpbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIHRvcDogQGltLWFjdGl2ZS10b3A7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB+IC5pbS1iYXIge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmFkaW8gJiBDaGVja2JveFxuICAuaW0tY2hlY2tib3gsXG4gIC5pbS1mb3JtLXJhZGlvIHtcbiAgICBsYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBpbS1jaGVja2JveC1nYXA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmltLXJhZGlvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IEBpbS1yYWRpby1tYXJnaW47XG4gICAgICBsZWZ0OiBAaW0tcmFkaW8tbWFyZ2luO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGNvbG9yOiBAaW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAvLyBUT0RPOiBpbXByb3ZlIHJhZGlvIHRyYW5zaXRpb24gLSByaXBwbGUgZWZmZWN0IGxpa2UgYW5ndWxhciBtZCB3b3VsZCBiZSBjb29sIDopXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luOiAoQGltLXNwYWNlciAqIDIpO1xuICAgICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiBAaW0tZm9udC1zaXplO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQge1xuICAgICAgfiAuaW0taGVscGVyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAyKTtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogQGltLWNoZWNrYm94LXRvcDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogKEBpbS1mb250LXNpemUgLyAxNik7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IChAaW0tZm9udC1zaXplICogMC4yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgQGltLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjY1KTtcbiAgICAgICAgbGVmdDogKEBpbS1mb250LXNpemUgKiAwLjM4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIChAaW0tZm9udC1zaXplIC8gMTYpIEBib2R5LWJnO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjMpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIHtcbiAgICAgIH4gLmltLWhlbHBlciB7XG4gICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG5cbiAgICAgICAgLy8gVE9ETzogaW1wcm92ZSBjaGVja2VkIHRyYW5zaXRpb24uXG4gICAgICAgICY6OmFmdGVyLFxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS4yKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiBAaW0tdHJhbnNpdGlvbi1zcGVlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbiAgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiBAaW0tZm9udC1zaXplO1xuICB9XG5cbiAgLy8gQWRkIGNsYXNzIG9udG8gbmctbWVzc2FnZXMgZGl2XG4gIC5pbS1tZXNzYWdlcyB7XG4gICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplIC8gMS4yO1xuICAgIGNvbG9yOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgY3ViaWMtYmV6aWVyKC41NSwwLC41NSwuMik7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cblxuICAuaGFzLWVycm9yIHtcbiAgICAubGVnZW5kLmxlZ2VuZCxcbiAgICAmLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgIH1cblxuICAgICYuaW0tZm9ybS1ncm91cCxcbiAgICAmLmltLWNoZWNrYm94LFxuICAgICYuaW0tcmFkaW8sXG4gICAgJi5pbS1mb3JtLXJhZGlvIHtcbiAgICAgIC5pbS1tZXNzYWdlcyxcbiAgICAgIC5pbS1oZWxwZXIge1xuICAgICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbihAaW0tZm9jdXMtY29sb3IsIDEwJSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogKEBpbS1mb250LXNpemUgKiAxLjEpO1xuICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG4gICAgbWFyZ2luOiAoQGltLWdhcCAqIC44KSAwO1xuICAgIHBhZGRpbmc6IChAaW0tZ2FwIC8gMikgKEBpbS1nYXAgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogQHNoYWRvdy0yO1xuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1mb2N1cy1jb2xvciwgNSUpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctaW5zZXQ7XG4gICAgfVxuXG4gICAgYTpmb2N1cyxcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmltLWZhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDZweDtcbiAgICB3aWR0aDogNDZweDtcbiAgICBmbGV4OiAwIDAgNTZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDRweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBib3gtc2hhZG93OiBAc2hhZG93LTQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogQHNoYWRvdy1pbnNldDtcbiAgICB9XG4gICAgJi5pbS1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oQGltLWZvY3VzLWNvbG9yLCA1JSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuaW0td2FybiB7XG4gICAgICBiYWNrZ3JvdW5kOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1lcnJvci1jb2xvciwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0O1xuICBtYXgtaGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBrcGktYmFja2dyb3VuZC1jb2xvcjtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGtwaS1iYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW47XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLnRyaWdnZXJlZCwgJi5hZGQ6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b206IEBrcGktdHJpZ2dlcmVkLWJvcmRlci1ib3R0b207XG4gIH1cblxuICAmLmFkZCB7XG4gICAgLmtwaS10ZXh0IHtcbiAgICAgIC5lbXBoYXNpcyB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIH1cbiAgfVxuXG4gICYuYWRkOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLnRvcC1saW5lIHsgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS10cmlnZ2VyZWQtYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIC5rcGktdGV4dCB7XG4gICAgICBjb2xvcjogQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjtcbiAgICAgIC5lbXBoYXNpcyB7IHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICB9XG4gICAgLmtwaS1pY29uIHtcbiAgICAgIGNvbG9yOiBAa3BpLWljb24tdHJpZ2dlcmVkLWNvbG9yO1xuICAgICAgLmZhLXBsdXM6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmVkaXRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0O1xuICB9XG5cbiAgJjpob3ZlciB7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4gICYuc3RhdGljIHtcbiAgICAua3BpLXZhbHVlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG4gIH1cblxuICAudG9wLWxpbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IEBrcGktdG9wLWxpbmUtaGVpZ2h0O1xuICAgIGJveC1zaGFkb3c6IEBrcGktdG9wLWxpbmUtYm94LXNoYWRvdztcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAmLnRyaWdnZXJlZCB7IGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I7IH1cbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluO1xuICB9XG5cbiAgLmtwaS1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgLSA1cHg7XG4gICAgJi5lZGl0aW5nIHtcbiAgICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0IC0gQGtwaS1jb250ZW50LWVkaXRpbmctaGVpZ2h0LWJ1ZmZlcjtcbiAgICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1zaG93IHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgLy8gc21hbGwgZml4IGZvciBpcGhvbmUgNiBhbmQgc21hbGxlclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDNweDtcbiAgICB9XG5cbiAgICAuZW1waGFzaXMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgLnJlYWwtdmFsdWUgeyBjb2xvcjogIzY3Njc2NzsgfVxuICAgIH1cblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLmtwaS10ZXh0IHtcbiAgICAgICYgPiBzcGFuIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIHBhZGRpbmc6IDdweCAwO1xuICAgICAgY29sb3I6IEBrcGktdGV4dC1jb2xvcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluO1xuICAgICAgJi50cmlnZ2VyZWQgeyBjb2xvcjogQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjsgfVxuXG4gICAgICAuY2FwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgICAgICAgLmNhcHRpb24geyBmb250LXNpemU6IDEwcHg7IH1cbiAgICAgICAgLmVtcGhhc2lzIHsgZm9udC1zaXplOiAxMXB4OyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmtwaS1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIGNvbG9yOiBAa3BpLWljb24tY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbjtcbiAgICAgICYudHJpZ2dlcmVkIHsgY29sb3I6IEBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5rcGktZWRpdCB7XG5cbiAgICBhIHsgY29sb3I6IHdoaXRlOyB9XG5cbiAgICAua3BpLW5hbWUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgaDYge1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucmVhbC12YWx1ZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5hbGVydC1jYXB0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGJhY2tncm91bmQ6IEBrcGktbmVnYXRpdmUtYWxlcnQtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuXG4gICAgLmtwaS10YXJnZXQtd2F0Y2hhYmxlLFxuICAgIC5rcGktdGFyZ2V0LXVuaXQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLmtwaS10YXJnZXQtd2F0Y2hhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBjb2xvcjogbGlnaHRlbihAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICB9XG5cbiAgICAua3BpLXRhcmdldC11bml0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb2xvcjogbGlnaHRlbihAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3IsIDEwJSk7XG4gICAgfVxuXG4gICAgLnBhcmFtLW5hbWUge1xuICAgICAgLnNtYWxsKCk7XG4gICAgfVxuXG4gICAgLmJ0bi5idG4teHMge1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5rcGktZWRpdCxcbiAgLmtwaS1uby1kYXRhIHtcbiAgICAuaW1wYWMtbWF0ZXJpYWwoQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvciwgQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcik7XG4gIH1cblxuICBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VkOiBAa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogLTExcHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAua3BpLWRhdGEtbG9hZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA5NXB4O1xuICB9XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIC5rcGkge1xuICBtaW4taGVpZ2h0OiA4MHB4O1xufVxuIiwiLndpZGdldC1pdGVtIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgcGFkZGluZzogQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzO1xuICAmLnBkZi1tb2RlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiB+XCJAe2ltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzfSAwcHhcIjtcbiAgfVxufVxuXG4ud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGl0bGUtYmc7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IEBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyOiBAaW1wYWMtd2lkZ2V0LWJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogNDFweDtcbiAgLmJveC1zaGFkb3coMHB4IDFweCA4cHggLTRweCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICB6LWluZGV4OiA0O1xufVxuXG4ud2lkZ2V0LWl0ZW0ge1xuICAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW1wYWMtd2lkZ2V0LWNvbnRlbnQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6IEBpbXBhYy13aWRnZXQtYm9yZGVyO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAuYm94LXNoYWRvdygwcHggMXB4IDhweCAtNHB4KTtcbiAgICAuc2hvcnQtd2lkZ2V0KCk7XG5cbiAgICAuZWRpdCB7XG4gICAgICAuZWRpdC1wYW5lbC1zdHlsZSgpO1xuICAgIH1cblxuICAgICYuYWNjZXNzaWJsZSB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgY29udGVudCB0byBsZWFrIG91dCBvZiB3aWRnZXQncyBib3hcbiAgICAuY29udGVudC10ZW1wbGF0ZS13cmFwcGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICYucGRmLW1vZGUgLmNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC5jb2xsYXBzZSB7XG4gICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgIH1cbiAgICAuZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYxNDdcIjtcbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZntcbiAgJi50aXRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAyKkB7aW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHN9IClcIjtcbiAgICB6LWluZGV4OiAzO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcbiAgICBoNiB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgJi50aWNrIHtcbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMzUlO1xuICAgICAgbGVmdDogNDYlO1xuICAgICAgZm9udC1zaXplOiAxMDBweDtcbiAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG4gIH1cbiAgLndpZGdldC1ob3ZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICB6LWluZGV4OiAxO1xuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogLjU7XG4gICAgICBiYWNrZ3JvdW5kOiAjQ0NDRkQwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGaXggb3ZlcmZsb3cgZm9yIGxhcmdlIHN1bXMvdGV4dCBpbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB0YWJsZXNcbi53aWRnZXQtaXRlbSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I7XG5cbiAgLm92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgei1pbmRleDogMztcbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMjVweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IDg1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbiAgICB6LWluZGV4OiA0O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIC5idG4geyBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgfVxuXG4gIC5leGFtcGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICB6LWluZGV4OiA2O1xuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtZGVtby1kYXRhLWxpbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQge1xuICAubWVzc2FnZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHAgeyBtYXJnaW46IDVweDsgfVxuICB9XG4gIC5vdmVybGF5LCAudGl0bGUsIC5idG4sIC5leGFtcGxlIHsgZGlzcGxheTogbm9uZTsgfVxufVxuIiwiI2R1cGxpY2F0ZS10cmFuc2FjdGlvbnMtbGlzdCB7XG4gIC50b3Age1xuICAgIGhlaWdodDogNDBweDtcbiAgICBhLmJhY2stbGluayB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAucGFnaW5hdGlvbiB7IG1hcmdpbjogMHB4OyB9XG4gIH1cblxuICAudGFibGUtc3RyaXBlZCB7XG4gICAgdHIub3JpZ2luOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgICB9XG4gIH1cblxuICAudGFibGUtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDYwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0LmJ0bi5idG4teHMgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICAgIC5mYS5mYS10aW1lcyB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICB0ci50b3RhbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICYuaW52b2ljZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1wb3NpdGl2ZSwgMjAlKTtcbiAgICAgIH1cbiAgICAgICYuYmlsbHMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1uZWdhdGl2ZSwgMjAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiN0cmFuc2FjdGlvbnMtYWRkIHtcbiAgLndpZGdldC1wb3B1cCgpO1xuICAubWVzc2FnZSB7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDM1JTtcbiAgICB3aWR0aDogMzAlO1xuICAgIC5mb3JtIHtcbiAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgICAgPiBsYWJlbCxcbiAgICAgIC5zY2hlZHVsYWJsZS1zZWN0aW9uID4gbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9ybS1jb250cm9sLCBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRpc2FibGUge1xuICAgICAgICBjb2xvcjogIzg4ODg4ODtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuICAgICAgLm5ldmVyLWRpc2FibGUge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIH1cbiAgICAgIC5yZXBlYXQtYnRuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0IHsgaGVpZ2h0OiAyMnB4OyB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnNjaGVkdWxhYmxlLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgLmJhZGdlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7XG4gICAgICAgIH1cbiAgICAgICAgLmludGVydmFsLWZpZWxkIHtcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgfVxuICAgICAgICAuYnRuLWdyb3VwIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICBzZWxlY3QgeyBoZWlnaHQ6IDIycHg7IH1cbiAgICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIjdHJhbnNhY3Rpb25zLWxpc3Qge1xuICAudG9wIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmJhY2sge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLmJ0bi5idG4tc20geyBtYXJnaW4tdG9wOiAtNHB4OyB9XG4gICAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5yZXNvdXJjZS10eXBlIHtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMzcwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmJ0bi1ncm91cCB7IG1hcmdpbi1sZWZ0OiAzcHg7IH1cbiAgICAubm8tbWFyZ2luLXRvcCB7IG1hcmdpbi10b3A6IDBweCB9XG4gIH1cblxuICAuYm90dG9tIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC5wYWdpbmF0aW9uIHsgbWFyZ2luOiAwcHg7IH1cbiAgfVxuXG4gIC50YWJsZS1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gMTAwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0LmJ0bi5idG4teHMgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgLmZhLmZhLXRpbWVzIHsgY29sb3I6IEBicmFuZC1kYW5nZXI7IH1cbiAgICB9XG5cbiAgICB0ci50b3RhbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICYuaW52b2ljZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCM4ZWFiNzEsIDIwJSk7XG4gICAgICB9XG4gICAgICAmLmJpbGxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjYzc2Mzc5LCAyMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRkID4gLmV4cGVjdGVkLXBheW1lbnQtZGF0ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgLnJlc2V0LWRhdGUgeyBtYXJnaW4tbGVmdDogM3B4OyB9XG4gICAgfVxuICB9XG59XG4iLCIjdHJlbmRzLWFkZCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIHRvcDogMzBweDtcbiAgICBsZWZ0OiAxNSU7XG4gICAgd2lkdGg6IDcwJTtcbiAgICAud3JhcHBlciB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgLmZvcm0ge1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICB9XG4gICAgICBpbnB1dC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgICAgLmJ0bi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICA+IC5idG4ge1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgbWFyZ2luOiA0cHggMCAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gICAgLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gICAgICB3aWR0aDogNzQlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufSIsIiN0cmVuZHMtbGlzdCB7XG4gIC50b3Age1xuICAgIGhlaWdodDogNDBweDtcbiAgICBhLmJhY2stbGluayB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAucGFnaW5hdGlvbiB7IG1hcmdpbjogMHB4OyB9XG4gIH1cblxuICAudGFibGUtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDYwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICBkaXZbdWliLWRhdGVwaWNrZXItcG9wdXAtd3JhcF0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0LmJ0bi5idG4teHMgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4gICAgLmxpc3Rpbmcge1xuICAgICAgb3V0bGluZS1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyB7XG4gIC5zaG93LXN0YXR1cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgLmZhLmZhLWluZm8geyBtYXJnaW4tcmlnaHQ6IDJweDsgfVxuICB9XG4gIC5zdGF0dXMtYnRuIHtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICYuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUgeyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgICAmLmZhLWNoZWNrIHsgY29sb3I6IEBncmVlbjsgfVxuICAgIH1cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDVweCA3cHggNXB4IDBweDtcbiAgfVxuXG4gIC5wb3BvdmVyIHtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIC5jb25uZWN0b3Ige1xuICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAmLmFkZC1zZXBlcmF0b3IgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgfVxuICAgIH1cbiAgICAucG9wb3Zlci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5wb3BvdmVyLWZvb3RlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAmLnJlbW92ZS1zZXBlcmF0b3IgeyBib3JkZXI6IDA7IH1cbiAgICB9XG4gIH1cblxuICAuYmFkZ2UgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgLnN1Y2Nlc3MgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuOyB9XG4gIC5wZW5kaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAucnVubmluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLmVycm9yIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5mYWlsZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLnVua25vd24gLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLmRpc2Nvbm5lY3RlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxufVxuXG4jc3luYy1hcHBzLW1vZGFsIHtcbiAgLm1vZGFsLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbiAgfVxuICAubW9kYWwtbGlzdCB7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuICAubW9kYWwtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgJi5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAgICYucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgICAmLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIHAgeyBtYXJnaW46IDA7IH1cbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgIH1cblxuICAgICYuc3VjY2VzcyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7IH1cbiAgICAmLnBlbmRpbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYucnVubmluZyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpOyB9XG4gICAgJi5lcnJvciAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZmFpbGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi51bmtub3duIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cblxuICAgICYud2l0aC1tZXNzYWdlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLmZhIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cbiAgLmZhLmVycm9yIHsgY29sb3I6IEByZWQ7IH1cbiAgLmZhLndhcm4geyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5mYS5zdWNjZXNzIHsgY29sb3I6IEBmbHVyb2dyZWVuOyB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAudGFibGUtbGF5b3V0IHtcblxuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgdGgsXG4gICAgdGQ6bm90KC5uZXN0ZWQtdGFibGUpIHtcbiAgICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgcGFkZGluZzogNXB4IDA7XG5cbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aFtuZy1jbGlja10ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICN0YWJsZS1sYXlvdXQge1xuICAgICYgPiB0aGVhZCB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAuZm9udCgxMnB4LDUwMCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtKTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgQGxpZ2h0Z3JheTtcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIH1cblxuICAgIC5uZXN0ZWQtdGFibGUge1xuICAgICAgaS5mYSB7IHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAgIH1cbiAgfVxufVxuIiwiY2hhcnQtdGhyZXNob2xkIHtcbiAgLmF0dGFjaC1wYW5lbCB7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMCwgMTMyLCAyMjgsIDAuMTYpO1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cbiAgICAgICYudGFyZ2V0IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50ZXh0IHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyOiAxcHggd2hpdGU7XG4gICAgICBwYWRkaW5nOiAzcHg7XG5cbiAgICAgICZbbmFtZT1hbW91bnRdIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jdXJyZW5jeSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAmLmxvYWRpbmcge1xuICAgICAgICAgIHBhZGRpbmc6IDNweCAyMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIHdpZGdldHMtY29tbW9uLWNvbmZpcm0tbW9kYWwge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcCB7IHBhZGRpbmc6IDBweCAxMHB4OyB9XG5cbiAgICBidXR0b24uYnRuIHsgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4gICAgLmxvYWRlciBpLmZhLmZhLXNwaW5uZXIge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgaW1nIHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTVweDtcbiAgbGVmdDogMTVweDtcbiAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDMwcHgpXCI7XG4gIG1heC1oZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDMwcHgpXCI7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IGRvdHRlZCAxcHggI0I3Q0RDRTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogXCJMYXRvIFNlbWlib2xkXCIsIFwiTGF0b1wiO1xuXG4gIHotaW5kZXg6IDQ7XG5cbiAgJjpob3ZlciB7IG9wYWNpdHk6IDE7IH1cblxuICAuaS1oZWFkZXIge1xuICAgIC5mYSB7IGZvbnQtc2l6ZTogMThweDsgfVxuICAgIC5mYS1pbmZvLWNpcmNsZSB7IGZsb2F0OiBsZWZ0OyB9XG4gICAgLmZhLXRpbWVzLWNpcmNsZSB7IGN1cnNvcjogcG9pbnRlcjsgZmxvYXQ6IHJpZ2h0OyB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6IFwiTGF0byBNZWRpdW1cIiwgXCJMYXRvXCI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLmktY29udGVudCB7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICBmbGV4OiAxO1xuXG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5rZXkge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICB9XG5cbiAgICAgIC52YWx1ZSB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIycHg7XG5cbiAgLnRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtc2l6ZSw2MDAsQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LWNvbG9yKTtcbiAgICBjdXJzb3I6IHRleHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIH1cblxuICAuZWRpdGFibGUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgLy8gb3RoZXJ3aXNlLCB3aGl0ZS1zcGFjZSBpcyBvdmVycmlkZW4gaW4gbW5vLWVudGVycHJpc2VcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLmVkaXRhYmxlLWNvbnRyb2xzIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgLmVkaXRhYmxlLWlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAvLyA2NXB4IGlzIC5lZGl0YWJsZS1idXR0b25zIHdpZHRoXG4gICAgICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA2NXB4KVwiO1xuICAgICAgICBwYWRkaW5nOiAwcHggM3B4O1xuICAgICAgfVxuXG4gICAgICAuZWRpdGFibGUtYnV0dG9ucyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGl0bGUtYmc7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgLnRvcC1idXR0b25zLXdyYXBwZXIge1xuICAgIC50b3AtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdG9wLWJ1dHRvbnMtY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxN3B4O1xuXG4gICAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7IGJveC1zaGFkb3c6IG5vbmU7IH1cblxuICAgICAgJi5idG4taW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICNGRkM5Mjg7IH1cbiAgICAgIH1cbiAgICAgICYuYnRuLWV4cG9ydCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IEBtYmx1ZTsgfVxuICAgICAgfVxuICAgICAgJi5idG4tcmVmcmVzaCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IEBtYmx1ZTsgfVxuICAgICAgfVxuICAgICAgJi5idG4tZWRpdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgJjpob3ZlciwgJi5lZGl0LW1vZGUgeyBjb2xvcjogZGFya2VuKEBtZ3JlZW4sMTAlKTsgfVxuICAgICAgfVxuICAgICAgJi5idG4tY2xvc2Uge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQHBpbms7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSB7XG4gIC5wYXJhbS1zZWxlY3RvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogOTBweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1zdW1tYXJ5IHtcbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiAxMTVweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcyB7XG4gIC5sZWdlbmQgPiAudGl0bGUgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSB7XG4gIGgzIHtcbiAgICAubGVmdC10aGluKDMwcHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogNDkwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgICAucm93LndpZGdldC1saW5lIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10geyBwb3NpdGlvbjogc3RhdGljOyB9XG5cbiAgICAmLm5vLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAubm8tZGF0YS1ibG9jayB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LmxpbmVzLWdyb3VwLmNhc2gge1xuICAgIGJvcmRlci10b3A6IHNvbGlkIDFweDtcbiAgICBib3JkZXItYm90dG9tOiBkb3VibGU7XG4gIH1cbn1cbiIsIi8vIC0tLSBSZXVzYWJsZSB3aWRnZXQgc3R5bGUgbWl4aW5zXG5cbi8vIFBheXJvbGwtU3VtbWFyeSAtIFByb2ZpdC1hbmQtTG9zc1xuLmRyaWxsLWRvd24td2lkZ2V0ICgpIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4O1xuICAgIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIC5zY3JvbGxhYmxlKGF1dG8pO1xuICAgICAgbWF4LWhlaWdodDogMjM1cHg7XG4gICAgfVxuICB9XG5cbiAgLm5vLWVsZW1lbnQge1xuICAgIC5jZW50ZXItdGhpbigpO1xuICB9XG59XG5cbi8vIFRvcCBjdXN0b21lcnMgc3VtbWFyeSAtIFNhbGVzIGN5Y2xlLi4uXG4uc2ltcGxlLXN1bW1hcnktd2lkZ2V0KCkge1xuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDQxMHB4O1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1heC1oZWlnaHQ6IDI4cHg7XG4gIH1cbn1cblxuLy8gSW52b2ljZXMgbGlzdCAtIHNhbGVzIGxpc3Rcbi5zaW1wbGUtbGlzdC13aWRnZXQoKSB7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgLmFsdGVybmF0ZS1iZygpO1xuICAgICAgJi5oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFdvcmtmb3JjZS1TdW1tYXJ5IC0gU2FsYXJpZXMtU3VtbWFyeVxuLmV4cGFuZGFibGUtZmlsdGVyYWJsZS13aWRnZXQoKSB7XG4gIGgzLmxlZnQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXJnaW4tdG9wOiA2OXB4OyB9XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaDMucmlnaHQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5wcmljZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNzVweDtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuICAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4teHMtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHsgbWF4LXdpZHRoOiAzMjBweDsgfVxuICB9XG59XG5cbi8vIExlYWRzIGZ1bm5lbCAtIE9wcG9ydHVuaXRpZXMgZnVubmVsXG4uZnVubmVsLXdpZGdldCgpIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG4gIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLWJpZy13aWRnZXQtc2l6ZSAtIDYwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgcHJpbnQgeyBtYXgtd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIH1cblxuICAuYWRkLWFjY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNDBweDtcbiAgICBib3R0b206IDMwcHg7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIHNlbGVjdCB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7XG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJ1dHRvbi5jbG9zZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMTAzcHg7XG4gIH1cbiAgLnJvdyB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLXdpZGdldC1hY2NvdW50cy1jb21wYXJpc29uLWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICB9XG5cbiAgLmNvbXBhcmFibGUtZXJyb3IgaDUge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNsYXNzLWNvbXBhcmlzb24ge1xuICAucGFyYW0tc2VsZWN0b3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogOTRweDtcbiAgICBjb2xvcjogIzYyNmQ2ZDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uIHtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDg1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5sZWdlbmQgeyBtYXgtaGVpZ2h0OiAxMjVweDsgfVxufVxuXG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG59XG5cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IHtcbiAgLmVkaXQge1xuICAgIC5lZGl0LXBhbmVsLXN0eWxlKCk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogNTQwcHg7XG4gIH1cblxuICAuYWNjb3VudC1jbGFzcy10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMXB4O1xuICB9XG5cbiAgLnRpbWUtcGVyaW9kLWluZm8ge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLndpZGdldC1saW5lLmhlYWRlci5zb3J0aW5nICB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbn1cblxuXG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlLXdlaWdodCB7XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMTE1cHg7XG5cbiAgICAudGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSB7XG4gIC5sZWdlbmQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSB7XG4gIGgzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtc2hhZG93OiAxcHg7XG4gIH1cblxuICAuc3RhdGVtZW50LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIC5iYWxhbmNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAuY3VycmVuY3ktY2VudGVyZWQge1xuICAgIC5jZW50ZXItc21hbGwoKVxuICB9XG5cbiAgLmhlYWRlcnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5zcGFjZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG5cbiAgLmNvbWUtYmFjay1sYXRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cblxuICAubmVnYXRpdmUyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSB7XG4gIGgzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBheWFibGUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuXG4gIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIHtcbiAgXG4gIC5sZWZ0LXBhbmVsIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvOyBcblxuICAgIC5zZXBhcmF0b3Ige1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICAgIC5tZW1iZXIge1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLm1lbWJlciAucHJpY2Uge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbiAgICBidXR0b24geyBvdXRsaW5lOiBub25lOyB9XG4gIH1cblxuICAubGVmdC1wYW5lbC5zaW11bGF0aW9uIHtcbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAubGVnZW5kIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnByaWNlIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICB9XG4gICAgLnNlcGFyYXRvciB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIwMHB4OyB9XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWF4LWhlaWdodDogMjIwcHg7IH1cbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG4gIC50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCB7XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgfVxuICB9XG4gIC5lZGl0IHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNle1xuICAuZW1wbG95ZWUtbmFtZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iYWxhbmNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMzNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGV7XG4gIC5mYy1idXR0b24ge1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZDogQGltcGFjLXdpZGdldC1idXR0b25zLWNvbG9yO1xuICAgIH1cbiAgfVxuICAuZmMtdG9vbGJhciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG4gIC5mYy1kYXktZ3JpZCwuZmMtd2lkZ2V0LWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IDE0NXB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkge1xuICAgIC5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIHtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDYzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDIzcHg7XG4gIH1cbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtICB7XG4gIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IHtcbiAgICAuZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIHtcbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxMHB4O1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuXG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LmFzdGVyaWNrcy1pbmZvIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IHtcbiAgLnNpbXBsZS1saXN0LXdpZGdldCgpO1xuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gIH1cblxuICAuZmEuZmEtaW5mby1jaXJjbGUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAucmlnaHQtY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjM4cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMge1xuICAubG9hZGVyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgZm9udC1zaXplOiAxMnB4O1xuICAuZGV0YWlscy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWF4LWhlaWdodDogMTk0cHg7IH1cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWF4LWhlaWdodDogMjMwcHg7IH1cbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG4gIC5yb3cudGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4ge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5ibG9jayB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb3JtLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgJi50by1kYXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICB9XG4gICAgJi50by1icmVha2V2ZW4ge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZztcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjtcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZywgMTAlKTtcbiAgICAgIH1cbiAgICAgIC5kZWZpbmUtdGV4dCB7XG4gICAgICAgIC5jZW50ZXItdGhpbigpO1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgICAucHJpY2Uge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA1MzBweDtcbiAgfVxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjc1cHg7XG4gICAgLndpZGdldC1saW5lLm1haW4ge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWdyb3d0aCB7XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogNDlweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUge1xuICAuc2ltcGxlLXN1bW1hcnktd2lkZ2V0KCk7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCB7XG4gIC5zaW1wbGUtbGlzdC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogMTcwcHg7XG4gICAgJi5uby1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMge1xuICAudmFsdWUtY29udGFpbmVyLCAub3BlcmF0b3Ige1xuICAgIC8vIGZsb2F0OiBsZWZ0O1xuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogODVweDtcbiAgfVxuXG4gIC8vIC52YWx1ZS1jb250YWluZXIge1xuICAvLyAgIHdpZHRoOiAyNiU7XG4gIC8vIH1cblxuICAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgfVxuXG4gIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIC8vIGJvcmRlcjogc29saWQgMXB4ICNFNEU0RTQ7XG4gICAgLy8gYm94LXNoYWRvdzogMXB4IDFweCAxcHggI0M1QzVDNTtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLm9wZXJhdG9yIHtcbiAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgcGFkZGluZy10b3A6IDM4cHg7IH1cbiAgICBwYWRkaW5nLXRvcDogMzhweDtcbiAgICAvLyB3aWR0aDogMTAlO1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gIH1cblxuICAudmFsdWVzIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMjVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIHtcblxuICAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xuXG4gICAgLnJvdyB7IG1hcmdpbjogMHB4IC01cHg7ICY+ZGl2IHsgcGFkZGluZzogMHB4IDVweDsgfX1cblxuICAgIC50b3RhbCB7XG4gICAgICBjb2xvcjogIzVCNjY2NztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyB7XG4gIC5zdGF0cyB7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgLnN0YXQge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweCAxMHB4IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgc3Bhbi50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgc3Bhbi5ub21pbmFsIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIH1cbiAgICAgIHNwYW4udmFyaWF0aW9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2Uge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgXHQgbWF4LWhlaWdodDogMjE1cHg7XG4gICAgLndpZGdldC1saW5lLmhlYWRlciB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICAuZnVubmVsLXdpZGdldCgpO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIHtcbiAgaDMucmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDU1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuICAuYW5hbHlzaXMge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuZmEuZmEtaW5mby1jaXJjbGUgeyBmbG9hdDogbGVmdDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IHtcbiAgLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpO1xuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMge1xuICAuc2VsZWN0b3Ige1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIGEgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhcmFtLXNlbGVjdG9yIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgIC53aWRnZXQtbGluZS5zdWItbGluZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOyB9XG5cbiAgICAvLyBXaWxsIGFsbG93IHRoZSBwYXJhbXMgc2VsZWN0b3JzIHRvIGJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGNvbnRhaW5lciAod2l0aG91dCBiZWluZyBjdXQgb24gdGhlIHJpZ2h0KVxuICAgIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10geyBwb3NpdGlvbjogc3RhdGljOyB9XG4gIH1cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBpbWcgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIHtcbiAgLm9wcHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICAudGlsZSB7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDNweCAwcHggMHB4IDEwcHg7XG4gICAgICB9XG4gICAgICAmLmZpcnN0IHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTEwLCA2NSk7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zZWNvbmQge1xuICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIge1xuXG4gIC5idG4uYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLCAxMCUpO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAmLmZvY3VzLCAmLmFjdGl2ZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjsgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIHtcbiAgLmF0dGFjaC1rcGkge1xuICAgIHBhZGRpbmc6IDhweCA1cHg7XG5cbiAgICBmb3JtIC5yb3cge1xuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAuYXR0YWNoLWtwaS1mb3JtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICB9XG5cbiAgICBmb3JtIC5yb3cua3BpLWRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMnB4O1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0uYXR0YWNoLWtwaS1mb3JtIHtcbiAgICAgIGlucHV0LmF0dGFjaC10YXJnZXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5lcnJvci1tZXNzYWdlcyB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICB9XG4gIH1cblxuICAuYXR0YWNoZWQta3BpcyB7XG4gICAgcGFkZGluZzogNXB4O1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuXG4gICAgLmF0dGFjaGVkLWtwaS1uYW1lIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aWR0aDogNzUlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgIC5hbGVydHMtY29uZmlnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgY29sb3I6IEBtYmx1ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBtYmx1ZTtcblxuICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICB9XG4gICAgICAuZWRpdC1hdHRhY2hlZC1rcGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgICAgY29sb3I6IEBtYmx1ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBtYmx1ZTtcbiAgICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yZW1vdmUtYXR0YWNoZWQta3BpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBpIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQGJyYW5kLWRhbmdlcjtcbiAgICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMge1xuICAucm93IHtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIHtcbiAgaDUgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgYnV0dG9uLmJ0bi5idG4tc20ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICYuZGF0ZS1idXR0b24geyBtYXJnaW46IDBweCA1cHg7IH1cbiAgICAmLmJ0bi1kYW5nZXIgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgJi5idG4taW5mbyB7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICB9XG5cbiAgLnRvb2x0aXAtaW5uZXIgeyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4gIC5kcm9wZG93bi1tZW51ID4gbGkgPiBkaXYgPiB0YWJsZSB7IG91dGxpbmU6IG5vbmU7IH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcblxuICBbY29tbW9uLXRpbWUtcGVyaW9kLWluZm9dIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICB9XG5cbiAgLm9wdGlvbnMge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgYSB7XG4gICAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtO1xuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYXJyb3ctY29udGFpbmVyIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTE0cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgICYucmlnaHQge1xuICAgICAgbGVmdDogNDZweDtcbiAgICB9XG4gICAgJi5sZWZ0IHtcbiAgICAgIGxlZnQ6IC0zMHB4O1xuICAgIH1cbiAgICAuYXJyb3ctYm9yZGVyIHtcbiAgICAgIGJvcmRlci10b3A6IDE0cHggc29saWQgI2U2ZTZlNjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgIH1cbiAgICAuYXJyb3cge1xuICAgICAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMTJweDtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMge1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcblxuICBhLm9wdGlvbiB7XG4gICAgJi5iYWRnZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I7XG4gICAgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMge1xuICAub2Zmc2V0LXZhbHVlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG5cbiAgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cblxuICBpbnB1dCB7IHdpZHRoOiA3NSU7IH1cbiAgYnV0dG9uIHsgd2lkdGg6IDMwcHg7IH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xuICAgICAgLmFsdGVybmF0ZS1iZygjZjNmNGY0KTtcbiAgICAgIC5mYSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uLCAmLmZhLWNoZWNrLWNpcmNsZSB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAmLmZhLXRvZ2dsZS1vZmYsICYuZmEtY2lyY2xlLXRoaW4ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJi5jbGFzc2ljIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwcHggMHB4IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgLmJveC1zaGFkb3cocmdiKDAsIDAsIDApIDBweCAzcHggMTVweCAtM3B4KTtcblxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgLmZvbnQoaW5oZXJpdCw1MDAsYmxhY2spO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gICAgfVxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGxpZ2h0Z3JheSw1JSk7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3IsNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBwYWRkaW5nOiAycHggMHB4O1xuICBpbnB1dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgfVxuICBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICAucGFyYW1ldGVyIHtcbiAgICBtYXJnaW46IDBweCAzcHggM3B4IDBweDtcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgbWFyZ2luOiAwcHggLTNweCAwcHggM3B4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIH1cblxuICAgICYudW5jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXItY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci11bmNoZWNrZWQtYmc7XG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MucGF5cm9sbCB7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCNmM2Y0ZjQpO1xuICAgICAgLmZhIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJi5mYS10b2dnbGUtb2ZmIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3Muc291cmNlLXNlbGVjdG9yIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbiAgICAgIC5hbHRlcm5hdGUtYmcoI2YzZjRmNCk7XG4gICAgICAuZmEge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmLmZhLXRvZ2dsZS1vbiwgJi5mYS1jaGVjay1jaXJjbGUge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJi5mYS10b2dnbGUtb2ZmLCAmLmZhLWNpcmNsZS10aGluIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG5cbiAgLmJ0bi5idG4tZGVmYXVsdCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICB9XG5cbiAgLnRhZy1saW5lcy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuXG4gICAgLnRhZy1saW5lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgLnRhZ3MtY29sIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4gICAgICB0YWdzLWlucHV0IHtcbiAgICAgICAgLnRhZ3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XG4gICAgICAgICAgLnRhZy1pdGVtIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM3OWEyYmI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5ob3N0IHsgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuXG4gIHNlbGVjdCB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIFxuICAmID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwcHggLTVweCA3cHggLTVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgIC5zdWItc2V0dGluZyB7IHBhZGRpbmc6IDVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGgge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgaSB7XG4gICAgY29sb3I6IHNpbHZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJi5yZWR1Y2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICB9XG4gICAgJi5leHBhbmQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSB7XG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIC5kYXRhLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDUwcHgpXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubGVmdC1wYW5lbCB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgI2Nhc2gtYmFsYW5jZS1sZWdlbmQge1xuICAgIC5oZWFkZXIge1xuICAgICAgLmdyb3VwLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICBtYXJnaW46IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDFweFxuICAgICAgICB9XG4gICAgICAgIHNwYW4geyBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxlZ2VuZC1pdGVtLWljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDE4MHB4KVwiO1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC8vIEhpZ2hjaGFydCBjb250YWluZXJcbiAgICAuY2FzaC1iYWxhbmNlLWNoYXJ0IHtcbiAgICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIH1cbiAgfVxuXG4gIC5kYXRlcy1waWNrZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgfVxuXG4gIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHtcbiAgICByZWN0LmhpZ2hjaGFydHMtcG9pbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHdpZHRoOiAxMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGltZyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDU1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWludm9pY2VzLWxpc3Qge1xuICAvLyBjb21wb25lbnQgc3BlY2lmaWMgc3R5bGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgdHJhbnNhY3Rpb25zLWxpc3Qge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG59XG4iXX0= */ diff --git a/dist/impac-angular.js b/dist/impac-angular.js index d87c73d0..d820cdc6 100644 --- a/dist/impac-angular.js +++ b/dist/impac-angular.js @@ -1,6 +1,6 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.8.5 + * @version v1.8.6 * @git git://github.com/maestrano/impac-angular.git * @license Copyright 2017 Maestrano Pty Ltd */ @@ -218,26 +218,26 @@ $templateCache.put("dashboard-selector/bootstrap-tabs.tmpl.html","
\n
×
\n

impac.dashboard_selector.delete.delete_dashboard

\n
\n\n
\n
\n
\n
\n \n
    \n
  • {{error}}
  • \n
\n
\n
\n
\n\n

impac.dashboard_selector.delete_widget.description

\n
\n\n
\n
\n
\n \n \n
\n
\n
\n"); $templateCache.put("dashboard-selector/dropdown.tmpl.html","
\n\n
\n

\n {{currentDhb.full_name}}\n

\n

\n impac.dashboard_selector.dropdown.source {{organizationsNames()}}\n

\n
\n\n
\n
\n

\n
\n {{currentDhb.full_name}}\n 1\" style=\"font-size: 18px;\">\n
\n \n

\n\n
\n
\n {{dhb.full_name}}\n \n
\n\n
\n \n
\n
\n\n
\n

impac.dashboard_selector.dropdown.change_dashboard_name

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

\n impac.dashboard_selector.dropdown.source {{organizationsNames()}}\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-templates-selector/dashboard-templates-selector.tmpl.html","
\n
\n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
\n
    \n
  • \n \n
  • \n
\n
\n
\n"); -$templateCache.put("kpi/kpi.tmpl.html","
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{kpi.layout.text.caption}}\n \n {{kpi.layout.text.emphasis}} - ({{ getRealValue() }})\n \n
\n
\n \n
\n
\n
{{kpi.name.toUpperCase()}}
\n
\n\n
\n {{kpi.layout.text.alert}}\n
\n\n
\n \n
\n
{{\'impac.kpi.current\' | translate}} {{watchable}}: {{ getRealValue() }}
\n \n
\n \n \n \n {{getTargetUnit(watchable)}}\n \n
\n impac.kpi.kpi_target_require\n impac.kpi.kpi_target_number\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("kpis-bar/kpis-bar.tmpl.html","
\n\n
\n \n
\n \n \n
\n
\n\n
\n
\n
\n impac.kpi_bar.you_can_attach\n impac.kpi_bar.no_kpis\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{kpi.name}}\n impac.kpi_bar.add_to_dashboard\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("kpi/kpi.tmpl.html","
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{kpi.layout.text.caption}}\n \n {{kpi.layout.text.emphasis}} - ({{ getRealValue() }})\n \n
\n
\n \n
\n
\n
{{kpi.name.toUpperCase()}}
\n
\n\n
\n {{kpi.layout.text.alert}}\n
\n\n
\n \n
\n
{{\'impac.kpi.current\' | translate}} {{watchable}}: {{ getRealValue() }}
\n \n
\n \n \n \n {{getTargetUnit(watchable)}}\n \n
\n impac.kpi.kpi_target_require\n impac.kpi.kpi_target_number\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("widget/widget.tmpl.html","
\n
\n
\n
\n\n
\n
impac.widget.include_pdf
\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/data-not-found.tmpl.html","
\n
\n
\n
{{ needsCustomMessage ? content.liveBTitle : content.title }}
\n

{{ needsCustomMessage ? content.liveBMessage : content.title }}

\n \n \n
\n
\n {{ content.demoData | translate }}\n -\n {{ content.linkMessage }}\n \n
\n
\n"); $templateCache.put("common/duplicate-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 \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 \n \n \n
{{ $ctrl.currentAttributes.resourcesType == \'invoices\' ? \'Customer\' : \'Supplier\' }}CodeDescriptionStatusTransaction 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
{{group.name}}{{group.color}}\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
NameRateAccountPeriodicityStart DateLast application dateDescription\n \n
{{trend.name}}\n \n {{trend.rate}}%\n %\n {{trend.account_name || trend.account_class}}{{trend.period}}\n \n {{$ctrl.formatDate(trend.start_date, trend)}}\n \n {{$ctrl.formatDate(trend.last_apply_date, trend)}}\n \n {{trend.description}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n \n Delete trend\n Delete group\n \n \n

Are you sure you want to delete this trend?

\n

Are you sure you wante to delete this group?

\n

(All associated trends will be deleted)

\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
\n \n\n
\n Forever
\n For {{$ctrl.period()}}
\n Until \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/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
{{group.name}}{{group.color}}\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
NameRateAccountPeriodicityStart DateLast application dateDescription\n \n
{{trend.name}}\n \n {{trend.rate}}%\n %\n {{trend.account_name || trend.account_class}}{{trend.period}}\n \n {{$ctrl.formatDate(trend.start_date, trend)}}\n \n {{$ctrl.formatDate(trend.last_apply_date, trend)}}\n \n {{trend.description}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n \n Delete trend\n Delete group\n \n \n

Are you sure you want to delete this trend?

\n

Are you sure you wante to delete this group?

\n

(All associated trends will be deleted)

\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"); +$templateCache.put("dashboard-settings/pdf-mode.tmpl.html","
\n
\n \n
\n\n
\n \n \n
\n
\n"); $templateCache.put("widgets-layouts/table.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 \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-common/chart-threshold.tmpl.html","
\n
impac.widget.common.chart-threshold.attach-panel.timeperiod.text
\n
\n
\n \n \n
\n
impac.widget.common.chart-threshold.attach-panel.timeperiod.invalid
\n
\n
\n
\n
\n impac.widget.common.chart-threshold.attach-panel.target.text\n \n \n
\n
\n \n \n \n
\n
\n"); $templateCache.put("widgets-common/confirm-modal.tmpl.html","
\n
\n
\n
\n impac.widget.common.confirm-modal.default.title\n
\n
\n

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

\n

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

\n
\n
\n \n \n
\n\n
\n
\n
\n
\n
\n"); $templateCache.put("widgets-common/currency-conversions.tmpl.html","\n \n\n\n\n\n"); -$templateCache.put("widgets-common/editable-title.tmpl.html","
\n {{ parentWidget.name }}\n
\n\n
\n {{ parentWidget.name }}\n
\n\n\n
\n {{ parentWidget.name }}\n
\n"); $templateCache.put("widgets-common/info-panel.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/top-buttons.tmpl.html","
\n
\n\n \n\n \n\n \n\n \n\n \n
\n
\n"); +$templateCache.put("widgets-common/editable-title.tmpl.html","
\n {{ parentWidget.name }}\n
\n\n
\n {{ parentWidget.name }}\n
\n\n\n
\n {{ parentWidget.name }}\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/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"); @@ -245,16 +245,16 @@ $templateCache.put("widgets/accounts-assets-vs-liabilities.tmpl.html","
\n\n
\n

impac.widget.account_balance.settings.title

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

{{getName()}}

\n
\n {{ getCurrentBalance() | mnoCurrency : getCurrency() : false }}\n
\n
{{getCurrency()}}
\n
\n\n
\n
\n
{{getName()}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-balance-sheet.tmpl.html","
\n\n
\n

impac.widget.account_balance_sheets.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{\'impac.widget.account_balance_sheets.accounts\' | translate}}\n \n
\n
\n
\n
\n {{\'impac.widget.account_balance_sheets.balance\' | translate}}\n \n
\n
\n {{\'impac.widget.account_balance_sheets.balance\' | translate}}\n \n
\n
\n
\n
\n
\n\n
\n \n
\n
\n\n \n
\n
\n \n
\n
\n {{category.label}}\n
\n
\n {{widget.content.summary[category.key].totals[1] | mnoCurrency : widget.content.summary[category.key].currency}}\n
\n
\n {{widget.content.summary[category.key].totals[0] | mnoCurrency : widget.content.summary[category.key].currency}}\n
\n
\n\n \n
\n
\n
\n
\n {{account.name | titleize}}\n
\n
\n {{account.totals[1] | mnoCurrency : account.currency}}\n
\n
\n {{account.totals[0] | mnoCurrency : account.currency}}\n
\n
\n
\n
\n
\n
\n
\n
\n impac.widget.settings.tag-filter.report_filtered\n
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-cash-summary.tmpl.html","
\n\n
\n

impac.widget.account_cash_smry.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n\n
\n\n
\n \n
\n
\n {{ impac.widget.account_cash_smry.cash_flow | translate }}\n \n
\n
\n {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n {{\'impac.widget.account_cash_smry.vs\' | translate}}{{getPrevDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n\n \n
0}\" >\n
\n\n \n
\n
\n \n
\n
\n {{statement.label | titleize}}\n
\n
\n {{getLastValue(statement) | mnoCurrency : statement.currency : false}}\n
\n
\n {{getLastVariance(statement)}}\n
\n\n
\n
\n\n \n
\n
\n
\n
\n {{account.name}}\n
\n
\n {{getLastValue(account) | mnoCurrency : account.currency : false }}\n
\n
\n {{getLastVariance(account)}}\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n

{{(selectedElement.label | titleize) || selectedElement.name}}

\n\n
\n
\n
{{::widget.metadata.hist_parameters.period_translation}}
\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 {{selectedElement.cash_flows[$index] | mnoCurrency : selectedElement.currency }}\n
\n
\n \n
\n
\n {{formatVariance(selectedElement.variances[$index])}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n \n
\n {{selectedElement.cash_flows[$index] | mnoCurrency : selectedElement.currency }}\n
\n \n
\n {{formatVariance(selectedElement.variances[$index])}}\n
\n
\n\n
\n
\n\n
\n impac.widget.account_cash_smry.select.description\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/accounts-class-comparison.tmpl.html","
\n\n
\n

impac.widget.account_class_comp.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
\n \n {{entity}}\n
\n
\n {{getAmount($index)}}\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-comparison.tmpl.html","
\n
\n\n
\n

impac.widget.account_comp.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n
1 && canSelectComparisonMode || isComparisonMode()\">\n
\n
\n \n
\n
\n
impac.widget.account_comp.account.select
\n
\n
\n
\n \n
\n
\n
\n \n
\n
impac.widget.account_comp.account.not_found
\n
\n\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n\n \n
\n
\n
\n \n
\n
\n {{groupedAccount.name}}\n
\n
\n {{formatAmount(groupedAccount)}}\n
\n
\n \n
\n
\n
\n\n \n
\n \n
\n
\n {{account.name}}\n
\n
\n {{formatAmount(account)}}\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-class-comparison.tmpl.html","
\n\n
\n

impac.widget.account_class_comp.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
\n \n {{entity}}\n
\n
\n {{getAmount($index)}}\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-custom-calculation.tmpl.html","
\n\n
\n
\n
\n\n

\n impac.widget.account_cust_calc.title\n

\n\n \n
\n
\n\n
\n
\n {{widget.evaluatedFormulaTranslate}}\n
\n
\n {{widget.legend}}\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n"); $templateCache.put("widgets/accounts-custom-calculation/formula.modal.html","
\n
\n
×
\n

impac.widget.account_cust_calc.formula.title

\n
\n\n
\n
\n
\n
\n \n
    \n
  • {{error}}
  • \n
\n
\n
\n
\n\n
\n
\n
\n
\n\n

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

impac.widget.account_cust_calc.formula.data_retrieved

\n
\n
\n\n
\n
\n
\n
\n {{$index+1}} - {{account.name}}\n
\n
\n {{account.current_balance | mnoCurrency : account.currency}}\n \n
\n
\n
\n\n
\n \n
\n
\n\n
\n

impac.widget.account_cust_calc.formula.type_here

\n \n\n

\n

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

impac.widget.account_det_class.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 {{\'impac.widget.account_det_class.account_classifications\' | translate}}\n \n
\n\n
\n {{\'impac.widget.account_det_class.amounts\' | translate}}\n \n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n {{source.label | titleize}}\n
\n
\n {{source.value | mnoCurrency : source.currency}}\n
\n
\n\n \n
\n
\n
\n
\n {{entry.label | titleize}}\n
\n
\n {{entry.value | mnoCurrency : entry.currency}}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-expense-weight.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-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-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-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"); $templateCache.put("widgets/hr-employee-details.tmpl.html","
\n\n
\n

impac.widget.hr_employee_details.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n
\n
\n
{{getEmployee().job_title || \"-\" }}
\n
\n
\n
\n
{{getEmployee().company || getSingleCompanyName()}}
\n
\n
\n
\n
{{getEmployee().phone || \"-\" }}
\n
\n
\n
\n
{{getEmployee().email || \"-\" }}
\n
\n
\n
\n
{{getEmployee().dob | momentDate: \"hr/employee_details\"  || \"-\" }}
\n
\n
\n
\n
{{getEmployee().gender || \"-\" }}
\n
\n
\n
\n\n
\n \n
\n
\n
\n \n
\n
\n
 0\" ng-repeat=\"salary in salaries\" title=\"{{salary.tooltip}}\">{{ salary.amount | mnoCurrency : salary.currency }} ({{ salary.period }})
\n
-
\n
\n
\n
\n
\n \n
\n
\n
{{ getEmployee().earnings || \'-\' }}
\n
\n
\n
\n
\n
{{formatAddress(getEmployee().address) || \"-\" }}
\n
\n
\n
\n
{{getEmployee().location || \"-\" }}
\n
\n
\n
\n
{{getEmployee().supervisor || \"-\" }}
\n
\n
\n
\n
{{getEmployee().employment_status || \"-\" }}
\n
\n
\n
\n
{{getEmployee().note || \"-\" }}
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/hr-employees-list.tmpl.html","
\n\n
\n

impac.widget.hr_employees_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n {{widget.content.total.employees}} {{\'impac.widget.hr_employees_list.legend.average\' | translate}} (): {{widget.content.total.average_rate | mnoCurrency : widget.content.total.currency}}\n
\n\n
\n
\n
impac.widget.hr_employees_list.label.company
\n
impac.widget.hr_employees_list.label.employee
\n
impac.widget.hr_employees_list.label.title
\n
impac.widget.hr_employees_list.label.phone
\n
impac.widget.hr_employees_list.label.salary
\n
\n
\n
{{employee.company || getSingleCompanyName()}}
\n
{{employee.lastname}} {{employee.firstname}}
\n
{{employee.job_title}}
\n
{{employee.phone}}
\n
{{getEmployeeEarnings(employee)}}
\n
\n
\n
\n\n
\n
\n\n
\n"); @@ -267,16 +267,16 @@ $templateCache.put("widgets/hr-superannuation-accruals.tmpl.html","
\n\n
\n

impac.widget.hr_workforce_summary.settings.title

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

impac.widget.hr_workforce_summary.total_workforce

\n
\n {{getTotalWorkforce() | mnoCurrency : getCurrency()}}\n
\n
\n
\n ({{getNumberOfEmployees()}} {{\'impac.widget.hr_workforce_summary.legend.with\' | translate}})\n
\n
\n\n
\n

{{\'impac.widget.hr_workforce_summary.filter\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{widget.content.summary.filter == \"salary_range\" ? formatSalaryRange(data) : data.label}}\n
\n
\n {{((data.value / widget.content.total.amount)*100).toFixed()}}%\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/hr-timesheets.tmpl.html","
\n\n
\n

impac.widget.hr_timesheets.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n\n \n
\n
\n {{\'impac.widget.hr_timesheets.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.hr_timesheets.to\' | translate}} {{widget.content.dates[widget.content.dates.length - 1] | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n impac.widget.hr_timesheets.total_worked\n
\n
\n {{getEmployeeTimeWorked()}} h\n
\n
\n\n \n
\n
\n
\n
\n impac.widget.hr_timesheets.activities_not_found\n
\n
\n
\n
\n\n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n impac.widget.hr_timesheets.total_off\n
\n
\n {{getEmployeeTimeOff()}} h\n
\n
\n\n\n \n
\n
\n
\n
PTO
\n
0 h
\n
\n
\n
Vacation
\n
0 h
\n
\n
\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/invoices-aged-payables-receivables.tmpl.html","
\n\n
\n

impac.widget.invoices_receivables.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.invoices_receivables.payables_and_receivables\' | translate}}\n \n
\n
\n {{\'impac.widget.invoices_receivables.total\' | translate}}\n \n
\n
\n {{\'impac.widget.invoices_receivables.oldest\' | translate}}\n \n
\n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n impac.widget.invoices_receivables.aged_payables\n
\n
\n {{getTotalSum(payables) | mnoCurrency : payables.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{supplier.name}}\n
\n
\n {{getTotalSum(supplier) | mnoCurrency : supplier.currency}} \n
\n
\n \n {{getOldestInvoice(supplier) | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n\n
\n
\n
\n
\n\n
\n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n impac.widget.invoices_receivables.aged_receivables\n
\n
\n {{getTotalSum(receivables) | mnoCurrency : receivables.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{customer.name}}\n
\n
\n {{getTotalSum(customer) | mnoCurrency : customer.currency}} \n
\n
\n \n {{getOldestInvoice(customer) | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n\n
\n\n
\n\n

{{::period_translation | titleize}} {{\'impac.widget.invoices_receivables.aged_payables_and_receivables\' | translate}}

\n\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

impac.widget.invoices_receivables.your_opening_balance

\n
\n
\n
\n\n
\n\n
\n
Totals
\n
\n\n
\n
\n \n
\n
\n {{getName(element) | titleize}}\n
\n
\n {{getTotalSum(element) | mnoCurrency : element.currency}}\n
\n
\n\n
\n
\n

impac.widget.invoices_receivables.your_opening_balance

\n
\n
\n
\n\n
\n\n
impac.widget.invoices_receivables.select_accounts
\n\n
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/invoices-summary.tmpl.html","
\n\n
\n

impac.widget.invoices_summary.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n {{widget.content.legend}}\n
\n
\n
\n
\n\n
\n"); $templateCache.put("widgets/invoices-list.accessible.tmpl.html","
\n\n
\n

impac.widget.invoices_list.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
{{entityTypeCap}}impac.widget.invoices_list.paidimpac.widget.invoices_list.dueimpac.widget.invoices_list.invoiced
{{entity.name}}{{entity.total_paid | mnoCurrency : entity.currency}}{{entity.total_due | mnoCurrency : entity.currency}}{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n\n
\n"); $templateCache.put("widgets/invoices-list.tmpl.html","
\n\n
\n

impac.widget.invoices_list.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n\n \n\n \n
3\" class=\"row widget-line header\">\n
{{entityTypeCap}}
\n
\n
\n
impac.widget.invoices_list.paid
\n
impac.widget.invoices_list.due
\n
impac.widget.invoices_list.invoiced
\n
\n
\n
\n\n \n
3\" class=\"row widget-line\" ng-repeat=\"entity in widget.content.entities | limitTo:limitEntriesSelected | orderBy:\'name\'\" tooltip-placement=\"bottom\" uib-tooltip-html=\"invoiceTooltips[entity.id]\" tooltip-animation=\"false\" tooltip-append-to-body=\"true\" tooltip-class=\"impac-widgets-tooltip\">\n
{{entity.name}}
\n
\n
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n
\n
\n \n \n
\n
\n\n\n \n\n \n
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_paid\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_due\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_invoiced\' | translate}}
\n
\n\n \n
\n
{{entity.name}}
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n \n \n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/invoices-summary.tmpl.html","
\n\n
\n

impac.widget.invoices_summary.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n {{widget.content.legend}}\n
\n
\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-break-even.tmpl.html","
\n\n
\n

impac.widget.sales_break_even.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
{{\'impac.widget.sales_break_even.from\' | translate}} {{widget.content.period.from | momentDate : \"sales/break_even\"}} {{\'impac.widget.sales_break_even.to\' | translate}} {{widget.content.period.to | momentDate : \"sales/break_even\"}}
\n\n
\n
impac.widget.sales_break_even.title.sales
\n
{{widget.content.sales.to_date | mnoCurrency : widget.content.currency : false}}
\n {{\'impac.widget.sales_break_even.target\' | translate}}: \n {{threshold | mnoCurrency : widget.content.currency : false}}\n \n
\n\n
\n
impac.widget.sales_break_even.title.projection
\n impac.widget.sales_break_even.your_sales\n
{{getVariance() | mnoCurrency : widget.content.currency : false}}
\n \n {{\'impac.widget.sales_break_even.projected_date\' | translate}} {{getProjectedDate() | date : \'d-MM-yy\'}}\n
\n {{\'impac.widget.sales_break_even.opportunities_to_close\' | translate}} {{getOpportunitiesToClose()}}\n
\n
\n
{{widget.content.break_even.eligible_opportunities}} {{\'impac.widget.sales_break_even.eligible_opportunities\' | translate}}
\n\n
\n \n
{{\'impac.widget.sales_break_even.click_to_define\' | translate}}
\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-comparison.tmpl.html","
\n\n
\n

impac.widget.sales_comparison.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
\n {{\'impac.widget.sales_comparison.legend.compare_by\' | translate}}
\n |\n {{\'impac.widget.sales_comparison.legend.see\' | translate}}
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n {{\'impac.widget.sales_comparison.total\' | translate}}\n \n
\n
\n\n
\n
\n\n
\n
\n \n
\n
\n {{statement.name | titleize}}\n
\n
\n {{getTotalForPeriod(statement)}}\n
\n
\n {{getTotalForPeriod(statement) | mnoCurrency : statement.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{sale.name}}\n
\n
\n {{getTotalForPeriod(sale)}}\n
\n
\n \n {{getTotalForPeriod(sale) | mnoCurrency : sale.currency}}\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.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n\n
\n
\n \n
\n
\n {{element.name | titleize}}\n
\n
\n {{getTotalForPeriod(element)}}\n {{getTotalForPeriod(element) | mnoCurrency : element.currency}}\n
\n
\n
\n
\n\n
impac.widget.sales_comparison.select_sales_category
\n\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-aged.tmpl.html","
\n\n
\n

impac.widget.sales_aged.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n
{{\'impac.widget.sales_aged.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_aged.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date}}\n
\n
\n \n
\n
\n {{getTotal($index) | mnoCurrency : widget.content.currency}}\n
\n
\n {{getTotal($index)}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date}}\n
\n \n
\n {{getTotal($index) | mnoCurrency : widget.content.currency}}\n
\n
\n {{getTotal($index)}}\n
\n
\n\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-customer-details.tmpl.html","
\n\n
\n

impac.widget.sales_customer_details.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n
\n
\n
{{selectedCustomer.email || \'-\'}}
\n
\n
\n
\n
{{selectedCustomer.phone || \'-\'}}
\n
\n
\n
\n
{{selectedCustomer.website || \'-\'}}
\n
\n
\n
\n
{{selectedCustomer.contact || \'-\'}}
\n
\n
\n
\n
{{selectedCustomer.city || \'-\'}}
\n
\n
\n
\n
{{selectedCustomer.country || \'-\'}}
\n
\n
\n
\n\n
\n
\n
\n
\n
{{formatAddress(selectedCustomer.full_address) || \'-\'}}
\n
\n
\n
{{\'impac.widget.sales_customer_details.from\' | translate}} {{getFromDate() | date : \'d MMM yyyy\'}} {{\'impac.widget.sales_customer_details.to\' | translate}} {{getToDate() | date : \'d MMM yyyy\'}}:
\n
\n
\n
\n
\n \n
{{selectedCustomer.total_invoiced | mnoCurrency : selectedCustomer.currency}}
\n
\n
\n
\n
\n
\n \n
{{selectedCustomer.total_paid | mnoCurrency : selectedCustomer.currency}}
\n
\n
\n
\n
\n
\n \n
{{selectedCustomer.total_due | mnoCurrency : selectedCustomer.currency}}
\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-cycle.tmpl.html","
\n\n
\n

impac.widget.sales_cycle.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n impac.widget.sales_cycle.your_sales_cycle\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/sales-break-even.tmpl.html","
\n\n
\n

impac.widget.sales_break_even.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
{{\'impac.widget.sales_break_even.from\' | translate}} {{widget.content.period.from | momentDate : \"sales/break_even\"}} {{\'impac.widget.sales_break_even.to\' | translate}} {{widget.content.period.to | momentDate : \"sales/break_even\"}}
\n\n
\n
impac.widget.sales_break_even.title.sales
\n
{{widget.content.sales.to_date | mnoCurrency : widget.content.currency : false}}
\n {{\'impac.widget.sales_break_even.target\' | translate}}: \n {{threshold | mnoCurrency : widget.content.currency : false}}\n \n
\n\n
\n
impac.widget.sales_break_even.title.projection
\n impac.widget.sales_break_even.your_sales\n
{{getVariance() | mnoCurrency : widget.content.currency : false}}
\n \n {{\'impac.widget.sales_break_even.projected_date\' | translate}} {{getProjectedDate() | date : \'d-MM-yy\'}}\n
\n {{\'impac.widget.sales_break_even.opportunities_to_close\' | translate}} {{getOpportunitiesToClose()}}\n
\n
\n
{{widget.content.break_even.eligible_opportunities}} {{\'impac.widget.sales_break_even.eligible_opportunities\' | translate}}
\n\n
\n \n
{{\'impac.widget.sales_break_even.click_to_define\' | translate}}
\n
\n
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/sales-comparison.tmpl.html","
\n\n
\n

impac.widget.sales_comparison.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
\n {{\'impac.widget.sales_comparison.legend.compare_by\' | translate}}
\n |\n {{\'impac.widget.sales_comparison.legend.see\' | translate}}
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n {{\'impac.widget.sales_comparison.total\' | translate}}\n \n
\n
\n\n
\n
\n\n
\n
\n \n
\n
\n {{statement.name | titleize}}\n
\n
\n {{getTotalForPeriod(statement)}}\n
\n
\n {{getTotalForPeriod(statement) | mnoCurrency : statement.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{sale.name}}\n
\n
\n {{getTotalForPeriod(sale)}}\n
\n
\n \n {{getTotalForPeriod(sale) | mnoCurrency : sale.currency}}\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.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n\n
\n
\n \n
\n
\n {{element.name | titleize}}\n
\n
\n {{getTotalForPeriod(element)}}\n {{getTotalForPeriod(element) | mnoCurrency : element.currency}}\n
\n
\n
\n
\n\n
impac.widget.sales_comparison.select_sales_category
\n\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-forecast.tmpl.html","
\n\n
\n

impac.widget.sales_forecast.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_forecast.projection_on
\n
\n\n
\n
\n\n
0}\" ng-click=\"collapsed = !collapsed\" >\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n {{widget.content.totals.slice(6)[$index] | mnoCurrency : widget.content.currency}}\n
\n
\n\n
\n
\n
\n
\n {{opp.name}}\n
\n
\n {{getOpportunityAmount(opp) | mnoCurrency : getOpportunityCurrency(opp)}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-growth.tmpl.html","
\n\n
\n

impac.widget.sales_growth.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
{{getSelectedProduct().displayName}}
\n
{{getCurrentValue() | mnoCurrency : getSelectedProduct().currency}}
\n
{{getCurrentValue()}}
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/sales-cycle.tmpl.html","
\n\n
\n

impac.widget.sales_cycle.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n impac.widget.sales_cycle.your_sales_cycle\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-leads-funnel.tmpl.html","
\n\n
\n

impac.widget.sales_leads_funnel.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
{{\'impac.widget.sales_leads_funnel.legend.your_leads\' | translate}} {{widget.content.from | momentDate : \"sales/leads_funnel\"}} {{\'impac.widget.sales_leads_funnel.legend.to\' | translate}} {{widget.content.to | momentDate : \"sales/leads_funnel\"}}
\n\n
\n
\n
{{elem.number}}
\n
{{elem.status | titleize}}
\n
\n
\n
\n\n
\n\n
impac.widget.sales_leads_funnel.select_a_status
\n\n
\n\n
\n
\n {{lead.first_name | titleize}} {{lead.last_name | titleize}}\n ({{lead.organization}})\n
\n
\n {{lead.lead_status | titleize}}\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-leads-list.tmpl.html","
\n\n
\n

impac.widget.sales_leads_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n {{lead.first_name | titleize}} {{lead.last_name | titleize}}\n ({{lead.organization}})\n
\n
\n {{lead.lead_status | titleize}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-list.tmpl.html","
\n\n
\n

impac.widget.sales_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n {{\'impac.widget.sales_list.products\' | translate}}\n \n
\n
\n \n
\n
\n {{\'impac.widget.sales_list.total\' | translate}}\n \n
\n
\n
\n\n
\n\n
\n
\n\n
\n
\n \n
\n
\n {{company.name | titleize}}\n
\n
\n {{company.total}}\n
\n
\n {{company.total | mnoCurrency : company.currency}}\n
\n
\n\n
\n
\n
\n
\n {{product.name | titleize}}\n
\n
\n {{product.total}}\n
\n
\n \n {{product.total | mnoCurrency : product.currency}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n"); @@ -284,8 +284,8 @@ $templateCache.put("widgets/sales-margin.tmpl.html","
\n $templateCache.put("widgets/sales-net-sales.tmpl.html","
\n\n
\n

impac.widget.sales_net_sales.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
impac.widget.sales_net_sales.title.sales
\n
\n {{ getValue(\'sales\') }}\n
\n
\n
\n {{ sign(\'minus\') }}\n
\n
\n
impac.widget.sales_net_sales.title.returns
\n
\n {{ getValue(\'returns\') }}\n
\n
\n
\n {{ sign(\'equal\') }}\n
\n
\n
impac.widget.sales_net_sales.title.net_result
\n
\n {{ getValue(\'net_result\') }}\n
\n
\n
\n\n
\n\n
\n
\n"); $templateCache.put("widgets/sales-new-vs-existing-customers.tmpl.html","
\n\n
\n

impac.widget.sales_new_vs_existing.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
impac.widget.sales_new_vs_existing.new_customers
\n
{{getValue(\'new\')}}
\n
\n
\n
impac.widget.sales_new_vs_existing.existing_customers
\n
{{getValue(\'existing\')}}
\n
\n
\n
impac.widget.sales_new_vs_existing.total
\n
{{getValue(\'total\')}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-number-of-leads.tmpl.html","
\n\n
\n

impac.widget.sales_number_of_leads.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_number_of_leads.leads_for_this\' | translate}} \n
\n\n
\n
\n
{{carac | titleize}}
\n
\n {{formatNumberOfLeads(carac).variation}}\n {{formatNumberOfLeads(carac).nominal}}\n
\n
\n
\n\n
\n {{widget.content.number_of_leads.total[1]}} {{\'impac.widget.sales_number_of_leads.leads_in_total\' | translate}}\n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-opportunities-funnel.tmpl.html","
\n\n
\n

impac.widget.sales_funnel.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
impac.widget.sales_funnel.legend
\n\n
\n
\n
{{elem.number}}
\n
{{elem.status | titleize}}
\n
\n
\n
\n\n
\n\n
impac.widget.sales_funnel.select_a_sales
\n\n
\n\n \n
\n
\n {{\'impac.widget.sales_funnel.assignees_opportunities\' | translate}}\n \n
\n
\n {{\'impac.widget.sales_funnel.potential_per_assignee\' | translate}}\n \n
\n
\n\n
\n
\n\n \n
\n
\n \n
\n
\n {{group.assigneeName | titleize}}\n
\n
\n {{getTotal(group.opps)}}\n
\n
\n\n \n
\n
\n
\n
\n {{opp.name | titleize}}\n
\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-performance.tmpl.html","
\n\n \n
\n

impac.widget.sales_performance.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 {{\'impac.widget.sales_performance.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_performance.to\' | translate}} {{widget.content.dates[widget.content.dates.length - 1] | momentDate : widget.metadata.hist_parameters.period}}\n
\n
impac.widget.sales_performance.win_ratio
\n
impac.widget.sales_performance.total_won
\n
\n\n
\n
\n
\n
{{assignee.name | titleize}}
\n
{{assignee.win_ratio}} %
\n
{{assignee.total_won | mnoCurrency: widget.metadata.currency}}
\n
\n
\n
\n
\n
\n
\n\n
\n\n
0\" class=\"no-element\" translate>impac.widget.sales_performance.select_an_employee
\n\n
impac.widget.sales_performance.pick_the_status
\n\n
0 && !no_sales_stages_selected()\">\n
\n
\n
{{\'impac.widget.sales_performance.total_won_with_colon\' | translate}} {{getTotalWon() | mnoCurrency : widget.metadata.currency}}
\n
\n\n
\n
\n
\n
\n \n {{selectedElement.name | titleize}}\n
\n
{{selectedElement.total_won | mnoCurrency: widget.metadata.currency}}
\n
\n\n
\n
\n
\n
\n
\n impac.widget.sales_performance.forecast\n
\n
\n {{selectedElement.opps.forecast.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{opp.probability | number :0 }} %
\n
{{getForecastCloseDate(opp)}}
\n
{{(opp.amount.amount) | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n {{\'impac.widget.sales_performance.closed_won\' | translate}}\n
\n
\n {{selectedElement.opps.won.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{getCloseDate(opp)}}
\n
{{opp.amount.amount | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n impac.widget.sales_performance.closed_lost\n
\n
\n {{selectedElement.opps.lost.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{getCloseDate(opp)}}
\n
{{opp.amount.amount | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n"); +$templateCache.put("widgets/sales-opportunities-funnel.tmpl.html","
\n\n
\n

impac.widget.sales_funnel.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
impac.widget.sales_funnel.legend
\n\n
\n
\n
{{elem.number}}
\n
{{elem.status | titleize}}
\n
\n
\n
\n\n
\n\n
impac.widget.sales_funnel.select_a_sales
\n\n
\n\n \n
\n
\n {{\'impac.widget.sales_funnel.assignees_opportunities\' | translate}}\n \n
\n
\n {{\'impac.widget.sales_funnel.potential_per_assignee\' | translate}}\n \n
\n
\n\n
\n
\n\n \n
\n
\n \n
\n
\n {{group.assigneeName | titleize}}\n
\n
\n {{getTotal(group.opps)}}\n
\n
\n\n \n
\n
\n
\n
\n {{opp.name | titleize}}\n
\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-segmented-turnover.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"); @@ -304,8 +304,8 @@ $templateCache.put("widgets-settings/param-selector-classic.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/source-selector.tmpl.html","
\n
impac.widget.settings.source-selector.select_source
\n\n
\n
\n {{app.label}}\n \n
\n
\n
\n"); $templateCache.put("widgets-settings/payroll.tmpl.html","
\n
impac.widget.settings.payroll.title
\n\n
\n
\n \n impac.widget.account_cash_projection.payroll.aggregate\n \n \n\n \n
\n
\n \n impac.widget.account_cash_projection.payroll.time_sheet_modifier\n \n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/source-selector.tmpl.html","
\n
impac.widget.settings.source-selector.select_source
\n\n
\n
\n {{app.label}}\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"); @@ -373,7 +373,7 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
1) { - number = "" + numberOfPeriods; - word += 's'; - } - return [number, word].join(' '); - }; - - /* - * Determines the start and end dates of a selected time period, based on the metadata passed. - * @param {Object} histParams - Historical data - * @param {string} histParams.from - The "from" Date - * @param {string} histParams.to - The "to" Date - * @param {string} histParams.time_range - Shorthand of an amount of time periods. - * @returns {Object} Object containing formatted "to" and "from" dates. - */ - this.selectedTimeRange = function(histParams) { - var fromDate, n, period, resultHash, toDate, word; - toDate = moment().format('YYYY-MM-DD'); - fromDate = moment().startOf('year').format('YYYY-MM-DD'); - if (histParams) { - if (histParams.to) { - toDate = histParams.to; - } - if (histParams.from) { - fromDate = histParams.from; - } else if (histParams.time_range) { - n = histParams.time_range.match(/\d/g) && parseInt(histParams.time_range.match(/\d/g).join('')); - period = histParams.time_range.match(/[a-z]/) && histParams.time_range.match(/[a-z]/)[0]; - word = _self.getPeriodWord(period); - if (period === "w") { - fromDate = moment().subtract(n, word).startOf('isoweek').format('YYYY-MM-DD'); - } else { - fromDate = moment().subtract(n, word).startOf(word).format('YYYY-MM-DD'); - } - } - } - resultHash = { - from: fromDate, - to: toDate - }; - return resultHash; - }; - this.financialYearDates = function(fYearEndMonth) { - var end, resultHash, start, startYear; - startYear = moment().year() - 1; - if (moment().month() >= fYearEndMonth) { - startYear = moment().year(); - } - start = moment(startYear + "-" + (fYearEndMonth + 1) + "-01", 'YYYY-MM-DD'); - end = angular.copy(start).add(1, 'year').subtract(1, 'day'); - resultHash = { - start: start.format('YYYY-MM-DD'), - end: end.format('YYYY-MM-DD') - }; - return resultHash; - }; - this.yearDates = function() { - return { - from: moment().startOf('year').format('YYYY-MM-DD'), - to: moment().format('YYYY-MM-DD') - }; - }; - this.processRailsError = function(error) { - var messages; - messages = []; - if (error.status && error.status === 401) { - messages.push("Sorry! You are not authorized to perform this action"); - } else { - if (error.data && error.data !== " ") { - if (angular.isArray(error.data)) { - _.each(error.data, function(errorMessage) { - var capitalizedError; - capitalizedError = errorMessage.charAt(0).toUpperCase() + errorMessage.slice(1); - return messages.push("" + capitalizedError); - }); - } else if (angular.isObject(error.data)) { - _.each(error.data, function(attrErrors, attribute) { - var capitalizedAttr; - capitalizedAttr = (attribute.charAt(0).toUpperCase() + attribute.slice(1)).replace('_', ' '); - if (angular.isArray(attrErrors)) { - return _.each(attrErrors, function(attrError) { - if (capitalizedAttr.match(/base/i)) { - return messages.push(attrError); - } else { - return messages.push(capitalizedAttr + " " + attrError); - } - }); - } else { - if (capitalizedAttr.match(/base/i)) { - return messages.push(attrErrors); - } else { - return messages.push(capitalizedAttr + " " + attrErrors); - } - } - }); - } else if (angular.isString(error.data)) { - messages.push(error.data); - } else { - messages.push("Potentially a system or communication error. Please retry later."); - } - } else { - messages.push("Potentially a system or communication error. Please retry later."); - } - } - return messages; - }; - this.getRandomInteger = function(min, max) { - return Math.random() * (max - min) + min; - }; - }]); - -}).call(this); - -(function() { - var 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; }; - - angular.module('impac.services.widgets', []).service('ImpacWidgetsSvc', ["$q", "$http", "$log", "$timeout", "ImpacRoutes", "ImpacMainSvc", "ImpacDashboardsSvc", "ImpacDeveloper", "ImpacEvents", "ImpacTheming", "IMPAC_EVENTS", function($q, $http, $log, $timeout, ImpacRoutes, ImpacMainSvc, ImpacDashboardsSvc, ImpacDeveloper, ImpacEvents, ImpacTheming, IMPAC_EVENTS) { - var _self, getConfig, initWidget, isWidgetInCurrentDashboard, paramsForWidget; + var 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; }; + + angular.module('impac.services.widgets', []).service('ImpacWidgetsSvc', ["$q", "$http", "$log", "$timeout", "ImpacRoutes", "ImpacMainSvc", "ImpacDashboardsSvc", "ImpacDeveloper", "ImpacEvents", "ImpacTheming", "IMPAC_EVENTS", function($q, $http, $log, $timeout, ImpacRoutes, ImpacMainSvc, ImpacDashboardsSvc, ImpacDeveloper, ImpacEvents, ImpacTheming, IMPAC_EVENTS) { + var _self, getConfig, initWidget, isWidgetInCurrentDashboard, paramsForWidget; _self = this; this.getSsoSessionId = ImpacMainSvc.getSsoSessionId; ImpacEvents.registerCb(IMPAC_EVENTS.kpiTargetAlert, function(notification) { @@ -5383,140 +5205,442 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
1) { + number = "" + numberOfPeriods; + word += 's'; + } + return [number, word].join(' '); + }; + + /* + * Determines the start and end dates of a selected time period, based on the metadata passed. + * @param {Object} histParams - Historical data + * @param {string} histParams.from - The "from" Date + * @param {string} histParams.to - The "to" Date + * @param {string} histParams.time_range - Shorthand of an amount of time periods. + * @returns {Object} Object containing formatted "to" and "from" dates. + */ + this.selectedTimeRange = function(histParams) { + var fromDate, n, period, resultHash, toDate, word; + toDate = moment().format('YYYY-MM-DD'); + fromDate = moment().startOf('year').format('YYYY-MM-DD'); + if (histParams) { + if (histParams.to) { + toDate = histParams.to; } - return results; - }; - ctrl.formatDates = function(trx) { - trx.trxDateUTC = moment.utc(trx.transaction_date).format('DD MMM YYYY'); - trx.dueDateUTC = moment.utc(trx.due_date).format('DD MMM YYYY'); - trx.expectedPaymentDateUTC = moment.utc(trx.expected_payment_date).format('DD MMM YYYY'); - trx.showReset = trx.due_date !== trx.expected_payment_date; - return trx; - }; - ctrl.changeResourcesType = function() { - return ctrl.onChangeResources({ - resourcesType: ctrl.resourcesType - }).then(function() { - return ctrl.$onInit(); - }); + if (histParams.from) { + fromDate = histParams.from; + } else if (histParams.time_range) { + n = histParams.time_range.match(/\d/g) && parseInt(histParams.time_range.match(/\d/g).join('')); + period = histParams.time_range.match(/[a-z]/) && histParams.time_range.match(/[a-z]/)[0]; + word = _self.getPeriodWord(period); + if (period === "w") { + fromDate = moment().subtract(n, word).startOf('isoweek').format('YYYY-MM-DD'); + } else { + fromDate = moment().subtract(n, word).startOf(word).format('YYYY-MM-DD'); + } + } + } + resultHash = { + from: fromDate, + to: toDate }; - ctrl.changePage = function() { - return ctrl.onPageChanged({ - page: ctrl.currentPage - }).then(function() { - return ctrl.formatTransactions(); - }); + return resultHash; + }; + this.financialYearDates = function(fYearEndMonth) { + var end, resultHash, start, startYear; + startYear = moment().year() - 1; + if (moment().month() >= fYearEndMonth) { + startYear = moment().year(); + } + start = moment(startYear + "-" + (fYearEndMonth + 1) + "-01", 'YYYY-MM-DD'); + end = angular.copy(start).add(1, 'year').subtract(1, 'day'); + resultHash = { + start: start.format('YYYY-MM-DD'), + end: end.format('YYYY-MM-DD') }; - ctrl.showPaginationControl = function() { - return ctrl.totalRecords >= ctrl.itemsPerPage; + return resultHash; + }; + this.yearDates = function() { + return { + from: moment().startOf('year').format('YYYY-MM-DD'), + to: moment().format('YYYY-MM-DD') }; - return ctrl; - } - }); + }; + this.processRailsError = function(error) { + var messages; + messages = []; + if (error.status && error.status === 401) { + messages.push("Sorry! You are not authorized to perform this action"); + } else { + if (error.data && error.data !== " ") { + if (angular.isArray(error.data)) { + _.each(error.data, function(errorMessage) { + var capitalizedError; + capitalizedError = errorMessage.charAt(0).toUpperCase() + errorMessage.slice(1); + return messages.push("" + capitalizedError); + }); + } else if (angular.isObject(error.data)) { + _.each(error.data, function(attrErrors, attribute) { + var capitalizedAttr; + capitalizedAttr = (attribute.charAt(0).toUpperCase() + attribute.slice(1)).replace('_', ' '); + if (angular.isArray(attrErrors)) { + return _.each(attrErrors, function(attrError) { + if (capitalizedAttr.match(/base/i)) { + return messages.push(attrError); + } else { + return messages.push(capitalizedAttr + " " + attrError); + } + }); + } else { + if (capitalizedAttr.match(/base/i)) { + return messages.push(attrErrors); + } else { + return messages.push(capitalizedAttr + " " + attrErrors); + } + } + }); + } else if (angular.isString(error.data)) { + messages.push(error.data); + } else { + messages.push("Potentially a system or communication error. Please retry later."); + } + } else { + messages.push("Potentially a system or communication error. Please retry later."); + } + } + return messages; + }; + this.getRandomInteger = function(min, max) { + return Math.random() * (max - min) + min; + }; + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.common.transactions-list', []); + module = angular.module('impac.components.common.data-not-found', []); - module.component('transactionsList', { - templateUrl: 'common/transactions-list.tmpl.html', + module.directive('commonDataNotFound', ["$templateCache", "$location", "ImpacTheming", function($templateCache, $location, ImpacTheming) { + return { + restrict: 'A', + scope: { + needsCustomMessage: '<' + }, + link: function(scope, element) { + var settings; + settings = ImpacTheming.get().dataNotFoundConfig; + scope.content = settings.content; + scope.designerMode = ImpacTheming.get().dhbConfig.designerMode.enabled; + scope.messageVisible = true; + scope.hide = function() { + return scope.messageVisible = false; + }; + return scope.goToMarketplace = function() { + if (settings.linkUrlCallback != null) { + return settings.linkUrlCallback(); + } else { + return $location.url(settings.linkUrl); + } + }; + }, + template: $templateCache.get('common/data-not-found.tmpl.html') + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.common.transactions-add', []).constant('SCHEDULABLE_RULES', Object.freeze([ + { + name: 'Day', + value: 'DailyRule' + }, { + name: 'Week', + value: 'WeeklyRule' + }, { + name: 'Month', + value: 'MonthlyRule' + }, { + name: 'Year', + value: 'YearlyRule' + } + ])); + + module.component('transactionsAdd', { + templateUrl: 'common/transactions-add.tmpl.html', bindings: { onHide: '&', - onPageChanged: '&', - onUpdateExpectedDate: '&', - onChangeResources: '&', - onChangeOverdueFilter: '&', - onDeleteTransaction: '&', - onChangeQuery: '&', - onUpdateSchedulableTransaction: '&?', - onDeleteChildrenTransactions: '&?', - onCurrencyChange: '&', - metadata: '<', - transactions: '<', - hideOverdueFilter: ' 0)) { + ctrl.trx.title = ctrl.trx.transaction_number; + } + m = moment.utc(ctrl.trx.expected_payment_date); + ctrl.trx.datePicker = { + opened: false, + date: new Date(m.year(), m.month(), m.date()), + toggle: function() { + return this.opened = !this.opened; + } + }; + ctrl.schedulable = { + recurring: false, + interval: 4, + validateInterval: function() { + if (!((this.interval != null) || this.interval > 0)) { + return this.interval = 1; + } + }, + rule: ctrl.schedulableRules.find(function(rule) { + return rule.value === 'WeeklyRule'; + }), + endType: 'occurrencies', + occurrencies: 12, + rules: ctrl.schedulableRules, + datePicker: { + opened: false, + date: new Date(), + options: { + minDate: new Date() + }, + toggle: function() { + return this.opened = !this.opened; + } + } + }; + if (!ctrl.editable) { + ctrl.schedulable.recurring = true; + } + return ctrl.tempDate = moment().add(10, 'weeks').toDate(); + }; + ctrl.isValid = function() { + return !_.isEmpty(ctrl.trx.title) && !isNaN(Number(ctrl.trx.amount)) && Number(ctrl.trx.amount) !== 0 && ctrl.trx.contact; + }; + ctrl.createTransaction = function() { + ctrl.onHide(); + ctrl.trx = ctrl.includeSchedulable(ctrl.trx); + return ctrl.onCreateTransaction({ + trx: ctrl.trx, + resourcesType: ctrl.resourcesType + }); + }; + ctrl.includeSchedulable = function(trx) { + trx.recurring = ctrl.schedulable.recurring; + if (!trx.recurring) { + return trx; + } + trx.recurring_pattern = { + rule_type: ctrl.schedulable.rule.value, + interval: ctrl.schedulable.interval, + occurrences: ctrl.schedulable.occurrencies + }; + if (ctrl.schedulable.endType === 'endDate') { + trx.recurring_end_date = ctrl.schedulable.datePicker.date; + } + return trx; + }; + ctrl.range = function(start, end) { + var i, results; + start = parseInt(start); + end = parseInt(end); + return (function() { + results = []; + for (var i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--){ results.push(i); } + return results; + }).apply(this); + }; + return ctrl; + }] + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.common.duplicate-transactions-list', []); + + module.component('duplicateTransactionsList', { + templateUrl: 'common/duplicate-transactions-list.tmpl.html', + bindings: { + onHide: '&', + onPageChanged: '&', + onConfirmDuplication: '&', + onChangeResources: '&', + transactions: '<', + currency: '<', + resourcesType: '<' + }, + controller: function() { + var ctrl; + ctrl = this; + ctrl.$onInit = function() { + ctrl.currentPage = 1; + ctrl.itemsPerPage = 30; + return ctrl.formatTransactions(); + }; + ctrl.formatTransactions = function() { + var dupTrx, i, len, ref, results; + ref = ctrl.transactions; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + dupTrx = ref[i]; + dupTrx = ctrl.formatDates(dupTrx); + dupTrx.reconciliation_target = dupTrx.reconciliation_target.data.attributes; + results.push(dupTrx.reconciliation_target = ctrl.formatDates(dupTrx.reconciliation_target)); + } + return results; + }; + ctrl.formatDates = function(trx) { + trx.trxDateUTC = moment.utc(trx.transaction_date).format('DD MMM YYYY'); + trx.dueDateUTC = moment.utc(trx.due_date).format('DD MMM YYYY'); + trx.expectedPaymentDateUTC = moment.utc(trx.expected_payment_date).format('DD MMM YYYY'); + trx.showReset = trx.due_date !== trx.expected_payment_date; + return trx; + }; + ctrl.changeResourcesType = function() { + return ctrl.onChangeResources({ + resourcesType: ctrl.resourcesType + }).then(function() { + return ctrl.$onInit(); + }); + }; + ctrl.changePage = function() { + return ctrl.onPageChanged({ + page: ctrl.currentPage + }).then(function() { + return ctrl.formatTransactions(); + }); + }; + ctrl.showPaginationControl = function() { + return ctrl.totalRecords >= ctrl.itemsPerPage; + }; + return ctrl; + } + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.common.transactions-list', []); + + module.component('transactionsList', { + templateUrl: 'common/transactions-list.tmpl.html', + bindings: { + onHide: '&', + onPageChanged: '&', + onUpdateExpectedDate: '&', + onChangeResources: '&', + onChangeOverdueFilter: '&', + onDeleteTransaction: '&', + onChangeQuery: '&', + onUpdateSchedulableTransaction: '&?', + onDeleteChildrenTransactions: '&?', + onCurrencyChange: '&', + metadata: '<', + transactions: '<', + hideOverdueFilter: ' 0)) { - ctrl.trx.title = ctrl.trx.transaction_number; - } - m = moment.utc(ctrl.trx.expected_payment_date); - ctrl.trx.datePicker = { - opened: false, - date: new Date(m.year(), m.month(), m.date()), - toggle: function() { - return this.opened = !this.opened; - } - }; - ctrl.schedulable = { - recurring: false, - interval: 4, - validateInterval: function() { - if (!((this.interval != null) || this.interval > 0)) { - return this.interval = 1; - } - }, - rule: ctrl.schedulableRules.find(function(rule) { - return rule.value === 'WeeklyRule'; - }), - endType: 'occurrencies', - occurrencies: 12, - rules: ctrl.schedulableRules, - datePicker: { - opened: false, - date: new Date(), - options: { - minDate: new Date() - }, - toggle: function() { - return this.opened = !this.opened; - } - } }; - if (!ctrl.editable) { - ctrl.schedulable.recurring = true; - } - return ctrl.tempDate = moment().add(10, 'weeks').toDate(); - }; - ctrl.isValid = function() { - return !_.isEmpty(ctrl.trx.title) && !isNaN(Number(ctrl.trx.amount)) && Number(ctrl.trx.amount) !== 0 && ctrl.trx.contact; - }; - ctrl.createTransaction = function() { - ctrl.onHide(); - ctrl.trx = ctrl.includeSchedulable(ctrl.trx); - return ctrl.onCreateTransaction({ - trx: ctrl.trx, - resourcesType: ctrl.resourcesType - }); - }; - ctrl.includeSchedulable = function(trx) { - trx.recurring = ctrl.schedulable.recurring; - if (!trx.recurring) { - return trx; - } - trx.recurring_pattern = { - rule_type: ctrl.schedulable.rule.value, - interval: ctrl.schedulable.interval, - occurrences: ctrl.schedulable.occurrencies - }; - if (ctrl.schedulable.endType === 'endDate') { - trx.recurring_end_date = ctrl.schedulable.datePicker.date; - } - return trx; - }; - ctrl.range = function(start, end) { - var i, results; - start = parseInt(start); - end = parseInt(end); - return (function() { - results = []; - for (var i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--){ results.push(i); } - return results; - }).apply(this); - }; - return ctrl; - }] - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.common.trends-list', []); - - module.component('trendsList', { - templateUrl: 'common/trends-list.tmpl.html', - bindings: { - onHide: '&', - onPageChanged: '&', - onDelete: '&', - onUpdateTrend: '&', - groups: '<', - totalRecords: '<' - }, - controller: function() { - var ctrl; - ctrl = this; - ctrl.$onInit = function() { - var group, i, j, len, len1, ref, ref1, trend; - ctrl.startDateOptions = { - minDate: new Date() - }; - ctrl.lastDateOptions = { - minDate: new Date() - }; - ctrl.currentPage = 1; - ref = ctrl.groups; - for (i = 0, len = ref.length; i < len; i++) { - group = ref[i]; - group.expanded = false; - ref1 = group.trends; - for (j = 0, len1 = ref1.length; j < len1; j++) { - trend = ref1[j]; - trend.editMode = false; - ctrl.setDatePickers(trend); - } - } - return ctrl.originalGroups = _.map(ctrl.groups, _.cloneDeep); - }; - ctrl.setDatePickers = function(trend) { - var m; - m = moment.utc(trend.last_apply_date); - trend.untilDatePicker = { - opened: false, - date: m.toDate(), - toggle: function() { - if (trend.editMode) { - return this.opened = !this.opened; - } - } - }; - m = moment.utc(trend.start_date); - return trend.startDatePicker = { - opened: false, - date: m.toDate(), - toggle: function() { - if (trend.editMode) { - return this.opened = !this.opened; - } - } - }; - }; - ctrl.updateStartDate = function(trend) { - return ctrl.lastDateOptions.minDate = trend.startDatePicker.date; - }; - ctrl.deleteModal = { - entity: null, - display: false, - show: function(hash) { - ctrl.deletingGroup = hash.hasOwnProperty("group"); - this.entity = ctrl.deletingGroup ? hash["group"] : hash["trend"]; - return this.display = true; - }, - cancel: function() { - this.entity = null; - return this.display = false; - }, - "delete": function() { - var trendGroup; - if (ctrl.deletingGroup) { - ctrl.onDelete({ - entityId: this.entity.id, - resource: "trends_groups" - }); - ctrl.groups.splice(_.findIndex(ctrl.groups, { - id: this.entity.id - }), 1); - } else { - ctrl.onDelete({ - entityId: this.entity.id, - resource: "trends" - }); - trendGroup = _.find(ctrl.groups, _.flow(_.property('trends'), _.partialRight(_.some, { - id: this.entity.id - }))); - trendGroup.trends.splice(_.findIndex(trendGroup.trends, { - id: this.entity.id - }), 1); - } - ctrl.originalGroups = _.map(ctrl.groups, _.cloneDeep); - return this.cancel(); - } - }; - ctrl.updateTrend = function(trend) { - trend.last_apply_date = trend.untilDatePicker.date; - trend.start_date = trend.startDatePicker.date; - ctrl.onUpdateTrend({ - trend: _.omit(trend, 'startDatePicker', 'untilDatePicker', 'editMode') - }); - ctrl.originalGroups = _.map(ctrl.groups, _.cloneDeep); - return trend.editMode = false; - }; - ctrl.cancelEdit = function(trendId) { - var trend, trendGroup; - trendGroup = _.find(ctrl.originalGroups, _.flow(_.property('trends'), _.partialRight(_.some, { - id: trendId - }))); - trendGroup.expanded = true; - trend = _.find(trendGroup.trends, 'id', trendId); - trend.editMode = false; - ctrl.setDatePickers(trend); - ctrl.groups.splice(_.findIndex(ctrl.groups, { - id: trendGroup.id - }), 1, trendGroup); - return ctrl.originalGroups = _.map(ctrl.groups, _.cloneDeep); - }; - ctrl.formatDate = function(date, trend) { - if (!date) { - if (!trend.period) { - date = trend.start_date; - } else { - return 'forever'; - } - } - return moment.utc(date).format("DD-MM-YYYY"); - }; - return ctrl; - } - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.dashboard-settings.currency', []); - - module.directive('dashboardSettingCurrency', ["$templateCache", "$log", "ImpacMainSvc", "ImpacDashboardsSvc", "ImpacWidgetsSvc", "ImpacKpisSvc", "ImpacTheming", "toastr", function($templateCache, $log, ImpacMainSvc, ImpacDashboardsSvc, ImpacWidgetsSvc, ImpacKpisSvc, ImpacTheming, toastr) { - return { - restrict: 'A', - scope: { - currency: '=' - }, - link: function(scope, element, attrs) { - var init; - scope.locked = ImpacTheming.get().dhbSettings.currency.locked; - init = function(dhb) { - scope.currentDhb = dhb; - return scope.data = { - currency: dhb.currency, - savedCurrency: dhb.currency - }; - }; - ImpacDashboardsSvc.dashboardChanged().then(null, null, function(newDhb) { - return init(newDhb); + ImpacDashboardsSvc.dashboardChanged().then(null, null, function(newDhb) { + return init(newDhb); }); ImpacMainSvc.load().then(function(mainConfig) { scope.currencies = mainConfig.currencies; @@ -6534,44 +6534,182 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0; - }; - $scope.isCsvExportable = function() { - var template; - template = _.find(ImpacDashboardsSvc.getWidgetsTemplates(), { - endpoint: w.endpoint - }); - return _.get(template, 'metadata.bolt_path'); - }; - return $scope.exportCSV = function() { - return ImpacWidgetsSvc.showAsCSV(w).then(function(response) { - var link; - link = document.createElement('a'); - link.href = 'data:attachment/csv;charset=utf-8,' + encodeURI(response); - link.download = w.endpoint + '.csv'; - link.style.display = 'none'; - return link.click(); - }); - }; - }]); + module = angular.module('impac.components.widgets-common.info-panel', []); - module.directive('commonTopButtons', ["$templateCache", function($templateCache) { + module.directive('commonInfoPanel', ["$templateCache", "ImpacWidgetsTemplates", function($templateCache, ImpacWidgetsTemplates) { return { restrict: 'A', scope: { parentWidget: '=', - onRefresh: '=', - onToggleInfoPanel: '&', - onToggleDeleteWidget: '&', - userAccesses: '=' + onClose: '&' }, - template: $templateCache.get('widgets-common/top-buttons.tmpl.html'), - controller: 'CommonTopButtonsCtrl' + template: $templateCache.get('widgets-common/info-panel.tmpl.html'), + link: function(scope) { + var w; + w = scope.parentWidget; + scope.hideInfoPanel = true; + scope.toggleInfoPanel = function() { + scope.hideInfoPanel = !scope.hideInfoPanel; + return scope.onClose(); + }; + return scope.getWidgetTemplateName = function() { + var cssClass, cssClassArray, widgetCategory, widgetName; + cssClass = ImpacWidgetsTemplates.filename(w); + if (!cssClass) { + return ""; + } + cssClassArray = cssClass.split('-'); + widgetCategory = cssClassArray.slice(0, 1); + widgetName = cssClassArray.slice(1, cssClassArray.length).join(' '); + return widgetCategory + " - " + widgetName; + }; + } }; }]); @@ -7116,313 +7196,203 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - 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); - return $scope.drawTrigger.notify(chartData); - } + $scope.isCsvExportable = function() { + var template; + template = _.find(ImpacDashboardsSvc.getWidgetsTemplates(), { + endpoint: w.endpoint + }); + return _.get(template, 'metadata.bolt_path'); + }; + return $scope.exportCSV = function() { + return ImpacWidgetsSvc.showAsCSV(w).then(function(response) { + var link; + link = document.createElement('a'); + link.href = 'data:attachment/csv;charset=utf-8,' + encodeURI(response); + link.download = w.endpoint + '.csv'; + link.style.display = 'none'; + return link.click(); + }); }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAccountingValues', function() { + module.directive('commonTopButtons', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetAccountsAccountingValuesCtrl' + scope: { + parentWidget: '=', + onRefresh: '=', + onToggleInfoPanel: '&', + onToggleDeleteWidget: '&', + userAccesses: '=' + }, + template: $templateCache.get('widgets-common/top-buttons.tmpl.html'), + controller: 'CommonTopButtonsCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-layouts.table', []); + module = angular.module('impac.components.widgets-settings.account', []); - 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(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; - $scope.timePeriodInfoParams = { - accountingBehaviour: 'pnl', - histParams: {} - }; - w.initContext = function() { - $scope.table = _.get(w, 'content.table', {}); - if (_.isEmpty($scope.table.rows)) { - return; - } - $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.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; + module.controller('SettingAccountCtrl', ["$scope", "$filter", function($scope, $filter) { + var formatAmount, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "account"; + setting.isInitialized = false; + setting.initialize = function() { + w.selectedAccount = w.selectedAccount || null; + if ((w.content != null) && (w.content.account_list != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { + w.selectedAccount = _.find(w.content.account_list, function(acc) { + return acc.uid === w.metadata.account_uid; }); - } else { - $scope.unCollapsed.push(id); + return setting.isInitialized = true; } - 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 true; + setting.toMetadata = function() { + if (w.selectedAccount != null) { + return { + account_uid: w.selectedAccount.uid + }; } }; - $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); + formatAmount = function(anAccount) { + var balance; + balance = anAccount.current_balance || anAccount.balance || 0.0; + return $filter('mnoCurrency')(balance, anAccount.currency); }; - 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); - } + $scope.formatLabel = function(anAccount) { + if (anAccount.company != null) { + return anAccount.company + " - " + anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + } else { + return anAccount.name + " (" + (formatAmount(anAccount)) + ")"; } }; - sortSingleRows = function(rows, colIndex) { - return _.sortByOrder(rows, (function(r) { - return r.cells[colIndex]; - }), [$scope.ascending]); - }; - 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('widgetTable', function() { - return { - restrict: 'A', - controller: 'WidgetTableCtrl' - }; - }); - - module.directive('indentTableRow', function() { + module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { 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" - }); + 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.accounts-assets-liability-summary', []); + module = angular.module('impac.components.widgets-settings.accounts-list', []); - 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"; + 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; } - $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 (_.isEmpty(src) || _.isEmpty(account)) { + return; + } + dst || (dst = []); + _.remove(src, function(acc) { + return account.uid === acc.uid; }); - if ($scope.isDataFound) { - if (w.metadata.organization_ids.length > 1) { - return $scope.dataSource = w.content.repartition; - } else { - return $scope.dataSource = w.content.summary; - } + dst.push(account); + if (triggerUpdate) { + ImpacWidgetsSvc.updateWidgetSettings(w, false); } + return null; }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; + 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.getAccountColor = function(elem) { - if ($scope.isDataFound) { - return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + setting.toMetadata = function() { + if (setting.isInitialized) { + return { + accounts_list: _.map(w.selectedAccounts, (function(acc) { + return acc.uid; + })) + }; } }; - $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 - }; + 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; }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); } + return results; }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetAccountsAssetsLiabilitySummary', function() { + module.directive('settingAccountsList', function() { return { restrict: 'A', - controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' + scope: { + parentWidget: '=', + deferred: '=', + accountsList: '=?' + }, + controller: 'SettingAccountsListCtrl' }; }); @@ -7431,2314 +7401,2128 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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; - }); - }; - $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) { + 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() { return { - label: company.label, - value: company.total + accounting_behaviour: scope.selectedBehaviour }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + w.settings.push(setting); + return scope.deferred.resolve(setting); } }; - 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-balance', []); + module = angular.module('impac.components.widgets-settings.bolt-account', []); - 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); - }; - $scope.getName = function() { - if (w.selectedAccount != null) { - return w.selectedAccount.name; + 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.getBehaviour = function() { - return (w.selectedAccount != null) && w.selectedAccount.accounting_behaviour; - }; - $scope.getCurrentBalance = function() { + setting.toMetadata = 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 { + account_uid: w.selectedAccount.account_id + }; } }; - $scope.getCurrency = function() { - if (w.selectedAccount != null) { - return w.selectedAccount.currency; + setOptions = function(name) { + if (name == null) { + name = 'account'; } + return _.find(w.content.settings.selectors, function(selector) { + return selector.name === name; + }).options; }; - $scope.displayAccount = function() { - return $scope.updateSettings(false).then(function() { - return w.format(); - }); + setSelected = function(selected) { + if (selected == null) { + selected = 'total_uid'; + } + return _.find(w.accountList, function(acc) { + return acc.account_id === selected; + }); }; - $scope.updateKpiExtraParams = function(key, value) { - return $scope.kpiExtraParams[key] = angular.copy(value); + formatAmount = function(anAccount) { + var balance; + balance = null; + return $filter('mnoCurrency')(balance, anAccount.currency); }; - $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); + $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('widgetAccountsBalance', function() { + module.directive('settingBoltAccount', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetAccountsBalanceCtrl' + 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' }; - }); + }]); }).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.accounts-assets-vs-liabilities', []); + module = angular.module('impac.components.widgets-settings.attach-kpis', []); - 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 - }; + 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; } - }); - datasets = _.sortByOrder(datasets, ['title']); - inputData = { - labels: w.content.companies, - datasets: _.compact(datasets) + 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); + }); }; - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) + $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; + }); + }); }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - } + $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.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 + } + }; + 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); + }] }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAssetsVsLiabilities', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-balance-sheet', []); + module = angular.module('impac.components.widgets-settings.dates-picker', []); - 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; + 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(); + } }); - } else { - $scope.unCollapsed.push(categoryName); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(categoryName) { - if (categoryName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; - }))) { - return false; - } else { - return true; - } - } - }; - translateCategories = function(categories) { - var translationPromises; - translationPromises = _.map(categories, function(category) { - return $translate('impac.widget.account_balance_sheets.' + category.toLowerCase()).then(function(translation) { + }; + 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 { - label: translation, - key: category + 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() + } }; - }, function() { + }; + scope.onChange = function() { + scope.showApplyButton(); + if (!_.isUndefined(scope.onChangeCb)) { + return scope.onChangeCb()(buildDates()); + } + }; + buildDates = function() { return { - label: category.toLowerCase(), - key: category + from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), + to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), + keepToday: isToToday() }; - }); - }); - 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; - }); + }; + 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); } - }); - }; - 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.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + return scope.deferred.resolve(setting); } - 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('widgetAccountsBalanceSheet', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsBalanceSheetCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-cash-summary', []); + module = angular.module('impac.components.widgets-settings.chart-filters', []); - 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; - }); - } - }); - $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; - }); - $scope.selectedElement || ($scope.selectedElement = fetchElement(w.content.summary)); + 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 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); + return setting.isInitialized = true; } }; - $scope.formatVariance = function(aVariance) { - if (aVariance != null) { - if (aVariance > 0) { - return "+" + aVariance + " %"; + setting.toMetadata = function() { + var filterValue; + if ((w.content != null) && (w.content.chart_filter != null)) { + if ($scope.filterCriteria === "percentage") { + filterValue = $scope.filterValuePercentage; } else { - return aVariance + " %"; + filterValue = $scope.filterValueNumber; } + return { + chart_filter: { + criteria: $scope.filterCriteria, + value: filterValue + } + }; } else { - return "-"; + return {}; } }; - $scope.getLastVariance = function(element) { - if ((element.variances != null) && (_.last(element.variances) != null)) { - return $scope.formatVariance(_.last(element.variances)); + 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.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 "-"; + return w.formula = ''; } }; - $scope.getVarianceClassColor = function(aVariance) { - if (parseInt(aVariance) > 0) { - return 'positive'; - } else if (parseInt(aVariance) < 0) { - return 'negative'; + setting.toMetadata = function() { + prepareFormula(); + if (w.isFormulaCorrect) { + return { + formula: w.formula + }; } else { - return null; + return { + formula: '' + }; } }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); - } + getFormula = function() { + return w.formula; }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; + 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 { - $scope.ascending = true; - $scope.sortedColumn = col; + w.evaluatedFormula = 'invalid expression'; + w.legend = '...'; + w.isFormulaCorrect = false; } - return sortData(); + return w.evaluatedFormulaTranslate = translateEvaluatedFormula(w.evaluatedFormula); }; - $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); - } + 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); }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; + 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; } - 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); + 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; }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; + 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 true; - } - if ($scope.selectedElement == null) { - return w.width = 6; + return false; } + } catch (error) { + e = error; + return false; } }; - $scope.getSelectLineColor = function(elem) { - return ChartFormatterSvc.getColor(0); + isRatio = function(sourceFormula) { + return sourceFormula.match(/\//g); }; - 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; - } + formatFormula = function(evaluation, sourceFormula, selectedAccounts) { + var currency, firstAccount; + if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { + return evaluation; } - }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; + firstAccount = selectedAccounts[0]; + if (!(currency = firstAccount.currency)) { + return evaluation; } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); + return $filter('mnoCurrency')(evaluation, currency); }; - 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; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingFormula', function() { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + controller: 'SettingFormulaCtrl' }; - 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; - }); - } - }); + }); + +}).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", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming) { + 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; + } }; - 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.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; }; - $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); + 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]; }); - inputData = { - labels: dates, - datasets: [ - { - title: data.label, - values: data.cash_flows - } - ] - }; - all_values_are_positive = true; - angular.forEach(data.cash_flows, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + } else { + return $translate(labels["default"]).then(function(label) { + return $scope.currentLabel = label; }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); - return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; + 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; + }); }; - unCollapsedSetting.toMetadata = function() { + setting.toMetadata = function() { + var mode; + mode = w.isHistoryMode ? 'history' : 'current'; return { - unCollapsed: $scope.unCollapsed + hist_parameters: { + mode: mode + } }; }; - w.settings.push(unCollapsedSetting); - selectedElementSetting = {}; - selectedElementSetting.initialized = false; - selectedElementSetting.initialize = function() { - return selectedElementSetting.initialized = true; + 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' }; - selectedElementSetting.toMetadata = function() { - if ($scope.selectedElement == null) { - return { - selectedElement: null - }; - } + }]); + +}).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 { - selectedElement: getIdentifier($scope.selectedElement) + limit_entries: $scope.selected }; }; - w.settings.push(selectedElementSetting); - return $scope.widgetDeferred.resolve(settingsPromises); + $scope.parentWidget.settings.push(setting); + return $scope.deferred.resolve(setting); }]); - module.directive('widgetAccountsCashSummary', function() { + module.directive('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { return { restrict: 'A', - controller: 'WidgetAccountsCashSummaryCtrl' + 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.accounts-class-comparison', []); + module = angular.module('impac.components.widgets-settings.offsets', []); - 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 + 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: {} }; - }); - if (!$scope.selectedClassification) { - return $scope.selectedClassification = angular.copy(_.find($scope.classifications, { - value: w.metadata.classification || $scope.classifications[0].value - })); + 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.getTotals = function() { - var amount; - if (!$scope.selectedClassification) { - return []; - } - return amount = _.find(w.content.summary, function(sum) { - return sum.classification === $scope.selectedClassification.value; - }).totals; + }]); + +}).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.getAmount = function(index) { - var amount; - amount = $scope.getTotals()[index]; - return $filter('mnoCurrency')(amount, w.content.currency); + $scope.singleOrgMode = function() { + return $scope.mode === 'single'; }; - $scope.getAccountColor = function(anEntity) { - return ChartFormatterSvc.getColor(_.indexOf(w.content.companies, anEntity)); + resetSelectedOrgs = function() { + return w.selectedOrganizations = _.mapValues(w.selectedOrganizations, function() { + return false; + }); }; - $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; + $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 + }); } - if (inputData.values.length > 15) { - inputData.values.length = 15; + } 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; } - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) - }; - chartData = ChartFormatterSvc.barChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + 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 + }; }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetAccountsClassComparison', function() { + module.directive('settingOrganizations', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetAccountsClassComparisonCtrl' + 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.accounts-custom-calculation', []); + module = angular.module('impac.components.widgets-settings.param-selector', []); - 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); + module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { + var setting, w; + $scope.showOptions = false; + $scope.toggleShowOptions = function() { + return $scope.showOptions = !$scope.showOptions; }; - $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; - } - 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 - }; - 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.onInit = function() { + $scope.selectedOption = {}; + return angular.extend($scope.selectedOption, $scope.selected); }; - $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.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(); + } } - 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 + return $scope.toggleShowOptions(); }; - $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.getTruncateValue = function() { + return parseInt($scope.truncateNo) || 20; }; - $scope.reloadAccountsLists = function(orgs) { - if ((orgs != null) && _.some(_.values(orgs))) { - return $scope.updateWidgetSettings(); + w = $scope.parentWidget; + setting = {}; + setting.key = "param-selector"; + setting.isInitialized = false; + setting.initialize = function() { + if (w.content != null) { + return setting.isInitialized = true; } }; - $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(); + setting.toMetadata = function() { + var param; + param = {}; + if (!_.isEmpty($scope.selected)) { + param[$scope.param] = $scope.selected.value; } - }); - return $scope.widgetDeferred.resolve(settingsPromises); + return param; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetAccountsCustomCalculation', function() { + module.directive('settingParamSelector', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetAccountsCustomCalculationCtrl' + 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.accounts-comparison', []); + module = angular.module('impac.components.widgets-settings.params-checkboxes', []); - 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 - } - ]; - 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(); + 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; }; - 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; + 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' }; - $scope.hasAccountsSelected = function() { - return w.selectedAccounts && w.selectedAccounts.length > 0; + }]); + +}).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.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; - }); - if (group) { - return [group.uid]; + setting.toMetadata = function() { + var param; + param = {}; + param[$scope.param] = { + values: _.compact(_.map($scope.options, function(statusOption) { + if (statusOption.selected) { + return statusOption.value || statusOption.label; } - } - return []; - } else { - return savedUids; - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var inputData; - inputData = { - labels: [], - values: [] + })), + reach: setting.reach }; - 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); + return param; }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetAccountsComparison', function() { + module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetAccountsComparisonCtrl' + 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.accounts-detailed-classifications', []); + module = angular.module('impac.components.widgets-settings.payroll', []); - 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: {} + 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.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 - }; - }) - }; - }); - } 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 - }; - }) - }; - }); - } - return sortData(); + $scope.toggleTimeSheetModifier = function() { + if ($scope.selectedPayroll.enabled) { + return $scope.selectedPayroll.time_logged = !$scope.selectedPayroll.time_logged; } }; - $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; - }); - } else { - $scope.unCollapsed.push(groupName); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + $scope.isTogglePayroll = function() { + if ($scope.selectedPayroll != null) { + return $scope.selectedPayroll.enabled; } }; - $scope.isCollapsed = function(groupName) { - if (groupName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return groupName === name; - }))) { - return false; - } else { - return true; - } + $scope.isToggleTimeSheetModifier = function() { + if ($scope.selectedPayroll != null) { + return $scope.selectedPayroll.time_logged; } }; - 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; - } - return res; - }); + 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; }); }; - 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; - }); - } + setting.toMetadata = function() { + return { + payroll: $scope.selectedPayroll + }; }; - $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); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetAccountsDetailedClassifications', function() { + module.directive('settingPayroll', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetAccountsDetailedClassificationsCtrl' + 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.accounts-expense-weight', []); + module = angular.module('impac.components.widgets-settings.source-selector', []); - 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.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; - } - }; - $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"); - } - }; - $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); - }); + 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; }); - lineData = { - labels: dates, - datasets: datasets - }; - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - currency: "(ratio)" + }; + 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 }; - chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); - } else { - companies = _.map(w.content.summary, function(s) { - return s.company; + }; + resetSelectedApps = function() { + return scope.selectedApps = _.mapValues(scope.selectedApps, function() { + return false; }); - ratios = _.map(w.content.summary, function(s) { - return s.ratio; + }; + updateAppInstances = function(appInstances, primary) { + var valuesPresent; + valuesPresent = _.find(appInstances, function(hash) { + return hash.value === 'prm-records-only'; }); - if (companies.length === 1) { - companies.push(companies[0]); - ratios.push(ratios[0]); + if (valuesPresent) { + return appInstances; + } else { + return appInstances.push(primary); } - inputData = { - labels: companies, - values: ratios - }; - options = { - scales: { - yAxes: [ - { - ticks: { - suggestedMin: 0, - suggestedMax: 100, - maxTicksLimit: 5 - } - } - ] - }, - showXLabels: false, - pointDot: false, - currency: '%' + }; + 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' }; - chartData = ChartFormatterSvc.lineChart([inputData], options); - } - return $scope.drawTrigger.notify(chartData); + 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); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsExpenseWeight', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsExpenseWeightCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-expenses-revenue', []); + module = angular.module('impac.components.widgets-settings.time-period', []); - 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(); - $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.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.getCurrentRevenue = function() { - if ($scope.isDataFound) { - return _.sum(w.content.values.revenue); - } - }; - $scope.getCurrentExpenses = function() { - if ($scope.isDataFound) { - return _.sum(w.content.values.expenses); - } - }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - 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, datasets, dates, lineData, lineOptions, period, pieData, pieOptions; - 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); - }); - 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 = [ + 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: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentExpenses() + label: translations["impac.widget.settings.time_period.period.daily"], + plural: "days", + value: "DAILY" }, { - label: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentRevenue() + 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" } ]; - pieOptions = { - tooltipFontSize: 12, - percentageInnerCutout: 0 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); - } - return $scope.drawTrigger.notify(chartData); - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsExpensesRevenue', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsExpensesRevenueCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-live-balance', []); - - module.controller('WidgetAccountsLiveBalanceCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", function($scope, $q, ChartFormatterSvc, $filter) { - var settingsPromises, w; - w = $scope.widget; - $scope.isLiveBalance = true; - $scope.orgDeferred = $q.defer(); - $scope.accountBackDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.accountBackDeferred.promise]; - $scope.isDataFound = true; - w.initContext = function() { - return $scope.isDataFound = w.content != null; - }; - $scope.getCurrency = function() { - if (w.selectedAccount != null) { - return w.selectedAccount.currency; - } - }; - $scope.getOpeningBalance = function() { - if (w.content != null) { - return _.find(w.content.figure.metrics, function(metric) { - return metric.label === 'opening'; - }); - } - }; - $scope.getClosingBalance = function() { - if (w.content != null) { - return _.find(w.content.figure.metrics, function(metric) { - return metric.label === 'closing'; - }); - } - }; - $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.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"; }); - } - }; - $scope.displayAccount = function() { - return $scope.updateSettings(false).then(function() { - return w.format(); - }); - }; - w.format = function() {}; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsLiveBalance', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsLiveBalanceCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-payable-receivable', []); - - module.controller('WidgetAccountsPayableReceivableCtrl', ["$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]; - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && (w.content.values != null) && (w.content.live_values != null); - }; - $scope.getCurrentPayable = function() { - if ($scope.isDataFound) { - return _.last(w.content.values.payables); - } else { - return 0.0; - } - }; - $scope.getCurrentReceivable = function() { - if ($scope.isDataFound) { - return _.last(w.content.values.receivables); - } else { - return 0.0; - } - }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, dates, i, j, len, len1, lineOptions, period, ref, ref1, value; - if ($scope.isDataFound) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + 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); } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - all_values_are_positive = true; - 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 + scope.applyPreset = function(histParams) { + initPeriod(histParams); + return initUsedSetting(histParams); }; - 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 + 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; } - ]; - chartData = ChartFormatterSvc.lineChart(lineData, lineOptions, true); - return $scope.drawTrigger.notify(chartData); + 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('widgetAccountsPayableReceivable', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsPayableReceivableCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-profit-and-loss', []); + module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); - 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; + 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); }); - foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); - if (foundElem) { - $scope.selectedElements.push(foundElem); + if (settingsTag.tags.length !== 0) { + return filterQueryRules.push(filterQueryCondition); } + }); + if (filterQuery.rules.length === 0) { + filterQuery = {}; } - } - 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); - } - } - }; - $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 element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; + 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); }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + 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); } }; - $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.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, 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(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.getAmount(el); - }); - } - }; - $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 = []; - 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('widgetAccountsProfitAndLoss', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsProfitAndLossCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-ratios', []); + module = angular.module('impac.components.widgets-settings.time-presets', []); - 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); - } - } - }; - $scope.toggleSimulationMode = function(init) { - if (init == null) { - init = false; - } - if (init) { - $scope.initSettings(); - } - return $scope.simulationMode = !$scope.simulationMode; - }; - $scope.saveSimulation = function() { - $scope.updateSettings(); - return $scope.toggleSimulationMode(); - }; - $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 + 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; + }); + }); + } + showSlider = function() { + return (ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && ImpacTheming.get().widgetSettings.timePeriod.showSlider; }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); - return $scope.drawTrigger.notify(chartData); + 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 + }; + }; + w.settings.push(scope.setting); + return scope.deferred.resolve(scope.setting); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsRatios', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsRatiosCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.hr-employee-details', []); + module = angular.module('impac.components.widgets-settings.time-slider', []); - module.controller('WidgetHrEmployeeDetailsCtrl', ["$scope", "$q", "$filter", "$translate", function($scope, $q, $filter, $translate) { - var mapSalaries, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.paramSelectorDeferred1 = $q.defer(); - $scope.paramSelectorDeferred2 = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise]; - $scope.salaries = []; - w.initContext = function() { - var employee; - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { - $scope.periodOptions = [ - { - label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.yearly')), - value: 'yearly' - }, { - label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.monthly')), - value: 'monthly' - }, { - label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.weekly')), - value: 'weekly' - }, { - label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.daily')), - 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'); } - ]; - if (w.metadata && w.metadata.period) { - $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.metadata.period.toLowerCase(); - }) || $scope.periodOptions[0]); - } else { - $scope.period = angular.copy($scope.periodOptions[0]); - } - $scope.employeesOptions = _.map(w.content.employees, function(e) { return { - value: e.uid, - label: e.lastname + " " + e.firstname + hist_parameters: histParams }; - }); - employee = $scope.getEmployee(); - $scope.selectedEmployee = { - value: employee.uid, - label: employee.lastname + " " + employee.firstname }; - return mapSalaries(employee, $scope.salaries); - } - }; - mapSalaries = function(employee, salariesArray) { - var amount, i, len, ref, results, salary, tooltip; - _.remove(salariesArray, function() { - return true; - }); - ref = employee.employee_salaries; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - salary = ref[i]; - tooltip = salary.name; - if (salary.hours_per_week) { - tooltip = salary.name + " (" + salary.hours_per_week + "h per week)"; - } - if ((amount = salary.annual_salary)) { - results.push(salariesArray.push({ - amount: amount, - currency: salary.currency, - period: 'Annual', - tooltip: tooltip - })); - } else if ((amount = salary.hourly_rate)) { - results.push(salariesArray.push({ - amount: amount, - currency: salary.currency, - period: 'Hourly', - tooltip: tooltip - })); - } else { - results.push(void 0); - } + 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); + } + }); + }; + 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(); + } + 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 results; }; - $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; - }); - if (org != null) { - return org.label; - } + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.width', []); + + 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); }; - $scope.getEmployee = function() { - var employee; - if (!$scope.isDataFound) { - return false; + w.toggleExpanded = function(save) { + if (save == null) { + save = true; } - if (w.metadata && w.metadata.employee_uid) { - employee = angular.copy(_.find(w.content.employees, function(e) { - return e.uid === w.metadata.employee_uid; - }) || w.content.employees[0]); + $scope.expanded = !$scope.expanded; + if (save) { + ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + hideOnResize($scope.contentElements); + if ($scope.expanded) { + return w.width = parseInt($scope.max); } else { - employee = angular.copy(w.content.employees[0]); + return w.width = parseInt($scope.min); } - if (employee.salary != null) { - employee.earnings = $filter('mnoCurrency')(employee.salary.amount, employee.salary.currency); + }; + w.isExpanded = function() { + return $scope.expanded; + }; + setting.initialize = function() { + if (w.width != null) { + $scope.expanded = w.width === parseInt($scope.max); + return setting.isInitialized = true; } - return employee; }; - $scope.formatAddress = function(anAddress) { - if (angular.isDefined(anAddress)) { - return anAddress.replace(/, /g, ',\n'); + setting.toMetadata = function() { + var newWidth; + if ($scope.expanded) { + newWidth = $scope.max; + } else { + newWidth = $scope.min; } + return { + width: parseInt(newWidth) + }; }; - return $scope.widgetDeferred.resolve(settingsPromises); + 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); + } + }); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetHrEmployeeDetails', function() { + module.directive('settingWidth', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetHrEmployeeDetailsCtrl' + scope: { + parentWidget: '=', + deferred: '=', + min: '@', + max: '@' + }, + template: $templateCache.get('widgets-settings/width.tmpl.html'), + controller: 'SettingWidthCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.hr-leaves-balance', []); + module = angular.module('impac.components.widgets.accounts-accounting-values', []); - module.controller('WidgetHrLeavesBalanceCtrl', ["$scope", "$q", "$translate", function($scope, $q, $translate) { - var employee, name, settingsPromises, w; + module.controller('WidgetAccountsAccountingValuesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; + $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]; 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.isDataFound = (w.content != null) && (w.content.accounting != null); + $scope.getLegend(); + return $scope.getCurrency(); }; - $scope.getEmployee = function() { - var e; - if (!$scope.isDataFound) { - return false; + $scope.getCurrentPrice = function() { + if ($scope.isDataFound) { + return w.content.accounting.total_period; } - 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]; + }; + $scope.getCurrency = 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; + } + } + }; + $scope.getLegend = 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; + } + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + 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); + 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('widgetAccountsAccountingValues', function() { return { restrict: 'A', - controller: 'WidgetHrLeavesBalanceCtrl' + controller: 'WidgetAccountsAccountingValuesCtrl' }; }); @@ -9747,60 +9531,82 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
1) { + return $scope.dataSource = w.content.repartition; + } else { + return $scope.dataSource = w.content.summary; + } } }; - $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; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $scope.getEmployeeEarnings = function(anEmployee) { - if (anEmployee.salary != null) { - return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); - } else { - return '-'; + $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 { + label: company.label, + value: company.total + }; + }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrEmployeesList', function() { + module.directive('widgetAccountsAssetsLiabilitySummary', function() { return { restrict: 'A', - controller: 'WidgetHrEmployeesListCtrl' + controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' }; }); @@ -9809,202 +9615,420 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0)) { - w.width = 6; + $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; } - return sortData(); } + 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; + }); }; - $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.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $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.getAccountColor = function(elem) { + if ($scope.isDataFound) { + return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); } }; - $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]); + $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 + }; }); - if (allFieldsEquals) { - return $scope.getName({ - name: field - }); - } else { - return null; - } + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; - $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'); - } + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsAssetsSummary', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsSummaryCtrl' }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + }); + +}).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; + }); + return $scope.titleTranslation; } - 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.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 + }; + } }); - 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); - } + 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.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsAssetsVsLiabilities', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' }; - $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); + }); + +}).call(this); + +(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); + }; + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; + $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 true; + return _.last(w.selectedAccount.balances); } + } else { + return 0.0; } }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; + $scope.getCurrency = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.currency; } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + }; + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return w.format(); }); - 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); + $scope.updateKpiExtraParams = function(key, value) { + return $scope.kpiExtraParams[key] = angular.copy(value); }; - 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; + $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; } - element = _.find(statement.employees, function(e) { - return getIdentifier(e, statement.name) === sElemId; + 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); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsBalance', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsBalanceCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-cash-summary', []); + + 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; + }); + } + }); + $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; + }); + $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), { @@ -10014,6 +10038,12 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; if (!$scope.ascending) { @@ -10041,75 +10071,50 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 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); + 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 + } + ] + }; + 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); return $scope.drawTrigger.notify(chartData); } }; @@ -10124,28 +10129,29 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
\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() { - 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 + 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.unCollapsed.push(categoryName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return true; + } + } + }; + translateCategories = function(categories) { + var translationPromises; + translationPromises = _.map(categories, function(category) { + return $translate('impac.widget.account_balance_sheets.' + category.toLowerCase()).then(function(translation) { + return { + label: translation, + key: category + }; + }, function() { + return { + label: category.toLowerCase(), + key: category + }; }); - return $scope.eventSources = angular.copy(eventsArray); + }); + 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; + }); + } + }); + }; + 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.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('widgetHrLeavesSchedule', function() { + module.directive('widgetAccountsBalanceSheet', function() { return { restrict: 'A', - controller: 'WidgetHrLeavesScheduleCtrl' + controller: 'WidgetAccountsBalanceSheetCtrl' }; }); - 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; - module = angular.module('impac.components.widgets.hr-payroll-taxes', []); + module = angular.module('impac.components.widgets.accounts-class-comparison', []); - module.controller('WidgetHrPayrollTaxesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; + 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.timePeriodDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.total_tax) && !_.isEmpty(w.content.dates); + $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: {} }; - $scope.getCurrentPrice = function() { - if ($scope.isDataFound) { - return _.last(w.content.total_tax); + 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; } }; - $scope.getCurrency = function() { + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); if ($scope.isDataFound) { - return w.content.currency || "USD"; + $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 + }; + }); + if (!$scope.selectedClassification) { + return $scope.selectedClassification = angular.copy(_.find($scope.classifications, { + value: w.metadata.classification || $scope.classifications[0].value + })); + } } }; - $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 + ")"; + $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 all_values_are_positive, chartData, dates, inputData, options, period; + var chartData, inputData, options; if ($scope.isDataFound) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + 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; } - 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 + showTooltips: false, + showXLabels: false, + barValueSpacing: Math.max(8 - w.content.companies.length, 1) }; - chartData = ChartFormatterSvc.lineChart([inputData], options); + chartData = ChartFormatterSvc.barChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrPayrollTaxes', function() { + module.directive('widgetAccountsClassComparison', function() { return { restrict: 'A', - controller: 'WidgetHrPayrollTaxesCtrl' + controller: 'WidgetAccountsClassComparisonCtrl' }; }); @@ -10300,167 +10417,292 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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; } + return _.uniq(_.pluck(w.content.complete_list, 'org_name')).length > 1; }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.isComparisonMode = function() { + return _.result(_.find($scope.comparisonModeOptions, 'id', 'compare_accounts'), 'value') || false; }; - $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); - } + $scope.hasAccountsSelected = function() { + return w.selectedAccounts && w.selectedAccounts.length > 0; }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetHrSalariesSummary', function() { - return { - restrict: 'A', - controller: 'WidgetHrSalariesSummaryCtrl' + $scope.getAccountColor = function(anAccount) { + if ($scope.isComparisonMode()) { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts[0].accounts, anAccount)); + } else { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts, anAccount)); + } }; - }); - -}).call(this); + $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; + }); + if (group) { + return [group.uid]; + } + } + 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); + } + } 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); + }; + 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.hr-superannuation-accruals', []); + module = angular.module('impac.components.widgets.accounts-custom-calculation', []); - module.controller('WidgetHrSuperannuationAccrualsCtrl', ["$scope", "$q", function($scope, $q) { + 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.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; + $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() { - 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 - }; + $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; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); }); - return $scope.selectedEmployee = { - value: $scope.getEmployee().uid, - label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + 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 }; + 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.getEmployee = function() { - var e; - if (!$scope.isDataFound) { - return 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 + "\\}"; } - 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]; + 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++; } - return angular.copy(e); + 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('widgetHrSuperannuationAccruals', function() { + module.directive('widgetAccountsCustomCalculation', function() { return { restrict: 'A', - controller: 'WidgetHrSuperannuationAccrualsCtrl' + controller: 'WidgetAccountsCustomCalculationCtrl' }; }); @@ -10469,48 +10711,77 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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.label; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return el.value; + }); } }; - $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(); }; unCollapsedSetting = {}; unCollapsedSetting.initialized = false; @@ -10560,10 +10837,10 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0)) { - w.width = 6; + $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 } - 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); + ]; + 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.getTotalSum = function(element) { - if ((element != null) && (element.totals != null)) { - return _.reduce(element.totals, function(memo, num) { - return memo + num; - }, 0); + $scope.getCurrentRevenue = function() { + if ($scope.isDataFound) { + return _.sum(w.content.values.revenue); } }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); + $scope.getCurrentExpenses = function() { + if ($scope.isDataFound) { + return _.sum(w.content.values.expenses); } }; - $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.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $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.toggleDisplayNetProfit = function() { + $scope.isNetProfitDisplayed = !!$scope.displayOptions[0].value; + $scope.updateSettings(false); + return w.format(); }; - $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 element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, datasets, dates, lineData, lineOptions, period, pieData, pieOptions; + 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); }); + 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 { - $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; + 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); } }; - $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; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsExpensesRevenue', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsExpensesRevenueCtrl' }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-expense-weight', []); + + 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' }; - 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; - } - } + w.initContext = function() { + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); + return $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } - 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(''); + $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 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); + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return $timeout(function() { + return w.format(); }); - } 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, + 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, - values: data.totals + 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; }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + ratios = _.map(w.content.summary, function(s) { + return s.ratio; }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); + 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); } }; - 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('widgetAccountsExpenseWeight', function() { return { restrict: 'A', - controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' + controller: 'WidgetAccountsExpenseWeightCtrl' }; }); @@ -10925,125 +11103,89 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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('widgetHrWorkforceSummary', function() { + module.directive('widgetAccountsPayableReceivable', function() { return { restrict: 'A', - controller: 'WidgetHrWorkforceSummaryCtrl' + controller: 'WidgetAccountsPayableReceivableCtrl' }; }); @@ -11052,150 +11194,79 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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++; + $scope.getOpeningBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'opening'; }); - 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 - }); - } + $scope.getClosingBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'closing'; }); - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); - } else { - results.push(void 0); - } } - 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); + $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.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 - }; + $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"; }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - 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('widgetInvoicesSummary', function() { + module.directive('widgetAccountsLiveBalance', function() { return { restrict: 'A', - controller: 'WidgetInvoicesSummaryCtrl' + controller: 'WidgetAccountsLiveBalanceCtrl' }; }); @@ -11204,267 +11275,119 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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 _.last(w.content.dates); - } - }; - $scope.getClassColor = function(prev, value) { - if (value < prev) { - return 'negative'; - } else if (value > prev) { - return 'positive'; - } else { - return null; - } + $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]); }; - $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; + $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' } - $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' - }); - } - 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')); - } else { - return w.content.break_even.projected_date; - } - } - }; - $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.isTargetMet = function() { - if ($scope.isDataFound && w.content.break_even) { - return w.content.break_even.variance < 0; - } - }; - $scope.getVariance = function() { - if ($scope.isDataFound && w.content.break_even) { - return Math.abs(w.content.break_even.variance); - } - }; - thresholdSetting = {}; - thresholdSetting.initialized = false; - thresholdSetting.initialize = function() { - return thresholdSetting.initialized = true; - }; - thresholdSetting.toMetadata = function() { - return { - threshold: $scope.threshold - }; - }; - w.settings.push(thresholdSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesBreakEven', function() { - return { - restrict: 'A', - controller: 'WidgetSalesBreakEvenCtrl' + ]; + 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; }; - }); - -}).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(); - $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'; w.initContext = function() { - var foundElem, i, len, ref, sElemId; - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.sales_comparison) && !_.isEmpty(w.content.dates); - if ($scope.isDataFound) { + 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 || []; - $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 (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.sales_comparison, function(statement) { + foundElem = _.find(w.content.summary, function(statement) { return statement.name === sElemId; }); - foundElem || (foundElem = fetchElement(w.content.sales_comparison, sElemId)); + foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); if (foundElem) { $scope.selectedElements.push(foundElem); } } } + if (!_.any($scope.selectedElements)) { + w.width = 6; + } return sortData(); } }; - $scope.getLastDate = function() { - if ($scope.isDataFound) { - return _.last(w.content.dates); + $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'; } }; - $scope.getTotalForPeriod = function(element) { - if ((element.totals != null) && $scope.filter) { - return _.reduce(element.totals[$scope.filter.value], function(memo, total) { - return memo + total; - }, 0); + getLastAmount = function(element) { + if (element.totals != null) { + return _.last(element.totals); } }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); + 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) { @@ -11536,9 +11459,6 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0; - }; $scope.getSelectLineColor = function(element, statementName) { var sElem; if (statementName == null) { @@ -11551,6 +11471,9 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0; + }; matchElementToSelectedElement = function(element, elementCategory, sElem) { if (elementCategory == null) { elementCategory = null; @@ -11561,11 +11484,11 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + 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; } @@ -11602,13 +11525,13 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 0); @@ -11640,78 +11563,13 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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() { @@ -11730,8 +11588,8 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); + 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); + } } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.toggleSimulationMode = function(init) { + if (init == null) { + init = false; + } + if (init) { + $scope.initSettings(); } + return $scope.simulationMode = !$scope.simulationMode; + }; + $scope.saveSimulation = function() { + $scope.updateSettings(); + return $scope.toggleSimulationMode(); }; $scope.drawTrigger = $q.defer(); w.format = function() { - var chartData, pieData, pieOptions; + var chartData, data, dates, inputData, options, period; 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 + 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 + } + ] }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + options = { + currency: 'hide', + showXLabels: false + }; + chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesCycle', function() { + module.directive('widgetAccountsRatios', function() { return { restrict: 'A', - controller: 'WidgetSalesCycleCtrl' + controller: 'WidgetAccountsRatiosCtrl' }; }); @@ -11951,81 +11864,60 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 0); + return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.content.total.period.toLowerCase(); + }) || $scope.periodOptions[0]); + } + }; + $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; }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: true, - pointDot: false - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + return org.label; + } + }; + $scope.getEmployeeEarnings = function(anEmployee) { + if (anEmployee.salary != null) { + return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); + } else { + return '-'; } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesForecast', function() { + module.directive('widgetHrEmployeesList', function() { return { restrict: 'A', - controller: 'WidgetSalesForecastCtrl' + controller: 'WidgetHrEmployeesListCtrl' }; }); @@ -12034,473 +11926,301 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
threshold) { - return codeName; - } else { - return fullName; + $scope.getEmployee = function() { + var e; + if (!$scope.isDataFound) { + return false; } - }; - $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); + 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); }; + 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('widgetSalesGrowth', function() { + module.directive('widgetHrLeavesBalance', function() { return { restrict: 'A', - controller: 'WidgetSalesGrowthCtrl' + controller: 'WidgetHrLeavesBalanceCtrl' }; }); }).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.hr-leaves-schedule', []); - 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('WidgetHrLeavesScheduleCtrl', ["$scope", "$q", "ChartFormatterSvc", function($scope, $q, ChartFormatterSvc) { + var settingsPromises, 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]; 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 + 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); } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getImpacColor = function(index) { - return ChartFormatterSvc.getColor(index); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrLeavesSchedule', function() { + return { + restrict: 'A', + controller: 'WidgetHrLeavesScheduleCtrl' }; - $scope.toggleSelectStatus = function(aStatus) { - if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { - $scope.selectedStatus = null; - } else { - $scope.selectedStatus = aStatus; - $scope.setLeadTooltipsIsLocked = false; - } - if (!w.isExpanded() && $scope.selectedStatus) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, 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.isSelected = function(aStatus) { - return $scope.selectedStatus && aStatus === $scope.selectedStatus; - }; - $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 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("
")); - }); - }; - 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; - }; - selectedStatusSetting.toMetadata = function() { - return { - selected_status: $scope.selectedStatus - }; - }; - 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 + "%" - } - }; - } - })); - } - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesLeadsFunnel', function() { - return { - restrict: 'A', - controller: 'WidgetSalesLeadsFunnelCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-leads-list', []); + module = angular.module('impac.components.widgets.hr-payroll-summary', []); - module.controller('WidgetSalesLeadsListCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, $translate) { - var initLeadDescriptionTooltips, settingsPromises, w; + 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(); - settingsPromises = [$scope.orgDeferred.promise]; - $scope.ordering = "last_name"; + $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() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads); - if ($scope.isDataFound) { - return initLeadDescriptionTooltips(w.content.leads); + 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(); } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $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.leadDescriptionTooltips = {}; - initLeadDescriptionTooltips = function(leads) { - return _.each(leads, function(aLead, index) { - var nameLineArray, tooltip; - tooltip = []; - nameLineArray = [""]; - if (aLead.first_name) { - nameLineArray.push($filter('titleize')(aLead.first_name)); + $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 (aLead.last_name) { - nameLineArray.push($filter('titleize')(aLead.last_name)); + if (element.name === "total_super") { + return $translate.instant('impac.widget.hr_payroll_summary.total_superannuation'); } - 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 (element.name === "total_reimbursement") { + return $translate.instant('impac.widget.hr_payroll_summary.total_reimbursements'); } - 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(' - ')); + 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]); + }); + if (allFieldsEquals) { + return $scope.getName({ + name: field }); + } else { + return null; } - return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); - }); + } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesLeadsList', function() { - return { - restrict: 'A', - controller: 'WidgetSalesLeadsListCtrl' + $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'); + } }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-list', []); - - 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.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; } + return sortData(); }; - $scope.toggleCollapsed = function(categoryName) { - if (categoryName != null) { + $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.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 { @@ -12508,10 +12228,61 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
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; + } + 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; + } + } + }; + 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; + }; + sortEmployeesBy = function(getElem) { return angular.forEach(w.content.summary, function(sElem) { - if (sElem.products) { - return sElem.products.sort(function(a, b) { + 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) { @@ -12523,129 +12294,135 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 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); + } + 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() { + return { + restrict: 'A', + controller: 'WidgetHrPayrollSummaryCtrl' + }; + }); + +}).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-margin', []); + module = angular.module('impac.components.widgets.hr-payroll-taxes', []); - module.controller('WidgetSalesMarginCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + module.controller('WidgetHrPayrollTaxesCtrl', ["$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]; + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.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 = [ - { - label: $translate.instant('impac.widget.sales_margin.including_taxes'), - value: 'gross_margin' - }, { - label: $translate.instant('impac.widget.sales_margin.excluding_taxes'), - value: 'net_margin' - } - ]; - 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]); - } - } + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.total_tax) && !_.isEmpty(w.content.dates); }; - $scope.getTotalMargin = function() { + $scope.getCurrentPrice = 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); - } + return _.last(w.content.total_tax); } }; $scope.getCurrency = function() { @@ -12653,15 +12430,21 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 0); }); options = { @@ -12689,10 +12472,10 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
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; - } - } - }; - $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; + $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); if ($scope.isDataFound) { - pieData = [ + $scope.periodOptions = [ { - label: "EXISTING " + ($scope.calculatePercentage('existing')) + "%", - value: w.content.summary[$scope.displayType.value].existing + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), + value: "yearly" }, { - label: "NEW " + ($scope.calculatePercentage('new')) + "%", - value: w.content.summary[$scope.displayType.value]["new"] + 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" } ]; - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - if (!$scope.shouldDisplayCurrency()) { - angular.merge(pieOptions, { - currency: 'hide' - }); + $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.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 + } + }; } - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNewVsExistingCustomers', function() { + module.directive('widgetHrSalariesSummary', function() { return { restrict: 'A', - controller: 'WidgetSalesNewVsExistingCustomersCtrl' + controller: 'WidgetHrSalariesSummaryCtrl' }; }); @@ -12828,111 +12603,48 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
0 && (w.content.sales[0].total != null); - }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; + 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.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; - } - } else { - return 0; + $scope.getEmployee = function() { + var e; + if (!$scope.isDataFound) { + return false; } - }; - $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 { - return { - minus: '-', - equal: '=' - }[type]; + 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('widgetSalesNetSales', function() { + module.directive('widgetHrSuperannuationAccruals', function() { return { restrict: 'A', - controller: 'WidgetSalesNetSalesCtrl' + controller: 'WidgetHrSuperannuationAccrualsCtrl' }; }); @@ -12941,740 +12653,581 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
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'; - } + 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 { - nominal: formattedNominal, - variation: formattedVariation, - color: color - }; + return w.content.employees[0]; } - if (nominal > 0) { - formattedNominal = "+" + nominal; - } else if (nominal < 0) { - formattedNominal = nominal; + }; + $scope.getEmployeeTimeWorked = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_worked; } - if (variation && variation > 0) { - formattedVariation = "+" + (variation.toFixed(0)) + "%"; - } else if (variation && variation < 0) { - formattedVariation = (variation.toFixed(0)) + "%"; + }; + $scope.getEmployeeTimeOff = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_off; } + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { return { - nominal: formattedNominal, - variation: formattedVariation, - color: color + unCollapsed: $scope.unCollapsed }; }; - getVariation = function(v_array) { - var variation; - if (v_array[0] !== 0) { - return variation = 100 * ((v_array[1] / v_array[0]) - 1); - } else { - return variation = "- "; - } - }; + w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNumberOfLeads', function() { + module.directive('widgetHrTimesheets', function() { return { restrict: 'A', - controller: 'WidgetSalesNumberOfLeadsCtrl' + controller: 'WidgetHrTimesheetsCtrl' }; }); }).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.hr-workforce-summary', []); - 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; + module.controller('WidgetHrWorkforceSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, 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); + $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.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]); + } }; - getOrderedAssigneeIds = function(assigneesOptions) { - return _.map(_.filter(assigneesOptions, function(assigneeOption) { - return assigneeOption.selected; - }), 'value'); + $scope.getTotalWorkforce = function() { + if ($scope.isDataFound) { + return w.content.total.amount; + } }; - 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; - } + $scope.getNumberOfEmployees = function() { + if ($scope.isDataFound) { + return w.content.total.employees; } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.total.currency; } }; - $scope.getImpacColor = function(index) { + $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.getColorByIndex = 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 + "%"); - } - return oppDetails.join(' / '); - }; - $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); - }; - 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 { - selected_status: $scope.selectedStatus - }; - }; - w.settings.push(selectedStatusSetting); + $scope.drawTrigger = $q.defer(); w.format = function() { - var assignees, max; + var barData, barOptions, chartData, pieData, pieOptions; 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 + "%" - } - }; - } - })); + 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 { - return $scope.isDataFound = false; + 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('widgetSalesOpportunitiesFunnel', function() { + module.directive('widgetHrWorkforceSummary', function() { return { restrict: 'A', - controller: 'WidgetSalesOpportunitiesFunnelCtrl' + controller: 'WidgetHrWorkforceSummaryCtrl' }; }); }).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.invoices-aged-payables-receivables', []); - module.controller('WidgetSalesPerformanceCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc) { - var formatDate, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, w; + module.controller('WidgetInvoicesAgedPayablesReceivablesCtrl', ["$scope", "$q", "$log", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", "$translate", function($scope, $q, $log, $filter, ChartFormatterSvc, ImpacWidgetsSvc, $translate) { + var buildFxTotals, c, fetchElement, getIdentifier, matchElementToSelectedElement, periodName, selectedElementsSetting, settingsPromises, sortBy, sortByInvoiceCallback, sortData, unCollapsedSetting, 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.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsWinsPickerDeferred, $scope.paramsLostsPickerDeferred, $scope.timePeriodDeferred, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'customer'; + periodName = (c = $scope.widget.content) && (c.hist_parameters && c.hist_parameters.period) ? c.hist_parameters.period.toLowerCase() : 'monthly'; + $translate('impac.widget.settings.time_period.period.' + periodName).then(function(translation) { + return $scope.period_translation = _.capitalize(translation.toLowerCase()); + }); w.initContext = function() { - var foundElem, i, len, ref, sElemId; - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.assignees); - if ($scope.isDataFound) { + var foundElem, i, len, ref, sElemId, statements; + if ($scope.isDataFound = angular.isDefined(w.content) && (!_.isEmpty(w.content.payables) || !_.isEmpty(w.content.receivables)) && !_.isEmpty(w.content.dates)) { + buildFxTotals(); + $scope.ratesDate = moment.now(); + $scope.payables = w.content.payables; + $scope.receivables = w.content.receivables; + $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.assignees, function(assignee) { - return getIdentifier(assignee) === sElemId; + statements = [$scope.payables, $scope.receivables]; + foundElem = _.find(statements, function(statement) { + return statement.name === sElemId; }); + foundElem || (foundElem = fetchElement(statements, sElemId)); if (foundElem) { $scope.selectedElements.push(foundElem); } } } - $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 - }); - } - }); + if (!(($scope.selectedElements != null) && $scope.selectedElements.length > 0)) { + w.width = 6; + } + return sortData(); } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + $scope.getElementChartColor = function(index) { + if (index != null) { + return ChartFormatterSvc.getColor(index); } }; - $scope.getChartTitle = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.map(function(el) { - return el.name; - }).join(', '); + $scope.getLastValue = function(element) { + if ((element != null) && (element.totals != null)) { + return _.last(element.totals); } }; - $scope.getTotalWon = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.reduce((function(t, e) { - return t + e.total_won; - }), 0); - } else { - return 0; + $scope.getTotalSum = function(element) { + if ((element != null) && (element.totals != null)) { + return _.reduce(element.totals, function(memo, num) { + return memo + num; + }, 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.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); } }; - $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.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.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.getOldestInvoice = function(element) { + var idx; + idx = _.findIndex(element.totals, function(invoice) { + return invoice !== 0; + }); + return w.content.dates[idx] || null; }; - $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.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); }; - $scope.toggleSelectedElement = function(element) { - var selectedElement; - if ($scope.isSelected(element)) { + $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, sElem); + return matchElementToSelectedElement(element, statementName, sElem); }); w.format(); if (w.isExpanded() && $scope.selectedElements.length === 0) { return w.toggleExpanded(); } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + return ImpacWidgetsSvc.updateWidgetSettings(w, false); } } else { - selectedElement = angular.copy(element); $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); + if (statementName) { + element.category = statementName; + } + $scope.selectedElements.push(element); w.format(); if (!w.isExpanded()) { return w.toggleExpanded(); } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + return ImpacWidgetsSvc.updateWidgetSettings(w, false); } } }; - $scope.isSelected = function(element) { + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); + return matchElementToSelectedElement(element, statementName, sElem); }); }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; + $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.getSelectLineColor = function(element) { + $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.getSelectLineColor = function(element, statementName) { var sElem; + if (statementName == null) { + statementName = null; + } sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); + return matchElementToSelectedElement(element, statementName, sElem); }); if ($scope.hasElements()) { return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); } }; - matchElementToSelectedElement = function(element, sElem) { - return getIdentifier(element) === getIdentifier(sElem); + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; }; - getIdentifier = function(element) { - return element.id || element.name; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - $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; - } - 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); - }); + 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; }); - 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); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } } }; - selectedElementsSetting = { - initialized: false - }; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; + 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; }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { - return getIdentifier(sElem); + 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; }); - return { - selectedElements: selectedElementsMetadata - }; }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesPerformance', function() { - return { - restrict: 'A', - controller: 'WidgetSalesPerformanceCtrl' - }; - }); - -}).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'); - } else { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); - } + sortByInvoiceCallback = function(el) { + var date; + date = $scope.getOldestInvoice(el); + if (date && _.isString(date)) { + date = date.match(/[^_\W]+\s?/g).join(''); } + return new Date(date); }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.getRangeLabel = function(aLabel, ISOmode) { - var prices; - if (ISOmode == null) { - ISOmode = false; + 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); } - prices = aLabel.split('-'); - return _.map(prices, function(price) { - return $filter('mnoCurrency')(price, w.content.currency, ISOmode); - }).join(' - '); }; - $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); + 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 + }); + } + }); } - return max = Math.max(max, range.percentage); - }); - return maxRange; + } + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); + } } + return results; }; $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 + 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.barChart(barData, barOptions); + 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('widgetSalesSegmentedTurnover', function() { + module.directive('widgetInvoicesAgedPayablesReceivables', function() { return { restrict: 'A', - controller: 'WidgetSalesSegmentedTurnoverCtrl' + controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' }; }); @@ -13683,152 +13236,29 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
"; + settingsPromises = [$scope.orgDeferred.promise, $scope.limitEntriesDeferred.promise, $scope.datesPickerDeferred.promise]; 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 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'); } - 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 ((w.metadata != null) && (w.metadata.limit_entries != null)) { + $scope.limitEntriesSelected = w.metadata.limit_entries; + } 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); - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesSummary', function() { - return { - restrict: 'A', - controller: 'WidgetSalesSummaryCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-top-customers', []); - - module.controller('WidgetSalesTopCustomersCtrl', ["$scope", "$q", "$filter", "ImpacUtilities", "$translate", function($scope, $q, $filter, ImpacUtilities, $translate) { - var buildFxTotals, fields, settingsPromises, topTmpl, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.datesPickerDeferred.promise, $scope.paramSelectorDeferred.promise]; - topTmpl = $translate.instant('impac.widget.sales_top_customers.top'); - $scope.limitEntriesOptions = [ - { - label: topTmpl.replace(':number:', 5), - value: 5 - }, { - label: topTmpl.replace(':number:', 10), - value: 10 - }, { - label: topTmpl.replace(':number:', 25), - value: 25 - }, { - label: topTmpl.replace(':number:', 50), - value: 50 - }, { - label: topTmpl.replace(':number:', 100), - value: 100 - } - ]; - $scope.limitEntriesSelected = angular.copy(_.find($scope.limitEntriesOptions, function(o) { - return (w.metadata != null) && (o.value === w.metadata.limit_entries); - }) || $scope.limitEntriesOptions[3]); - $scope.headerOptions = [ - { - label: $translate.instant('impac.widget.sales_top_customers.total_sales'), - value: 'total_sales', - minified: 'total' - }, { - label: $translate.instant('impac.widget.sales_top_customers.transactions'), - value: 'transactions', - minified: '# tr' - }, { - label: $translate.instant('impac.widget.sales_top_customers.avg_sales'), - value: 'avg_sales', - minified: 'avg' - }, { - label: $translate.instant('impac.widget.sales_top_customers.last_sale'), - value: 'last_sale', - minified: 'last' - } - ]; - $scope.headerSelected = angular.copy(_.find($scope.headerOptions, function(o) { - return (w.metadata != null) && (w.metadata.header === o.value); - }) || $scope.headerOptions[0]); - w.initContext = function() { - var dates, datesRange; - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.entities)) { dates = _.flatten(_.map(w.content.entities, (function(e) { return _.map(e.invoices, (function(i) { return i.invoice_date; @@ -13837,70 +13267,41 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.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; + $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 { - return 0; + amountDetail = " (" + formattedInvoiced + ")"; } - } - } - ]; - $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; + tooltip.push("#" + count + txn + " - " + i.tooltip_status + amountDetail); + return count++; + }); + return $scope.invoiceTooltips[entity.id] = $sce.trustAsHtml(tooltip.join("
")); }); }; - $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; @@ -13928,16 +13329,10 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
= 0 && anIndex < w.content.aged_sales[$scope.filter.value].length) { + return w.content.aged_sales[$scope.filter.value][anIndex]; + } }; - $scope.formatLabel = function(anAccount) { - if (anAccount.company != null) { - return anAccount.company + " - " + anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + $scope.getLastDate = function() { + if ($scope.isDataFound) { + return _.last(w.content.dates); + } + }; + $scope.getClassColor = function(prev, value) { + if (value < prev) { + return 'negative'; + } else if (value > prev) { + return 'positive'; } else { - return anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + return null; } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { - 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'); + $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; } - }, - template: $templateCache.get('widgets-settings/account.tmpl.html'), - controller: 'SettingAccountCtrl' + $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' + }); + } + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.accounting-behaviour', []); - - module.directive('settingAccountingBehaviour', ["$templateCache", "$timeout", function($templateCache, $timeout) { + module.directive('widgetSalesAged', function() { 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() { - return { - accounting_behaviour: scope.selectedBehaviour - }; - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); - } + controller: 'WidgetSalesAgedCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.accounts-list', []); + module = angular.module('impac.components.widgets.sales-break-even', []); - 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; - } - dst || (dst = []); - _.remove(src, function(acc) { - return account.uid === acc.uid; - }); - dst.push(account); - if (triggerUpdate) { - ImpacWidgetsSvc.updateWidgetSettings(w, false); + 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; } - return null; }; - 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.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')); + } else { + return w.content.break_even.projected_date; + } } }; - setting.toMetadata = function() { - if (setting.isInitialized) { - return { - accounts_list: _.map(w.selectedAccounts, (function(acc) { - return acc.uid; - })) - }; + $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; + } } }; - restoreSavedAccounts = function() { - var acc, accUid, accountsList, i, len, results; - if (_.isEmpty(w.metadata.accounts_list) && _.isEmpty($scope.accountsList)) { - return; + $scope.isTargetMet = function() { + if ($scope.isDataFound && w.content.break_even) { + return w.content.break_even.variance < 0; } - 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; - }); - results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); + }; + $scope.getVariance = function() { + if ($scope.isDataFound && w.content.break_even) { + return Math.abs(w.content.break_even.variance); } - return results; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + thresholdSetting = {}; + thresholdSetting.initialized = false; + thresholdSetting.initialize = function() { + return thresholdSetting.initialized = true; + }; + thresholdSetting.toMetadata = function() { + return { + threshold: $scope.threshold + }; + }; + w.settings.push(thresholdSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingAccountsList', function() { + module.directive('widgetSalesBreakEven', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - accountsList: '=?' - }, - controller: 'SettingAccountsListCtrl' + controller: 'WidgetSalesBreakEvenCtrl' }; }); }).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.sales-comparison', []); - 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('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(); + $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'; + w.initContext = function() { + var foundElem, i, len, ref, sElemId; + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.sales_comparison) && !_.isEmpty(w.content.dates); + 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' } - return ImpacKpisSvc.formatKpiTarget(kpi.targets[$scope.elementWatched][0], kpi.data[$scope.elementWatched].unit, $scope.possibleTargets); - }; - $scope.attachedKpis || ($scope.attachedKpis = []); - $scope.possibleTargets = [ + ]; + $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.settings.attach_kpis.over'), - mode: 'min' + label: $translate.instant('impac.widget.sales_comparison.criteria_options.products'), + value: 'default' }, { - label: $translate.instant('impac.widget.settings.attach_kpis.below'), - mode: 'max' + 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.kpi = { - limit: { - mode: $scope.possibleTargets[0].mode + $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 || (foundElem = fetchElement(w.content.sales_comparison, sElemId)); + if (foundElem) { + $scope.selectedElements.push(foundElem); + } } - }; - 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; + } + return sortData(); } }; - setting.toMetadata = function() { - if (w.selectedAccount != null) { - return { - account_uid: w.selectedAccount.account_id - }; + $scope.getLastDate = function() { + if ($scope.isDataFound) { + return _.last(w.content.dates); } }; - setOptions = function(name) { - if (name == null) { - name = 'account'; + $scope.getTotalForPeriod = function(element) { + if ((element.totals != null) && $scope.filter) { + return _.reduce(element.totals[$scope.filter.value], function(memo, total) { + return memo + total; + }, 0); } - return _.find(w.content.settings.selectors, function(selector) { - return selector.name === name; - }).options; }; - setSelected = function(selected) { - if (selected == null) { - selected = 'total_uid'; - } - return _.find(w.accountList, function(acc) { - return acc.account_id === selected; - }); + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - formatAmount = function(anAccount) { - var balance; - balance = null; - return $filter('mnoCurrency')(balance, anAccount.currency); + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); }; - $scope.formatLabel = function(anAccount) { - if (anAccount.currency != null) { - return anAccount.name + " (" + anAccount.currency + ")"; + $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 { - return "" + anAccount.name; + 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); + } } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingBoltAccount', ["$templateCache", "$translate", function($templateCache, $translate) { - 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' + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); }; - }]); - -}).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; + $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.filterValuePercentage = w.content.chart_filter.value; - $scope.filterValueNumber = Math.round($scope.maxEntities / 2); + $scope.unCollapsed.push(element.name); } - 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(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === 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' + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; }; - }]); - -}).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(); - } + $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.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 }); - }; - 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 element; } - return scope.deferred.resolve(setting); } }; - }]); + 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; + }); + } + }); + }; + 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); + }); + } + }; + $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 = []; + 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[$scope.filter.value] + }); + 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: false, + pointDot: false + }; + if ($scope.filter.value.indexOf('quantity') > -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 + }; + }; + 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('widgetSalesComparison', function() { + return { + restrict: 'A', + controller: 'WidgetSalesComparisonCtrl' + }; + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.formula', []); + module = angular.module('impac.components.widgets.sales-customer-details', []); - 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; + module.controller('WidgetSalesCustomerDetailsCtrl', ["$scope", "$q", function($scope, $q) { + var buildFxTotals, setSelectedCustomer, setSelectedCustomerId, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + $scope.ratesDate = moment.now(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.customers); + if ($scope.isDataFound) { + setSelectedCustomer(); + return $scope.customersOptions = _.map(w.content.customers, function(e) { + return { + value: e.uid, + label: e.name + }; }); - } else { - return w.formula = ''; } }; - setting.toMetadata = function() { - prepareFormula(); - if (w.isFormulaCorrect) { - return { - formula: w.formula - }; - } else { - return { - formula: '' - }; + $scope.formatAddress = function(anAddress) { + if (angular.isDefined(anAddress)) { + return anAddress.replace(/, /g, ',\n'); } }; - 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; + $scope.getFromDate = function() { + if ($scope.isDataFound) { + return w.content.from; } - 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; + $scope.getToDate = function() { + if ($scope.isDataFound) { + return w.content.to; } }; - interpolateInFormula = function(sourceFormula, selectedAccounts, accountMember) { - var account, i, interpolation, j, len, pattern; - interpolation = sourceFormula; - if (_.isEmpty(selectedAccounts)) { - return interpolation; + setSelectedCustomer = function() { + var customer; + if (!$scope.isDataFound) { + return false; } - 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] + " "); + if (w.metadata && w.metadata.customer_uid) { + customer = _.find(w.content.customers, function(c) { + return c.uid === w.metadata.customer_uid; + }); } - return interpolation; + customer || (customer = w.content.customers[0]); + $scope.selectedCustomer = angular.copy(customer); + setSelectedCustomerId(); + return buildFxTotals(); }; - 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; + setSelectedCustomerId = function() { + var cust; + if (!(cust = $scope.selectedCustomer)) { return false; } + return $scope.selectedCustomerId = { + value: cust.uid, + label: cust.name + }; }; - isRatio = function(sourceFormula) { - return sourceFormula.match(/\//g); - }; - formatFormula = function(evaluation, sourceFormula, selectedAccounts) { - var currency, firstAccount; - if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { - return evaluation; + buildFxTotals = function() { + var cust, dueFxTotals, invoicedFxTotals, paidFxTotals; + if (!(cust = $scope.selectedCustomer)) { + return false; } - firstAccount = selectedAccounts[0]; - if (!(currency = firstAccount.currency)) { - return evaluation; + 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; + } } - return $filter('mnoCurrency')(evaluation, currency); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingFormula', function() { + module.directive('widgetSalesCustomerDetails', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - controller: 'SettingFormulaCtrl' + controller: 'WidgetSalesCustomerDetailsCtrl' }; }); }).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.sales-forecast', []); - module.controller('SettingHistModeCtrl', ["$scope", "$translate", "$timeout", "ImpacWidgetsSvc", "ImpacTheming", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming) { - 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('WidgetSalesForecastCtrl', ["$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]; + w.initContext = function() { + return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.dates) && !_.isEmpty(w.content.totals); }; - $scope.toggleHistMode = function(mode) { - var ref; - if ((w.isHistoryMode && mode === 'history') || (!w.isHistoryMode && mode === 'current')) { - return; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } - 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; - }); + $scope.getOpportunityAmount = function(anOpp) { + if ($scope.isDataFound && !_.isEmpty(anOpp)) { + if (anOpp.amount && anOpp.amount.amount) { + return anOpp.amount.amount; + } else { + return '-'; + } } }; - 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.getOpportunityCurrency = function(anOpp) { + if ($scope.isDataFound && !_.isEmpty(anOpp)) { + if (anOpp.amount && anOpp.amount.currency) { + return anOpp.amount.currency; + } else if (w.content.currency) { + return w.content.currency; + } else { + return 'AUD'; } - 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 + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, formattedDates, inputData, options, period; + if ($scope.isDataFound) { + all_values_are_positive = true; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; } - }; + formattedDates = _.map(w.content.dates, function(aDate) { + return $filter('momentDate')(aDate, period); + }); + inputData = [ + { + title: $translate.instant('impac.widget.sales_forecast.sales_performance'), + labels: formattedDates, + values: w.content.totals + } + ]; + 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); + } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingHistMode', ["$templateCache", function($templateCache) { + module.directive('widgetSalesForecast', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - onToggle: '&', - accountingBehaviour: '@?', - endDate: '=?' - }, - template: $templateCache.get('widgets-settings/hist-mode.tmpl.html'), - controller: 'SettingHistModeCtrl' + controller: 'WidgetSalesForecastCtrl' }; - }]); + }); }).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-settings.limit-entries', []); + module = angular.module('impac.components.widgets.sales-cycle', []); - 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 + module.controller('WidgetSalesCycleCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.paramsPickerDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.timePeriodDeferred.promise, $scope.chartDeferred.promise]; + 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 + }); + }); + } }; - $scope.parentWidget.settings.push(setting); - return $scope.deferred.resolve(setting); + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } + }; + $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('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { + module.directive('widgetSalesCycle', function() { 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') + controller: 'WidgetSalesCycleCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.offsets', []); + module = angular.module('impac.components.widgets.sales-growth', []); - 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: {} + module.controller('WidgetSalesGrowthCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var productLineThreshold, productOptionThreshold, settingsPromises, w; + w = $scope.widget; + productLineThreshold = 35; + productOptionThreshold = 25; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.paramSelectorDeferred1 = $q.defer(); + $scope.paramSelectorDeferred2 = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise, $scope.chartDeferred.promise]; + $scope.isDataQuantity = true; + w.initContext = function() { + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.productOptions = _.flatten(_.map(w.content.summary, function(product) { + return { + label: $scope.getDisplayName(product, productOptionThreshold), + value: product.id }; - 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); + })); + $scope.product = angular.copy(_.find($scope.productOptions, function(o) { + return o.value === w.content.product; + }) || { + label: $translate.instant('impac.widget.sales_growth.select_product'), + value: -1 + }); + $scope.filterOptions = [ + { + label: $translate.instant('impac.widget.sales_growth.value_sold_taxes'), + value: 'gross_value_sold' + }, { + label: $translate.instant('impac.widget.sales_growth.value_sold_no_taxes'), + value: 'net_value_sold' + }, { + label: $translate.instant('impac.widget.sales_growth.quantity_sold'), + value: 'quantity_sold' + }, { + label: $translate.instant('impac.widget.sales_growth.value_purchased_taxes'), + value: 'gross_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_growth.value_purchased_no_taxes'), + value: 'net_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_growth.quantity_purchased'), + value: 'quantity_purchased' } - }; - if (w) { - w.settings.push(setting); - } - return scope.deferred.resolve(setting); + ]; + $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.content.filter; + }) || $scope.filterOptions[0]); + return $scope.isDataQuantity = $scope.filter.value.match('quantity'); } }; - }]); - -}).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.getSelectedProduct = function() { + var product; + if ($scope.isDataFound) { + product = _.find(w.content.summary, function(product) { + return product.id === $scope.product.value; + }) || w.content.summary[0]; + return _.extend(product, { + displayName: $scope.getDisplayName(product, productLineThreshold) + }); + } }; - $scope.singleOrgMode = function() { - return $scope.mode === 'single'; + $scope.getCurrentValue = function() { + if ($scope.getSelectedProduct() != null) { + return _.last($scope.getSelectedProduct().totals); + } }; - resetSelectedOrgs = function() { - return w.selectedOrganizations = _.mapValues(w.selectedOrganizations, function() { - return false; - }); + $scope.getCurrentDate = function() { + if ($scope.isDataFound) { + return _.last(w.content.dates); + } }; - $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; + $scope.getDisplayName = function(product, threshold) { + var codeName, fullName; + fullName = w.content.organizations.length === 1 ? product.name : product.company + ' - ' + product.name; + codeName = w.content.organizations.length === 1 ? product.code : product.company + ' - ' + product.code; + if (fullName.length > threshold) { + return codeName; + } else { + return fullName; } }; - 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); + $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; } - }); - }; - setting.toMetadata = function() { - var newOrganizations; - newOrganizations = _.compact(_.map(w.selectedOrganizations, function(checked, uid) { - if (checked) { - return uid; + 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' + }); } - })); - if (_.isEmpty(newOrganizations)) { - newOrganizations = [_.first($scope.dashboardOrganizations).uid]; + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); } - return { - organization_ids: newOrganizations - }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingOrganizations', ["$templateCache", function($templateCache) { + module.directive('widgetSalesGrowth', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - mode: '@?', - deferred: '=', - onSelect: '&?' - }, - template: $templateCache.get('widgets-settings/organizations.tmpl.html'), - controller: 'SettingOrganizationsCtrl' + controller: 'WidgetSalesGrowthCtrl' }; - }]); + }); }).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-settings.param-selector', []); + module = angular.module('impac.components.widgets.sales-leads-funnel', []); - module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { - var setting, w; - $scope.showOptions = false; - $scope.toggleShowOptions = function() { - return $scope.showOptions = !$scope.showOptions; + 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(); + 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; }; - $scope.onInit = function() { - $scope.selectedOption = {}; - return angular.extend($scope.selectedOption, $scope.selected); + 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.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(); - } + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } - return $scope.toggleShowOptions(); }; - $scope.getTruncateValue = function() { - return parseInt($scope.truncateNo) || 20; + $scope.getImpacColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - w = $scope.parentWidget; - setting = {}; - setting.key = "param-selector"; - setting.isInitialized = false; - setting.initialize = function() { - if (w.content != null) { - return setting.isInitialized = true; + $scope.toggleSelectStatus = function(aStatus) { + if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { + $scope.selectedStatus = null; + } else { + $scope.selectedStatus = aStatus; + $scope.setLeadTooltipsIsLocked = false; } - }; - setting.toMetadata = function() { - var param; - param = {}; - if (!_.isEmpty($scope.selected)) { - param[$scope.param] = $scope.selected.value; + if (!w.isExpanded() && $scope.selectedStatus) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } - 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.isSelected = function(aStatus) { + return $scope.selectedStatus && aStatus === $scope.selectedStatus; }; - }]); - -}).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.getSelectedLeads = function() { + var leads; + if ($scope.isDataFound && $scope.selectedStatus) { + leads = w.content.leads_per_status[$scope.selectedStatus].leads; + if (!$scope.setLeadTooltipsIsLocked) { + setLeadDescriptionTooltips(leads); + } + 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("
")); }); - return param; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + 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; + }; + selectedStatusSetting.toMetadata = function() { + return { + selected_status: $scope.selectedStatus + }; + }; + 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 + "%" + } + }; + } + })); + } + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingParamsCheckboxes', ["$templateCache", function($templateCache) { + module.directive('widgetSalesLeadsFunnel', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=' - }, - template: $templateCache.get('widgets-settings/params-checkboxes.tmpl.html'), - controller: 'SettingParamsCheckboxesCtrl' + controller: 'WidgetSalesLeadsFunnelCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.params-picker', []); + module = angular.module('impac.components.widgets.sales-leads-list', []); - 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; + module.controller('WidgetSalesLeadsListCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, $translate) { + var initLeadDescriptionTooltips, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + $scope.ordering = "last_name"; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads); + if ($scope.isDataFound) { + return initLeadDescriptionTooltips(w.content.leads); } }; - 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.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + $scope.leadDescriptionTooltips = {}; + initLeadDescriptionTooltips = function(leads) { + 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("
")); + }); + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { + module.directive('widgetSalesLeadsList', function() { 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' + controller: 'WidgetSalesLeadsListCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.payroll', []); + module = angular.module('impac.components.widgets.sales-list', []); - 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; + 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.isToggleTimeSheetModifier = function() { - if ($scope.selectedPayroll != null) { - return $scope.selectedPayroll.time_logged; + $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); } }; - 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; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return 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; + }); } - return setting.isInitialized = true; }); }; - setting.toMetadata = function() { + 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.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; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { return { - payroll: $scope.selectedPayroll + unCollapsed: $scope.unCollapsed }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + w.settings.push(unCollapsedSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingPayroll', ["$templateCache", function($templateCache) { + module.directive('widgetSalesList', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - mode: '@?', - deferred: '=', - onSelect: '&?' - }, - template: $templateCache.get('widgets-settings/payroll.tmpl.html'), - controller: 'SettingPayrollCtrl' + controller: 'WidgetSalesListCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.source-selector', []); + module = angular.module('impac.components.widgets.sales-margin', []); - 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); + 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 = [ + { + label: $translate.instant('impac.widget.sales_margin.including_taxes'), + value: 'gross_margin' + }, { + label: $translate.instant('impac.widget.sales_margin.excluding_taxes'), + value: 'net_margin' } + ]; + 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.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); + } + } + }; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency || "USD"; + } + }; + $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 }; - 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; + 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 }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); - - module.directive('settingTagFilter', ["$templateCache", "$timeout", function($templateCache, $timeout) { + module.directive('widgetSalesMargin', function() { 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); - } + controller: 'WidgetSalesMarginCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-period', []); + module = angular.module('impac.components.widgets.sales-net-sales', []); - 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" + 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' + } + ]; + 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' + } + ]; + 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); + }; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; + } + }; + $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; + } + } else { + return 0; + } + }; + $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 { + return { + minus: '-', + equal: '=' + }[type]; + } + }; + 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' + } + ]; + $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; + } + } + }; + $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); + } + }; + 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.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.weekly"], - plural: "weeks", - value: "WEEKLY" + label: translations['impac.widget.settings.time_period.period.quarter'], + value: 'QUARTERLY' }, { - label: translations["impac.widget.settings.time_period.period.monthly"], - plural: "months", - value: "MONTHLY" + label: translations['impac.widget.settings.time_period.period.month'], + value: 'monthly' }, { - label: translations["impac.widget.settings.time_period.period.quarterly"], - plural: "quarters", - value: "QUARTERLY" + label: translations['impac.widget.settings.time_period.period.week'], + value: 'WEEKLY' }, { - label: translations["impac.widget.settings.time_period.period.yearly"], - plural: "years", - value: "YEARLY" + label: translations['impac.widget.settings.time_period.period.day'], + value: 'DAILY' } ]; + return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.metadata.period; + }) || $scope.periodOptions[3]); }); - 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'; + } + }; + 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: '' }; - getUsedSettingKey = function() { - if (scope.usedSetting != null) { - return scope.usedSetting; - } else { - return initUsedSetting(); - } + } + 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 }; - getSetting = function(key) { - return _.find(scope.timePeriodSetting.settings, function(set) { - return set.key === key; + } + 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 = "- "; + } + }; + 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; }; + + module = angular.module('impac.components.widgets.sales-opportunities-funnel', []); + + 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 }); - }; - 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 ($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] + }); } - 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; + }); + 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 + "%"); + } + return oppDetails.join(' / '); + }; + $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); + }; + 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; } - 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 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 { + selected_status: $scope.selectedStatus + }; + }; + 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; } - 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(); + }); + 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.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; + }); + if (foundElem) { + $scope.selectedElements.push(foundElem); } } - 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; + } + $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 + }); } - 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"); + }); + $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 + }); } - 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; + }); + } + }; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } + }; + $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.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) { + var selectedElement; + if ($scope.isSelected(element)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, sElem); + }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + } 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); + } + } + }; + $scope.isSelected = function(element) { + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, sElem); + }); + }; + $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)); + } + }; + matchElementToSelectedElement = function(element, sElem) { + return getIdentifier(element) === getIdentifier(sElem); + }; + 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) { + 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; } - 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); + 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); } }; + 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('widgetSalesPerformance', function() { + return { + restrict: 'A', + controller: 'WidgetSalesPerformanceCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-presets', []); + module = angular.module('impac.components.widgets.sales-segmented-turnover', []); - 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; - }); - }); - } - 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 - }); + 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.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; - } - }); + ]; + $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'); + } else { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); + } + } + }; + $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(' - '); + }; + $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 { - hist_parameters: result - }; + return max = Math.max(max, range.percentage); + }); + return maxRange; + } + }; + $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; + }) }; - w.settings.push(scope.setting); - return scope.deferred.resolve(scope.setting); + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetSalesSegmentedTurnover', function() { + return { + restrict: 'A', + controller: 'WidgetSalesSegmentedTurnoverCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-slider', []); + module = angular.module('impac.components.widgets.sales-summary', []); - 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'); + 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]]; + } + 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 = _.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 { - hist_parameters: histParams + label: label, + value: entity.total }; + }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 }; - 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); - } + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(pieOptions, { + currency: 'hide' }); - }; - getPeriod = function() { - if (scope.period != null) { - return scope.period; + } + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesSummary', function() { + return { + restrict: 'A', + controller: 'WidgetSalesSummaryCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.sales-top-customers', []); + + module.controller('WidgetSalesTopCustomersCtrl', ["$scope", "$q", "$filter", "ImpacUtilities", "$translate", function($scope, $q, $filter, ImpacUtilities, $translate) { + var buildFxTotals, fields, settingsPromises, topTmpl, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.datesPickerDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.datesPickerDeferred.promise, $scope.paramSelectorDeferred.promise]; + topTmpl = $translate.instant('impac.widget.sales_top_customers.top'); + $scope.limitEntriesOptions = [ + { + label: topTmpl.replace(':number:', 5), + value: 5 + }, { + label: topTmpl.replace(':number:', 10), + value: 10 + }, { + label: topTmpl.replace(':number:', 25), + value: 25 + }, { + label: topTmpl.replace(':number:', 50), + value: 50 + }, { + label: topTmpl.replace(':number:', 100), + value: 100 + } + ]; + $scope.limitEntriesSelected = angular.copy(_.find($scope.limitEntriesOptions, function(o) { + return (w.metadata != null) && (o.value === w.metadata.limit_entries); + }) || $scope.limitEntriesOptions[3]); + $scope.headerOptions = [ + { + label: $translate.instant('impac.widget.sales_top_customers.total_sales'), + value: 'total_sales', + minified: 'total' + }, { + label: $translate.instant('impac.widget.sales_top_customers.transactions'), + value: 'transactions', + minified: '# tr' + }, { + label: $translate.instant('impac.widget.sales_top_customers.avg_sales'), + value: 'avg_sales', + minified: 'avg' + }, { + label: $translate.instant('impac.widget.sales_top_customers.last_sale'), + value: 'last_sale', + minified: 'last' + } + ]; + $scope.headerSelected = angular.copy(_.find($scope.headerOptions, function(o) { + return (w.metadata != null) && (w.metadata.header === o.value); + }) || $scope.headerOptions[0]); + w.initContext = function() { + var dates, datesRange; + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.entities)) { + 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'); + buildFxTotals(); + return $scope.ratesDate = moment.now(); + } + }; + fields = [ + { + label: 'total', + showCurrency: true, + getValue: function(entity) { + return entity.total_invoiced; + }, + getFormattedFxTotals: function(entity) { + return entity.formattedFxTotals; + } + }, { + label: '# tr', + showCurrency: false, + getValue: function(entity) { + return entity.invoices.length; + } + }, { + label: 'avg', + showCurrency: true, + getValue: function(entity) { + var total; + total = entity.invoices.length; + if (total > 0) { + return entity.total_invoiced / entity.invoices.length; } else { - return initPeriod(); + return 0; } - }; - getPeriodWord = function() { - return ImpacUtilities.getPeriodWord(getPeriod()); - }; - getNumberOfPeriods = function() { - if (scope.numberOfPeriods != null) { - return scope.numberOfPeriods; + } + }, { + 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 initNumberOfPeriods(); + return 0; } - }; - 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.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 + }); } - }; - scope.toDate = function() { - return moment(); - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + }); + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); + } } + return results; }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetSalesTopCustomers', function() { + return { + restrict: 'A', + controller: 'WidgetSalesTopCustomersCtrl', + link: function(scope) { + scope.transactionsCollapsed = false; + return scope.toggleTransactions = function() { + return scope.transactionsCollapsed = !scope.transactionsCollapsed; + }; + } + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.width', []); + module = angular.module('impac.components.widgets.sales-top-opportunities', []); - 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); + module.controller('WidgetSalesTopOpportunitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + w.initContext = function() { + return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opportunities); }; - w.toggleExpanded = function(save) { - if (save == null) { - save = true; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } - $scope.expanded = !$scope.expanded; - if (save) { - ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + }; + $scope.getOppDetails = function(anOpp) { + var oppDetails; + oppDetails = []; + if (anOpp.amount) { + oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); } - hideOnResize($scope.contentElements); - if ($scope.expanded) { - return w.width = parseInt($scope.max); - } else { - return w.width = parseInt($scope.min); + if (anOpp.probability) { + oppDetails.push($translate.instant('impac.widget.sales_opportunities.proba') + (" " + anOpp.probability + "%")); } - }; - w.isExpanded = function() { - return $scope.expanded; - }; - setting.initialize = function() { - if (w.width != null) { - $scope.expanded = w.width === parseInt($scope.max); - return setting.isInitialized = true; + if (anOpp.sales_stage) { + oppDetails.push(anOpp.sales_stage); } + return oppDetails.join(' / '); }; - setting.toMetadata = function() { - var newWidth; - if ($scope.expanded) { - newWidth = $scope.max; - } else { - newWidth = $scope.min; + $scope.getOppClass = function(index) { + switch (index) { + case 0: + return 'first'; + case 1: + return 'second'; + case 2: + return 'second'; + default: + return ''; } - 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); - } - }); - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingWidth', ["$templateCache", function($templateCache) { + module.directive('widgetSalesTopOpportunities', function() { return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - min: '@', - max: '@' - }, - template: $templateCache.get('widgets-settings/width.tmpl.html'), - controller: 'SettingWidthCtrl' + restrict: 'A', + controller: 'WidgetSalesTopOpportunitiesCtrl' }; - }]); + }); }).call(this); @@ -16330,6 +16330,132 @@ $templateCache.put("widgets-layouts/accounts-invoices-list.tmpl.html","
.kpis { + position: relative; + .actions { + margin-bottom: 12px; + @media screen and (max-width: 675px) { + position: relative; + } + + .impac-material(@kpi-settings-focus-color, @kpi-settings-error-color); + + a { color: white; } + + button.im-fab.add-kpis, + button.im-fab.edit-kpis, + button.im-fab.toggle-show-content { + position: absolute; + width: 40px; + height: 40px; + font-size: 18px; + transition: all 0.28s ease-in; + &.im-primary { + background: #4c4749; + &.disabled { + background: #b2b5c1; + cursor: not-allowed; + a { cursor: not-allowed; } + } + &:hover:not(.disabled) { + background: black; + } + } + } + + button.im-fab.toggle-show-content { + top: -15px; + right: -15px; + z-index: 10; + @media screen and (max-width: 675px) { + top: -30px; + right: -14px; + bottom: 0; + } + } + + button.im-fab.add-kpis { + top: 30px; + right: -15px; + z-index: 10; + @media screen and (max-width: 675px) { + top: -30px; + right: 33px; + bottom: 0; + } + } + + button.im-fab.edit-kpis { + top: 75px; + right: -15px; + z-index: 10; + &.editing { + background: @kpi-settings-focus-color; + &:hover:not(.disabled) { + background: lighten(@kpi-settings-focus-color, 15%); + } + } + @media screen and (max-width: 675px) { + top: -30px; + right: 79px; + bottom: 0; + } + } + } + + .content-buttons { + position: absolute; + top: 0; + right: 0; + } + + .content { + padding: 15px; + background-color: @kpis-bar-background-color; + box-shadow: @kpis-bar-box-shadow; + + @media screen and (min-width: 725px) { + padding: 0 60px; + } + + @media screen and (max-width: 675px) { + margin-top: 25px; + } + + .impac-kpi { + .column-gutter(5px); + + @media screen and (min-width: 1200px) { + padding-left: 20px; + padding-right: 20px; + } + + .kpi.add { + .kpi-show .caption { + white-space: inherit; + } + } + } + + + .title { + .text-center { + line-height: 3; + font-variant: small-caps; + font-size: larger; + } + .badge { + position: absolute; + top: 8px; + left: -10px; + background-color: #d1e55c; + color: #4f5959; + box-shadow: 0px 1px 3px -1px; + } + .no-kpi-templates { + color: #afadb5; + font-weight: 500; + } + } + + .add-bar { + border-bottom: dashed 1px; + } + + .kpi-loader { + display: flex; + align-items: center; + justify-content: center; + min-height: @kpi-max-height + 20px; + } + + .dates-picker-container { + width: 40%; + margin: 0 auto; + + .sdp-from-label, + .sdp-to-label { + text-transform: uppercase; + font-weight: 400; + } + } + } +} + +.analytics kpis-bar { + display: block; +} + +.analytics kpis-bar > .key-stats { + background-color: white; + padding: 5px 0px; +} + +.analytics.pdf-mode kpis-bar > .kpis .actions { display: none; } + .analytics .impac-kpi .kpi { position: relative; max-width: 220px; @@ -2298,169 +2461,6 @@ dashboard-templates-selector { min-height: 80px; } -.analytics kpis-bar > .kpis { - position: relative; - .actions { - margin-bottom: 12px; - @media screen and (max-width: 675px) { - position: relative; - } - - .impac-material(@kpi-settings-focus-color, @kpi-settings-error-color); - - a { color: white; } - - button.im-fab.add-kpis, - button.im-fab.edit-kpis, - button.im-fab.toggle-show-content { - position: absolute; - width: 40px; - height: 40px; - font-size: 18px; - transition: all 0.28s ease-in; - &.im-primary { - background: #4c4749; - &.disabled { - background: #b2b5c1; - cursor: not-allowed; - a { cursor: not-allowed; } - } - &:hover:not(.disabled) { - background: black; - } - } - } - - button.im-fab.toggle-show-content { - top: -15px; - right: -15px; - z-index: 10; - @media screen and (max-width: 675px) { - top: -30px; - right: -14px; - bottom: 0; - } - } - - button.im-fab.add-kpis { - top: 30px; - right: -15px; - z-index: 10; - @media screen and (max-width: 675px) { - top: -30px; - right: 33px; - bottom: 0; - } - } - - button.im-fab.edit-kpis { - top: 75px; - right: -15px; - z-index: 10; - &.editing { - background: @kpi-settings-focus-color; - &:hover:not(.disabled) { - background: lighten(@kpi-settings-focus-color, 15%); - } - } - @media screen and (max-width: 675px) { - top: -30px; - right: 79px; - bottom: 0; - } - } - } - - .content-buttons { - position: absolute; - top: 0; - right: 0; - } - - .content { - padding: 15px; - background-color: @kpis-bar-background-color; - box-shadow: @kpis-bar-box-shadow; - - @media screen and (min-width: 725px) { - padding: 0 60px; - } - - @media screen and (max-width: 675px) { - margin-top: 25px; - } - - .impac-kpi { - .column-gutter(5px); - - @media screen and (min-width: 1200px) { - padding-left: 20px; - padding-right: 20px; - } - - .kpi.add { - .kpi-show .caption { - white-space: inherit; - } - } - } - - - .title { - .text-center { - line-height: 3; - font-variant: small-caps; - font-size: larger; - } - .badge { - position: absolute; - top: 8px; - left: -10px; - background-color: #d1e55c; - color: #4f5959; - box-shadow: 0px 1px 3px -1px; - } - .no-kpi-templates { - color: #afadb5; - font-weight: 500; - } - } - - .add-bar { - border-bottom: dashed 1px; - } - - .kpi-loader { - display: flex; - align-items: center; - justify-content: center; - min-height: @kpi-max-height + 20px; - } - - .dates-picker-container { - width: 40%; - margin: 0 auto; - - .sdp-from-label, - .sdp-to-label { - text-transform: uppercase; - font-weight: 400; - } - } - } -} - -.analytics kpis-bar { - display: block; -} - -.analytics kpis-bar > .key-stats { - background-color: white; - padding: 5px 0px; -} - -.analytics.pdf-mode kpis-bar > .kpis .actions { display: none; } - .widget-item { transition: width 0.3s; padding: @impac-padding-between-widgets; @@ -2854,30 +2854,6 @@ dashboard-templates-selector { } } -#trends-list { - .top { - height: 40px; - a.back-link { font-weight: normal; } - .pagination { margin: 0px; } - } - - .table-container { - max-height: ~"calc(@{impac-big-widget-size} - 60px)"; - overflow: auto; - - div[uib-datepicker-popup-wrap] { - display: inline-block; - } - - input.btn.btn-xs { margin-top: -2px; } - button.btn.reset-date { margin-top: -2px; } - - .listing { - outline-style: none; - } - } -} - #trends-add { .widget-popup(); .message { @@ -2924,6 +2900,30 @@ dashboard-templates-selector { } } } +#trends-list { + .top { + height: 40px; + a.back-link { font-weight: normal; } + .pagination { margin: 0px; } + } + + .table-container { + max-height: ~"calc(@{impac-big-widget-size} - 60px)"; + overflow: auto; + + div[uib-datepicker-popup-wrap] { + display: inline-block; + } + + input.btn.btn-xs { margin-top: -2px; } + button.btn.reset-date { margin-top: -2px; } + + .listing { + outline-style: none; + } + } +} + .analytics .dashboard-settings.currency { text-align: right; select { @@ -2931,9 +2931,6 @@ dashboard-templates-selector { } } -.analytics .dashboard-settings.pdf-mode { -} - .analytics .dashboard-settings.sync-apps { .show-status { margin-right: 5px; @@ -3040,6 +3037,9 @@ dashboard-templates-selector { .fa.success { color: @flurogreen; } } +.analytics .dashboard-settings.pdf-mode { +} + .analytics .widget-item .content .table-layout { table { @@ -3134,82 +3134,35 @@ chart-threshold { } } -.analytics widgets-common-confirm-modal { - .widget-popup(); - .message { - display: flex; - flex-direction: column; - justify-content: space-between; - - p { padding: 0px 10px; } - - button.btn { margin-top: 20px; } - - .loader i.fa.fa-spinner { - font-size: 26px; - } - } -} - -.currency-conversions { - img { - width: 15px; - cursor: pointer; - } - - &.popover .popover-title { - background-color: black; - color: white; - } -} - -.analytics .widget-item .editable-title { - width: 100%; - flex: 1; - overflow: hidden; - height: 22px; - - .title { - text-transform: @impac-widget-title-text-transform; - .font(@impac-widget-title-text-size,600,@impac-widget-title-text-color); - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; - } - - .editable-wrap { - position: relative; - height: 20px; - min-width: 100%; - // otherwise, white-space is overriden in mno-enterprise - white-space: nowrap; - - .editable-controls { - min-width: 100%; +.analytics widgets-common-confirm-modal { + .widget-popup(); + .message { + display: flex; + flex-direction: column; + justify-content: space-between; - .editable-input { - height: 20px; - font-size: 12px; - text-transform: @impac-widget-title-text-transform; - // 65px is .editable-buttons width - width: ~"calc(100% - 65px)"; - padding: 0px 3px; - } + p { padding: 0px 10px; } - .editable-buttons { - background-color: @impac-widget-title-bg; - button { - margin: 0px 0px 0px 5px; - height: 20px; - padding: 0px 5px; - } - } + button.btn { margin-top: 20px; } + + .loader i.fa.fa-spinner { + font-size: 26px; } } } +.currency-conversions { + img { + width: 15px; + cursor: pointer; + } + + &.popover .popover-title { + background-color: black; + color: white; + } +} + .analytics .widget-item .info-panel { position: absolute; top: 15px; @@ -3271,6 +3224,59 @@ chart-threshold { } } +.analytics .widget-item .editable-title { + width: 100%; + flex: 1; + overflow: hidden; + height: 22px; + + .title { + text-transform: @impac-widget-title-text-transform; + .font(@impac-widget-title-text-size,600,@impac-widget-title-text-color); + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; + } + + .editable-wrap { + position: relative; + height: 20px; + min-width: 100%; + // otherwise, white-space is overriden in mno-enterprise + white-space: nowrap; + + .editable-controls { + min-width: 100%; + + .editable-input { + height: 20px; + font-size: 12px; + text-transform: @impac-widget-title-text-transform; + // 65px is .editable-buttons width + width: ~"calc(100% - 65px)"; + padding: 0px 3px; + } + + .editable-buttons { + background-color: @impac-widget-title-bg; + button { + margin: 0px 0px 0px 5px; + height: 20px; + padding: 0px 5px; + } + } + } + } +} + +.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; @@ -3315,12 +3321,6 @@ chart-threshold { } } -.analytics .time-period-info { - font-size: 11px; - color: #ABC4C6; - text-transform: uppercase; -} - .analytics .widget-item .content.accounts-accounting-values { // Nothing particular yet for this template... } @@ -3403,16 +3403,6 @@ chart-threshold { } } -.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(); @@ -3478,6 +3468,16 @@ chart-threshold { } } +.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-custom-calculation { h3 { margin-top: 85px; @@ -3590,6 +3590,20 @@ chart-threshold { } } +.analytics .widget-item .content.accounts-payable-receivable { + h3 { + text-align: center; + } + .legend { + font-weight: bold; + } + .payable { + margin-top: 15px; + } + .price { + .center-bold(0px); + } +} .analytics .widget-item .content.accounts-profit-and-loss { .drill-down-widget(); @@ -3605,20 +3619,6 @@ chart-threshold { .row.widget-line.header > [class*='col-'] { position: static; } } -.analytics .widget-item .content.accounts-payable-receivable { - h3 { - text-align: center; - } - .legend { - font-weight: bold; - } - .payable { - margin-top: 15px; - } - .price { - .center-bold(0px); - } -} .analytics .widget-item .content.accounts-ratios { .left-panel { @@ -3783,6 +3783,9 @@ chart-threshold { } } +.analytics .widget-item .content.invoices-summary { + .simple-summary-widget(); +} .analytics .widget-item .content.invoices-list { .simple-list-widget(); @@ -3803,9 +3806,45 @@ chart-threshold { } } -.analytics .widget-item .content.invoices-summary { - .simple-summary-widget(); +.analytics .widget-item .content.sales-aged { + .tall-widget(); + + .widget-lines-container { + max-height: 238px; + } +} + +.analytics .widget-item .content.sales-customer-details { + .loader { + font-size: 14px; + } + font-size: 12px; + .details-container { + padding: 0px; + @media (min-width: @screen-md-min) { max-height: 194px; } + overflow-y: auto; + overflow-x: hidden; + } + .right-panel { + .details-container { + @media (min-width: @screen-md-min) { max-height: 230px; } + } + .legend { + margin-bottom: 5px; + } + } + .row.title { + text-align: center; + margin-bottom: 10px; + font-size: 14px; + } + + .currency-conversions { + float: left; + margin-right: 3px; + } } + .analytics .widget-item .content.sales-break-even { .price { .center-bold(0px); @@ -3863,48 +3902,6 @@ chart-threshold { } } -.analytics .widget-item .content.sales-aged { - .tall-widget(); - - .widget-lines-container { - max-height: 238px; - } -} - -.analytics .widget-item .content.sales-customer-details { - .loader { - font-size: 14px; - } - font-size: 12px; - .details-container { - padding: 0px; - @media (min-width: @screen-md-min) { max-height: 194px; } - overflow-y: auto; - overflow-x: hidden; - } - .right-panel { - .details-container { - @media (min-width: @screen-md-min) { max-height: 230px; } - } - .legend { - margin-bottom: 5px; - } - } - .row.title { - text-align: center; - margin-bottom: 10px; - font-size: 14px; - } - - .currency-conversions { - float: left; - margin-right: 3px; - } -} - -.analytics .widget-item .content.sales-cycle { - .simple-summary-widget(); -} .analytics .widget-item .content.sales-forecast { .tall-widget(); .widget-lines-container { @@ -3927,6 +3924,9 @@ chart-threshold { } } +.analytics .widget-item .content.sales-cycle { + .simple-summary-widget(); +} .analytics .widget-item .content.sales-leads-funnel { .funnel-widget(); } @@ -4047,10 +4047,6 @@ chart-threshold { } } } -.analytics .widget-item .content.sales-opportunities-funnel { - .funnel-widget(); -} - .analytics .widget-item .content.sales-performance { .drill-down-widget(); .right-panel .widget-lines-container { @@ -4061,6 +4057,10 @@ chart-threshold { } } +.analytics .widget-item .content.sales-opportunities-funnel { + .funnel-widget(); +} + .analytics .widget-item .content.sales-segmented-turnover { h3.right { margin-top: 55px; @@ -4535,7 +4535,7 @@ chart-threshold { } } } -.analytics .settings.source-selector { +.analytics .settings.payroll { .widget-lines-container { .widget-line { padding: 5px 10px 5px 18px; @@ -4544,10 +4544,10 @@ chart-threshold { float: right; font-size: 20px; cursor: pointer; - &.fa-toggle-on, &.fa-check-circle { + &.fa-toggle-on { color: @impac-widget-link-color; } - &.fa-toggle-off, &.fa-circle-thin { + &.fa-toggle-off { color: @impac-widget-text-color-medium; } } @@ -4555,7 +4555,7 @@ chart-threshold { } } -.analytics .settings.payroll { +.analytics .settings.source-selector { .widget-lines-container { .widget-line { padding: 5px 10px 5px 18px; @@ -4564,10 +4564,10 @@ chart-threshold { float: right; font-size: 20px; cursor: pointer; - &.fa-toggle-on { + &.fa-toggle-on, &.fa-check-circle { color: @impac-widget-link-color; } - &.fa-toggle-off { + &.fa-toggle-off, &.fa-circle-thin { color: @impac-widget-text-color-medium; } } diff --git a/dist/impac-angular.min.css b/dist/impac-angular.min.css index 12fe8d1e..4b2efaae 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 */.badge,.label,b,dt,kbd kbd,label,optgroup,strong{font-weight:700}.label,audio,canvas,progress,sub,sup,video{vertical-align:baseline}.btn,.btn-group,.btn-group-vertical,.caret,.checkbox-inline,.input-group-addon,.input-group-btn,.radio-inline,img{vertical-align:middle}hr,img{border:0}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}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}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}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,.popover,.tooltip,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}.popover,.tooltip,body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.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{margin:0;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}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}figure{margin:0}.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;background-color:#fff;border:1px solid #ddd;border-radius:4px;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 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,.label,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}p,pre{margin:0 0 10px}.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}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@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}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .input-group-addon,.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,.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}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}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}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%;line-height:1.42857143;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%}.dropdown-menu,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'}address{margin-bottom:20px;line-height:1.42857143}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;font-size:13px;line-height:1.42857143;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}.close,.jumbotron p,legend{font-size:21px}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-left:15px;padding-right:15px}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-left:15px;padding-right:15px}.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-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{float:left}.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}.form-control,.table .table{background-color:#fff}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-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;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;display:block;color:#555}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-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);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}.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-inline,.collapsing,.dropdown,.dropup,.has-feedback,.radio-inline{position:relative}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.btn-block+.btn-block,.help-block{margin-top:5px}.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-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}.btn-group-lg>.btn,.btn-lg,.form-group-lg .form-control,.input-lg{padding:10px 16px;font-size:18px}.input-lg{height:46px;line-height:1.3333333;border-radius:6px}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;border-radius:6px}.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 .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}.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{border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.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-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.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-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control,.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .checkbox,.form-inline .control-label,.form-inline .form-group,.form-inline .radio{margin-bottom:0;vertical-align:middle}.form-inline .form-control{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}.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}.badge,.btn,.input-group-addon,.label,.nav-justified>li>a,.nav-tabs.nav-justified>li>a,.pager,.progress-bar{text-align:center}.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;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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;background-image:none;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.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.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.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.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.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.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.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.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.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.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{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%}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;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;transition-property:height,visibility;transition-duration:.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;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;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;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}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.input-group-btn>.btn+.btn{margin-left:-1px}.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;background-image:none;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}}.modal,.modal-backdrop{right:0;position:fixed;top:0}.btn-group,.btn-group-vertical{position:relative;display:inline-block}.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-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left: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{float:left}.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 .caret{margin-left:0}.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,.input-group .form-control,.input-group-btn,.input-group-btn>.btn,.nav>li,.nav>li>a,.navbar{position:relative}.input-group{display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{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}.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}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;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{font-size:0;white-space:nowrap}.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{display:block}.nav>li>a{display:block;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{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-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{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{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{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}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@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}@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}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-static-top{border-radius:0}}.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){.navbar-fixed-bottom,.navbar-fixed-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;background-image:none;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}}@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,.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .checkbox,.navbar-form .control-label,.navbar-form .form-group,.navbar-form .radio{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{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}.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}@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}.breadcrumb,.pagination,.progress{border-radius:4px}.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}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0}.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}.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}.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}.close,.list-group-item>.badge{float:right}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;line-height:1;color:#fff;white-space:nowrap;border-radius:.25em}.badge,.progress-bar,.tooltip{font-size:12px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.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;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.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+.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-weight:200}.alert,.progress,.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}.list-group-item,.thumbnail{background-color:#fff;border:1px solid #ddd}.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;border-radius:4px;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,.panel-body{padding:15px}.alert{border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p+p,.panel-group .panel+.panel{margin-top:5px}.alert>p,.alert>ul{margin-bottom:0}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.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}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;background-color:#f5f5f5;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%;line-height:20px;color:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);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{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{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: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;overflow:hidden}.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}.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,.panel>.table-responsive>.table{margin-bottom:0}.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}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.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;overflow:hidden}.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{line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{line-break:auto;line-height:1.42857143;text-shadow:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-weight:400;text-decoration:none;text-transform: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-open{overflow:hidden}.modal{display:none;overflow:hidden;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transform:translate(0,-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{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{bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.carousel-control,.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.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;letter-spacing:normal;text-align:left;text-align:start;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;letter-spacing:normal;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)}.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}.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{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;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{transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{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%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0)}.carousel-control.left{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: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;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.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;overflow:hidden}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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-item .content.invoices-list .right-column,[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-left:0;padding-right:0}.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}#sync-apps-modal .fa.error,div[ng-messages]{color:red}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}.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}@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}*{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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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{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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-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:-ms-flexbox;display:flex;-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:-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:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-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{-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{-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:-ms-flexbox;display:flex;-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:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-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}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;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:hover,.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 .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon{color:#000}.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.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:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;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;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;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:-ms-flexbox;display:flex;-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;-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 textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{resize:none}.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;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;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;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;transition: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{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{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;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;transform-origin:left top;border-radius:.3125rem;content:'';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;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;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;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;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;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{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;-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{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{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:-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;-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 textarea{resize:none}.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;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;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;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;transition:transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{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{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;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;transform-origin:left top;border-radius:.3125rem;content:'';transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;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;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;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;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{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;-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{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{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;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{background-color:#fff;box-shadow:0 1px 8px -4px;position:relative}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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 .kpi .data-not-found .btn,.analytics .kpi .data-not-found .example,.analytics .kpi .data-not-found .overlay,.analytics .kpi .data-not-found .title,.analytics.pdf-mode kpis-bar>.kpis .actions{display:none}.analytics kpis-bar>.key-stats{background-color:#fff;padding:5px 0}.widget-item{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:-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;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;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}#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,#trends-add .message{z-index:6;min-height:160px;box-shadow:0 0 25px 0}#transactions-add .message{position:absolute;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;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 .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 select{height:22px}#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 select{height:22px}#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 .back .btn.btn-sm{margin-top:-4px}#transactions-list .top .back .search-bar{width:180px;display:inline;height:30px}#transactions-list .top .resource-type{margin:auto;display:-ms-flexbox;display:flex;width:370px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}@media (max-width:767px){#transactions-list .top .resource-type{margin:0;float:right;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:end;align-items:flex-end}}#transactions-list .top .btn-group{margin-left:3px}#transactions-list .top .no-margin-top{margin-top:0}#transactions-list .bottom{height:40px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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:-ms-flexbox;display:flex}#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-list .table-container .listing{outline-style:none}#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{position:absolute;padding-bottom:10px;background-color:#f4f8f9;border-radius:4px;top:30px;left:15%;width:70%}#trends-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#trends-add .message .wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}#trends-add .message .form{width:25%;display:inline-block;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-add .message .cash-projection-chart{width:74%;display:inline-block}.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,.analytics .widget-item .content.accounts-comparison .row{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.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}.analytics .widget-item .content .table-layout table{width:100%;max-width:100%}.analytics .widget-item .content .table-layout table td:not(.nested-table),.analytics .widget-item .content .table-layout table th{color:#626d6d;border-bottom:solid 1px #e6edee;padding:5px 0}.analytics .widget-item .content .table-layout table td:not(.nested-table):not(:first-child),.analytics .widget-item .content .table-layout table th:not(:first-child){text-align:right}.analytics .widget-item .content .table-layout table th[ng-click]{cursor:pointer}.analytics .widget-item .content .table-layout #table-layout>thead tr:first-child{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase;border-bottom:2px solid #e6edee;padding:5px 0}.analytics .widget-item .content .table-layout #table-layout .nested-table i.fa{padding-right:5px}chart-threshold .attach-panel{padding:5px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-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{-ms-flex-direction:column;flex-direction:column;-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:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-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%;-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:-ms-flexbox;display:flex;-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;-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 .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 .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.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 .time-period-info{font-size:11px;color:#ABC4C6;text-transform:uppercase}.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-summary{min-height:565px}@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.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}.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.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 .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}.analytics .widget-item .content.accounts-detailed-classifications{min-height:565px}@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-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}.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-cash-balance,.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}@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 .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.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.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-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}.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}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover,.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}@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 .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:145px}.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container,.analytics .widget-item .content.sales-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container,.analytics .widget-item .content.hr-workforce-summary .widget-lines-container,.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container{max-height:75px}.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 .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-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 .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}}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}@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 .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 .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.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-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}.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,.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-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-comparison .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,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.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}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line,.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main{cursor:pointer;border:1px solid #fff}@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 .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 .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}@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 .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-aged .widget-lines-container{max-height:238px}.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 .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-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-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{right:0;margin-top:-6px;width:10px;height:29px;position:absolute;display:block}.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 .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 .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col,.analytics .settings.time-period>.row>div,.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.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 .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 .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,.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{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 .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 .widget-item .content.accounts-cash-projection .edit .widget-lines-container,.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.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:-ms-flexbox;display:flex;-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 .settings.payroll .widget-lines-container .widget-line .fa,.analytics .settings.source-selector .widget-lines-container .widget-line .fa{font-size:20px;cursor:pointer;float:right}.analytics .settings.payroll .widget-lines-container .widget-line,.analytics .settings.source-selector .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.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.source-selector .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-check-circle,.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-circle-thin,.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{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}.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}@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:-ms-flexbox;display:flex;-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-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 .cash-projection-chart{height:calc(565px - 50px)}.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-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} \ No newline at end of file + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.badge,.label,b,dt,kbd kbd,label,optgroup,strong{font-weight:700}.label,audio,canvas,progress,sub,sup,video{vertical-align:baseline}.btn,.btn-group,.btn-group-vertical,.caret,.checkbox-inline,.input-group-addon,.input-group-btn,.radio-inline,img{vertical-align:middle}hr,img{border:0}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}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}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}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}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-style:normal;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{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}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}figure{margin:0}.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;background-color:#fff;border:1px solid #ddd;border-radius:4px;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 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,.label,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.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}@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}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .input-group-addon,.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,.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}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}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}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%;line-height:1.42857143;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%}.dropdown-menu,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'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}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;line-height:1.42857143;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}.close,.jumbotron p,legend{font-size:21px}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-left:15px;padding-right:15px}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-left:15px;padding-right:15px}.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-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{float:left}.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}.form-control,.table .table{background-color:#fff}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-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;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;display:block;color:#555}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-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);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}.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-inline,.collapsing,.dropdown,.dropup,.has-feedback,.radio-inline{position:relative}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.btn-block+.btn-block,.help-block{margin-top:5px}.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-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}.btn-group-lg>.btn,.btn-lg,.form-group-lg .form-control,.input-lg{padding:10px 16px;font-size:18px}.input-lg{height:46px;line-height:1.3333333;border-radius:6px}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;border-radius:6px}.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 .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}.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{border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.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-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.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-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control,.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .checkbox,.form-inline .control-label,.form-inline .form-group,.form-inline .radio{margin-bottom:0;vertical-align:middle}.form-inline .form-control{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}.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,.input-group-addon{padding:6px 12px;text-align:center;font-weight:400}.btn{display:inline-block;margin-bottom:0;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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;background-image:none;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.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.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.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.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.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.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.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.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.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.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{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%}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;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;transition-property:height,visibility;transition-duration:.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;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;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;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}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.input-group-btn>.btn+.btn{margin-left:-1px}.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;background-image:none;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}.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-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left: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{float:left}.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 .caret{margin-left:0}.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%}.media-object.img-thumbnail,.nav>li>a>img{max-width:none}.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,.input-group .form-control,.input-group-btn,.input-group-btn>.btn,.nav>li,.nav>li>a,.navbar{position:relative}.input-group{display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{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}.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}.input-group-addon{font-size:14px;line-height:1;color:#555;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{font-size:0;white-space:nowrap}.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{display:block}.nav>li>a{display:block;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-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-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{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.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{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}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@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}@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}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-static-top{border-radius:0}}.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){.navbar-fixed-bottom,.navbar-fixed-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;background-image:none;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}}@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,.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .checkbox,.navbar-form .control-label,.navbar-form .form-group,.navbar-form .radio{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{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}.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}@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}.breadcrumb,.pagination,.progress{border-radius:4px}.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}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0}.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}.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}.close,.list-group-item>.badge{float:right}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;border-radius:.25em}.badge,.progress-bar{font-size:12px;text-align:center}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.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;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.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+.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-weight:200}.alert,.progress,.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;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,.panel-body{padding:15px}.alert{border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p+p,.panel-group .panel+.panel{margin-top:5px}.alert>p,.alert>ul{margin-bottom:0}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.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}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;background-color:#f5f5f5;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%;line-height:20px;color:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);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{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{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: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;overflow:hidden}.media-body{width:10000px}.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,.panel>.table-responsive>.table{margin-bottom:0}.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}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.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;overflow:hidden}.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{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;line-height:1.42857143;text-shadow:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none;text-transform: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-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.analytics .legend,.analytics .widget-lines-container,.modal-open .modal{overflow-y:auto;overflow-x:hidden}.modal.fade .modal-dialog{transform:translate(0,-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{transform:translate(0,0)}.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;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.carousel-control,.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.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;letter-spacing:normal;line-break:auto;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;letter-spacing:normal;line-break:auto;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)}.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}.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{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;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{transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{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%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0)}.carousel-control.left{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: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;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.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;overflow:hidden}.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;color:#c4caca}.analytics .loader{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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{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-item .content.invoices-list .right-column,[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-left:0;padding-right:0}.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}#sync-apps-modal .fa.error,div[ng-messages]{color:red}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}.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}@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}*{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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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{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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-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:-ms-flexbox;display:flex;-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:-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:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-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{-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{-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:-ms-flexbox;display:flex;-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:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-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}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input,.analytics kpis-bar>.kpis .actions .im-form-group input{height:2.375rem}dashboard-templates-selector .templates .template{padding:5px 10px;color:#5B6667;border-bottom:1px solid #ececec}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 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:-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;-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 textarea{resize:none}.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;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;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;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-checkbox label:hover .im-helper,.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,.analytics kpis-bar>.kpis .actions .im-radio label:hover .im-helper{color:#358fdc}.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-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;transition:transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::after{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 .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,.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-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;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;transform-origin:left top;border-radius:.3125rem;content:'';transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;transform:rotate(-45deg)}.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;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;transition-delay:.28s}.analytics kpis-bar>.kpis .actions .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;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{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;-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{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{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;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}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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}.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;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:hover,.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 .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon{color:#000}.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.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:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;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;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;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:-ms-flexbox;display:flex;-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;-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 textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{resize:none}.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;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;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;transition:all .28s ease;box-shadow:none}.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,.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}.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],.analytics .settings.dates-picker button.btn.btn-sm{line-height:1}.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;transition: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{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{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;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;transform-origin:left top;border-radius:.3125rem;content:'';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;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;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;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;transition-delay:.28s}.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;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{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;-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{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{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}.widget-item .content,.widget-item .top-line{background-color:#fff;box-shadow:0 1px 8px -4px;position:relative}.analytics .impac-kpi .kpi .kpi-data-loader{width:100%;min-height:95px}.analytics kpis-bar>.key-stats .kpi{min-height:80px}.widget-item{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:-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;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;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}#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 .back .btn.btn-sm{margin-top:-4px}#transactions-list .top .back .search-bar{width:180px;display:inline;height:30px}#transactions-list .top .resource-type{margin:auto;display:-ms-flexbox;display:flex;width:370px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}@media (max-width:767px){#transactions-list .top .resource-type{margin:0;float:right;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:end;align-items:flex-end}}#transactions-list .top .btn-group{margin-left:3px}#transactions-list .top .no-margin-top{margin-top:0}#transactions-list .bottom{height:40px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items: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%}#trends-add .overlay,.analytics widgets-common-confirm-modal .overlay{height:calc(100% - 4px);width:calc(100% - 4px);opacity:.6;position:absolute}#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:-ms-flexbox;display:flex}#trends-add{text-align:center;font-size:13px;color:#5B6667}#trends-add .overlay{background-color:#fff;top:2px;left:2px;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:15%;width:70%}#trends-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#trends-add .message .wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}#trends-add .message .form{width:25%;display:inline-block;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-add .message .cash-projection-chart{width:74%;display:inline-block}#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-list .table-container .listing{outline-style:none}.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,.analytics .widget-item .content.accounts-comparison .row{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.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}.analytics .widget-item .content .table-layout table{width:100%;max-width:100%}.analytics .widget-item .content .table-layout table td:not(.nested-table),.analytics .widget-item .content .table-layout table th{color:#626d6d;border-bottom:solid 1px #e6edee;padding:5px 0}.analytics .widget-item .content .table-layout table td:not(.nested-table):not(:first-child),.analytics .widget-item .content .table-layout table th:not(:first-child){text-align:right}.analytics .widget-item .content .table-layout table th[ng-click]{cursor:pointer}.analytics .widget-item .content .table-layout #table-layout>thead tr:first-child{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase;border-bottom:2px solid #e6edee;padding:5px 0}.analytics .widget-item .content .table-layout #table-layout .nested-table i.fa{padding-right:5px}chart-threshold .attach-panel{padding:5px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-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{-ms-flex-direction:column;flex-direction:column;-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;top:2px;left:2px;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:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between}.analytics .widget-item .content.accounts-balance-sheet,.analytics .widget-item .content.accounts-cash-summary,.analytics .widget-item .content.accounts-comparison,.analytics .widget-item .content.accounts-detailed-classifications{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 .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:-ms-flexbox;display:flex;-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;-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 .widget-item .editable-title{width:100%;-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 .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 .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.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}@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}@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.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}@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 .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-class-comparison .param-selector{text-align:center}.analytics .widget-item .content.accounts-class-comparison .widget-lines-container{max-height:94px;color:#626d6d}.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-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}.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-cash-balance,.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 .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.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.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-salaries-summary .widget-lines-container,.analytics .widget-item .content.hr-workforce-summary .widget-lines-container{max-height:75px}.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 .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-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 .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}}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}@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-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}.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}@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-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-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-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,.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-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-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-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-forecast .edit .widget-lines-container,.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-comparison .currency-conversions img{margin-top:-2px}@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-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}.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-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-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-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{right:0;margin-top:-6px;width:10px;height:29px;position:absolute;display:block}.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 .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col,.analytics .settings.time-period>.row>div,.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.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}@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}.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 .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,.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{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 .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 .widget-item .content.accounts-cash-projection .edit .widget-lines-container,.analytics .widget-item .content.accounts-invoices-list .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.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:-ms-flexbox;display:flex;-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 .settings.payroll .widget-lines-container .widget-line .fa,.analytics .settings.source-selector .widget-lines-container .widget-line .fa{font-size:20px;cursor:pointer;float:right}.analytics .settings.payroll .widget-lines-container .widget-line,.analytics .settings.source-selector .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.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.payroll .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.payroll .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.payroll .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.source-selector .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-check-circle,.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-circle-thin,.analytics .settings.source-selector .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.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:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{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}.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}@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:-ms-flexbox;display:flex;-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-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 .cash-projection-chart{height:calc(565px - 50px)}.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-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} \ No newline at end of file diff --git a/dist/impac-angular.min.js b/dist/impac-angular.min.js index ea9b988b..44bd5c54 100644 --- a/dist/impac-angular.min.js +++ b/dist/impac-angular.min.js @@ -1,22 +1,22 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.8.5 + * @version v1.8.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-layouts","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-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-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-layouts",["impac.components.widgets-layouts.table","impac.components.widgets-layouts.accounts-cash-balance","impac.components.widgets-layouts.accounts-cash-projection"]),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.payroll","impac.components.widgets-settings.source-selector"]),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.widgets-templates","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