﻿.contact-form{position:relative}.contact-form.response-ok .contact-form__response{display:flex}.contact-form br,.email-modal br{display:none}.email-modal__close:hover{color:var(--wp--preset--color--primary, #B5CB00)}.contact-form .checkbox a,.contact-form__link{text-decoration:underline}.contact-form .checkbox p,.contact-form .contact-form-row p{margin:0}.contact-form label{display:block;margin:25px 0 5px;font-size:12px;font-weight:400}.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea{display:block;width:100%;border-radius:0;background:0 0;padding:1.0625rem 1rem;border:none;border:1px solid rgba(57,58,66,.102);font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:400;font-size:.875rem;line-height:1;border-radius:.25rem;font-weight:400;font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:700}.contact-form p:has(.wpcf7-not-valid-tip) input:not([type=checkbox]),.contact-form p:has(.wpcf7-not-valid-tip) select,.contact-form p:has(.wpcf7-not-valid-tip) textarea{border-color:crimson}.contact-form input:not([type=checkbox]):focus:invalid,.contact-form select:focus:invalid,.contact-form textarea:focus:invalid{border-color:crimson}.contact-form select{border:none;background-color:var(--wp--preset--color--primary, #B5CB00);color:var(--wp--preset--color--light, #FFFFFF);padding:14px;font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:800}.contact-form textarea{height:120px;resize:vertical}.contact-form .checkbox{margin:15px 0;position:relative}.contact-form .checkbox label{display:grid;grid-template-columns:30px auto;grid-gap:18px;align-items:center}.contact-form .checkbox label:before{display:block;content:"";width:30px;height:30px;border:1px solid var(--wp--preset--color--bg-dark, #363740);border-radius:15px;text-align:center;font-size:20px;line-height:1.6;font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:800;color:var(--wp--preset--color--light, #FFFFFF);transition:.3s}.contact-form .checkbox input{position:absolute;top:calc(50% + 30px);opacity:0}.contact-form .checkbox input:checked~label:before{content:"✓";border-color:var(--wp--preset--color--primary, #B5CB00);background-color:var(--wp--preset--color--primary, #B5CB00)}.contact-form .checkbox input:focus{background:var(--wp--preset--color--light, #FFFFFF)}.contact-form .checkbox input:focus:invalid~label:before{border-color:red}.contact-form--loading:before{content:"Wysyłanie...";background:hsla(0,0%,100%,.95);display:flex}.contact-form--loading:before,.contact-form__response{position:absolute;z-index:100;left:-10px;top:-60px;width:calc(100% + 20px);height:calc(100% + 80px);text-align:center;align-items:center;justify-content:center}.contact-form__response{background:var(--wp--preset--color--light, #FFFFFF);display:none}.contact-form .contact-form-row a:focus-visible,.contact-form .contact-form-row button:focus-visible,.contact-form .contact-form-row select:focus-visible{outline:#000 solid 2px}.contact-form .contact-form-row:not(:last-child)>*{margin-bottom:20px}.contact-form .contact-form-row label{margin:0 0 5px}.contact-form .contact-form-row select{margin-top:5px}.contact-form .contact-form-row input:not([type=checkbox]){padding:1.0625rem 1rem}.contact-form .contact-form-row.contact-form-note p{font-size:12px}.contact-form .contact-form-row button{margin-top:20px;border:none;background:var(--wp--preset--color--primary, #B5CB00);border-radius:.25rem;color:var(--wp--preset--color--dark, #000000);padding:1.0625rem 2rem;width:max-content;z-index:10;font-size:.875rem;font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:700;min-width:250px}.contact-form .contact-form-row button i{display:none}.contact-form .contact-form-row button u{color:var(--wp--preset--color--dark, #000000);font-weight:700;position:absolute;z-index:1000;width:100%;text-align:center;left:0;transition:.3s;display:block;text-decoration:none;font-style:normal}.contact-form .contact-form-row button:hover u{transform:unset}.contact-form .contact-form-row button span{width:100%;display:block;overflow:hidden;z-index:1000;position:relative;cursor:pointer}.contact-form .contact-form-row button:hover{background:linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)),var(--wp--preset--color--primary, #B5CB00);background-blend-mode:multiply}.contact-form .contact-form-row button::before{display:none}.contact-form .contact-form-row.contact-form-text p{font-size:12px;margin-bottom:16px;margin-top:-4px}.wpcf7 form.sent .wpcf7-response-output{border-color:var(--wp--preset--color--primary, #B5CB00)}@media only screen and (min-width: 768px){.contact-form .contact-form-row{display:flex;gap:30px}.contact-form .contact-form-row>*{flex:1}}.email-modal{display:none;position:fixed;top:200px;left:calc(50% - 270px);width:540px;margin:auto;padding:25px;border-radius:5px;z-index:7000;background-color:var(--wp--preset--color--light, #FFFFFF);box-shadow:0 0 10px rgba(0,0,0,.1)}.email-modal__close{position:absolute;right:15px;top:10px;border:none;background:0 0;font-size:24px;cursor:pointer}.email-modal h3{margin:10px 0 15px;font-size:15px}.email-modal .wpcf7-email,.email-modal .wpcf7-number{width:100%;margin:15px 0;display:block;padding:10px;border:1px solid var(--wp--preset--color--dark, #000000);font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:400}.email-modal .wpcf7-email::-webkit-inner-spin-button,.email-modal .wpcf7-email::-webkit-outer-spin-button,.email-modal .wpcf7-number::-webkit-inner-spin-button,.email-modal .wpcf7-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.email-modal .wpcf7-email[type=number],.email-modal .wpcf7-number[type=number]{-moz-appearance:textfield}.email-modal .wpcf7-list-item{margin:5px 0;font-weight:400;font-size:12px}.email-modal .wpcf7-list-item label{display:flex;align-items:flex-start}.email-modal .wpcf7-list-item label input{margin-top:5px;margin-right:10px}.email-modal .wpcf7-submit{font-family:var(--wp--preset--font-family--primary, "Sora", "Helvetica Neue", "Arial", sans-serif);font-weight:400;display:block;margin:15px 0 0;width:100%;padding:15px;background-color:var(--wp--preset--color--primary, #B5CB00);color:var(--wp--preset--color--light, #FFFFFF);border:none;border-radius:50px;transition:.3s}.email-modal .wpcf7-submit:disabled{background-color:gray;opacity:.8}.email-modal .wpcf7-submit:hover{cursor:pointer;opacity:.8}.email-modal p{margin:0;font-weight:400;font-size:14px}.email-modal .wpcf7-not-valid-tip{margin-top:-5px}.email-modal .wpcf7-response-output{margin:10px 0 0 !important;font-size:12px !important;padding:5px 10px !important;border:1px solid red !important}.contact-form .contact-form-label h5{font-size:1rem;margin-top:1.25rem;margin-bottom:0.625rem}@media(min-width: 768px){.contact-form .contact-form-label h5{margin-top:1rem;margin-bottom:0.625rem;font-size:1.125rem}}.contact-form select,.contact-form input[type=text],.contact-form input[type=tel],.contact-form input[type=email],.contact-form input[type=date]{border:1px solid var(--wp--preset--color--light, #FFFFFF)}.contact-form select{background-color:var(--wp--preset--color--dark, #000000);border:1px solid var(--wp--preset--color--light, #FFFFFF)}.contact-form select option{font-family:sans-serif}.contact-form .checkbox{cursor:pointer}.contact-form .checkbox p{margin:0}.contact-form .checkbox .wpcf7-list-item{margin-left:0}.contact-form .checkbox label{align-items:flex-start}@media(min-width: 768px){.contact-form .checkbox label{font-size:0.875rem}}.contact-form .checkbox label::before{border-radius:0.25rem;border:1px solid var(--wp--preset--color--light, #FFFFFF)}.contact-form .checkbox label::after{content:"";width:0.875rem;aspect-ratio:1;background-color:var(--wp--preset--color--light, #FFFFFF);border-radius:0.25rem;position:absolute;top:0.4375rem;left:0.5rem;opacity:0;transition:opacity .2s ease}@media(min-width: 768px){.contact-form .checkbox label::after{top:0.5rem}}.contact-form .checkbox label:has(input:focus)::before{outline:4px solid var(--wp--preset--color--primary, #B5CB00)}.contact-form .checkbox label:has(input:checked)::after{opacity:1}@media(max-width: 767px){.contact-form .button{width:100%}}.contact-form p:has(.wpcf7-not-valid-tip) input:not([type=checkbox]),.contact-form p:has(.wpcf7-not-valid-tip) select,.contact-form p:has(.wpcf7-not-valid-tip) textarea{border-color:#ff9292}.wpcf7-not-valid-tip{color:#ff9292}.wpcf7-response-output{border-color:rgba(0,0,0,0) !important;padding:0 !important;margin-left:0 !important;margin-right:0 !important;margin-top:1.25rem}.screen-reader-response{clip:rect(1px, 1px, 1px, 1px);position:absolute !important;white-space:nowrap;height:1px;width:1px;overflow:hidden}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwLWNvbnRlbnQvdGhlbWVzL3dlbGwtZml0bmVzcy1jaGlsZC9hc3NldHMvc2Nzcy9zaGFyZWQvY29udGFjdC1mb3JtL3N0eWxlLnNjc3MiLCJ3cC1jb250ZW50L3RoZW1lcy93ZWxsLWZpdG5lcy9hc3NldHMvc2Nzcy9fX3NldHRpbmdzL192YXJpYWJsZXMuc2NzcyIsIndwLWNvbnRlbnQvdGhlbWVzL3dlbGwtZml0bmVzL2Fzc2V0cy9zY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQ0FFQSxjQUNDLGtCQUdELGtEQUNDLGFBR0QsaUNBRUMsYUFHRCwwQkFDQyxNQ1RnQiwyQ0RZakIsOENBRUMsMEJBR0QsNERBRUMsU0FHRCxvQkFDQyxjQUNBLGtCQUNBLGVBQ0EsZ0JBR0QscUZBR0MsY0FDQSxXQUNBLGdCQUNBLGVBQ0EsdUJBQ0EsWUFDQSxxQ0FDQSxZQzVCYyx1RkQ2QmQsZ0JBQ0Esa0JBQ0EsY0FDQSxxQkFDQSxnQkFDQSxZQ2xDYyx1RkRtQ2QsZ0JBR0QseUtBR0MscUJBR0QsK0hBR0MscUJBR0QscUJBQ0MsWUFDQSxpQkMvRGdCLDJDRGdFaEIsTUNwRWMseUNEcUVkLGFBQ0EsWUN2RGMsdUZEd0RkLGdCQUdELHVCQUNDLGFBQ0EsZ0JBR0Qsd0JBQ0MsY0FDQSxrQkFHRCw4QkFDQyxhQUNBLGdDQUNBLGNBQ0EsbUJBR0QscUNBQ0MsY0FDQSxXQUNBLFdBQ0EsWUFDQSw0REFDQSxtQkFDQSxrQkFDQSxlQUNBLGdCQUNBLFlDdEZjLHVGRHVGZCxnQkFDQSxNQ3ZHYyx5Q0R3R2QsZUFHRCw4QkFDQyxrQkFDQSxxQkFDQSxVQUdELG1EQUNDLFlBQ0EsYUMvR2dCLDJDRGdIaEIsaUJDaEhnQiwyQ0RtSGpCLG9DQUNDLFdDeEhjLHlDRDJIZix5REFDQyxpQkFHRCw4QkFDQyx1QkFDQSwrQkFDQSxhQUdELHNEQUVDLGtCQUNBLFlBQ0EsV0FDQSxVQUNBLHdCQUNBLHlCQUNBLGtCQUNBLG1CQUNBLHVCQUdELHdCQUNDLFdDbkpjLHlDRG9KZCxhQUdELDBKQUdDLHVCQUdELG1EQUNDLG1CQUdELHNDQUNDLGVBR0QsdUNBQ0MsZUFHRCwyREFDQyx1QkFHRCxvREFDQyxlQUdELHVDQUNDLGdCQUNBLFlBQ0EsV0NoTGdCLDJDRGlMaEIscUJBQ0EsTUNyTGEsd0NEc0xiLHVCQUNBLGtCQUNBLFdBQ0Esa0JBQ0EsWUM1S2MsdUZENktkLGdCQUNBLGdCQUdELHlDQUNDLGFBR0QseUNBQ0MsTUNwTWEsd0NEcU1iLGdCQUNBLGtCQUNBLGFBQ0EsV0FDQSxrQkFDQSxPQUNBLGVBQ0EsY0FDQSxxQkFDQSxrQkFHRCwrQ0FDQyxnQkFHRCw0Q0FDQyxXQUNBLGNBQ0EsZ0JBQ0EsYUFDQSxrQkFDQSxlQUdELDZDQUNDLGdIQUNBLCtCQUdELCtDQUNDLGFBR0Qsb0RBQ0MsZUFDQSxtQkFDQSxnQkFHRCx3Q0FDQyxhQzNPZ0IsMkNEOE9qQiwwQ0FDQyxnQ0FDQyxhQUNBLFNBR0Qsa0NBQ0MsUUFJRixhQUNDLGFBQ0EsZUFDQSxVQUNBLHVCQUNBLFlBQ0EsWUFDQSxhQUNBLGtCQUNBLGFBQ0EsaUJDdlFjLHlDRHdRZCxtQ0FHRCxvQkFDQyxrQkFDQSxXQUNBLFNBQ0EsWUFDQSxlQUNBLGVBQ0EsZUFHRCxnQkFDQyxtQkFDQSxlQUdELHFEQUVDLFdBQ0EsY0FDQSxjQUNBLGFBQ0EseURBQ0EsWUNsUmMsdUZEbVJkLGdCQUdELHNOQUlDLHdCQUNBLFNBR0QsK0VBRUMsMEJBR0QsOEJBQ0MsYUFDQSxnQkFDQSxlQUdELG9DQUNDLGFBQ0EsdUJBR0QsMENBQ0MsZUFDQSxrQkFHRCwyQkFDQyxZQ3BUYyx1RkRxVGQsZ0JBQ0EsY0FDQSxnQkFDQSxXQUNBLGFBQ0EsaUJDclVnQiwyQ0RzVWhCLE1DMVVjLHlDRDJVZCxZQUNBLG1CQUNBLGVBR0Qsb0NBQ0Msc0JBQ0EsV0FHRCxpQ0FDQyxlQUNBLFdBR0QsZUFDQyxTQUNBLGdCQUNBLGVBR0Qsa0NBQ0MsZ0JBR0Qsb0NBQ0MsMkJBQ0EsMEJBQ0EsNEJBQ0EsZ0NBUUMscUNBQ0MsZUFDQSxtQkFDQSx1QkV5TEQseUJGNUxBLHFDQU1FLGdCQUNBLHVCQUNBLG9CQUtILGlKQUtDLDBEQUdELHFCQUNDLGlCQ3JZWSx3Q0RzWVosMERBRUEsNEJBQ0MsdUJBSUYsd0JBQ0MsZUFFQSwwQkFDQyxTQUdELHlDQUNDLGNBR0QsOEJBQ0MsdUJFa0pELHlCRm5KQSw4QkFJRSxvQkFHRCxzQ0FDQyxzQkFDQSwwREFHRCxxQ0FDQyxXQUNBLGVBQ0EsZUFDQSxpQkN6YVcseUNEMGFYLHNCQUNBLGtCQUNBLGNBQ0EsWUFDQSxVQUNBLDRCRTZIRix5QkZ2SUMscUNBYUUsWUFLRCx1REFDQyw2REFLRCx3REFDQyxVRThHSCx5QkZ4R0Qsc0JBRUUsWUFLSCx5S0FDQyxxQkFHRCxxQkFDQyxjQUdELHVCQUNDLHNDQUNBLHFCQUNBLHlCQUNBLDBCQUNBLG1CQUdELHdCQUNDLDhCQUNBLDZCQUNBLG1CQUNBLFdBQ0EsVUFDQSIsImZpbGUiOiJ3cC1jb250ZW50L3RoZW1lcy93ZWxsLWZpdG5lc3MtY2hpbGQvYXNzZXRzL3Njc3Mvc2hhcmVkL2NvbnRhY3QtZm9ybS9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiX19zZXR0aW5ncy9pbml0XCI7XG5cbi5jb250YWN0LWZvcm0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jb250YWN0LWZvcm0ucmVzcG9uc2Utb2sgLmNvbnRhY3QtZm9ybV9fcmVzcG9uc2Uge1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuXG4uY29udGFjdC1mb3JtIGJyLFxuLmVtYWlsLW1vZGFsIGJyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmVtYWlsLW1vZGFsX19jbG9zZTpob3ZlciB7XG5cdGNvbG9yOiAkY29sb3ItLXByaW1hcnk7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IGEsXG4uY29udGFjdC1mb3JtX19saW5rIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IHAsXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93IHAge1xuXHRtYXJnaW46IDA7XG59XG5cbi5jb250YWN0LWZvcm0gbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAyNXB4IDAgNXB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5jb250YWN0LWZvcm0gaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pLFxuLmNvbnRhY3QtZm9ybSBzZWxlY3QsXG4uY29udGFjdC1mb3JtIHRleHRhcmVhIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRiYWNrZ3JvdW5kOiAwIDA7XG5cdHBhZGRpbmc6IDEuMDYyNXJlbSAxcmVtO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTcsIDU4LCA2NiwgMC4xMDIpO1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0Zm9udC1zaXplOiAwLjg3NXJlbTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuXHRmb250LXdlaWdodDogNzAwO1xufVxuXG4uY29udGFjdC1mb3JtIHA6aGFzKC53cGNmNy1ub3QtdmFsaWQtdGlwKSBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSksXG4uY29udGFjdC1mb3JtIHA6aGFzKC53cGNmNy1ub3QtdmFsaWQtdGlwKSBzZWxlY3QsXG4uY29udGFjdC1mb3JtIHA6aGFzKC53cGNmNy1ub3QtdmFsaWQtdGlwKSB0ZXh0YXJlYSB7XG5cdGJvcmRlci1jb2xvcjogI2RjMTQzYztcbn1cblxuLmNvbnRhY3QtZm9ybSBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6Zm9jdXM6aW52YWxpZCxcbi5jb250YWN0LWZvcm0gc2VsZWN0OmZvY3VzOmludmFsaWQsXG4uY29udGFjdC1mb3JtIHRleHRhcmVhOmZvY3VzOmludmFsaWQge1xuXHRib3JkZXItY29sb3I6ICNkYzE0M2M7XG59XG5cbi5jb250YWN0LWZvcm0gc2VsZWN0IHtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXByaW1hcnk7XG5cdGNvbG9yOiAkY29sb3ItLWxpZ2h0O1xuXHRwYWRkaW5nOiAxNHB4O1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLmNvbnRhY3QtZm9ybSB0ZXh0YXJlYSB7XG5cdGhlaWdodDogMTIwcHg7XG5cdHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IHtcblx0bWFyZ2luOiAxNXB4IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY2hlY2tib3ggbGFiZWwge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwcHggYXV0bztcblx0Z3JpZC1nYXA6IDE4cHg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjb250ZW50OiBcIlwiO1xuXHR3aWR0aDogMzBweDtcblx0aGVpZ2h0OiAzMHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItLWJnLWRhcms7XG5cdGJvcmRlci1yYWRpdXM6IDE1cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1zaXplOiAyMHB4O1xuXHRsaW5lLWhlaWdodDogMS42O1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0Y29sb3I6ICRjb2xvci0tbGlnaHQ7XG5cdHRyYW5zaXRpb246IDAuM3M7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IGlucHV0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IGNhbGMoNTAlICsgMzBweCk7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuXHRjb250ZW50OiBcIuKck1wiO1xuXHRib3JkZXItY29sb3I6ICRjb2xvci0tcHJpbWFyeTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xufVxuXG4uY29udGFjdC1mb3JtIC5jaGVja2JveCBpbnB1dDpmb2N1cyB7XG5cdGJhY2tncm91bmQ6ICRjb2xvci0tbGlnaHQ7XG59XG5cbi5jb250YWN0LWZvcm0gLmNoZWNrYm94IGlucHV0OmZvY3VzOmludmFsaWQgfiBsYWJlbDpiZWZvcmUge1xuXHRib3JkZXItY29sb3I6IHJlZDtcbn1cblxuLmNvbnRhY3QtZm9ybS0tbG9hZGluZzpiZWZvcmUge1xuXHRjb250ZW50OiBcIld5c3nFgmFuaWUuLi5cIjtcblx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMTAwJSwgMC45NSk7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jb250YWN0LWZvcm0tLWxvYWRpbmc6YmVmb3JlLFxuLmNvbnRhY3QtZm9ybV9fcmVzcG9uc2Uge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDEwMDtcblx0bGVmdDogLTEwcHg7XG5cdHRvcDogLTYwcHg7XG5cdHdpZHRoOiBjYWxjKDEwMCUgKyAyMHB4KTtcblx0aGVpZ2h0OiBjYWxjKDEwMCUgKyA4MHB4KTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNvbnRhY3QtZm9ybV9fcmVzcG9uc2Uge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3ItLWxpZ2h0O1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93IGE6Zm9jdXMtdmlzaWJsZSxcbi5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cgYnV0dG9uOmZvY3VzLXZpc2libGUsXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93IHNlbGVjdDpmb2N1cy12aXNpYmxlIHtcblx0b3V0bGluZTogYmxhY2sgc29saWQgMnB4O1xufVxuXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93Om5vdCg6bGFzdC1jaGlsZCkgPiAqIHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyBsYWJlbCB7XG5cdG1hcmdpbjogMCAwIDVweDtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyBzZWxlY3Qge1xuXHRtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cgaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pIHtcblx0cGFkZGluZzogMS4wNjI1cmVtIDFyZW07XG59XG5cbi5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cuY29udGFjdC1mb3JtLW5vdGUgcCB7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyBidXR0b24ge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdGJhY2tncm91bmQ6ICRjb2xvci0tcHJpbWFyeTtcblx0Ym9yZGVyLXJhZGl1czogMC4yNXJlbTtcblx0Y29sb3I6ICRjb2xvci0tZGFyaztcblx0cGFkZGluZzogMS4wNjI1cmVtIDJyZW07XG5cdHdpZHRoOiBtYXgtY29udGVudDtcblx0ei1pbmRleDogMTA7XG5cdGZvbnQtc2l6ZTogMC44NzVyZW07XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRtaW4td2lkdGg6IDI1MHB4O1xufVxuXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93IGJ1dHRvbiBpIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyBidXR0b24gdSB7XG5cdGNvbG9yOiAkY29sb3ItLWRhcms7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTAwMDtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bGVmdDogMDtcblx0dHJhbnNpdGlvbjogMC4zcztcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93IGJ1dHRvbjpob3ZlciB1IHtcblx0dHJhbnNmb3JtOiB1bnNldDtcbn1cblxuLmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyBidXR0b24gc3BhbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ei1pbmRleDogMTAwMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cgYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpLCAkY29sb3ItLXByaW1hcnk7XG5cdGJhY2tncm91bmQtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG59XG5cbi5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cgYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY29udGFjdC1mb3JtIC5jb250YWN0LWZvcm0tcm93LmNvbnRhY3QtZm9ybS10ZXh0IHAge1xuXHRmb250LXNpemU6IDEycHg7XG5cdG1hcmdpbi1ib3R0b206IDE2cHg7XG5cdG1hcmdpbi10b3A6IC00cHg7XG59XG5cbi53cGNmNyBmb3JtLnNlbnQgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG5cdGJvcmRlci1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG5cdC5jb250YWN0LWZvcm0gLmNvbnRhY3QtZm9ybS1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0Z2FwOiAzMHB4O1xuXHR9XG5cblx0LmNvbnRhY3QtZm9ybSAuY29udGFjdC1mb3JtLXJvdyA+ICoge1xuXHRcdGZsZXg6IDE7XG5cdH1cbn1cblxuLmVtYWlsLW1vZGFsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDIwMHB4O1xuXHRsZWZ0OiBjYWxjKDUwJSAtIDI3MHB4KTtcblx0d2lkdGg6IDU0MHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdHBhZGRpbmc6IDI1cHg7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0ei1pbmRleDogNzAwMDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1saWdodDtcblx0Ym94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4uZW1haWwtbW9kYWxfX2Nsb3NlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTVweDtcblx0dG9wOiAxMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdGJhY2tncm91bmQ6IDAgMDtcblx0Zm9udC1zaXplOiAyNHB4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5lbWFpbC1tb2RhbCBoMyB7XG5cdG1hcmdpbjogMTBweCAwIDE1cHg7XG5cdGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1lbWFpbCxcbi5lbWFpbC1tb2RhbCAud3BjZjctbnVtYmVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogMTVweCAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMTBweDtcblx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yLS1kYXJrO1xuXHRmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1lbWFpbDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5lbWFpbC1tb2RhbCAud3BjZjctZW1haWw6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4uZW1haWwtbW9kYWwgLndwY2Y3LW51bWJlcjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5lbWFpbC1tb2RhbCAud3BjZjctbnVtYmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRtYXJnaW46IDA7XG59XG5cbi5lbWFpbC1tb2RhbCAud3BjZjctZW1haWxbdHlwZT1cIm51bWJlclwiXSxcbi5lbWFpbC1tb2RhbCAud3BjZjctbnVtYmVyW3R5cGU9XCJudW1iZXJcIl0ge1xuXHQtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1saXN0LWl0ZW0ge1xuXHRtYXJnaW46IDVweCAwO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbi5lbWFpbC1tb2RhbCAud3BjZjctbGlzdC1pdGVtIGxhYmVsIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5lbWFpbC1tb2RhbCAud3BjZjctbGlzdC1pdGVtIGxhYmVsIGlucHV0IHtcblx0bWFyZ2luLXRvcDogNXB4O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5lbWFpbC1tb2RhbCAud3BjZjctc3VibWl0IHtcblx0Zm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDE1cHggMCAwO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMTVweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1wcmltYXJ5O1xuXHRjb2xvcjogJGNvbG9yLS1saWdodDtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiA1MHB4O1xuXHR0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uZW1haWwtbW9kYWwgLndwY2Y3LXN1Ym1pdDpkaXNhYmxlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IGdyZXk7XG5cdG9wYWNpdHk6IDAuODtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1zdWJtaXQ6aG92ZXIge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG9wYWNpdHk6IDAuODtcbn1cblxuLmVtYWlsLW1vZGFsIHAge1xuXHRtYXJnaW46IDA7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1ub3QtdmFsaWQtdGlwIHtcblx0bWFyZ2luLXRvcDogLTVweDtcbn1cblxuLmVtYWlsLW1vZGFsIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuXHRtYXJnaW46IDEwcHggMCAwICFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiA1cHggMTBweCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDFweCBzb2xpZCByZWQgIWltcG9ydGFudDtcbn1cblxuLy8gLS0tIENoaWxkIHRoZW1lIHJlZmluZW1lbnRzIChtb3ZlZCBmcm9tIGZsZXhpYmxlL2N0YS1tb2R1bGUvc3R5bGUuc2NzcyBzbyB0aGV5XG4vLyBhcHBseSB0byBldmVyeSBDRjcgZm9ybSBzaXRlLXdpZGUgaW5zdGVhZCBvZiBvbmx5IGluc2lkZSB0aGUgQ1RBIG1vZHVsZSBzaWRlYmFyKSAtLS1cblxuLmNvbnRhY3QtZm9ybSB7XG5cdC5jb250YWN0LWZvcm0tbGFiZWwge1xuXHRcdGg1IHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKDE2KTtcblx0XHRcdG1hcmdpbi10b3A6IHJlbSgyMCk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oMTYpO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgxOCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0c2VsZWN0LFxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0aW5wdXRbdHlwZT1cInRlbFwiXSxcblx0aW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuXHRpbnB1dFt0eXBlPVwiZGF0ZVwiXSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yLS1saWdodDtcblx0fVxuXG5cdHNlbGVjdCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLS1kYXJrO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci0tbGlnaHQ7XG5cblx0XHRvcHRpb24ge1xuXHRcdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdFx0fVxuXHR9XG5cblx0LmNoZWNrYm94IHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHQud3BjZjctbGlzdC1pdGVtIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdH1cblxuXHRcdGxhYmVsIHtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbSgxNCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yLS1saWdodDtcblx0XHRcdH1cblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHR3aWR0aDogcmVtKDE0KTtcblx0XHRcdFx0YXNwZWN0LXJhdGlvOiAxO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWxpZ2h0O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0oNCk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiByZW0oNyk7XG5cdFx0XHRcdGxlZnQ6IHJlbSg4KTtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcblx0XHRcdFx0XHR0b3A6IHJlbSg4KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmhhcyhpbnB1dDpmb2N1cykge1xuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdG91dGxpbmU6IDRweCBzb2xpZCAkY29sb3ItLXByaW1hcnk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JjpoYXMoaW5wdXQ6Y2hlY2tlZCkge1xuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5idXR0b24ge1xuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPG1kXCIpIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4uY29udGFjdC1mb3JtIHA6aGFzKC53cGNmNy1ub3QtdmFsaWQtdGlwKSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKSwgLmNvbnRhY3QtZm9ybSBwOmhhcygud3BjZjctbm90LXZhbGlkLXRpcCkgc2VsZWN0LCAuY29udGFjdC1mb3JtIHA6aGFzKC53cGNmNy1ub3QtdmFsaWQtdGlwKSB0ZXh0YXJlYSB7XG5cdGJvcmRlci1jb2xvcjogI2ZmOTI5Mjtcbn1cblxuLndwY2Y3LW5vdC12YWxpZC10aXAge1xuXHRjb2xvcjogI2ZmOTI5Mjtcbn1cblxuLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLXRvcDogcmVtKDIwKTtcbn1cblxuLnNjcmVlbi1yZWFkZXItcmVzcG9uc2Uge1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDFweDtcblx0b3ZlcmZsb3c6IGhpZGRlblxufVxuIiwiLy8gQ29sb3IgdmFyaWFibGVzIHVzaW5nIENTUyBjdXN0b20gcHJvcGVydGllcyB3aXRoIGZhbGxiYWNrc1xuXG4vLyBCbGFjayBhbmQgd2hpdGVcbiRjb2xvci0tbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1saWdodCwgI0ZGRkZGRik7XG4kY29sb3ItLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1kYXJrLCAjMDAwMDAwKTtcblxuLy8gQnJhbmQgY29sb3JzXG4kY29sb3ItLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5LCAjQjVDQjAwKTtcblxuLy8gQ29udGVudCBjb2xvcnMgKGdyZXkpXG4kY29sb3ItLWNvbnRlbnQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb250ZW50LCAjNDEzRDQ5KTtcbiRjb2xvci0tY29udGVudC1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbnRlbnQtbGlnaHQsICNFREVCRUIpO1xuJGNvbG9yLS1jb250ZW50LWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb250ZW50LWRhcmssICMzMzMzMzMpO1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9ycyAoZ3JleSlcbiRjb2xvci0tYmctbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZy1saWdodCwgI0VGRUZGMSk7XG4kY29sb3ItLWJnLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZy1kYXJrLCAjMzYzNzQwKTtcblxuJGZvbnQtcHJpbWFyeTogdmFyKC0td3AtLXByZXNldC0tZm9udC1mYW1pbHktLXByaW1hcnksICdTb3JhJywgJ0hlbHZldGljYSBOZXVlJywgJ0FyaWFsJywgc2Fucy1zZXJpZik7XG5cbi8vKiBCUkVBS1BPSU5UUyAqLy9cbiRicmVha3BvaW50czogKHhzOiAzNzVweCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxMzAwcHgsIHh4eGw6IDE0ODBweCk7XG5cbi8vIFRyYW5zaXRpb25zXG4kdHJhbnMtc3BlZWQ6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQpO1xuJHRyYW5zLXNwZWVkLWxhcmdlOiB2YXIoLS10cmFuc2l0aW9uLXNwZWVkLWxhcmdlKTtcbiR0cmFucy1mdW5jOiB2YXIoLS10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG5cdCdwaG9uZSc6IDMyMHB4LFxuXHQndGFibGV0JzogNzY4cHgsXG5cdCdkZXNrdG9wJzogMTAyNHB4LFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXG5cdCdwcmludCc6ICdwcmludCcsXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcblx0J3B4JzogMSxcblx0J2VtJzogMC4wMSxcblx0J3JlbSc6IDAuMSxcblx0Jyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XG5cdH0gQGVsc2Uge1xuXHRcdEB3YXJuICRtZXNzYWdlO1xuXHRcdCRfOiBub29wKCk7XG5cdH1cblxuXHRAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG5cdH1cblxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3Jcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcblx0XHR9XG5cdH1cblxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcblxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcblx0fVxuXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcblx0fSBAZWxzZSB7XG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcblx0fVxuXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcblx0fVxuXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcblx0fVxuXG5cdEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3Jcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG5cdH1cblxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcblx0XHRAcmV0dXJuICgpO1xuXHR9XG5cblx0JHJlc3VsdDogKCk7XG5cblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG5cdH1cblxuXHRAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdFx0QHJldHVybiAkdmFsdWU7XG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuXHR9XG5cblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG5cdCRyZXN1bHQ6IDA7XG5cdCRkaWdpdHM6IDA7XG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcblx0fVxuXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0XHR9XG5cblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuXHRcdFx0JGRpZ2l0czogMTtcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuXHR9XG5cblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG5cdEBjb250ZW50O1xuXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3Jcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRcdFx0QGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0= */
