{"ast":null,"code":"import { GuiRowSelectionMode, GuiRowSelectionType } from '@generic-ui/ngx-grid';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/tabs\";\nimport * as i2 from \"../tables/user-table/user-table.component\";\nimport * as i3 from \"../tables/group-table/group-table.component\";\nimport * as i4 from \"../tables/module-table/module-table.component\";\nconst _c0 = [\"unassignedUsers\"];\nconst _c1 = [\"assignedUsers\"];\nconst _c2 = [\"modules\"];\nconst _c3 = [\"groups\"];\nexport class UserAssignmentComponent {\n constructor() {\n this.initWithoutData = () => {};\n this.userInLabel = \"Benutzer in\";\n this.tabItems = [{\n routerLink: '/module-user',\n title: 'Modules'\n }, {\n routerLink: '/group-user',\n title: 'Groups'\n }];\n this.activeTabTitle = null;\n this.activeIndex = 0;\n this.userRowSelection = {\n enabled: true,\n type: GuiRowSelectionType.CHECKBOX,\n mode: GuiRowSelectionMode.MULTIPLE\n };\n this.target = Target.Module;\n this.targetId = 0;\n this.dragging = \"\";\n this.dragAssigned = this.createAssignDragMethod(\"assigned\");\n this.dragUnassigned = this.createAssignDragMethod(\"unassigned\");\n this.modulesOnSelectedRows = rows => {\n if (rows.length > 0) {\n this.modules.safelyUnselectAll();\n this.userInLabel = `Benutzer in Module ${rows[0].source?.name}`;\n this.target = Target.Module;\n this.targetId = rows[0].source.guid;\n this.updateUserTables();\n }\n };\n this.groupsOnSelectedRows = rows => {\n if (rows.length > 0) {\n this.groups.safelyUnselectAll();\n this.userInLabel = `Benutzer in Gruppe ${rows[0].source?.name}`;\n this.target = Target.Group;\n this.targetId = rows[0].source.guid;\n this.updateUserTables();\n }\n };\n this.unassignedUsersOnSelectedRows = rows => {};\n this.assignedUsersOnSelectedRows = rows => {};\n }\n ngOnInit() {}\n ngAfterViewInit() {\n this.unassignedUsers.loading = false;\n this.assignedUsers.loading = false;\n }\n createAssignDragMethod(target) {\n return event => {\n this.dragging = target;\n event.dataTransfer?.setData(\"text\", target);\n };\n }\n allowDropOnAssigned(event) {\n if (this.dragging == \"unassigned\") event.preventDefault();\n }\n allowDropOnUnassigned(event) {\n if (this.dragging == \"assigned\") event.preventDefault();\n }\n dropToAssigned(event) {\n if (event.dataTransfer?.getData(\"text\") == \"unassigned\") {\n var rows = this.unassignedUsers.selectedRows;\n var users = new Array();\n if (!rows) return;\n for (var row of rows) users.push(row.source);\n this.unselectUserTables();\n switch (this.target) {\n case Target.Module:\n this.unassignedUsers.createModuleOfUsers(this.targetId, users).then(() => this.updateUserTables());\n break;\n case Target.Group:\n this.unassignedUsers.createGroupOfUsers(this.targetId, users).then(() => this.updateUserTables());\n break;\n }\n }\n }\n dropToUnassigned(event) {\n if (event.dataTransfer?.getData(\"text\") == \"assigned\") {\n var rows = this.assignedUsers.selectedRows;\n var users = new Array();\n if (!rows) return;\n for (var row of rows) users.push(row.source);\n this.unselectUserTables();\n switch (this.target) {\n case Target.Module:\n this.unassignedUsers.deleteModuleOfUsers(this.targetId, users).then(() => this.updateUserTables());\n break;\n case Target.Group:\n this.unassignedUsers.deleteGroupOfUsers(this.targetId, users).then(() => this.updateUserTables());\n break;\n }\n }\n }\n unselectUserTables() {\n this.assignedUsers.safelyUnselectAll();\n this.unassignedUsers.safelyUnselectAll();\n }\n updateUserTables() {\n this.unselectUserTables();\n switch (this.target) {\n case Target.Module:\n this.assignedUsers.fetchDataByModuleId(this.targetId);\n this.unassignedUsers.fetchDataByModuleId(this.targetId, false);\n break;\n case Target.Group:\n this.assignedUsers.fetchDataByGroupId(this.targetId);\n this.unassignedUsers.fetchDataByGroupId(this.targetId, false);\n break;\n }\n }\n static #_ = this.ɵfac = function UserAssignmentComponent_Factory(t) {\n return new (t || UserAssignmentComponent)();\n };\n static #_2 = this.ɵcmp = /*@__PURE__*/i0.ɵɵdefineComponent({\n type: UserAssignmentComponent,\n selectors: [[\"app-user-assignment\"]],\n viewQuery: function UserAssignmentComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(_c3, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.unassignedUsers = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.assignedUsers = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modules = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.groups = _t.first);\n }\n },\n inputs: {\n activeTabTitle: \"activeTabTitle\",\n activeIndex: \"activeIndex\"\n },\n decls: 20,\n vars: 11,\n consts: [[\"modules\", \"\"], [\"groups\", \"\"], [\"unassignedUsers\", \"\"], [\"assignedUsers\", \"\"], [1, \"container-fluid\", \"text-center\"], [1, \"row\", \"m-0\", \"p-0\"], [1, \"col-2\"], [\"label\", \"Modul\"], [1, \"table-content\", 3, \"onSelectedRows\"], [\"label\", \"Gruppen\"], [1, \"col-5\", \"mt-0\", \"pt-0\"], [\"label\", \"Nicht zugeordnete benutzer\"], [1, \"body-content\", 3, \"drop\", \"dragover\", \"dragstart\", \"onSelectedRows\", \"rowSelection\", \"draggable\", \"initData\"], [1, \"col-5\"], [3, \"label\"]],\n template: function UserAssignmentComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4)(1, \"div\", 5)(2, \"div\", 6)(3, \"mat-tab-group\")(4, \"mat-tab\", 7);\n i0.ɵɵelement(5, \"app-module-table\", 8, 0);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"mat-tab\", 9);\n i0.ɵɵelement(8, \"app-group-table\", 8, 1);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(10, \"div\", 10)(11, \"mat-tab-group\")(12, \"mat-tab\", 11)(13, \"app-user-table\", 12, 2);\n i0.ɵɵlistener(\"drop\", function UserAssignmentComponent_Template_app_user_table_drop_13_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dropToUnassigned($event));\n })(\"dragover\", function UserAssignmentComponent_Template_app_user_table_dragover_13_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.allowDropOnUnassigned($event));\n })(\"dragstart\", function UserAssignmentComponent_Template_app_user_table_dragstart_13_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dragUnassigned($event));\n });\n i0.ɵɵelementEnd()()()();\n i0.ɵɵelementStart(15, \"div\", 13)(16, \"mat-tab-group\")(17, \"mat-tab\", 14)(18, \"app-user-table\", 12, 3);\n i0.ɵɵlistener(\"drop\", function UserAssignmentComponent_Template_app_user_table_drop_18_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dropToAssigned($event));\n })(\"dragover\", function UserAssignmentComponent_Template_app_user_table_dragover_18_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.allowDropOnAssigned($event));\n })(\"dragstart\", function UserAssignmentComponent_Template_app_user_table_dragstart_18_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dragAssigned($event));\n });\n i0.ɵɵelementEnd()()()()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"onSelectedRows\", ctx.modulesOnSelectedRows);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"onSelectedRows\", ctx.groupsOnSelectedRows);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"onSelectedRows\", ctx.unassignedUsersOnSelectedRows)(\"rowSelection\", ctx.userRowSelection)(\"draggable\", true)(\"initData\", ctx.initWithoutData);\n i0.ɵɵadvance(4);\n i0.ɵɵpropertyInterpolate(\"label\", ctx.userInLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"onSelectedRows\", ctx.assignedUsersOnSelectedRows)(\"rowSelection\", ctx.userRowSelection)(\"draggable\", true)(\"initData\", ctx.initWithoutData);\n }\n },\n dependencies: [i1.MatTab, i1.MatTabGroup, i2.UserTableComponent, i3.GroupTableComponent, i4.ModuleTableComponent],\n styles: [\".mat-ripple[_ngcontent-%COMP%] {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple[_ngcontent-%COMP%]:not(:empty) {\\n transform: translateZ(0);\\n}\\n\\n.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%] {\\n overflow: visible;\\n}\\n\\n.mat-ripple-element[_ngcontent-%COMP%] {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n transform: scale3d(0, 0, 0);\\n background-color: var(--mat-ripple-color, rgba(0, 0, 0, 0.1));\\n}\\n.cdk-high-contrast-active[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%] {\\n display: none;\\n}\\n\\n.cdk-visually-hidden[_ngcontent-%COMP%] {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n white-space: nowrap;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n left: 0;\\n}\\n[dir=rtl][_ngcontent-%COMP%] .cdk-visually-hidden[_ngcontent-%COMP%] {\\n left: auto;\\n right: 0;\\n}\\n\\n.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%] {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n\\n.cdk-overlay-container[_ngcontent-%COMP%] {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container[_ngcontent-%COMP%]:empty {\\n display: none;\\n}\\n\\n.cdk-global-overlay-wrapper[_ngcontent-%COMP%] {\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n\\n.cdk-overlay-pane[_ngcontent-%COMP%] {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n\\n.cdk-overlay-backdrop[_ngcontent-%COMP%] {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%] {\\n opacity: 1;\\n}\\n.cdk-high-contrast-active[_ngcontent-%COMP%] .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%] {\\n opacity: 0.6;\\n}\\n\\n.cdk-overlay-dark-backdrop[_ngcontent-%COMP%] {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n\\n.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%] {\\n transition: visibility 1ms linear, opacity 1ms linear;\\n visibility: hidden;\\n opacity: 1;\\n}\\n.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%] {\\n opacity: 0;\\n visibility: visible;\\n}\\n\\n.cdk-overlay-backdrop-noop-animation[_ngcontent-%COMP%] {\\n transition: none;\\n}\\n\\n.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%] {\\n position: absolute;\\n z-index: 1000;\\n display: flex;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n\\n.cdk-global-scrollblock[_ngcontent-%COMP%] {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n\\ntextarea.cdk-textarea-autosize[_ngcontent-%COMP%] {\\n resize: none;\\n}\\n\\ntextarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%] {\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n height: auto !important;\\n overflow: hidden !important;\\n}\\n\\ntextarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%] {\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n height: 0 !important;\\n}\\n\\n@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-start { \\n }\\n@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-end { \\n }\\n.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill {\\n animation: _ngcontent-%COMP%_cdk-text-field-autofill-start 0s 1ms;\\n}\\n\\n.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill) {\\n animation: _ngcontent-%COMP%_cdk-text-field-autofill-end 0s 1ms;\\n}\\n\\n.mat-focus-indicator[_ngcontent-%COMP%] {\\n position: relative;\\n}\\n.mat-focus-indicator[_ngcontent-%COMP%]::before {\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n position: absolute;\\n box-sizing: border-box;\\n pointer-events: none;\\n display: var(--mat-focus-indicator-display, none);\\n border: var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);\\n border-radius: var(--mat-focus-indicator-border-radius, 4px);\\n}\\n.mat-focus-indicator[_ngcontent-%COMP%]:focus::before {\\n content: \\\"\\\";\\n}\\n\\n.cdk-high-contrast-active[_ngcontent-%COMP%] {\\n --mat-focus-indicator-display: block;\\n}\\n\\n.mat-mdc-focus-indicator[_ngcontent-%COMP%] {\\n position: relative;\\n}\\n.mat-mdc-focus-indicator[_ngcontent-%COMP%]::before {\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n position: absolute;\\n box-sizing: border-box;\\n pointer-events: none;\\n display: var(--mat-mdc-focus-indicator-display, none);\\n border: var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);\\n border-radius: var(--mat-mdc-focus-indicator-border-radius, 4px);\\n}\\n.mat-mdc-focus-indicator[_ngcontent-%COMP%]:focus::before {\\n content: \\\"\\\";\\n}\\n\\n.cdk-high-contrast-active[_ngcontent-%COMP%] {\\n --mat-mdc-focus-indicator-display: block;\\n}\\n\\n.mat-app-background[_ngcontent-%COMP%] {\\n background-color: var(--mat-app-background-color, transparent);\\n color: var(--mat-app-text-color, inherit);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFwuLlxcLi5cXC4uXFxub2RlX21vZHVsZXNcXEBhbmd1bGFyXFxtYXRlcmlhbFxcY29yZVxccmlwcGxlXFxfcmlwcGxlLnNjc3MiLCIuLlxcLi5cXC4uXFwuLlxcLi5cXC4uXFwuLlxcLi5cXFZpc3VhbCUyMFN0dWRpb1xcV2ViVXNlck1hbmFnZXJcXERpZ2l0YWxEYXRhLlVzZXJNYW5hZ2VyLk5nV2ViVUlcXENsaWVudEFwcFxcc3JjXFxhcHBcXGNvbXBvbmVudHNcXHVzZXItYXNzaWdubWVudFxcdXNlci1hc3NpZ25tZW50LmNvbXBvbmVudC5zY3NzIiwiLi5cXC4uXFwuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXJcXGNka1xcYTExeVxcX2luZGV4LnNjc3MiLCIuLlxcLi5cXC4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhclxcY2RrXFxvdmVybGF5XFxfaW5kZXguc2NzcyIsIi4uXFwuLlxcLi5cXC4uXFxub2RlX21vZHVsZXNcXEBhbmd1bGFyXFxjZGtcXHRleHQtZmllbGRcXF9pbmRleC5zY3NzIiwiLi5cXC4uXFwuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXJcXG1hdGVyaWFsXFxjb3JlXFxmb2N1cy1pbmRpY2F0b3JzXFxfcHJpdmF0ZS5zY3NzIiwiLi5cXC4uXFwuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXJcXG1hdGVyaWFsXFxjb3JlXFxzdHlsZVxcX2xheW91dC1jb21tb24uc2NzcyIsIi4uXFwuLlxcLi5cXC4uXFxub2RlX21vZHVsZXNcXEBhbmd1bGFyXFxtYXRlcmlhbFxcY29yZVxcX2NvcmUuc2NzcyIsIi4uXFwuLlxcLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGhlbWVcXF9jc3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPRTtFQUNFLGdCQUFBO0VBSUEsa0JBQUE7QUNUSjtBRGdCSTtFQUNFLHdCQUFBO0FDZE47O0FEa0JFO0VBQ0UsaUJBQUE7QUNmSjs7QURrQkU7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFFQSw2REFBQTtFQUlBLDJCQUFBO0VBS0UsNkRBQUE7QUN2Qk47QUMrQkk7RUZIRSxhQUFBO0FDekJOOztBQ25CRTtFQUNFLFNBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBSUEsbUJBQUE7RUFHQSxVQUFBO0VBR0Esd0JBQUE7RUFDQSxxQkFBQTtFQU1BLE9BQUE7QURVSjtBQ1JJO0VBQ0UsVUFBQTtFQUNBLFFBQUE7QURVTjs7QUUxQkU7RUFFRSxvQkFBQTtFQUdBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7QUYwQko7O0FFdEJFO0VBQ0UsZUFBQTtFQUNBLGFBM0J3QjtBRm9ENUI7QUV2Qkk7RUFHRSxhQUFBO0FGdUJOOztBRWZFO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsYUExQ2M7QUY0RGxCOztBRWRFO0VBR0Usa0JBQUE7RUFDQSxvQkFBQTtFQUNBLHNCQUFBO0VBQ0EsYUFwRGM7RUF3RGQsYUFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBRllKOztBRVRFO0VBRUUsa0JBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBRUEsYUFwRXVCO0VBcUV2QixvQkFBQTtFQUNBLHdDQUFBO0VBQ0EsMERBQUE7RUFDQSxVQUFBO0FGVUo7QUVSSTtFQUNFLFVBQUE7QUZVTjtBRUxNO0VBR0UsWUFBQTtBRktSOztBRUFFO0VBQ0UsK0JBdEZxQjtBRnlGekI7O0FFQUU7RUFFRSxxREFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBRkVKO0FFSUk7RUFDRSxVQUFBO0VBQ0EsbUJBQUE7QUZGTjs7QUVNRTtFQUNFLGdCQUFBO0FGSEo7O0FFUUU7RUFDRSxrQkFBQTtFQUNBLGFBckhjO0VBMEhkLGFBQUE7RUFJQSxzQkFBQTtFQUdBLGNBQUE7RUFDQSxlQUFBO0FGZEo7O0FFa0JFO0VBQ0UsZUFBQTtFQUtBLFdBQUE7RUFLQSxrQkFBQTtBRnZCSjs7QUcxSEU7RUFDRSxZQUFBO0FINkhKOztBR3ZIRTtFQXlDQSx5QkFBQTtFQUNBLGtDQUFBO0VBeENFLHVCQUFBO0VBQ0EsMkJBQUE7QUgySEo7O0FHbEhFO0VBNkJBLHlCQUFBO0VBQ0Esa0NBQUE7RUE1QkUsb0JBQUE7QUhzSEo7O0FHNUdFLDJDQUFBLElBQUEsRUFBQTtBQUNBLHlDQUFBLElBQUEsRUFBQTtBQUVBO0VBRUUsK0NBQUE7QUg2R0o7O0FHMUdFO0VBRUUsNkNBQUE7QUg0R0o7O0FJMUlFO0VBQ0Usa0JBQUE7QUo2SUo7QUkzSUk7RUNoQkYsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VEY0ksc0JBQUE7RUFDQSxvQkFBQTtFQUNBLGlEQUFBO0VBQ0Esd0pBQUE7RUFZQSw0REFBQTtBSnNJTjtBSTlISTtFQUNFLFdBQUE7QUpnSU47O0FDdEZNO0VHNUJBLG9DQUFBO0FKc0hOOztBSWpLRTtFQUNFLGtCQUFBO0FKb0tKO0FJbEtJO0VDaEJGLE1BQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFRGNJLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxREFBQTtFQUNBLG9LQUFBO0VBWUEsZ0VBQUE7QUo2Sk47QUlySkk7RUFDRSxXQUFBO0FKdUpOOztBQzdHTTtFRzVCQSx3Q0FBQTtBSjZJTjs7QU1uTEk7RUMwREEsOERBQUE7RUFBQSx5Q0FBQTtBUDhISiIsImZpbGUiOiJ1c2VyLWFzc2lnbm1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAYW5ndWxhci9jZGsnO1xuQHVzZSAnLi4vdG9rZW5zL20yL21hdC9yaXBwbGUnIGFzIHRva2Vucy1tYXQtcmlwcGxlO1xuQHVzZSAnLi4vdG9rZW5zL3Rva2VuLXV0aWxzJztcblxuQG1peGluIHJpcHBsZSgpIHtcbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBQcm9tb3RlIGNvbnRhaW5lcnMgdGhhdCBoYXZlIHJpcHBsZXMgdG8gYSBuZXcgbGF5ZXIuIFdlIHdhbnQgdG8gdGFyZ2V0IGA6bm90KDplbXB0eSlgLFxuICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhbGwgcmlwcGxlIGNvbnRhaW5lcnMgdG8gaGF2ZSB0aGVpciBvd24gbGF5ZXIgc2luY2UgdGhleSdyZSB1c2VkIGluIGFcbiAgICAvLyBsb3Qgb2YgcGxhY2VzIGFuZCB0aGUgbGF5ZXIgaXMgb25seSByZWxldmFudCB3aGlsZSBhbmltYXRpbmcuIE5vdGUgdGhhdCBpZGVhbGx5IHdlJ2QgdXNlXG4gICAgLy8gdGhlIGBjb250YWluYCBwcm9wZXJ0eSBoZXJlIChzZWUgIzEzMTc1KSwgYmVjYXVzZSBgOmVtcHR5YCBjYW4gYmUgYnJva2VuIGJ5IGhhdmluZyBleHRyYVxuICAgIC8vIHRleHQgaW5zaWRlIHRoZSBlbGVtZW50LCBidXQgaXQgaXNuJ3QgdmVyeSB3ZWxsIHN1cHBvcnRlZCB5ZXQuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG5cbiAgICAvLyBXZSB1c2UgYSAzZCB0cmFuc2Zvcm0gaGVyZSBpbiBvcmRlciB0byBhdm9pZCBhbiBpc3N1ZSBpbiBTYWZhcmkgd2hlcmVcbiAgICAvLyB0aGUgcmlwcGxlcyBhcmVuJ3QgY2xpcHBlZCB3aGVuIGluc2lkZSB0aGUgc2hhZG93IERPTSAoc2VlICMyNDAyOCkuXG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApO1xuXG4gICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMudXNlLXRva2VucyhcbiAgICAgIHRva2Vucy1tYXQtcmlwcGxlLiRwcmVmaXgsIHRva2Vucy1tYXQtcmlwcGxlLmdldC10b2tlbi1zbG90cygpKSB7XG4gICAgICAvLyBXZSBoYXZlIHRvIGVtaXQgYSBmYWxsYmFjayB2YWx1ZSBoZXJlLCBiZWNhdXNlIHNvbWUgaW50ZXJuYWwgYnVpbGRzIGRlcGVuZCBvbiBpdC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigje3Rva2VuLXV0aWxzLmdldC10b2tlbi12YXJpYWJsZShjb2xvcil9LCByZ2JhKCMwMDAsIDAuMSkpO1xuICAgIH1cblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGsuaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1hdC1yaXBwbGU6bm90KDplbXB0eSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG59XG5cbi5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWF0LXJpcHBsZS1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cbi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBsZWZ0OiAwO1xufVxuW2Rpcj1ydGxdIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpO1xufVxuXG4uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFtcyBsaW5lYXIsIG9wYWNpdHkgMW1zIGxpbmVhcjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAxO1xufVxuLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uY2RrLW92ZXJsYXktYmFja2Ryb3Atbm9vcC1hbmltYXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblxudGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveCB7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsgLyohKi8gfVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgeyAvKiEqLyB9XG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbn1cblxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zO1xufVxuXG4ubWF0LWZvY3VzLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7XG4gIGJvcmRlcjogdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsIHNvbGlkKSB2YXIoLS1tYXQtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1tYXQtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMsIDRweCk7XG59XG4ubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSB7XG4gIC0tbWF0LWZvY3VzLWluZGljYXRvci1kaXNwbGF5OiBibG9jaztcbn1cblxuLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpO1xuICBib3JkZXI6IHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCwgM3B4KSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsIHNvbGlkKSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KTtcbn1cbi5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSB7XG4gIC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYXQtYXBwLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLW1hdC1hcHAtdGV4dC1jb2xvciwgaW5oZXJpdCk7XG59IiwiLy8vIEVtaXRzIGEgQ1NTIGNsYXNzLCBgLmNkay12aXN1YWxseS1oaWRkZW5gLiBUaGlzIGNsYXNzIGNhbiBiZSBhcHBsaWVkIHRvIGFuIGVsZW1lbnRcbi8vLyB0byBtYWtlIHRoYXQgZWxlbWVudCB2aXN1YWxseSBoaWRkZW4gd2hpbGUgcmVtYWluaW5nIGF2YWlsYWJsZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbkBtaXhpbiBhMTF5LXZpc3VhbGx5LWhpZGRlbigpIHtcbiAgLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvLyBUaGlzIHdvcmtzIGFyb3VuZCBhIENocm9tZSBidWcgdGhhdCBjYW4gY2F1c2UgdGhlIHRhYiB0byBjcmFzaCB3aGVuIGxhcmdlIGFtb3VudHMgb2ZcbiAgICAvLyBub24tRW5nbGlzaCB0ZXh0IGdldCB3cmFwcGVkOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMjAxNDQ0XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIC8vIFdlIG5lZWQgYXQgbGVhc3Qgb25lIG9mIHRvcC9ib3R0b20vbGVmdC9yaWdodCBpbiBvcmRlciB0byBwcmV2ZW50IGNhc2VzIHdoZXJlIHRoZVxuICAgIC8vIGFic29sdXRlLXBvc2l0aW9uZWQgZWxlbWVudCBpcyBwdXNoZWQgZG93biBhbmQgY2FuIGFmZmVjdCBzY3JvbGxpbmcgKHNlZSAjMjQ1OTcpLlxuICAgIC8vIGBsZWZ0YCB3YXMgY2hvc2VuIGhlcmUsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgbGlrZWx5IHRvIGJyZWFrIG92ZXJyaWRlcyB3aGVyZSB0aGVcbiAgICAvLyBlbGVtZW50IG1pZ2h0IGhhdmUgYmVlbiBwb3NpdGlvbmVkIChlLmcuIGBtYXQtY2hlY2tib3hgKS5cbiAgICBsZWZ0OiAwO1xuXG4gICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vLyBAZGVwcmVjYXRlZCBVc2UgYGExMXktdmlzdWFsbHktaGlkZGVuYC5cbkBtaXhpbiBhMTF5KCkge1xuICBAaW5jbHVkZSBhMTF5LXZpc3VhbGx5LWhpZGRlbjtcbn1cblxuLy8vIEVtaXRzIHRoZSBtaXhpbidzIGNvbnRlbnQgbmVzdGVkIHVuZGVyIGAkc2VsZWN0b3ItY29udGV4dGAgaWYgYCRzZWxlY3Rvci1jb250ZXh0YFxuLy8vIGlzIG5vbi1lbXB0eS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3ItY29udGV4dCBUaGUgc2VsZWN0b3IgdW5kZXIgd2hpY2ggdG8gbmVzdCB0aGUgbWl4aW4ncyBjb250ZW50LlxuQG1peGluIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICBAaWYgKCRzZWxlY3Rvci1jb250ZXh0ID09ICcnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yLWNvbnRleHR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9IHRhcmdldCBUeXBlIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vLyAgICAgYHdoaXRlLW9uLWJsYWNrYCBvciBgYmxhY2stb24td2hpdGVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSBlbmNhcHN1bGF0aW9uIFdoZXRoZXIgdG8gZW1pdCBzdHlsZXMgZm9yIHZpZXcgZW5jYXBzdWxhdGlvbi4gVmFsdWVzIGFyZTpcbi8vLyAgICAgKiBgb25gIC0gd29ya3MgZm9yIGBFbXVsYXRlZGAsIGBOYXRpdmVgLCBhbmQgYFNoYWRvd0RvbWBcbi8vLyAgICAgKiBgb2ZmYCAtIHdvcmtzIGZvciBgTm9uZWBcbi8vLyAgICAgKiBgYW55YCAtIHdvcmtzIGZvciBhbGwgZW5jYXBzdWxhdGlvbiBtb2RlcyBieSBlbWl0dGluZyB0aGUgQ1NTIHR3aWNlIChkZWZhdWx0KS5cbkBtaXhpbiBoaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSwgJGVuY2Fwc3VsYXRpb246ICdhbnknKSB7XG4gIEBpZiAoJHRhcmdldCAhPSAnYWN0aXZlJyBhbmQgJHRhcmdldCAhPSAnYmxhY2stb24td2hpdGUnIGFuZCAkdGFyZ2V0ICE9ICd3aGl0ZS1vbi1ibGFjaycpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgdmFsdWUgXCIjeyR0YXJnZXR9XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwiYWN0aXZlXCIsIFwiYmxhY2stb24td2hpdGVcIiwgYW5kIFwid2hpdGUtb24tYmxhY2tcIic7XG4gIH1cblxuICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdvZmYnIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnYW55Jykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCBlbmNhcHN1bGF0aW9uIFwiI3skZW5jYXBzdWxhdGlvbn1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhbnlcIic7XG4gIH1cblxuICAvLyBJZiB0aGUgc2VsZWN0b3IgY29udGV4dCBoYXMgbXVsdGlwbGUgcGFydHMsIHN1Y2ggYXMgYC5zZWN0aW9uLCAucmVnaW9uYCwganVzdCBkb2luZ1xuICAvLyBgLmNkay1oaWdoLWNvbnRyYXN0LXh4eCAjeyZ9YCB3aWxsIG9ubHkgYXBwbHkgdGhlIHBhcmVudCBzZWxlY3RvciB0byB0aGUgZmlyc3QgcGFydCBvZiB0aGVcbiAgLy8gY29udGV4dC4gV2UgYWRkcmVzcyB0aGlzIGJ5IG5lc3RpbmcgdGhlIHNlbGVjdG9yIGNvbnRleHQgdW5kZXIgLmNkay1oaWdoLWNvbnRyYXN0LlxuICBAYXQtcm9vdCB7XG4gICAgJHNlbGVjdG9yLWNvbnRleHQ6ICN7Jn07XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicpIHtcbiAgICAgIC8vIE5vdGUgdGhhdCBpZiB0aGlzIHNlbGVjdG9yIGlzIHVwZGF0ZWQsIHRoZSBzYW1lIGNoYW5nZSBoYXMgdG8gYmUgbWFkZSBpbnNpZGVcbiAgICAgIC8vIGBfb3ZlcmxheS5zY3NzYCB3aGljaCBjYW4ndCBkZXBlbmQgb24gdGhpcyBtaXhpbiBkdWUgdG8gc29tZSBpbmZyYXN0cnVjdHVyZSBsaW1pdGF0aW9ucy5cbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IHtcbiAgICAgICAgQGluY2x1ZGUgX29wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvZmYnKSB7XG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSA6aG9zdCB7XG4gICAgICAgIEBpbmNsdWRlIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJG92ZXJsYXktY29udGFpbmVyLXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG4kb3ZlcmxheS16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJG92ZXJsYXktYmFja2Ryb3Atei1pbmRleDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRvdmVybGF5LWJhY2tkcm9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbi8vLyBFbWl0cyBzdHJ1Y3R1cmFsIHN0eWxlcyByZXF1aXJlZCBmb3IgY2RrL292ZXJsYXkgdG8gZnVuY3Rpb24uXG5AbWl4aW4gb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS1jb250YWluZXItei1pbmRleDtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJG92ZXJsYXktei1pbmRleDtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRvdmVybGF5LWJhY2tkcm9wLXotaW5kZXg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuJ3QgaW1wb3J0IGFuZCB1c2UgdGhlIGBoaWdoLWNvbnRyYXN0YCBtaXhpbiBmcm9tIGBfYTExeS5zY3NzYCwgYmVjYXVzZVxuICAgICAgLy8gdGhpcyBmaWxlIHdpbGwgYmUgY29waWVkIHRvIHRoZSB0b3AtbGV2ZWwgYGNka2AgcGFja2FnZSB3aGVuIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGZpbGVzXG4gICAgICAvLyBmb3IgbnBtLiBBbnkgcmVsYXRpdmUgaW1wb3J0IHBhdGhzIHdlIHVzZSBoZXJlIHdpbGwgYmVjb21lIGludmFsaWQgb25jZSB0aGUgZmlsZSBpcyBjb3BpZWQuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlICYge1xuICAgICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZFxuICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFjayB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC5cbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3ZlcmxheS1iYWNrZHJvcC1jb2xvcjtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gRGVmaW5lIGEgdHJhbnNpdGlvbiBvbiB0aGUgdmlzaWJpbGl0eSBzbyB0aGF0IHRoZSBgdHJhbnNpdGlvbmVuZGAgZXZlbnQgY2FuIGZpcmUgaW1tZWRpYXRlbHkuXG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxbXMgbGluZWFyLCBvcGFjaXR5IDFtcyBsaW5lYXI7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcC1ub29wLWFuaW1hdGlvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG4iLCIvLyBTdHJ1Y3R1cmFsIHN0eWxlcyBmb3IgdGhlIGF1dG9zaXplIHRleHQgZmllbGRzLlxuQG1peGluIHRleHQtZmllbGQtYXV0b3NpemUoKSB7XG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIEBpbmNsdWRlIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBTaW1pbGFyIHRvIHRoZSBgY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ2AgY2xhc3MsIGJ1dCBvbmx5IGFwcGxpZWQgb24gRmlyZWZveC4gV2UgbmVlZFxuICAvLyB0byB1c2UgdGhpcyBjbGFzcywgYmVjYXVzZSBGaXJlZm94IGhhcyBhIGJ1ZyB3aGVyZSBjaGFuZ2luZyB0aGUgYG92ZXJmbG93YCBicmVha3MgdGhlIHVzZXInc1xuICAvLyBhYmlsaXR5IHRvIHVuZG8vcmVkbyB3aGF0IHRoZXkgd2VyZSB0eXBpbmcgKHNlZSAjMTY2MjkpLiBUaGlzIGNsYXNzIGlzIG9ubHkgc2NvcGVkIHRvIEZpcmVmb3gsXG4gIC8vIGJlY2F1c2UgdGhlIG1lYXN1cmVtZW50cyB0aGVyZSBkb24ndCBzZWVtIHRvIGJlIGFmZmVjdGVkIGJ5IHRoZSBgaGVpZ2h0OiAwYCwgd2hlcmVhcyBvbiBvdGhlclxuICAvLyBicm93c2VycyB0aGV5IGFyZSwgZS5nLiBDaHJvbWUgZGV0ZWN0cyBsb25nZXIgdGV4dCBhbmQgSUUgZG9lcyd0IHJlc2l6ZSBiYWNrIHRvIG5vcm1hbC5cbiAgLy8gSWRlbnRpY2FsIGlzc3VlIHJlcG9ydDogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4Nzg0XG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveCB7XG4gICAgQGluY2x1ZGUgX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlO1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gdGV4dC1maWVsZC1hdXRvZmlsbCgpIHtcbiAgLy8gS2V5ZnJhbWVzIHRoYXQgYXBwbHkgbm8gc3R5bGVzLCBidXQgYWxsb3cgdXMgdG8gbW9uaXRvciB3aGVuIGFuIHRleHQgZmllbGQgYmVjb21lcyBhdXRvZmlsbGVkXG4gIC8vIGJ5IHdhdGNoaW5nIGZvciB0aGUgYW5pbWF0aW9uIGV2ZW50cyB0aGF0IGFyZSBmaXJlZCB3aGVuIHRoZXkgc3RhcnQuIE5vdGU6IHRoZSAvKiEqLyBjb21tZW50IGlzXG4gIC8vIG5lZWRlZCB0byBwcmV2ZW50IExpYlNhc3MgZnJvbSBzdHJpcHBpbmcgdGhlIGtleWZyYW1lcyBvdXQuXG4gIC8vIEJhc2VkIG9uOiBodHRwczovL21lZGl1bS5jb20vQGJydW5uL2RldGVjdGluZy1hdXRvZmlsbGVkLWZpZWxkcy1pbi1qYXZhc2NyaXB0LWFlZDU5OGQyNWRhN1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsvKiEqL31cbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgey8qISovfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zO1xuICB9XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zO1xuICB9XG59XG5cbkBtaXhpbiBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2Uge1xuICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIHRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3IoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kOicnKSB7XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IHtcbiAgICB0byB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIEBpZiAkZm9yZWdyb3VuZCAhPSAnJyB7IGNvbG9yOiAkZm9yZWdyb3VuZDsgfVxuICAgIH1cbiAgfVxuXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5IGZvciBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0XG4gICAgLy8gZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcyxcbiAgICAgICAgICAgICAgIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAkYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQgKyAxICFnbG9iYWw7XG59XG5cbi8vIEBkZXByZWNhdGVkIFVzZSBgYXV0b3NpemVgIGFuZCBgYXV0b2ZpbGxgIGluc3RlYWQuXG5AbWl4aW4gdGV4dC1maWVsZCB7XG4gIEBpbmNsdWRlIHRleHQtZmllbGQtYXV0b3NpemUoKTtcbiAgQGluY2x1ZGUgdGV4dC1maWVsZC1hdXRvZmlsbCgpO1xufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ0Bhbmd1bGFyL2Nkayc7XG5AdXNlICcuLi9zdHlsZS9sYXlvdXQtY29tbW9uJztcbkB1c2UgJy4uL3RoZW1pbmcvdGhlbWluZyc7XG5AdXNlICcuLi90aGVtaW5nL2luc3BlY3Rpb24nO1xuXG4vLyBQcml2YXRlIHNhc3MgdmFyaWFibGVzIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHJlZmVyZW5jZSB0aHJvdWdob3V0IGNvbXBvbmVudCBzdHlsZXNoZWV0cy5cbiRkZWZhdWx0LWJvcmRlci13aWR0aDogM3B4O1xuJGRlZmF1bHQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiRkZWZhdWx0LWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA0cHg7XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyB0aGUgZm9jdXMgaW5kaWNhdG9yIHN0cnVjdHVyYWwgc3R5bGVzLlxuQG1peGluIHN0cnVjdHVyYWwtc3R5bGluZygkcHJlZml4KSB7XG4gIC4jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGxheW91dC1jb21tb24uZmlsbCgpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgZGlzcGxheTogdmFyKC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7IC8vIEhpZGUgdGhlIGluZGljYXRvciBieSBkZWZhdWx0LlxuICAgICAgYm9yZGVyOiB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItd2lkdGh9XG4gICAgICAgIClcbiAgICAgICAgdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXN0eWxlfVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcixcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1jb2xvcn1cbiAgICAgICAgKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcihcbiAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzLFxuICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1yYWRpdXN9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEJ5IGRlZmF1bHQsIHJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIHdoZW4gdGhlIGZvY3VzIGluZGljYXRvciBob3N0IGVsZW1lbnQgdGFrZXMgZm9jdXMuXG4gICAgLy8gRGVmaW5pbmcgYSBwc2V1ZG8gZWxlbWVudCdzIGNvbnRlbnQgd2lsbCBjYXVzZSBpdCB0byByZW5kZXIuXG4gICAgJjpmb2N1czo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuYWJsZSB0aGUgaW5kaWNhdG9yIGluIGhpZ2ggY29udHJhc3QgbW9kZS5cbiAgQGluY2x1ZGUgY2RrLmhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoZGlzcGxheTogYmxvY2spLCAkcHJlZml4KTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZXMgQ1NTIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBmcm9tIGEgbWFwLlxuQG1peGluIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApIHtcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgIEBpZiAoJHZhbHVlKSB7XG4gICAgICAtLSN7JGtleX06ICN7JHZhbHVlfTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCBkZWR1cHMgQ1NTIHZhcmlhYmxlcyBmb3IgdGhlIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzIG1peGluLlxuQG1peGluIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICRwcmVmaXgpIHtcbiAgJGJvcmRlci1zdHlsZTogbWFwLmdldCgkY29uZmlnLCBib3JkZXItc3R5bGUpO1xuICAkYm9yZGVyLXdpZHRoOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci13aWR0aCk7XG4gICRib3JkZXItcmFkaXVzOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci1yYWRpdXMpO1xuICAkYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCRjb25maWcsIGJvcmRlci1jb2xvcik7XG4gICRkaXNwbGF5OiBtYXAuZ2V0KCRjb25maWcsIGRpc3BsYXkpO1xuICAkbWFwOiAoXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSc6ICRib3JkZXItc3R5bGUsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCc6ICRib3JkZXItd2lkdGgsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMnOiAkYm9yZGVyLXJhZGl1cyxcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yJzogJGJvcmRlci1jb2xvcixcbiAgICAnI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSc6ICRkaXNwbGF5LFxuICApO1xuXG4gIEBpZiAoJikge1xuICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBXZSB1c2UgYGh0bWxgIGhlcmUgaW5zdGVhZCBvZiBgOnJvb3RgLCBiZWNhdXNlIHRoZVxuICAgIC8vIGxhdHRlciBjYXVzZXMgc29tZSBpc3N1ZXMgd2l0aCBpbnRlcm5hbCB0b29saW5nLlxuICAgIGh0bWwge1xuICAgICAgQGluY2x1ZGUgX291dHB1dC12YXJpYWJsZXMoJG1hcCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnOiAoKSkge1xuICAvLyBEZWZhdWx0IGZvY3VzIGluZGljYXRvciBjb25maWcuXG4gICRkZWZhdWx0LWNvbmZpZzogKFxuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjayxcbiAgICAgIGRpc3BsYXk6IGJsb2NrLFxuICApO1xuXG4gIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdXNlciBjb25maWcuXG4gICRjb25maWc6IG1hcC5tZXJnZSgkZGVmYXVsdC1jb25maWcsICRjb25maWcpO1xuXG4gIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICdtYXQnKTtcbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnOiAoKSkge1xuICAvLyBEZWZhdWx0IGZvY3VzIGluZGljYXRvciBjb25maWcuXG4gICRkZWZhdWx0LWNvbmZpZzogKFxuICAgICAgYm9yZGVyLWNvbG9yOiBibGFjayxcbiAgICAgIGRpc3BsYXk6IGJsb2NrLFxuICApO1xuXG4gIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdXNlciBjb25maWcuXG4gICRjb25maWc6IG1hcC5tZXJnZSgkZGVmYXVsdC1jb25maWcsICRjb25maWcpO1xuXG4gIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKCRjb25maWcsICdtYXQtbWRjJyk7XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRib3JkZXItY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZS1vci1jb2xvciwgcHJpbWFyeSk7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbn1cblxuQG1peGluIHN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLW9yLWNvbG9yLCAnbWF0LWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLW9yLWNvbG9yLCBjb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRib3JkZXItY29sb3I6IGluc3BlY3Rpb24uZ2V0LXRoZW1lLWNvbG9yKCR0aGVtZS1vci1jb2xvciwgcHJpbWFyeSk7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgdGhlbWluZy5wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoXG4gICAgICAgICR0aGVtZS1vci1jb2xvciwgJ21hdC1tZGMtZm9jdXMtaW5kaWNhdG9ycycpIHtcbiAgICAgIEBpZiBpbnNwZWN0aW9uLnRoZW1lLWhhcygkdGhlbWUtb3ItY29sb3IsIGNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGhpcyBtaXhpbiBlbnN1cmVzIGFuIGVsZW1lbnQgc3BhbnMgdG8gZmlsbCB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGRlZmluZWQgcG9zaXRpb25pbmcuXG5AbWl4aW4gZmlsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuIiwiQHVzZSAnQGFuZ3VsYXIvY2RrJztcbkB1c2UgJy4vdG9rZW5zL20yL21hdC9hcHAnIGFzIHRva2Vucy1tYXQtYXBwO1xuQHVzZSAnLi90b2tlbnMvdG9rZW4tdXRpbHMnO1xuQHVzZSAnLi9yaXBwbGUvcmlwcGxlJztcbkB1c2UgJy4vZm9jdXMtaW5kaWNhdG9ycy9wcml2YXRlJztcbkB1c2UgJy4vbWRjLWhlbHBlcnMvbWRjLWhlbHBlcnMnO1xuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGFyZSBub3QgdGhlbWUtZGVwZW5kZW50LlxuQG1peGluIGNvcmUoKSB7XG4gIEBpbmNsdWRlIHJpcHBsZS5yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLmExMXktdmlzdWFsbHktaGlkZGVuKCk7XG4gIEBpbmNsdWRlIGNkay5vdmVybGF5KCk7XG4gIEBpbmNsdWRlIGNkay50ZXh0LWZpZWxkLWF1dG9zaXplKCk7XG4gIEBpbmNsdWRlIGNkay50ZXh0LWZpZWxkLWF1dG9maWxsKCk7XG4gIEBpbmNsdWRlIHByaXZhdGUuc3RydWN0dXJhbC1zdHlsaW5nKCdtYXQnKTtcbiAgQGluY2x1ZGUgcHJpdmF0ZS5zdHJ1Y3R1cmFsLXN0eWxpbmcoJ21hdC1tZGMnKTtcblxuICAvLyBXcmFwcGVyIGVsZW1lbnQgdGhhdCBwcm92aWRlcyB0aGUgdGhlbWUgYmFja2dyb3VuZCB3aGVuIHRoZVxuICAvLyB1c2VyJ3MgY29udGVudCBpc24ndCBpbnNpZGUgb2YgYSBgbWF0LXNpZGVuYXYtY29udGFpbmVyYC5cbiAgQGF0LXJvb3Qge1xuICAgIC5tYXQtYXBwLWJhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWhlbHBlcnMuZGlzYWJsZS1tZGMtZmFsbGJhY2stZGVjbGFyYXRpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMudXNlLXRva2Vucyh0b2tlbnMtbWF0LWFwcC4kcHJlZml4LCB0b2tlbnMtbWF0LWFwcC5nZXQtdG9rZW4tc2xvdHMoKSkge1xuICAgICAgICAgIC8vIE5vdGU6IHdlIG5lZWQgdG8gZW1pdCBmYWxsYmFjayB2YWx1ZXMgaGVyZSB0byBhdm9pZCBlcnJvcnMgaW4gaW50ZXJuYWwgYnVpbGRzLlxuICAgICAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLmNyZWF0ZS10b2tlbi1zbG90KGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tc2xvdChjb2xvciwgdGV4dC1jb2xvciwgaW5oZXJpdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAyMCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJy4vZ3NzJztcblxuLy8vIFdoZW4gdHJ1ZSwgYWRkIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24gYmVmb3JlIGRlY2xhcmF0aW9uc1xuLy8vIHRoYXQgdXNlIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2ggYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucy4gVGhpc1xuLy8vIGFkZHMgZmFsbGJhY2sgc3VwcG9ydCBmb3Igb2xkZXIgYnJvd3NlcnMgc3VjaCBhcyBJRTExIHRoYXQgZG8gbm90IHN1cHBvcnRcbi8vLyB0aGVzZSBmZWF0dXJlcyBhdCB0aGUgY29zdCBvZiBhZGRpdGlvbmFsIENTUy4gU2V0IHRoaXMgdmFyaWFibGUgdG8gZmFsc2UgdG9cbi8vLyBkaXNhYmxlIGdlbmVyYXRpbmcgZmFsbGJhY2sgZGVjbGFyYXRpb25zLlxuJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBXcml0ZXMgYSBDU1MgcHJvcGVydHkvdmFsdWUgZGVjbGFyYXRpb24uIFRoaXMgbWl4aW4gaXMgdXNlZCB0aHJvdWdob3V0IHRoZVxuLy8vIHRoZW1lIHBhY2thZ2UgZm9yIGNvbnNpc3RlbmN5IGZvciBkeW5hbWljYWxseSBzZXR0aW5nIENTUyBwcm9wZXJ0eSB2YWx1ZXMuXG4vLy9cbi8vLyBUaGlzIG1peGluIG1heSBvcHRpb25hbGx5IHRha2UgYSBmYWxsYmFjayB2YWx1ZS4gRm9yIGFkdmFuY2VkIGZlYXR1cmVzIHN1Y2hcbi8vLyBhcyBjdXN0b20gcHJvcGVydGllcyBvciBDU1MgZnVuY3Rpb25zIGxpa2UgbWluIGFuZCBtYXgsIGEgZmFsbGJhY2sgdmFsdWUgaXNcbi8vLyByZWNvbW1lbmRlZCB0byBzdXBwb3J0IG9sZGVyIGJyb3dzZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eSAtIFRoZSBDU1MgcHJvcGVydHkgb2YgdGhlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBDU1MgZGVjbGFyYXRpb24uIFRoZSB2YWx1ZSBzaG91bGQgYmVcbi8vLyAgICAgcmVzb2x2ZWQgYnkgb3RoZXIgdGhlbWUgZnVuY3Rpb25zIGZpcnN0IChpLmUuIGN1c3RvbSBwcm9wZXJ0eSBNYXBzIGFuZFxuLy8vICAgICBNYXRlcmlhbCB0aGVtZSBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgbWl4aW4pLiBJZiB0aGUgdmFsdWUgaXNcbi8vLyAgICAgbnVsbCwgbm8gZGVjbGFyYXRpb25zIHdpbGwgYmUgZW1pdHRlZC5cbi8vLyBAcGFyYW0geyp9ICRmYWxsYmFjayAtIEFuIG9wdGlvbmFsIGZhbGxiYWNrIHZhbHVlIGZvciBvbGRlciBicm93c2Vycy4gSWZcbi8vLyAgICAgcHJvdmlkZWQsIGEgc2Vjb25kIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIHdpbGwgYmUgYWRkZWQgYmVmb3JlIHRoZVxuLy8vICAgICBtYWluIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLlxuLy8vIEBwYXJhbSB7TWFwfSAkZ3NzIC0gQW4gb3B0aW9uYWwgTWFwIG9mIEdTUyBhbm5vdGF0aW9ucyB0byBhZGQuXG4vLy8gQHBhcmFtIHtCb29sfSAkaW1wb3J0YW50IC0gSWYgdHJ1ZSwgYWRkIGAhaW1wb3J0YW50YCB0byB0aGUgZGVjbGFyYXRpb24uXG5AbWl4aW4gZGVjbGFyYXRpb24oXG4gICRwcm9wZXJ0eSxcbiAgJHZhbHVlLFxuICAkZmFsbGJhY2stdmFsdWU6IG51bGwsXG4gICRnc3M6ICgpLFxuICAkaW1wb3J0YW50OiBmYWxzZVxuKSB7XG4gIC8vIE5vcm1hbGx5IHNldHRpbmcgYSBudWxsIHZhbHVlIHRvIGEgcHJvcGVydHkgd2lsbCBub3QgZW1pdCBDU1MsIHNvIG1peGluc1xuICAvLyB3b3VsZG4ndCBuZWVkIHRvIGNoZWNrIHRoaXMuIEhvd2V2ZXIsIFNhc3Mgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGVcbiAgLy8gaW50ZXJwb2xhdGVkIHByb3BlcnR5IGlzIGEgY3VzdG9tIHByb3BlcnR5LlxuICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgICRpbXBvcnRhbnQtcnVsZTogaWYoJGltcG9ydGFudCwgJyAhaW1wb3J0YW50JywgJycpO1xuXG4gICAgQGlmICRmYWxsYmFjay12YWx1ZSBhbmQgJGVuYWJsZS1mYWxsYmFjay1kZWNsYXJhdGlvbnMge1xuICAgICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICAgI3skcHJvcGVydHl9OiAjeyRmYWxsYmFjay12YWx1ZX0gI3skaW1wb3J0YW50LXJ1bGV9O1xuXG4gICAgICAvLyBBZGQgQGFsdGVybmF0ZSB0byBhbm5vdGF0aW9ucy5cbiAgICAgICRnc3M6IG1hcC5tZXJnZShcbiAgICAgICAgJGdzcyxcbiAgICAgICAgKFxuICAgICAgICAgIGFsdGVybmF0ZTogdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnc3MuYW5ub3RhdGUoJGdzcyk7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0jeyRpbXBvcnRhbnQtcnVsZX07XG4gIH1cbn1cblxuLy8vIFVucGFja3Mgc2hvcnRoYW5kIHZhbHVlcyBmb3IgQ1NTIHByb3BlcnRpZXMgKGkuZS4gbGlzdHMgb2YgMS0zIHZhbHVlcykuXG4vLy8gSWYgYSBsaXN0IG9mIDQgdmFsdWVzIGlzIGdpdmVuLCBpdCBpcyByZXR1cm5lZCBhcy1pcy5cbi8vL1xuLy8vIEV4YW1wbGVzOlxuLy8vXG4vLy8gdW5wYWNrLXZhbHVlKDRweCkgPT4gNHB4IDRweCA0cHggNHB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHgpID0+IDRweCAycHggNHB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDJweCkgPT4gNHB4IDJweCAycHggMnB4XG4vLy8gdW5wYWNrLXZhbHVlKDRweCAycHggMCAycHgpID0+IDRweCAycHggMCAycHhcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIHwgTWFwIHwgTGlzdH0gJHZhbHVlIC0gTGlzdCBvZiAxIHRvIDQgdmFsdWUgbnVtYmVycy5cbi8vLyBAcmV0dXJuIHtMaXN0fSBhIExpc3Qgb2YgNCB2YWx1ZSBudW1iZXJzLlxuQGZ1bmN0aW9uIHVucGFjay12YWx1ZSgkdmFsdWUpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdtYXAnIG9yIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMSB7XG4gICAgQHJldHVybiAkdmFsdWUgJHZhbHVlICR2YWx1ZSAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSA0IHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDMge1xuICAgIEByZXR1cm4gbGlzdC5udGgoJHZhbHVlLCAxKSBsaXN0Lm50aCgkdmFsdWUsIDIpIGxpc3QubnRoKCR2YWx1ZSwgMylcbiAgICAgIGxpc3QubnRoKCR2YWx1ZSwgMik7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAyIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDEpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGVycm9yIFwiSW52YWxpZCBDU1MgcHJvcGVydHkgdmFsdWU6ICcjeyR2YWx1ZX0nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xufVxuIl19 */\\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9jb3JlL3JpcHBsZS9fcmlwcGxlLnNjc3MiLCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi8uLi9WaXN1YWwlMjBTdHVkaW8vV2ViVXNlck1hbmFnZXIvRGlnaXRhbERhdGEuVXNlck1hbmFnZXIuTmdXZWJVSS9DbGllbnRBcHAvc3JjL2FwcC9jb21wb25lbnRzL3VzZXItYXNzaWdubWVudC91c2VyLWFzc2lnbm1lbnQuY29tcG9uZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL2ExMXkvX2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL292ZXJsYXkvX2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQvX2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9mb2N1cy1pbmRpY2F0b3JzL19wcml2YXRlLnNjc3MiLCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9zdHlsZS9fbGF5b3V0LWNvbW1vbi5zY3NzIiwid2VicGFjazovLy4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvX2NvcmUuc2NzcyIsIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwvdGhlbWUvX2Nzcy5zY3NzIiwid2VicGFjazovLy4vc3JjL2FwcC9jb21wb25lbnRzL3VzZXItYXNzaWdubWVudC91c2VyLWFzc2lnbm1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0U7RUFDRSxnQkFBQTtFQUlBLGtCQUFBO0FDVEo7QURnQkk7RUFDRSx3QkFBQTtBQ2ROOztBRGtCRTtFQUNFLGlCQUFBO0FDZko7O0FEa0JFO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBRUEsNkRBQUE7RUFJQSwyQkFBQTtFQUtFLDZEQUFBO0FDdkJOO0FDK0JJO0VGSEUsYUFBQTtBQ3pCTjs7QUNuQkU7RUFDRSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUlBLG1CQUFBO0VBR0EsVUFBQTtFQUdBLHdCQUFBO0VBQ0EscUJBQUE7RUFNQSxPQUFBO0FEVUo7QUNSSTtFQUNFLFVBQUE7RUFDQSxRQUFBO0FEVU47O0FFMUJFO0VBRUUsb0JBQUE7RUFHQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0FGMEJKOztBRXRCRTtFQUNFLGVBQUE7RUFDQSxhQTNCd0I7QUZvRDVCO0FFdkJJO0VBR0UsYUFBQTtBRnVCTjs7QUVmRTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGFBMUNjO0FGNERsQjs7QUVkRTtFQUdFLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxzQkFBQTtFQUNBLGFBcERjO0VBd0RkLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QUZZSjs7QUVURTtFQUVFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUVBLGFBcEV1QjtFQXFFdkIsb0JBQUE7RUFDQSx3Q0FBQTtFQUNBLDBEQUFBO0VBQ0EsVUFBQTtBRlVKO0FFUkk7RUFDRSxVQUFBO0FGVU47QUVMTTtFQUdFLFlBQUE7QUZLUjs7QUVBRTtFQUNFLCtCQXRGcUI7QUZ5RnpCOztBRUFFO0VBRUUscURBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7QUZFSjtBRUlJO0VBQ0UsVUFBQTtFQUNBLG1CQUFBO0FGRk47O0FFTUU7RUFDRSxnQkFBQTtBRkhKOztBRVFFO0VBQ0Usa0JBQUE7RUFDQSxhQXJIYztFQTBIZCxhQUFBO0VBSUEsc0JBQUE7RUFHQSxjQUFBO0VBQ0EsZUFBQTtBRmRKOztBRWtCRTtFQUNFLGVBQUE7RUFLQSxXQUFBO0VBS0Esa0JBQUE7QUZ2Qko7O0FHMUhFO0VBQ0UsWUFBQTtBSDZISjs7QUd2SEU7RUF5Q0EseUJBQUE7RUFDQSxrQ0FBQTtFQXhDRSx1QkFBQTtFQUNBLDJCQUFBO0FIMkhKOztBR2xIRTtFQTZCQSx5QkFBQTtFQUNBLGtDQUFBO0VBNUJFLG9CQUFBO0FIc0hKOztBRzVHRSwyQ0FBQSxJQUFBLEVBQUE7QUFDQSx5Q0FBQSxJQUFBLEVBQUE7QUFFQTtFQUVFLCtDQUFBO0FINkdKOztBRzFHRTtFQUVFLDZDQUFBO0FINEdKOztBSTFJRTtFQUNFLGtCQUFBO0FKNklKO0FJM0lJO0VDaEJGLE1BQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFRGNJLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpREFBQTtFQUNBLHdKQUFBO0VBWUEsNERBQUE7QUpzSU47QUk5SEk7RUFDRSxXQUFBO0FKZ0lOOztBQ3RGTTtFRzVCQSxvQ0FBQTtBSnNITjs7QUlqS0U7RUFDRSxrQkFBQTtBSm9LSjtBSWxLSTtFQ2hCRixNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RURjSSxzQkFBQTtFQUNBLG9CQUFBO0VBQ0EscURBQUE7RUFDQSxvS0FBQTtFQVlBLGdFQUFBO0FKNkpOO0FJckpJO0VBQ0UsV0FBQTtBSnVKTjs7QUM3R007RUc1QkEsd0NBQUE7QUo2SU47O0FNbkxJO0VDMERBLDhEQUFBO0VBQUEseUNBQUE7QVA4SEo7QVFDQSx3aDRDQUF3aDRDIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnQGFuZ3VsYXIvY2RrJztcbkB1c2UgJy4uL3Rva2Vucy9tMi9tYXQvcmlwcGxlJyBhcyB0b2tlbnMtbWF0LXJpcHBsZTtcbkB1c2UgJy4uL3Rva2Vucy90b2tlbi11dGlscyc7XG5cbkBtaXhpbiByaXBwbGUoKSB7XG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gUHJvbW90ZSBjb250YWluZXJzIHRoYXQgaGF2ZSByaXBwbGVzIHRvIGEgbmV3IGxheWVyLiBXZSB3YW50IHRvIHRhcmdldCBgOm5vdCg6ZW1wdHkpYCxcbiAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYWxsIHJpcHBsZSBjb250YWluZXJzIHRvIGhhdmUgdGhlaXIgb3duIGxheWVyIHNpbmNlIHRoZXkncmUgdXNlZCBpbiBhXG4gICAgLy8gbG90IG9mIHBsYWNlcyBhbmQgdGhlIGxheWVyIGlzIG9ubHkgcmVsZXZhbnQgd2hpbGUgYW5pbWF0aW5nLiBOb3RlIHRoYXQgaWRlYWxseSB3ZSdkIHVzZVxuICAgIC8vIHRoZSBgY29udGFpbmAgcHJvcGVydHkgaGVyZSAoc2VlICMxMzE3NSksIGJlY2F1c2UgYDplbXB0eWAgY2FuIGJlIGJyb2tlbiBieSBoYXZpbmcgZXh0cmFcbiAgICAvLyB0ZXh0IGluc2lkZSB0aGUgZWxlbWVudCwgYnV0IGl0IGlzbid0IHZlcnkgd2VsbCBzdXBwb3J0ZWQgeWV0LlxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuXG4gICAgLy8gV2UgdXNlIGEgM2QgdHJhbnNmb3JtIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQgYW4gaXNzdWUgaW4gU2FmYXJpIHdoZXJlXG4gICAgLy8gdGhlIHJpcHBsZXMgYXJlbid0IGNsaXBwZWQgd2hlbiBpbnNpZGUgdGhlIHNoYWRvdyBET00gKHNlZSAjMjQwMjgpLlxuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcblxuICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLnVzZS10b2tlbnMoXG4gICAgICB0b2tlbnMtbWF0LXJpcHBsZS4kcHJlZml4LCB0b2tlbnMtbWF0LXJpcHBsZS5nZXQtdG9rZW4tc2xvdHMoKSkge1xuICAgICAgLy8gV2UgaGF2ZSB0byBlbWl0IGEgZmFsbGJhY2sgdmFsdWUgaGVyZSwgYmVjYXVzZSBzb21lIGludGVybmFsIGJ1aWxkcyBkZXBlbmQgb24gaXQuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3t0b2tlbi11dGlscy5nZXQtdG9rZW4tdmFyaWFibGUoY29sb3IpfSwgcmdiYSgjMDAwLCAwLjEpKTtcbiAgICB9XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLmhpZ2gtY29udHJhc3QoYWN0aXZlLCBvZmYpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIubWF0LXJpcHBsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tYXQtcmlwcGxlOm5vdCg6ZW1wdHkpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1hdC1yaXBwbGUtY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG4uY2RrLWhpZ2gtY29udHJhc3QtYWN0aXZlIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgbGVmdDogMDtcbn1cbltkaXI9cnRsXSAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmNkay1vdmVybGF5LWNvbnRhaW5lcjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmNkay1vdmVybGF5LXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcbiAgb3BhY2l0eTogMDtcbn1cbi5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKTtcbn1cblxuLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxbXMgbGluZWFyLCBvcGFjaXR5IDFtcyBsaW5lYXI7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMTtcbn1cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wLW5vb3AtYW5pbWF0aW9uIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMXB4O1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG5cbi5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7IC8qISovIH1cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsgLyohKi8gfVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXM7XG59XG5cbi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbn1cblxuLm1hdC1mb2N1cy1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiB2YXIoLS1tYXQtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpO1xuICBib3JkZXI6IHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLCAzcHgpIHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLCBzb2xpZCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzLCA0cHgpO1xufVxuLm1hdC1mb2N1cy1pbmRpY2F0b3I6Zm9jdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUge1xuICAtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXQtbWRjLWZvY3VzLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1kaXNwbGF5LCBub25lKTtcbiAgYm9yZGVyOiB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgdmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXN0eWxlLCBzb2xpZCkgdmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMsIDRweCk7XG59XG4ubWF0LW1kYy1mb2N1cy1pbmRpY2F0b3I6Zm9jdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUge1xuICAtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWF0LWFwcC1iYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1tYXQtYXBwLXRleHQtY29sb3IsIGluaGVyaXQpO1xufSIsIi8vLyBFbWl0cyBhIENTUyBjbGFzcywgYC5jZGstdmlzdWFsbHktaGlkZGVuYC4gVGhpcyBjbGFzcyBjYW4gYmUgYXBwbGllZCB0byBhbiBlbGVtZW50XG4vLy8gdG8gbWFrZSB0aGF0IGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuIHdoaWxlIHJlbWFpbmluZyBhdmFpbGFibGUgdG8gYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG5AbWl4aW4gYTExeS12aXN1YWxseS1oaWRkZW4oKSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgYSBDaHJvbWUgYnVnIHRoYXQgY2FuIGNhdXNlIHRoZSB0YWIgdG8gY3Jhc2ggd2hlbiBsYXJnZSBhbW91bnRzIG9mXG4gICAgLy8gbm9uLUVuZ2xpc2ggdGV4dCBnZXQgd3JhcHBlZDogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTIwMTQ0NFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAvLyBBdm9pZCBicm93c2VycyByZW5kZXJpbmcgdGhlIGZvY3VzIHJpbmcgaW4gc29tZSBjYXNlcy5cbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgLy8gQXZvaWQgc29tZSBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciB3aWxsIHN0aWxsIHJlbmRlciB0aGUgbmF0aXZlIGNvbnRyb2xzIChzZWUgIzkwNDkpLlxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAvLyBXZSBuZWVkIGF0IGxlYXN0IG9uZSBvZiB0b3AvYm90dG9tL2xlZnQvcmlnaHQgaW4gb3JkZXIgdG8gcHJldmVudCBjYXNlcyB3aGVyZSB0aGVcbiAgICAvLyBhYnNvbHV0ZS1wb3NpdGlvbmVkIGVsZW1lbnQgaXMgcHVzaGVkIGRvd24gYW5kIGNhbiBhZmZlY3Qgc2Nyb2xsaW5nIChzZWUgIzI0NTk3KS5cbiAgICAvLyBgbGVmdGAgd2FzIGNob3NlbiBoZXJlLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGxpa2VseSB0byBicmVhayBvdmVycmlkZXMgd2hlcmUgdGhlXG4gICAgLy8gZWxlbWVudCBtaWdodCBoYXZlIGJlZW4gcG9zaXRpb25lZCAoZS5nLiBgbWF0LWNoZWNrYm94YCkuXG4gICAgbGVmdDogMDtcblxuICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQGRlcHJlY2F0ZWQgVXNlIGBhMTF5LXZpc3VhbGx5LWhpZGRlbmAuXG5AbWl4aW4gYTExeSgpIHtcbiAgQGluY2x1ZGUgYTExeS12aXN1YWxseS1oaWRkZW47XG59XG5cbi8vLyBFbWl0cyB0aGUgbWl4aW4ncyBjb250ZW50IG5lc3RlZCB1bmRlciBgJHNlbGVjdG9yLWNvbnRleHRgIGlmIGAkc2VsZWN0b3ItY29udGV4dGBcbi8vLyBpcyBub24tZW1wdHkuXG4vLy8gQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yLWNvbnRleHQgVGhlIHNlbGVjdG9yIHVuZGVyIHdoaWNoIHRvIG5lc3QgdGhlIG1peGluJ3MgY29udGVudC5cbkBtaXhpbiBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgQGlmICgkc2VsZWN0b3ItY29udGV4dCA9PSAnJykge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRzZWxlY3Rvci1jb250ZXh0fSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8vIHRvIE1pY3Jvc29mdCBicm93c2Vycy4gQ2hyb21lIGNhbiBiZSBpbmNsdWRlZCBieSBjaGVja2luZyBmb3IgdGhlIGBodG1sW2hjXWBcbi8vLyBhdHRyaWJ1dGUsIGhvd2V2ZXIgQ2hyb21lIGhhbmRsZXMgaGlnaCBjb250cmFzdCBkaWZmZXJlbnRseS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXQgVHlwZSBvZiBoaWdoIGNvbnRyYXN0IHNldHRpbmcgdG8gdGFyZ2V0LiBEZWZhdWx0cyB0byBgYWN0aXZlYCwgY2FuIGJlXG4vLy8gICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gZW5jYXBzdWxhdGlvbiBXaGV0aGVyIHRvIGVtaXQgc3R5bGVzIGZvciB2aWV3IGVuY2Fwc3VsYXRpb24uIFZhbHVlcyBhcmU6XG4vLy8gICAgICogYG9uYCAtIHdvcmtzIGZvciBgRW11bGF0ZWRgLCBgTmF0aXZlYCwgYW5kIGBTaGFkb3dEb21gXG4vLy8gICAgICogYG9mZmAgLSB3b3JrcyBmb3IgYE5vbmVgXG4vLy8gICAgICogYGFueWAgLSB3b3JrcyBmb3IgYWxsIGVuY2Fwc3VsYXRpb24gbW9kZXMgYnkgZW1pdHRpbmcgdGhlIENTUyB0d2ljZSAoZGVmYXVsdCkuXG5AbWl4aW4gaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUsICRlbmNhcHN1bGF0aW9uOiAnYW55Jykge1xuICBAaWYgKCR0YXJnZXQgIT0gJ2FjdGl2ZScgYW5kICR0YXJnZXQgIT0gJ2JsYWNrLW9uLXdoaXRlJyBhbmQgJHRhcmdldCAhPSAnd2hpdGUtb24tYmxhY2snKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IHZhbHVlIFwiI3skdGFyZ2V0fVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcImFjdGl2ZVwiLCBcImJsYWNrLW9uLXdoaXRlXCIsIGFuZCBcIndoaXRlLW9uLWJsYWNrXCInO1xuICB9XG5cbiAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ2FueScpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgZW5jYXBzdWxhdGlvbiBcIiN7JGVuY2Fwc3VsYXRpb259XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwib25cIiwgXCJvZmZcIiwgYW5kIFwiYW55XCInO1xuICB9XG5cbiAgLy8gSWYgdGhlIHNlbGVjdG9yIGNvbnRleHQgaGFzIG11bHRpcGxlIHBhcnRzLCBzdWNoIGFzIGAuc2VjdGlvbiwgLnJlZ2lvbmAsIGp1c3QgZG9pbmdcbiAgLy8gYC5jZGstaGlnaC1jb250cmFzdC14eHggI3smfWAgd2lsbCBvbmx5IGFwcGx5IHRoZSBwYXJlbnQgc2VsZWN0b3IgdG8gdGhlIGZpcnN0IHBhcnQgb2YgdGhlXG4gIC8vIGNvbnRleHQuIFdlIGFkZHJlc3MgdGhpcyBieSBuZXN0aW5nIHRoZSBzZWxlY3RvciBjb250ZXh0IHVuZGVyIC5jZGstaGlnaC1jb250cmFzdC5cbiAgQGF0LXJvb3Qge1xuICAgICRzZWxlY3Rvci1jb250ZXh0OiAjeyZ9O1xuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb24nKSB7XG4gICAgICAvLyBOb3RlIHRoYXQgaWYgdGhpcyBzZWxlY3RvciBpcyB1cGRhdGVkLCB0aGUgc2FtZSBjaGFuZ2UgaGFzIHRvIGJlIG1hZGUgaW5zaWRlXG4gICAgICAvLyBgX292ZXJsYXkuc2Nzc2Agd2hpY2ggY2FuJ3QgZGVwZW5kIG9uIHRoaXMgbWl4aW4gZHVlIHRvIHNvbWUgaW5mcmFzdHJ1Y3R1cmUgbGltaXRhdGlvbnMuXG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSB7XG4gICAgICAgIEBpbmNsdWRlIF9vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRvdmVybGF5LWNvbnRhaW5lci16LWluZGV4OiAxMDAwICFkZWZhdWx0O1xuJG92ZXJsYXktei1pbmRleDogMTAwMCAhZGVmYXVsdDtcbiRvdmVybGF5LWJhY2tkcm9wLXotaW5kZXg6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kb3ZlcmxheS1iYWNrZHJvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG4vLy8gRW1pdHMgc3RydWN0dXJhbCBzdHlsZXMgcmVxdWlyZWQgZm9yIGNkay9vdmVybGF5IHRvIGZ1bmN0aW9uLlxuQG1peGluIG92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJG92ZXJsYXktY29udGFpbmVyLXotaW5kZXg7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRvdmVybGF5LXotaW5kZXg7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGltcG9ydCBhbmQgdXNlIHRoZSBgaGlnaC1jb250cmFzdGAgbWl4aW4gZnJvbSBgX2ExMXkuc2Nzc2AsIGJlY2F1c2VcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgdG9wLWxldmVsIGBjZGtgIHBhY2thZ2Ugd2hlbiBwdXR0aW5nIHRvZ2V0aGVyIHRoZSBmaWxlc1xuICAgICAgLy8gZm9yIG5wbS4gQW55IHJlbGF0aXZlIGltcG9ydCBwYXRocyB3ZSB1c2UgaGVyZSB3aWxsIGJlY29tZSBpbnZhbGlkIG9uY2UgdGhlIGZpbGUgaXMgY29waWVkLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAmIHtcbiAgICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXktYmFja2Ryb3AtY29sb3I7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIERlZmluZSBhIHRyYW5zaXRpb24gb24gdGhlIHZpc2liaWxpdHkgc28gdGhhdCB0aGUgYHRyYW5zaXRpb25lbmRgIGV2ZW50IGNhbiBmaXJlIGltbWVkaWF0ZWx5LlxuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMW1zIGxpbmVhciwgb3BhY2l0eSAxbXMgbGluZWFyO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Atbm9vcC1hbmltYXRpb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkb3ZlcmxheS16LWluZGV4O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIiwiLy8gU3RydWN0dXJhbCBzdHlsZXMgZm9yIHRoZSBhdXRvc2l6ZSB0ZXh0IGZpZWxkcy5cbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9zaXplKCkge1xuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBAaW5jbHVkZSBfYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGVuYWJsZSBtb25pdG9yaW5nIGF1dG9maWxsIHN0YXRlIG9mIHRleHQgZmllbGRzLlxuQG1peGluIHRleHQtZmllbGQtYXV0b2ZpbGwoKSB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxufVxuXG5AbWl4aW4gX2F1dG9zaXplLW1lYXN1cmluZy1iYXNlIHtcbiAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgLy8gbWVhc3VyZW1lbnQuIFdlIGp1c3QgaGF2ZSB0byBhY2NvdW50IGZvciBpdCBsYXRlciBhbmQgc3VidHJhY3QgaXQgb2ZmIHRoZSBmaW5hbCByZXN1bHQuXG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgVUlEcyBmb3Iga2V5ZnJhbWVzIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0IGZpZWxkIGF1dG9maWxsIHN0eWxlcy5cbiRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogMDtcblxuLy8gTWl4aW4gdXNlZCB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMgdG8gYW4gYXV0b2ZpbGxlZCB0ZXh0IGZpZWxkLlxuLy8gQmFzZWQgb246IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3ODE1NDkvXG4vLyByZW1vdmluZy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG91ci1mb3ItY2hyb21lLWF1dG9jb21wbGV0ZSNhbnN3ZXItMzc0MzIyNjBcbkBtaXhpbiB0ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRhdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogJGF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG4vLyBAZGVwcmVjYXRlZCBVc2UgYGF1dG9zaXplYCBhbmQgYGF1dG9maWxsYCBpbnN0ZWFkLlxuQG1peGluIHRleHQtZmllbGQge1xuICBAaW5jbHVkZSB0ZXh0LWZpZWxkLWF1dG9zaXplKCk7XG4gIEBpbmNsdWRlIHRleHQtZmllbGQtYXV0b2ZpbGwoKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdAYW5ndWxhci9jZGsnO1xuQHVzZSAnLi4vc3R5bGUvbGF5b3V0LWNvbW1vbic7XG5AdXNlICcuLi90aGVtaW5nL3RoZW1pbmcnO1xuQHVzZSAnLi4vdGhlbWluZy9pbnNwZWN0aW9uJztcblxuLy8gUHJpdmF0ZSBzYXNzIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgdXNlZCBhcyByZWZlcmVuY2UgdGhyb3VnaG91dCBjb21wb25lbnQgc3R5bGVzaGVldHMuXG4kZGVmYXVsdC1ib3JkZXItd2lkdGg6IDNweDtcbiRkZWZhdWx0LWJvcmRlci1zdHlsZTogc29saWQ7XG4kZGVmYXVsdC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgdGhlIGZvY3VzIGluZGljYXRvciBzdHJ1Y3R1cmFsIHN0eWxlcy5cbkBtaXhpbiBzdHJ1Y3R1cmFsLXN0eWxpbmcoJHByZWZpeCkge1xuICAuI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBsYXlvdXQtY29tbW9uLmZpbGwoKTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHZhcigtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpOyAvLyBIaWRlIHRoZSBpbmRpY2F0b3IgYnkgZGVmYXVsdC5cbiAgICAgIGJvcmRlcjogdmFyKFxuICAgICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoLFxuICAgICAgICAgICN7JGRlZmF1bHQtYm9yZGVyLXdpZHRofVxuICAgICAgICApXG4gICAgICAgIHZhcihcbiAgICAgICAgICAtLSN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1zdHlsZSxcbiAgICAgICAgICAjeyRkZWZhdWx0LWJvcmRlci1zdHlsZX1cbiAgICAgICAgKVxuICAgICAgICB2YXIoXG4gICAgICAgICAgLS0jeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsXG4gICAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItY29sb3J9XG4gICAgICAgICk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoXG4gICAgICAgIC0tI3skcHJlZml4fS1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cyxcbiAgICAgICAgI3skZGVmYXVsdC1ib3JkZXItcmFkaXVzfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBCeSBkZWZhdWx0LCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBmb2N1cyBpbmRpY2F0b3IgaG9zdCBlbGVtZW50IHRha2VzIGZvY3VzLlxuICAgIC8vIERlZmluaW5nIGEgcHNldWRvIGVsZW1lbnQncyBjb250ZW50IHdpbGwgY2F1c2UgaXQgdG8gcmVuZGVyLlxuICAgICY6Zm9jdXM6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICAvLyBFbmFibGUgdGhlIGluZGljYXRvciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gIEBpbmNsdWRlIGNkay5oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKGRpc3BsYXk6IGJsb2NrKSwgJHByZWZpeCk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGVzIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZnJvbSBhIG1hcC5cbkBtaXhpbiBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKSB7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICBAaWYgKCR2YWx1ZSkge1xuICAgICAgLS0jeyRrZXl9OiAjeyR2YWx1ZX07XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgZGVkdXBzIENTUyB2YXJpYWJsZXMgZm9yIHRoZSBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycyBtaXhpbi5cbkBtaXhpbiBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAkcHJlZml4KSB7XG4gICRib3JkZXItc3R5bGU6IG1hcC5nZXQoJGNvbmZpZywgYm9yZGVyLXN0eWxlKTtcbiAgJGJvcmRlci13aWR0aDogbWFwLmdldCgkY29uZmlnLCBib3JkZXItd2lkdGgpO1xuICAkYm9yZGVyLXJhZGl1czogbWFwLmdldCgkY29uZmlnLCBib3JkZXItcmFkaXVzKTtcbiAgJGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29uZmlnLCBib3JkZXItY29sb3IpO1xuICAkZGlzcGxheTogbWFwLmdldCgkY29uZmlnLCBkaXNwbGF5KTtcbiAgJG1hcDogKFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUnOiAkYm9yZGVyLXN0eWxlLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgnOiAkYm9yZGVyLXdpZHRoLFxuICAgICcjeyRwcmVmaXh9LWZvY3VzLWluZGljYXRvci1ib3JkZXItcmFkaXVzJzogJGJvcmRlci1yYWRpdXMsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvcic6ICRib3JkZXItY29sb3IsXG4gICAgJyN7JHByZWZpeH0tZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXknOiAkZGlzcGxheSxcbiAgKTtcblxuICBAaWYgKCYpIHtcbiAgICBAaW5jbHVkZSBfb3V0cHV0LXZhcmlhYmxlcygkbWFwKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gV2UgdXNlIGBodG1sYCBoZXJlIGluc3RlYWQgb2YgYDpyb290YCwgYmVjYXVzZSB0aGVcbiAgICAvLyBsYXR0ZXIgY2F1c2VzIHNvbWUgaXNzdWVzIHdpdGggaW50ZXJuYWwgdG9vbGluZy5cbiAgICBodG1sIHtcbiAgICAgIEBpbmNsdWRlIF9vdXRwdXQtdmFyaWFibGVzKCRtYXApO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0Jyk7XG59XG5cbkBtaXhpbiBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICAgIGJvcmRlci1jb2xvcjogYmxhY2ssXG4gICAgICBkaXNwbGF5OiBibG9jayxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAubWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcblxuICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnLCAnbWF0LW1kYycpO1xufVxuXG5AbWl4aW4gc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHRoZW1lLW9yLWNvbG9yKSA9PSAnY29sb3InIHtcbiAgICBAaW5jbHVkZSBjdXN0b21pemUtZm9jdXMtaW5kaWNhdG9ycygoXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRoZW1lLW9yLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdCcpO1xuICB9XG59XG5cbkBtaXhpbiBzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSgkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0Jyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvciwgJ21hdC1mb2N1cy1pbmRpY2F0b3JzJykge1xuICAgICAgQGlmIGluc3BlY3Rpb24udGhlbWUtaGFzKCR0aGVtZS1vci1jb2xvciwgY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkdGhlbWUtb3ItY29sb3IpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdGhlbWUtb3ItY29sb3IpID09ICdjb2xvcicge1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGhlbWUtb3ItY29sb3JcbiAgICApLCAnbWF0LW1kYycpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBpbnNwZWN0aW9uLmdldC10aGVtZS1jb2xvcigkdGhlbWUtb3ItY29sb3IsIHByaW1hcnkpO1xuICAgIEBpbmNsdWRlIGN1c3RvbWl6ZS1mb2N1cy1pbmRpY2F0b3JzKChcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yXG4gICAgKSwgJ21hdC1tZGMnKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCR0aGVtZS1vci1jb2xvcikgPT0gJ2NvbG9yJyB7XG4gICAgQGluY2x1ZGUgY3VzdG9taXplLWZvY3VzLWluZGljYXRvcnMoKFxuICAgICAgICBib3JkZXItY29sb3I6ICR0aGVtZS1vci1jb2xvclxuICAgICksICdtYXQtbWRjJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRoZW1pbmcucHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKFxuICAgICAgICAkdGhlbWUtb3ItY29sb3IsICdtYXQtbWRjLWZvY3VzLWluZGljYXRvcnMnKSB7XG4gICAgICBAaWYgaW5zcGVjdGlvbi50aGVtZS1oYXMoJHRoZW1lLW9yLWNvbG9yLCBjb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3IoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRoaXMgbWl4aW4gZW5zdXJlcyBhbiBlbGVtZW50IHNwYW5zIHRvIGZpbGwgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBkZWZpbmVkIHBvc2l0aW9uaW5nLlxuQG1peGluIGZpbGwge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiIsIkB1c2UgJ0Bhbmd1bGFyL2Nkayc7XG5AdXNlICcuL3Rva2Vucy9tMi9tYXQvYXBwJyBhcyB0b2tlbnMtbWF0LWFwcDtcbkB1c2UgJy4vdG9rZW5zL3Rva2VuLXV0aWxzJztcbkB1c2UgJy4vcmlwcGxlL3JpcHBsZSc7XG5AdXNlICcuL2ZvY3VzLWluZGljYXRvcnMvcHJpdmF0ZSc7XG5AdXNlICcuL21kYy1oZWxwZXJzL21kYy1oZWxwZXJzJztcblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBjb3JlKCkge1xuICBAaW5jbHVkZSByaXBwbGUucmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay5hMTF5LXZpc3VhbGx5LWhpZGRlbigpO1xuICBAaW5jbHVkZSBjZGsub3ZlcmxheSgpO1xuICBAaW5jbHVkZSBjZGsudGV4dC1maWVsZC1hdXRvc2l6ZSgpO1xuICBAaW5jbHVkZSBjZGsudGV4dC1maWVsZC1hdXRvZmlsbCgpO1xuICBAaW5jbHVkZSBwcml2YXRlLnN0cnVjdHVyYWwtc3R5bGluZygnbWF0Jyk7XG4gIEBpbmNsdWRlIHByaXZhdGUuc3RydWN0dXJhbC1zdHlsaW5nKCdtYXQtbWRjJyk7XG5cbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGVcbiAgLy8gdXNlcidzIGNvbnRlbnQgaXNuJ3QgaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1oZWxwZXJzLmRpc2FibGUtbWRjLWZhbGxiYWNrLWRlY2xhcmF0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIHRva2VuLXV0aWxzLnVzZS10b2tlbnModG9rZW5zLW1hdC1hcHAuJHByZWZpeCwgdG9rZW5zLW1hdC1hcHAuZ2V0LXRva2VuLXNsb3RzKCkpIHtcbiAgICAgICAgICAvLyBOb3RlOiB3ZSBuZWVkIHRvIGVtaXQgZmFsbGJhY2sgdmFsdWVzIGhlcmUgdG8gYXZvaWQgZXJyb3JzIGluIGludGVybmFsIGJ1aWxkcy5cbiAgICAgICAgICBAaW5jbHVkZSB0b2tlbi11dGlscy5jcmVhdGUtdG9rZW4tc2xvdChiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgQGluY2x1ZGUgdG9rZW4tdXRpbHMuY3JlYXRlLXRva2VuLXNsb3QoY29sb3IsIHRleHQtY29sb3IsIGluaGVyaXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICcuL2dzcyc7XG5cbi8vLyBXaGVuIHRydWUsIGFkZCBhbiBhZGRpdGlvbmFsIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uIGJlZm9yZSBkZWNsYXJhdGlvbnNcbi8vLyB0aGF0IHVzZSBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoIGFzIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIENTUyBmdW5jdGlvbnMuIFRoaXNcbi8vLyBhZGRzIGZhbGxiYWNrIHN1cHBvcnQgZm9yIG9sZGVyIGJyb3dzZXJzIHN1Y2ggYXMgSUUxMSB0aGF0IGRvIG5vdCBzdXBwb3J0XG4vLy8gdGhlc2UgZmVhdHVyZXMgYXQgdGhlIGNvc3Qgb2YgYWRkaXRpb25hbCBDU1MuIFNldCB0aGlzIHZhcmlhYmxlIHRvIGZhbHNlIHRvXG4vLy8gZGlzYWJsZSBnZW5lcmF0aW5nIGZhbGxiYWNrIGRlY2xhcmF0aW9ucy5cbiRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gV3JpdGVzIGEgQ1NTIHByb3BlcnR5L3ZhbHVlIGRlY2xhcmF0aW9uLiBUaGlzIG1peGluIGlzIHVzZWQgdGhyb3VnaG91dCB0aGVcbi8vLyB0aGVtZSBwYWNrYWdlIGZvciBjb25zaXN0ZW5jeSBmb3IgZHluYW1pY2FsbHkgc2V0dGluZyBDU1MgcHJvcGVydHkgdmFsdWVzLlxuLy8vXG4vLy8gVGhpcyBtaXhpbiBtYXkgb3B0aW9uYWxseSB0YWtlIGEgZmFsbGJhY2sgdmFsdWUuIEZvciBhZHZhbmNlZCBmZWF0dXJlcyBzdWNoXG4vLy8gYXMgY3VzdG9tIHByb3BlcnRpZXMgb3IgQ1NTIGZ1bmN0aW9ucyBsaWtlIG1pbiBhbmQgbWF4LCBhIGZhbGxiYWNrIHZhbHVlIGlzXG4vLy8gcmVjb21tZW5kZWQgdG8gc3VwcG9ydCBvbGRlciBicm93c2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHkgLSBUaGUgQ1NTIHByb3BlcnR5IG9mIHRoZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgQ1NTIGRlY2xhcmF0aW9uLiBUaGUgdmFsdWUgc2hvdWxkIGJlXG4vLy8gICAgIHJlc29sdmVkIGJ5IG90aGVyIHRoZW1lIGZ1bmN0aW9ucyBmaXJzdCAoaS5lLiBjdXN0b20gcHJvcGVydHkgTWFwcyBhbmRcbi8vLyAgICAgTWF0ZXJpYWwgdGhlbWUga2V5cyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIG1peGluKS4gSWYgdGhlIHZhbHVlIGlzXG4vLy8gICAgIG51bGwsIG5vIGRlY2xhcmF0aW9ucyB3aWxsIGJlIGVtaXR0ZWQuXG4vLy8gQHBhcmFtIHsqfSAkZmFsbGJhY2sgLSBBbiBvcHRpb25hbCBmYWxsYmFjayB2YWx1ZSBmb3Igb2xkZXIgYnJvd3NlcnMuIElmXG4vLy8gICAgIHByb3ZpZGVkLCBhIHNlY29uZCBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbiB3aWxsIGJlIGFkZGVkIGJlZm9yZSB0aGVcbi8vLyAgICAgbWFpbiBwcm9wZXJ0eS92YWx1ZSBkZWNsYXJhdGlvbi5cbi8vLyBAcGFyYW0ge01hcH0gJGdzcyAtIEFuIG9wdGlvbmFsIE1hcCBvZiBHU1MgYW5ub3RhdGlvbnMgdG8gYWRkLlxuLy8vIEBwYXJhbSB7Qm9vbH0gJGltcG9ydGFudCAtIElmIHRydWUsIGFkZCBgIWltcG9ydGFudGAgdG8gdGhlIGRlY2xhcmF0aW9uLlxuQG1peGluIGRlY2xhcmF0aW9uKFxuICAkcHJvcGVydHksXG4gICR2YWx1ZSxcbiAgJGZhbGxiYWNrLXZhbHVlOiBudWxsLFxuICAkZ3NzOiAoKSxcbiAgJGltcG9ydGFudDogZmFsc2Vcbikge1xuICAvLyBOb3JtYWxseSBzZXR0aW5nIGEgbnVsbCB2YWx1ZSB0byBhIHByb3BlcnR5IHdpbGwgbm90IGVtaXQgQ1NTLCBzbyBtaXhpbnNcbiAgLy8gd291bGRuJ3QgbmVlZCB0byBjaGVjayB0aGlzLiBIb3dldmVyLCBTYXNzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlXG4gIC8vIGludGVycG9sYXRlZCBwcm9wZXJ0eSBpcyBhIGN1c3RvbSBwcm9wZXJ0eS5cbiAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAkaW1wb3J0YW50LXJ1bGU6IGlmKCRpbXBvcnRhbnQsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAkZmFsbGJhY2stdmFsdWUgYW5kICRlbmFibGUtZmFsbGJhY2stZGVjbGFyYXRpb25zIHtcbiAgICAgIEBpbmNsdWRlIGdzcy5hbm5vdGF0ZSgkZ3NzKTtcbiAgICAgICN7JHByb3BlcnR5fTogI3skZmFsbGJhY2stdmFsdWV9ICN7JGltcG9ydGFudC1ydWxlfTtcblxuICAgICAgLy8gQWRkIEBhbHRlcm5hdGUgdG8gYW5ub3RhdGlvbnMuXG4gICAgICAkZ3NzOiBtYXAubWVyZ2UoXG4gICAgICAgICRnc3MsXG4gICAgICAgIChcbiAgICAgICAgICBhbHRlcm5hdGU6IHRydWUsXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ3NzLmFubm90YXRlKCRnc3MpO1xuICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9I3skaW1wb3J0YW50LXJ1bGV9O1xuICB9XG59XG5cbi8vLyBVbnBhY2tzIHNob3J0aGFuZCB2YWx1ZXMgZm9yIENTUyBwcm9wZXJ0aWVzIChpLmUuIGxpc3RzIG9mIDEtMyB2YWx1ZXMpLlxuLy8vIElmIGEgbGlzdCBvZiA0IHZhbHVlcyBpcyBnaXZlbiwgaXQgaXMgcmV0dXJuZWQgYXMtaXMuXG4vLy9cbi8vLyBFeGFtcGxlczpcbi8vL1xuLy8vIHVucGFjay12YWx1ZSg0cHgpID0+IDRweCA0cHggNHB4IDRweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4KSA9PiA0cHggMnB4IDRweCAycHhcbi8vLyB1bnBhY2stdmFsdWUoNHB4IDJweCAycHgpID0+IDRweCAycHggMnB4IDJweFxuLy8vIHVucGFjay12YWx1ZSg0cHggMnB4IDAgMnB4KSA9PiA0cHggMnB4IDAgMnB4XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IE1hcCB8IExpc3R9ICR2YWx1ZSAtIExpc3Qgb2YgMSB0byA0IHZhbHVlIG51bWJlcnMuXG4vLy8gQHJldHVybiB7TGlzdH0gYSBMaXN0IG9mIDQgdmFsdWUgbnVtYmVycy5cbkBmdW5jdGlvbiB1bnBhY2stdmFsdWUoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbWFwJyBvciBsaXN0Lmxlbmd0aCgkdmFsdWUpID09IDEge1xuICAgIEByZXR1cm4gJHZhbHVlICR2YWx1ZSAkdmFsdWUgJHZhbHVlO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gNCB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHZhbHVlKSA9PSAzIHtcbiAgICBAcmV0dXJuIGxpc3QubnRoKCR2YWx1ZSwgMSkgbGlzdC5udGgoJHZhbHVlLCAyKSBsaXN0Lm50aCgkdmFsdWUsIDMpXG4gICAgICBsaXN0Lm50aCgkdmFsdWUsIDIpO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCR2YWx1ZSkgPT0gMiB7XG4gICAgQHJldHVybiBsaXN0Lm50aCgkdmFsdWUsIDEpIGxpc3QubnRoKCR2YWx1ZSwgMikgbGlzdC5udGgoJHZhbHVlLCAxKVxuICAgICAgbGlzdC5udGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBlcnJvciBcIkludmFsaWQgQ1NTIHByb3BlcnR5IHZhbHVlOiAnI3skdmFsdWV9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcbn1cbiIsIi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1hdC1yaXBwbGU6bm90KDplbXB0eSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG59XG5cbi5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWF0LXJpcHBsZS1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cbi5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBsZWZ0OiAwO1xufVxuW2Rpcj1ydGxdIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpO1xufVxuXG4uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFtcyBsaW5lYXIsIG9wYWNpdHkgMW1zIGxpbmVhcjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAxO1xufVxuLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uY2RrLW92ZXJsYXktYmFja2Ryb3Atbm9vcC1hbmltYXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblxudGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveCB7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsgLyohKi8gfVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgeyAvKiEqLyB9XG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbn1cblxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zO1xufVxuXG4ubWF0LWZvY3VzLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IHZhcigtLW1hdC1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheSwgbm9uZSk7XG4gIGJvcmRlcjogdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItd2lkdGgsIDNweCkgdmFyKC0tbWF0LWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsIHNvbGlkKSB2YXIoLS1tYXQtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1tYXQtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMsIDRweCk7XG59XG4ubWF0LWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSB7XG4gIC0tbWF0LWZvY3VzLWluZGljYXRvci1kaXNwbGF5OiBibG9jaztcbn1cblxuLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWRpc3BsYXksIG5vbmUpO1xuICBib3JkZXI6IHZhcigtLW1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yLWJvcmRlci13aWR0aCwgM3B4KSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItc3R5bGUsIHNvbGlkKSB2YXIoLS1tYXQtbWRjLWZvY3VzLWluZGljYXRvci1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1cywgNHB4KTtcbn1cbi5tYXQtbWRjLWZvY3VzLWluZGljYXRvcjpmb2N1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSB7XG4gIC0tbWF0LW1kYy1mb2N1cy1pbmRpY2F0b3ItZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYXQtYXBwLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLW1hdC1hcHAtdGV4dC1jb2xvciwgaW5oZXJpdCk7XG59XG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dVhGd3VMbHhjTGk1Y1hDNHVYRnh1YjJSbFgyMXZaSFZzWlhOY1hFQmhibWQxYkdGeVhGeHRZWFJsY21saGJGeGNZMjl5WlZ4Y2NtbHdjR3hsWEZ4ZmNtbHdjR3hsTG5OamMzTWlMQ0l1TGx4Y0xpNWNYQzR1WEZ3dUxseGNMaTVjWEM0dVhGd3VMbHhjTGk1Y1hGWnBjM1ZoYkNVeU1GTjBkV1JwYjF4Y1YyVmlWWE5sY2sxaGJtRm5aWEpjWEVScFoybDBZV3hFWVhSaExsVnpaWEpOWVc1aFoyVnlMazVuVjJWaVZVbGNYRU5zYVdWdWRFRndjRnhjYzNKalhGeGhjSEJjWEdOdmJYQnZibVZ1ZEhOY1hIVnpaWEl0WVhOemFXZHViV1Z1ZEZ4Y2RYTmxjaTFoYzNOcFoyNXRaVzUwTG1OdmJYQnZibVZ1ZEM1elkzTnpJaXdpTGk1Y1hDNHVYRnd1TGx4Y0xpNWNYRzV2WkdWZmJXOWtkV3hsYzF4Y1FHRnVaM1ZzWVhKY1hHTmthMXhjWVRFeGVWeGNYMmx1WkdWNExuTmpjM01pTENJdUxseGNMaTVjWEM0dVhGd3VMbHhjYm05a1pWOXRiMlIxYkdWelhGeEFZVzVuZFd4aGNseGNZMlJyWEZ4dmRtVnliR0Y1WEZ4ZmFXNWtaWGd1YzJOemN5SXNJaTR1WEZ3dUxseGNMaTVjWEM0dVhGeHViMlJsWDIxdlpIVnNaWE5jWEVCaGJtZDFiR0Z5WEZ4alpHdGNYSFJsZUhRdFptbGxiR1JjWEY5cGJtUmxlQzV6WTNOeklpd2lMaTVjWEM0dVhGd3VMbHhjTGk1Y1hHNXZaR1ZmYlc5a2RXeGxjMXhjUUdGdVozVnNZWEpjWEcxaGRHVnlhV0ZzWEZ4amIzSmxYRnhtYjJOMWN5MXBibVJwWTJGMGIzSnpYRnhmY0hKcGRtRjBaUzV6WTNOeklpd2lMaTVjWEM0dVhGd3VMbHhjTGk1Y1hHNXZaR1ZmYlc5a2RXeGxjMXhjUUdGdVozVnNZWEpjWEcxaGRHVnlhV0ZzWEZ4amIzSmxYRnh6ZEhsc1pWeGNYMnhoZVc5MWRDMWpiMjF0YjI0dWMyTnpjeUlzSWk0dVhGd3VMbHhjTGk1Y1hDNHVYRnh1YjJSbFgyMXZaSFZzWlhOY1hFQmhibWQxYkdGeVhGeHRZWFJsY21saGJGeGNZMjl5WlZ4Y1gyTnZjbVV1YzJOemN5SXNJaTR1WEZ3dUxseGNMaTVjWEM0dVhGeHViMlJsWDIxdlpIVnNaWE5jWEVCdFlYUmxjbWxoYkZ4Y2RHaGxiV1ZjWEY5amMzTXVjMk56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGUFJUdEZRVU5GTEdkQ1FVRkJPMFZCU1VFc2EwSkJRVUU3UVVOVVNqdEJSR2RDU1R0RlFVTkZMSGRDUVVGQk8wRkRaRTQ3TzBGRWEwSkZPMFZCUTBVc2FVSkJRVUU3UVVObVNqczdRVVJyUWtVN1JVRkRSU3hyUWtGQlFUdEZRVU5CTEd0Q1FVRkJPMFZCUTBFc2IwSkJRVUU3UlVGRlFTdzJSRUZCUVR0RlFVbEJMREpDUVVGQk8wVkJTMFVzTmtSQlFVRTdRVU4yUWs0N1FVTXJRa2s3UlVaSVJTeGhRVUZCTzBGRGVrSk9PenRCUTI1Q1JUdEZRVU5GTEZOQlFVRTdSVUZEUVN4dFFrRkJRVHRGUVVOQkxGZEJRVUU3UlVGRFFTeFpRVUZCTzBWQlEwRXNaMEpCUVVFN1JVRkRRU3hWUVVGQk8wVkJRMEVzYTBKQlFVRTdSVUZEUVN4VlFVRkJPMFZCU1VFc2JVSkJRVUU3UlVGSFFTeFZRVUZCTzBWQlIwRXNkMEpCUVVFN1JVRkRRU3h4UWtGQlFUdEZRVTFCTEU5QlFVRTdRVVJWU2p0QlExSkpPMFZCUTBVc1ZVRkJRVHRGUVVOQkxGRkJRVUU3UVVSVlRqczdRVVV4UWtVN1JVRkZSU3h2UWtGQlFUdEZRVWRCTEUxQlFVRTdSVUZEUVN4UFFVRkJPMFZCUTBFc1dVRkJRVHRGUVVOQkxGZEJRVUU3UVVZd1FrbzdPMEZGZEVKRk8wVkJRMFVzWlVGQlFUdEZRVU5CTEdGQk0wSjNRanRCUm05RU5VSTdRVVYyUWtrN1JVRkhSU3hoUVVGQk8wRkdkVUpPT3p0QlJXWkZPMFZCUTBVc1lVRkJRVHRGUVVOQkxHdENRVUZCTzBWQlEwRXNZVUV4UTJNN1FVWTBSR3hDT3p0QlJXUkZPMFZCUjBVc2EwSkJRVUU3UlVGRFFTeHZRa0ZCUVR0RlFVTkJMSE5DUVVGQk8wVkJRMEVzWVVGd1JHTTdSVUYzUkdRc1lVRkJRVHRGUVVOQkxHVkJRVUU3UlVGRFFTeG5Ra0ZCUVR0QlJsbEtPenRCUlZSRk8wVkJSVVVzYTBKQlFVRTdSVUZEUVN4TlFVRkJPMFZCUTBFc1UwRkJRVHRGUVVOQkxFOUJRVUU3UlVGRFFTeFJRVUZCTzBWQlJVRXNZVUZ3UlhWQ08wVkJjVVYyUWl4dlFrRkJRVHRGUVVOQkxIZERRVUZCTzBWQlEwRXNNRVJCUVVFN1JVRkRRU3hWUVVGQk8wRkdWVW83UVVWU1NUdEZRVU5GTEZWQlFVRTdRVVpWVGp0QlJVeE5PMFZCUjBVc1dVRkJRVHRCUmt0U096dEJSVUZGTzBWQlEwVXNLMEpCZEVaeFFqdEJSbmxHZWtJN08wRkZRVVU3UlVGRlJTeHhSRUZCUVR0RlFVTkJMR3RDUVVGQk8wVkJRMEVzVlVGQlFUdEJSa1ZLTzBGRlNVazdSVUZEUlN4VlFVRkJPMFZCUTBFc2JVSkJRVUU3UVVaR1RqczdRVVZOUlR0RlFVTkZMR2RDUVVGQk8wRkdTRW83TzBGRlVVVTdSVUZEUlN4clFrRkJRVHRGUVVOQkxHRkJja2hqTzBWQk1FaGtMR0ZCUVVFN1JVRkpRU3h6UWtGQlFUdEZRVWRCTEdOQlFVRTdSVUZEUVN4bFFVRkJPMEZHWkVvN08wRkZhMEpGTzBWQlEwVXNaVUZCUVR0RlFVdEJMRmRCUVVFN1JVRkxRU3hyUWtGQlFUdEJSblpDU2pzN1FVY3hTRVU3UlVGRFJTeFpRVUZCTzBGSU5raEtPenRCUjNaSVJUdEZRWGxEUVN4NVFrRkJRVHRGUVVOQkxHdERRVUZCTzBWQmVFTkZMSFZDUVVGQk8wVkJRMEVzTWtKQlFVRTdRVWd5U0VvN08wRkhiRWhGTzBWQk5rSkJMSGxDUVVGQk8wVkJRMEVzYTBOQlFVRTdSVUUxUWtVc2IwSkJRVUU3UVVoelNFbzdPMEZITlVkRkxESkRRVUZCTEVsQlFVRXNSVUZCUVR0QlFVTkJMSGxEUVVGQkxFbEJRVUVzUlVGQlFUdEJRVVZCTzBWQlJVVXNLME5CUVVFN1FVZzJSMG83TzBGSE1VZEZPMFZCUlVVc05rTkJRVUU3UVVnMFIwbzdPMEZKTVVsRk8wVkJRMFVzYTBKQlFVRTdRVW8yU1VvN1FVa3pTVWs3UlVOb1FrWXNUVUZCUVR0RlFVTkJMRTlCUVVFN1JVRkRRU3hSUVVGQk8wVkJRMEVzVTBGQlFUdEZRVU5CTEd0Q1FVRkJPMFZFWTBrc2MwSkJRVUU3UlVGRFFTeHZRa0ZCUVR0RlFVTkJMR2xFUVVGQk8wVkJRMEVzZDBwQlFVRTdSVUZaUVN3MFJFRkJRVHRCU25OSlRqdEJTVGxJU1R0RlFVTkZMRmRCUVVFN1FVcG5TVTQ3TzBGRGRFWk5PMFZITlVKQkxHOURRVUZCTzBGS2MwaE9PenRCU1dwTFJUdEZRVU5GTEd0Q1FVRkJPMEZLYjB0S08wRkpiRXRKTzBWRGFFSkdMRTFCUVVFN1JVRkRRU3hQUVVGQk8wVkJRMEVzVVVGQlFUdEZRVU5CTEZOQlFVRTdSVUZEUVN4clFrRkJRVHRGUkdOSkxITkNRVUZCTzBWQlEwRXNiMEpCUVVFN1JVRkRRU3h4UkVGQlFUdEZRVU5CTEc5TFFVRkJPMFZCV1VFc1owVkJRVUU3UVVvMlNrNDdRVWx5U2trN1JVRkRSU3hYUVVGQk8wRktkVXBPT3p0QlF6ZEhUVHRGUnpWQ1FTeDNRMEZCUVR0QlNqWkpUanM3UVUxdVRFazdSVU13UkVFc09FUkJRVUU3UlVGQlFTeDVRMEZCUVR0QlVEaElTaUlzSW1acGJHVWlPaUoxYzJWeUxXRnpjMmxuYm0xbGJuUXVZMjl0Y0c5dVpXNTBMbk5qYzNNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SkFkWE5sSUNkQVlXNW5kV3hoY2k5alpHc25PMXh1UUhWelpTQW5MaTR2ZEc5clpXNXpMMjB5TDIxaGRDOXlhWEJ3YkdVbklHRnpJSFJ2YTJWdWN5MXRZWFF0Y21sd2NHeGxPMXh1UUhWelpTQW5MaTR2ZEc5clpXNXpMM1J2YTJWdUxYVjBhV3h6Snp0Y2JseHVRRzFwZUdsdUlISnBjSEJzWlNncElIdGNiaUFnTHk4Z1ZHaGxJR2h2YzNRZ1pXeGxiV1Z1ZENCdlppQmhiaUJ0WVhRdGNtbHdjR3hsSUdScGNtVmpkR2wyWlNCemFHOTFiR1FnWVd4M1lYbHpJR2hoZG1VZ1lTQndiM05wZEdsdmJpQnZaaUJjSW1GaWMyOXNkWFJsWENJZ2IzSmNiaUFnTHk4Z1hDSnlaV3hoZEdsMlpWd2lJSE52SUhSb1lYUWdkR2hsSUhKcGNIQnNaWE1nYVc1emFXUmxJR0Z5WlNCamIzSnlaV04wYkhrZ2NHOXphWFJwYjI1bFpDQnlaV3hoZEdsMlpXeDVJSFJ2SUhSb1pTQmpiMjUwWVdsdVpYSXVYRzRnSUM1dFlYUXRjbWx3Y0d4bElIdGNiaUFnSUNCdmRtVnlabXh2ZHpvZ2FHbGtaR1Z1TzF4dVhHNGdJQ0FnTHk4Z1Fua2daR1ZtWVhWc2RDd2daWFpsY25rZ2NtbHdjR3hsSUdOdmJuUmhhVzVsY2lCemFHOTFiR1FnYUdGMlpTQndiM05wZEdsdmJqb2djbVZzWVhScGRtVWdhVzRnWm1GMmIzSWdiMllnWTNKbFlYUnBibWNnWVc1Y2JpQWdJQ0F2THlCbFlYTjVJRUZRU1NCbWIzSWdaR1YyWld4dmNHVnljeUIxYzJsdVp5QjBhR1VnVFdGMFVtbHdjR3hsSUdScGNtVmpkR2wyWlM1Y2JpQWdJQ0J3YjNOcGRHbHZiam9nY21Wc1lYUnBkbVU3WEc1Y2JpQWdJQ0F2THlCUWNtOXRiM1JsSUdOdmJuUmhhVzVsY25NZ2RHaGhkQ0JvWVhabElISnBjSEJzWlhNZ2RHOGdZU0J1WlhjZ2JHRjVaWEl1SUZkbElIZGhiblFnZEc4Z2RHRnlaMlYwSUdBNmJtOTBLRHBsYlhCMGVTbGdMRnh1SUNBZ0lDOHZJR0psWTJGMWMyVWdkMlVnWkc5dUozUWdkMkZ1ZENCaGJHd2djbWx3Y0d4bElHTnZiblJoYVc1bGNuTWdkRzhnYUdGMlpTQjBhR1ZwY2lCdmQyNGdiR0Y1WlhJZ2MybHVZMlVnZEdobGVTZHlaU0IxYzJWa0lHbHVJR0ZjYmlBZ0lDQXZMeUJzYjNRZ2IyWWdjR3hoWTJWeklHRnVaQ0IwYUdVZ2JHRjVaWElnYVhNZ2IyNXNlU0J5Wld4bGRtRnVkQ0IzYUdsc1pTQmhibWx0WVhScGJtY3VJRTV2ZEdVZ2RHaGhkQ0JwWkdWaGJHeDVJSGRsSjJRZ2RYTmxYRzRnSUNBZ0x5OGdkR2hsSUdCamIyNTBZV2x1WUNCd2NtOXdaWEowZVNCb1pYSmxJQ2h6WldVZ0l6RXpNVGMxS1N3Z1ltVmpZWFZ6WlNCZ09tVnRjSFI1WUNCallXNGdZbVVnWW5KdmEyVnVJR0o1SUdoaGRtbHVaeUJsZUhSeVlWeHVJQ0FnSUM4dklIUmxlSFFnYVc1emFXUmxJSFJvWlNCbGJHVnRaVzUwTENCaWRYUWdhWFFnYVhOdUozUWdkbVZ5ZVNCM1pXeHNJSE4xY0hCdmNuUmxaQ0I1WlhRdVhHNGdJQ0FnSmpwdWIzUW9PbVZ0Y0hSNUtTQjdYRzRnSUNBZ0lDQjBjbUZ1YzJadmNtMDZJSFJ5WVc1emJHRjBaVm9vTUNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0xtMWhkQzF5YVhCd2JHVXViV0YwTFhKcGNIQnNaUzExYm1KdmRXNWtaV1FnZTF4dUlDQWdJRzkyWlhKbWJHOTNPaUIyYVhOcFlteGxPMXh1SUNCOVhHNWNiaUFnTG0xaGRDMXlhWEJ3YkdVdFpXeGxiV1Z1ZENCN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEVXdKVHRjYmlBZ0lDQndiMmx1ZEdWeUxXVjJaVzUwY3pvZ2JtOXVaVHRjYmx4dUlDQWdJSFJ5WVc1emFYUnBiMjQ2SUc5d1lXTnBkSGtzSUhSeVlXNXpabTl5YlNBd2JYTWdZM1ZpYVdNdFltVjZhV1Z5S0RBc0lEQXNJREF1TWl3Z01TazdYRzVjYmlBZ0lDQXZMeUJYWlNCMWMyVWdZU0F6WkNCMGNtRnVjMlp2Y20wZ2FHVnlaU0JwYmlCdmNtUmxjaUIwYnlCaGRtOXBaQ0JoYmlCcGMzTjFaU0JwYmlCVFlXWmhjbWtnZDJobGNtVmNiaUFnSUNBdkx5QjBhR1VnY21sd2NHeGxjeUJoY21WdUozUWdZMnhwY0hCbFpDQjNhR1Z1SUdsdWMybGtaU0IwYUdVZ2MyaGhaRzkzSUVSUFRTQW9jMlZsSUNNeU5EQXlPQ2t1WEc0Z0lDQWdkSEpoYm5ObWIzSnRPaUJ6WTJGc1pUTmtLREFzSURBc0lEQXBPMXh1WEc0Z0lDQWdRR2x1WTJ4MVpHVWdkRzlyWlc0dGRYUnBiSE11ZFhObExYUnZhMlZ1Y3loY2JpQWdJQ0FnSUhSdmEyVnVjeTF0WVhRdGNtbHdjR3hsTGlSd2NtVm1hWGdzSUhSdmEyVnVjeTF0WVhRdGNtbHdjR3hsTG1kbGRDMTBiMnRsYmkxemJHOTBjeWdwS1NCN1hHNGdJQ0FnSUNBdkx5QlhaU0JvWVhabElIUnZJR1Z0YVhRZ1lTQm1ZV3hzWW1GamF5QjJZV3gxWlNCb1pYSmxMQ0JpWldOaGRYTmxJSE52YldVZ2FXNTBaWEp1WVd3Z1luVnBiR1J6SUdSbGNHVnVaQ0J2YmlCcGRDNWNiaUFnSUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWdqZTNSdmEyVnVMWFYwYVd4ekxtZGxkQzEwYjJ0bGJpMTJZWEpwWVdKc1pTaGpiMnh2Y2lsOUxDQnlaMkpoS0NNd01EQXNJREF1TVNrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFbHVJR2hwWjJnZ1kyOXVkSEpoYzNRZ2JXOWtaU0IwYUdVZ2NtbHdjR3hsSUdseklHOXdZWEYxWlN3Z1kyRjFjMmx1WnlCcGRDQjBieUJ2WW5OMGNuVmpkQ0IwYUdVZ1kyOXVkR1Z1ZEM1Y2JpQWdJQ0JBYVc1amJIVmtaU0JqWkdzdWFHbG5hQzFqYjI1MGNtRnpkQ2hoWTNScGRtVXNJRzltWmlrZ2UxeHVJQ0FnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNiaUlzSWk1dFlYUXRjbWx3Y0d4bElIdGNiaUFnYjNabGNtWnNiM2M2SUdocFpHUmxianRjYmlBZ2NHOXphWFJwYjI0NklISmxiR0YwYVhabE8xeHVmVnh1TG0xaGRDMXlhWEJ3YkdVNmJtOTBLRHBsYlhCMGVTa2dlMXh1SUNCMGNtRnVjMlp2Y20wNklIUnlZVzV6YkdGMFpWb29NQ2s3WEc1OVhHNWNiaTV0WVhRdGNtbHdjR3hsTG0xaGRDMXlhWEJ3YkdVdGRXNWliM1Z1WkdWa0lIdGNiaUFnYjNabGNtWnNiM2M2SUhacGMybGliR1U3WEc1OVhHNWNiaTV0WVhRdGNtbHdjR3hsTFdWc1pXMWxiblFnZTF4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUdKdmNtUmxjaTF5WVdScGRYTTZJRFV3SlR0Y2JpQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc0Z0lIUnlZVzV6YVhScGIyNDZJRzl3WVdOcGRIa3NJSFJ5WVc1elptOXliU0F3YlhNZ1kzVmlhV010WW1WNmFXVnlLREFzSURBc0lEQXVNaXdnTVNrN1hHNGdJSFJ5WVc1elptOXliVG9nYzJOaGJHVXpaQ2d3TENBd0xDQXdLVHRjYmlBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YldGMExYSnBjSEJzWlMxamIyeHZjaXdnY21kaVlTZ3dMQ0F3TENBd0xDQXdMakVwS1R0Y2JuMWNiaTVqWkdzdGFHbG5hQzFqYjI1MGNtRnpkQzFoWTNScGRtVWdMbTFoZEMxeWFYQndiR1V0Wld4bGJXVnVkQ0I3WEc0Z0lHUnBjM0JzWVhrNklHNXZibVU3WEc1OVhHNWNiaTVqWkdzdGRtbHpkV0ZzYkhrdGFHbGtaR1Z1SUh0Y2JpQWdZbTl5WkdWeU9pQXdPMXh1SUNCamJHbHdPaUJ5WldOMEtEQWdNQ0F3SURBcE8xeHVJQ0JvWldsbmFIUTZJREZ3ZUR0Y2JpQWdiV0Z5WjJsdU9pQXRNWEI0TzF4dUlDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0J3WVdSa2FXNW5PaUF3TzF4dUlDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUhkcFpIUm9PaUF4Y0hnN1hHNGdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lHOTFkR3hwYm1VNklEQTdYRzRnSUMxM1pXSnJhWFF0WVhCd1pXRnlZVzVqWlRvZ2JtOXVaVHRjYmlBZ0xXMXZlaTFoY0hCbFlYSmhibU5sT2lCdWIyNWxPMXh1SUNCc1pXWjBPaUF3TzF4dWZWeHVXMlJwY2oxeWRHeGRJQzVqWkdzdGRtbHpkV0ZzYkhrdGFHbGtaR1Z1SUh0Y2JpQWdiR1ZtZERvZ1lYVjBienRjYmlBZ2NtbG5hSFE2SURBN1hHNTlYRzVjYmk1alpHc3RiM1psY214aGVTMWpiMjUwWVdsdVpYSXNJQzVqWkdzdFoyeHZZbUZzTFc5MlpYSnNZWGt0ZDNKaGNIQmxjaUI3WEc0Z0lIQnZhVzUwWlhJdFpYWmxiblJ6T2lCdWIyNWxPMXh1SUNCMGIzQTZJREE3WEc0Z0lHeGxablE2SURBN1hHNGdJR2hsYVdkb2REb2dNVEF3SlR0Y2JpQWdkMmxrZEdnNklERXdNQ1U3WEc1OVhHNWNiaTVqWkdzdGIzWmxjbXhoZVMxamIyNTBZV2x1WlhJZ2UxeHVJQ0J3YjNOcGRHbHZiam9nWm1sNFpXUTdYRzRnSUhvdGFXNWtaWGc2SURFd01EQTdYRzU5WEc0dVkyUnJMVzkyWlhKc1lYa3RZMjl1ZEdGcGJtVnlPbVZ0Y0hSNUlIdGNiaUFnWkdsemNHeGhlVG9nYm05dVpUdGNibjFjYmx4dUxtTmtheTFuYkc5aVlXd3RiM1psY214aGVTMTNjbUZ3Y0dWeUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQjZMV2x1WkdWNE9pQXhNREF3TzF4dWZWeHVYRzR1WTJSckxXOTJaWEpzWVhrdGNHRnVaU0I3WEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnY0c5cGJuUmxjaTFsZG1WdWRITTZJR0YxZEc4N1hHNGdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJSG90YVc1a1pYZzZJREV3TURBN1hHNGdJR1JwYzNCc1lYazZJR1pzWlhnN1hHNGdJRzFoZUMxM2FXUjBhRG9nTVRBd0pUdGNiaUFnYldGNExXaGxhV2RvZERvZ01UQXdKVHRjYm4xY2JseHVMbU5rYXkxdmRtVnliR0Y1TFdKaFkydGtjbTl3SUh0Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXh1SUNCMGIzQTZJREE3WEc0Z0lHSnZkSFJ2YlRvZ01EdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2NtbG5hSFE2SURBN1hHNGdJSG90YVc1a1pYZzZJREV3TURBN1hHNGdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQmhkWFJ2TzF4dUlDQXRkMlZpYTJsMExYUmhjQzFvYVdkb2JHbG5hSFF0WTI5c2IzSTZJSFJ5WVc1emNHRnlaVzUwTzF4dUlDQjBjbUZ1YzJsMGFXOXVPaUJ2Y0dGamFYUjVJRFF3TUcxeklHTjFZbWxqTFdKbGVtbGxjaWd3TGpJMUxDQXdMamdzSURBdU1qVXNJREVwTzF4dUlDQnZjR0ZqYVhSNU9pQXdPMXh1ZlZ4dUxtTmtheTF2ZG1WeWJHRjVMV0poWTJ0a2NtOXdMbU5rYXkxdmRtVnliR0Y1TFdKaFkydGtjbTl3TFhOb2IzZHBibWNnZTF4dUlDQnZjR0ZqYVhSNU9pQXhPMXh1ZlZ4dUxtTmtheTFvYVdkb0xXTnZiblJ5WVhOMExXRmpkR2wyWlNBdVkyUnJMVzkyWlhKc1lYa3RZbUZqYTJSeWIzQXVZMlJyTFc5MlpYSnNZWGt0WW1GamEyUnliM0F0YzJodmQybHVaeUI3WEc0Z0lHOXdZV05wZEhrNklEQXVOanRjYm4xY2JseHVMbU5rYXkxdmRtVnliR0Y1TFdSaGNtc3RZbUZqYTJSeWIzQWdlMXh1SUNCaVlXTnJaM0p2ZFc1a09pQnlaMkpoS0RBc0lEQXNJREFzSURBdU16SXBPMXh1ZlZ4dVhHNHVZMlJyTFc5MlpYSnNZWGt0ZEhKaGJuTndZWEpsYm5RdFltRmphMlJ5YjNBZ2UxeHVJQ0IwY21GdWMybDBhVzl1T2lCMmFYTnBZbWxzYVhSNUlERnRjeUJzYVc1bFlYSXNJRzl3WVdOcGRIa2dNVzF6SUd4cGJtVmhjanRjYmlBZ2RtbHphV0pwYkdsMGVUb2dhR2xrWkdWdU8xeHVJQ0J2Y0dGamFYUjVPaUF4TzF4dWZWeHVMbU5rYXkxdmRtVnliR0Y1TFhSeVlXNXpjR0Z5Wlc1MExXSmhZMnRrY205d0xtTmtheTF2ZG1WeWJHRjVMV0poWTJ0a2NtOXdMWE5vYjNkcGJtY2dlMXh1SUNCdmNHRmphWFI1T2lBd08xeHVJQ0IyYVhOcFltbHNhWFI1T2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1WTJSckxXOTJaWEpzWVhrdFltRmphMlJ5YjNBdGJtOXZjQzFoYm1sdFlYUnBiMjRnZTF4dUlDQjBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVmVnh1WEc0dVkyUnJMVzkyWlhKc1lYa3RZMjl1Ym1WamRHVmtMWEJ2YzJsMGFXOXVMV0p2ZFc1a2FXNW5MV0p2ZUNCN1hHNGdJSEJ2YzJsMGFXOXVPaUJoWW5OdmJIVjBaVHRjYmlBZ2VpMXBibVJsZURvZ01UQXdNRHRjYmlBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ2JXbHVMWGRwWkhSb09pQXhjSGc3WEc0Z0lHMXBiaTFvWldsbmFIUTZJREZ3ZUR0Y2JuMWNibHh1TG1Oa2F5MW5iRzlpWVd3dGMyTnliMnhzWW14dlkyc2dlMXh1SUNCd2IzTnBkR2x2YmpvZ1ptbDRaV1E3WEc0Z0lIZHBaSFJvT2lBeE1EQWxPMXh1SUNCdmRtVnlabXh2ZHkxNU9pQnpZM0p2Ykd3N1hHNTlYRzVjYm5SbGVIUmhjbVZoTG1Oa2F5MTBaWGgwWVhKbFlTMWhkWFJ2YzJsNlpTQjdYRzRnSUhKbGMybDZaVG9nYm05dVpUdGNibjFjYmx4dWRHVjRkR0Z5WldFdVkyUnJMWFJsZUhSaGNtVmhMV0YxZEc5emFYcGxMVzFsWVhOMWNtbHVaeUI3WEc0Z0lIQmhaR1JwYm1jNklESndlQ0F3SUNGcGJYQnZjblJoYm5RN1hHNGdJR0p2ZUMxemFYcHBibWM2SUdOdmJuUmxiblF0WW05NElDRnBiWEJ2Y25SaGJuUTdYRzRnSUdobGFXZG9kRG9nWVhWMGJ5QWhhVzF3YjNKMFlXNTBPMXh1SUNCdmRtVnlabXh2ZHpvZ2FHbGtaR1Z1SUNGcGJYQnZjblJoYm5RN1hHNTlYRzVjYm5SbGVIUmhjbVZoTG1Oa2F5MTBaWGgwWVhKbFlTMWhkWFJ2YzJsNlpTMXRaV0Z6ZFhKcGJtY3RabWx5WldadmVDQjdYRzRnSUhCaFpHUnBibWM2SURKd2VDQXdJQ0ZwYlhCdmNuUmhiblE3WEc0Z0lHSnZlQzF6YVhwcGJtYzZJR052Ym5SbGJuUXRZbTk0SUNGcGJYQnZjblJoYm5RN1hHNGdJR2hsYVdkb2REb2dNQ0FoYVcxd2IzSjBZVzUwTzF4dWZWeHVYRzVBYTJWNVpuSmhiV1Z6SUdOa2F5MTBaWGgwTFdacFpXeGtMV0YxZEc5bWFXeHNMWE4wWVhKMElIc2dMeW9oS2k4Z2ZWeHVRR3RsZVdaeVlXMWxjeUJqWkdzdGRHVjRkQzFtYVdWc1pDMWhkWFJ2Wm1sc2JDMWxibVFnZXlBdktpRXFMeUI5WEc0dVkyUnJMWFJsZUhRdFptbGxiR1F0WVhWMGIyWnBiR3d0Ylc5dWFYUnZjbVZrT2kxM1pXSnJhWFF0WVhWMGIyWnBiR3dnZTF4dUlDQmhibWx0WVhScGIyNDZJR05rYXkxMFpYaDBMV1pwWld4a0xXRjFkRzltYVd4c0xYTjBZWEowSURCeklERnRjenRjYm4xY2JseHVMbU5rYXkxMFpYaDBMV1pwWld4a0xXRjFkRzltYVd4c0xXMXZibWwwYjNKbFpEcHViM1FvT2kxM1pXSnJhWFF0WVhWMGIyWnBiR3dwSUh0Y2JpQWdZVzVwYldGMGFXOXVPaUJqWkdzdGRHVjRkQzFtYVdWc1pDMWhkWFJ2Wm1sc2JDMWxibVFnTUhNZ01XMXpPMXh1ZlZ4dVhHNHViV0YwTFdadlkzVnpMV2x1WkdsallYUnZjaUI3WEc0Z0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUdGNibjFjYmk1dFlYUXRabTlqZFhNdGFXNWthV05oZEc5eU9qcGlaV1p2Y21VZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUd4bFpuUTZJREE3WEc0Z0lISnBaMmgwT2lBd08xeHVJQ0JpYjNSMGIyMDZJREE3WEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNiaUFnY0c5cGJuUmxjaTFsZG1WdWRITTZJRzV2Ym1VN1hHNGdJR1JwYzNCc1lYazZJSFpoY2lndExXMWhkQzFtYjJOMWN5MXBibVJwWTJGMGIzSXRaR2x6Y0d4aGVTd2dibTl1WlNrN1hHNGdJR0p2Y21SbGNqb2dkbUZ5S0MwdGJXRjBMV1p2WTNWekxXbHVaR2xqWVhSdmNpMWliM0prWlhJdGQybGtkR2dzSUROd2VDa2dkbUZ5S0MwdGJXRjBMV1p2WTNWekxXbHVaR2xqWVhSdmNpMWliM0prWlhJdGMzUjViR1VzSUhOdmJHbGtLU0IyWVhJb0xTMXRZWFF0Wm05amRYTXRhVzVrYVdOaGRHOXlMV0p2Y21SbGNpMWpiMnh2Y2l3Z2RISmhibk53WVhKbGJuUXBPMXh1SUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUIyWVhJb0xTMXRZWFF0Wm05amRYTXRhVzVrYVdOaGRHOXlMV0p2Y21SbGNpMXlZV1JwZFhNc0lEUndlQ2s3WEc1OVhHNHViV0YwTFdadlkzVnpMV2x1WkdsallYUnZjanBtYjJOMWN6bzZZbVZtYjNKbElIdGNiaUFnWTI5dWRHVnVkRG9nWENKY0lqdGNibjFjYmx4dUxtTmtheTFvYVdkb0xXTnZiblJ5WVhOMExXRmpkR2wyWlNCN1hHNGdJQzB0YldGMExXWnZZM1Z6TFdsdVpHbGpZWFJ2Y2kxa2FYTndiR0Y1T2lCaWJHOWphenRjYm4xY2JseHVMbTFoZEMxdFpHTXRabTlqZFhNdGFXNWthV05oZEc5eUlIdGNiaUFnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dWZWeHVMbTFoZEMxdFpHTXRabTlqZFhNdGFXNWthV05oZEc5eU9qcGlaV1p2Y21VZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUd4bFpuUTZJREE3WEc0Z0lISnBaMmgwT2lBd08xeHVJQ0JpYjNSMGIyMDZJREE3WEc0Z0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNiaUFnY0c5cGJuUmxjaTFsZG1WdWRITTZJRzV2Ym1VN1hHNGdJR1JwYzNCc1lYazZJSFpoY2lndExXMWhkQzF0WkdNdFptOWpkWE10YVc1a2FXTmhkRzl5TFdScGMzQnNZWGtzSUc1dmJtVXBPMXh1SUNCaWIzSmtaWEk2SUhaaGNpZ3RMVzFoZEMxdFpHTXRabTlqZFhNdGFXNWthV05oZEc5eUxXSnZjbVJsY2kxM2FXUjBhQ3dnTTNCNEtTQjJZWElvTFMxdFlYUXRiV1JqTFdadlkzVnpMV2x1WkdsallYUnZjaTFpYjNKa1pYSXRjM1I1YkdVc0lITnZiR2xrS1NCMllYSW9MUzF0WVhRdGJXUmpMV1p2WTNWekxXbHVaR2xqWVhSdmNpMWliM0prWlhJdFkyOXNiM0lzSUhSeVlXNXpjR0Z5Wlc1MEtUdGNiaUFnWW05eVpHVnlMWEpoWkdsMWN6b2dkbUZ5S0MwdGJXRjBMVzFrWXkxbWIyTjFjeTFwYm1ScFkyRjBiM0l0WW05eVpHVnlMWEpoWkdsMWN5d2dOSEI0S1R0Y2JuMWNiaTV0WVhRdGJXUmpMV1p2WTNWekxXbHVaR2xqWVhSdmNqcG1iMk4xY3pvNlltVm1iM0psSUh0Y2JpQWdZMjl1ZEdWdWREb2dYQ0pjSWp0Y2JuMWNibHh1TG1Oa2F5MW9hV2RvTFdOdmJuUnlZWE4wTFdGamRHbDJaU0I3WEc0Z0lDMHRiV0YwTFcxa1l5MW1iMk4xY3kxcGJtUnBZMkYwYjNJdFpHbHpjR3hoZVRvZ1lteHZZMnM3WEc1OVhHNWNiaTV0WVhRdFlYQndMV0poWTJ0bmNtOTFibVFnZTF4dUlDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxdFlYUXRZWEJ3TFdKaFkydG5jbTkxYm1RdFkyOXNiM0lzSUhSeVlXNXpjR0Z5Wlc1MEtUdGNiaUFnWTI5c2IzSTZJSFpoY2lndExXMWhkQzFoY0hBdGRHVjRkQzFqYjJ4dmNpd2dhVzVvWlhKcGRDazdYRzU5SWl3aUx5OHZJRVZ0YVhSeklHRWdRMU5USUdOc1lYTnpMQ0JnTG1Oa2F5MTJhWE4xWVd4c2VTMW9hV1JrWlc1Z0xpQlVhR2x6SUdOc1lYTnpJR05oYmlCaVpTQmhjSEJzYVdWa0lIUnZJR0Z1SUdWc1pXMWxiblJjYmk4dkx5QjBieUJ0WVd0bElIUm9ZWFFnWld4bGJXVnVkQ0IyYVhOMVlXeHNlU0JvYVdSa1pXNGdkMmhwYkdVZ2NtVnRZV2x1YVc1bklHRjJZV2xzWVdKc1pTQjBieUJoYzNOcGMzUnBkbVVnZEdWamFHNXZiRzluZVM1Y2JrQnRhWGhwYmlCaE1URjVMWFpwYzNWaGJHeDVMV2hwWkdSbGJpZ3BJSHRjYmlBZ0xtTmtheTEyYVhOMVlXeHNlUzFvYVdSa1pXNGdlMXh1SUNBZ0lHSnZjbVJsY2pvZ01EdGNiaUFnSUNCamJHbHdPaUJ5WldOMEtEQWdNQ0F3SURBcE8xeHVJQ0FnSUdobGFXZG9kRG9nTVhCNE8xeHVJQ0FnSUcxaGNtZHBiam9nTFRGd2VEdGNiaUFnSUNCdmRtVnlabXh2ZHpvZ2FHbGtaR1Z1TzF4dUlDQWdJSEJoWkdScGJtYzZJREE3WEc0Z0lDQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXh1SUNBZ0lIZHBaSFJvT2lBeGNIZzdYRzVjYmlBZ0lDQXZMeUJVYUdseklIZHZjbXR6SUdGeWIzVnVaQ0JoSUVOb2NtOXRaU0JpZFdjZ2RHaGhkQ0JqWVc0Z1kyRjFjMlVnZEdobElIUmhZaUIwYnlCamNtRnphQ0IzYUdWdUlHeGhjbWRsSUdGdGIzVnVkSE1nYjJaY2JpQWdJQ0F2THlCdWIyNHRSVzVuYkdsemFDQjBaWGgwSUdkbGRDQjNjbUZ3Y0dWa09pQm9kSFJ3Y3pvdkwySjFaM011WTJoeWIyMXBkVzB1YjNKbkwzQXZZMmh5YjIxcGRXMHZhWE56ZFdWekwyUmxkR0ZwYkQ5cFpEMHhNakF4TkRRMFhHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JseHVJQ0FnSUM4dklFRjJiMmxrSUdKeWIzZHpaWEp6SUhKbGJtUmxjbWx1WnlCMGFHVWdabTlqZFhNZ2NtbHVaeUJwYmlCemIyMWxJR05oYzJWekxseHVJQ0FnSUc5MWRHeHBibVU2SURBN1hHNWNiaUFnSUNBdkx5QkJkbTlwWkNCemIyMWxJR05oYzJWeklIZG9aWEpsSUhSb1pTQmljbTkzYzJWeUlIZHBiR3dnYzNScGJHd2djbVZ1WkdWeUlIUm9aU0J1WVhScGRtVWdZMjl1ZEhKdmJITWdLSE5sWlNBak9UQTBPU2t1WEc0Z0lDQWdMWGRsWW10cGRDMWhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVJQ0FnSUMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNibHh1SUNBZ0lDOHZJRmRsSUc1bFpXUWdZWFFnYkdWaGMzUWdiMjVsSUc5bUlIUnZjQzlpYjNSMGIyMHZiR1ZtZEM5eWFXZG9kQ0JwYmlCdmNtUmxjaUIwYnlCd2NtVjJaVzUwSUdOaGMyVnpJSGRvWlhKbElIUm9aVnh1SUNBZ0lDOHZJR0ZpYzI5c2RYUmxMWEJ2YzJsMGFXOXVaV1FnWld4bGJXVnVkQ0JwY3lCd2RYTm9aV1FnWkc5M2JpQmhibVFnWTJGdUlHRm1abVZqZENCelkzSnZiR3hwYm1jZ0tITmxaU0FqTWpRMU9UY3BMbHh1SUNBZ0lDOHZJR0JzWldaMFlDQjNZWE1nWTJodmMyVnVJR2hsY21Vc0lHSmxZMkYxYzJVZ2FYUW5jeUIwYUdVZ2JHVmhjM1FnYkdsclpXeDVJSFJ2SUdKeVpXRnJJRzkyWlhKeWFXUmxjeUIzYUdWeVpTQjBhR1ZjYmlBZ0lDQXZMeUJsYkdWdFpXNTBJRzFwWjJoMElHaGhkbVVnWW1WbGJpQndiM05wZEdsdmJtVmtJQ2hsTG1jdUlHQnRZWFF0WTJobFkydGliM2hnS1M1Y2JpQWdJQ0JzWldaME9pQXdPMXh1WEc0Z0lDQWdXMlJwY2owbmNuUnNKMTBnSmlCN1hHNGdJQ0FnSUNCc1pXWjBPaUJoZFhSdk8xeHVJQ0FnSUNBZ2NtbG5hSFE2SURBN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc1Y2JpOHZMeUJBWkdWd2NtVmpZWFJsWkNCVmMyVWdZR0V4TVhrdGRtbHpkV0ZzYkhrdGFHbGtaR1Z1WUM1Y2JrQnRhWGhwYmlCaE1URjVLQ2tnZTF4dUlDQkFhVzVqYkhWa1pTQmhNVEY1TFhacGMzVmhiR3g1TFdocFpHUmxianRjYm4xY2JseHVMeTh2SUVWdGFYUnpJSFJvWlNCdGFYaHBiaWR6SUdOdmJuUmxiblFnYm1WemRHVmtJSFZ1WkdWeUlHQWtjMlZzWldOMGIzSXRZMjl1ZEdWNGRHQWdhV1lnWUNSelpXeGxZM1J2Y2kxamIyNTBaWGgwWUZ4dUx5OHZJR2x6SUc1dmJpMWxiWEIwZVM1Y2JpOHZMeUJBY0dGeVlXMGdlMU4wY21sdVozMGdjMlZzWldOMGIzSXRZMjl1ZEdWNGRDQlVhR1VnYzJWc1pXTjBiM0lnZFc1a1pYSWdkMmhwWTJnZ2RHOGdibVZ6ZENCMGFHVWdiV2w0YVc0bmN5QmpiMjUwWlc1MExseHVRRzFwZUdsdUlGOXZjSFJwYjI1aGJHeDVMVzVsYzNRdFkyOXVkR1Z1ZENna2MyVnNaV04wYjNJdFkyOXVkR1Y0ZENrZ2UxeHVJQ0JBYVdZZ0tDUnpaV3hsWTNSdmNpMWpiMjUwWlhoMElEMDlJQ2NuS1NCN1hHNGdJQ0FnUUdOdmJuUmxiblE3WEc0Z0lIMWNiaUFnUUdWc2MyVWdlMXh1SUNBZ0lDTjdKSE5sYkdWamRHOXlMV052Ym5SbGVIUjlJSHRjYmlBZ0lDQWdJRUJqYjI1MFpXNTBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVYRzR2THk4Z1FYQndiR2xsY3lCemRIbHNaWE1nWm05eUlIVnpaWEp6SUdsdUlHaHBaMmdnWTI5dWRISmhjM1FnYlc5a1pTNGdUbTkwWlNCMGFHRjBJSFJvYVhNZ2IyNXNlU0JoY0hCc2FXVnpYRzR2THk4Z2RHOGdUV2xqY205emIyWjBJR0p5YjNkelpYSnpMaUJEYUhKdmJXVWdZMkZ1SUdKbElHbHVZMngxWkdWa0lHSjVJR05vWldOcmFXNW5JR1p2Y2lCMGFHVWdZR2gwYld4YmFHTmRZRnh1THk4dklHRjBkSEpwWW5WMFpTd2dhRzkzWlhabGNpQkRhSEp2YldVZ2FHRnVaR3hsY3lCb2FXZG9JR052Ym5SeVlYTjBJR1JwWm1abGNtVnVkR3g1TGx4dUx5OHZYRzR2THk4Z1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhSaGNtZGxkQ0JVZVhCbElHOW1JR2hwWjJnZ1kyOXVkSEpoYzNRZ2MyVjBkR2x1WnlCMGJ5QjBZWEpuWlhRdUlFUmxabUYxYkhSeklIUnZJR0JoWTNScGRtVmdMQ0JqWVc0Z1ltVmNiaTh2THlBZ0lDQWdZSGRvYVhSbExXOXVMV0pzWVdOcllDQnZjaUJnWW14aFkyc3RiMjR0ZDJocGRHVmdMbHh1THk4dklFQndZWEpoYlNCN1UzUnlhVzVuZlNCbGJtTmhjSE4xYkdGMGFXOXVJRmRvWlhSb1pYSWdkRzhnWlcxcGRDQnpkSGxzWlhNZ1ptOXlJSFpwWlhjZ1pXNWpZWEJ6ZFd4aGRHbHZiaTRnVm1Gc2RXVnpJR0Z5WlRwY2JpOHZMeUFnSUNBZ0tpQmdiMjVnSUMwZ2QyOXlhM01nWm05eUlHQkZiWFZzWVhSbFpHQXNJR0JPWVhScGRtVmdMQ0JoYm1RZ1lGTm9ZV1J2ZDBSdmJXQmNiaTh2THlBZ0lDQWdLaUJnYjJabVlDQXRJSGR2Y210eklHWnZjaUJnVG05dVpXQmNiaTh2THlBZ0lDQWdLaUJnWVc1NVlDQXRJSGR2Y210eklHWnZjaUJoYkd3Z1pXNWpZWEJ6ZFd4aGRHbHZiaUJ0YjJSbGN5QmllU0JsYldsMGRHbHVaeUIwYUdVZ1ExTlRJSFIzYVdObElDaGtaV1poZFd4MEtTNWNia0J0YVhocGJpQm9hV2RvTFdOdmJuUnlZWE4wS0NSMFlYSm5aWFE2SUdGamRHbDJaU3dnSkdWdVkyRndjM1ZzWVhScGIyNDZJQ2RoYm5rbktTQjdYRzRnSUVCcFppQW9KSFJoY21kbGRDQWhQU0FuWVdOMGFYWmxKeUJoYm1RZ0pIUmhjbWRsZENBaFBTQW5ZbXhoWTJzdGIyNHRkMmhwZEdVbklHRnVaQ0FrZEdGeVoyVjBJQ0U5SUNkM2FHbDBaUzF2YmkxaWJHRmpheWNwSUh0Y2JpQWdJQ0JBWlhKeWIzSWdKMVZ1YTI1dmQyNGdZMlJyTFdocFoyZ3RZMjl1ZEhKaGMzUWdkbUZzZFdVZ1hDSWpleVIwWVhKblpYUjlYQ0lnY0hKdmRtbGtaV1F1SUNjZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FuUVd4c2IzZGxaQ0IyWVd4MVpYTWdZWEpsSUZ3aVlXTjBhWFpsWENJc0lGd2lZbXhoWTJzdGIyNHRkMmhwZEdWY0lpd2dZVzVrSUZ3aWQyaHBkR1V0YjI0dFlteGhZMnRjSWljN1hHNGdJSDFjYmx4dUlDQkFhV1lnS0NSbGJtTmhjSE4xYkdGMGFXOXVJQ0U5SUNkdmJpY2dZVzVrSUNSbGJtTmhjSE4xYkdGMGFXOXVJQ0U5SUNkdlptWW5JR0Z1WkNBa1pXNWpZWEJ6ZFd4aGRHbHZiaUFoUFNBbllXNTVKeWtnZTF4dUlDQWdJRUJsY25KdmNpQW5WVzVyYm05M2JpQmpaR3N0YUdsbmFDMWpiMjUwY21GemRDQmxibU5oY0hOMWJHRjBhVzl1SUZ3aUkzc2taVzVqWVhCemRXeGhkR2x2Ym4xY0lpQndjbTkyYVdSbFpDNGdKeUFyWEc0Z0lDQWdJQ0FnSUNBZ0lDZEJiR3h2ZDJWa0lIWmhiSFZsY3lCaGNtVWdYQ0p2Ymx3aUxDQmNJbTltWmx3aUxDQmhibVFnWENKaGJubGNJaWM3WEc0Z0lIMWNibHh1SUNBdkx5QkpaaUIwYUdVZ2MyVnNaV04wYjNJZ1kyOXVkR1Y0ZENCb1lYTWdiWFZzZEdsd2JHVWdjR0Z5ZEhNc0lITjFZMmdnWVhNZ1lDNXpaV04wYVc5dUxDQXVjbVZuYVc5dVlDd2dhblZ6ZENCa2IybHVaMXh1SUNBdkx5QmdMbU5rYXkxb2FXZG9MV052Ym5SeVlYTjBMWGg0ZUNBamV5WjlZQ0IzYVd4c0lHOXViSGtnWVhCd2JIa2dkR2hsSUhCaGNtVnVkQ0J6Wld4bFkzUnZjaUIwYnlCMGFHVWdabWx5YzNRZ2NHRnlkQ0J2WmlCMGFHVmNiaUFnTHk4Z1kyOXVkR1Y0ZEM0Z1YyVWdZV1JrY21WemN5QjBhR2x6SUdKNUlHNWxjM1JwYm1jZ2RHaGxJSE5sYkdWamRHOXlJR052Ym5SbGVIUWdkVzVrWlhJZ0xtTmtheTFvYVdkb0xXTnZiblJ5WVhOMExseHVJQ0JBWVhRdGNtOXZkQ0I3WEc0Z0lDQWdKSE5sYkdWamRHOXlMV052Ym5SbGVIUTZJQ043Sm4wN1hHNWNiaUFnSUNCQWFXWWdLQ1JsYm1OaGNITjFiR0YwYVc5dUlDRTlJQ2R2YmljcElIdGNiaUFnSUNBZ0lDOHZJRTV2ZEdVZ2RHaGhkQ0JwWmlCMGFHbHpJSE5sYkdWamRHOXlJR2x6SUhWd1pHRjBaV1FzSUhSb1pTQnpZVzFsSUdOb1lXNW5aU0JvWVhNZ2RHOGdZbVVnYldGa1pTQnBibk5wWkdWY2JpQWdJQ0FnSUM4dklHQmZiM1psY214aGVTNXpZM056WUNCM2FHbGphQ0JqWVc0bmRDQmtaWEJsYm1RZ2IyNGdkR2hwY3lCdGFYaHBiaUJrZFdVZ2RHOGdjMjl0WlNCcGJtWnlZWE4wY25WamRIVnlaU0JzYVcxcGRHRjBhVzl1Y3k1Y2JpQWdJQ0FnSUM1alpHc3RhR2xuYUMxamIyNTBjbUZ6ZEMwamV5UjBZWEpuWlhSOUlIdGNiaUFnSUNBZ0lDQWdRR2x1WTJ4MVpHVWdYMjl3ZEdsdmJtRnNiSGt0Ym1WemRDMWpiMjUwWlc1MEtDUnpaV3hsWTNSdmNpMWpiMjUwWlhoMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnUUdOdmJuUmxiblE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JBYVdZZ0tDUmxibU5oY0hOMWJHRjBhVzl1SUNFOUlDZHZabVluS1NCN1hHNGdJQ0FnSUNBdVkyUnJMV2hwWjJndFkyOXVkSEpoYzNRdEkzc2tkR0Z5WjJWMGZTQTZhRzl6ZENCN1hHNGdJQ0FnSUNBZ0lFQnBibU5zZFdSbElGOXZjSFJwYjI1aGJHeDVMVzVsYzNRdFkyOXVkR1Z1ZENna2MyVnNaV04wYjNJdFkyOXVkR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJRUJqYjI1MFpXNTBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpTENJdkx5QlhaU0IzWVc1MElHOTJaWEpzWVhseklIUnZJR0ZzZDJGNWN5QmhjSEJsWVhJZ2IzWmxjaUIxYzJWeUlHTnZiblJsYm5Rc0lITnZJSE5sZENCaElHSmhjMlZzYVc1bFhHNHZMeUIyWlhKNUlHaHBaMmdnZWkxcGJtUmxlQ0JtYjNJZ2RHaGxJRzkyWlhKc1lYa2dZMjl1ZEdGcGJtVnlMQ0IzYUdsamFDQnBjeUIzYUdWeVpTQjNaU0JqY21WaGRHVWdkR2hsSUc1bGQxeHVMeThnYzNSaFkydHBibWNnWTI5dWRHVjRkQ0JtYjNJZ1lXeHNJRzkyWlhKc1lYbHpMbHh1Skc5MlpYSnNZWGt0WTI5dWRHRnBibVZ5TFhvdGFXNWtaWGc2SURFd01EQWdJV1JsWm1GMWJIUTdYRzRrYjNabGNteGhlUzE2TFdsdVpHVjRPaUF4TURBd0lDRmtaV1poZFd4ME8xeHVKRzkyWlhKc1lYa3RZbUZqYTJSeWIzQXRlaTFwYm1SbGVEb2dNVEF3TUNBaFpHVm1ZWFZzZER0Y2JseHVMeThnUW1GamEyZHliM1Z1WkNCamIyeHZjaUJtYjNJZ1lXeHNJRzltSUhSb1pTQmlZV05yWkhKdmNITmNiaVJ2ZG1WeWJHRjVMV0poWTJ0a2NtOXdMV052Ykc5eU9pQnlaMkpoS0RBc0lEQXNJREFzSURBdU16SXBJQ0ZrWldaaGRXeDBPMXh1WEc0dkx5QkVaV1poZFd4MElHSmhZMnRrY205d0lHRnVhVzFoZEdsdmJpQnBjeUJpWVhObFpDQnZiaUIwYUdVZ1RXRjBaWEpwWVd3Z1JHVnphV2R1SUhOM2FXWjBMV1ZoYzJVdGIzVjBMbHh1SkdKaFkydGtjbTl3TFdGdWFXMWhkR2x2Ymkxa2RYSmhkR2x2YmpvZ05EQXdiWE1nSVdSbFptRjFiSFE3WEc0a1ltRmphMlJ5YjNBdFlXNXBiV0YwYVc5dUxYUnBiV2x1WnkxbWRXNWpkR2x2YmpvZ1kzVmlhV010WW1WNmFXVnlLREF1TWpVc0lEQXVPQ3dnTUM0eU5Td2dNU2tnSVdSbFptRjFiSFE3WEc1Y2JpOHZMeUJGYldsMGN5QnpkSEoxWTNSMWNtRnNJSE4wZVd4bGN5QnlaWEYxYVhKbFpDQm1iM0lnWTJSckwyOTJaWEpzWVhrZ2RHOGdablZ1WTNScGIyNHVYRzVBYldsNGFXNGdiM1psY214aGVTZ3BJSHRjYmlBZ0xtTmtheTF2ZG1WeWJHRjVMV052Ym5SaGFXNWxjaXdnTG1Oa2F5MW5iRzlpWVd3dGIzWmxjbXhoZVMxM2NtRndjR1Z5SUh0Y2JpQWdJQ0F2THlCRWFYTmhZbXhsSUdWMlpXNTBjeUJtY205dElHSmxhVzVuSUdOaGNIUjFjbVZrSUc5dUlIUm9aU0J2ZG1WeWJHRjVJR052Ym5SaGFXNWxjaTVjYmlBZ0lDQndiMmx1ZEdWeUxXVjJaVzUwY3pvZ2JtOXVaVHRjYmx4dUlDQWdJQzh2SUZSb1pTQmpiMjUwWVdsdVpYSWdjMmh2ZFd4a0lHSmxJSFJvWlNCemFYcGxJRzltSUhSb1pTQjJhV1YzY0c5eWRDNWNiaUFnSUNCMGIzQTZJREE3WEc0Z0lDQWdiR1ZtZERvZ01EdGNiaUFnSUNCb1pXbG5hSFE2SURFd01DVTdYRzRnSUNBZ2QybGtkR2c2SURFd01DVTdYRzRnSUgxY2JseHVJQ0F2THlCVWFHVWdiM1psY214aGVTMWpiMjUwWVdsdVpYSWdhWE1nWVc0Z2FXNTJhWE5wWW14bElHVnNaVzFsYm5RZ2QyaHBZMmdnWTI5dWRHRnBibk1nWVd4c0lHbHVaR2wyYVdSMVlXd2diM1psY214aGVYTXVYRzRnSUM1alpHc3RiM1psY214aGVTMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQm1hWGhsWkR0Y2JpQWdJQ0I2TFdsdVpHVjRPaUFrYjNabGNteGhlUzFqYjI1MFlXbHVaWEl0ZWkxcGJtUmxlRHRjYmx4dUlDQWdJQ1k2Wlcxd2RIa2dlMXh1SUNBZ0lDQWdMeThnU0dsa1pTQjBhR1VnWld4bGJXVnVkQ0IzYUdWdUlHbDBJR1J2WlhOdUozUWdhR0YyWlNCaGJua2dZMmhwYkdRZ2JtOWtaWE11SUZSb2FYTWdaRzlsYzI0bmRGeHVJQ0FnSUNBZ0x5OGdhVzVqYkhWa1pTQnZkbVZ5YkdGNWN5QjBhR0YwSUdoaGRtVWdZbVZsYmlCa1pYUmhZMmhsWkN3Z2NtRjBhR1Z5SUhSb1lXNGdaR2x6Y0c5elpXUXVYRzRnSUNBZ0lDQmthWE53YkdGNU9pQnViMjVsTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4dklGZGxJSFZ6WlNCaGJpQmxlSFJ5WVNCM2NtRndjR1Z5SUdWc1pXMWxiblFnYVc0Z2IzSmtaWElnZEc4Z2RYTmxJRzFoYTJVZ2RHaGxJRzkyWlhKc1lYa2dhWFJ6Wld4bUlHRWdabXhsZUNCcGRHVnRMbHh1SUNBdkx5QlVhR2x6SUcxaGEyVnpJR05sYm5SbGNtbHVaeUIwYUdVZ2IzWmxjbXhoZVNCbFlYTjVJSGRwZEdodmRYUWdjblZ1Ym1sdVp5QnBiblJ2SUhSb1pTQnpkV0p3YVhobGJDQnlaVzVrWlhKcGJtZGNiaUFnTHk4Z2NISnZZbXhsYlhNZ2RHbGxaQ0IwYnlCMWMybHVaeUJnZEhKaGJuTm1iM0p0WUNCaGJtUWdkMmwwYUc5MWRDQnBiblJsY21abGNtbHVaeUIzYVhSb0lIUm9aU0J2ZEdobGNpQndiM05wZEdsdmJseHVJQ0F2THlCemRISmhkR1ZuYVdWekxseHVJQ0F1WTJSckxXZHNiMkpoYkMxdmRtVnliR0Y1TFhkeVlYQndaWElnZTF4dUlDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJSG90YVc1a1pYZzZJQ1J2ZG1WeWJHRjVMWG90YVc1a1pYZzdYRzRnSUgxY2JseHVJQ0F2THlCQklITnBibWRzWlNCdmRtVnliR0Y1SUhCaGJtVXVYRzRnSUM1alpHc3RiM1psY214aGVTMXdZVzVsSUh0Y2JpQWdJQ0F2THlCT2IzUmxPaUJwZENkeklHbHRjRzl5ZEdGdWRDQm1iM0lnZEdocGN5QnZibVVnZEc4Z2MzUmhjblFnYjJabUlHQmhZbk52YkhWMFpXQXNYRzRnSUNBZ0x5OGdhVzRnYjNKa1pYSWdabTl5SUhWeklIUnZJR0psSUdGaWJHVWdkRzhnYldWaGMzVnlaU0JwZENCamIzSnlaV04wYkhrdVhHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJSEJ2YVc1MFpYSXRaWFpsYm5Sek9pQmhkWFJ2TzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nSkc5MlpYSnNZWGt0ZWkxcGJtUmxlRHRjYmx4dUlDQWdJQzh2SUVadmNpQmpiMjV1WldOMFpXUXRjRzl6YVhScGIyNGdiM1psY214aGVYTXNJSGRsSUhObGRDQmdaR2x6Y0d4aGVUb2dabXhsZUdBZ2FXNWNiaUFnSUNBdkx5QnZjbVJsY2lCMGJ5Qm1iM0pqWlNCZ2JXRjRMWGRwWkhSb1lDQmhibVFnWUcxaGVDMW9aV2xuYUhSZ0lIUnZJSFJoYTJVZ1pXWm1aV04wTGx4dUlDQWdJR1JwYzNCc1lYazZJR1pzWlhnN1hHNGdJQ0FnYldGNExYZHBaSFJvT2lBeE1EQWxPMXh1SUNBZ0lHMWhlQzFvWldsbmFIUTZJREV3TUNVN1hHNGdJSDFjYmx4dUlDQXVZMlJyTFc5MlpYSnNZWGt0WW1GamEyUnliM0FnZTF4dUlDQWdJQzh2SUZSUFJFOG9hbVZzWW05MWNtNHBPaUJ5WlhWelpTQnphV1JsYm1GMklHWjFiR3h6WTNKbFpXNGdiV2w0YVc0dVhHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJSFJ2Y0RvZ01EdGNiaUFnSUNCaWIzUjBiMjA2SURBN1hHNGdJQ0FnYkdWbWREb2dNRHRjYmlBZ0lDQnlhV2RvZERvZ01EdGNibHh1SUNBZ0lIb3RhVzVrWlhnNklDUnZkbVZ5YkdGNUxXSmhZMnRrY205d0xYb3RhVzVrWlhnN1hHNGdJQ0FnY0c5cGJuUmxjaTFsZG1WdWRITTZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzEwWVhBdGFHbG5hR3hwWjJoMExXTnZiRzl5T2lCMGNtRnVjM0JoY21WdWREdGNiaUFnSUNCMGNtRnVjMmwwYVc5dU9pQnZjR0ZqYVhSNUlDUmlZV05yWkhKdmNDMWhibWx0WVhScGIyNHRaSFZ5WVhScGIyNGdKR0poWTJ0a2NtOXdMV0Z1YVcxaGRHbHZiaTEwYVcxcGJtY3RablZ1WTNScGIyNDdYRzRnSUNBZ2IzQmhZMmwwZVRvZ01EdGNibHh1SUNBZ0lDWXVZMlJyTFc5MlpYSnNZWGt0WW1GamEyUnliM0F0YzJodmQybHVaeUI3WEc0Z0lDQWdJQ0J2Y0dGamFYUjVPaUF4TzF4dVhHNGdJQ0FnSUNBdkx5Qk9iM1JsSUhSb1lYUWdkMlVnWTJGdUozUWdhVzF3YjNKMElHRnVaQ0IxYzJVZ2RHaGxJR0JvYVdkb0xXTnZiblJ5WVhOMFlDQnRhWGhwYmlCbWNtOXRJR0JmWVRFeGVTNXpZM056WUN3Z1ltVmpZWFZ6WlZ4dUlDQWdJQ0FnTHk4Z2RHaHBjeUJtYVd4bElIZHBiR3dnWW1VZ1kyOXdhV1ZrSUhSdklIUm9aU0IwYjNBdGJHVjJaV3dnWUdOa2EyQWdjR0ZqYTJGblpTQjNhR1Z1SUhCMWRIUnBibWNnZEc5blpYUm9aWElnZEdobElHWnBiR1Z6WEc0Z0lDQWdJQ0F2THlCbWIzSWdibkJ0TGlCQmJua2djbVZzWVhScGRtVWdhVzF3YjNKMElIQmhkR2h6SUhkbElIVnpaU0JvWlhKbElIZHBiR3dnWW1WamIyMWxJR2x1ZG1Gc2FXUWdiMjVqWlNCMGFHVWdabWxzWlNCcGN5QmpiM0JwWldRdVhHNGdJQ0FnSUNBdVkyUnJMV2hwWjJndFkyOXVkSEpoYzNRdFlXTjBhWFpsSUNZZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJKYmlCb2FXZG9JR052Ym5SeVlYTjBJRzF2WkdVZ2RHaGxJSEpuWW1FZ1ltRmphMmR5YjNWdVpDQjNhV3hzSUdKbFkyOXRaU0J6YjJ4cFpGeHVJQ0FnSUNBZ0lDQXZMeUJ6YnlCM1pTQnVaV1ZrSUhSdklHWmhiR3dnWW1GamF5QjBieUJ0WVd0cGJtY2dhWFFnYjNCaGNYVmxJSFZ6YVc1bklHQnZjR0ZqYVhSNVlDNWNiaUFnSUNBZ0lDQWdiM0JoWTJsMGVUb2dNQzQyTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM1alpHc3RiM1psY214aGVTMWtZWEpyTFdKaFkydGtjbTl3SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lBa2IzWmxjbXhoZVMxaVlXTnJaSEp2Y0MxamIyeHZjanRjYmlBZ2ZWeHVYRzRnSUM1alpHc3RiM1psY214aGVTMTBjbUZ1YzNCaGNtVnVkQzFpWVdOclpISnZjQ0I3WEc0Z0lDQWdMeThnUkdWbWFXNWxJR0VnZEhKaGJuTnBkR2x2YmlCdmJpQjBhR1VnZG1semFXSnBiR2wwZVNCemJ5QjBhR0YwSUhSb1pTQmdkSEpoYm5OcGRHbHZibVZ1WkdBZ1pYWmxiblFnWTJGdUlHWnBjbVVnYVcxdFpXUnBZWFJsYkhrdVhHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2RtbHphV0pwYkdsMGVTQXhiWE1nYkdsdVpXRnlMQ0J2Y0dGamFYUjVJREZ0Y3lCc2FXNWxZWEk3WEc0Z0lDQWdkbWx6YVdKcGJHbDBlVG9nYUdsa1pHVnVPMXh1SUNBZ0lHOXdZV05wZEhrNklERTdYRzVjYmlBZ0lDQXZMeUJPYjNSbE9pQmhjeUJ2WmlCR2FYSmxabTk0SURVM0xDQm9ZWFpwYm1jZ2RHaGxJR0poWTJ0a2NtOXdJR0psSUdCaVlXTnJaM0p2ZFc1a09pQnViMjVsWUNCM2FXeHNJSEJ5WlhabGJuUWdhWFFnWm5KdmJWeHVJQ0FnSUM4dklHTmhjSFIxY21sdVp5QjBhR1VnZFhObGNpZHpJRzF2ZFhObElITmpjbTlzYkNCbGRtVnVkSE11SUZOcGJtTmxJSGRsSUdGc2MyOGdZMkZ1SjNRZ2RYTmxJSE52YldWMGFHbHVaeUJzYVd0bFhHNGdJQ0FnTHk4Z1lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUNsZ0xDQjNaU0IzYjNKcklHRnliM1Z1WkNCMGFHVWdhVzVqYjI1emFYTjBaVzVqZVNCaWVTQnViM1FnYzJWMGRHbHVaeUIwYUdVZ1ltRmphMmR5YjNWdVpDQmhkRnh1SUNBZ0lDOHZJR0ZzYkNCaGJtUWdkWE5wYm1jZ1lHOXdZV05wZEhsZ0lIUnZJRzFoYTJVZ2RHaGxJR1ZzWlcxbGJuUWdkSEpoYm5Od1lYSmxiblF1WEc0Z0lDQWdKaTVqWkdzdGIzWmxjbXhoZVMxaVlXTnJaSEp2Y0MxemFHOTNhVzVuSUh0Y2JpQWdJQ0FnSUc5d1lXTnBkSGs2SURBN1hHNGdJQ0FnSUNCMmFYTnBZbWxzYVhSNU9pQjJhWE5wWW14bE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDNWpaR3N0YjNabGNteGhlUzFpWVdOclpISnZjQzF1YjI5d0xXRnVhVzFoZEdsdmJpQjdYRzRnSUNBZ2RISmhibk5wZEdsdmJqb2dibTl1WlR0Y2JpQWdmVnh1WEc0Z0lDOHZJRTkyWlhKc1lYa2djR0Z5Wlc1MElHVnNaVzFsYm5RZ2RYTmxaQ0IzYVhSb0lIUm9aU0JqYjI1dVpXTjBaV1FnY0c5emFYUnBiMjRnYzNSeVlYUmxaM2t1SUZWelpXUWdkRzhnWTI5dWMzUnlZV2x1SUhSb1pWeHVJQ0F2THlCdmRtVnliR0Y1SUdWc1pXMWxiblFuY3lCemFYcGxJSFJ2SUdacGRDQjNhWFJvYVc0Z2RHaGxJSFpwWlhkd2IzSjBMbHh1SUNBdVkyUnJMVzkyWlhKc1lYa3RZMjl1Ym1WamRHVmtMWEJ2YzJsMGFXOXVMV0p2ZFc1a2FXNW5MV0p2ZUNCN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJSG90YVc1a1pYZzZJQ1J2ZG1WeWJHRjVMWG90YVc1a1pYZzdYRzVjYmlBZ0lDQXZMeUJYWlNCMWMyVWdZR1JwYzNCc1lYazZJR1pzWlhoZ0lHOXVJSFJvYVhNZ1pXeGxiV1Z1ZENCbGVHTnNkWE5wZG1Wc2VTQm1iM0lnWTJWdWRHVnlhVzVuSUdOdmJtNWxZM1JsWkNCdmRtVnliR0Y1Y3k1Y2JpQWdJQ0F2THlCWGFHVnVJQ3B1YjNRcUlHTmxiblJsY21sdVp5d2dZU0IwYjNBdmJHVm1kQzlpYjNSMGIyMHZjbWxuYUhRZ2QybHNiQ0JpWlNCelpYUWdkMmhwWTJnZ2IzWmxjbkpwWkdWeklIUm9aU0J1YjNKdFlXeGNiaUFnSUNBdkx5Qm1iR1Y0SUd4aGVXOTFkQzVjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dVhHNGdJQ0FnTHk4Z1YyVWdkWE5sSUhSb1pTQmdZMjlzZFcxdVlDQmthWEpsWTNScGIyNGdhR1Z5WlNCMGJ5QmhkbTlwWkNCemIyMWxJR1pzWlhoaWIzZ2dhWE56ZFdWeklHbHVJRVZrWjJWY2JpQWdJQ0F2THlCM2FHVnVJSFZ6YVc1bklIUm9aU0JjSW1keWIzY2dZV1owWlhJZ2IzQmxibHdpSUc5d2RHbHZibk11WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklHTnZiSFZ0Ymp0Y2JseHVJQ0FnSUM4dklFRmtaQ0J6YjIxbElHUnBiV1Z1YzJsdmJuTWdjMjhnZEdobElHVnNaVzFsYm5RZ2FHRnpJR0Z1SUdCcGJtNWxjbFJsZUhSZ0lIZG9hV05vSUhOdmJXVWdjR1Z2Y0d4bElHUmxjR1Z1WkNCdmJpQnBiaUIwWlhOMGN5NWNiaUFnSUNCdGFXNHRkMmxrZEdnNklERndlRHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUF4Y0hnN1hHNGdJSDFjYmx4dUlDQXZMeUJWYzJWa0lIZG9aVzRnWkdsellXSnNhVzVuSUdkc2IySmhiQ0J6WTNKdmJHeHBibWN1WEc0Z0lDNWpaR3N0WjJ4dlltRnNMWE5qY205c2JHSnNiMk5ySUh0Y2JpQWdJQ0J3YjNOcGRHbHZiam9nWm1sNFpXUTdYRzVjYmlBZ0lDQXZMeUJPWldObGMzTmhjbmtnWm05eUlIUm9aU0JqYjI1MFpXNTBJRzV2ZENCMGJ5QnNiM05sSUdsMGN5QjNhV1IwYUM0Z1RtOTBaU0IwYUdGMElIZGxKM0psSUhWemFXNW5JREV3TUNVc0lHbHVjM1JsWVdRZ2IyWmNiaUFnSUNBdkx5QXhNREIyZHl3Z1ltVmpZWFZ6WlNBeE1EQjJkeUJwYm1Oc2RXUmxjeUIwYUdVZ2QybGtkR2dnY0d4MWN5QjBhR1VnYzJOeWIyeHNZbUZ5TENCM2FHVnlaV0Z6SURFd01DVWdhWE1nZEdobElIZHBaSFJvWEc0Z0lDQWdMeThnZEdoaGRDQjBhR1VnWld4bGJXVnVkQ0JvWVdRZ1ltVm1iM0psSUhkbElHMWhaR1VnYVhRZ1lHWnBlR1ZrWUM1Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JseHVJQ0FnSUM4dklFNXZkR1U2SUhSb2FYTWdkMmxzYkNCaGJIZGhlWE1nWVdSa0lHRWdjMk55YjJ4c1ltRnlJSFJ2SUhkb1lYUmxkbVZ5SUdWc1pXMWxiblFnYVhRZ2FYTWdiMjRzSUhkb2FXTm9JR05oYmx4dUlDQWdJQzh2SUhCdmRHVnVkR2xoYkd4NUlISmxjM1ZzZENCcGJpQmtiM1ZpYkdVZ2MyTnliMnhzWW1GeWN5NGdTWFFnYzJodmRXeGtiaWQwSUdKbElHRnVJR2x6YzNWbExDQmlaV05oZFhObElIZGxJSGR2YmlkMFhHNGdJQ0FnTHk4Z1lteHZZMnNnYzJOeWIyeHNhVzVuSUc5dUlHRWdjR0ZuWlNCMGFHRjBJR1J2WlhOdUozUWdhR0YyWlNCaElITmpjbTlzYkdKaGNpQnBiaUIwYUdVZ1ptbHljM1FnY0d4aFkyVXVYRzRnSUNBZ2IzWmxjbVpzYjNjdGVUb2djMk55YjJ4c08xeHVJQ0I5WEc1OVhHNGlMQ0l2THlCVGRISjFZM1IxY21Gc0lITjBlV3hsY3lCbWIzSWdkR2hsSUdGMWRHOXphWHBsSUhSbGVIUWdabWxsYkdSekxseHVRRzFwZUdsdUlIUmxlSFF0Wm1sbGJHUXRZWFYwYjNOcGVtVW9LU0I3WEc0Z0lDOHZJRkpsYlc5MlpTQjBhR1VnY21WemFYcGxJR2hoYm1Sc1pTQnZiaUJoZFhSdmMybDZhVzVuSUhSbGVIUmhjbVZoY3l3Z1ltVmpZWFZ6WlNCM2FHRjBaWFpsY2lCb1pXbG5hSFJjYmlBZ0x5OGdkR2hsSUhWelpYSWdjbVZ6YVhwbFpDQjBieUIzYVd4c0lHSmxJRzkyWlhKM2NtbDBkR1Z1SUc5dVkyVWdkR2hsZVNCemRHRnlkQ0IwZVhCcGJtY2dZV2RoYVc0dVhHNGdJSFJsZUhSaGNtVmhMbU5rYXkxMFpYaDBZWEpsWVMxaGRYUnZjMmw2WlNCN1hHNGdJQ0FnY21WemFYcGxPaUJ1YjI1bE8xeHVJQ0I5WEc1Y2JpQWdMeThnVkdocGN5QmpiR0Z6Y3lCcGN5QjBaVzF3YjNKaGNtbHNlU0JoY0hCc2FXVmtJSFJ2SUhSb1pTQjBaWGgwWVhKbFlTQjNhR1Z1SUdsMElHbHpJR0psYVc1bklHMWxZWE4xY21Wa0xpQkpkQ0JwY3lCcGJXMWxaR2xoZEdWc2VWeHVJQ0F2THlCeVpXMXZkbVZrSUhkb1pXNGdiV1ZoYzNWeWFXNW5JR2x6SUdOdmJYQnNaWFJsTGlCWFpTQjFjMlVnWUNGcGJYQnZjblJoYm5SZ0lISjFiR1Z6SUdobGNtVWdkRzhnYldGclpTQnpkWEpsSUhWelpYSXRjM0JsWTJsbWFXVmtYRzRnSUM4dklISjFiR1Z6SUdSdklHNXZkQ0JwYm5SbGNtWmxjbVVnZDJsMGFDQjBhR1VnYldWaGMzVnlaVzFsYm5RdVhHNGdJSFJsZUhSaGNtVmhMbU5rYXkxMFpYaDBZWEpsWVMxaGRYUnZjMmw2WlMxdFpXRnpkWEpwYm1jZ2UxeHVJQ0FnSUVCcGJtTnNkV1JsSUY5aGRYUnZjMmw2WlMxdFpXRnpkWEpwYm1jdFltRnpaVHRjYmlBZ0lDQm9aV2xuYUhRNklHRjFkRzhnSVdsdGNHOXlkR0Z1ZER0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVJQ0ZwYlhCdmNuUmhiblE3WEc0Z0lIMWNibHh1SUNBdkx5QlRhVzFwYkdGeUlIUnZJSFJvWlNCZ1kyUnJMWFJsZUhSaGNtVmhMV0YxZEc5emFYcGxMVzFsWVhOMWNtbHVaMkFnWTJ4aGMzTXNJR0oxZENCdmJteDVJR0Z3Y0d4cFpXUWdiMjRnUm1seVpXWnZlQzRnVjJVZ2JtVmxaRnh1SUNBdkx5QjBieUIxYzJVZ2RHaHBjeUJqYkdGemN5d2dZbVZqWVhWelpTQkdhWEpsWm05NElHaGhjeUJoSUdKMVp5QjNhR1Z5WlNCamFHRnVaMmx1WnlCMGFHVWdZRzkyWlhKbWJHOTNZQ0JpY21WaGEzTWdkR2hsSUhWelpYSW5jMXh1SUNBdkx5QmhZbWxzYVhSNUlIUnZJSFZ1Wkc4dmNtVmtieUIzYUdGMElIUm9aWGtnZDJWeVpTQjBlWEJwYm1jZ0tITmxaU0FqTVRZMk1qa3BMaUJVYUdseklHTnNZWE56SUdseklHOXViSGtnYzJOdmNHVmtJSFJ2SUVacGNtVm1iM2dzWEc0Z0lDOHZJR0psWTJGMWMyVWdkR2hsSUcxbFlYTjFjbVZ0Wlc1MGN5QjBhR1Z5WlNCa2IyNG5kQ0J6WldWdElIUnZJR0psSUdGbVptVmpkR1ZrSUdKNUlIUm9aU0JnYUdWcFoyaDBPaUF3WUN3Z2QyaGxjbVZoY3lCdmJpQnZkR2hsY2x4dUlDQXZMeUJpY205M2MyVnljeUIwYUdWNUlHRnlaU3dnWlM1bkxpQkRhSEp2YldVZ1pHVjBaV04wY3lCc2IyNW5aWElnZEdWNGRDQmhibVFnU1VVZ1pHOWxjeWQwSUhKbGMybDZaU0JpWVdOcklIUnZJRzV2Y20xaGJDNWNiaUFnTHk4Z1NXUmxiblJwWTJGc0lHbHpjM1ZsSUhKbGNHOXlkRG9nYUhSMGNITTZMeTlpZFdkNmFXeHNZUzV0YjNwcGJHeGhMbTl5Wnk5emFHOTNYMkoxWnk1aloyay9hV1E5TkRRNE56ZzBYRzRnSUhSbGVIUmhjbVZoTG1Oa2F5MTBaWGgwWVhKbFlTMWhkWFJ2YzJsNlpTMXRaV0Z6ZFhKcGJtY3RabWx5WldadmVDQjdYRzRnSUNBZ1FHbHVZMngxWkdVZ1gyRjFkRzl6YVhwbExXMWxZWE4xY21sdVp5MWlZWE5sTzF4dUlDQWdJR2hsYVdkb2REb2dNQ0FoYVcxd2IzSjBZVzUwTzF4dUlDQjlYRzU5WEc1Y2JpOHZJRU52Y21VZ2MzUjViR1Z6SUhSb1lYUWdaVzVoWW14bElHMXZibWwwYjNKcGJtY2dZWFYwYjJacGJHd2djM1JoZEdVZ2IyWWdkR1Y0ZENCbWFXVnNaSE11WEc1QWJXbDRhVzRnZEdWNGRDMW1hV1ZzWkMxaGRYUnZabWxzYkNncElIdGNiaUFnTHk4Z1MyVjVabkpoYldWeklIUm9ZWFFnWVhCd2JIa2dibThnYzNSNWJHVnpMQ0JpZFhRZ1lXeHNiM2NnZFhNZ2RHOGdiVzl1YVhSdmNpQjNhR1Z1SUdGdUlIUmxlSFFnWm1sbGJHUWdZbVZqYjIxbGN5QmhkWFJ2Wm1sc2JHVmtYRzRnSUM4dklHSjVJSGRoZEdOb2FXNW5JR1p2Y2lCMGFHVWdZVzVwYldGMGFXOXVJR1YyWlc1MGN5QjBhR0YwSUdGeVpTQm1hWEpsWkNCM2FHVnVJSFJvWlhrZ2MzUmhjblF1SUU1dmRHVTZJSFJvWlNBdktpRXFMeUJqYjIxdFpXNTBJR2x6WEc0Z0lDOHZJRzVsWldSbFpDQjBieUJ3Y21WMlpXNTBJRXhwWWxOaGMzTWdabkp2YlNCemRISnBjSEJwYm1jZ2RHaGxJR3RsZVdaeVlXMWxjeUJ2ZFhRdVhHNGdJQzh2SUVKaGMyVmtJRzl1T2lCb2RIUndjem92TDIxbFpHbDFiUzVqYjIwdlFHSnlkVzV1TDJSbGRHVmpkR2x1WnkxaGRYUnZabWxzYkdWa0xXWnBaV3hrY3kxcGJpMXFZWFpoYzJOeWFYQjBMV0ZsWkRVNU9HUXlOV1JoTjF4dUlDQkFhMlY1Wm5KaGJXVnpJR05rYXkxMFpYaDBMV1pwWld4a0xXRjFkRzltYVd4c0xYTjBZWEowSUhzdktpRXFMMzFjYmlBZ1FHdGxlV1p5WVcxbGN5QmpaR3N0ZEdWNGRDMW1hV1ZzWkMxaGRYUnZabWxzYkMxbGJtUWdleThxSVNvdmZWeHVYRzRnSUM1alpHc3RkR1Y0ZEMxbWFXVnNaQzFoZFhSdlptbHNiQzF0YjI1cGRHOXlaV1E2TFhkbFltdHBkQzFoZFhSdlptbHNiQ0I3WEc0Z0lDQWdMeThnVTJsdVkyVWdRMmh5YjIxbElEZ3dJSGRsSUc1bFpXUWdZU0F4YlhNZ1pHVnNZWGtzSUc5eUlIUm9aU0JoYm1sdFlYUnBiMjV6ZEdGeWRDQmxkbVZ1ZENCM2IyNG5kQ0JtYVhKbExseHVJQ0FnSUdGdWFXMWhkR2x2YmpvZ1kyUnJMWFJsZUhRdFptbGxiR1F0WVhWMGIyWnBiR3d0YzNSaGNuUWdNSE1nTVcxek8xeHVJQ0I5WEc1Y2JpQWdMbU5rYXkxMFpYaDBMV1pwWld4a0xXRjFkRzltYVd4c0xXMXZibWwwYjNKbFpEcHViM1FvT2kxM1pXSnJhWFF0WVhWMGIyWnBiR3dwSUh0Y2JpQWdJQ0F2THlCVGFXNWpaU0JEYUhKdmJXVWdPREFnZDJVZ2JtVmxaQ0JoSURGdGN5QmtaV3hoZVN3Z2IzSWdkR2hsSUdGdWFXMWhkR2x2Ym5OMFlYSjBJR1YyWlc1MElIZHZiaWQwSUdacGNtVXVYRzRnSUNBZ1lXNXBiV0YwYVc5dU9pQmpaR3N0ZEdWNGRDMW1hV1ZzWkMxaGRYUnZabWxzYkMxbGJtUWdNSE1nTVcxek8xeHVJQ0I5WEc1OVhHNWNia0J0YVhocGJpQmZZWFYwYjNOcGVtVXRiV1ZoYzNWeWFXNW5MV0poYzJVZ2UxeHVJQ0F2THlCSVlYWnBibWNnTW5CNElIUnZjQ0JoYm1RZ1ltOTBkRzl0SUhCaFpHUnBibWNnYzJWbGJYTWdkRzhnWm1sNElHRWdZblZuSUhkb1pYSmxJRU5vY205dFpTQm5aWFJ6SUdGdUlHbHVZMjl5Y21WamRGeHVJQ0F2THlCdFpXRnpkWEpsYldWdWRDNGdWMlVnYW5WemRDQm9ZWFpsSUhSdklHRmpZMjkxYm5RZ1ptOXlJR2wwSUd4aGRHVnlJR0Z1WkNCemRXSjBjbUZqZENCcGRDQnZabVlnZEdobElHWnBibUZzSUhKbGMzVnNkQzVjYmlBZ2NHRmtaR2x1WnpvZ01uQjRJREFnSVdsdGNHOXlkR0Z1ZER0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWTI5dWRHVnVkQzFpYjNnZ0lXbHRjRzl5ZEdGdWREdGNibjFjYmx4dUx5OGdWWE5sWkNCMGJ5Qm5aVzVsY21GMFpTQlZTVVJ6SUdadmNpQnJaWGxtY21GdFpYTWdkWE5sWkNCMGJ5QmphR0Z1WjJVZ2RHaGxJSFJsZUhRZ1ptbGxiR1FnWVhWMGIyWnBiR3dnYzNSNWJHVnpMbHh1SkdGMWRHOW1hV3hzTFdOdmJHOXlMV1p5WVcxbExXTnZkVzUwT2lBd08xeHVYRzR2THlCTmFYaHBiaUIxYzJWa0lIUnZJR0Z3Y0d4NUlHTjFjM1J2YlNCaVlXTnJaM0p2ZFc1a0lHRnVaQ0JtYjNKbFozSnZkVzVrSUdOdmJHOXljeUIwYnlCaGJpQmhkWFJ2Wm1sc2JHVmtJSFJsZUhRZ1ptbGxiR1F1WEc0dkx5QkNZWE5sWkNCdmJqb2dhSFIwY0hNNkx5OXpkR0ZqYTI5MlpYSm1iRzkzTG1OdmJTOXhkV1Z6ZEdsdmJuTXZNamM0TVRVME9TOWNiaTh2SUhKbGJXOTJhVzVuTFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzVnlMV1p2Y2kxamFISnZiV1V0WVhWMGIyTnZiWEJzWlhSbEkyRnVjM2RsY2kwek56UXpNakkyTUZ4dVFHMXBlR2x1SUhSbGVIUXRabWxsYkdRdFlYVjBiMlpwYkd3dFkyOXNiM0lvSkdKaFkydG5jbTkxYm1Rc0lDUm1iM0psWjNKdmRXNWtPaWNuS1NCN1hHNGdJRUJyWlhsbWNtRnRaWE1nWTJSckxYUmxlSFF0Wm1sbGJHUXRZWFYwYjJacGJHd3RZMjlzYjNJdEkzc2tZWFYwYjJacGJHd3RZMjlzYjNJdFpuSmhiV1V0WTI5MWJuUjlJSHRjYmlBZ0lDQjBieUI3WEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrT2lBa1ltRmphMmR5YjNWdVpEdGNiaUFnSUNBZ0lFQnBaaUFrWm05eVpXZHliM1Z1WkNBaFBTQW5KeUI3SUdOdmJHOXlPaUFrWm05eVpXZHliM1Z1WkRzZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDWTZMWGRsWW10cGRDMWhkWFJ2Wm1sc2JDQjdYRzRnSUNBZ1lXNXBiV0YwYVc5dU9pQmpaR3N0ZEdWNGRDMW1hV1ZzWkMxaGRYUnZabWxzYkMxamIyeHZjaTBqZXlSaGRYUnZabWxzYkMxamIyeHZjaTFtY21GdFpTMWpiM1Z1ZEgwZ1ltOTBhRHRjYmlBZ2ZWeHVYRzRnSUNZdVkyUnJMWFJsZUhRdFptbGxiR1F0WVhWMGIyWnBiR3d0Ylc5dWFYUnZjbVZrT2kxM1pXSnJhWFF0WVhWMGIyWnBiR3dnZTF4dUlDQWdJQzh2SUZOcGJtTmxJRU5vY205dFpTQTRNQ0IzWlNCdVpXVmtJR0VnTVcxeklHUmxiR0Y1SUdadmNpQmpaR3N0ZEdWNGRDMW1hV1ZzWkMxaGRYUnZabWxzYkMxemRHRnlkQ3dnYjNJZ2RHaGxJR0Z1YVcxaGRHbHZibk4wWVhKMFhHNGdJQ0FnTHk4Z1pYWmxiblFnZDI5dUozUWdabWx5WlM1Y2JpQWdJQ0JoYm1sdFlYUnBiMjQ2SUdOa2F5MTBaWGgwTFdacFpXeGtMV0YxZEc5bWFXeHNMWE4wWVhKMElEQnpJREZ0Y3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOa2F5MTBaWGgwTFdacFpXeGtMV0YxZEc5bWFXeHNMV052Ykc5eUxTTjdKR0YxZEc5bWFXeHNMV052Ykc5eUxXWnlZVzFsTFdOdmRXNTBmU0JpYjNSb08xeHVJQ0I5WEc1Y2JpQWdKR0YxZEc5bWFXeHNMV052Ykc5eUxXWnlZVzFsTFdOdmRXNTBPaUFrWVhWMGIyWnBiR3d0WTI5c2IzSXRabkpoYldVdFkyOTFiblFnS3lBeElDRm5iRzlpWVd3N1hHNTlYRzVjYmk4dklFQmtaWEJ5WldOaGRHVmtJRlZ6WlNCZ1lYVjBiM05wZW1WZ0lHRnVaQ0JnWVhWMGIyWnBiR3hnSUdsdWMzUmxZV1F1WEc1QWJXbDRhVzRnZEdWNGRDMW1hV1ZzWkNCN1hHNGdJRUJwYm1Oc2RXUmxJSFJsZUhRdFptbGxiR1F0WVhWMGIzTnBlbVVvS1R0Y2JpQWdRR2x1WTJ4MVpHVWdkR1Y0ZEMxbWFXVnNaQzFoZFhSdlptbHNiQ2dwTzF4dWZWeHVJaXdpUUhWelpTQW5jMkZ6Y3pwdFlYQW5PMXh1UUhWelpTQW5jMkZ6Y3pwdFpYUmhKenRjYmtCMWMyVWdKMEJoYm1kMWJHRnlMMk5rYXljN1hHNUFkWE5sSUNjdUxpOXpkSGxzWlM5c1lYbHZkWFF0WTI5dGJXOXVKenRjYmtCMWMyVWdKeTR1TDNSb1pXMXBibWN2ZEdobGJXbHVaeWM3WEc1QWRYTmxJQ2N1TGk5MGFHVnRhVzVuTDJsdWMzQmxZM1JwYjI0bk8xeHVYRzR2THlCUWNtbDJZWFJsSUhOaGMzTWdkbUZ5YVdGaWJHVnpJSFJvWVhRZ2QybHNiQ0JpWlNCMWMyVmtJR0Z6SUhKbFptVnlaVzVqWlNCMGFISnZkV2RvYjNWMElHTnZiWEJ2Ym1WdWRDQnpkSGxzWlhOb1pXVjBjeTVjYmlSa1pXWmhkV3gwTFdKdmNtUmxjaTEzYVdSMGFEb2dNM0I0TzF4dUpHUmxabUYxYkhRdFltOXlaR1Z5TFhOMGVXeGxPaUJ6YjJ4cFpEdGNiaVJrWldaaGRXeDBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RISmhibk53WVhKbGJuUTdYRzRrWkdWbVlYVnNkQzFpYjNKa1pYSXRjbUZrYVhWek9pQTBjSGc3WEc1Y2JpOHZJRTFwZUdsdUlIUm9ZWFFnY21WdVpHVnljeUIwYUdVZ1ptOWpkWE1nYVc1a2FXTmhkRzl5SUhOMGNuVmpkSFZ5WVd3Z2MzUjViR1Z6TGx4dVFHMXBlR2x1SUhOMGNuVmpkSFZ5WVd3dGMzUjViR2x1Wnlna2NISmxabWw0S1NCN1hHNGdJQzRqZXlSd2NtVm1hWGg5TFdadlkzVnpMV2x1WkdsallYUnZjaUI3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1WEc0Z0lDQWdKam82WW1WbWIzSmxJSHRjYmlBZ0lDQWdJRUJwYm1Oc2RXUmxJR3hoZVc5MWRDMWpiMjF0YjI0dVptbHNiQ2dwTzF4dUlDQWdJQ0FnWW05NExYTnBlbWx1WnpvZ1ltOXlaR1Z5TFdKdmVEdGNiaUFnSUNBZ0lIQnZhVzUwWlhJdFpYWmxiblJ6T2lCdWIyNWxPMXh1SUNBZ0lDQWdaR2x6Y0d4aGVUb2dkbUZ5S0MwdEkzc2tjSEpsWm1sNGZTMW1iMk4xY3kxcGJtUnBZMkYwYjNJdFpHbHpjR3hoZVN3Z2JtOXVaU2s3SUM4dklFaHBaR1VnZEdobElHbHVaR2xqWVhSdmNpQmllU0JrWldaaGRXeDBMbHh1SUNBZ0lDQWdZbTl5WkdWeU9pQjJZWElvWEc0Z0lDQWdJQ0FnSUNBZ0xTMGpleVJ3Y21WbWFYaDlMV1p2WTNWekxXbHVaR2xqWVhSdmNpMWliM0prWlhJdGQybGtkR2dzWEc0Z0lDQWdJQ0FnSUNBZ0kzc2taR1ZtWVhWc2RDMWliM0prWlhJdGQybGtkR2g5WEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ2RtRnlLRnh1SUNBZ0lDQWdJQ0FnSUMwdEkzc2tjSEpsWm1sNGZTMW1iMk4xY3kxcGJtUnBZMkYwYjNJdFltOXlaR1Z5TFhOMGVXeGxMRnh1SUNBZ0lDQWdJQ0FnSUNON0pHUmxabUYxYkhRdFltOXlaR1Z5TFhOMGVXeGxmVnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUhaaGNpaGNiaUFnSUNBZ0lDQWdJQ0F0TFNON0pIQnlaV1pwZUgwdFptOWpkWE10YVc1a2FXTmhkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpeGNiaUFnSUNBZ0lDQWdJQ0FqZXlSa1pXWmhkV3gwTFdKdmNtUmxjaTFqYjJ4dmNuMWNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklIWmhjaWhjYmlBZ0lDQWdJQ0FnTFMwamV5UndjbVZtYVhoOUxXWnZZM1Z6TFdsdVpHbGpZWFJ2Y2kxaWIzSmtaWEl0Y21Ga2FYVnpMRnh1SUNBZ0lDQWdJQ0FqZXlSa1pXWmhkV3gwTFdKdmNtUmxjaTF5WVdScGRYTjlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRUo1SUdSbFptRjFiSFFzSUhKbGJtUmxjaUIwYUdVZ1ptOWpkWE1nYVc1a2FXTmhkRzl5SUhkb1pXNGdkR2hsSUdadlkzVnpJR2x1WkdsallYUnZjaUJvYjNOMElHVnNaVzFsYm5RZ2RHRnJaWE1nWm05amRYTXVYRzRnSUNBZ0x5OGdSR1ZtYVc1cGJtY2dZU0J3YzJWMVpHOGdaV3hsYldWdWRDZHpJR052Ym5SbGJuUWdkMmxzYkNCallYVnpaU0JwZENCMGJ5QnlaVzVrWlhJdVhHNGdJQ0FnSmpwbWIyTjFjem82WW1WbWIzSmxJSHRjYmlBZ0lDQWdJR052Ym5SbGJuUTZJQ2NuTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4dklFVnVZV0pzWlNCMGFHVWdhVzVrYVdOaGRHOXlJR2x1SUdocFoyZ2dZMjl1ZEhKaGMzUWdiVzlrWlM1Y2JpQWdRR2x1WTJ4MVpHVWdZMlJyTG1ocFoyZ3RZMjl1ZEhKaGMzUW9ZV04wYVhabExDQnZabVlwSUh0Y2JpQWdJQ0JBYVc1amJIVmtaU0JqZFhOMGIyMXBlbVV0Wm05amRYTXRhVzVrYVdOaGRHOXljeWdvWkdsemNHeGhlVG9nWW14dlkyc3BMQ0FrY0hKbFptbDRLVHRjYmlBZ2ZWeHVmVnh1WEc0dkx5QkhaVzVsY21GMFpYTWdRMU5USUhaaGNtbGhZbXhsSUdSbFkyeGhjbUYwYVc5dWN5Qm1jbTl0SUdFZ2JXRndMbHh1UUcxcGVHbHVJRjl2ZFhSd2RYUXRkbUZ5YVdGaWJHVnpLQ1J0WVhBcElIdGNiaUFnUUdWaFkyZ2dKR3RsZVN3Z0pIWmhiSFZsSUdsdUlDUnRZWEFnZTF4dUlDQWdJRUJwWmlBb0pIWmhiSFZsS1NCN1hHNGdJQ0FnSUNBdExTTjdKR3RsZVgwNklDTjdKSFpoYkhWbGZUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JseHVMeThnVFdsNGFXNGdkR2hoZENCa1pXUjFjSE1nUTFOVElIWmhjbWxoWW14bGN5Qm1iM0lnZEdobElITjBjbTl1WnkxbWIyTjFjeTFwYm1ScFkyRjBiM0p6SUcxcGVHbHVMbHh1UUcxcGVHbHVJR04xYzNSdmJXbDZaUzFtYjJOMWN5MXBibVJwWTJGMGIzSnpLQ1JqYjI1bWFXY3NJQ1J3Y21WbWFYZ3BJSHRjYmlBZ0pHSnZjbVJsY2kxemRIbHNaVG9nYldGd0xtZGxkQ2drWTI5dVptbG5MQ0JpYjNKa1pYSXRjM1I1YkdVcE8xeHVJQ0FrWW05eVpHVnlMWGRwWkhSb09pQnRZWEF1WjJWMEtDUmpiMjVtYVdjc0lHSnZjbVJsY2kxM2FXUjBhQ2s3WEc0Z0lDUmliM0prWlhJdGNtRmthWFZ6T2lCdFlYQXVaMlYwS0NSamIyNW1hV2NzSUdKdmNtUmxjaTF5WVdScGRYTXBPMXh1SUNBa1ltOXlaR1Z5TFdOdmJHOXlPaUJ0WVhBdVoyVjBLQ1JqYjI1bWFXY3NJR0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ1JrYVhOd2JHRjVPaUJ0WVhBdVoyVjBLQ1JqYjI1bWFXY3NJR1JwYzNCc1lYa3BPMXh1SUNBa2JXRndPaUFvWEc0Z0lDQWdKeU43SkhCeVpXWnBlSDB0Wm05amRYTXRhVzVrYVdOaGRHOXlMV0p2Y21SbGNpMXpkSGxzWlNjNklDUmliM0prWlhJdGMzUjViR1VzWEc0Z0lDQWdKeU43SkhCeVpXWnBlSDB0Wm05amRYTXRhVzVrYVdOaGRHOXlMV0p2Y21SbGNpMTNhV1IwYUNjNklDUmliM0prWlhJdGQybGtkR2dzWEc0Z0lDQWdKeU43SkhCeVpXWnBlSDB0Wm05amRYTXRhVzVrYVdOaGRHOXlMV0p2Y21SbGNpMXlZV1JwZFhNbk9pQWtZbTl5WkdWeUxYSmhaR2wxY3l4Y2JpQWdJQ0FuSTNza2NISmxabWw0ZlMxbWIyTjFjeTFwYm1ScFkyRjBiM0l0WW05eVpHVnlMV052Ykc5eUp6b2dKR0p2Y21SbGNpMWpiMnh2Y2l4Y2JpQWdJQ0FuSTNza2NISmxabWw0ZlMxbWIyTjFjeTFwYm1ScFkyRjBiM0l0WkdsemNHeGhlU2M2SUNSa2FYTndiR0Y1TEZ4dUlDQXBPMXh1WEc0Z0lFQnBaaUFvSmlrZ2UxeHVJQ0FnSUVCcGJtTnNkV1JsSUY5dmRYUndkWFF0ZG1GeWFXRmliR1Z6S0NSdFlYQXBPMXh1SUNCOVhHNGdJRUJsYkhObElIdGNiaUFnSUNBdkx5QlhaU0IxYzJVZ1lHaDBiV3hnSUdobGNtVWdhVzV6ZEdWaFpDQnZaaUJnT25KdmIzUmdMQ0JpWldOaGRYTmxJSFJvWlZ4dUlDQWdJQzh2SUd4aGRIUmxjaUJqWVhWelpYTWdjMjl0WlNCcGMzTjFaWE1nZDJsMGFDQnBiblJsY201aGJDQjBiMjlzYVc1bkxseHVJQ0FnSUdoMGJXd2dlMXh1SUNBZ0lDQWdRR2x1WTJ4MVpHVWdYMjkxZEhCMWRDMTJZWEpwWVdKc1pYTW9KRzFoY0NrN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc1Y2JrQnRhWGhwYmlCemRISnZibWN0Wm05amRYTXRhVzVrYVdOaGRHOXljeWdrWTI5dVptbG5PaUFvS1NrZ2UxeHVJQ0F2THlCRVpXWmhkV3gwSUdadlkzVnpJR2x1WkdsallYUnZjaUJqYjI1bWFXY3VYRzRnSUNSa1pXWmhkV3gwTFdOdmJtWnBaem9nS0Z4dUlDQWdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQmliR0ZqYXl4Y2JpQWdJQ0FnSUdScGMzQnNZWGs2SUdKc2IyTnJMRnh1SUNBcE8xeHVYRzRnSUM4dklFMWxjbWRsSUdSbFptRjFiSFFnWTI5dVptbG5JSGRwZEdnZ2RYTmxjaUJqYjI1bWFXY3VYRzRnSUNSamIyNW1hV2M2SUcxaGNDNXRaWEpuWlNna1pHVm1ZWFZzZEMxamIyNW1hV2NzSUNSamIyNW1hV2NwTzF4dVhHNGdJRUJwYm1Oc2RXUmxJR04xYzNSdmJXbDZaUzFtYjJOMWN5MXBibVJwWTJGMGIzSnpLQ1JqYjI1bWFXY3NJQ2R0WVhRbktUdGNibjFjYmx4dVFHMXBlR2x1SUcxa1l5MXpkSEp2Ym1jdFptOWpkWE10YVc1a2FXTmhkRzl5Y3lna1kyOXVabWxuT2lBb0tTa2dlMXh1SUNBdkx5QkVaV1poZFd4MElHWnZZM1Z6SUdsdVpHbGpZWFJ2Y2lCamIyNW1hV2N1WEc0Z0lDUmtaV1poZFd4MExXTnZibVpwWnpvZ0tGeHVJQ0FnSUNBZ1ltOXlaR1Z5TFdOdmJHOXlPaUJpYkdGamF5eGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklHSnNiMk5yTEZ4dUlDQXBPMXh1WEc0Z0lDOHZJRTFsY21kbElHUmxabUYxYkhRZ1kyOXVabWxuSUhkcGRHZ2dkWE5sY2lCamIyNW1hV2N1WEc0Z0lDUmpiMjVtYVdjNklHMWhjQzV0WlhKblpTZ2taR1ZtWVhWc2RDMWpiMjVtYVdjc0lDUmpiMjVtYVdjcE8xeHVYRzRnSUVCcGJtTnNkV1JsSUdOMWMzUnZiV2w2WlMxbWIyTjFjeTFwYm1ScFkyRjBiM0p6S0NSamIyNW1hV2NzSUNkdFlYUXRiV1JqSnlrN1hHNTlYRzVjYmtCdGFYaHBiaUJ6ZEhKdmJtY3RabTlqZFhNdGFXNWthV05oZEc5eWN5MWpiMnh2Y2lna2RHaGxiV1V0YjNJdFkyOXNiM0lwSUh0Y2JpQWdRR2xtSUcxbGRHRXVkSGx3WlMxdlppZ2tkR2hsYldVdGIzSXRZMjlzYjNJcElEMDlJQ2RqYjJ4dmNpY2dlMXh1SUNBZ0lFQnBibU5zZFdSbElHTjFjM1J2YldsNlpTMW1iMk4xY3kxcGJtUnBZMkYwYjNKektDaGNiaUFnSUNBZ0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lBa2RHaGxiV1V0YjNJdFkyOXNiM0pjYmlBZ0lDQXBMQ0FuYldGMEp5azdYRzRnSUgxY2JpQWdRR1ZzYzJVZ2UxeHVJQ0FnSUNSaWIzSmtaWEl0WTI5c2IzSTZJR2x1YzNCbFkzUnBiMjR1WjJWMExYUm9aVzFsTFdOdmJHOXlLQ1IwYUdWdFpTMXZjaTFqYjJ4dmNpd2djSEpwYldGeWVTazdYRzRnSUNBZ1FHbHVZMngxWkdVZ1kzVnpkRzl0YVhwbExXWnZZM1Z6TFdsdVpHbGpZWFJ2Y25Nb0tGeHVJQ0FnSUNBZ0lDQmliM0prWlhJdFkyOXNiM0k2SUNSaWIzSmtaWEl0WTI5c2IzSmNiaUFnSUNBcExDQW5iV0YwSnlrN1hHNGdJSDFjYm4xY2JseHVRRzFwZUdsdUlITjBjbTl1WnkxbWIyTjFjeTFwYm1ScFkyRjBiM0p6TFhSb1pXMWxLQ1IwYUdWdFpTMXZjaTFqYjJ4dmNpa2dlMXh1SUNCQWFXWWdiV1YwWVM1MGVYQmxMVzltS0NSMGFHVnRaUzF2Y2kxamIyeHZjaWtnUFQwZ0oyTnZiRzl5SnlCN1hHNGdJQ0FnUUdsdVkyeDFaR1VnWTNWemRHOXRhWHBsTFdadlkzVnpMV2x1WkdsallYUnZjbk1vS0Z4dUlDQWdJQ0FnSUNCaWIzSmtaWEl0WTI5c2IzSTZJQ1IwYUdWdFpTMXZjaTFqYjJ4dmNseHVJQ0FnSUNrc0lDZHRZWFFuS1R0Y2JpQWdmVnh1SUNCQVpXeHpaU0I3WEc0Z0lDQWdRR2x1WTJ4MVpHVWdkR2hsYldsdVp5NXdjbWwyWVhSbExXTm9aV05yTFdSMWNHeHBZMkYwWlMxMGFHVnRaUzF6ZEhsc1pYTW9KSFJvWlcxbExXOXlMV052Ykc5eUxDQW5iV0YwTFdadlkzVnpMV2x1WkdsallYUnZjbk1uS1NCN1hHNGdJQ0FnSUNCQWFXWWdhVzV6Y0dWamRHbHZiaTUwYUdWdFpTMW9ZWE1vSkhSb1pXMWxMVzl5TFdOdmJHOXlMQ0JqYjJ4dmNpa2dlMXh1SUNBZ0lDQWdJQ0JBYVc1amJIVmtaU0J6ZEhKdmJtY3RabTlqZFhNdGFXNWthV05oZEc5eWN5MWpiMnh2Y2lna2RHaGxiV1V0YjNJdFkyOXNiM0lwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1WEc1QWJXbDRhVzRnYldSakxYTjBjbTl1WnkxbWIyTjFjeTFwYm1ScFkyRjBiM0p6TFdOdmJHOXlLQ1IwYUdWdFpTMXZjaTFqYjJ4dmNpa2dlMXh1SUNCQWFXWWdiV1YwWVM1MGVYQmxMVzltS0NSMGFHVnRaUzF2Y2kxamIyeHZjaWtnUFQwZ0oyTnZiRzl5SnlCN1hHNGdJQ0FnUUdsdVkyeDFaR1VnWTNWemRHOXRhWHBsTFdadlkzVnpMV2x1WkdsallYUnZjbk1vS0Z4dUlDQWdJQ0FnSUNCaWIzSmtaWEl0WTI5c2IzSTZJQ1IwYUdWdFpTMXZjaTFqYjJ4dmNseHVJQ0FnSUNrc0lDZHRZWFF0YldSakp5azdYRzRnSUgxY2JpQWdRR1ZzYzJVZ2UxeHVJQ0FnSUNSaWIzSmtaWEl0WTI5c2IzSTZJR2x1YzNCbFkzUnBiMjR1WjJWMExYUm9aVzFsTFdOdmJHOXlLQ1IwYUdWdFpTMXZjaTFqYjJ4dmNpd2djSEpwYldGeWVTazdYRzRnSUNBZ1FHbHVZMngxWkdVZ1kzVnpkRzl0YVhwbExXWnZZM1Z6TFdsdVpHbGpZWFJ2Y25Nb0tGeHVJQ0FnSUNBZ0lDQmliM0prWlhJdFkyOXNiM0k2SUNSaWIzSmtaWEl0WTI5c2IzSmNiaUFnSUNBcExDQW5iV0YwTFcxa1l5Y3BPMXh1SUNCOVhHNTlYRzVjYmtCdGFYaHBiaUJ0WkdNdGMzUnliMjVuTFdadlkzVnpMV2x1WkdsallYUnZjbk10ZEdobGJXVW9KSFJvWlcxbExXOXlMV052Ykc5eUtTQjdYRzRnSUVCcFppQnRaWFJoTG5SNWNHVXRiMllvSkhSb1pXMWxMVzl5TFdOdmJHOXlLU0E5UFNBblkyOXNiM0luSUh0Y2JpQWdJQ0JBYVc1amJIVmtaU0JqZFhOMGIyMXBlbVV0Wm05amRYTXRhVzVrYVdOaGRHOXljeWdvWEc0Z0lDQWdJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dKSFJvWlcxbExXOXlMV052Ykc5eVhHNGdJQ0FnS1N3Z0oyMWhkQzF0WkdNbktUdGNiaUFnZlZ4dUlDQkFaV3h6WlNCN1hHNGdJQ0FnUUdsdVkyeDFaR1VnZEdobGJXbHVaeTV3Y21sMllYUmxMV05vWldOckxXUjFjR3hwWTJGMFpTMTBhR1Z0WlMxemRIbHNaWE1vWEc0Z0lDQWdJQ0FnSUNSMGFHVnRaUzF2Y2kxamIyeHZjaXdnSjIxaGRDMXRaR010Wm05amRYTXRhVzVrYVdOaGRHOXljeWNwSUh0Y2JpQWdJQ0FnSUVCcFppQnBibk53WldOMGFXOXVMblJvWlcxbExXaGhjeWdrZEdobGJXVXRiM0l0WTI5c2IzSXNJR052Ykc5eUtTQjdYRzRnSUNBZ0lDQWdJRUJwYm1Oc2RXUmxJRzFrWXkxemRISnZibWN0Wm05amRYTXRhVzVrYVdOaGRHOXljeTFqYjJ4dmNpZ2tkR2hsYldVdGIzSXRZMjlzYjNJcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlpd2lMeThnVkdocGN5QnRhWGhwYmlCbGJuTjFjbVZ6SUdGdUlHVnNaVzFsYm5RZ2MzQmhibk1nZEc4Z1ptbHNiQ0IwYUdVZ2JtVmhjbVZ6ZENCaGJtTmxjM1J2Y2lCM2FYUm9JR1JsWm1sdVpXUWdjRzl6YVhScGIyNXBibWN1WEc1QWJXbDRhVzRnWm1sc2JDQjdYRzRnSUhSdmNEb2dNRHRjYmlBZ2JHVm1kRG9nTUR0Y2JpQWdjbWxuYUhRNklEQTdYRzRnSUdKdmRIUnZiVG9nTUR0Y2JpQWdjRzl6YVhScGIyNDZJR0ZpYzI5c2RYUmxPMXh1ZlZ4dUlpd2lRSFZ6WlNBblFHRnVaM1ZzWVhJdlkyUnJKenRjYmtCMWMyVWdKeTR2ZEc5clpXNXpMMjB5TDIxaGRDOWhjSEFuSUdGeklIUnZhMlZ1Y3kxdFlYUXRZWEJ3TzF4dVFIVnpaU0FuTGk5MGIydGxibk12ZEc5clpXNHRkWFJwYkhNbk8xeHVRSFZ6WlNBbkxpOXlhWEJ3YkdVdmNtbHdjR3hsSnp0Y2JrQjFjMlVnSnk0dlptOWpkWE10YVc1a2FXTmhkRzl5Y3k5d2NtbDJZWFJsSnp0Y2JrQjFjMlVnSnk0dmJXUmpMV2hsYkhCbGNuTXZiV1JqTFdobGJIQmxjbk1uTzF4dVhHNHZMeUJOYVhocGJpQjBhR0YwSUhKbGJtUmxjbk1nWVd4c0lHOW1JSFJvWlNCamIzSmxJSE4wZVd4bGN5QjBhR0YwSUdGeVpTQnViM1FnZEdobGJXVXRaR1Z3Wlc1a1pXNTBMbHh1UUcxcGVHbHVJR052Y21Vb0tTQjdYRzRnSUVCcGJtTnNkV1JsSUhKcGNIQnNaUzV5YVhCd2JHVW9LVHRjYmlBZ1FHbHVZMngxWkdVZ1kyUnJMbUV4TVhrdGRtbHpkV0ZzYkhrdGFHbGtaR1Z1S0NrN1hHNGdJRUJwYm1Oc2RXUmxJR05rYXk1dmRtVnliR0Y1S0NrN1hHNGdJRUJwYm1Oc2RXUmxJR05rYXk1MFpYaDBMV1pwWld4a0xXRjFkRzl6YVhwbEtDazdYRzRnSUVCcGJtTnNkV1JsSUdOa2F5NTBaWGgwTFdacFpXeGtMV0YxZEc5bWFXeHNLQ2s3WEc0Z0lFQnBibU5zZFdSbElIQnlhWFpoZEdVdWMzUnlkV04wZFhKaGJDMXpkSGxzYVc1bktDZHRZWFFuS1R0Y2JpQWdRR2x1WTJ4MVpHVWdjSEpwZG1GMFpTNXpkSEoxWTNSMWNtRnNMWE4wZVd4cGJtY29KMjFoZEMxdFpHTW5LVHRjYmx4dUlDQXZMeUJYY21Gd2NHVnlJR1ZzWlcxbGJuUWdkR2hoZENCd2NtOTJhV1JsY3lCMGFHVWdkR2hsYldVZ1ltRmphMmR5YjNWdVpDQjNhR1Z1SUhSb1pWeHVJQ0F2THlCMWMyVnlKM01nWTI5dWRHVnVkQ0JwYzI0bmRDQnBibk5wWkdVZ2IyWWdZU0JnYldGMExYTnBaR1Z1WVhZdFkyOXVkR0ZwYm1WeVlDNWNiaUFnUUdGMExYSnZiM1FnZTF4dUlDQWdJQzV0WVhRdFlYQndMV0poWTJ0bmNtOTFibVFnZTF4dUlDQWdJQ0FnUUdsdVkyeDFaR1VnYldSakxXaGxiSEJsY25NdVpHbHpZV0pzWlMxdFpHTXRabUZzYkdKaFkyc3RaR1ZqYkdGeVlYUnBiMjV6SUh0Y2JpQWdJQ0FnSUNBZ1FHbHVZMngxWkdVZ2RHOXJaVzR0ZFhScGJITXVkWE5sTFhSdmEyVnVjeWgwYjJ0bGJuTXRiV0YwTFdGd2NDNGtjSEpsWm1sNExDQjBiMnRsYm5NdGJXRjBMV0Z3Y0M1blpYUXRkRzlyWlc0dGMyeHZkSE1vS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUU1dmRHVTZJSGRsSUc1bFpXUWdkRzhnWlcxcGRDQm1ZV3hzWW1GamF5QjJZV3gxWlhNZ2FHVnlaU0IwYnlCaGRtOXBaQ0JsY25KdmNuTWdhVzRnYVc1MFpYSnVZV3dnWW5WcGJHUnpMbHh1SUNBZ0lDQWdJQ0FnSUVCcGJtTnNkV1JsSUhSdmEyVnVMWFYwYVd4ekxtTnlaV0YwWlMxMGIydGxiaTF6Ykc5MEtHSmhZMnRuY205MWJtUXRZMjlzYjNJc0lHSmhZMnRuY205MWJtUXRZMjlzYjNJc0lIUnlZVzV6Y0dGeVpXNTBLVHRjYmlBZ0lDQWdJQ0FnSUNCQWFXNWpiSFZrWlNCMGIydGxiaTExZEdsc2N5NWpjbVZoZEdVdGRHOXJaVzR0YzJ4dmRDaGpiMnh2Y2l3Z2RHVjRkQzFqYjJ4dmNpd2dhVzVvWlhKcGRDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JuMWNiaUlzSWk4dlhHNHZMeUJEYjNCNWNtbG5hSFFnTWpBeU1DQkhiMjluYkdVZ1NXNWpMbHh1THk5Y2JpOHZJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpOHZJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaTh2SUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaTh2SUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpOHZJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVMeThnWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpOHZYRzR2THlCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVMeThnWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzR2TDF4dUx5OGdWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUx5OGdTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzR2THlCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaTh2SUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmk4dklFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0dkx5QlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9YRzR2THlCVVNFVWdVMDlHVkZkQlVrVXVYRzR2TDF4dVhHNUFkWE5sSUNkellYTnpPbXhwYzNRbk8xeHVRSFZ6WlNBbmMyRnpjenB0WVhBbk8xeHVRSFZ6WlNBbmMyRnpjenB0WlhSaEp6dGNia0IxYzJVZ0p5NHZaM056Snp0Y2JseHVMeTh2SUZkb1pXNGdkSEoxWlN3Z1lXUmtJR0Z1SUdGa1pHbDBhVzl1WVd3Z2NISnZjR1Z5ZEhrdmRtRnNkV1VnWkdWamJHRnlZWFJwYjI0Z1ltVm1iM0psSUdSbFkyeGhjbUYwYVc5dWMxeHVMeTh2SUhSb1lYUWdkWE5sSUdGa2RtRnVZMlZrSUdabFlYUjFjbVZ6SUhOMVkyZ2dZWE1nWTNWemRHOXRJSEJ5YjNCbGNuUnBaWE1nYjNJZ1ExTlRJR1oxYm1OMGFXOXVjeTRnVkdocGMxeHVMeTh2SUdGa1pITWdabUZzYkdKaFkyc2djM1Z3Y0c5eWRDQm1iM0lnYjJ4a1pYSWdZbkp2ZDNObGNuTWdjM1ZqYUNCaGN5QkpSVEV4SUhSb1lYUWdaRzhnYm05MElITjFjSEJ2Y25SY2JpOHZMeUIwYUdWelpTQm1aV0YwZFhKbGN5QmhkQ0IwYUdVZ1kyOXpkQ0J2WmlCaFpHUnBkR2x2Ym1Gc0lFTlRVeTRnVTJWMElIUm9hWE1nZG1GeWFXRmliR1VnZEc4Z1ptRnNjMlVnZEc5Y2JpOHZMeUJrYVhOaFlteGxJR2RsYm1WeVlYUnBibWNnWm1Gc2JHSmhZMnNnWkdWamJHRnlZWFJwYjI1ekxseHVKR1Z1WVdKc1pTMW1ZV3hzWW1GamF5MWtaV05zWVhKaGRHbHZibk02SUhSeWRXVWdJV1JsWm1GMWJIUTdYRzVjYmk4dkx5QlhjbWwwWlhNZ1lTQkRVMU1nY0hKdmNHVnlkSGt2ZG1Gc2RXVWdaR1ZqYkdGeVlYUnBiMjR1SUZSb2FYTWdiV2w0YVc0Z2FYTWdkWE5sWkNCMGFISnZkV2RvYjNWMElIUm9aVnh1THk4dklIUm9aVzFsSUhCaFkydGhaMlVnWm05eUlHTnZibk5wYzNSbGJtTjVJR1p2Y2lCa2VXNWhiV2xqWVd4c2VTQnpaWFIwYVc1bklFTlRVeUJ3Y205d1pYSjBlU0IyWVd4MVpYTXVYRzR2THk5Y2JpOHZMeUJVYUdseklHMXBlR2x1SUcxaGVTQnZjSFJwYjI1aGJHeDVJSFJoYTJVZ1lTQm1ZV3hzWW1GamF5QjJZV3gxWlM0Z1JtOXlJR0ZrZG1GdVkyVmtJR1psWVhSMWNtVnpJSE4xWTJoY2JpOHZMeUJoY3lCamRYTjBiMjBnY0hKdmNHVnlkR2xsY3lCdmNpQkRVMU1nWm5WdVkzUnBiMjV6SUd4cGEyVWdiV2x1SUdGdVpDQnRZWGdzSUdFZ1ptRnNiR0poWTJzZ2RtRnNkV1VnYVhOY2JpOHZMeUJ5WldOdmJXMWxibVJsWkNCMGJ5QnpkWEJ3YjNKMElHOXNaR1Z5SUdKeWIzZHpaWEp6TGx4dUx5OHZYRzR2THk4Z1FIQmhjbUZ0SUh0VGRISnBibWQ5SUNSd2NtOXdaWEowZVNBdElGUm9aU0JEVTFNZ2NISnZjR1Z5ZEhrZ2IyWWdkR2hsSUdSbFkyeGhjbUYwYVc5dUxseHVMeTh2SUVCd1lYSmhiU0I3S24wZ0pIWmhiSFZsSUMwZ1ZHaGxJSFpoYkhWbElHOW1JSFJvWlNCRFUxTWdaR1ZqYkdGeVlYUnBiMjR1SUZSb1pTQjJZV3gxWlNCemFHOTFiR1FnWW1WY2JpOHZMeUFnSUNBZ2NtVnpiMngyWldRZ1lua2diM1JvWlhJZ2RHaGxiV1VnWm5WdVkzUnBiMjV6SUdacGNuTjBJQ2hwTG1VdUlHTjFjM1J2YlNCd2NtOXdaWEowZVNCTllYQnpJR0Z1WkZ4dUx5OHZJQ0FnSUNCTllYUmxjbWxoYkNCMGFHVnRaU0JyWlhseklHRnlaU0J1YjNRZ2MzVndjRzl5ZEdWa0lHbHVJSFJvYVhNZ2JXbDRhVzRwTGlCSlppQjBhR1VnZG1Gc2RXVWdhWE5jYmk4dkx5QWdJQ0FnYm5Wc2JDd2dibThnWkdWamJHRnlZWFJwYjI1eklIZHBiR3dnWW1VZ1pXMXBkSFJsWkM1Y2JpOHZMeUJBY0dGeVlXMGdleXA5SUNSbVlXeHNZbUZqYXlBdElFRnVJRzl3ZEdsdmJtRnNJR1poYkd4aVlXTnJJSFpoYkhWbElHWnZjaUJ2YkdSbGNpQmljbTkzYzJWeWN5NGdTV1pjYmk4dkx5QWdJQ0FnY0hKdmRtbGtaV1FzSUdFZ2MyVmpiMjVrSUhCeWIzQmxjblI1TDNaaGJIVmxJR1JsWTJ4aGNtRjBhVzl1SUhkcGJHd2dZbVVnWVdSa1pXUWdZbVZtYjNKbElIUm9aVnh1THk4dklDQWdJQ0J0WVdsdUlIQnliM0JsY25SNUwzWmhiSFZsSUdSbFkyeGhjbUYwYVc5dUxseHVMeTh2SUVCd1lYSmhiU0I3VFdGd2ZTQWtaM056SUMwZ1FXNGdiM0IwYVc5dVlXd2dUV0Z3SUc5bUlFZFRVeUJoYm01dmRHRjBhVzl1Y3lCMGJ5QmhaR1F1WEc0dkx5OGdRSEJoY21GdElIdENiMjlzZlNBa2FXMXdiM0owWVc1MElDMGdTV1lnZEhKMVpTd2dZV1JrSUdBaGFXMXdiM0owWVc1MFlDQjBieUIwYUdVZ1pHVmpiR0Z5WVhScGIyNHVYRzVBYldsNGFXNGdaR1ZqYkdGeVlYUnBiMjRvWEc0Z0lDUndjbTl3WlhKMGVTeGNiaUFnSkhaaGJIVmxMRnh1SUNBa1ptRnNiR0poWTJzdGRtRnNkV1U2SUc1MWJHd3NYRzRnSUNSbmMzTTZJQ2dwTEZ4dUlDQWthVzF3YjNKMFlXNTBPaUJtWVd4elpWeHVLU0I3WEc0Z0lDOHZJRTV2Y20xaGJHeDVJSE5sZEhScGJtY2dZU0J1ZFd4c0lIWmhiSFZsSUhSdklHRWdjSEp2Y0dWeWRIa2dkMmxzYkNCdWIzUWdaVzFwZENCRFUxTXNJSE52SUcxcGVHbHVjMXh1SUNBdkx5QjNiM1ZzWkc0bmRDQnVaV1ZrSUhSdklHTm9aV05ySUhSb2FYTXVJRWh2ZDJWMlpYSXNJRk5oYzNNZ2QybHNiQ0IwYUhKdmR5QmhiaUJsY25KdmNpQnBaaUIwYUdWY2JpQWdMeThnYVc1MFpYSndiMnhoZEdWa0lIQnliM0JsY25SNUlHbHpJR0VnWTNWemRHOXRJSEJ5YjNCbGNuUjVMbHh1SUNCQWFXWWdKSFpoYkhWbElDRTlJRzUxYkd3Z2UxeHVJQ0FnSUNScGJYQnZjblJoYm5RdGNuVnNaVG9nYVdZb0pHbHRjRzl5ZEdGdWRDd2dKeUFoYVcxd2IzSjBZVzUwSnl3Z0p5Y3BPMXh1WEc0Z0lDQWdRR2xtSUNSbVlXeHNZbUZqYXkxMllXeDFaU0JoYm1RZ0pHVnVZV0pzWlMxbVlXeHNZbUZqYXkxa1pXTnNZWEpoZEdsdmJuTWdlMXh1SUNBZ0lDQWdRR2x1WTJ4MVpHVWdaM056TG1GdWJtOTBZWFJsS0NSbmMzTXBPMXh1SUNBZ0lDQWdJM3NrY0hKdmNHVnlkSGw5T2lBamV5Um1ZV3hzWW1GamF5MTJZV3gxWlgwZ0kzc2thVzF3YjNKMFlXNTBMWEoxYkdWOU8xeHVYRzRnSUNBZ0lDQXZMeUJCWkdRZ1FHRnNkR1Z5Ym1GMFpTQjBieUJoYm01dmRHRjBhVzl1Y3k1Y2JpQWdJQ0FnSUNSbmMzTTZJRzFoY0M1dFpYSm5aU2hjYmlBZ0lDQWdJQ0FnSkdkemN5eGNiaUFnSUNBZ0lDQWdLRnh1SUNBZ0lDQWdJQ0FnSUdGc2RHVnlibUYwWlRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JBYVc1amJIVmtaU0JuYzNNdVlXNXViM1JoZEdVb0pHZHpjeWs3WEc0Z0lDQWdJM3NrY0hKdmNHVnlkSGw5T2lBamV5UjJZV3gxWlgwamV5UnBiWEJ2Y25SaGJuUXRjblZzWlgwN1hHNGdJSDFjYm4xY2JseHVMeTh2SUZWdWNHRmphM01nYzJodmNuUm9ZVzVrSUhaaGJIVmxjeUJtYjNJZ1ExTlRJSEJ5YjNCbGNuUnBaWE1nS0drdVpTNGdiR2x6ZEhNZ2IyWWdNUzB6SUhaaGJIVmxjeWt1WEc0dkx5OGdTV1lnWVNCc2FYTjBJRzltSURRZ2RtRnNkV1Z6SUdseklHZHBkbVZ1TENCcGRDQnBjeUJ5WlhSMWNtNWxaQ0JoY3kxcGN5NWNiaTh2TDF4dUx5OHZJRVY0WVcxd2JHVnpPbHh1THk4dlhHNHZMeThnZFc1d1lXTnJMWFpoYkhWbEtEUndlQ2tnUFQ0Z05IQjRJRFJ3ZUNBMGNIZ2dOSEI0WEc0dkx5OGdkVzV3WVdOckxYWmhiSFZsS0RSd2VDQXljSGdwSUQwK0lEUndlQ0F5Y0hnZ05IQjRJREp3ZUZ4dUx5OHZJSFZ1Y0dGamF5MTJZV3gxWlNnMGNIZ2dNbkI0SURKd2VDa2dQVDRnTkhCNElESndlQ0F5Y0hnZ01uQjRYRzR2THk4Z2RXNXdZV05yTFhaaGJIVmxLRFJ3ZUNBeWNIZ2dNQ0F5Y0hncElEMCtJRFJ3ZUNBeWNIZ2dNQ0F5Y0hoY2JpOHZMMXh1THk4dklFQndZWEpoYlNCN1RuVnRZbVZ5SUh3Z1RXRndJSHdnVEdsemRIMGdKSFpoYkhWbElDMGdUR2x6ZENCdlppQXhJSFJ2SURRZ2RtRnNkV1VnYm5WdFltVnljeTVjYmk4dkx5QkFjbVYwZFhKdUlIdE1hWE4wZlNCaElFeHBjM1FnYjJZZ05DQjJZV3gxWlNCdWRXMWlaWEp6TGx4dVFHWjFibU4wYVc5dUlIVnVjR0ZqYXkxMllXeDFaU2drZG1Gc2RXVXBJSHRjYmlBZ1FHbG1JRzFsZEdFdWRIbHdaUzF2Wmlna2RtRnNkV1VwSUQwOUlDZHRZWEFuSUc5eUlHeHBjM1F1YkdWdVozUm9LQ1IyWVd4MVpTa2dQVDBnTVNCN1hHNGdJQ0FnUUhKbGRIVnliaUFrZG1Gc2RXVWdKSFpoYkhWbElDUjJZV3gxWlNBa2RtRnNkV1U3WEc0Z0lIMGdRR1ZzYzJVZ2FXWWdiR2x6ZEM1c1pXNW5kR2dvSkhaaGJIVmxLU0E5UFNBMElIdGNiaUFnSUNCQWNtVjBkWEp1SUNSMllXeDFaVHRjYmlBZ2ZTQkFaV3h6WlNCcFppQnNhWE4wTG14bGJtZDBhQ2drZG1Gc2RXVXBJRDA5SURNZ2UxeHVJQ0FnSUVCeVpYUjFjbTRnYkdsemRDNXVkR2dvSkhaaGJIVmxMQ0F4S1NCc2FYTjBMbTUwYUNna2RtRnNkV1VzSURJcElHeHBjM1F1Ym5Sb0tDUjJZV3gxWlN3Z015bGNiaUFnSUNBZ0lHeHBjM1F1Ym5Sb0tDUjJZV3gxWlN3Z01pazdYRzRnSUgwZ1FHVnNjMlVnYVdZZ2JHbHpkQzVzWlc1bmRHZ29KSFpoYkhWbEtTQTlQU0F5SUh0Y2JpQWdJQ0JBY21WMGRYSnVJR3hwYzNRdWJuUm9LQ1IyWVd4MVpTd2dNU2tnYkdsemRDNXVkR2dvSkhaaGJIVmxMQ0F5S1NCc2FYTjBMbTUwYUNna2RtRnNkV1VzSURFcFhHNGdJQ0FnSUNCc2FYTjBMbTUwYUNna2RtRnNkV1VzSURJcE8xeHVJQ0I5WEc1Y2JpQWdRR1Z5Y205eUlGd2lTVzUyWVd4cFpDQkRVMU1nY0hKdmNHVnlkSGtnZG1Gc2RXVTZJQ2NqZXlSMllXeDFaWDBuSUdseklHMXZjbVVnZEdoaGJpQTBJSFpoYkhWbGMxd2lPMXh1ZlZ4dUlsMTkgKi8iXSwic291cmNlUm9vdCI6IiJ9 */\"]\n });\n}\nvar Target;\n(function (Target) {\n Target[Target[\"Module\"] = 0] = \"Module\";\n Target[Target[\"Group\"] = 1] = \"Group\";\n})(Target || (Target = {}));","map":{"version":3,"names":["GuiRowSelectionMode","GuiRowSelectionType","UserAssignmentComponent","constructor","initWithoutData","userInLabel","tabItems","routerLink","title","activeTabTitle","activeIndex","userRowSelection","enabled","type","CHECKBOX","mode","MULTIPLE","target","Target","Module","targetId","dragging","dragAssigned","createAssignDragMethod","dragUnassigned","modulesOnSelectedRows","rows","length","modules","safelyUnselectAll","source","name","guid","updateUserTables","groupsOnSelectedRows","groups","Group","unassignedUsersOnSelectedRows","assignedUsersOnSelectedRows","ngOnInit","ngAfterViewInit","unassignedUsers","loading","assignedUsers","event","dataTransfer","setData","allowDropOnAssigned","preventDefault","allowDropOnUnassigned","dropToAssigned","getData","selectedRows","users","Array","row","push","unselectUserTables","createModuleOfUsers","then","createGroupOfUsers","dropToUnassigned","deleteModuleOfUsers","deleteGroupOfUsers","fetchDataByModuleId","fetchDataByGroupId","_","_2","selectors","viewQuery","UserAssignmentComponent_Query","rf","ctx","i0","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","UserAssignmentComponent_Template_app_user_table_drop_13_listener","$event","ɵɵrestoreView","_r1","ɵɵresetView","UserAssignmentComponent_Template_app_user_table_dragover_13_listener","UserAssignmentComponent_Template_app_user_table_dragstart_13_listener","UserAssignmentComponent_Template_app_user_table_drop_18_listener","UserAssignmentComponent_Template_app_user_table_dragover_18_listener","UserAssignmentComponent_Template_app_user_table_dragstart_18_listener","ɵɵadvance","ɵɵproperty","ɵɵpropertyInterpolate"],"sources":["E:\\TekH\\Visual Studio\\WebUserManager\\DigitalData.UserManager.NgWebUI\\ClientApp\\src\\app\\components\\user-assignment\\user-assignment.component.ts","E:\\TekH\\Visual Studio\\WebUserManager\\DigitalData.UserManager.NgWebUI\\ClientApp\\src\\app\\components\\user-assignment\\user-assignment.component.html"],"sourcesContent":["import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { TabItem } from '../common/tab-card/tab-card.component';\r\nimport { GuiRowSelection, GuiRowSelectionMode, GuiRowSelectionType, GuiSelectedRow } from '@generic-ui/ngx-grid';\r\nimport { UserTableComponent } from '../tables/user-table/user-table.component';\r\nimport { ModuleTableComponent } from '../tables/module-table/module-table.component';\r\nimport { GroupTableComponent } from '../tables/group-table/group-table.component';\r\nimport { User } from '../../models/user-management.api.models';\r\n\r\n@Component({\r\n selector: 'app-user-assignment',\r\n templateUrl: './user-assignment.component.html',\r\n styleUrl: './user-assignment.component.scss'\r\n})\r\nexport class UserAssignmentComponent implements OnInit, AfterViewInit {\r\n\r\n initWithoutData = () => {}\r\n\r\n userInLabel: string = \"Benutzer in\"\r\n\r\n tabItems: TabItem[] = [\r\n {\r\n routerLink: '/module-user',\r\n title: 'Modules'\r\n },\r\n {\r\n routerLink: '/group-user',\r\n title: 'Groups'\r\n }\r\n ]\r\n \r\n @Input() activeTabTitle: string | null = null;\r\n @Input() activeIndex: number = 0;\r\n @ViewChild(\"unassignedUsers\") unassignedUsers!: UserTableComponent;\r\n @ViewChild(\"assignedUsers\") assignedUsers!: UserTableComponent;\r\n @ViewChild(\"modules\") modules!: ModuleTableComponent;\r\n @ViewChild(\"groups\") groups!: GroupTableComponent;\r\n\r\n userRowSelection: GuiRowSelection = {\r\n enabled: true,\r\n type: GuiRowSelectionType.CHECKBOX,\r\n mode: GuiRowSelectionMode.MULTIPLE\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {\r\n this.unassignedUsers.loading = false;\r\n this.assignedUsers.loading = false; \r\n }\r\n\r\n createAssignDragMethod(target: string): (event: DragEvent) => void {\r\n return (event: DragEvent) => {\r\n this.dragging = target;\r\n event.dataTransfer?.setData(\"text\", target);\r\n }\r\n }\r\n\r\n target: Target = Target.Module;\r\n targetId = 0;\r\n\r\n dragging: string = \"\";\r\n\r\n dragAssigned = this.createAssignDragMethod(\"assigned\")\r\n dragUnassigned = this.createAssignDragMethod(\"unassigned\")\r\n\r\n allowDropOnAssigned(event: DragEvent) {\r\n if (this.dragging == \"unassigned\")\r\n event.preventDefault();\r\n }\r\n\r\n allowDropOnUnassigned(event: DragEvent) {\r\n if (this.dragging == \"assigned\")\r\n event.preventDefault();\r\n }\r\n\r\n dropToAssigned(event: DragEvent) {\r\n if (event.dataTransfer?.getData(\"text\") == \"unassigned\") {\r\n var rows = this.unassignedUsers.selectedRows;\r\n var users: User[] = new Array();\r\n if (!rows)\r\n return\r\n\r\n for (var row of rows)\r\n users.push(row.source);\r\n\r\n this.unselectUserTables()\r\n switch (this.target) {\r\n case Target.Module:\r\n this.unassignedUsers.createModuleOfUsers(this.targetId, users)\r\n .then(() => this.updateUserTables())\r\n break;\r\n case Target.Group:\r\n this.unassignedUsers.createGroupOfUsers(this.targetId, users)\r\n .then(() => this.updateUserTables())\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dropToUnassigned(event: DragEvent) {\r\n if (event.dataTransfer?.getData(\"text\") == \"assigned\") {\r\n var rows = this.assignedUsers.selectedRows;\r\n var users: User[] = new Array();\r\n if (!rows)\r\n return\r\n\r\n for (var row of rows)\r\n users.push(row.source);\r\n\r\n this.unselectUserTables()\r\n switch (this.target) {\r\n case Target.Module:\r\n this.unassignedUsers.deleteModuleOfUsers(this.targetId, users)\r\n .then(() => this.updateUserTables())\r\n break;\r\n case Target.Group:\r\n this.unassignedUsers.deleteGroupOfUsers(this.targetId, users)\r\n .then(() => this.updateUserTables())\r\n break;\r\n }\r\n }\r\n }\r\n\r\n unselectUserTables() {\r\n this.assignedUsers.safelyUnselectAll()\r\n this.unassignedUsers.safelyUnselectAll()\r\n }\r\n\r\n updateUserTables() {\r\n this.unselectUserTables()\r\n\r\n switch (this.target) {\r\n case Target.Module:\r\n this.assignedUsers.fetchDataByModuleId(this.targetId);\r\n this.unassignedUsers.fetchDataByModuleId(this.targetId, false);\r\n break;\r\n case Target.Group:\r\n this.assignedUsers.fetchDataByGroupId(this.targetId);\r\n this.unassignedUsers.fetchDataByGroupId(this.targetId, false);\r\n break;\r\n }\r\n }\r\n\r\n modulesOnSelectedRows = (rows: GuiSelectedRow[]) => {\r\n if (rows.length > 0) {\r\n this.modules.safelyUnselectAll();\r\n this.userInLabel = `Benutzer in Module ${rows[0].source?.name}`\r\n this.target = Target.Module;\r\n this.targetId = rows[0].source.guid;\r\n this.updateUserTables();\r\n }\r\n }\r\n\r\n groupsOnSelectedRows = (rows: GuiSelectedRow[]) => {\r\n if (rows.length > 0) {\r\n this.groups.safelyUnselectAll();\r\n this.userInLabel = `Benutzer in Gruppe ${rows[0].source?.name}`\r\n this.target = Target.Group;\r\n this.targetId = rows[0].source.guid;\r\n this.updateUserTables();\r\n }\r\n }\r\n\r\n unassignedUsersOnSelectedRows = (rows: GuiSelectedRow[]) => {\r\n }\r\n\r\n assignedUsersOnSelectedRows = (rows: GuiSelectedRow[]) => {\r\n }\r\n}\r\n\r\nenum Target {\r\n Module,\r\n Group\r\n}","
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
"],"mappings":"AAEA,SAA0BA,mBAAmB,EAAEC,mBAAmB,QAAwB,sBAAsB;;;;;;;;;;AAWhH,OAAM,MAAOC,uBAAuB;EALpCC,YAAA;IAOE,KAAAC,eAAe,GAAG,MAAK,CAAE,CAAC;IAE1B,KAAAC,WAAW,GAAW,aAAa;IAEnC,KAAAC,QAAQ,GAAc,CACpB;MACEC,UAAU,EAAE,cAAc;MAC1BC,KAAK,EAAE;KACR,EACD;MACED,UAAU,EAAE,aAAa;MACzBC,KAAK,EAAE;KACR,CACF;IAEQ,KAAAC,cAAc,GAAkB,IAAI;IACpC,KAAAC,WAAW,GAAW,CAAC;IAMhC,KAAAC,gBAAgB,GAAoB;MAClCC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAEZ,mBAAmB,CAACa,QAAQ;MAClCC,IAAI,EAAEf,mBAAmB,CAACgB;KAC3B;IAgBD,KAAAC,MAAM,GAAWC,MAAM,CAACC,MAAM;IAC9B,KAAAC,QAAQ,GAAG,CAAC;IAEZ,KAAAC,QAAQ,GAAW,EAAE;IAErB,KAAAC,YAAY,GAAG,IAAI,CAACC,sBAAsB,CAAC,UAAU,CAAC;IACtD,KAAAC,cAAc,GAAG,IAAI,CAACD,sBAAsB,CAAC,YAAY,CAAC;IAgF1D,KAAAE,qBAAqB,GAAIC,IAAsB,IAAI;MACjD,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;QACnB,IAAI,CAACC,OAAO,CAACC,iBAAiB,EAAE;QAChC,IAAI,CAACxB,WAAW,GAAG,sBAAsBqB,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,EAAEC,IAAI,EAAE;QAC/D,IAAI,CAACd,MAAM,GAAGC,MAAM,CAACC,MAAM;QAC3B,IAAI,CAACC,QAAQ,GAAGM,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACE,IAAI;QACnC,IAAI,CAACC,gBAAgB,EAAE;;IAE3B,CAAC;IAED,KAAAC,oBAAoB,GAAIR,IAAsB,IAAI;MAChD,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;QACnB,IAAI,CAACQ,MAAM,CAACN,iBAAiB,EAAE;QAC/B,IAAI,CAACxB,WAAW,GAAG,sBAAsBqB,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,EAAEC,IAAI,EAAE;QAC/D,IAAI,CAACd,MAAM,GAAGC,MAAM,CAACkB,KAAK;QAC1B,IAAI,CAAChB,QAAQ,GAAGM,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACE,IAAI;QACnC,IAAI,CAACC,gBAAgB,EAAE;;IAE3B,CAAC;IAED,KAAAI,6BAA6B,GAAIX,IAAsB,IAAI,CAC3D,CAAC;IAED,KAAAY,2BAA2B,GAAIZ,IAAsB,IAAI,CACzD,CAAC;;EA5HDa,QAAQA,CAAA,GAAU;EAElBC,eAAeA,CAAA;IACb,IAAI,CAACC,eAAe,CAACC,OAAO,GAAG,KAAK;IACpC,IAAI,CAACC,aAAa,CAACD,OAAO,GAAG,KAAK;EACpC;EAEAnB,sBAAsBA,CAACN,MAAc;IACnC,OAAQ2B,KAAgB,IAAI;MAC1B,IAAI,CAACvB,QAAQ,GAAGJ,MAAM;MACtB2B,KAAK,CAACC,YAAY,EAAEC,OAAO,CAAC,MAAM,EAAE7B,MAAM,CAAC;IAC7C,CAAC;EACH;EAUA8B,mBAAmBA,CAACH,KAAgB;IAClC,IAAI,IAAI,CAACvB,QAAQ,IAAI,YAAY,EAC/BuB,KAAK,CAACI,cAAc,EAAE;EAC1B;EAEAC,qBAAqBA,CAACL,KAAgB;IACpC,IAAI,IAAI,CAACvB,QAAQ,IAAI,UAAU,EAC7BuB,KAAK,CAACI,cAAc,EAAE;EAC1B;EAEAE,cAAcA,CAACN,KAAgB;IAC7B,IAAIA,KAAK,CAACC,YAAY,EAAEM,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE;MACvD,IAAIzB,IAAI,GAAG,IAAI,CAACe,eAAe,CAACW,YAAY;MAC5C,IAAIC,KAAK,GAAW,IAAIC,KAAK,EAAQ;MACrC,IAAI,CAAC5B,IAAI,EACP;MAEF,KAAK,IAAI6B,GAAG,IAAI7B,IAAI,EAClB2B,KAAK,CAACG,IAAI,CAACD,GAAG,CAACzB,MAAM,CAAC;MAExB,IAAI,CAAC2B,kBAAkB,EAAE;MACzB,QAAQ,IAAI,CAACxC,MAAM;QACjB,KAAKC,MAAM,CAACC,MAAM;UAChB,IAAI,CAACsB,eAAe,CAACiB,mBAAmB,CAAC,IAAI,CAACtC,QAAQ,EAAEiC,KAAK,CAAC,CAC3DM,IAAI,CAAC,MAAM,IAAI,CAAC1B,gBAAgB,EAAE,CAAC;UACtC;QACF,KAAKf,MAAM,CAACkB,KAAK;UACf,IAAI,CAACK,eAAe,CAACmB,kBAAkB,CAAC,IAAI,CAACxC,QAAQ,EAAEiC,KAAK,CAAC,CAC1DM,IAAI,CAAC,MAAM,IAAI,CAAC1B,gBAAgB,EAAE,CAAC;UACtC;;;EAGR;EAEA4B,gBAAgBA,CAACjB,KAAgB;IAC/B,IAAIA,KAAK,CAACC,YAAY,EAAEM,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE;MACrD,IAAIzB,IAAI,GAAG,IAAI,CAACiB,aAAa,CAACS,YAAY;MAC1C,IAAIC,KAAK,GAAW,IAAIC,KAAK,EAAQ;MACrC,IAAI,CAAC5B,IAAI,EACP;MAEF,KAAK,IAAI6B,GAAG,IAAI7B,IAAI,EAClB2B,KAAK,CAACG,IAAI,CAACD,GAAG,CAACzB,MAAM,CAAC;MAExB,IAAI,CAAC2B,kBAAkB,EAAE;MACzB,QAAQ,IAAI,CAACxC,MAAM;QACjB,KAAKC,MAAM,CAACC,MAAM;UAChB,IAAI,CAACsB,eAAe,CAACqB,mBAAmB,CAAC,IAAI,CAAC1C,QAAQ,EAAEiC,KAAK,CAAC,CAC3DM,IAAI,CAAC,MAAM,IAAI,CAAC1B,gBAAgB,EAAE,CAAC;UACtC;QACF,KAAKf,MAAM,CAACkB,KAAK;UACf,IAAI,CAACK,eAAe,CAACsB,kBAAkB,CAAC,IAAI,CAAC3C,QAAQ,EAAEiC,KAAK,CAAC,CAC1DM,IAAI,CAAC,MAAM,IAAI,CAAC1B,gBAAgB,EAAE,CAAC;UACtC;;;EAGR;EAEAwB,kBAAkBA,CAAA;IAChB,IAAI,CAACd,aAAa,CAACd,iBAAiB,EAAE;IACtC,IAAI,CAACY,eAAe,CAACZ,iBAAiB,EAAE;EAC1C;EAEAI,gBAAgBA,CAAA;IACd,IAAI,CAACwB,kBAAkB,EAAE;IAEzB,QAAQ,IAAI,CAACxC,MAAM;MACjB,KAAKC,MAAM,CAACC,MAAM;QAChB,IAAI,CAACwB,aAAa,CAACqB,mBAAmB,CAAC,IAAI,CAAC5C,QAAQ,CAAC;QACrD,IAAI,CAACqB,eAAe,CAACuB,mBAAmB,CAAC,IAAI,CAAC5C,QAAQ,EAAE,KAAK,CAAC;QAC9D;MACF,KAAKF,MAAM,CAACkB,KAAK;QACf,IAAI,CAACO,aAAa,CAACsB,kBAAkB,CAAC,IAAI,CAAC7C,QAAQ,CAAC;QACpD,IAAI,CAACqB,eAAe,CAACwB,kBAAkB,CAAC,IAAI,CAAC7C,QAAQ,EAAE,KAAK,CAAC;QAC7D;;EAEN;EAAC,QAAA8C,CAAA,G;qBAhIUhE,uBAAuB;EAAA;EAAA,QAAAiE,EAAA,G;UAAvBjE,uBAAuB;IAAAkE,SAAA;IAAAC,SAAA,WAAAC,8BAAAC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;;;;;;;;;;;;;;;;;;;;;;;;QCP5BE,EANR,CAAAC,cAAA,aAAyC,aAEd,aAEJ,oBACF,iBACU;QACrBD,EAAA,CAAAE,SAAA,6BAA6G;QAC/GF,EAAA,CAAAG,YAAA,EAAU;QACVH,EAAA,CAAAC,cAAA,iBAAyB;QACvBD,EAAA,CAAAE,SAAA,4BAAyG;QAG/GF,EAFI,CAAAG,YAAA,EAAU,EACI,EACZ;QAKAH,EAHN,CAAAC,cAAA,eAA6B,qBACZ,mBAC+B,6BAIQ;QADLD,EADT,CAAAI,UAAA,kBAAAC,iEAAAC,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CAAQV,GAAA,CAAAX,gBAAA,CAAAkB,MAAA,CAAwB;QAAA,EAAC,sBAAAI,qEAAAJ,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CACvDV,GAAA,CAAAvB,qBAAA,CAAA8B,MAAA,CAA6B;QAAA,EAAC,uBAAAK,sEAAAL,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CAAcV,GAAA,CAAAhD,cAAA,CAAAuD,MAAA,CAAsB;QAAA,EAAC;QAKvFN,EAJwD,CAAAG,YAAA,EAAiB,EAE3D,EACI,EACZ;QAKAH,EAHN,CAAAC,cAAA,eAAmB,qBACF,mBACoB,6BAGsD;QAAnFD,EADkC,CAAAI,UAAA,kBAAAQ,iEAAAN,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CAAQV,GAAA,CAAAtB,cAAA,CAAA6B,MAAA,CAAsB;QAAA,EAAC,sBAAAO,qEAAAP,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CAAaV,GAAA,CAAAzB,mBAAA,CAAAgC,MAAA,CAA2B;QAAA,EAAC,uBAAAQ,sEAAAR,MAAA;UAAAN,EAAA,CAAAO,aAAA,CAAAC,GAAA;UAAA,OAAAR,EAAA,CAAAS,WAAA,CAC7FV,GAAA,CAAAlD,YAAA,CAAAyD,MAAA,CAAoB;QAAA,EAAC;QAM9CN,EAN+F,CAAAG,YAAA,EAAiB,EAC9F,EACI,EAEZ,EACF,EACF;;;QA/BqDH,EAAA,CAAAe,SAAA,GAAwC;QAAxCf,EAAA,CAAAgB,UAAA,mBAAAjB,GAAA,CAAA/C,qBAAA,CAAwC;QAG1CgD,EAAA,CAAAe,SAAA,GAAuC;QAAvCf,EAAA,CAAAgB,UAAA,mBAAAjB,GAAA,CAAAtC,oBAAA,CAAuC;QAQhCuC,EAAA,CAAAe,SAAA,GAAgD;QAGjFf,EAHiC,CAAAgB,UAAA,mBAAAjB,GAAA,CAAAnC,6BAAA,CAAgD,iBAAAmC,GAAA,CAAA7D,gBAAA,CACnE,mBAEf,aAAA6D,GAAA,CAAApE,eAAA,CAA6B;QAQ1CqE,EAAA,CAAAe,SAAA,GAAuB;QAAvBf,EAAA,CAAAiB,qBAAA,UAAAlB,GAAA,CAAAnE,WAAA,CAAuB;QACsBoE,EAAA,CAAAe,SAAA,EAA8C;QAE1Cf,EAFJ,CAAAgB,UAAA,mBAAAjB,GAAA,CAAAlC,2BAAA,CAA8C,iBAAAkC,GAAA,CAAA7D,gBAAA,CAC/D,mBACoB,aAAA6D,GAAA,CAAApE,eAAA,CAA6B;;;;;;;AD0I9F,IAAKc,MAGJ;AAHD,WAAKA,MAAM;EACTA,MAAA,CAAAA,MAAA,0BAAM;EACNA,MAAA,CAAAA,MAAA,wBAAK;AACP,CAAC,EAHIA,MAAM,KAANA,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}