{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "lGa0_oLb61zz" }, "source": [ "# Classification of a single digit\n", "In this series of tutorial, we are going to build an SNN capable of classifying MNIST by copying the weights obtained by training the following simple ANN using TensorFlow:\n", "\n", "![Using GeNN for spike-based machine learning.svg](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMCAoNDAzNWE0ZmI0OSwgMjAyMC0wNS0wMSkiCiAgIGhlaWdodD0iNjAwIgogICB3aWR0aD0iNjAwIgogICBzb2RpcG9kaTpkb2NuYW1lPSJVc2luZyBHZU5OIGZvciBzcGlrZS1iYXNlZCBtYWNoaW5lIGxlYXJuaW5nLnN2ZyIKICAgaWQ9InN2ZzMyOCIKICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICBzdHJva2UtbGluZWNhcD0ic3F1YXJlIgogICBzdHJva2U9Im5vbmUiCiAgIGZpbGw9Im5vbmUiCiAgIHZpZXdCb3g9IjAgMCA2MDAgNjAwIgogICB2ZXJzaW9uPSIxLjEiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTMzNCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczMzMiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMzI4IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTpjeT0iMzIzLjUzMzEiCiAgICAgaW5rc2NhcGU6Y3g9IjQ3NC43MzAyIgogICAgIGlua3NjYXBlOnpvb209IjEuMDkyNzA4MyIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaWQ9Im5hbWVkdmlldzMzMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDE3IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEwIgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAvPgogIDxjbGlwUGF0aAogICAgIGlkPSJnNWZkOGVjYjk2OV8wXzM2Ny4wIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIiCiAgICAgICBjbGlwLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJNIDAsMCBIIDk2MCBWIDcyMCBIIDAgWiIgLz4KICA8L2NsaXBQYXRoPgogIDxnCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjY5Nzk5MiwtMy40MTgzOTg3KSIKICAgICBpZD0iZzMyNiIKICAgICBjbGlwLXBhdGg9InVybCgjZzVmZDhlY2I5NjlfMF8zNjcuMCkiPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIuNzI0NDEsNjIuMjk1NzEgaCA4OTQuNTUxMTUgdiA4MC4xNTc0NyBIIDMyLjcyNDQxIFoiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDUwOC41MDY1NiwxNjEuMzI1NDUgSCA5MzIuNzkwMDQgViA2MzkuNTYxNzIgSCA1MDguNTA2NTYgWiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyOSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMTk4Ljk4NDI1LDQxMC40NDI4NCB2IDAgYyAwLC0xNC40NzI0MiAxMS43MzIyNiwtMjYuMjA0NzIgMjYuMjA0NzMsLTI2LjIwNDcyIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUxOSwyLjc2MDg3IDE4LjUyOTU0LDcuNjc1MjQgNC45MTQzNCw0LjkxNDMgNy42NzUxOSwxMS41Nzk1OSA3LjY3NTE5LDE4LjUyOTQ4IHYgMCBjIDAsMTQuNDcyNDcgLTExLjczMjI2LDI2LjIwNDc3IC0yNi4yMDQ3MywyNi4yMDQ3NyB2IDAgYyAtMTQuNDcyNDcsMCAtMjYuMjA0NzMsLTExLjczMjMgLTI2LjIwNDczLC0yNi4yMDQ3NyB6IgogICAgICAgZmlsbD0iI2Y0Y2NjYyIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAxOTguOTg0MjUsNDEwLjQ0Mjg0IHYgMCBjIDAsLTE0LjQ3MjQyIDExLjczMjI2LC0yNi4yMDQ3MiAyNi4yMDQ3MywtMjYuMjA0NzIgdiAwIGMgNi45NDk5MiwwIDEzLjYxNTE5LDIuNzYwODcgMTguNTI5NTQsNy42NzUyNCA0LjkxNDM0LDQuOTE0MyA3LjY3NTE5LDExLjU3OTU5IDcuNjc1MTksMTguNTI5NDggdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjYsMjYuMjA0NzcgLTI2LjIwNDczLDI2LjIwNDc3IHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3MywtMTEuNzMyMyAtMjYuMjA0NzMsLTI2LjIwNDc3IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMyIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMjEwLjUxNjAyLDQwNS43NTM1NCB2IC0xLjU3ODEzIGggOC42NDA2MyB2IDEuMjgxMjUgcSAtMS4yODEyNSwxLjM1OTM4IC0yLjUzMTI1LDMuNjA5MzggLTEuMjUsMi4yNSAtMS45Mzc1LDQuNjI1IC0wLjQ4NDM4LDEuNjcxODcgLTAuNjI1LDMuNjcxODcgaCAtMS42ODc1IHEgMC4wMzEyLC0xLjU3ODEyIDAuNjI1LC0zLjgxMjUgMC41OTM3NSwtMi4yMzQzNyAxLjY4NzUsLTQuMjk2ODcgMS4xMDkzNywtMi4wNzgxMyAyLjM1OTM3LC0zLjUgeiBtIDEyLjc4MTk3LDQuMzc1IHEgLTEuMDE1NjMsLTAuMzc1IC0xLjUxNTYzLC0xLjA2MjUgLTAuNDg0MzcsLTAuNzAzMTMgLTAuNDg0MzcsLTEuNjcxODggMCwtMS40NTMxMiAxLjA0Njg3LC0yLjQzNzUgMS4wNDY4OCwtMSAyLjc4MTI1LC0xIDEuNzUsMCAyLjgxMjUsMS4wMTU2MyAxLjA3ODEzLDEuMDE1NjIgMS4wNzgxMywyLjQ2ODc1IDAsMC45Mzc1IC0wLjUsMS42MjUgLTAuNDg0MzgsMC42ODc1IC0xLjQ2ODc1LDEuMDYyNSAxLjIxODc1LDAuMzkwNjIgMS44NTkzNywxLjI4MTI1IDAuNjU2MjUsMC44OTA2MiAwLjY1NjI1LDIuMTQwNjIgMCwxLjcwMzEzIC0xLjIxODc1LDIuODc1IC0xLjIxODc1LDEuMTcxODggLTMuMTg3NSwxLjE3MTg4IC0xLjk4NDM3LDAgLTMuMjAzMTIsLTEuMTcxODggLTEuMjAzMTMsLTEuMTcxODcgLTEuMjAzMTMsLTIuOTIxODcgMCwtMS4zMTI1IDAuNjU2MjUsLTIuMTg3NSAwLjY3MTg4LC0wLjg3NSAxLjg5MDYzLC0xLjE4NzUgeiBtIC0wLjMyODEzLC0yLjc4MTI1IHEgMCwwLjkzNzUgMC42MDkzOCwxLjU0Njg3IDAuNjA5MzcsMC41OTM3NSAxLjU5Mzc1LDAuNTkzNzUgMC45Mzc1LDAgMS41NDY4NywtMC41OTM3NSAwLjYwOTM4LC0wLjU5Mzc1IDAuNjA5MzgsLTEuNDUzMTIgMCwtMC45MDYyNSAtMC42MjUsLTEuNTE1NjMgLTAuNjI1LC0wLjYyNSAtMS41NjI1LC0wLjYyNSAtMC45Mzc1LDAgLTEuNTYyNSwwLjYwOTM4IC0wLjYwOTM4LDAuNTkzNzUgLTAuNjA5MzgsMS40Mzc1IHogbSAtMC41MzEyNSw2LjE1NjI1IHEgMCwwLjcwMzEyIDAuMzI4MTMsMS4zNTkzNyAwLjM0Mzc1LDAuNjU2MjUgMSwxLjAxNTYzIDAuNjU2MjUsMC4zNTkzNyAxLjQwNjI1LDAuMzU5MzcgMS4xNzE4NywwIDEuOTM3NSwtMC43NSAwLjc2NTYyLC0wLjc1IDAuNzY1NjIsLTEuOTIxODcgMCwtMS4xODc1IC0wLjc5Njg3LC0xLjk1MzEzIC0wLjc4MTI1LC0wLjc4MTI1IC0xLjk1MzEzLC0wLjc4MTI1IC0xLjE1NjI1LDAgLTEuOTIxODcsMC43NjU2MyAtMC43NjU2MywwLjc2NTYyIC0wLjc2NTYzLDEuOTA2MjUgeiBtIDE3LjMyODg1LDIuMjgxMjUgdiAxLjU3ODEyIGggLTguODI4MTMgcSAtMC4wMTU2LC0wLjU5Mzc1IDAuMTg3NSwtMS4xNDA2MiAwLjM0Mzc1LC0wLjkwNjI1IDEuMDc4MTMsLTEuNzgxMjUgMC43NSwtMC44NzUgMi4xNTYyNSwtMi4wMTU2MyAyLjE3MTg3LC0xLjc4MTI1IDIuOTM3NSwtMi44MjgxMiAwLjc2NTYyLC0xLjA0Njg4IDAuNzY1NjIsLTEuOTY4NzUgMCwtMC45ODQzOCAtMC43MDMxMiwtMS42NDA2MyAtMC42ODc1LC0wLjY3MTg3IC0xLjgxMjUsLTAuNjcxODcgLTEuMTg3NSwwIC0xLjkwNjI1LDAuNzE4NzUgLTAuNzAzMTMsMC43MDMxMiAtMC43MDMxMywxLjk1MzEyIGwgLTEuNjg3NSwtMC4xNzE4NyBxIDAuMTcxODgsLTEuODkwNjMgMS4yOTY4OCwtMi44NzUgMS4xNDA2MiwtMC45ODQzOCAzLjAzMTI1LC0wLjk4NDM4IDEuOTIxODcsMCAzLjA0Njg3LDEuMDYyNSAxLjEyNSwxLjA2MjUgMS4xMjUsMi42NDA2MyAwLDAuNzk2ODcgLTAuMzI4MTIsMS41NzgxMiAtMC4zMjgxMywwLjc4MTI1IC0xLjA5Mzc1LDEuNjQwNjMgLTAuNzUsMC44NDM3NSAtMi41MzEyNSwyLjM0Mzc1IC0xLjQ2ODc1LDEuMjM0MzcgLTEuODkwNjMsMS42ODc1IC0wLjQyMTg3LDAuNDM3NSAtMC42ODc1LDAuODc1IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDE5OC45ODQyNSw0NzMuMzM3ODcgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjYsLTI2LjIwNDcyIDI2LjIwNDczLC0yNi4yMDQ3MiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTksMi43NjA4NyAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNyA3LjY3NTE5LDExLjU3OTY2IDcuNjc1MTksMTguNTI5NTUgdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjYsMjYuMjA0NzcgLTI2LjIwNDczLDI2LjIwNDc3IHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3MywtMTEuNzMyMyAtMjYuMjA0NzMsLTI2LjIwNDc3IHoiCiAgICAgICBmaWxsPSIjZjRjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDE5OC45ODQyNSw0NzMuMzM3ODcgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjYsLTI2LjIwNDcyIDI2LjIwNDczLC0yNi4yMDQ3MiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTksMi43NjA4NyAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNyA3LjY3NTE5LDExLjU3OTY2IDcuNjc1MTksMTguNTI5NTUgdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjYsMjYuMjA0NzcgLTI2LjIwNDczLDI2LjIwNDc3IHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3MywtMTEuNzMyMyAtMjYuMjA0NzMsLTI2LjIwNDc3IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzOSIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMjEwLjUxNjAyLDQ2OC42NDg1NCB2IC0xLjU3ODEzIGggOC42NDA2MyB2IDEuMjgxMjUgcSAtMS4yODEyNSwxLjM1OTM4IC0yLjUzMTI1LDMuNjA5MzggLTEuMjUsMi4yNSAtMS45Mzc1LDQuNjI1IC0wLjQ4NDM4LDEuNjcxODcgLTAuNjI1LDMuNjcxODcgaCAtMS42ODc1IHEgMC4wMzEyLC0xLjU3ODEyIDAuNjI1LC0zLjgxMjUgMC41OTM3NSwtMi4yMzQzNyAxLjY4NzUsLTQuMjk2ODcgMS4xMDkzNywtMi4wNzgxMyAyLjM1OTM3LC0zLjUgeiBtIDEyLjc4MTk3LDQuMzc1IHEgLTEuMDE1NjMsLTAuMzc1IC0xLjUxNTYzLC0xLjA2MjUgLTAuNDg0MzcsLTAuNzAzMTMgLTAuNDg0MzcsLTEuNjcxODggMCwtMS40NTMxMiAxLjA0Njg3LC0yLjQzNzUgMS4wNDY4OCwtMSAyLjc4MTI1LC0xIDEuNzUsMCAyLjgxMjUsMS4wMTU2MyAxLjA3ODEzLDEuMDE1NjIgMS4wNzgxMywyLjQ2ODc1IDAsMC45Mzc1IC0wLjUsMS42MjUgLTAuNDg0MzgsMC42ODc1IC0xLjQ2ODc1LDEuMDYyNSAxLjIxODc1LDAuMzkwNjIgMS44NTkzNywxLjI4MTI1IDAuNjU2MjUsMC44OTA2MiAwLjY1NjI1LDIuMTQwNjIgMCwxLjcwMzEzIC0xLjIxODc1LDIuODc1IC0xLjIxODc1LDEuMTcxODggLTMuMTg3NSwxLjE3MTg4IC0xLjk4NDM3LDAgLTMuMjAzMTIsLTEuMTcxODggLTEuMjAzMTMsLTEuMTcxODcgLTEuMjAzMTMsLTIuOTIxODcgMCwtMS4zMTI1IDAuNjU2MjUsLTIuMTg3NSAwLjY3MTg4LC0wLjg3NSAxLjg5MDYzLC0xLjE4NzUgeiBtIC0wLjMyODEzLC0yLjc4MTI1IHEgMCwwLjkzNzUgMC42MDkzOCwxLjU0Njg3IDAuNjA5MzcsMC41OTM3NSAxLjU5Mzc1LDAuNTkzNzUgMC45Mzc1LDAgMS41NDY4NywtMC41OTM3NSAwLjYwOTM4LC0wLjU5Mzc1IDAuNjA5MzgsLTEuNDUzMTIgMCwtMC45MDYyNSAtMC42MjUsLTEuNTE1NjMgLTAuNjI1LC0wLjYyNSAtMS41NjI1LC0wLjYyNSAtMC45Mzc1LDAgLTEuNTYyNSwwLjYwOTM4IC0wLjYwOTM4LDAuNTkzNzUgLTAuNjA5MzgsMS40Mzc1IHogbSAtMC41MzEyNSw2LjE1NjI1IHEgMCwwLjcwMzEyIDAuMzI4MTMsMS4zNTkzNyAwLjM0Mzc1LDAuNjU2MjUgMSwxLjAxNTYzIDAuNjU2MjUsMC4zNTkzNyAxLjQwNjI1LDAuMzU5MzcgMS4xNzE4NywwIDEuOTM3NSwtMC43NSAwLjc2NTYyLC0wLjc1IDAuNzY1NjIsLTEuOTIxODcgMCwtMS4xODc1IC0wLjc5Njg3LC0xLjk1MzEzIC0wLjc4MTI1LC0wLjc4MTI1IC0xLjk1MzEzLC0wLjc4MTI1IC0xLjE1NjI1LDAgLTEuOTIxODcsMC43NjU2MyAtMC43NjU2MywwLjc2NTYyIC0wLjc2NTYzLDEuOTA2MjUgeiBtIDE0Ljg5MTM1LDMuODU5MzcgaCAtMS42NDA2MyB2IC0xMC40NTMxMiBxIC0wLjU5Mzc1LDAuNTYyNSAtMS41NjI1LDEuMTQwNjIgLTAuOTUzMTIsMC41NjI1IC0xLjcxODc1LDAuODQzNzUgdiAtMS41OTM3NSBxIDEuMzc1LC0wLjY0MDYyIDIuNDA2MjUsLTEuNTYyNSAxLjAzMTI1LC0wLjkyMTg3IDEuNDUzMTMsLTEuNzgxMjUgaCAxLjA2MjUgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg0MSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMTk4Ljk4NDI1LDQ3LjUxMTExNSB2IDAgYyAwLC0xNC40NzI0NzMgMTEuNzMyMjYsLTI2LjIwNDcyOCAyNi4yMDQ3MywtMjYuMjA0NzI4IHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUxOSwyLjc2MDg0OSAxOC41Mjk1NCw3LjY3NTE4NyA0LjkxNDM0LDQuOTE0MzM3IDcuNjc1MTksMTEuNTc5NjIgNy42NzUxOSwxOC41Mjk1NDEgdiAwIGMgMCwxNC40NzI0NzMgLTExLjczMjI2LDI2LjIwNDcyNyAtMjYuMjA0NzMsMjYuMjA0NzI3IHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3MywtMTEuNzMyMjU0IC0yNi4yMDQ3MywtMjYuMjA0NzI3IHoiCiAgICAgICBmaWxsPSIjZjRjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNDMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDE5OC45ODQyNSw0Ny41MTExMTUgdiAwIGMgMCwtMTQuNDcyNDczIDExLjczMjI2LC0yNi4yMDQ3MjggMjYuMjA0NzMsLTI2LjIwNDcyOCB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTksMi43NjA4NDkgMTguNTI5NTQsNy42NzUxODcgNC45MTQzNCw0LjkxNDMzNyA3LjY3NTE5LDExLjU3OTYyIDcuNjc1MTksMTguNTI5NTQxIHYgMCBjIDAsMTQuNDcyNDczIC0xMS43MzIyNiwyNi4yMDQ3MjcgLTI2LjIwNDczLDI2LjIwNDcyNyB2IDAgYyAtMTQuNDcyNDcsMCAtMjYuMjA0NzMsLTExLjczMjI1NCAtMjYuMjA0NzMsLTI2LjIwNDcyNyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNDUiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDIyMC43ODIzNiw0Ny44MzczNjUgcSAwLC0yLjM1OTM3NSAwLjQ4NDM4LC0zLjc5Njg3NSAwLjQ4NDM3LC0xLjQ1MzEyNSAxLjQzNzUsLTIuMjM0Mzc1IDAuOTY4NzUsLTAuNzgxMjUgMi40MjE4NywtMC43ODEyNSAxLjA3ODEzLDAgMS44OTA2MywwLjQzNzUgMC44MTI1LDAuNDIxODc1IDEuMzI4MTIsMS4yNSAwLjUzMTI1LDAuODEyNSAwLjgyODEzLDEuOTg0Mzc1IDAuMzEyNSwxLjE1NjI1IDAuMzEyNSwzLjE0MDYyNSAwLDIuMzU5Mzc1IC0wLjQ4NDM4LDMuODEyNSAtMC40ODQzNywxLjQzNzUgLTEuNDUzMTIsMi4yMzQzNzUgLTAuOTUzMTMsMC43ODEyNSAtMi40MjE4OCwwLjc4MTI1IC0xLjkyMTg3LDAgLTMuMDMxMjUsLTEuMzkwNjI1IC0xLjMxMjUsLTEuNjcxODc1IC0xLjMxMjUsLTUuNDM3NSB6IG0gMS42NzE4OCwwIHEgMCwzLjI5Njg3NSAwLjc2NTYyLDQuMzkwNjI1IDAuNzgxMjUsMS4wNzgxMjUgMS45MDYyNSwxLjA3ODEyNSAxLjE0MDYzLDAgMS45MDYyNSwtMS4wOTM3NSAwLjc2NTYzLC0xLjA5Mzc1IDAuNzY1NjMsLTQuMzc1IDAsLTMuMjk2ODc1IC0wLjc2NTYzLC00LjM3NSAtMC43NjU2MiwtMS4wNzgxMjUgLTEuOTIxODcsLTEuMDc4MTI1IC0xLjEyNSwwIC0xLjc5Njg4LDAuOTUzMTI1IC0wLjg1OTM3LDEuMjE4NzUgLTAuODU5MzcsNC41IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNDciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDE5OC45ODQyNSwxMTEuMTY0NjYgdiAwIGMgMCwtMTQuNDcyNDY4IDExLjczMjI2LC0yNi4yMDQ3MjIgMjYuMjA0NzMsLTI2LjIwNDcyMiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTksMi43NjA4NDkgMTguNTI5NTQsNy42NzUxODYgNC45MTQzNCw0LjkxNDMzNyA3LjY3NTE5LDExLjU3OTYwNiA3LjY3NTE5LDE4LjUyOTUzNiB2IDAgYyAwLDE0LjQ3MjQ2IC0xMS43MzIyNiwyNi4yMDQ3MyAtMjYuMjA0NzMsMjYuMjA0NzMgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDczLC0xMS43MzIyNyAtMjYuMjA0NzMsLTI2LjIwNDczIHoiCiAgICAgICBmaWxsPSIjZjRjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNDkiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDE5OC45ODQyNSwxMTEuMTY0NjYgdiAwIGMgMCwtMTQuNDcyNDY4IDExLjczMjI2LC0yNi4yMDQ3MjIgMjYuMjA0NzMsLTI2LjIwNDcyMiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTksMi43NjA4NDkgMTguNTI5NTQsNy42NzUxODYgNC45MTQzNCw0LjkxNDMzNyA3LjY3NTE5LDExLjU3OTYwNiA3LjY3NTE5LDE4LjUyOTUzNiB2IDAgYyAwLDE0LjQ3MjQ2IC0xMS43MzIyNiwyNi4yMDQ3MyAtMjYuMjA0NzMsMjYuMjA0NzMgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDczLC0xMS43MzIyNyAtMjYuMjA0NzMsLTI2LjIwNDczIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg1MSIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMjI2Ljk1NDI0LDExOC4wODQ2NyBoIC0xLjY0MDYyIHYgLTEwLjQ1MzEzIHEgLTAuNTkzNzUsMC41NjI1IC0xLjU2MjUsMS4xNDA2MiAtMC45NTMxMywwLjU2MjUgLTEuNzE4NzUsMC44NDM3NSB2IC0xLjU5Mzc1IHEgMS4zNzUsLTAuNjQwNjIgMi40MDYyNSwtMS41NjI1IDEuMDMxMjUsLTAuOTIxODcgMS40NTMxMiwtMS43ODEyNSBoIDEuMDYyNSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDUzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuNjI0NjYsMzM5LjI3MjI5IHYgMCBjIDAsLTE0LjQ3MjQ4IDExLjczMjI3LC0yNi4yMDQ3NSAyNi4yMDQ3NCwtMjYuMjA0NzUgdiAwIGMgNi45NDk5MiwwIDEzLjYxNTIxLDIuNzYwODcgMTguNTI5NTQsNy42NzUyMSA0LjkxNDM0LDQuOTE0MzMgNy42NzUxOCwxMS41Nzk1OSA3LjY3NTE4LDE4LjUyOTU0IHYgMCBjIDAsMTQuNDcyNDQgLTExLjczMjI0LDI2LjIwNDcxIC0yNi4yMDQ3MiwyNi4yMDQ3MSB2IDAgYyAtMTQuNDcyNDcsMCAtMjYuMjA0NzQsLTExLjczMjI3IC0yNi4yMDQ3NCwtMjYuMjA0NzEgeiIKICAgICAgIGZpbGw9IiNkOWVhZDMiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg1NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzI2LjYyNDY2LDMzOS4yNzIyOSB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzUgMjYuMjA0NzQsLTI2LjIwNDc1IHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUyMSwyLjc2MDg3IDE4LjUyOTU0LDcuNjc1MjEgNC45MTQzNCw0LjkxNDMzIDcuNjc1MTgsMTEuNTc5NTkgNy42NzUxOCwxOC41Mjk1NCB2IDAgYyAwLDE0LjQ3MjQ0IC0xMS43MzIyNCwyNi4yMDQ3MSAtMjYuMjA0NzIsMjYuMjA0NzEgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNyAtMjYuMjA0NzQsLTI2LjIwNDcxIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg1NyIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMzQ0LjIxODkzLDM0Ni4xOTIyNyBoIC0xLjY0MDYyIHYgLTEwLjQ1MzEzIHEgLTAuNTkzNzUsMC41NjI1IC0xLjU2MjUsMS4xNDA2MyAtMC45NTMxMywwLjU2MjUgLTEuNzE4NzUsMC44NDM3NSB2IC0xLjU5Mzc1IHEgMS4zNzUsLTAuNjQwNjMgMi40MDYyNSwtMS41NjI1IDEuMDMxMjUsLTAuOTIxODggMS40NTMxMiwtMS43ODEyNSBoIDEuMDYyNSB6IG0gMTIuODEzMjMsLTEuNTc4MTMgdiAxLjU3ODEzIGggLTguODI4MTIgcSAtMC4wMTU2LC0wLjU5Mzc1IDAuMTg3NSwtMS4xNDA2MyAwLjM0Mzc1LC0wLjkwNjI1IDEuMDc4MTIsLTEuNzgxMjUgMC43NSwtMC44NzUgMi4xNTYyNSwtMi4wMTU2MiAyLjE3MTg4LC0xLjc4MTI1IDIuOTM3NSwtMi44MjgxMyAwLjc2NTYzLC0xLjA0Njg3IDAuNzY1NjMsLTEuOTY4NzUgMCwtMC45ODQzNyAtMC43MDMxMywtMS42NDA2MiAtMC42ODc1LC0wLjY3MTg4IC0xLjgxMjUsLTAuNjcxODggLTEuMTg3NSwwIC0xLjkwNjI1LDAuNzE4NzUgLTAuNzAzMTIsMC43MDMxMyAtMC43MDMxMiwxLjk1MzEzIGwgLTEuNjg3NSwtMC4xNzE4OCBxIDAuMTcxODcsLTEuODkwNjIgMS4yOTY4NywtMi44NzUgMS4xNDA2MywtMC45ODQzNyAzLjAzMTI1LC0wLjk4NDM3IDEuOTIxODgsMCAzLjA0Njg4LDEuMDYyNSAxLjEyNSwxLjA2MjUgMS4xMjUsMi42NDA2MiAwLDAuNzk2ODggLTAuMzI4MTMsMS41NzgxMyAtMC4zMjgxMiwwLjc4MTI1IC0xLjA5Mzc1LDEuNjQwNjIgLTAuNzUsMC44NDM3NSAtMi41MzEyNSwyLjM0Mzc1IC0xLjQ2ODc1LDEuMjM0MzggLTEuODkwNjIsMS42ODc1IC0wLjQyMTg4LDAuNDM3NSAtMC42ODc1LDAuODc1IHogbSAxMC4yNjYzMywtOC41IC0xLjYyNSwwLjEyNSBxIC0wLjIxODc1LC0wLjk2ODc1IC0wLjYyNSwtMS40MDYyNSAtMC42NTYyNSwtMC43MDMxMiAtMS42NDA2MiwtMC43MDMxMiAtMC43ODEyNSwwIC0xLjM3NSwwLjQzNzUgLTAuNzY1NjMsMC41NjI1IC0xLjIxODc1LDEuNjU2MjUgLTAuNDUzMTMsMS4wNzgxMiAtMC40Njg3NSwzLjA3ODEyIDAuNTkzNzUsLTAuODkwNjIgMS40NTMxMiwtMS4zMjgxMiAwLjg1OTM4LC0wLjQzNzUgMS43OTY4OCwtMC40Mzc1IDEuNjQwNjIsMCAyLjc4MTI1LDEuMjAzMTIgMS4xNTYyNSwxLjIwMzEzIDEuMTU2MjUsMy4xMDkzOCAwLDEuMjY1NjIgLTAuNTQ2ODgsMi4zNDM3NSAtMC41MzEyNSwxLjA3ODEyIC0xLjQ4NDM3LDEuNjU2MjUgLTAuOTM3NSwwLjU3ODEyIC0yLjE0MDYzLDAuNTc4MTIgLTIuMDYyNSwwIC0zLjM1OTM3LC0xLjUgLTEuMjgxMjUsLTEuNTE1NjIgLTEuMjgxMjUsLTQuOTg0MzcgMCwtMy44NzUgMS40MjE4NywtNS42MjUgMS4yNSwtMS41MzEyNSAzLjM3NSwtMS41MzEyNSAxLjU2MjUsMCAyLjU2MjUsMC44OTA2MiAxLjAxNTYzLDAuODc1IDEuMjE4NzUsMi40Mzc1IHogbSAtNi42ODc1LDUuNzUgcSAwLDAuODQzNzUgMC4zNTkzOCwxLjYyNSAwLjM1OTM3LDAuNzY1NjMgMSwxLjE3MTg4IDAuNjQwNjIsMC40MDYyNSAxLjM1OTM3LDAuNDA2MjUgMS4wMzEyNSwwIDEuNzgxMjUsLTAuODI4MTMgMC43NSwtMC44NDM3NSAwLjc1LC0yLjI4MTI1IDAsLTEuMzkwNjIgLTAuNzM0MzcsLTIuMTg3NSAtMC43MzQzOCwtMC43OTY4NyAtMS44NTkzOCwtMC43OTY4NyAtMS4xMDkzNywwIC0xLjg5MDYyLDAuNzk2ODcgLTAuNzY1NjMsMC43OTY4OCAtMC43NjU2MywyLjA5Mzc1IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNTkiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyNi42MjQ2Niw0MDEuMjQ4NjQgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjcsLTI2LjIwNDcyIDI2LjIwNDc0LC0yNi4yMDQ3MiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MjEsMi43NjA4NyAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNyA3LjY3NTE4LDExLjU3OTY2IDcuNjc1MTgsMTguNTI5NTUgdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjQsMjYuMjA0NzEgLTI2LjIwNDcyLDI2LjIwNDcxIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjQgLTI2LjIwNDc0LC0yNi4yMDQ3MSB6IgogICAgICAgZmlsbD0iI2Q5ZWFkMyIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDYxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuNjI0NjYsNDAxLjI0ODY0IHYgMCBjIDAsLTE0LjQ3MjQ4IDExLjczMjI3LC0yNi4yMDQ3MiAyNi4yMDQ3NCwtMjYuMjA0NzIgdiAwIGMgNi45NDk5MiwwIDEzLjYxNTIxLDIuNzYwODcgMTguNTI5NTQsNy42NzUxNyA0LjkxNDM0LDQuOTE0MzcgNy42NzUxOCwxMS41Nzk2NiA3LjY3NTE4LDE4LjUyOTU1IHYgMCBjIDAsMTQuNDcyNDcgLTExLjczMjI0LDI2LjIwNDcxIC0yNi4yMDQ3MiwyNi4yMDQ3MSB2IDAgYyAtMTQuNDcyNDcsMCAtMjYuMjA0NzQsLTExLjczMjI0IC0yNi4yMDQ3NCwtMjYuMjA0NzEgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDYzIgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgZD0ibSAzNDQuMjE4OTMsNDA4LjE2ODY0IGggLTEuNjQwNjIgdiAtMTAuNDUzMTMgcSAtMC41OTM3NSwwLjU2MjUgLTEuNTYyNSwxLjE0MDYzIC0wLjk1MzEzLDAuNTYyNSAtMS43MTg3NSwwLjg0Mzc1IHYgLTEuNTkzNzUgcSAxLjM3NSwtMC42NDA2MyAyLjQwNjI1LC0xLjU2MjUgMS4wMzEyNSwtMC45MjE4OCAxLjQ1MzEyLC0xLjc4MTI1IGggMS4wNjI1IHogbSAxMi44MTMyMywtMS41NzgxMyB2IDEuNTc4MTMgaCAtOC44MjgxMiBxIC0wLjAxNTYsLTAuNTkzNzUgMC4xODc1LC0xLjE0MDYzIDAuMzQzNzUsLTAuOTA2MjUgMS4wNzgxMiwtMS43ODEyNSAwLjc1LC0wLjg3NSAyLjE1NjI1LC0yLjAxNTYyIDIuMTcxODgsLTEuNzgxMjUgMi45Mzc1LC0yLjgyODEzIDAuNzY1NjMsLTEuMDQ2ODcgMC43NjU2MywtMS45Njg3NSAwLC0wLjk4NDM3IC0wLjcwMzEzLC0xLjY0MDYyIC0wLjY4NzUsLTAuNjcxODggLTEuODEyNSwtMC42NzE4OCAtMS4xODc1LDAgLTEuOTA2MjUsMC43MTg3NSAtMC43MDMxMiwwLjcwMzEzIC0wLjcwMzEyLDEuOTUzMTMgbCAtMS42ODc1LC0wLjE3MTg4IHEgMC4xNzE4NywtMS44OTA2MiAxLjI5Njg3LC0yLjg3NSAxLjE0MDYzLC0wLjk4NDM3IDMuMDMxMjUsLTAuOTg0MzcgMS45MjE4OCwwIDMuMDQ2ODgsMS4wNjI1IDEuMTI1LDEuMDYyNSAxLjEyNSwyLjY0MDYyIDAsMC43OTY4OCAtMC4zMjgxMywxLjU3ODEzIC0wLjMyODEyLDAuNzgxMjUgLTEuMDkzNzUsMS42NDA2MiAtMC43NSwwLjg0Mzc1IC0yLjUzMTI1LDIuMzQzNzUgLTEuNDY4NzUsMS4yMzQzOCAtMS44OTA2MiwxLjY4NzUgLTAuNDIxODgsMC40Mzc1IC0wLjY4NzUsMC44NzUgeiBtIDEuODc1NzEsLTEwLjAzMTI1IHYgLTEuNTc4MTIgaCA4LjY0MDYyIHYgMS4yODEyNSBxIC0xLjI4MTI1LDEuMzU5MzcgLTIuNTMxMjUsMy42MDkzNyAtMS4yNSwyLjI1IC0xLjkzNzUsNC42MjUgLTAuNDg0MzcsMS42NzE4OCAtMC42MjUsMy42NzE4OCBoIC0xLjY4NzUgcSAwLjAzMTIsLTEuNTc4MTMgMC42MjUsLTMuODEyNSAwLjU5Mzc1LC0yLjIzNDM4IDEuNjg3NSwtNC4yOTY4OCAxLjEwOTM4LC0yLjA3ODEyIDIuMzU5MzgsLTMuNSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDY1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuNjI0NjYsMTExLjgzMzk0IHYgMCBjIDAsLTE0LjQ3MjQ1MyAxMS43MzIyNywtMjYuMjA0NzA3IDI2LjIwNDc0LC0yNi4yMDQ3MDcgdiAwIGMgNi45NDk5MiwwIDEzLjYxNTIxLDIuNzYwODMzIDE4LjUyOTU0LDcuNjc1MTg2IDQuOTE0MzQsNC45MTQzMzcgNy42NzUxOCwxMS41Nzk2MDEgNy42NzUxOCwxOC41Mjk1MjEgdiAwIGMgMCwxNC40NzI0OSAtMTEuNzMyMjQsMjYuMjA0NzMgLTI2LjIwNDcyLDI2LjIwNDczIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjQgLTI2LjIwNDc0LC0yNi4yMDQ3MyB6IgogICAgICAgZmlsbD0iI2Q5ZWFkMyIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDY3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuNjI0NjYsMTExLjgzMzk0IHYgMCBjIDAsLTE0LjQ3MjQ1MyAxMS43MzIyNywtMjYuMjA0NzA3IDI2LjIwNDc0LC0yNi4yMDQ3MDcgdiAwIGMgNi45NDk5MiwwIDEzLjYxNTIxLDIuNzYwODMzIDE4LjUyOTU0LDcuNjc1MTg2IDQuOTE0MzQsNC45MTQzMzcgNy42NzUxOCwxMS41Nzk2MDEgNy42NzUxOCwxOC41Mjk1MjEgdiAwIGMgMCwxNC40NzI0OSAtMTEuNzMyMjQsMjYuMjA0NzMgLTI2LjIwNDcyLDI2LjIwNDczIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjQgLTI2LjIwNDc0LC0yNi4yMDQ3MyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNjkiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDM0OC40MjI4LDExMi4xNjAxOSBxIDAsLTIuMzU5MzcgMC40ODQzOCwtMy43OTY4NyAwLjQ4NDM3LC0xLjQ1MzEzIDEuNDM3NSwtMi4yMzQzOCAwLjk2ODc1LC0wLjc4MTI1IDIuNDIxODcsLTAuNzgxMjUgMS4wNzgxMywwIDEuODkwNjMsMC40Mzc1IDAuODEyNSwwLjQyMTg4IDEuMzI4MTIsMS4yNSAwLjUzMTI1LDAuODEyNSAwLjgyODEzLDEuOTg0MzggMC4zMTI1LDEuMTU2MjUgMC4zMTI1LDMuMTQwNjIgMCwyLjM1OTM4IC0wLjQ4NDM4LDMuODEyNSAtMC40ODQzNywxLjQzNzUxIC0xLjQ1MzEyLDIuMjM0MzggLTAuOTUzMTMsMC43ODEyNSAtMi40MjE4OCwwLjc4MTI1IC0xLjkyMTg3LDAgLTMuMDMxMjUsLTEuMzkwNjIgLTEuMzEyNSwtMS42NzE4OCAtMS4zMTI1LC01LjQzNzUxIHogbSAxLjY3MTg4LDAgcSAwLDMuMjk2ODggMC43NjU2Miw0LjM5MDYzIDAuNzgxMjUsMS4wNzgxMyAxLjkwNjI1LDEuMDc4MTMgMS4xNDA2MywwIDEuOTA2MjUsLTEuMDkzNzYgMC43NjU2MywtMS4wOTM3NSAwLjc2NTYzLC00LjM3NSAwLC0zLjI5Njg3IC0wLjc2NTYzLC00LjM3NSAtMC43NjU2MiwtMS4wNzgxMiAtMS45MjE4NywtMS4wNzgxMiAtMS4xMjUsMCAtMS43OTY4OCwwLjk1MzEyIC0wLjg1OTM3LDEuMjE4NzUgLTAuODU5MzcsNC41IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNzEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyNi42MjQ2NiwxNzUuNDg3NSB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzIgMjYuMjA0NzQsLTI2LjIwNDcyIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUyMSwyLjc2MDg0IDE4LjUyOTU0LDcuNjc1MTcgNC45MTQzNCw0LjkxNDM0IDcuNjc1MTgsMTEuNTc5NjIgNy42NzUxOCwxOC41Mjk1NSB2IDAgYyAwLDE0LjQ3MjQ3IC0xMS43MzIyNCwyNi4yMDQ3MSAtMjYuMjA0NzIsMjYuMjA0NzEgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNCAtMjYuMjA0NzQsLTI2LjIwNDcxIHoiCiAgICAgICBmaWxsPSIjZDllYWQzIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoNzMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyNi42MjQ2NiwxNzUuNDg3NSB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzIgMjYuMjA0NzQsLTI2LjIwNDcyIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUyMSwyLjc2MDg0IDE4LjUyOTU0LDcuNjc1MTcgNC45MTQzNCw0LjkxNDM0IDcuNjc1MTgsMTEuNTc5NjIgNy42NzUxOCwxOC41Mjk1NSB2IDAgYyAwLDE0LjQ3MjQ3IC0xMS43MzIyNCwyNi4yMDQ3MSAtMjYuMjA0NzIsMjYuMjA0NzEgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNCAtMjYuMjA0NzQsLTI2LjIwNDcxIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg3NSIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMzU0LjU5NDY3LDE4Mi40MDc0OCBoIC0xLjY0MDYyIHYgLTEwLjQ1MzEzIHEgLTAuNTkzNzUsMC41NjI1IC0xLjU2MjUsMS4xNDA2MyAtMC45NTMxMywwLjU2MjUgLTEuNzE4NzUsMC44NDM3NSB2IC0xLjU5Mzc1IHEgMS4zNzUsLTAuNjQwNjMgMi40MDYyNSwtMS41NjI1IDEuMDMxMjUsLTAuOTIxODggMS40NTMxMiwtMS43ODEyNSBoIDEuMDYyNSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDc3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTYuMDk3MSwzMDkuMjc2MjQgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjcsLTI2LjIwNDc1IDI2LjIwNDc0LC0yNi4yMDQ3NSB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTgsMi43NjA4NyAxOC41Mjk1NCw3LjY3NTIxIDQuOTE0MzQsNC45MTQzMyA3LjY3NTE4LDExLjU3OTU5IDcuNjc1MTgsMTguNTI5NTQgdiAwIGMgMCwxNC40NzI0NCAtMTEuNzMyMjcsMjYuMjA0NzEgLTI2LjIwNDcyLDI2LjIwNDcxIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjcgLTI2LjIwNDc0LC0yNi4yMDQ3MSB6IgogICAgICAgZmlsbD0iI2M5ZGFmOCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDc5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTYuMDk3MSwzMDkuMjc2MjQgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjcsLTI2LjIwNDc1IDI2LjIwNDc0LC0yNi4yMDQ3NSB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTgsMi43NjA4NyAxOC41Mjk1NCw3LjY3NTIxIDQuOTE0MzQsNC45MTQzMyA3LjY3NTE4LDExLjU3OTU5IDcuNjc1MTgsMTguNTI5NTQgdiAwIGMgMCwxNC40NzI0NCAtMTEuNzMyMjcsMjYuMjA0NzEgLTI2LjIwNDcyLDI2LjIwNDcxIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjcgLTI2LjIwNDc0LC0yNi4yMDQ3MSB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoODEiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDQ4MC40MTA4NiwzMDguOTYxODQgcSAtMS4wMTU2MiwtMC4zNzUgLTEuNTE1NjIsLTEuMDYyNSAtMC40ODQzOCwtMC43MDMxMyAtMC40ODQzOCwtMS42NzE4OCAwLC0xLjQ1MzEyIDEuMDQ2ODgsLTIuNDM3NSAxLjA0Njg3LC0xIDIuNzgxMjUsLTEgMS43NSwwIDIuODEyNSwxLjAxNTYzIDEuMDc4MTIsMS4wMTU2MiAxLjA3ODEyLDIuNDY4NzUgMCwwLjkzNzUgLTAuNSwxLjYyNSAtMC40ODQzNywwLjY4NzUgLTEuNDY4NzUsMS4wNjI1IDEuMjE4NzUsMC4zOTA2MiAxLjg1OTM4LDEuMjgxMjUgMC42NTYyNSwwLjg5MDYyIDAuNjU2MjUsMi4xNDA2MiAwLDEuNzAzMTMgLTEuMjE4NzUsMi44NzUgLTEuMjE4NzUsMS4xNzE4OCAtMy4xODc1LDEuMTcxODggLTEuOTg0MzgsMCAtMy4yMDMxMywtMS4xNzE4OCAtMS4yMDMxMiwtMS4xNzE4NyAtMS4yMDMxMiwtMi45MjE4NyAwLC0xLjMxMjUgMC42NTYyNSwtMi4xODc1IDAuNjcxODcsLTAuODc1IDEuODkwNjIsLTEuMTg3NSB6IG0gLTAuMzI4MTIsLTIuNzgxMjUgcSAwLDAuOTM3NSAwLjYwOTM3LDEuNTQ2ODcgMC42MDkzOCwwLjU5Mzc1IDEuNTkzNzUsMC41OTM3NSAwLjkzNzUsMCAxLjU0Njg4LC0wLjU5Mzc1IDAuNjA5MzcsLTAuNTkzNzUgMC42MDkzNywtMS40NTMxMiAwLC0wLjkwNjI1IC0wLjYyNSwtMS41MTU2MyAtMC42MjUsLTAuNjI1IC0xLjU2MjUsLTAuNjI1IC0wLjkzNzUsMCAtMS41NjI1LDAuNjA5MzggLTAuNjA5MzcsMC41OTM3NSAtMC42MDkzNywxLjQzNzUgeiBtIC0wLjUzMTI1LDYuMTU2MjUgcSAwLDAuNzAzMTIgMC4zMjgxMiwxLjM1OTM3IDAuMzQzNzUsMC42NTYyNSAxLDEuMDE1NjMgMC42NTYyNSwwLjM1OTM3IDEuNDA2MjUsMC4zNTkzNyAxLjE3MTg4LDAgMS45Mzc1LC0wLjc1IDAuNzY1NjMsLTAuNzUgMC43NjU2MywtMS45MjE4NyAwLC0xLjE4NzUgLTAuNzk2ODgsLTEuOTUzMTMgLTAuNzgxMjUsLTAuNzgxMjUgLTEuOTUzMTIsLTAuNzgxMjUgLTEuMTU2MjUsMCAtMS45MjE4OCwwLjc2NTYzIC0wLjc2NTYyLDAuNzY1NjIgLTAuNzY1NjIsMS45MDYyNSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDgzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTYuMDk3MSwzNzIuMTcxMjQgdiAwIGMgMCwtMTQuNDcyNTEgMTEuNzMyMjcsLTI2LjIwNDc1IDI2LjIwNDc0LC0yNi4yMDQ3NSB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTgsMi43NjA4NCAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNyA3LjY3NTE4LDExLjU3OTYyIDcuNjc1MTgsMTguNTI5NTggdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjcsMjYuMjA0NzEgLTI2LjIwNDcyLDI2LjIwNDcxIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjQgLTI2LjIwNDc0LC0yNi4yMDQ3MSB6IgogICAgICAgZmlsbD0iI2M5ZGFmOCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDg1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTYuMDk3MSwzNzIuMTcxMjQgdiAwIGMgMCwtMTQuNDcyNTEgMTEuNzMyMjcsLTI2LjIwNDc1IDI2LjIwNDc0LC0yNi4yMDQ3NSB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTgsMi43NjA4NCAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNyA3LjY3NTE4LDExLjU3OTYyIDcuNjc1MTgsMTguNTI5NTggdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjcsMjYuMjA0NzEgLTI2LjIwNDcyLDI2LjIwNDcxIHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjQgLTI2LjIwNDc0LC0yNi4yMDQ3MSB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoODciCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDQ3OC4xMjk2LDM3NS45OTc0OCAxLjU3ODEzLC0wLjE0MDYzIHEgMC4yMDMxMiwxLjEwOTM4IDAuNzY1NjIsMS42MDkzOCAwLjU2MjUsMC41IDEuNDUzMTMsMC41IDAuNzUsMCAxLjMxMjUsLTAuMzQzNzUgMC41NzgxMiwtMC4zNDM3NSAwLjkzNzUsLTAuOTIxODggMC4zNzUsLTAuNTc4MTIgMC42MDkzNywtMS41NjI1IDAuMjUsLTAuOTg0MzcgMC4yNSwtMiAwLC0wLjEwOTM3IDAsLTAuMzI4MTIgLTAuNSwwLjc4MTI1IC0xLjM1OTM3LDEuMjY1NjIgLTAuODQzNzUsMC40ODQzOCAtMS44MjgxMywwLjQ4NDM4IC0xLjY3MTg3LDAgLTIuODEyNSwtMS4yMDMxMyAtMS4xNDA2MiwtMS4yMDMxMiAtMS4xNDA2MiwtMy4xNzE4NyAwLC0yLjAzMTI1IDEuMTg3NSwtMy4yNjU2MyAxLjIwMzEyLC0xLjIzNDM3IDMsLTEuMjM0MzcgMS4zMTI1LDAgMi4zOTA2MiwwLjcwMzEyIDEuMDc4MTMsMC43MDMxMyAxLjY0MDYzLDIgMC41NjI1LDEuMjk2ODggMC41NjI1LDMuNzUgMCwyLjU2MjUgLTAuNTYyNSw0LjA3ODEzIC0wLjU2MjUsMS41MTU2MiAtMS42NTYyNSwyLjMxMjUgLTEuMDkzNzUsMC43OTY4NyAtMi41NzgxMywwLjc5Njg3IC0xLjU2MjUsMCAtMi41NjI1LC0wLjg3NSAtMC45ODQzNywtMC44NzUgLTEuMTg3NSwtMi40NTMxMiB6IG0gNi43MTg3NSwtNS44OTA2MyBxIDAsLTEuNDA2MjUgLTAuNzUsLTIuMjM0MzcgLTAuNzUsLTAuODI4MTMgLTEuODEyNSwtMC44MjgxMyAtMS4wOTM3NSwwIC0xLjkwNjI1LDAuODkwNjMgLTAuODEyNSwwLjg5MDYyIC0wLjgxMjUsMi4zMTI1IDAsMS4yODEyNSAwLjc2NTYzLDIuMDc4MTIgMC43ODEyNSwwLjc5Njg4IDEuOTA2MjUsMC43OTY4OCAxLjE0MDYyLDAgMS44NzUsLTAuNzk2ODggMC43MzQzNywtMC43OTY4NyAwLjczNDM3LC0yLjIxODc1IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoODkiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1Ni4wOTcxLDE0MC45MDg3NyB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzMgMjYuMjA0NzQsLTI2LjIwNDczIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUxOCwyLjc2MDg1IDE4LjUyOTU0LDcuNjc1MTggNC45MTQzNCw0LjkxNDM0IDcuNjc1MTgsMTEuNTc5NjIgNy42NzUxOCwxOC41Mjk1NSB2IDAgYyAwLDE0LjQ3MjQ3IC0xMS43MzIyNywyNi4yMDQ3MSAtMjYuMjA0NzIsMjYuMjA0NzEgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNCAtMjYuMjA0NzQsLTI2LjIwNDcxIHoiCiAgICAgICBmaWxsPSIjYzlkYWY4IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoOTEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1Ni4wOTcxLDE0MC45MDg3NyB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzMgMjYuMjA0NzQsLTI2LjIwNDczIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUxOCwyLjc2MDg1IDE4LjUyOTU0LDcuNjc1MTggNC45MTQzNCw0LjkxNDM0IDcuNjc1MTgsMTEuNTc5NjIgNy42NzUxOCwxOC41Mjk1NSB2IDAgYyAwLDE0LjQ3MjQ3IC0xMS43MzIyNywyNi4yMDQ3MSAtMjYuMjA0NzIsMjYuMjA0NzEgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNCAtMjYuMjA0NzQsLTI2LjIwNDcxIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg5MyIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gNDc3Ljg5NTIzLDE0MS4yMzUgcSAwLC0yLjM1OTM4IDAuNDg0MzgsLTMuNzk2ODggMC40ODQzNywtMS40NTMxMiAxLjQzNzUsLTIuMjM0MzcgMC45Njg3NSwtMC43ODEyNSAyLjQyMTg3LC0wLjc4MTI1IDEuMDc4MTMsMCAxLjg5MDYzLDAuNDM3NSAwLjgxMjUsMC40MjE4NyAxLjMyODEyLDEuMjUgMC41MzEyNSwwLjgxMjUgMC44MjgxMywxLjk4NDM3IDAuMzEyNSwxLjE1NjI1IDAuMzEyNSwzLjE0MDYzIDAsMi4zNTkzNyAtMC40ODQzOCwzLjgxMjUgLTAuNDg0MzcsMS40Mzc1IC0xLjQ1MzEyLDIuMjM0MzcgLTAuOTUzMTMsMC43ODEyNSAtMi40MjE4OCwwLjc4MTI1IC0xLjkyMTg3LDAgLTMuMDMxMjUsLTEuMzkwNjIgLTEuMzEyNSwtMS42NzE4OCAtMS4zMTI1LC01LjQzNzUgeiBtIDEuNjcxODgsMCBxIDAsMy4yOTY4NyAwLjc2NTYyLDQuMzkwNjIgMC43ODEyNSwxLjA3ODEzIDEuOTA2MjUsMS4wNzgxMyAxLjE0MDYzLDAgMS45MDYyNSwtMS4wOTM3NSAwLjc2NTYzLC0xLjA5Mzc1IDAuNzY1NjMsLTQuMzc1IDAsLTMuMjk2ODggLTAuNzY1NjMsLTQuMzc1IC0wLjc2NTYyLC0xLjA3ODEzIC0xLjkyMTg3LC0xLjA3ODEzIC0xLjEyNSwwIC0xLjc5Njg4LDAuOTUzMTMgLTAuODU5MzcsMS4yMTg3NSAtMC44NTkzNyw0LjUgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg5NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDU2LjA5NzEsMjA0LjU2MjMgdiAwIGMgMCwtMTQuNDcyNDggMTEuNzMyMjcsLTI2LjIwNDcyIDI2LjIwNDc0LC0yNi4yMDQ3MiB2IDAgYyA2Ljk0OTkyLDAgMTMuNjE1MTgsMi43NjA4NCAxOC41Mjk1NCw3LjY3NTE3IDQuOTE0MzQsNC45MTQzNCA3LjY3NTE4LDExLjU3OTYyIDcuNjc1MTgsMTguNTI5NTUgdiAwIGMgMCwxNC40NzI0NyAtMTEuNzMyMjcsMjYuMjA0NzQgLTI2LjIwNDcyLDI2LjIwNDc0IHYgMCBjIC0xNC40NzI0NywwIC0yNi4yMDQ3NCwtMTEuNzMyMjcgLTI2LjIwNDc0LC0yNi4yMDQ3NCB6IgogICAgICAgZmlsbD0iI2M5ZGFmOCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDk3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTYuMDk3MSwyMDQuNTYyMyB2IDAgYyAwLC0xNC40NzI0OCAxMS43MzIyNywtMjYuMjA0NzIgMjYuMjA0NzQsLTI2LjIwNDcyIHYgMCBjIDYuOTQ5OTIsMCAxMy42MTUxOCwyLjc2MDg0IDE4LjUyOTU0LDcuNjc1MTcgNC45MTQzNCw0LjkxNDM0IDcuNjc1MTgsMTEuNTc5NjIgNy42NzUxOCwxOC41Mjk1NSB2IDAgYyAwLDE0LjQ3MjQ3IC0xMS43MzIyNywyNi4yMDQ3NCAtMjYuMjA0NzIsMjYuMjA0NzQgdiAwIGMgLTE0LjQ3MjQ3LDAgLTI2LjIwNDc0LC0xMS43MzIyNyAtMjYuMjA0NzQsLTI2LjIwNDc0IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg5OSIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gNDg0LjA2NzEsMjExLjQ4MjMxIGggLTEuNjQwNjIgdiAtMTAuNDUzMTMgcSAtMC41OTM3NSwwLjU2MjUgLTEuNTYyNSwxLjE0MDYzIC0wLjk1MzEzLDAuNTYyNSAtMS43MTg3NSwwLjg0Mzc1IHYgLTEuNTkzNzUgcSAxLjM3NSwtMC42NDA2MyAyLjQwNjI1LC0xLjU2MjUgMS4wMzEyNSwtMC45MjE4OCAxLjQ1MzEyLC0xLjc4MTI1IGggMS4wNjI1IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTAxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAyNTEuMzkzNyw0Ny41MTExMTUgNzUuMjQ0MDgsNjQuMzE0OTU1IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEwMyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsNDcuNTExMTE1IDcwLjY4MzE3LDYwLjQxNjUwNSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEwNSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIxLjAwMzY2LDEwOS4xODMxOSA0LjUyMjg2LDEuNjkzMDMgLTIuMzc2NDQsLTQuMjA0MTYgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEwNyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Ik0gMjUxLjM5MzcsNDcuNTExMTE1IDMyNi42Mzc3OCwxNzUuNDc5NjIiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTA5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0Ny41MTExMTUgMzIzLjU5NjYxLDE3MC4zMDc0OCIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDExMSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIyLjE3MjgsMTcxLjE0NDY3IDMuNzI0MDMsMy4wNzQ3NiAtMC44NzYzNywtNC43NDkxNyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTEzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0Ny41MTExMTUgMzI2LjYzNzc4LDMzOS4yNTkxNyIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMTUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDI1MS4zOTM3LDQ3LjUxMTExNSAzMjUuMTM5MzcsMzMzLjQ0OTI5IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTE3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjMuNTM5OTgsMzMzLjg2MTc3IDIuNzMyNzMsMy45ODE4MSAwLjQ2NjA2LC00LjgwNjggeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDExOSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Ik0gMjUxLjM5MzcsNDcuNTExMTE1IDMyNi42Mzc3OCw0MDEuMjQzMzkiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTIxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0Ny41MTExMTUgMzI1LjM4OTQzLDM5NS4zNzQ3NCIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEyMyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIzLjc3Mzg2LDM5NS43MTgzNCAyLjU1OTc1LDQuMDk1MTUgMC42NzE0MiwtNC43ODI0NyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTI1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAyNTEuMzkzNywxMTEuMTY0NjYgNzUuMjQ0MDgsMC42NjE0MSIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMjciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI1MS4zOTM3LDExMS4xNjQ2NiA2OS4yNDQzMiwwLjYwODY4IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTI5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjAuNjIzNSwxMTMuNDI1MDEgNC41NTI0NiwtMS42MTE3OCAtNC41MjM0MSwtMS42OTE1NiB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTMxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAyNTEuMzkzNywxMTEuMTY0NjYgNzUuMjQ0MDgsNjQuMzE0OTciCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTMzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAyNTEuMzkzNywxMTEuMTY0NjYgNzAuNjgzMTcsNjAuNDE2NSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEzNSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIxLjAwMzY2LDE3Mi44MzY3NCA0LjUyMjg2LDEuNjkzMDIgLTIuMzc2NDQsLTQuMjA0MTYgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDEzNyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsMTExLjE2NDY2IDc1LjI0NDA4LDIyOC4wOTQ1MSIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMzkiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDI1MS4zOTM3LDExMS4xNjQ2NiAzMjQuNzU4MTQsMzMzLjU2MTIiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNDEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyMy4xODk1NCwzMzQuMDc4NjQgMi45OTAyNywzLjc5MjIgMC4xNDY5MSwtNC44MjcwOSB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTQzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAyNTEuMzkzNywxMTEuMTY0NjYgNzUuMjQ0MDgsMjkwLjA3ODc1IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE0NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsMTExLjE2NDY2IDczLjczNzU4LDI4NC4yNzEwMSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE0NyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzIzLjUzMjQ3LDM5NS44NTAzNCAyLjczODI4LDMuOTc4MDIgMC40NTkzOCwtNC44MDc0MyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTQ5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0MTAuNDQyODQgMzI2LjYzNzc4LDExMS44Mjg2OSIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNTEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDI1MS4zOTM3LDQxMC40NDI4NCAzMjUuMTcxNzUsMTE3LjY0NjgyIgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTUzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuNzczNDQsMTE4LjA1MDQ0IC0wLjQ5MjgzLC00LjgwNDEzIC0yLjcxMDUxLDMuOTk2OTYgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE1NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsNDEwLjQ0Mjg0IDc1LjI0NDA4LC0yMzQuOTYwNiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNTciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDI1MS4zOTM3LDQxMC40NDI4NCAzMjQuODA3ODksMTgxLjE5NjM4IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTU5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjYuMzgwOTIsMTgxLjcwMDE0IC0wLjE4ODk5LC00LjgyNTY2IC0yLjk1NzA3LDMuODE4MTUgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE2MSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsNDEwLjQ0Mjg0IDc1LjI0NDA4LC03MS4xODEwNiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNjMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI1MS4zOTM3LDQxMC40NDI4NCA3MC44ODU0MSwtNjcuMDU3NzciCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNjUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyMy40MTQyLDM0NC41ODUgMi4xNjE1OSwtNC4zMTg1OCAtNC40MzE3OSwxLjkxODggeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE2NyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Ik0gMjUxLjM5MzcsNDEwLjQ0Mjg0IDMyNi42Mzc3OCw0MDEuMjQ2IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE2OSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsNDEwLjQ0Mjg0IDY5LjI4ODQyLC04LjQ2ODg4IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTcxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzMjAuODgyNSw0MDMuNjEzNTEgNC4zMDQyLC0yLjE5MDEzIC00LjcwNDk5LC0xLjA4ODkzIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNzMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDI1MS4zOTM3LDQ3My4zMzc4NyAzMjYuNjM3NzgsMTExLjgyNjA4IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE3NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Ik0gMjUxLjM5MzcsNDczLjMzNzg3IDMyNS40MTUxNiwxMTcuNzAwMjEiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxNzciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyNy4wMzIyNiwxMTguMDM2NzYgLTAuNjkyMzUsLTQuNzc5NDYgLTIuNTQxODEsNC4xMDYzMyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTc5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0NzMuMzM3ODcgMzI2LjYzNzc4LDE3NS40Nzk2MiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxODEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI1MS4zOTM3LDQ3My4zMzc4NyA3My43NzQ1NywtMjkyLjA0MSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE4MyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzI2Ljc2OTY4LDE4MS43MDE0NCAtMC40ODk5MywtNC44MDQ0MiAtMi43MTI5MiwzLjk5NTMzIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxODUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI1MS4zOTM3LDQ3My4zMzc4NyA3NS4yNDQwOCwtMTM0LjA3ODciCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTg3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAyNTEuMzkzNyw0NzMuMzM3ODcgMzIzLjcwMTQxLDM0NC40OTE1MyIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE4OSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzI1LjE0MTg1LDM0NS4yOTk4OCAwLjc4MDQ5LC00Ljc2NTg3IC0zLjY2MTMyLDMuMTQ5MTcgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE5MSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMjUxLjM5MzcsNDczLjMzNzg3IDc1LjI0NDA4LC03Mi4wOTQ0OCIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxOTMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI1MS4zOTM3LDQ3My4zMzc4NyA3MC45MTE3NCwtNjcuOTQzNDgiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxOTUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyMy40NDgxOCw0MDYuNTg3MDggMi4xMzQwMywtNC4zMzIyOCAtNC40MTk0OSwxLjk0Njk2IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxOTciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiwxMTEuODMzOTQgNzcuMDcwODYsMjkuMDcwODgiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMTk5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTExLjgzMzk0IDcxLjQ1Njk0LDI2Ljk1MzMzIgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjAxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NDkuOTA4MTQsMTQwLjMzMjcyIDQuODI5MDEsMC4wNTYxIC0zLjY2MzE1LC0zLjE0NzA0IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyMDMiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiwxMTEuODMzOTQgNzcuMDcwODYsOTIuNzI0NDIiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjA1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTExLjgzMzk0IDczLjIzNTYsODguMTEwMjIiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyMDciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1MC45OTk1LDIwMC45OTk5NCA0LjE3MTAyLDIuNDM0MTcgLTEuNjMwNTUsLTQuNTQ1NzggeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIwOSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDExMS44MzM5NCA3Ny4wNzA4NiwxOTcuNDQ4ODUiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjExIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTExLjgzMzk0IDc0Ljg4OTE5LDE5MS44NTk1NSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIxMyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDUyLjM4NDYsMzA0LjI5NDA4IDMuMTg4ODEsMy42MjY4NiAtMC4xMTE0NSwtNC44MjgwNyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjE1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTExLjgzMzk0IDc3LjA3MDg2LDI2MC4zNDY0NSIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyMTciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiwxMTEuODMzOTQgNzUuMzY3NzQsMjU0LjU5MzI5IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjE5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTIuODE4MDUsMzY2Ljg5NjA3IDIuODcxOTgsMy44ODI1NiAwLjI5NTYyLC00LjgyMDI4IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyMjEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiwxNzUuNDg3NSA3Ny4wNzA4NiwtMzQuNTgyNjgiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjIzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTc1LjQ4NzUgNzEuNTk2NzEsLTMyLjEyNjM1IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjI1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTEuMzA3MDQsMTQ0Ljg2ODEyIDMuNDY0MTcsLTMuMzY0ODEgLTQuODE2NTksMC4zNTA4NiB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjI3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTc1LjQ4NzUgNzcuMDcwODYsMjkuMDcwODYiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjI5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTc1LjQ4NzUgNzEuNDU2OTQsMjYuOTUzMyIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIzMSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDQ5LjkwODE0LDIwMy45ODYyOCA0LjgyOTAxLDAuMDU2MiAtMy42NjMxNSwtMy4xNDcwNyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjMzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMTc1LjQ4NzUgNzcuMDcwODYsMTMzLjc5NTI5IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIzNSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDE3NS40ODc1IDc0LjA3NTk5LDEyOC41OTYxNiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIzNyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDUxLjY3ODg2LDMwNC45MDgxNCAzLjY5NjQxLDMuMTA3ODggLTAuODMzODksLTQuNzU2ODEgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDIzOSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDE3NS40ODc1IDc3LjA3MDg2LDE5Ni42OTI5IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI0MSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDE3NS40ODc1IDc0Ljg4MTksMTkxLjEwNjQ4IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2UtbGluZWpvaW49InJvdW5kIgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjQzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSA0NTIuMzc4MTQsMzY3LjE5NjU0IDMuMTkzNTEsMy42MjI3NCAtMC4xMTc3MywtNC44Mjc5MSB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjQ1IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAzNzkuMDM0MTIsMzM5LjI3MjI5IDQ1Ni4xMDQ5OCwxNDAuOTEwMDgiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjQ3IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMzM5LjI3MjI5IDc0Ljg5Nzg5LC0xOTIuNzY5NSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI0OSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDU1LjQ3MTYyLDE0Ny4xMDA5NyAwLjEwMzkxLC00LjgyODIyIC0zLjE4MzEsMy42MzE4NCB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjUxIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAzNzkuMDM0MTIsMzM5LjI3MjI5IDQ1Ni4xMDQ5OCwyMDQuNTYzNjEiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjUzIgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAzNzkuMDM0MTIsMzM5LjI3MjI5IDQ1My4xMjU0LDIwOS43NzE0OSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI1NSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDU0LjU1OTA4LDIxMC41OTE3NCAwLjgxOTkyLC00Ljc1OTIyIC0zLjY4NzI2LDMuMTE4NzEgeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI1NyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDMzOS4yNzIyOSA3Ny4wNzA4NiwtMjkuOTg0MjYiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjU5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAzNzkuMDM0MTIsMzM5LjI3MjI5IDcxLjQ3OTEzLC0yNy44MDg4MSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI2MSIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDUxLjExMjEyLDMxMy4wMDI4MiAzLjYzMDQzLC0zLjE4NDc2IC00LjgyODE4LDAuMTA2MDggeiIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICAgc3Ryb2tlPSIjNTk1OTU5IgogICAgICAgZmlsbD0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI2MyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDMzOS4yNzIyOSA3Ny4wNzA4NiwzMi45MTMzNiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyNjUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiwzMzkuMjcyMjkgNzEuNTUyOTgsMzAuNTU2OTQiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyNjciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ0OS45Mzg0LDM3MS4zNDgyNCA0LjgyMjE4LDAuMjYzMjcgLTMuNTI0NzksLTMuMzAxMyB6IgogICAgICAgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiCiAgICAgICBmaWxsPSIjNTk1OTU5IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjY5IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0iTSAzNzkuMDM0MTIsNDAxLjI0ODY0IDQ1Ni4xMDQ5OCwxNDAuOTAyMiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyNzEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDM3OS4wMzQxMiw0MDEuMjQ4NjQgNDU0LjQwMTg2LDE0Ni42NTU0MSIKICAgICAgIHN0cm9rZS1saW5lY2FwPSJidXR0IgogICAgICAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI3MyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gNDU1Ljk4NTY2LDE0Ny4xMjQyNCAtMC4yOTU2MiwtNC44MjAyOSAtMi44NzE5OCwzLjg4MjU3IHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyNzUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiw0MDEuMjQ4NjQgNzcuMDcwODYsLTE5Ni42OTI5IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI3NyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDQwMS4yNDg2NCA3NC44ODE5LC0xOTEuMTA2NDUiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyNzkiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1NS40NTM5MiwyMTAuNzQ0NzkgMC4xMTc3NCwtNC44Mjc5MiAtMy4xOTM1MSwzLjYyMjcyIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyODEiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDM3OS4wMzQxMiw0MDEuMjQ4NjQgNzcuMDcwODYsLTkxLjk2ODQ4IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDI4MyIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMzc5LjAzNDEyLDQwMS4yNDg2NCA3My4yMTcwNywtODcuMzY5NzgiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS1saW5lam9pbj0icm91bmQiCiAgICAgICBzdHJva2Utd2lkdGg9IjEiCiAgICAgICBzdHJva2U9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyODUiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1My41MTcxOCwzMTQuOTM5NzcgMS42NDg4NCwtNC41MzkxMyAtNC4xODA3OSwyLjQxNzMzIHoiCiAgICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgIHN0cm9rZS13aWR0aD0iMSIKICAgICAgIHN0cm9rZT0iIzU5NTk1OSIKICAgICAgIGZpbGw9IiM1OTU5NTkiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyODciCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJNIDMyLjcyNDUxOCwxODIuOTc5NjQgSCAxOTIuMTY4MDggViAzMzcuODY5NDEgSCAzMi43MjQ1MTggWiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8ZwogICAgICAgaWQ9ImcyOTQiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjY1MDc5MDAzLDAsMCwwLjY1MDc5NzM4LDMyLjcyNDUxOCwxODIuOTc5NjIpIj4KICAgICAgPGNsaXBQYXRoCiAgICAgICAgIGlkPSJnNWZkOGVjYjk2OV8wXzM2Ny4xIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlkPSJwYXRoMjg5IgogICAgICAgICAgIGNsaXAtcnVsZT0iZXZlbm9kZCIKICAgICAgICAgICBkPSJNIDAsMCBIIDI0NSBWIDIzOCBIIDAgWiIgLz4KICAgICAgPC9jbGlwUGF0aD4KICAgICAgPGltYWdlCiAgICAgICAgIGlkPSJpbWFnZTI5MiIKICAgICAgICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFQVUFBQUR1Q0FJQUFBQnV3dFpxQUFCQnZVbEVRVlI0WHUyZEIwQVUxeGFHU2RRWVl1eTlkMk9KUGsyaUpySEdyckViZXdVQkMybzBSbzNHVHV3YWpScGJMTVN1V0pBb0lOZ2lpa1pGUmJEUlFaQ085Q2F3NzU5N2RvWmhGaEJ3QVYzdWw4bDZkM2FZK3MyWmM2ZmMwVk54T0xxTG5ySUhoNk5EY0w4NXVnejNtNlBMY0w4NXVvelcvRTVMUzB2bGNBb1dXS2NVTVNNNTlWdlNOL014WnRhUHd5bDBjdXAzTnBEeGtaR1J6ZytkSDNFNEJZS0xpOHZEaHcrRGc0T1pnZ29sMDhtcDM3R3hzVStmUEgzdzRFRkFRRUJLU29yOEp3UjFmRG80T09qcDZSa1lHRXlhTkduaUpBNG5mekV5TWlwVHB1ekJnd2RWWW9UTmxCejVqYiszc0xBWU1tVEl3SUVENTh5WjQrZm5SejNwVjlMOTJyVnJzMmJOaW9tSmlZK1B4ODRReDNuSDBKbE5FaXNRbDVDUXNIYnQyci8vL2x1dW9pWnY4SnYrTWl3c2JOeTRjVFkyTmk5ZXZKZ3laY3FwVTZlU2twS2tYNG5idDIvUG5UdFgrc3JoNURkYnRteDVXNzhKdUR0Ky9Qam56NThqRmRteFk4Znk1Y3ZEdzhQcEo0ais3Tm16ZS9mdWJkKysvYWVmZmtwNUxjVHlOQTRubjRGbXYvLyt1M2I4dHJPelE5aDJkM2RQVFVrOWZPalF2SG56UWtKQzZLZm82T2hqeDQ0dFdMQmcwS0JCaU4rUzN4bituc1BKQjdUbU4zSnJRME5ETnpjM3hPLzkrL2N2V3Jnb05EUlVKWTZYUHYvOTkxL0ViNnByWmpNOURrZGJhTU52OXBlZW5wNGpSb3h3dXVlVUVKK3dlUEhpblR0M0lzTm5Qd3Eva3RQWHIzTy9PUVdLMXZ4T1RrNWVzM3JOanovK3VHN2R1bEdqUmoyNC8wQStDRG5ONHplbmdOR0czeUplbmw1NzkrN2R1SEdqdmIxOWZIeThTalpTN2plblVOQ20zOW5BL2VZVUN0cjBPNDFCL3loKzRuNXpDZ1Z0K3AwTjNHOU9vY0Q5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNHK09Mc1A5NXVneTNPK2lUbHJXcERLa0wwSW5MNHRmYWJCc1VBeWhIb2tHeWpuVEJ0eHZqaTdEL1M0cVlMV25aRVpZV0ppM3Q3ZXZqd3hmSC9SNWNQL0IzYnQzNzRHNzJYYjM3bUd6WHJodzNscURLMWN1NDZkcjEvNlZ1SGJ0MnMyYk43Mjh2UHo4L0h4Ri9IejlNRTNNaG5LT3RRSDN1NmdBbFJNU0VoSkZFaGhKU1VsMzd0d3hOemMvZXZUb0VSR1U0Y1RVcVZOSGpSNDFmdno0Y1ZremR0ellDUk1tdEc3ZFdpOHp5cFVyOS9ubm56ZHIxcXc1bzBXTEZvMGFOZXJabzhmKy9mc3RMQ3lPaTV3OGVmTFFvVVBZbDFUNVlBWDN1NmdBdnhQVDlWWUR2eEdBNFRTRU84azRjZUlFeXVnemQrNWNFeE9UNmRPblQ4c1dVMVBUZnYzNjFhcFZxM0hqeG8xa05HellzR1BIam4zNjlPa2wwcnQzNys3ZHU0OGNPUkkybnoxNzl0U3BVNmNaWjg2Y09YYjh1Sk9Ua3lvZnJPQitGeFd5OGZ2dzRjTmtOb0V5L01hV01qSXlRaFNma2kxUUhPNldMRm15WnMyYTFXVlVxMWF0ZmZ2MlBYcjA2Q1lDdWJ0MDZUTDhoeDhPSGp3SXA3RVhuV0pBOFdQSGpuRy9PVzlGUHZtTkFlQjNpUklsYXRTb1VVMUcxYXBWNFRlY1Z2ajl3L3Z0ZHhZajRYNFhPdW41TjMySStiZkNiMHFJMFdmT25EbndXNm16QnJueXUzUG56dSs1MzFuQS9TNTBzTm96eG02QjVPUmtyY1J2ZlgzOVRQTVQzWXJmYVFMS25nenVkNkdEK0IwZkg0K1lqZi94Ynp3RGl0Kzlld2NWdnVQSFR4d1RRUWhIbnh6R2IrVGZQWHYyMU5QVHExU3BVbmtaNWNxVjA4eS9PMHQrbnoxRGNyOFBmck8vUkNUWXZYdjNqQmt6WnM2Y3VXVEprc0RBUVBhTGVxVGM3M3doVFpXY2xDeGtIUWtzNjBnUXNnNzBDUXNOUXhqZXYzOC9OcTA1QTBwdDJiSmx6dXc1UDRuTVlhQXdac3dZQ05xblQ1L2VJblRTQTNaKytlV1hYOG40NG9zdmtHQmdlUGxKUTVTSERSdUdQK3FiRVl6bmYvLzdYK1BHalQrVDBhaFJJNHhuMnRScG1KTWZSWDZhSXh3b0VNNkZCZEsyRlZyd20vNFN3V0RVcUZIcjFxMjdjZU9HNDAzSG1KZ1k2U2NWOXp0L3dEcUUwTEV4c2ZJT2x2djUra0lhbURkNThtUkRRME1EQXdOalkyTW9xenhCL1NZKy9mUlRmWkhTcFV1akQzd2RPblRveUpFalI4Z1lPM2FzZ1FKRHc0a1RKN1pzMlJKNWVaVXFWU3FKVktoUW9YYnQyZ2prdEFQMFlmVC92ditYWDN5NWE5Y3VXaUxsUXI0ZFd2TWJLeHFyOHRxMWE0cis4cktEZ3dQM1c1dWtxV0N6OE5ZenNTTy9YL2k5V0x4NDhmVHAweEVkWnpIbXpKa05LZXZXcmFzNFN3MlFLSC95eVNkbHk1WXRreEY0S2E4dklxV0dvTTJiTjBlMFJpQWJLUU1SSFRaUGtJR3ZDTzN3RzFrSzVlSUV4dG1nUVlOKy9mb05Iang0a0FoRzJLbFRwNy8rK2t0WUlHMWJvV1cvdi8zbUcrUmt5TjZpb3FLa24vQ1psSmlFVHpzN08rNjNObUYrQ3k5YVZQcnR0MmpSSXRUOGtDc2lZelExTllYaVNIeWhWNTA2ZFdwbkJMa3lBdk1ISDN3Z2o5ejRDcHVyeUtoYXRTcUdiTmFzV1ZaK0s4RFJBMzVqdDRIZlZSbnd1M0xseXZYcjEwZndodFlEUlhCQTZOQ2h3N3ZyTndGcjc5eTU0K2pvZU83Y3VkR2pSOXZhMnI1Ky9acCtndXNIRHg0eU5aMkJReVI3djVUUVA1dnBjWElLOS90TmFNMXZDUVR5WmN1V2JkeTRrVUs0aWxVOWZYeDhuajE3dG0vZlBzVHZGUGF1MTJ5bXg4a0VkYnZxU2hMaUUyS2lZNlRrRzJYMFFmNjlhT0VpSEVqaHR5bmpqWDRYSzFic1F4bkZpeGVIa1RWcTFJQ2ROVVR3NXkxYXRCZytmRGppMXlnWjQ4WUorYmY4eGNINGlpd0Y5Y3VLRlN2V3JGbFRHZ01VYjlpd0lmazlZTUFBOG52SWtDSHZnZDl4Y1hHK1BqNysvdjdPenM0bUppYUhEeCtHNktxTTQ3MTE2eGJQVDdSTHl1c1U1SDdKU2NuVW9aeWFraHI0TW5ESjRpWEl2MmZQbmkzbTMzTlFFY3pVYjZUSThzZ3RnY3BsV1JrWUROSWpYNGVhMkZXR2lTRDZVaFZURHBKdjdBTUk5dGh0b0RpZE1VVGxFdVBCRE1Edjl5bi9KbDYrZkxsOCtYTGF1VmVzV0lFcWprbzJVb3JacUgxeXYvTUczSTJPam83SkNQcmd3UGpreVpPbkVrK2V1RDEzUXh5QjNFZ2JFRVRITTVBd3dDcUU1RnFNbWlJb0kyY29YYnEwVkwra0FteHUyclFwRW96UFJWQ0dyMTI2ZEVIYVF6bVBCUFlmcEozU21VZUFyOWkxdW5idGl1b3NRajdkUHdnd2h0YXRXOVBwU0luKy9mdC8rZVU3ZlA2RVFCSVNFQkRnNWVYbDdlMGRIaDZ1R0IwL1A1aG5hRVZoeFo0NWM4YUtjUTdkdVhQLy9QTVArdUJRMmJidFY5Q3VjNmRPNkVEbnpwMi8vdnByV0lzQURFMmxBSXdJV2pFakdPYWpqejdDbnlEaUlzMFl6Umd6WmpSU2F1d1BDRWJZYzNBMGZpU0NNcEpNQkxMQWpBUUZCUVVIQndjUjdGL2hhMkRnOWV2WE1iY1hMbHc0TDJKcmE0TWN0VlhMVnZBZSt3K2RGRy9WcWhVT0YrdlhyMWN1dVRiUW10L1p3LzNPTTdTaUlGYUd1N1FQQzNkcG93OE85QkFYYVVQOStnMVlWNzlCZ3diSUFSVDFSWURzZ3BJRUNkUWcwYjkzNzk2SXg5TDlyZ2o4U054bno1bnQ1K2VINUljdWVVb2dpaW5uTDJzUTZiQkx1THE2dWpDd2grQUFBOTJiTkdtQ09VUWlYcCtCb0k3WldMdDJyZkx2dFlFMi9jWW9wR2Z5RkQ5eHYvTU1yYWpuejUrenErZ0N4NDZoTzNiaXhBbjBRVUtJSEpvZUl5Q1FCaUE2ZnZ6eHgxQmNxaldpakQ1eXVTVy9rUzFBYXhNUnlHMWtaRFJyMWt3UER3L1VxVjY5ZWhVbEVoa1pHUnNibTVyMUE1UnlNSmlibTl2ZHUzZnZpemc1T1VGeEhIa1F1ZXZWcTRkOXNnRURNL3grK0owTjNPODhReXNLZmg4OGVKREp6VGdxM0NXQ1BxanExYWhSQTRwSTE4QmhEMEpqaVJJbE1vWnZQYVFpbWZyZHExY3Y4cHZ1SjBGNmJXeHNqSlRhMDlNVHdSdGFSNHVnRE9OenVPRXdtTHU3KzcxNzl4NCtVQVBGRWNXUnNXQU82OWF0Sy9uOTNzVHZiT0IrNXh4WkVHU3cxWVg4Qk52cHFBZ3lGRWlPUHNPR0RhdGV2VG9Va2Z3RzhCdkpkOG1TSmZYMTlSRzI4WWt5a2hPcFdra2c4TU55MURzenlVOW16L2IwOUVKdWtzSHY2R2pCNzFSaHc0a3psK1YyUkg4UGR3L0U3SWNQUmNPWjM2ZzJvS3FLSTR3MHp6ei81cWdRVFJHd1Q1OCtmZXEwK3JZNzRiR3VZOGRRRjBUOGJ0R2lSVk1SZUFPL0ZjRTdHOXEyYlR1UlhVNlg3cGNhTTJZTVVoUkVYOFJ2NUNSU2ZrTHhXemxuV1lEdDYvYmM3YzZkTzFEYzZaNlQ4Smp5M2J0d0hiT3RtQUU2MUppWm1TbEhvUTI0Mys4V0tTa3BpSk5SSkZXazBNRXdXUFh2dFg4WExWcTBjdVhLRlNJb0wxbXlwRnUzYmxXcVZFRXRyWjRJRHYzNGJOMjZOY1NsKy81UWFOT21EZkxzeVpNbkcyWEUwTkJ3MmJKbHUzYnQrdlBQUDNlSWJOKytmYytlUFM5ZnZreEtTb29Wcm81bVJORWpOaTR4TVZGOEdGL0c2OWYrL3Y1dTdtNmVuaDRFZGhodmIyOUhSMGRUVTFOTVdrajJqWTN4Z1l4bzlPalJxRXNJeTY5dEs3amY3d3EwUXVMajRoSHYvdnZ2dnpzaUtPUFl2blRwVWtYWWswQWxVaXBUTEt4YXRlcjgrZlBYckZtRG9QamJiNyt0WHIwYWYyNWhZUUZaRVpJejZobEhwMFRFZkVOTlZzOWhZWGhrSGU1dTdsS0hJQjBZR0FqRkZXZGFRSXA0b1RwOXRPdzhNb2IzRC9BUGtJRTlBUlZaNWNTMEFmZjdYWUZXQ1B4R1BReGEzeFZCR1lkMVJHdUlXNnRXTGNVNWJPVFd4WXNYTHlHQ3J4aXNXclZxdi96eUN6TGExUXhVM1pZdlg0N0VJSUU5a0piSUhyc2tLUFFxWnlVemFQWUV2NFZRbk41QmNmSmJJVGQ0L2ZxMVhHNGlPU2s1T0RpWXpwcXprK2RDQWNjS0hLYVVrOVFHM085M0JWb2hXZm1OaElRQzg4Y00xQmZwRTA0WGx5SDV2V0RCZ25YcjFxMWF0UXArSTVBakNVSHVUZy9zTVBlRVQzb2VRbjBiSEcyTk5MR2dBYzNlMi91Tm5ZcUV4bC9oZzY0VklZUkh2dUorNnpTMFF0N285MGNaa2NzTklMMFV2elg5VHBDMTcwT2dSdzdqTi9HMmZyTWJEWUtEZ2hVWFFZWDR6ZjNXYldpRmFQZ3RwT0RaK0MxbEpwcjVpY3p2dGN1V0xYOUx2Mm4yVUpza3B5Vy9wZnliUGRqSi9lWitad0d0RUEyL3M0dmZFTHA4K2ZMb0tkMmxEYk9SbE5lclYyL2h3b1hJdjljd0lEcituUEp2aGQrSjJlVGZsS3VJVzRsbVQvQTdpL2d0MUMvVE8rRVo1c3o5VGhiOGxzdk4vUzVDd0l3SER4N0FhVHBoVEg0N096dFQvVkx1TitRdVZhcVUrcnlKQnJObno4YWZMRjI2RkprSjVFWTRQM0hpUktiNWQ1Witad1ptejlQRFUrRTM2b3V3VnRoWGt0U2RVSE5ORXZZY0RiL1YrWGZBeXd3Zy8rYm5UM1FLTEw3dzZLU00yTmhZYkh0M2QvZVpNMmVhVERHWk5tM2FWQkZUVTlQdTNidkQydEtsUzFNZUFyOC8vZlJUOUJrL2Zqd3lFS2hzSmdLYk4yelk0T2pvaUwwQ2h3SzZkT2prNU9UcDZmazZNMkJoYWtxcTFKR1UyQk5PblRxMVo4K2VBd2NPN0dmczI3Y1A1UzFidHN5YU5XdW1DTXFZdlIwN2RtRDg3R1RtbmJzNDhPQ0RIWDdvbEVocXh2dFZNSDRjbytUUGpBcVBIY1hHWXU5UXJpTnR3UDB1SExENE1kRXhyMlJFUkVUQTh0dTNieXREc2Nnbm4zeFNYRHdWU0RkTG9lZldyVnRkWFYwbGo5bFY4UHVQSHorbWxad1RoRXN4eWE5VDREbTZaS0djbHBxRytURXdNR2pWcWxXWExsMDZNanAwNk5DNWMrZE1yNHdPR1RMa3hQRVRRc096d2syTjZTQk9xd3A3UTNPL0N3ZkI3NWlZU0JsUUNsRVRZYTlNbVRMSVEycldyQ2s5ZGw2OWVuWGsyY1dLRlJPcmtTVStMcW4yZS9Qdm0rRzA0bm9ROG5VS2grbHZYR0FvWjRMQnJqV21kK1Ezc21IRTVqNTkrdnp3d3cvUWQralFvZmdjTm14WTE2NWRNVjBwNDhkTVloNG1USnlJNVA2a3hVbUxqQ0J2VVJYMmh1WitGdzdrTjV5Vy9JNTRGVUYrNjdFOEJOVkU2ZEVFSUEvZTh2aTllZk5tMkN5dmo4SnZaQ1pJZFdncXlnbHJrSlhmTTJiTTZOR2p4K0RCZzZVSGdWRkdJTmRqdHlLV1lPZmQ2ZG5OY2VQR25UNTltcHBYbG9ONnBDcG44NUIvY0w4TEIyMzV2V1h6Rm9YZlZCOGx2N082V0NNbkgvM204YnZJSXZtdHlMOWhaNlorbHlwVlNqcHpBdlQxOVRHQWR2eG1Ua3RkY2xKeXBuNFBHREFBWldUaDVEZGRUdUorcStGK0s4RGl4OGJHeXUrdVJnaFBTRXk4ZCs5ZXBuNGpmcGRncDAySTlQd2tZLzVOK1FtTXozbCt3dDZFbGlaMXFTbkMxb21PaXA0NWMyYlBuajJSZGtzUHVxT2NWZncrZGZvVU5UeWJ3VytlbnhSWnNQaGhZV0VCQWVrbmdsRkduK3ZYcjhNWVJHdm9LMnNzclF6NnlOc25nVjdVcnNPMmJkdGNYRnl3VnpnNU9kRmpZQ2k3dXJybVBING54Q2RFMGszZTR1MjRPTEM4REhocGJHemNwVXVYZnYzNlNRKzZvOXkrZlhzOWRwZGlNUWI1UFg3OGVHcnZXQUdQMzBVUlduRDRkK3pZc2VYTGw2OWR1NWJ1OGdQcjE2K2ZNMmVPSG1zK0NnNlJ5Z2lXNk5POGVmTUJqUDc5KzFNQndMbC9yLzJMcEVKeGwzWkNRa0xPVisvVnExZk5malBidEduVGhvMGJoRzdEQnBUTnpNd3dSY3hEMWFwVks4c2dvU1hvcTVHUjBaWExWK3p0N05XZHZmb3pQRHhjVmRnYm12dGQwTkNDSnlZbUl2UWFHaG9pelozT21EWnRHbEtDMGFOSGt6clNBL0FsMkMzZFgzenhCYlZrUWxEREptUEdqcm52ZEY4NWdWeGlhV2xwWUdBZ3RRU0VlZmp4eHg5TlRFeXFWYXNtYXB3bEZjb0xPZElVa3lrTzF4MnVYcm1LN3RyVmEraW9nQnFGcXJBM05QZTdvSkg4M3JsejU5U3BVN0ZDWm92TW5UdDM0c1NKcEE0aU54VW9mcmR1M1hxTURHb21hdVRJa1hmWmEvVlNwV1lMNkovY3JOdC8vdmtIdTlhQ0JRdCtGcGsvZno0c3IxMjdGazFkbmhjcG1wMmcrSTJkNGZxLzF4SENTWEYwVjY0SVplNTNVVVR5ZThlT0hWT21URUZDUXMyOEkzWmk1U0F3a3pvS3Y5dTBhYU5vQUkwYTVibDM5NTQwenJ6eGo1WFZsS2xUNTgyYk41ZUJlVURaMU5TMFZpM0JiMVFpMVM1bkJzVnY4bHVTVytxNDMwVVI3bmRCa2tlLzAxZ0RMblJZcEQ3MFZkNUhEdmRiUXU0M3pKQVMzMW1zRlV4azFhU093dS9NOCs4eFkrN2R5Nm5mMGlhVGc1N256cDB6bVRJRmFjbFBJaWlibWs2bmErOEt2ekZYMUVZaGdkb25laUxMb3Z5YmttK2R5NzgxL2xKelhLbmM3NHdrSlNYdDNyMGIxVXBKTE1pTndEbHAwaVRKSkNxUVlTMCtiekZFQnQwUU1tREFnRHYvM1ZHOTNjcTB0YlZCdEY2NGNPRUNCcEx2WDM3NUJjY1RpdDlVdXlVMDIzd2pVR2VBMEhUeTVKTGRwVXYybDRTQy9hWDMrUHpKeTVjdmI5Kys3WGp6Wm1ob3FJcjlzWnViMjgyYk41MmNuR0pqWTZtUGZQZ2k3amNXV2JnVGxTNkFzN3YrWTJKaTE2eFpBMGNSaGlubFFEQkdHY3FTTkpKTWRCOXM3OTY5cGRPSUVxdFdyWHIyOUtsS1kyWGlhM0pHVWxKU3NLWGt0eGtTRHg4KzNQejc3NE1HRGNJTVVQdWFySW5OTWNPR0RhdFNwWXFlN09GODJ0OXExS2pSbzN1UFB1TExxUHIxNjlleFkwZk1pYXVySzBibC9OQlo2SnpWbjlIUjBacnpWc0RrMm04YXp1cWNGYjJ2eU5iV0ZsK2ZQM3R1WkdUVXQyL2ZuajE3bmo5L1huMHZyMnlNUmR6dnBNUWtxUlY2YW9JK0tEQ0lVcEU2ZGVwSVQ5L2djRitwVWlVcGNoUGtHV0txZEJsSVhraUlqMWRPak4xUzh1clZLNFJQWkFnUjRlRmhZV0V4TVRFMk5qYjYrdm80RGxBemhVMmJDUzBCTlczYVZENHRCZktBVGUrWDZ0cWw2NW5UWit6dDdXMEZMb0lMRnk0OGYvNWN4VGFvSnNvNUszQnk3VGNSR0JpSS9kWFkyQmhyRFYvWHJGNXRabWFHTlk2bHhkSEswOU5UbFhHTWROVzN5TGIvald4RTZYZFEwTVJKd3FuQXhvMGIxeFdwVjY4ZXN0N3MvVllRbjVuZldOdVJyeUxESTVqZmd1SGg4TnZ1b3QxWFgzMGx2WEQxdSsrK28wL01BT243aVVpcFVxWG9PVTQ1NVBkM1hiK3p0RHgzNWNvVktINkpBYzF4NkJZbXlySjVCY281SzNEeTRqY05pclZuTXNXRS9EWTBOSVRaS0x4NDhRSUhMeHliVkdMTWx1UG82TWo5VHZlYm5lcHUxS2hSSFJFb2pnUWdlNy9UNDNmdS9XN2R1blhYNzdvS2pZVjM2UXlFUXVmT0RSbzAwR041dG5TUyswT044OXg2VXZ6dTJ0WHlyT1hseTVmdDdPaENwVDBFb1BpdGEzN2pxR2Rzb283ZnlOam96WUJZbGIxNzkwSmlweUsvMlpBSkNRbi8vZmVmbFpYVjh1WExoZmRMRmIzMzcyalJid1U1OXh1NWhPQjMxNjZDMmpMSWI5UmlQOGlJZkI3MDVINWJwdnN0eEc4Ylc3Zm51aGkvNGJlSmlUcCtUNWd3QWF0UHhmSVdWRHVRdXFqRUJVWUJOYzRMNXk5Z1NnanpSZFR2elBMdnZQa3R2eVVyM2UrTTZ6SkQvdjBXZnN1L2xpbFRSaytkbnhRTnZ5TWpJNmRQbjQ3bFJIbkpraVZidG14Qkh3Y0hoK0VqaGtzVkRzVWZGdG4zdTJZU3Z3dlM3N0M4K0kyQVhVNUc1Y3FWTVJoU2R2aU4vSnZTRXgzTXYybTRCL2Z2cjE2OUdxdG05T2pSQ09GSXZvMk1qSDcrK1djRTh2Mzc5a2ZKWHU1S0ZQWHpKNXArNXo0L2tab0trUWpNNHZ3SjFqQTJBVDBjSkQwNVlXOW5UMzVUMnYxR3YrWHpJTkcrWFh2aC9BblRHanNNb3B2MUJldm56M1FvLzZiaFhGeGNEaHpZdjNmdjNsMjdkbUV4a2VraE51L2R0emVydTM2THVOK0ppWW4wS0FNK1VFRENCanZwL0NEMHFpbFNxMWF0cWxXckt2eW13SW4xNXNiQXNWRmRjQk1LV1BOSWZxaTlLR3JQSkRrcE9UUWs1TkNoUXp0MzdmenJyNy8yN05temUvZnVmZnYzelo4L0g2T1MzcG9nZ1o3RmloVXJXYktrOU9RRTZwcjRPbUxFQ0JOalk2U1VreG1JWDVoaE16TXpWMWRYRHc4UG1nZDNOM2ZNVDBoSWlJcHRVRTJVSzZMQXliWGZlYU9JK3czdDFNOFFSS25mWW9NMFkrellzUkMzWHIxNjFXWEFOa1hzcExlSXpKdzVVM0ZwaHNCK2d0eURqVmk5OHlCVXU3dTdqeG81Q3JHNVY2OWVQUmdvdEduVFJqNWFDZGo4NmFlZmxoSXBXN2FzdnI1K3FVOCsyYng1ODhtVEp3OGZQa3d2dERwNjlPakJnd2VSa0VSSFJhc2JNSW1MbzRMNldZcDNrano2cmRoTkZTaUhMdkorSTdMbXhPOGE3QjNCbWZvOWErYXNoNW1CaklWZWhLbCtoUWp6MjlQVDAyaXkwYUJCZzRZUEgwNXZZVVV3aHU1NnJCRVZLVlJMQVZ1U1cvSWJnMjNhdElsZWdYTG80Q0hpd0lFRHlFa2lYMFZTbGtVWkZ6NnhkTW9GZm1mSW85KzVoZnVkRTcrQmR2ejI4RFEwTU96ZnZ6L01wdnRWVUtCSEp5RTNQUm9za2IzZmlOa2tOd0s1NURkaXRydzZrVTlOVDJrRjduZEJrUFA4cEVyVytRa0ovWURkTkVJbGZNanlFL1hJNDFnVHhnWUdCdkNiYnNNYVBIZ3cvS1pIM3pYOWhzMWx4WmNYZy9MbHl5TmRRUUYrMHl2YUpML056YzN0THRxcC9aYTk4Wjc3WGRUOXptSDh6ajQvWVRjdU9jTnAvSzh1T0RzSEJRWEZzYllMQ2JnTzI3eTh2RkV2SERCZ0FMMGZIb3IvOE1NUG1jWnYxQ3pMbFN1bmFJRVduNmdHcVBNVDBXOTVmc0w5VmxMRS9WYkhiK0hwZFBVRDZwTGZkZXZXcFViWXFyRjIyTEtxWDg2WU1VTjZFUmsrMVoyVGs1ZVhGM3NkUW5wRHd5RWhJUzZQWE1hUEg5K25UeCtrNFBRa01ncmZmUE9ObnF6cEVwS2Iyc1BQRlBoTnI1QTl6RUFWRTZMWTJRbnhPNWJuSndxS3VOK0lyQ0hCSWFFTStCY1JIdUh0N1kwNkh6U3FXYk5tUlJsSUR4UiswNFh4ZnYzNmJTUTJiSkErMTYxYloyUmtST0daNnBFQWRVb0kzYUJCQXh3TmFzbEFrRWFveHZqcGVnMDFISTR4ejVvMTYvVHAwMGhGVG9pZ2ZPclVLY3hoV0ZoWWNIQndpQWpLRVJFUjFPU3MvSFpmMnFEdkp0enZnZ0FCRzhFVmZnUUZJOW9Hd1hLa3lIQVJlbFZuYldkS0lCVlcrRTIzOGlHN21ETm56dXc1MHJQSXMzLzZhUTZDZXBQUG1zZ0h6Z2FNVnI0ajRiQkFUekQ4dm5tenI2K3ZjQ3FiUVMveXcyR0JicU40MytGK0Z3VHdHMW9ITTFCQVhQVDA5RVRRMWN1eDMxMjZkSm1ma1FVTEZtQmxmdjMxMTZnTDRpQWdKZkdBbXNILzhNTVBxUlVlZ0RKU0VibmZnSjVBdzBIZzJiTm5qeDQ5Y3BIeCtNa1Q1RlNZYzBVTHRPL2RWdU4rRndSYThYdGVScUE0SW5yYnRtMzFXSTR1SHduU0Q4VkZVRDFXczVUTFhhbGlKZko3L2ZyMWJtNXVycTZ1ajBWUWZ2cjBxYnFGNWZkOE0zRy9Dd0x1ZDJIQi9TNEkzdDd2enAwN2k4M3ZxSUhpeU1LLytpcHp2NHV6KzZYRXh4VUUxMUZQcmM1T1FkSW5xRmV2SHZwdjJMQkI0VGZnZnVlT0l1OTNiRForMHdrTk9xZUJaRnJoOXllZmZLTEhIaXhZdUhEaEx6THdGWmEzYTlkTzRYZUZDaFhLc2FZM2M4anExYXN6NU4rdXdzZVRKMCs0MzdtZ3FQc2RIZlB5cGZBaTZpRDJVbW82ZnpKOCtIQzlqT2NIU1ZPRjN4K3g5aysrL1BMTGlSbVpOR25TdUhIaldyUm9vY2ZhU1JPYkpCRW94MjdYcmlKZXRFRjFFd05nU0tGdFRxRWhiOFpBNGFSNHQyN2R6TTNOL2Z6OE1EK2VFaDZlM3Q3ZU9XK0I5bDJHKzEwUVJFVkYrZnY3MDAzYkFRRUJzTnpkM1gzTW1ERjY3UDVZNlJSMTdkcTFFYzQxVTJlRjhRcmt2MHFwU01jT0hYdDA3d0Y5dTNmcjNxdG5MK3dleTVZdXd6d0lPMWlHVjZzS3Q2OEk1N09UNWU5VUU5Q05EY1Q5TGdpaW82UGxmaU5Ma2Z4dTJMQmhiWkU2ZGVwb1B0OUFmTUJhVE5aRW9UNTloZCtvai9icDNRZG05KzdWdTEvZmZ1M2J0bCs5YWpVOVdoRWZGeS92RUtkVE0yblpTdGhHT2dEM3V5QjRlNy8xTWo0TkthRTVqQjc1M2JrTHpPN1pveWNVNzl1bmI3dTI3WDc3N1RmNXJhMVNoenhicVRaRE43WVA5N3NnMElyZk9VSHVOOFZ2eWU5VnY2MVMzTnBLWFZaK3YrK1pOOEg5TGdnS3pHOTEvbDJHKzYyRysxMFFTUFhMQUVGdm9YN3A1dTQyWnJRVy9QNzQ0NC9sWjA3QXA2VktWYTVjR2RYSzcvdDlEN09SZkEvb1A2RER0eDFXcjE0ZEdSbkYvRTZYbS91dDRuNi9QWWpma0p0T0RvS1FrQkFQRDQreFk0VDdZOS9HNzJ5R2JONnMrVmRmZnZWRm15L1F0Vy9Ydm1xbHFrdVhMTTFWL3MzOXpnWEMraXFTZnROaXd1bjc5KzlMRHlpNHVMamN1bldMN2grc1g3LytHODhQNmpHVjA1OUtZQzk2cGZQaUhUcDBrRjZoVFF3ZUxEUUd1MlBIRG16WC9mdjNIemh3d056Y2ZNK2VQZmIyOWdueENVbUpTWWtKVUpwOXNvNU9CU3J0NW43bkNtRjlGV0cvM2R6Y3JheXNiRzF0Yld4c3JLMnRMMTY4ZVBiczJYNzkrdW14NXh1azlpRkF0V3JWTk0rSzZMSDJTZVJQdWFNR1daNjkrMmJHakJsdzk4OC8vOXpCMkxsejU3YnQydzRlUEJnUkx0eW9MWWpNUUFGZmxUTlhCT0IrNXkrMG1CN3VIaGN1WExDenN4TmFGTDU0RWFIMDNMbHozMy8vdlY1R3Z4SENzL0ZiOWhCd3V0K21wcWE3ZHUzYXZuMzdueUpidDI3OTIvenYwSkJRT00zZUZoZ1h6ejdmNWFkczhnL3VkLzVDaStudTduNysvSG55RzFFY2ZsdGFXdWFMM3p0MnFQME9WZnNkeitCK1orTWI5enZ2RklEZnUzZnZsdnplUVg3L3pmeE9TdmNiaG5PL2xiK0paT0YzbW9EOG02S1BITzQzL0tia0pNOStaNXAvYS9xOWJkczI3cmZFVy9pZEc0cTQzNVIvUTJzSzRaY3VYY3B0L2wyaVJJblNNc3FXTFZ1aGd2QnVQclhmZjNLL015ZXZmcWNKamFpbnBLVFFuK0V6aFpISzN3K1lFVnBNTnpjM0NFMG5UeUE2UXZpWk0yZHlkZjVFMGZORDlqd2xDdE9tVGR1NVl5ZHlrbTBNQlBJdFc3WWNPSENBNTk5RXJ2Mm00YTVldVdwaVlqSnExQ2g2UHpRMjJOU3BVeWRObW1Sa1pJUURjVHhydEZjK3hpTGlOeGI4eFlzWGZqSjhmWDBEQXdPaFhhdFdyWHIxNnRXZDZORzlhOWV1dFd2VmhyWElPcVFYM3dETkJrbm9kSGk5ZXZVNlpLUmp4NDVmZmZXVmhZVUZwdWpsNmVYdDVVMmRsNWNYcGl2Y0ZaZ3FCQ0FKV3UxRmpUejZmZStlMDk2OWV6dDM2a1N2M2ZucnI3L2dPb0tUaTRzTFZyZm1xVlphdWJyOGZpbTJOREV4TWMrZVBYc3E0OG1USng0ZUhvc1dMVkpZbTNPS3MvZGZObTNhdEorTTd4azllL1owY0hCUXNmYkZGUzhFMUxYVm0xZHk3VGNCZzRPRGc1SDgwZnRKek0zTlo4K2UvZno1ODJ6R0FtN2V2S25iZnNmR3hsSVQzUkxRSFFGMTJiSmxjQlRwdGZRVUdTQnhNODFHNU5BYktELzc3TE0rREhyeEpKVzdkZXQyOWVwVjJJenAwcWx1QW9lUm9obXROY21MM3pSb2VIaTRzWWt4WWpiS1I0NGN3UkVURVFXVzM3OS9QeVZqMHpCWTEvUVdBU1NkYytmT3BYY0Zaak85OXhMeU95Wnp2NWN1WFFwSGtWdVhsSkhwZFhoTmFEZVEvQ2I2TXBEcDRKQ0lXQ09yUjZwSlM5V3QxWnRYOHU0M2FqQkl3U2svOGZYeFFXYmk3T3k4WWNPR1diTm1JVVdod1dqSXFLZ29UQU9wZVpjdVhlQTNaUy9aVE8rOWhQdjlUcEozdjJPaVk2WlBuMjV2YnkvMUFYZnUzT25kcTlmang0K0ZudUlxUmpnUENRNTUrZkxsOGVQSGtaOVFkTTltZXU4RnRQZktVYkg4Ky9tejUwaTduejFOejhLUmZ5OVpza1JQdzIvbG8yYnNsaW5ZVEEvbVNDajg1dmxKcnNpTDN5cVduTnkrZlh2bzBLRTdkdXhBSW83Z1RRME0vUEhISDlPbVRmUDE5VlZsTmtaZHpyOFppUWtKUGo0KzNqSVF2UDM5L1Zlc1dLSEhtb0tRdnpnaFk1ak9Fa3JRZWYweWIrVGFieHJ1MHFWTDQ4ZU54NHJ1M2F2M3poMDd0Mi9mUG5ueTVBa1RKaUE1Z2ZlWm5EL1JyZmR6NDlDRXd4YzFlVXhkNUt0STlQSDA5RHgzN3R6WnMyY3RSVkErZi83OGxDbFQ0R2pWcWxYbDEyanExS25UdUhIalJqTHd0WDc5K21YTGxzV3ZVb1B6K0lvcVpzT0dEUlVuQjBIYnRtM3AvQ0NtNnlXQ3NwK2ZuK1ltS0pyazJtOGlNU0VSOVVWcThEZEdhT3M4bHIxb01RS3BkcVpIUnAwNS8wMnpuWlNZNU9qb1NGY2k2VFhWZG5aMjJIczNidHlvREw4TVJPdGF0V3BKRFVmVllPM1lJeUlnTDErMGFOR3Z4S0pGU0dObXpwejUrZWVmTjJuU3BLbU1aczJhMVdSdHFjbWg4eXFJS1d2WHJ2MU5aTldxVlRoV0lOeEVSMGRMYzF1VXlhUGZ1VVhIL0U1TVRFUmlRRmNpYlJqVzF0WndmYzJhTlhyc2paVVZLMWFzSUZLK2ZQbktsU3ZEYitraVBENHhERlJHZFJ4L3NwYUJ3dnIxNnhjdVhOaTZkZXZtelp2RDhzOWJDRjJMRmkxYXRteFp1M1p0UFhhdGg1Snk2ZnJsbURGalZxNWN1VXhrK2ZMbGl4Y3Yzcng1YzVUR0swaUxKbm4wT3kxcmxJTXlkTS92R3c0MzZFa0ZXd1lVdjN6NU1qVFZZNjFKSWErUTdvV0NpSlVxQ1kxWkt2dzJOVFhGOEt0azRPdjgrZlAvOTcvL0lXQi9Mb2l0QnFwbjVmZllzV01SdHBlTHJGeXhndDRsemYwbTh1aDNidEZGdngzZ044bE5maU4razk5bDJTdklwSHBrOGVMRnFURjV1ZC9JeFdmTW1MRnUzVHBvdlpwQmZpOVlzRUQwTzExd3lXK3FhMUtoWk1tUzVMZVptUmxGYm9Ea0JQR2IreTNCL1g0ejZZY21kZ3V3aWxVL0hLNW5tWi9JL2FiejNMQzVRWU1HOVdYQVY5VEZrWkNza1lHdnYvenlTemI1Q2ZjN3QzQy84MEp5Y3ZLdFc3YzA2NWZJcCtGY3VYTGxKTDlMbENoQkRjQnFndm9sVW1kVU1TbDFSZ0YyenBrekJ6Wi85dGxuQ09HYTljdXMvSmJ5a3hVOFA4a0k5L3NOeE1URWhJYUdob21nSEJFUjRlUGppenJjcjcvK1NsNFNjR3ZDaEFsNnJFVmpKTWZrTjJJNStuVHYzaDIxeVduVHAwMFhRZko5OE9CQjdDSFdGNnpWWExDMnUyaUhudDk5OTkwMzMzelRzV05INld4Z3AwNmRZTHllckVFSXllOVJvMFl0WjNYS0pRek1CbXFvbXpadGlvcmtmZ3R3djdPR3phQ3ZyKytkTzNlRVYvTXg3dDY5Nit6c0RDOFJVMGsxQlpDYjBoS2lldlhxNklrNC9lVEpFM3BqSlRVUjhlalJvOWpZV09VVVZhb1hMMTZNR3p0MjZKQWhJNFlQLzJIWU1PcEdqaGhCN1h6amFFQlRnZDhmc1N0RXc0Y1B4MjZHckYzZUtEalMrc2pJU05WN3NaTHpHZTUzMXJBWjlQUHpnOU1QSGp5NHo0RG9VQk1KeWJmZmZGdXhZb1Y2OWVwSnJmTUE1Tm1TMmRuNERUQVNIQm1FaVlqcklZMnRGdXhPU0RtR0RCNDhuTDN6VDNqdDM5Q2hjSjM3blRlNDMxbERmdnNLZnBQY2NyL2J0MjhQMitoTUNGR3RXclZLbFNybHhHK0szem4xZXhqM08rOXd2N1BtVFg0WEsxWk03amVvV0xGaVR2eDJ6dFJ2VnNEaFlseEd2OUZ4di9NTTl6dExhQTRSVU5WK093a2ZTTUd6OTF0Zlh4K1ZTLzJQaFUvQS9TNWN1TjlaSWdrSHArWDV0NHVMeTZWTG1mdU4vSVRlZHlPQkJCMFdtcG1aS2ZKdmwwY3VXZms5ZnR3NDVOeW9VMEp4NmthTkdJSEpjYi96QVBmN0RTQisvL2ZmZi9Meko5RFV6czRPd2hVdlhseVJmMy82NmFma240SWxTNVk4ZnZ3WXV3ZjJFL3c1UHFGNHBuNWpjb2pXL2ZyMkZkNEQxYjgvZFlNR0R2eWlUUnM5OFZrSFBRMi9TVzd5ZTk2OGVkeHZpYUxvTnliOU92bDFjbkt5OEZJbFZraDVuUkw1S3RKTndYTTNMMCt2VFpzMmZmLzk5Nk5Iang0SlJpQ3FqaGcxYXRTZ1FZTnExS2hCYlcvVFhhelVHa25idG0zWHJGbXplZk5tL05YdkRKUlhyMTd0NE9BUUZ4Y24zRThyRWgwVnBiaUZsVlpJUkVURXNhTkh6YzNORHg0OCtMZklrU05INkE1YlRLVTRBNEc4SkR2LzNhTkhqMG1USm8wZlAzNENZK0xFaVpoVnJPVHc4SEJwbkVXWkl1bDNhcHJRcEdwU2hyWlZnNEtDYmpuZWtuZU9OeDN2L0hjWDlvaFJXRWxKOWd3T1hhUWt2M3YyN0dsalkzUGp4bzEvUmE1ZnYzNzU4bVYvZjMvbFRHaEFLeVEyTnZiMjdkc1l3MDNpeGsyVTc5eTVRMCs0SWZuQlJPbjhPdDFmOWUyMzN3NGRPaFQ3MjJBR3l2MzY5VE14TVFrTkRaWEdXWlFwdW41TGtOL0J3Y0YzL3J1RDdpNytROGZLcUZOT256NWRqNzJsVXJyZkZaWEk4dVhMUXkvNWVSTHl1MXUzYnBhV2x2YjJsNmdwTm9CTTVzS0ZDOTdlM3NKME02S2NLOVlIU1F1Qy9aVXJWNjZLb0F6RnFZVUorRTJYUlFINTNiRmpSMVJFcGNhL1VVWmVNM1hxMUxDd01HbWNSUm51dDlKdnFmdnY5bi93ZTlyVWFYcnNCY0VmWm9TQ3FNTHY3dDI3bnp0M0RnRWJXdE45S1pjdVhiSzJ0dkh4OFJHbW0rMGlTMzdEWm1oOVRRUmx4SEVrMlhLL1M0cnh1d05yMzU3N25SWGNiKzYzTGxOMC9WWm4zN0w4RzRrdm5KYTYyN2R1Mzd2ckJGYzAvUzVXckZqcDBxWExsU3NudmRVSjV1bXgycDZWbFJYOEpybkpiMlRrdWZJN0ovbUo1RGZ5aytIRGg4TnM0VUxuc0dFb0R4dzRrUHN0VVVUOVRrNUtsa1h3SlBpTkNwbHdCY2ZwL29QN0R4NDRQYUR5SStkSHB0Tk5vVkhsU3BYbGZuK28wWFFKUFEzWnBYT1hzMmZQUW10Ylc5dE04Mi9sckdpQSt1V3RXN2RRSzRYVERneVVzZU5SQ3hPYWZuL3p6VGREaGd3Wk5IRGdJQWJLZmZ2Mk5UWTI1dlZMb2lqNmpSa1Ftc0FSbThTSmk0dUQ0cDZlbnFkT25UcDk2clRVNGF2bFdVdDZTeVhTajJJaUg3TGtwSDZEK3A5OTlsa1RrV2JObWlQR2p4Z3hBZ0hiMGRIeGhnaFNDeXcxblQ5UkxISnFScWhabUlpSUNOUlFUNXc0WVNGeTh1Uko3RE96WnM3VVk0Y1J5Vzk5ZlgzMDZkV3IxK1RKa3lkTm1tVEFNRFEwSERkdTNNL3o1dkh6ZzBSUjlGdklSZ0tEQWdJQ1hnWUliNlNFZkdHaG9VY09INkVBV2Jwc2FmMVMrdFI5OHVrbml2WmRrWXA4OE1FSDVjdVh4L0FJcTRpdmtzY0l0QzZQWE9KWVM4UUpHZEZzclFHTGp4MHNPaW82QnYreDkvUkZSVVVsSmlTNnVycDI2OWJ0NjYrLzd0U3BrL3orNzZaTm0yTDJNRFA2akZLbFNsSEd2MnpwVW10cjYzT1dsbGJuemdtZGxaVWxPNERFYXpUaFd6UXBpbjRuSjcrRzJ5LzhYdmkvOFBmMzgvZno5UXNPQ3Q2Ly93QjBxVml4b2pyaEVDbFJvb1Q4eFFrdys0TVBoQ2VJa1dRSEJnYjYrdnJLbTBJT0NRbFJUaXdyMGxSeHNlb3JQblRWNTlXclY1RFMrYUh6RjE5ODBheFpzMWF0V2dtUHFERmF0bXhadDI3ZDR1d1ZKYlNiSWZ1bldWMjdkdTFOMUVldlhFRTlsTG9ybHk4anc2SFd2Z3R4SmI4akZFVy9FVTJGc08zbkwvZ055ZjFlaEFTSG1COHcxMlB4Vy81bzhFZnNOTE1rdCtpM0VMOHYybDZFMEI0ZUhwNGk3dTd1R0czNjB0SERtdUlqbTBwa2ZoTW9DMzQ3TzdkcjF3NUN3L0xXSW0zYXRLbGZ2ejVTSThsdjdITGs5NXJWcTYvLysrOGxlL3ZMbHk2aGc5d280MkNDZzRZd2tVd25YWlFveW42eitKM1JieVM0VkZPVWdPSWE4VnZ3Mis2aTNZc1hmb3FHb3dKZkJ0SnQzRzhtYTcvYnRtMkxtQTJuL3ljQ3hiUDBlODBhMUVESmJPcEV2M244RmlpU2ZpY0xmcXZ6azNTL2hmeUUrNjFqNU4zdk5QR2x6bW5pTzNmUysyaU02eDN4bXlhYW5Kd2M0QitBdEJ0bW8vUDE4VVYxOHdETHZ6WDlwblBibFVXcVZhdFd2a0w1NnRXcjI5blpaV2o0enpzN3Y5TTBTVTJMaVlsOUpSREpQb1gyMFZFM2ZmamdJZmtOcDBsdUpPTGtkd24yaXFsUEdXWEtsS2xFK1Rmekcxb2pCYWZ1TWp1QncvTnZJdTkrNTRwM3hHOGlKU1VsTkRRVWRVcUViWFNRTy9KVjVPRkRoelg5bHU2MzFzVGEyaHI1TjNKdUR4RjUvcDBUY0JpUm4yT2hSbzJmUG5tYVZmNnR4ODZ5MDlsMzFEWHB5Znpmek16ZzlFVmJXN3VMRjlIWjI5bloydGhjdjM2ZDU5OUVIdjFHQ0h6MDZOSDU4K2YvK2VlZnUzZnYwclp4Y25MQzEydlhybW5lZkZ4WWZpUFZUcEsxSFl4eVNtcEtlSGo0bVRObmpoMDdkcHlCd3FsVHArYlBuNi9Ib3JYVXhraEpkZ05xcDA2ZHhvMGJOM3IwNkRHTXNXUEhqaHc1MHREUThQNzkreGhQVUZCUXNBaktDTU4wK0pLallsY2xBd01EZzBRd2NFQkF3S1ZMbHpEZHMyZlBubUdjUG4zYXlzcHE1ODZkVFpvMHFWZXZYc09HRFJ2SXFKT1J1blhya3ZINzl1N0RmdlhZMWZYeDQ4ZFAwRDE1NHVycTZ1N21qb1VWbHI4ZzF2RTdUZTc5Wm9NaDRPM2V2WHZxMUtrLy8venpnQUVEYnQxeWhOd1R3WVNKZzRjTXhtYWorS0VTUjFwWWZ0TmQxMElMeGd3NkJ3Y0RHalZzSkVWaWllTEYxRThQRU1oRzhMbGl4UXFrczlJRmMreTlLS01QeHF5Y0dFTWhOeTBzVWhkN2Uzc2FBLzRjNjhINmduV1hMbDNrazhzZUNQM05OOTk4TFlMeXQ5OStpelRHNGJyUS9qY25LM0x2TnlNeElSRzVwdENDUjVwcThhK0wvL2pqajdsejUyNzlZeXRDbW8yTmpZR0JnYUtKKzhMMVcxNkh3NDZISU5lNWMyZDVEb0FDNHFVZWV5NUdVa3J1TjVrTnNBZ29POTY4U2EyWEtKWWlvOXNDdExEZTN0N1FHbW5Ednd3SEI0ZUxGeThPR3pxc1JvMGFMVnEwa0xkVDFhQkJReVFoSDdBV05LVlVSSSs5SDFDU1crNzM5WCt2cThUVks4NUVlcEdUUjc4bFVJOUJDTiszYngrTzNjZ0MwY2ZMeTd2Lzk5OC9lL1pNcFRIU0d6ZHVGSzdmaU4rQzM0K2ZkUGkyQTN4cTJiS1YxSUFsUFNqNVJyK2wrSjFidnk5ZnZreCtZd3p3MjliV2R2RGd3UitWL0toUm8wYjFSSkJ5MUtwVlMzRnpDMzFGL003R2IvNjJuYXpJcTkvMHN2blVOTXV6bHNPR0RVTnlZbXhzakEyUFgxNitmTm1uVHgvRVNKVVlWeUFaanM3SVoyYk1tSUV3WDVEdjM4bktiOGp4MldlZklZVG53ZTg4eEc4dkx5LzRUY0U3M2U5Qmc0dVhLSzd3dTJiTm1pUzBOQ2YwRmI5cTVpZVlmN1hmQmJJeTMwZnk2amZqNnBXcmd3Y05RcTBJOVRaazNyWTJGTCs5dmhmak4yMWRwTHdJWFVlUEhwMDNiOTY3NERlcVlybnkyOUhSVVptZk9Ecm15bTk1L0Zibko3WVhzL0s3UklrUzlJUWxRZFZjcEUrbzZkSnJTUURLU0xIYXRHbURjV3JPQmtjaUwzN1RvSGZ2M0RXWVpIRDQ4R0dxU2k1ZHVoVGpRdjU5NFlLMW9hRmhwcStZdWxuZzc1ZUMzMHpzYVBKYnlyK1JuN3pSNzBxVkt1RnorZkxsMEJGMlhoRzVkUGtTRXExTVd3L1VoQllUZmwrNmRJbUNONENVaUFWWitTM05nSUk2ZGVyVXJzT2FnYXRURytrS3pmQzFxOWVrcVhBMHliWGZORnhJU0FnOTBUMXo1c3pGaXhlZlAzOGVzZHpJeUdqaXhJbERoZ3g1Ujg2ZllCTEJRY0ZlWGw3ZUlpZ0hCQVRBMXdZTkdsU29VS0Y2OWVwVkdGV3JWaTFmdnJ6Q0oycWFaOCtlUFdHaFlmNHYvQU1rL0FPUWcyRnZpWlVSRXhPRFJYWjNkei80OTBIekErWi80ei9pZ1BtaFE0ZXdpbjc0NFFkVVVVWXpVQmcrZkhpVEprM293ZVR5SW1YTGxzV2N0R3ZYRG9lWGIwUVFyYkg3NGRCbmJXMTlYdVRDaFF0VXdPelFraW9YbnNQSXRkOUVUSFRNN2R1M0x3b1hGT3dSc0hIRVI2UjBkbmEyc2JHQlBlL0krVzlNd3NmSEIzTkZyeThFS0NOeGdpaDA0VVp4cVZJQnFucjR0TEN3VUFuem4yRnVzUWl2SWlMZ3ZkU0Zob1JHUlVZaE1LTTJnajJjTllzcE1HVG9FSmpkdUhGajVkaXpBSDZqM2pscTFLZ1JJMFlJTFZLTUhJbWRvV2ZQbnNlUEg1ZlBBQ2VINU5IdjNGSllmaU5OZ3RhUEg3c1NFTjNOelEwN1laa3laU0NUdnI3K0J6SVVxbEdxY09MRUNSVzdUcFFpZ3ZuSFY2VHk0V0hoVWdmRjRUY1NNQU1EQTNyYVlKTEk1TW1UTzNUb29NY1NIaWxVbHl0WGprNzhTVk9ubmExYXRXb0RCdzZFM05ncmhqUGdlbzhlUFpBSHBxYWt2azU2VFcyMnFMdWsxeG5PREhJMHlLdmY3UHhKcWtpYWlGQitaKzQva2Z4VzJ5MzQvWWo4THYxcGFjaEVqM2hsQmZsOTh1UkpGZk5iV3RoVThqdmlWVmlvaHQ4M2JrNllPR0hDaFBIQ2xTNFJLRTZ0cTFGTk1Tc2t2d2NOR2dTL1NXN0o3eU5IanFTbHBxVmdMOE9lSm55cU8xcVpuS3pJcTkrNXBFajVQWDU4dnZxZG9jdjBkaTZPUkZIelc1MmZsQzZkVTc4cFB4SGFjSk9CcnhIaEVjaTU1ZmwzNUt2SUd3NDNoT2pOV2tzYkw1S1YzeCt5NS9DbDY1UlVKVUNsRnZtMzBCU2NDT3FqdlhyMjVIN25EVjMzMjBmdHR3c0Q1ZWR1eitGM3FWS2w5TjdrTjlVdlQ1MDZwUnd2SXlZbVJubzVONzJmT3o0dUhuVnUySXpnTFNYZktCc2FHbjc5OWRkNjdGWnl4U1ErRk45bkNTZ2RSLzF5d0lBQjFLUUpOZmtBeGIvNzdqdmszencveVFNNjdyZWZueC9rZmlLQ3NvZUh4OFdMRitsc0lDd3ZKcUs0S2c2cXNmT0R1M2Z2RGc0SnhuaGVpUGo3KytQcms4ZFBYQjY1WUwraERydk9zNmRQTFMwdGZ4QmVtelBzQnhFUzlJc3Z2dEJqOFZ1SzFsbWR1c0ZPTldiTUdPd1NrOFJING8yTWpEQVNDd3VMTE9KM3ZxL0c5eHBkOWh1VllJUlY5UzJzUVVJWEZDamN3bnJ2M3IybVRadFdxVktsZHUzYTlEWjRwQ0owTlVjT0JkUldyVm9oL2UzV3JWdDNCaFdFVjV4OS9YVzdkdTNhdDB2bjYvYnRNWERseXBVeEt2cVVVMUdFdnBZcFV3Wkp5T3paczJlS3pKbzFhK3JVcVN0WHJuejgrTEczdDdmaXlVNnBQUk5ObEV2TmthSFRmZ3RaUkd4RVJBUTlJQ09jMFFzUGo0dUxRNWJTc21WTE9GMi9mdjI2ZGV2UzdkUklEQlIrRS9yNituQ3h0QXg4cGJaSGNnNytCT09YcmlXQnNtWExtcHFhcmx1M2psNWVETmFzV2JOaXhZcTllL2ZTbmJkVWtaVW9tTldsZStpNjM5RXhjRHBDSkN3c0xEWTIxdG5aK2ZQUFAwZllodC9TNHdKVldRTnJjdWlNZUZXTlZ3K0RldlhxVmF0V2pYeVZ3QmlvR1NBcENhRThCT01wVjY1YyttQVF2V29WR0k5b3ZXclZLamk5a21GbVpyWmt5WktkTzNkaVAwVDlOU0VoSVZFRTVkZkp5aFpVT0RtQit5MzZyUkcveVc5a0dzS05IeGxCbGt5dEpDdUF0ZlJYQ3VqQ3UrUTNJTDhSdHNsczhOdHZ2eTFkdW5UWHJsMlJrWkd2WDcrRzFvb1c1SlRMeHNrQjNHL3V0eTZqNjM3SFpQQWJaZks3VFpzMnlER2FOR25TaU5HNGNXT2s0M1NSWEVvdzZCUkhIdnhXb01ldXpOTklhSGNDMWF0WG56NTkrdHExYTZIMUtnWmNYNzU4K2U3ZHU3bmZXa1RIL1k2T2prYk1EaGRCR2NZL2VQQ0FIajdQQ1ZDVDZxQnlZQ3I1TGIvN0QyVzZyVVhCaHhwbkhva0pFeVlnWUM5YXRPaFh4dUlsaStmUG43OTE2OVpYa2EvSTcwU3hFZWRFMW9LemN0azRPVURIL1k2UGo0K1dFUlVWaGJxYWg0ZkhERk5UZzBrR2t5ZFBObVFZR3h2Mzc5OGZWVWFLelhMUWt6SUtDYXBab3NwWUpqT29PWEFKYWdXemE5ZXVtQVJOUzJMNzl1MFdKeTJPcTUvaVAzN2krSWtqUjQ1WVcxdmpDSlB5V3JoRVNxamZnTVVlQ3VIa0ZoMzNPMU1RQ3dNQzB0djNRU0VvTU1qUzBySmp4NDY5ZXZYcTJiTm5EeEY4YmRSWWVOS2Uwb3czQXIvcE1RV0paczJhNmJHYnlMRjNoWWFHaG9uZ1lKS2N4SnB3NE9RblJkVHZ3TUJBNFRHRmdKY3YvVi82di9BUERRbTFzckxxMUtsVDc5NjlTWEVDWmJwMVczcnhaRmJRRHFEcGQvUG16ZEYvNzk2OU9KS2dBa0ROVkJEOGxGOEJVQlQ5VG43OSt1VkxRV3Nvam83YUg3UTZKL2d0bDF2dWQxYVgweVd5OS91dnYvNktpNHREekg2bHZ0Z2tmRklUUElXNEhvb0NSZEZ2SVg2L0RBd1EvWWJvZ3Q4c2Z1ZXIzeEd5SzZtUzM1eDhoZnVkd1c5RmZvS3ZVbjZTZnNJdk0rZ2tDU3FVOEZ0K3ZaUDdYYmdVWWIrWjNKTGYvMWo5ODkxMzMvWHIxNit2REh4dDJiSmwxYXBWYTlXcVZmTk4xS2hSbzA2ZE9xaFFOcGZSaHIwM2Z0KytmZHp2UXFFbytxM092Mlh2YndnT0NqNXo1Z3ppcnREcXRycGQ0disxK2w4cnN2UHQyYkZqQitYZjBwVW13UDB1QUlxaTM1aUJ1Tmk0MkpoWTZtSmlZaFBpRTd5OHZLeXRyVzFzYkd4dDByRzF0Yld3c0RoNDhPQ2huSEhreUJFTWYwckc2ZE9uang0OTZ1TGlrdkk2SlRIOWppa0JXZytjZktVbytzMHBPbkMvVmRUZ2FsbytvNXdvcDBEZ2ZuTjBHZTQzUjVmSnU5K0tnNi84Sy9XUncvM21GQXA1OXp0WGNMODVoVUllL2NiUWRFS1g3cWpHMThTRVJQb2FFUkdSa0pDZ0dCMzNtMU1vNU5Gdk9MMXYzNzRoUTRUR1VYLzk5VmNmSHg4cks2c2hqSEhqeGxsYld5ZXk5eStxeEpHbXBnaE9YN3QyamZ2TktVank2SGQwZExTam8rUHQyN2RkWFYwTkRRMFBIejY4WThlT2FkT20zYnAxeTgvUEx5dzBOTk9MRnpkdk9uSy9PUVZKSHYxT1pXMU1Vbm5GaWhWYkdMTm56M1p5Y29xS2lsSTBxcFR5T29YZStIanMrSEg0VFkraVpETTlEa2RiNU5GdmxmZ0h6NTQ5R3pac21LMnQ3ZWxUcC92Mzd6OWd3QUJqWTJQSG00NWtQdzBENC9mdjN6OXg0c1FPSFRyTW5UdFgvaE9IazYvazBXOGFHaUY1MXN4WlM1Y3VSWGdPRFFuMTl2RUcyN1p0TXpVMWxiODNBOEgrRlh1Lytwa3paK0EzNWVMWlRJL0QwUlo1OFpzR2pRaVBXTE5tRGVRT0NncVMvM3J6NXMyQkF3ZTZ1N3RMUTByY0tQRDNTM0dLT0hueEd5UWtKR3phdEtsbXpab0hEaHk0ZCsrZWw1ZlhuVHQzYnR5QXdEZGgvQzhMZjBGRVY4bEdTazd6OHllY0FpYlhmdE53UVlHQjY5ZHZRS29OWDAxTVRDd3NMUGJ0MnpkajVveHAwNmFodXZuNDhXUEY2UGo1YjA2aGtHdS9KZkFIOUxJbDZSVUNhZlQrbmN4R3hQM21GQXA1OXp0WGNMODVoY0piK1MzOFRacndUOFkrbVl5SSs4MHBGTjdLNzV6RC9lWVVDdHh2amk3RC9lYm9NdHh2amk3RC9lYm9NdHh2amk3RC9lYm9NdHh2amk1VENINUx6emR3T1BtS3F1RDluanQzcnZJM0RpZmYyTEpsUzRINlBXdldyTmpZMklTRWhEaEdmQUhDSmxkQVV5eWtwU3M0Q21VQmN6dkJ4TVRFZGV2WC9XMXVyaW9ZdngwY0hDcVVyekNWWVdSa05Ibnk1Q2tGdzlTcCtEQTBORFF4TVpuS3l2bUt0SFFGTUMwSkxKMXhnU3pkbEVKY1FHUGpYRTNSMU5TMGR1M2FodzRkVXVXMzN6VDJ5TWhJWjhiVHAwL1hybDJMV1A2SWdUNVV5QTh3OHNlUEgxKy9mdjM3NzcrM1BHdjU1TW1UL0o3Y3MyZlBObTNjaEpWTEU4cnZ5V0hwSEIwZCsvZnZmL2JzV1V6NjRjT0h5b0cwaXZORFlRRzNiZHNHMi9KN1pUNWlDK2ppNHVMazVOUzNiOStUSjA4K2YvNDhWd3VJZ2VsUkcycEZOVk8wNExkQXhnbWNPblZxNDhhTkdYcmxKekV4TVFnNUhoNGV5aC95QnlzcnEzWHIxaW43NWh1SkNRbXdqWjRKTEJndVhyeG9abWFtN0p1ZklINWpUMWIyMVFaYThwdEZjU1FxZFA3a3hJa1RHemR0RW1xNXdnTVMrUWhOTGl3c0RBY3N4QnVVNmJHTWZJSW1kK2JNR2ZpZHlwNzJVQTZoVldoeU9EQmk2V2p6NSt2U3BZcFR0TGEyWHJseXBZcGxudmtOcG9KTUd1RUp3VmhZd05lNVc4QnNNaE5DYTM0VE5EMGNjYTVldmFyOExSK2d5YUZTZS9yMDZjREFRS21QbGtsVFNTTGoyeVBuUjVjdlh5YTU4MlZ5WXJDZ3lTVW1KR0tQZXZueXBZcjVuYTlUSkw5ZFhWMFJ3bFdpMy9reFJXa0IwOWlUWWhZV0ZuNStmcXA4V0VBdCs2MUVxL1A2amlDOFVmdDEraHUxdGJzOU5CRU1rRTJ1QUlCMlNJcmtmZko3R1pQejdYVzRXdlliKzE5QVFBQ09OVzV1YmdpcnlwKzFEYmFFbDZjWFZZT2VQbm1DVUtjY1FodmdBSXJGZWZEZ2dZK1BEOFZVNUF3SWNwaG9hR2lvS2g4MlA2cE5HTG5MSTVmbzZHajZpc2xSYlN3a0pFVFJoSmhXd0JJaHdjT0dlL3IwYVZTVU1ORlhyMTVoQnREUk1tb1JTUExpeFFzNkc0R3cvVHI1ZFZob3FMQ0FENFVGeE1MU1N0WUtXdk9idHJHM2wvZlBQLy9jcjErL1FZTUhJWTNMankxQjBPU3crWkc2ZmZ2dHQ4T0hELy94eHg4VkRWZThQVFFxZjMvL2FkT202ZW5wWWRHU2twS3czeDQ0Y0tCWHIxNWR1blRadW5WcjVLdElhVWh0Z2VQMXR4MisxZjlJLzcvYi8ySE1tRXJyMXEwSERScGtZR0NBMUVqcmpZUkJPQWNIaDdGang0NGNPWExJa0NISGpoMkQzT2JtNXAwN2QrN1RwODhmZi95QnJ5cXRUSkdOSUNJaUF1TWNNR0RBaUJFanNHS3hDKzNidDY5NTgrWURCdzVFUmRQT3pnNHJXUmoyN1NlblJiOXAxaytlUERsMTZ0U2dvS0JEaHc3OTlOTlAyRTJGWDdReG93cG9uRkZSVVJNblRzUWF3ZFN4MWJVK0lScGhURXpNL2Z2M3NVbG16Wm9GRlJ3ZEhTZE5tZ1FoN3Q2OWkrMWhhMnNyRGFrdHZMMjlMMSs2akozMmhzTU53ZTgvdHFMQ1IzdHZmaXdtQmRUbno1OG54TWVmczdTY01XUEd3WU1Ic1MvZHVIRURFUjBSeE1iR1JxVzlaWXlOaVgzMjdCbHFGQkhoNFRObnp0eTVjeWZXN2RLbFM2a0dwZDBGMUk3Zk5FTVI0UkZyMTY3ZHNtVUx5dmZ1M1pzK2ZmcjE2OWVsWDdVTGpSTkgxVkdqUm0zZXZCazFXa1RaL0pnUTdiY3c0T2pSbzlqd0tuYjJjK2FNbVpBZWg5R1ZaaXYvK3VzdllTanRUWnBHQmVFUVVNbnZqUnMzVGpLWWhCM0ozZDA5Lzk1c1QrTzhldlhxN05telY2OWVqWU1WRXJQa3BLUmx5NWJ0M3IxYkdrQXIwS2l3VmhjdVhMaHQyN2IxNjljalR1R0Fqd1drMXJlMU5TMXQrbzNNRzN2aC9uMzdVWDd5K0FsMnpmeUliUVNOTXk0MkRuc1VJZzBPckhOL211dnQ3YzEreXppb05zQ1dPSExrQ1BrTjBlZk5tMGM1SW5hdEhUdDJxTFM2akRRcUpLYWpSNDkydU82QU1oSUdCSXNKRXlZZ2VZQi9XczlQQURWMEV4WWF0bmp4WXFSRGh3OGYvbVhoTC9UVGhnMGIwRWNZUm50VHBGSGhTSWdsdW5idG1wV1YxWlFwVTZENHNHSEQ3TzN0dGJnUGE5TnZwQ1VyVnF5Z2ZSM1ZJL2lOZVpWK3pROHc1cWpJS0d4dlAxKy9LVk9tSHRoL0lJRlYvTFUrUlV3Q2ZwdWFtbUxNc0czdTNMbTBEUkJaY1hoVmFYV0tOQ3BmWDk4eFk4WmcyNnRZR29hVU5ENCtmdi8rL2VQSGowY1ZVeHBNSzlDb01KV3QyN1ppb2o3ZVBwYVdsblMzSEg1YXMyYk45dTNicGNIZUhob1BxcExJdi9mczJSTVRIVU8zTFFIa1JlUEdqY09oV0Jyc0xkR20zeml5WUdNamhLT01haENxRG8rY0gwbS81Z2RTUlJ2WkFnSVBVaU02YWFQRktVcWpRdFZpenB3NUtOamIyUnNZR2doTi9ZZUY0VkNPY0M0ZjdPMmhVU0ZZSUo0aHdxbllWUS82Q2ZGaTZOQmg2alA5V3FxNzArU3c4NkRLWkdKaVF0ZFpzUG5nR1ZMazhMQXdWTnl4YjB0RHZpMXNIQjRlSHFpZS9ibjlUMnc0RlFzZjlPT1Z5NWVIRGgzcTYrTWpES2lOc3lqYThWc2xMdnpObXplUkVDTWx4ZkVVbFFhdDI2WWdKRGdFa2ViRWlSUFlyMGFQR1kxMG54cG8xaFpTWUR0Ly9qeTIvWmRmZm5udTNEbGtDSXNXTGNMdXRIejVjaHlqNk1xaWRwZlIxZFVWSWJOSmt5YVl5cTFidDg1Wm5zTXlRakpVOWJCV3lRa3RUaEdqdW5qeG9wNmVuckd4OGZIangzSFF1SDM3OW9JRkMzNWR0QWpCRzdWcXJTMGpHOEdyaUZkSTdqRTVaSGRuejFxaXFuYmgvSGtjRlJFcEVCTi8vMzB6cWxYQ3NHOC9PYTM3alZWLzRjSUZaQ203ZHUyaUcwSzBNcGRaZ1NPMXVibTVtWm5adW5YcmJXMXNFWVJVV3AwaWpTbzBOQlNMczNMbFNnaU5UZkwwNlZQbmh3K1JtYUFTQnZtME9Ea0pCd2NITE5SS3hpa0xDemkzYnQwNlRNNzhnSGxRWUlZV3E3VkNjbEx5RFFlSFZhdFdiZHEwNmJmZmZ0dTNieDlxdDhnd1ViZkJkSEVNMGU0eUJnY0hZMEV3T1dUMitMU3pzenQ5K2pTbWhRVkVBaGJnbjk2Ni9OdWpOYjg1bkhjUTdmdWR2dWRwYVJmTUtRVTJPZmwwQ21xYUV0b0tiRytnc0paUjI5UFN2dDhDMnA3TGQ0VUNYcTRDbnB3dWtqOStjemp2QnR4dmppN0QvZWJvTXY4SFJER2w2VTlNZjVZQUFBQUFTVVZPUks1Q1lJST0iCiAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiCiAgICAgICAgIHk9IjAiCiAgICAgICAgIHg9IjAiCiAgICAgICAgIGhlaWdodD0iMjM4IgogICAgICAgICB3aWR0aD0iMjQ1IgogICAgICAgICBmaWxsPSIjMDAwMDAwIgogICAgICAgICBjbGlwLXBhdGg9InVybCgjZzVmZDhlY2I5NjlfMF8zNjcuMSkiIC8+CiAgICA8L2c+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgyOTYiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQ1MS45NTI3NiwyMzMuOTA0ODQgaCA1Ni4wOTQ0OCB2IDUzLjAzOTM2IGggLTU2LjA5NDQ4IHoiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMjk4IgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgZD0ibSA0NzkuMTI1LDI1OS42NDQ1MSBxIDAuMzc1LC0wLjM3NSAwLjg3NSwtMC4zNzUgMC41LDAgMC44NzUsMC4zNzUgMC4zNzUsMC4zNzUgMC4zNzUsMC44NzUgMCwwLjUgLTAuMzc1LDAuODc1IC0wLjM3NSwwLjM3NSAtMC44NzUsMC4zNzUgLTAuNSwwIC0wLjg3NSwtMC4zNzUgLTAuMzc1LC0wLjM3NSAtMC4zNzUsLTAuODc1IDAsLTAuNSAwLjM3NSwtMC44NzUgeiBtIDUuODc1LDAgcSAwLjM3NSwtMC4zNzUgMC44NzUsLTAuMzc1IDAuNSwwIDAuODc1LDAuMzc1IDAuMzc1LDAuMzc1IDAuMzc1LDAuODc1IDAsMC41IC0wLjM3NSwwLjg3NSAtMC4zNzUsMC4zNzUgLTAuODc1LDAuMzc1IC0wLjUsMCAtMC44NzUsLTAuMzc1IC0wLjM3NSwtMC4zNzUgLTAuMzc1LC0wLjg3NSAwLC0wLjUgMC4zNzUsLTAuODc1IHogbSAtMTEuNzUsMCBxIDAuMzc1LC0wLjM3NSAwLjg3NSwtMC4zNzUgMC41LDAgMC44NzUsMC4zNzUgMC4zNzUsMC4zNzUgMC4zNzUsMC44NzUgMCwwLjUgLTAuMzc1LDAuODc1IC0wLjM3NSwwLjM3NSAtMC44NzUsMC4zNzUgLTAuNSwwIC0wLjg3NSwtMC4zNzUgLTAuMzc1LC0wLjM3NSAtMC4zNzUsLTAuODc1IDAsLTAuNSAwLjM3NSwtMC44NzUgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDAiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDMyMi4yOTAwNCwyMzMuOTA0ODQgaCA1Ni4wOTQ0OCB2IDUzLjAzOTM2IGggLTU2LjA5NDQ4IHoiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzAyIgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgZD0ibSAzNDkuNDYyMjgsMjU5LjY0NDUxIHEgMC4zNzUsLTAuMzc1IDAuODc1LC0wLjM3NSAwLjUsMCAwLjg3NSwwLjM3NSAwLjM3NSwwLjM3NSAwLjM3NSwwLjg3NSAwLDAuNSAtMC4zNzUsMC44NzUgLTAuMzc1LDAuMzc1IC0wLjg3NSwwLjM3NSAtMC41LDAgLTAuODc1LC0wLjM3NSAtMC4zNzUsLTAuMzc1IC0wLjM3NSwtMC44NzUgMCwtMC41IDAuMzc1LC0wLjg3NSB6IG0gNS44NzUsMCBxIDAuMzc1LC0wLjM3NSAwLjg3NSwtMC4zNzUgMC41LDAgMC44NzUsMC4zNzUgMC4zNzUsMC4zNzUgMC4zNzUsMC44NzUgMCwwLjUgLTAuMzc1LDAuODc1IC0wLjM3NSwwLjM3NSAtMC44NzUsMC4zNzUgLTAuNSwwIC0wLjg3NSwtMC4zNzUgLTAuMzc1LC0wLjM3NSAtMC4zNzUsLTAuODc1IDAsLTAuNSAwLjM3NSwtMC44NzUgeiBtIC0xMS43NSwwIHEgMC4zNzUsLTAuMzc1IDAuODc1LC0wLjM3NSAwLjUsMCAwLjg3NSwwLjM3NSAwLjM3NSwwLjM3NSAwLjM3NSwwLjg3NSAwLDAuNSAtMC4zNzUsMC44NzUgLTAuMzc1LDAuMzc1IC0wLjg3NSwwLjM3NSAtMC41LDAgLTAuODc1LC0wLjM3NSAtMC4zNzUsLTAuMzc1IC0wLjM3NSwtMC44NzUgMCwtMC41IDAuMzc1LC0wLjg3NSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMwNCIKICAgICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICAgICAgIGQ9Im0gMTkyLjYyOTkzLDIzMy45MDQ4NCBoIDU2LjA5NDQ4IHYgNTMuMDM5MzYgaCAtNTYuMDk0NDggeiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDYiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDIxOS44MDIxNywyNTkuNjQ0NTEgcSAwLjM3NSwtMC4zNzUgMC44NzUsLTAuMzc1IDAuNSwwIDAuODc1LDAuMzc1IDAuMzc1LDAuMzc1IDAuMzc1LDAuODc1IDAsMC41IC0wLjM3NSwwLjg3NSAtMC4zNzUsMC4zNzUgLTAuODc1LDAuMzc1IC0wLjUsMCAtMC44NzUsLTAuMzc1IC0wLjM3NSwtMC4zNzUgLTAuMzc1LC0wLjg3NSAwLC0wLjUgMC4zNzUsLTAuODc1IHogbSA1Ljg3NSwwIHEgMC4zNzUsLTAuMzc1IDAuODc1LC0wLjM3NSAwLjUsMCAwLjg3NSwwLjM3NSAwLjM3NSwwLjM3NSAwLjM3NSwwLjg3NSAwLDAuNSAtMC4zNzUsMC44NzUgLTAuMzc1LDAuMzc1IC0wLjg3NSwwLjM3NSAtMC41LDAgLTAuODc1LC0wLjM3NSAtMC4zNzUsLTAuMzc1IC0wLjM3NSwtMC44NzUgMCwtMC41IDAuMzc1LC0wLjg3NSB6IG0gLTExLjc1LDAgcSAwLjM3NSwtMC4zNzUgMC44NzUsLTAuMzc1IDAuNSwwIDAuODc1LDAuMzc1IDAuMzc1LDAuMzc1IDAuMzc1LDAuODc1IDAsMC41IC0wLjM3NSwwLjg3NSAtMC4zNzUsMC4zNzUgLTAuODc1LDAuMzc1IC0wLjUsMCAtMC44NzUsLTAuMzc1IC0wLjM3NSwtMC4zNzUgLTAuMzc1LC0wLjg3NSAwLC0wLjUgMC4zNzUsLTAuODc1IHoiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzA4IgogICAgICAgZmlsbC1ydWxlPSJldmVub2RkIgogICAgICAgZD0ibSAxNDMuODg5NzcsNDk5LjU0MjY0IGggMTUzLjU3NDggdiAzNi4zNDY0MyBoIC0xNTMuNTc0OCB6IgogICAgICAgZmlsbC1vcGFjaXR5PSIwIgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMxMCIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gMTk2LjIyMjA5LDUzMS41ODI2NCB2IC0xNy4xODc1IGggMi4yODEyNSB2IDE3LjE4NzUgeiBtIDYuMDExNzIsMCB2IC0xMi40NTMxMyBoIDEuOTA2MjUgdiAxLjc4MTI1IHEgMS4zNzUsLTIuMDYyNSAzLjk1MzEzLC0yLjA2MjUgMS4xMjUsMCAyLjA2MjUsMC40MDYyNSAwLjk1MzEyLDAuNDA2MjUgMS40MjE4NywxLjA2MjUgMC40Njg3NSwwLjY1NjI1IDAuNjU2MjUsMS41NjI1IDAuMTI1LDAuNTc4MTMgMC4xMjUsMi4wNDY4OCB2IDcuNjU2MjUgaCAtMi4xMDkzNyB2IC03LjU3ODEzIHEgMCwtMS4yODEyNSAtMC4yNSwtMS45MjE4NyAtMC4yNSwtMC42NDA2MyAtMC44NzUsLTEuMDE1NjMgLTAuNjI1LC0wLjM5MDYyIC0xLjQ2ODc1LC0wLjM5MDYyIC0xLjM0Mzc1LDAgLTIuMzI4MTMsMC44NTkzNyAtMC45ODQzNywwLjg1OTM4IC0wLjk4NDM3LDMuMjUgdiA2Ljc5Njg4IHogbSAxMy4zNDc2Niw0Ljc2NTYyIHYgLTE3LjIxODc1IGggMS45MjE4NyB2IDEuNjI1IHEgMC42ODc1LC0wLjk1MzEyIDEuNTMxMjUsLTEuNDIxODcgMC44NTkzOCwtMC40ODQzOCAyLjA3ODEzLC0wLjQ4NDM4IDEuNTkzNzUsMCAyLjgxMjUsMC44MjgxMyAxLjIxODc1LDAuODEyNSAxLjg0Mzc1LDIuMzEyNSAwLjYyNSwxLjUgMC42MjUsMy4yODEyNSAwLDEuOTA2MjUgLTAuNjg3NSwzLjQzNzUgLTAuNjg3NSwxLjUzMTI1IC0yLDIuMzQzNzUgLTEuMjk2ODgsMC44MTI1IC0yLjczNDM4LDAuODEyNSAtMS4wNjI1LDAgLTEuOTA2MjUsLTAuNDM3NSAtMC44MjgxMiwtMC40NTMxMyAtMS4zNzUsLTEuMTQwNjMgdiA2LjA2MjUgeiBtIDEuOTIxODcsLTEwLjkyMTg3IHEgMCwyLjQwNjI1IDAuOTY4NzUsMy41NjI1IDAuOTY4NzUsMS4xNDA2MiAyLjM1OTM4LDEuMTQwNjIgMS40MDYyNSwwIDIuNDA2MjUsLTEuMTg3NSAxLC0xLjE4NzUgMSwtMy42ODc1IDAsLTIuMzc1IC0wLjk4NDM4LC0zLjU2MjUgLTAuOTY4NzUsLTEuMTg3NSAtMi4zMjgxMiwtMS4xODc1IC0xLjM1OTM4LDAgLTIuMzkwNjMsMS4yNjU2MyAtMS4wMzEyNSwxLjI1IC0xLjAzMTI1LDMuNjU2MjUgeiBtIDE5LjU4MjAzLDYuMTU2MjUgdiAtMS44MjgxMyBxIC0xLjQ1MzEyLDIuMTA5MzggLTMuOTM3NSwyLjEwOTM4IC0xLjEwOTM3LDAgLTIuMDYyNSwtMC40MjE4OCAtMC45NTMxMiwtMC40MjE4NyAtMS40MjE4NywtMS4wNjI1IC0wLjQ1MzEzLC0wLjY0MDYyIC0wLjY0MDYzLC0xLjU2MjUgLTAuMTQwNjIsLTAuNjI1IC0wLjE0MDYyLC0xLjk2ODc1IHYgLTcuNzE4NzUgaCAyLjEwOTM3IHYgNi45MDYyNSBxIDAsMS42NTYyNSAwLjE0MDYzLDIuMjM0MzggMC4xODc1LDAuODI4MTIgMC44MjgxMiwxLjMxMjUgMC42NTYyNSwwLjQ2ODc1IDEuNjA5MzgsMC40Njg3NSAwLjkzNzUsMCAxLjc2NTYyLC0wLjQ4NDM4IDAuODQzNzUsLTAuNSAxLjE4NzUsLTEuMzI4MTIgMC4zNDM3NSwtMC44NDM3NSAwLjM0Mzc1LC0yLjQzNzUgdiAtNi42NzE4OCBoIDIuMTA5MzggdiAxMi40NTMxMyB6IG0gOS44MDA3OCwtMS44OTA2MyAwLjMxMjUsMS44NTkzOCBxIC0wLjg5MDYyLDAuMjAzMTIgLTEuNTkzNzUsMC4yMDMxMiAtMS4xNTYyNSwwIC0xLjc5Njg3LC0wLjM1OTM3IC0wLjYyNSwtMC4zNzUgLTAuODkwNjMsLTAuOTY4NzUgLTAuMjUsLTAuNTkzNzUgLTAuMjUsLTIuNDg0MzggdiAtNy4xNzE4NyBoIC0xLjU0Njg3IHYgLTEuNjQwNjMgaCAxLjU0Njg3IHYgLTMuMDc4MTIgbCAyLjA5Mzc1LC0xLjI2NTYzIHYgNC4zNDM3NSBoIDIuMTI1IHYgMS42NDA2MyBoIC0yLjEyNSB2IDcuMjgxMjUgcSAwLDAuOTA2MjUgMC4xMDkzOCwxLjE3MTg3IDAuMTI1LDAuMjUgMC4zNzUsMC40MDYyNSAwLjI1LDAuMTQwNjMgMC43MTg3NSwwLjE0MDYzIDAuMzQzNzUsMCAwLjkyMTg3LC0wLjA3ODEgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMTIiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDE5Ni4xOTg2NSw1NjAuNTgyNjQgdiAtMTcuMTg3NSBoIDIuMTA5MzggdiAxNy4xODc1IHogbSAxMy41MDM5MSwtMS41MzEyNSBxIC0xLjE3MTg4LDAuOTg0MzcgLTIuMjY1NjMsMS40MDYyNSAtMS4wNzgxMiwwLjQwNjI1IC0yLjMxMjUsMC40MDYyNSAtMi4wNDY4NywwIC0zLjE1NjI1LC0xIC0xLjA5Mzc1LC0xIC0xLjA5Mzc1LC0yLjU2MjUgMCwtMC45MjE4OCAwLjQwNjI1LC0xLjY3MTg4IDAuNDIxODgsLTAuNzUgMS4wOTM3NSwtMS4yMDMxMiAwLjY3MTg4LC0wLjQ2ODc1IDEuNTE1NjMsLTAuNzAzMTMgMC42MjUsLTAuMTU2MjUgMS44NzUsLTAuMzEyNSAyLjU2MjUsLTAuMzEyNSAzLjc2NTYyLC0wLjczNDM3IDAuMDE1NiwtMC40MjE4OCAwLjAxNTYsLTAuNTQ2ODggMCwtMS4yODEyNSAtMC42MDkzOCwtMS44MTI1IC0wLjc5Njg3LC0wLjcxODc1IC0yLjM5MDYyLC0wLjcxODc1IC0xLjUsMCAtMi4yMDMxMywwLjUzMTI1IC0wLjcwMzEyLDAuNTE1NjMgLTEuMDQ2ODcsMS44NDM3NSBsIC0yLjA2MjUsLTAuMjgxMjUgcSAwLjI4MTI1LC0xLjMyODEyIDAuOTIxODcsLTIuMTQwNjIgMC42NDA2MywtMC44MTI1IDEuODU5MzgsLTEuMjUgMS4yMTg3NSwtMC40NTMxMyAyLjgyODEyLC0wLjQ1MzEzIDEuNTkzNzUsMCAyLjU5Mzc1LDAuMzc1IDEsMC4zNzUgMS40Njg3NSwwLjk1MzEzIDAuNDY4NzUsMC41NjI1IDAuNjU2MjUsMS40Mzc1IDAuMDkzNywwLjUzMTI1IDAuMDkzNywxLjkzNzUgdiAyLjgxMjUgcSAwLDIuOTM3NSAwLjE0MDYzLDMuNzE4NzUgMC4xNDA2MiwwLjc4MTI1IDAuNTMxMjUsMS41IGggLTIuMjAzMTMgcSAtMC4zMjgxMiwtMC42NTYyNSAtMC40MjE4NywtMS41MzEyNSB6IG0gLTAuMTcxODgsLTQuNzE4NzUgcSAtMS4xNTYyNSwwLjQ2ODc1IC0zLjQ1MzEyLDAuNzk2ODcgLTEuMjk2ODgsMC4xODc1IC0xLjg0Mzc1LDAuNDIxODggLTAuNTMxMjUsMC4yMzQzNyAtMC44MjgxMywwLjY4NzUgLTAuMjgxMjUsMC40NTMxMiAtMC4yODEyNSwxIDAsMC44NDM3NSAwLjYyNSwxLjQwNjI1IDAuNjQwNjMsMC41NjI1IDEuODc1LDAuNTYyNSAxLjIxODc1LDAgMi4xNzE4OCwtMC41MzEyNSAwLjk1MzEyLC0wLjUzMTI1IDEuMzkwNjIsLTEuNDUzMTMgMC4zNDM3NSwtMC43MTg3NSAwLjM0Mzc1LC0yLjEwOTM3IHogbSA1LjMwMDc4LDExLjA0Njg3IC0wLjIzNDM3LC0xLjk4NDM3IHEgMC43MDMxMiwwLjE4NzUgMS4yMTg3NSwwLjE4NzUgMC43MDMxMiwwIDEuMTI1LC0wLjIzNDM4IDAuNDIxODcsLTAuMjM0MzcgMC42ODc1LC0wLjY1NjI1IDAuMjAzMTIsLTAuMzEyNSAwLjY0MDYyLC0xLjU2MjUgMC4wNjI1LC0wLjE4NzUgMC4xODc1LC0wLjUxNTYyIGwgLTQuNzE4NzUsLTEyLjQ4NDM4IGggMi4yNjU2MyBsIDIuNTkzNzUsNy4yMTg3NSBxIDAuNSwxLjM1OTM4IDAuOTA2MjUsMi44NzUgMC4zNTkzNywtMS40NTMxMiAwLjg1OTM3LC0yLjgyODEyIGwgMi42NzE4OCwtNy4yNjU2MyBoIDIuMTA5MzcgbCAtNC43MzQzNywxMi42NzE4OCBxIC0wLjc2NTYzLDIuMDQ2ODcgLTEuMTg3NSwyLjgxMjUgLTAuNTYyNSwxLjA0Njg3IC0xLjI5Njg4LDEuNTMxMjUgLTAuNzE4NzUsMC40ODQzNyAtMS43MzQzNywwLjQ4NDM3IC0wLjYwOTM4LDAgLTEuMzU5MzgsLTAuMjUgeiBtIDIwLjYyNSwtOC44MTI1IDIuMTcxODgsMC4yODEyNSBxIC0wLjUxNTYzLDEuOTA2MjUgLTEuOTA2MjUsMi45Njg3NSAtMS4zOTA2MywxLjA0Njg4IC0zLjU2MjUsMS4wNDY4OCAtMi43MzQzOCwwIC00LjM0Mzc1LC0xLjY3MTg4IC0xLjU5Mzc1LC0xLjY4NzUgLTEuNTkzNzUsLTQuNzM0MzcgMCwtMy4xNDA2MyAxLjYwOTM3LC00Ljg3NSAxLjYyNSwtMS43MzQzOCA0LjIwMzEzLC0xLjczNDM4IDIuNSwwIDQuMDc4MTIsMS43MDMxMyAxLjU5Mzc1LDEuNzAzMTIgMS41OTM3NSw0Ljc4MTI1IDAsMC4xODc1IC0wLjAxNTYsMC41NjI1IGggLTkuMjgxMjUgcSAwLjEwOTM3LDIuMDQ2ODcgMS4xNTYyNSwzLjE0MDYyIDEuMDQ2ODcsMS4wOTM3NSAyLjYwOTM3LDEuMDkzNzUgMS4xNTYyNSwwIDEuOTY4NzUsLTAuNjA5MzcgMC44MjgxMywtMC42MDkzOCAxLjMxMjUsLTEuOTUzMTMgeiBtIC02LjkzNzUsLTMuNDA2MjUgaCA2Ljk1MzEzIHEgLTAuMTQwNjMsLTEuNTYyNSAtMC43OTY4OCwtMi4zNTkzNyAtMSwtMS4yMTg3NSAtMi42MDkzNywtMS4yMTg3NSAtMS40NTMxMywwIC0yLjQ1MzEzLDAuOTg0MzcgLTAuOTg0MzcsMC45Njg3NSAtMS4wOTM3NSwyLjU5Mzc1IHogbSAxMS43MzgyOCw3LjQyMTg4IHYgLTEyLjQ1MzEzIGggMS44OTA2MyB2IDEuODkwNjMgcSAwLjczNDM3LC0xLjMyODEzIDEuMzQzNzUsLTEuNzUgMC42MjUsLTAuNDIxODggMS4zNTkzNywtMC40MjE4OCAxLjA2MjUsMCAyLjE3MTg4LDAuNjg3NSBsIC0wLjczNDM4LDEuOTUzMTMgcSAtMC43NjU2MiwtMC40NTMxMyAtMS41NDY4NywtMC40NTMxMyAtMC42ODc1LDAgLTEuMjUsMC40MjE4OCAtMC41NDY4OCwwLjQwNjI1IC0wLjc4MTI1LDEuMTQwNjIgLTAuMzQzNzUsMS4xMjUgLTAuMzQzNzUsMi40Njg3NSB2IDYuNTE1NjMgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMTQiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDI3My41NTExOCw0OTkuNTQyNjQgaCAxNTMuNTc0OCB2IDM2LjM0NjQzIGggLTE1My41NzQ4IHoiCiAgICAgICBmaWxsLW9wYWNpdHk9IjAiCiAgICAgICBmaWxsPSIjMDAwMDAwIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzE2IgogICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgZD0ibSAzMTQuMjMzMTIsNTMxLjU4MjY0IHYgLTE3LjE4NzUgaCAyLjI4MTI1IHYgNy4wNjI1IGggOC45MjE4OCB2IC03LjA2MjUgaCAyLjI4MTI1IHYgMTcuMTg3NSBoIC0yLjI4MTI1IHYgLTguMDkzNzUgaCAtOC45MjE4OCB2IDguMDkzNzUgeiBtIDE3LjAwMzkxLC0xNC43NSB2IC0yLjQzNzUgaCAyLjEwOTM3IHYgMi40Mzc1IHogbSAwLDE0Ljc1IHYgLTEyLjQ1MzEzIGggMi4xMDkzNyB2IDEyLjQ1MzEzIHogbSAxMy4zOTQ1MywwIHYgLTEuNTc4MTMgcSAtMS4xODc1LDEuODU5MzggLTMuNDg0MzgsMS44NTkzOCAtMS40ODQzNywwIC0yLjczNDM3LC0wLjgxMjUgLTEuMjUsLTAuODI4MTMgLTEuOTM3NSwtMi4yOTY4OCAtMC42NzE4OCwtMS40Njg3NSAtMC42NzE4OCwtMy4zOTA2MiAwLC0xLjg1OTM4IDAuNjA5MzgsLTMuMzc1IDAuNjI1LC0xLjUxNTYzIDEuODU5MzcsLTIuMzI4MTMgMS4yNSwtMC44MTI1IDIuNzgxMjUsLTAuODEyNSAxLjEyNSwwIDIsMC40ODQzOCAwLjg5MDYzLDAuNDY4NzUgMS40Mzc1LDEuMjM0MzcgdiAtNi4xNzE4NyBoIDIuMDkzNzUgdiAxNy4xODc1IHogbSAtNi42NzE4OCwtNi4yMTg3NSBxIDAsMi4zOTA2MiAxLDMuNTc4MTIgMS4wMTU2MywxLjE4NzUgMi4zOTA2MywxLjE4NzUgMS4zOTA2MiwwIDIuMzQzNzUsLTEuMTI1IDAuOTY4NzUsLTEuMTQwNjIgMC45Njg3NSwtMy40NTMxMiAwLC0yLjU2MjUgLTAuOTg0MzgsLTMuNzUgLTAuOTg0MzcsLTEuMjAzMTMgLTIuNDIxODcsLTEuMjAzMTMgLTEuNDA2MjUsMCAtMi4zNTkzOCwxLjE1NjI1IC0wLjkzNzUsMS4xNDA2MyAtMC45Mzc1LDMuNjA5MzggeiBtIDIwLjAxOTUzLDYuMjE4NzUgdiAtMS41NzgxMyBxIC0xLjE4NzUsMS44NTkzOCAtMy40ODQzNywxLjg1OTM4IC0xLjQ4NDM4LDAgLTIuNzM0MzgsLTAuODEyNSAtMS4yNSwtMC44MjgxMyAtMS45Mzc1LC0yLjI5Njg4IC0wLjY3MTg3LC0xLjQ2ODc1IC0wLjY3MTg3LC0zLjM5MDYyIDAsLTEuODU5MzggMC42MDkzNywtMy4zNzUgMC42MjUsLTEuNTE1NjMgMS44NTkzOCwtMi4zMjgxMyAxLjI1LC0wLjgxMjUgMi43ODEyNSwtMC44MTI1IDEuMTI1LDAgMiwwLjQ4NDM4IDAuODkwNjIsMC40Njg3NSAxLjQzNzUsMS4yMzQzNyB2IC02LjE3MTg3IGggMi4wOTM3NSB2IDE3LjE4NzUgeiBtIC02LjY3MTg3LC02LjIxODc1IHEgMCwyLjM5MDYyIDEsMy41NzgxMiAxLjAxNTYyLDEuMTg3NSAyLjM5MDYyLDEuMTg3NSAxLjM5MDYzLDAgMi4zNDM3NSwtMS4xMjUgMC45Njg3NSwtMS4xNDA2MiAwLjk2ODc1LC0zLjQ1MzEyIDAsLTIuNTYyNSAtMC45ODQzNywtMy43NSAtMC45ODQzOCwtMS4yMDMxMyAtMi40MjE4OCwtMS4yMDMxMyAtMS40MDYyNSwwIC0yLjM1OTM3LDEuMTU2MjUgLTAuOTM3NSwxLjE0MDYzIC0wLjkzNzUsMy42MDkzOCB6IG0gMjAuNDcyNjYsMi4yMDMxMiAyLjE3MTg3LDAuMjgxMjUgcSAtMC41MTU2MiwxLjkwNjI1IC0xLjkwNjI1LDIuOTY4NzUgLTEuMzkwNjIsMS4wNDY4OCAtMy41NjI1LDEuMDQ2ODggLTIuNzM0MzcsMCAtNC4zNDM3NSwtMS42NzE4OCAtMS41OTM3NSwtMS42ODc1IC0xLjU5Mzc1LC00LjczNDM3IDAsLTMuMTQwNjMgMS42MDkzOCwtNC44NzUgMS42MjUsLTEuNzM0MzggNC4yMDMxMiwtMS43MzQzOCAyLjUsMCA0LjA3ODEzLDEuNzAzMTMgMS41OTM3NSwxLjcwMzEyIDEuNTkzNzUsNC43ODEyNSAwLDAuMTg3NSAtMC4wMTU2LDAuNTYyNSBoIC05LjI4MTI1IHEgMC4xMDkzOCwyLjA0Njg3IDEuMTU2MjUsMy4xNDA2MiAxLjA0Njg4LDEuMDkzNzUgMi42MDkzOCwxLjA5Mzc1IDEuMTU2MjUsMCAxLjk2ODc1LC0wLjYwOTM3IDAuODI4MTIsLTAuNjA5MzggMS4zMTI1LC0xLjk1MzEzIHogbSAtNi45Mzc1LC0zLjQwNjI1IGggNi45NTMxMiBxIC0wLjE0MDYyLC0xLjU2MjUgLTAuNzk2ODcsLTIuMzU5MzcgLTEsLTEuMjE4NzUgLTIuNjA5MzgsLTEuMjE4NzUgLTEuNDUzMTIsMCAtMi40NTMxMiwwLjk4NDM3IC0wLjk4NDM4LDAuOTY4NzUgLTEuMDkzNzUsMi41OTM3NSB6IG0gMTEuNzUzOSw3LjQyMTg4IHYgLTEyLjQ1MzEzIGggMS45MDYyNSB2IDEuNzgxMjUgcSAxLjM3NSwtMi4wNjI1IDMuOTUzMTMsLTIuMDYyNSAxLjEyNSwwIDIuMDYyNSwwLjQwNjI1IDAuOTUzMTIsMC40MDYyNSAxLjQyMTg3LDEuMDYyNSAwLjQ2ODc1LDAuNjU2MjUgMC42NTYyNSwxLjU2MjUgMC4xMjUsMC41NzgxMyAwLjEyNSwyLjA0Njg4IHYgNy42NTYyNSBoIC0yLjEwOTM3IHYgLTcuNTc4MTMgcSAwLC0xLjI4MTI1IC0wLjI1LC0xLjkyMTg3IC0wLjI1LC0wLjY0MDYzIC0wLjg3NSwtMS4wMTU2MyAtMC42MjUsLTAuMzkwNjIgLTEuNDY4NzUsLTAuMzkwNjIgLTEuMzQzNzUsMCAtMi4zMjgxMywwLjg1OTM3IC0wLjk4NDM3LDAuODU5MzggLTAuOTg0MzcsMy4yNSB2IDYuNzk2ODggeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMTgiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDMyNS44NjAwOCw1NjAuNTgyNjQgdiAtMTcuMTg3NSBoIDIuMTA5MzggdiAxNy4xODc1IHogbSAxMy41MDM5MSwtMS41MzEyNSBxIC0xLjE3MTg4LDAuOTg0MzcgLTIuMjY1NjMsMS40MDYyNSAtMS4wNzgxMiwwLjQwNjI1IC0yLjMxMjUsMC40MDYyNSAtMi4wNDY4NywwIC0zLjE1NjI1LC0xIC0xLjA5Mzc1LC0xIC0xLjA5Mzc1LC0yLjU2MjUgMCwtMC45MjE4OCAwLjQwNjI1LC0xLjY3MTg4IDAuNDIxODgsLTAuNzUgMS4wOTM3NSwtMS4yMDMxMiAwLjY3MTg4LC0wLjQ2ODc1IDEuNTE1NjMsLTAuNzAzMTMgMC42MjUsLTAuMTU2MjUgMS44NzUsLTAuMzEyNSAyLjU2MjUsLTAuMzEyNSAzLjc2NTYyLC0wLjczNDM3IDAuMDE1NiwtMC40MjE4OCAwLjAxNTYsLTAuNTQ2ODggMCwtMS4yODEyNSAtMC42MDkzOCwtMS44MTI1IC0wLjc5Njg3LC0wLjcxODc1IC0yLjM5MDYyLC0wLjcxODc1IC0xLjUsMCAtMi4yMDMxMywwLjUzMTI1IC0wLjcwMzEyLDAuNTE1NjMgLTEuMDQ2ODcsMS44NDM3NSBsIC0yLjA2MjUsLTAuMjgxMjUgcSAwLjI4MTI1LC0xLjMyODEyIDAuOTIxODcsLTIuMTQwNjIgMC42NDA2MywtMC44MTI1IDEuODU5MzgsLTEuMjUgMS4yMTg3NSwtMC40NTMxMyAyLjgyODEyLC0wLjQ1MzEzIDEuNTkzNzUsMCAyLjU5Mzc1LDAuMzc1IDEsMC4zNzUgMS40Njg3NSwwLjk1MzEzIDAuNDY4NzUsMC41NjI1IDAuNjU2MjUsMS40Mzc1IDAuMDkzNywwLjUzMTI1IDAuMDkzNywxLjkzNzUgdiAyLjgxMjUgcSAwLDIuOTM3NSAwLjE0MDYzLDMuNzE4NzUgMC4xNDA2MiwwLjc4MTI1IDAuNTMxMjUsMS41IGggLTIuMjAzMTMgcSAtMC4zMjgxMiwtMC42NTYyNSAtMC40MjE4NywtMS41MzEyNSB6IG0gLTAuMTcxODgsLTQuNzE4NzUgcSAtMS4xNTYyNSwwLjQ2ODc1IC0zLjQ1MzEyLDAuNzk2ODcgLTEuMjk2ODgsMC4xODc1IC0xLjg0Mzc1LDAuNDIxODggLTAuNTMxMjUsMC4yMzQzNyAtMC44MjgxMywwLjY4NzUgLTAuMjgxMjUsMC40NTMxMiAtMC4yODEyNSwxIDAsMC44NDM3NSAwLjYyNSwxLjQwNjI1IDAuNjQwNjMsMC41NjI1IDEuODc1LDAuNTYyNSAxLjIxODc1LDAgMi4xNzE4OCwtMC41MzEyNSAwLjk1MzEyLC0wLjUzMTI1IDEuMzkwNjIsLTEuNDUzMTMgMC4zNDM3NSwtMC43MTg3NSAwLjM0Mzc1LC0yLjEwOTM3IHogbSA1LjMwMDc4LDExLjA0Njg3IC0wLjIzNDM3LC0xLjk4NDM3IHEgMC43MDMxMiwwLjE4NzUgMS4yMTg3NSwwLjE4NzUgMC43MDMxMiwwIDEuMTI1LC0wLjIzNDM4IDAuNDIxODcsLTAuMjM0MzcgMC42ODc1LC0wLjY1NjI1IDAuMjAzMTIsLTAuMzEyNSAwLjY0MDYyLC0xLjU2MjUgMC4wNjI1LC0wLjE4NzUgMC4xODc1LC0wLjUxNTYyIGwgLTQuNzE4NzUsLTEyLjQ4NDM4IGggMi4yNjU2MyBsIDIuNTkzNzUsNy4yMTg3NSBxIDAuNSwxLjM1OTM4IDAuOTA2MjUsMi44NzUgMC4zNTkzNywtMS40NTMxMiAwLjg1OTM3LC0yLjgyODEyIGwgMi42NzE4OCwtNy4yNjU2MyBoIDIuMTA5MzcgbCAtNC43MzQzNywxMi42NzE4OCBxIC0wLjc2NTYzLDIuMDQ2ODcgLTEuMTg3NSwyLjgxMjUgLTAuNTYyNSwxLjA0Njg3IC0xLjI5Njg4LDEuNTMxMjUgLTAuNzE4NzUsMC40ODQzNyAtMS43MzQzNywwLjQ4NDM3IC0wLjYwOTM4LDAgLTEuMzU5MzgsLTAuMjUgeiBtIDIwLjYyNSwtOC44MTI1IDIuMTcxODgsMC4yODEyNSBxIC0wLjUxNTYzLDEuOTA2MjUgLTEuOTA2MjUsMi45Njg3NSAtMS4zOTA2MywxLjA0Njg4IC0zLjU2MjUsMS4wNDY4OCAtMi43MzQzOCwwIC00LjM0Mzc1LC0xLjY3MTg4IC0xLjU5Mzc1LC0xLjY4NzUgLTEuNTkzNzUsLTQuNzM0MzcgMCwtMy4xNDA2MyAxLjYwOTM3LC00Ljg3NSAxLjYyNSwtMS43MzQzOCA0LjIwMzEzLC0xLjczNDM4IDIuNSwwIDQuMDc4MTIsMS43MDMxMyAxLjU5Mzc1LDEuNzAzMTIgMS41OTM3NSw0Ljc4MTI1IDAsMC4xODc1IC0wLjAxNTYsMC41NjI1IGggLTkuMjgxMjUgcSAwLjEwOTM3LDIuMDQ2ODcgMS4xNTYyNSwzLjE0MDYyIDEuMDQ2ODcsMS4wOTM3NSAyLjYwOTM3LDEuMDkzNzUgMS4xNTYyNSwwIDEuOTY4NzUsLTAuNjA5MzcgMC44MjgxMywtMC42MDkzOCAxLjMxMjUsLTEuOTUzMTMgeiBtIC02LjkzNzUsLTMuNDA2MjUgaCA2Ljk1MzEzIHEgLTAuMTQwNjMsLTEuNTYyNSAtMC43OTY4OCwtMi4zNTkzNyAtMSwtMS4yMTg3NSAtMi42MDkzNywtMS4yMTg3NSAtMS40NTMxMywwIC0yLjQ1MzEzLDAuOTg0MzcgLTAuOTg0MzcsMC45Njg3NSAtMS4wOTM3NSwyLjU5Mzc1IHogbSAxMS43MzgyOCw3LjQyMTg4IHYgLTEyLjQ1MzEzIGggMS44OTA2MyB2IDEuODkwNjMgcSAwLjczNDM3LC0xLjMyODEzIDEuMzQzNzUsLTEuNzUgMC42MjUsLTAuNDIxODggMS4zNTkzNywtMC40MjE4OCAxLjA2MjUsMCAyLjE3MTg4LDAuNjg3NSBsIC0wLjczNDM4LDEuOTUzMTMgcSAtMC43NjU2MiwtMC40NTMxMyAtMS41NDY4NywtMC40NTMxMyAtMC42ODc1LDAgLTEuMjUsMC40MjE4OCAtMC41NDY4OCwwLjQwNjI1IC0wLjc4MTI1LDEuMTQwNjIgLTAuMzQzNzUsMS4xMjUgLTAuMzQzNzUsMi40Njg3NSB2IDYuNTE1NjMgeiIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMjAiCiAgICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgICBkPSJtIDQwMy4yMTI2LDQ5OS41NDI2NCBoIDE1My41NzQ4MyB2IDM2LjM0NjQzIEggNDAzLjIxMjYgWiIKICAgICAgIGZpbGwtb3BhY2l0eT0iMCIKICAgICAgIGZpbGw9IiMwMDAwMDAiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMjIiCiAgICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICBkPSJtIDQ0NS4xMzI4LDUyMy4yMDc2NCBxIDAsLTQuMjY1NjMgMi4yOTY4OCwtNi42ODc1IDIuMjk2ODcsLTIuNDIxODggNS45Mzc1LC0yLjQyMTg4IDIuMzc1LDAgNC4yODEyNSwxLjE0MDYzIDEuOTIxODcsMS4xMjUgMi45MjE4NywzLjE3MTg3IDEsMi4wMzEyNSAxLDQuNjA5MzggMCwyLjYwOTM3IC0xLjA2MjUsNC42NzE4NyAtMS4wNDY4NywyLjA2MjUgLTIuOTg0MzcsMy4xMjUgLTEuOTM3NSwxLjA2MjUgLTQuMTcxODgsMS4wNjI1IC0yLjQyMTg3LDAgLTQuMzQzNzUsLTEuMTcxODcgLTEuOTA2MjUsLTEuMTcxODggLTIuODkwNjIsLTMuMjAzMTMgLTAuOTg0MzgsLTIuMDMxMjUgLTAuOTg0MzgsLTQuMjk2ODcgeiBtIDIuMzQzNzUsMC4wNDY5IHEgMCwzLjA5Mzc1IDEuNjcxODgsNC44OTA2MyAxLjY3MTg3LDEuNzgxMjUgNC4xODc1LDEuNzgxMjUgMi41NzgxMiwwIDQuMjM0MzcsLTEuNzk2ODggMS42NTYyNSwtMS44MTI1IDEuNjU2MjUsLTUuMTI1IDAsLTIuMDkzNzUgLTAuNzE4NzUsLTMuNjU2MjUgLTAuNzAzMTIsLTEuNTc4MTIgLTIuMDc4MTIsLTIuNDM3NSAtMS4zNTkzOCwtMC44NTkzNyAtMy4wNDY4OCwtMC44NTkzNyAtMi40MjE4NywwIC00LjE3MTg3LDEuNjU2MjUgLTEuNzM0MzgsMS42NTYyNSAtMS43MzQzOCw1LjU0Njg3IHogbSAyNC45MDIzNSw4LjMyODEzIHYgLTEuODI4MTMgcSAtMS40NTMxMywyLjEwOTM4IC0zLjkzNzUsMi4xMDkzOCAtMS4xMDkzOCwwIC0yLjA2MjUsLTAuNDIxODggLTAuOTUzMTMsLTAuNDIxODcgLTEuNDIxODgsLTEuMDYyNSAtMC40NTMxMiwtMC42NDA2MiAtMC42NDA2MiwtMS41NjI1IC0wLjE0MDYzLC0wLjYyNSAtMC4xNDA2MywtMS45Njg3NSB2IC03LjcxODc1IGggMi4xMDkzOCB2IDYuOTA2MjUgcSAwLDEuNjU2MjUgMC4xNDA2MiwyLjIzNDM4IDAuMTg3NSwwLjgyODEyIDAuODI4MTMsMS4zMTI1IDAuNjU2MjUsMC40Njg3NSAxLjYwOTM3LDAuNDY4NzUgMC45Mzc1LDAgMS43NjU2MywtMC40ODQzOCAwLjg0Mzc1LC0wLjUgMS4xODc1LC0xLjMyODEyIDAuMzQzNzUsLTAuODQzNzUgMC4zNDM3NSwtMi40Mzc1IHYgLTYuNjcxODggaCAyLjEwOTM3IHYgMTIuNDUzMTMgeiBtIDkuODAwNzgsLTEuODkwNjMgMC4zMTI1LDEuODU5MzggcSAtMC44OTA2MywwLjIwMzEyIC0xLjU5Mzc1LDAuMjAzMTIgLTEuMTU2MjUsMCAtMS43OTY4OCwtMC4zNTkzNyAtMC42MjUsLTAuMzc1IC0wLjg5MDYyLC0wLjk2ODc1IC0wLjI1LC0wLjU5Mzc1IC0wLjI1LC0yLjQ4NDM4IHYgLTcuMTcxODcgaCAtMS41NDY4OCB2IC0xLjY0MDYzIGggMS41NDY4OCB2IC0zLjA3ODEyIGwgMi4wOTM3NSwtMS4yNjU2MyB2IDQuMzQzNzUgaCAyLjEyNSB2IDEuNjQwNjMgaCAtMi4xMjUgdiA3LjI4MTI1IHEgMCwwLjkwNjI1IDAuMTA5MzcsMS4xNzE4NyAwLjEyNSwwLjI1IDAuMzc1LDAuNDA2MjUgMC4yNSwwLjE0MDYzIDAuNzE4NzUsMC4xNDA2MyAwLjM0Mzc1LDAgMC45MjE4OCwtMC4wNzgxIHogbSAyLjA1ODU5LDYuNjU2MjUgdiAtMTcuMjE4NzUgaCAxLjkyMTg4IHYgMS42MjUgcSAwLjY4NzUsLTAuOTUzMTIgMS41MzEyNSwtMS40MjE4NyAwLjg1OTM3LC0wLjQ4NDM4IDIuMDc4MTIsLTAuNDg0MzggMS41OTM3NSwwIDIuODEyNSwwLjgyODEzIDEuMjE4NzUsMC44MTI1IDEuODQzNzUsMi4zMTI1IDAuNjI1LDEuNSAwLjYyNSwzLjI4MTI1IDAsMS45MDYyNSAtMC42ODc1LDMuNDM3NSAtMC42ODc1LDEuNTMxMjUgLTIsMi4zNDM3NSAtMS4yOTY4NywwLjgxMjUgLTIuNzM0MzcsMC44MTI1IC0xLjA2MjUsMCAtMS45MDYyNSwtMC40Mzc1IC0wLjgyODEzLC0wLjQ1MzEzIC0xLjM3NSwtMS4xNDA2MyB2IDYuMDYyNSB6IG0gMS45MjE4OCwtMTAuOTIxODcgcSAwLDIuNDA2MjUgMC45Njg3NSwzLjU2MjUgMC45Njg3NSwxLjE0MDYyIDIuMzU5MzcsMS4xNDA2MiAxLjQwNjI1LDAgMi40MDYyNSwtMS4xODc1IDEsLTEuMTg3NSAxLC0zLjY4NzUgMCwtMi4zNzUgLTAuOTg0MzcsLTMuNTYyNSAtMC45Njg3NSwtMS4xODc1IC0yLjMyODEzLC0xLjE4NzUgLTEuMzU5MzcsMCAtMi4zOTA2MiwxLjI2NTYzIC0xLjAzMTI1LDEuMjUgLTEuMDMxMjUsMy42NTYyNSB6IG0gMTkuNTgyMDMsNi4xNTYyNSB2IC0xLjgyODEzIHEgLTEuNDUzMTMsMi4xMDkzOCAtMy45Mzc1LDIuMTA5MzggLTEuMTA5MzgsMCAtMi4wNjI1LC0wLjQyMTg4IC0wLjk1MzEzLC0wLjQyMTg3IC0xLjQyMTg4LC0xLjA2MjUgLTAuNDUzMTIsLTAuNjQwNjIgLTAuNjQwNjIsLTEuNTYyNSAtMC4xNDA2MywtMC42MjUgLTAuMTQwNjMsLTEuOTY4NzUgdiAtNy43MTg3NSBoIDIuMTA5MzggdiA2LjkwNjI1IHEgMCwxLjY1NjI1IDAuMTQwNjIsMi4yMzQzOCAwLjE4NzUsMC44MjgxMiAwLjgyODEzLDEuMzEyNSAwLjY1NjI1LDAuNDY4NzUgMS42MDkzNywwLjQ2ODc1IDAuOTM3NSwwIDEuNzY1NjMsLTAuNDg0MzggMC44NDM3NSwtMC41IDEuMTg3NSwtMS4zMjgxMiAwLjM0Mzc1LC0wLjg0Mzc1IDAuMzQzNzUsLTIuNDM3NSB2IC02LjY3MTg4IGggMi4xMDkzNyB2IDEyLjQ1MzEzIHogbSA5LjgwMDc4LC0xLjg5MDYzIDAuMzEyNSwxLjg1OTM4IHEgLTAuODkwNjMsMC4yMDMxMiAtMS41OTM3NSwwLjIwMzEyIC0xLjE1NjI1LDAgLTEuNzk2ODgsLTAuMzU5MzcgLTAuNjI1LC0wLjM3NSAtMC44OTA2MiwtMC45Njg3NSAtMC4yNSwtMC41OTM3NSAtMC4yNSwtMi40ODQzOCB2IC03LjE3MTg3IGggLTEuNTQ2ODggdiAtMS42NDA2MyBoIDEuNTQ2ODggdiAtMy4wNzgxMiBsIDIuMDkzNzUsLTEuMjY1NjMgdiA0LjM0Mzc1IGggMi4xMjUgdiAxLjY0MDYzIGggLTIuMTI1IHYgNy4yODEyNSBxIDAsMC45MDYyNSAwLjEwOTM3LDEuMTcxODcgMC4xMjUsMC4yNSAwLjM3NSwwLjQwNjI1IDAuMjUsMC4xNDA2MyAwLjcxODc1LDAuMTQwNjMgMC4zNDM3NSwwIDAuOTIxODgsLTAuMDc4MSB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDMyNCIKICAgICAgIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgIGQ9Im0gNDU1LjUyMTQ4LDU2MC41ODI2NCB2IC0xNy4xODc1IGggMi4xMDkzOCB2IDE3LjE4NzUgeiBtIDEzLjUwMzkxLC0xLjUzMTI1IHEgLTEuMTcxODgsMC45ODQzNyAtMi4yNjU2MywxLjQwNjI1IC0xLjA3ODEyLDAuNDA2MjUgLTIuMzEyNSwwLjQwNjI1IC0yLjA0Njg3LDAgLTMuMTU2MjUsLTEgLTEuMDkzNzUsLTEgLTEuMDkzNzUsLTIuNTYyNSAwLC0wLjkyMTg4IDAuNDA2MjUsLTEuNjcxODggMC40MjE4OCwtMC43NSAxLjA5Mzc1LC0xLjIwMzEyIDAuNjcxODgsLTAuNDY4NzUgMS41MTU2MywtMC43MDMxMyAwLjYyNSwtMC4xNTYyNSAxLjg3NSwtMC4zMTI1IDIuNTYyNSwtMC4zMTI1IDMuNzY1NjIsLTAuNzM0MzcgMC4wMTU2LC0wLjQyMTg4IDAuMDE1NiwtMC41NDY4OCAwLC0xLjI4MTI1IC0wLjYwOTM4LC0xLjgxMjUgLTAuNzk2ODcsLTAuNzE4NzUgLTIuMzkwNjIsLTAuNzE4NzUgLTEuNSwwIC0yLjIwMzEzLDAuNTMxMjUgLTAuNzAzMTIsMC41MTU2MyAtMS4wNDY4NywxLjg0Mzc1IGwgLTIuMDYyNSwtMC4yODEyNSBxIDAuMjgxMjUsLTEuMzI4MTIgMC45MjE4NywtMi4xNDA2MiAwLjY0MDYzLC0wLjgxMjUgMS44NTkzOCwtMS4yNSAxLjIxODc1LC0wLjQ1MzEzIDIuODI4MTIsLTAuNDUzMTMgMS41OTM3NSwwIDIuNTkzNzUsMC4zNzUgMSwwLjM3NSAxLjQ2ODc1LDAuOTUzMTMgMC40Njg3NSwwLjU2MjUgMC42NTYyNSwxLjQzNzUgMC4wOTM3LDAuNTMxMjUgMC4wOTM3LDEuOTM3NSB2IDIuODEyNSBxIDAsMi45Mzc1IDAuMTQwNjMsMy43MTg3NSAwLjE0MDYyLDAuNzgxMjUgMC41MzEyNSwxLjUgaCAtMi4yMDMxMyBxIC0wLjMyODEyLC0wLjY1NjI1IC0wLjQyMTg3LC0xLjUzMTI1IHogbSAtMC4xNzE4OCwtNC43MTg3NSBxIC0xLjE1NjI1LDAuNDY4NzUgLTMuNDUzMTIsMC43OTY4NyAtMS4yOTY4OCwwLjE4NzUgLTEuODQzNzUsMC40MjE4OCAtMC41MzEyNSwwLjIzNDM3IC0wLjgyODEzLDAuNjg3NSAtMC4yODEyNSwwLjQ1MzEyIC0wLjI4MTI1LDEgMCwwLjg0Mzc1IDAuNjI1LDEuNDA2MjUgMC42NDA2MywwLjU2MjUgMS44NzUsMC41NjI1IDEuMjE4NzUsMCAyLjE3MTg4LC0wLjUzMTI1IDAuOTUzMTIsLTAuNTMxMjUgMS4zOTA2MiwtMS40NTMxMyAwLjM0Mzc1LC0wLjcxODc1IDAuMzQzNzUsLTIuMTA5MzcgeiBtIDUuMzAwNzgsMTEuMDQ2ODcgLTAuMjM0MzcsLTEuOTg0MzcgcSAwLjcwMzEyLDAuMTg3NSAxLjIxODc1LDAuMTg3NSAwLjcwMzEyLDAgMS4xMjUsLTAuMjM0MzggMC40MjE4NywtMC4yMzQzNyAwLjY4NzUsLTAuNjU2MjUgMC4yMDMxMiwtMC4zMTI1IDAuNjQwNjIsLTEuNTYyNSAwLjA2MjUsLTAuMTg3NSAwLjE4NzUsLTAuNTE1NjIgbCAtNC43MTg3NSwtMTIuNDg0MzggaCAyLjI2NTYzIGwgMi41OTM3NSw3LjIxODc1IHEgMC41LDEuMzU5MzggMC45MDYyNSwyLjg3NSAwLjM1OTM3LC0xLjQ1MzEyIDAuODU5MzcsLTIuODI4MTIgbCAyLjY3MTg4LC03LjI2NTYzIGggMi4xMDkzNyBsIC00LjczNDM3LDEyLjY3MTg4IHEgLTAuNzY1NjMsMi4wNDY4NyAtMS4xODc1LDIuODEyNSAtMC41NjI1LDEuMDQ2ODcgLTEuMjk2ODgsMS41MzEyNSAtMC43MTg3NSwwLjQ4NDM3IC0xLjczNDM3LDAuNDg0MzcgLTAuNjA5MzgsMCAtMS4zNTkzOCwtMC4yNSB6IG0gMjAuNjI1LC04LjgxMjUgMi4xNzE4OCwwLjI4MTI1IHEgLTAuNTE1NjMsMS45MDYyNSAtMS45MDYyNSwyLjk2ODc1IC0xLjM5MDYzLDEuMDQ2ODggLTMuNTYyNSwxLjA0Njg4IC0yLjczNDM4LDAgLTQuMzQzNzUsLTEuNjcxODggLTEuNTkzNzUsLTEuNjg3NSAtMS41OTM3NSwtNC43MzQzNyAwLC0zLjE0MDYzIDEuNjA5MzcsLTQuODc1IDEuNjI1LC0xLjczNDM4IDQuMjAzMTMsLTEuNzM0MzggMi41LDAgNC4wNzgxMiwxLjcwMzEzIDEuNTkzNzUsMS43MDMxMiAxLjU5Mzc1LDQuNzgxMjUgMCwwLjE4NzUgLTAuMDE1NiwwLjU2MjUgaCAtOS4yODEyNSBxIDAuMTA5MzcsMi4wNDY4NyAxLjE1NjI1LDMuMTQwNjIgMS4wNDY4NywxLjA5Mzc1IDIuNjA5MzcsMS4wOTM3NSAxLjE1NjI1LDAgMS45Njg3NSwtMC42MDkzNyAwLjgyODEzLC0wLjYwOTM4IDEuMzEyNSwtMS45NTMxMyB6IG0gLTYuOTM3NSwtMy40MDYyNSBoIDYuOTUzMTMgcSAtMC4xNDA2MywtMS41NjI1IC0wLjc5Njg4LC0yLjM1OTM3IC0xLC0xLjIxODc1IC0yLjYwOTM3LC0xLjIxODc1IC0xLjQ1MzEzLDAgLTIuNDUzMTMsMC45ODQzNyAtMC45ODQzNywwLjk2ODc1IC0xLjA5Mzc1LDIuNTkzNzUgeiBtIDExLjczODI4LDcuNDIxODggdiAtMTIuNDUzMTMgaCAxLjg5MDYzIHYgMS44OTA2MyBxIDAuNzM0MzcsLTEuMzI4MTMgMS4zNDM3NSwtMS43NSAwLjYyNSwtMC40MjE4OCAxLjM1OTM3LC0wLjQyMTg4IDEuMDYyNSwwIDIuMTcxODgsMC42ODc1IGwgLTAuNzM0MzgsMS45NTMxMyBxIC0wLjc2NTYyLC0wLjQ1MzEzIC0xLjU0Njg3LC0wLjQ1MzEzIC0wLjY4NzUsMCAtMS4yNSwwLjQyMTg4IC0wLjU0Njg4LDAuNDA2MjUgLTAuNzgxMjUsMS4xNDA2MiAtMC4zNDM3NSwxLjEyNSAtMC4zNDM3NSwyLjQ2ODc1IHYgNi41MTU2MyB6IgogICAgICAgZmlsbD0iIzAwMDAwMCIgLz4KICA8L2c+Cjwvc3ZnPgo=)\n", "\n", "Clearly, this is far from a state of the art architecture, but it still achieves 97.6% accuracy on MNIST. In this first tutorial we are going to build the basic SNN model, present a single test set image to it and visualize the spiking activitiy of the model.\n", "\n", "## Install PyGeNN wheel from Google Drive\n", "Download wheel file" ] }, { "cell_type": "code", "source": [ "if \"google.colab\" in str(get_ipython()):\n", " #import IPython\n", " #IPython.core.magics.execution.ExecutionMagics.run.func_defaults[2] = lambda a: a\n", " #%run \"../install_collab.ipynb\"\n", " !pip install gdown --upgrade\n", " !gdown 1V_GzXUDzcFz9QDIpxAD8QNEglcSipssW\n", " !pip install pygenn-5.0.0-cp310-cp310-linux_x86_64.whl\n", " %env CUDA_PATH=/usr/local/cuda" ], "metadata": { "id": "VXltW7HVbtcj", "outputId": "10383607-e3f3-41b4-9751-b80d3a858cbc", "colab": { "base_uri": "https://localhost:8080/" } }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: gdown in /usr/local/lib/python3.10/dist-packages (5.1.0)\n", "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from gdown) (4.12.3)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from gdown) (3.13.1)\n", "Requirement already satisfied: requests[socks] in /usr/local/lib/python3.10/dist-packages (from gdown) (2.31.0)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from gdown) (4.66.2)\n", "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->gdown) (2.5)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (3.6)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (2.0.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (2024.2.2)\n", "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (1.7.1)\n", "Downloading...\n", "From: https://drive.google.com/uc?id=1V_GzXUDzcFz9QDIpxAD8QNEglcSipssW\n", "To: /content/pygenn-5.0.0-cp310-cp310-linux_x86_64.whl\n", "100% 8.29M/8.29M [00:00<00:00, 147MB/s]\n", "Processing ./pygenn-5.0.0-cp310-cp310-linux_x86_64.whl\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from pygenn==5.0.0) (1.25.2)\n", "Requirement already satisfied: deprecated in /usr/local/lib/python3.10/dist-packages (from pygenn==5.0.0) (1.2.14)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from pygenn==5.0.0) (5.9.5)\n", "Requirement already satisfied: wrapt<2,>=1.10 in /usr/local/lib/python3.10/dist-packages (from deprecated->pygenn==5.0.0) (1.14.1)\n", "pygenn is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel.\n", "env: CUDA_PATH=/usr/local/cuda\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "8tqbF5GldF0o" }, "source": [ "## Download pre-trained weights and MNIST test data" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "N-2PV7LcdFg_", "outputId": "177625f2-5aa4-4b98-8fec-aafd20520cdb" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Downloading...\n", "From: https://drive.google.com/uc?id=1cmNL8W0QZZtn3dPHiOQnVjGAYTk6Rhpc\n", "To: /content/weights_0_1.npy\n", "100% 402k/402k [00:00<00:00, 142MB/s]\n", "Downloading...\n", "From: https://drive.google.com/uc?id=131lCXLEH6aTXnBZ9Nh4eJLSy5DQ6LKSF\n", "To: /content/weights_1_2.npy\n", "100% 5.25k/5.25k [00:00<00:00, 18.8MB/s]\n" ] } ], "source": [ "!gdown 1cmNL8W0QZZtn3dPHiOQnVjGAYTk6Rhpc\n", "!gdown 131lCXLEH6aTXnBZ9Nh4eJLSy5DQ6LKSF" ] }, { "cell_type": "markdown", "source": [ "## Install MNIST package" ], "metadata": { "id": "KVRtXVzIg07T" } }, { "cell_type": "code", "source": [ "!pip install mnist" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AikBc4sfg1b-", "outputId": "bb469225-f242-4f8f-c1ef-e997d97d2066" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting mnist\n", " Downloading mnist-0.2.2-py2.py3-none-any.whl (3.5 kB)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mnist) (1.25.2)\n", "Installing collected packages: mnist\n", "Successfully installed mnist-0.2.2\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "BwadUz9Azxss" }, "source": [ "## Build model\n", "Import standard modules and required PyGeNN functions and classes" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "agqWFZjickfU" }, "outputs": [], "source": [ "import numpy as np\n", "import mnist\n", "import matplotlib.pyplot as plt\n", "from pygenn import (create_neuron_model, create_current_source_model,\n", " init_postsynaptic, init_weight_update, GeNNModel)" ] }, { "cell_type": "markdown", "metadata": { "id": "iuwdL6IE2MuS" }, "source": [ "Define some simulation parameters" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "C68EDXn6cj-O" }, "outputs": [], "source": [ "# Simulation timestep of model in ms\n", "TIMESTEP = 1.0\n", "\n", "# How many timesteps to present images for\n", "PRESENT_TIMESTEPS = 100\n", "\n", "# How much to scale input images\n", "INPUT_CURRENT_SCALE = 1.0 / 100.0" ] }, { "cell_type": "markdown", "metadata": { "id": "9PCMgNPCz86O" }, "source": [ "Because the ReLU neurons our ANN was trained with are best matched by a very simple Integrate-and-Fire neuron without a leak, define a custom model with:\n", "* A single parameter (parameters are common across all neurons in population) `Vthr` which specifies it's spiking threshold\n", "* A single `V` state variable to hold the membrane potential of the neurons\n", "* Simulation code which simply adds the incoming current `Isyn` (this is a built in variable provided by GeNN) to the membrane potential `V` (note, we're assuming that the membrane resistance is 1 here)\n", "* Threshold condition code which causes the neuron to emit a spike if it's membrane potential `V` crosses the threshold `Vthr`\n", "* Reset code which zeros the membrane potential `V` after a spike is emitted." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-7lzXzmQcgbt" }, "outputs": [], "source": [ "if_model = create_neuron_model(\n", " \"if_model\",\n", " params=[\"Vthr\"],\n", " vars=[(\"V\", \"scalar\")],\n", " sim_code=\"V += Isyn;\",\n", " threshold_condition_code=\"V >= Vthr\",\n", " reset_code=\"\"\"\n", " V = 0.0;\n", " \"\"\")" ] }, { "cell_type": "markdown", "metadata": { "id": "ATwobw4Mw2LG" }, "source": [ "We are going to convert MNIST digits to spikes by simply treating the intensity of each pixel (multiplied by a scaling factor) as a current and injecting it into the neurons in the input population throughout the stimulus presentation time.\n", "\n", "To do this we use a very simple custom current source model with:\n", "\n", "* A single `magnitude` state variable to store the per-neuron current to inject\n", "* Injection code which injects a current of `magnitude` every timestep (`$(injectCurrent, X)` is a function provided by GeNN for use in current sources).\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "EEQyoL-zcu-A" }, "outputs": [], "source": [ "cs_model = create_current_source_model(\n", " \"cs_model\",\n", " vars=[(\"magnitude\", \"scalar\")],\n", " injection_code=\"injectCurrent(magnitude);\")" ] }, { "cell_type": "markdown", "metadata": { "id": "TnawdZkzyJQZ" }, "source": [ "Create a new model implementing `scalar` variables as single-precision and generating code into tutorial_1 directory" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "J1VY795eeFa8" }, "outputs": [], "source": [ "model = GeNNModel(\"float\", \"tutorial_1\")\n", "model.dt = TIMESTEP" ] }, { "cell_type": "markdown", "metadata": { "id": "p4wFWaMS1M8_" }, "source": [ "\n", "Load the weight matrices extracted from our original ANN\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6RVz8FPmc4n5" }, "outputs": [], "source": [ "# Load weights\n", "weights_0_1 = np.load(\"weights_0_1.npy\")\n", "weights_1_2 = np.load(\"weights_1_2.npy\")" ] }, { "cell_type": "markdown", "metadata": { "id": "ik9NVB3-1Mdy" }, "source": [ "Create three populations of Integrate-and-Fire neurons sized to match the shapes of the weight matrices and initialised so their membrane potential's are all initialised to 0mv and their spiking thresholds to 5mv." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ODYWtS28cxGi" }, "outputs": [], "source": [ "if_init = {\"V\": 0.0}\n", "if_params = {\"Vthr\": 5.0}\n", "neurons = [model.add_neuron_population(\"neuron0\", weights_0_1.shape[0],\n", " if_model, if_params, if_init),\n", " model.add_neuron_population(\"neuron1\", weights_0_1.shape[1],\n", " if_model, if_params, if_init),\n", " model.add_neuron_population(\"neuron2\", weights_1_2.shape[1],\n", " if_model, if_params, if_init)]" ] }, { "cell_type": "markdown", "metadata": { "id": "DPD-YOP81dGN" }, "source": [ "Because, in this first tutorial we want to examine the spike emitted by each neuron, turn on spike recording for each population." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "elcdezDSeTe4" }, "outputs": [], "source": [ "for n in neurons:\n", " n.spike_recording_enabled = True" ] }, { "cell_type": "markdown", "metadata": { "id": "Fj3wbKso1j2d" }, "source": [ "Add synapse populations to sequentially connect the three populations of neurons. These are all configured identically with:\n", "* `DENSE` connectivity meaning that they are connected with a basic dense weight matrix(see [documentation](https://genn-team.github.io/genn/documentation/4/html/d5/d39/subsect34.html)).\n", "* The built in `StaticPulse` **weight update model** which is used for spiking synapses without any sort of learning. This has no parameters and a single state variable `g` representing its synaptic weights which we initialise using our arrays of pre-trained weights.\n", "* The build in `DeltaCurr` **postsynaptic model** which specified that weighted incoming spikes are added directly to the postsynaptic neuron's membrane potential without any additional shaping occuring. This model has no parameters or state variables.\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Sx1VOU5udixG" }, "outputs": [], "source": [ "model.add_synapse_population(\n", " \"synapse_0_1\", \"DENSE\",\n", " neurons[0], neurons[1],\n", " init_weight_update(\"StaticPulse\", {}, {\"g\": weights_0_1.flatten()}),\n", " init_postsynaptic(\"DeltaCurr\"))\n", "model.add_synapse_population(\n", " \"synapse_1_2\", \"DENSE\",\n", " neurons[1], neurons[2],\n", " init_weight_update(\"StaticPulse\", {}, {\"g\": weights_1_2.flatten()}),\n", " init_postsynaptic(\"DeltaCurr\"));" ] }, { "cell_type": "markdown", "metadata": { "id": "eQaIR8-ByoSI" }, "source": [ "Add current source to provide input into the input population of neurons" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "yENqkr6KeMLp" }, "outputs": [], "source": [ "current_input = model.add_current_source(\"current_input\", cs_model,\n", " neurons[0], {}, {\"magnitude\": 0.0})\n" ] }, { "cell_type": "markdown", "metadata": { "id": "38pYD7rxytBT" }, "source": [ "Run code generator to generate simulation code for model and load it into PyGeNN. Allocate a spike recording buffer large enough to store the spikes emitted throughout a single stimuli presentation." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "0Tf07KUOeP-X" }, "outputs": [], "source": [ "model.build()\n", "model.load(num_recording_timesteps=PRESENT_TIMESTEPS)" ] }, { "cell_type": "markdown", "metadata": { "id": "vBHoR-Eu2r6R" }, "source": [ "## Simulate model\n", "First we load the two numpy arrays containing the images and labels from the MNIST test set and verify that the size of the input images matches that of the first (input) population and that the size of the last (output) population is enough to one-hot encode all of the labels." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qVWFKwiRehF8" }, "outputs": [], "source": [ "mnist.datasets_url = \"https://storage.googleapis.com/cvdf-datasets/mnist/\"\n", "testing_images = mnist.test_images()\n", "testing_labels = mnist.test_labels()\n", "\n", "testing_images = np.reshape(testing_images, (testing_images.shape[0], -1))\n", "assert testing_images.shape[1] == neurons[0].num_neurons\n", "assert np.max(testing_labels) == (neurons[-1].num_neurons - 1)" ] }, { "cell_type": "markdown", "metadata": { "id": "t-F5qx030CdT" }, "source": [ "PyGeNN uses *memory views* to directly expose the memory used by the simulation to numpy. Copy the first testing image into the memory view of the current source's magnitude variable." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "3z1ccKHeejeB" }, "outputs": [], "source": [ "current_input.vars[\"magnitude\"].values = testing_images[0] * INPUT_CURRENT_SCALE" ] }, { "cell_type": "markdown", "metadata": { "id": "U06Zwnuk0ihm" }, "source": [ "![pci-e_single_dual-400x142.png](data:image/png;base64,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)\n", "\n", "On most systems, memory accessible by the GPU and the CPU is seperate.\n", "Therefore, we need to manually copy the values we just placed in the current source's magnitude variable to the GPU (if we're running GeNN on the CPU, this call will not do anything)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "OfdQXEtd0jRi" }, "outputs": [], "source": [ "current_input.vars[\"magnitude\"].push_to_device()" ] }, { "cell_type": "markdown", "metadata": { "id": "OfUYJwC13VOk" }, "source": [ "Simulate the model for `PRESENT_TIMESTEPS` (`model.timestep` tracks integer timesteps whereas `model.time` tracks time in ms)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "4qSoinT4etKq" }, "outputs": [], "source": [ "while model.timestep < PRESENT_TIMESTEPS:\n", " model.step_time()" ] }, { "cell_type": "markdown", "metadata": { "id": "-Xg5AItK3ahj" }, "source": [ "Download the recorded spikes from the GPU" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "wOhN-Qcuexjy" }, "outputs": [], "source": [ "model.pull_recording_buffers_from_device()" ] }, { "cell_type": "markdown", "metadata": { "id": "dwGQ4ygO3f2b" }, "source": [ "Plot raster plots of the spikes from all neuron populations, illustrating the correct label for this image with a horizontal line" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 472 }, "id": "dBFluY10e7Ba", "outputId": "fd82e034-e5ad-4c3b-cbd2-e998429cfab1" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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+3TgRERERDLp0kE6evQo/v73v+P226010zARERGRCF0GaXfu3BnHjh3TY9NEREREutPlDNLo0aMxceJEFBYWonXr1o6H+93Upo31nkNEREREdJMujxq5+RRlp0A2GxRFseQgbT5qhIiIyPfo+futyxmkvLw8PTZLREREZAhdOkjJybd+CjARERGRlek2UWRubi7eeOMNHDlyBADQokULjB07FqmpqXqFJCIiIpJCl7vYNm3ahBYtWmDPnj1o06YN2rRpg927d6Nly5b44osvpMaaMWMGbDab0ystLU1qDCIiIgosupxByszMxPjx4zFnzpxqyydPnoxf//rXUuO1bNkS//73vx1/h4TodmKMiIiIAoAuPYkjR47g448/rrZ86NCheOONN6THCwkJQXx8vPTtEhERUWDS5RJbbGwsDh48WG35wYMHERcXJz3e0aNHkZCQgCZNmqB///44efLkLdcvKytDSUmJ04uIiIjoJl3OIA0bNgzDhw/Hjz/+iHvuuQcAsGPHDsydOxcTJkyQGqtz585Yvnw5mjdvjtOnT2PmzJm499578d1336F27dqq38nKysLMmTOlpoOIiIj8hy4TRSqKgjfeeAPz589HQUEBACAhIQEvvPACxowZo+vDa4uLi5GcnIwFCxbgd7/7neo6ZWVlKCsrc/xdUlKCxMREThRJRETkQ3xqosiKigp8+OGHePrppzF+/HhcunQJANyezZEtJiYGzZo1u+Wz4MLCwhAWFmZIeoiIiMj3SB+DFBISghEjRqC0tBTAjY6RUZ0jALh8+TJyc3PRsGFDw2ISERGRf9FlkHanTp1w4MABPTZdzaRJk7B161YcP34cX331FR577DEEBwejX79+hsQnIiIi/6PLIO1Ro0Zh4sSJ+Omnn9ChQwfUqlXL6fM2bdpIi/XTTz+hX79+OH/+PGJjY9GtWzfs2rULsbGx0mIQERFRYNFlkHZQUPUTUzabDYqiwGazobKyUnZITfQc5EVERET68KlB2gCQl5enx2aJiIiIDKFLByk5OVmPzRIREREZQpcO0l//+tdbfv7MM8/oEZaIiIhICl3GINWpU8fp7+vXr+Pq1auoUaMGatasiQsXLsgOqQnHIBEREfkePX+/dbnN/+LFi06vy5cvIycnB926dcNHH32kR0giIiIiaXTpIKlp2rQp5syZg7FjxxoVkoiI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ykolISFBycrKMjFVgefMmTMKAGXr1q2KoihKcXGxEhoaqqxevdqxzpEjRxQAys6dO81Kpl+7dOmS0rRpU+WLL75QevTooYwdO1ZRFNaFkSZPnqx069bN7edVVVVKfHy88sc//tGxrLi4WAkLC1M++ugjI5IYUHr37q0MHTrUadnjjz+u9O/fX1EU1odRAChr1651/C1S7ocPH1YAKF9//bVjnY0bNyo2m03Jz88Xjh2wZ5DKy8uxb98+pKenO5YFBQUhPT0dO3fuNDFlgcdutwOA42GD+/btw/Xr153qJi0tDUlJSawbnTz33HPo3bu3U5kDrAsjffrpp+jYsSOefPJJxMXFoX379njnnXccn+fl5aGwsNCpLqKjo9G5c2fWhQ7uueceZGdn44cffgAAfPPNN9i+fTsefPBBAKwPs4iU+86dOxETE4OOHTs61klPT0dQUBB2794tHMtvZtL21Llz51BZWVntcSQNGjTAf//7X5NSFXiqqqowbtw4dO3aFa1atQIAFBYWokaNGoiJiXFat0GDBigsLDQhlf5t5cqV2L9/P77++utqn7EujPPjjz9iyZIlmDBhAv7whz/g66+/xpgxY1CjRg0MGjTIUd5qxyzWhXyZmZkoKSlBWloagoODUVlZidmzZ6N///4AwPowiUi5FxYWIi4uzunzkJAQ1K1b16O6CdgOElnDc889h++++w7bt283OykB6dSpUxg7diy++OILhIeHm52cgFZVVYWOHTvi1VdfBQC0b98e3333HZYuXYpBgwaZnLrA8/HHH+Nvf/sbPvzwQ7Rs2RIHDx7EuHHjkJCQwPoIEAF7ia1+/foIDg6udjdOUVER4uPjTUpVYHn++eexfv16bN68GbfddptjeXx8PMrLy1FcXOy0PutGvn379uHMmTO48847ERISgpCQEGzduhULFy5ESEgIGjRowLowSMOGDdGiRQunZXfccQdOnjwJAI7y5jHLGC+88AIyMzPx1FNPoXXr1hg4cCDGjx+PrKwsAKwPs4iUe3x8fLWbrSoqKnDhwgWP6iZgO0g1atRAhw4dkJ2d7VhWVVWF7OxsdOnSxcSU+T9FUfD8889j7dq1+PLLL5GSkuL0eYcOHRAaGupUNzk5OTh58iTrRrL77rsP3377LQ4ePOh4dezYEf3793f8m3VhjK5du1ab7uKHH35AcnIyACAlJQXx8fFOdVFSUoLdu3ezLnRw9epVBAU5/0QGBwejqqoKAOvDLCLl3qVLFxQXF2Pfvn2Odb788ktUVVWhc+fO4sE0DzH3YStXrlTCwsKU5cuXK4cPH1aGDx+uxMTEKIWFhWYnza+NHDlSiY6OVrZs2aKcPn3a8bp69apjnREjRihJSUnKl19+qezdu1fp0qWL0qVLFxNTHTh+fheborAujLJnzx4lJCREmT17tnL06FHlb3/7m1KzZk1lxYoVjnXmzJmjxMTEKP/85z+VQ4cOKY8++qiSkpKiXLt2zcSU+6dBgwYpjRo1UtavX6/k5eUpa9asUerXr6/8/ve/d6zD+tDHpUuXlAMHDigHDhxQACgLFixQDhw4oJw4cUJRFLFyf+CBB5T27dsru3fvVrZv3640bdpU6devn0fpCOgOkqIoyqJFi5SkpCSlRo0aSqdOnZRdu3aZnSS/B0D19d577znWuXbtmjJq1CilTp06Ss2aNZXHHntMOX36tHmJDiCuHSTWhXHWrVuntGrVSgkLC1PS0tKUP//5z06fV1VVKVOnTlUaNGighIWFKffdd5+Sk5NjUmr9W0lJiTJ27FglKSlJCQ8PV5o0aaK8+OKLSllZmWMd1oc+Nm/erPobMWjQIEVRxMr9/PnzSr9+/ZTIyEglKipKGTJkiHLp0iWP0mFTlJ9NC0pEREREgTsGiYiIiMgddpCIiIiIXLCDREREROSCHSQiIiIiF+wgEREREblgB4mIiIjIBTtIRERERC7YQSIi0wwePBh9+vQxPO7y5cths9lgs9kwbtw43eIcP37cEaddu3a6xSEi+ULMTgAR+SebzXbLz6dPn44333wTZs1VGxUVhZycHNSqVUu3GImJiTh9+jTmzZuHf//737rFISL52EEiIl2cPn3a8e9Vq1Zh2rRpTg9jjYyMRGRkpBlJA3CjA6f3U9eDg4MRHx9vaj6JyDu8xEZEuoiPj3e8oqOjHR2Sm6/IyMhql9h69uyJ0aNHY9y4cahTpw4aNGiAd955B1euXMGQIUNQu3Zt3H777di4caNTrO+++w4PPvggIiMj0aBBAwwcOBDnzp3zOM2NGzfGrFmz8MwzzyAyMhLJycn49NNPcfbsWTz66KOIjIxEmzZtsHfvXsd3Tpw4gYcffhh16tRBrVq10LJlS3z22WdelxsRWQM7SERkKe+//z7q16+PPXv2YPTo0Rg5ciSefPJJ3HPPPdi/fz/uv/9+DBw4EFevXgUAFBcXo1evXmjfvj327t2Lzz//HEVFRejbt69X8V9//XV07doVBw4cQO/evTFw4EA888wzGDBgAPbv34/U1FQ888wzjkuDzz33HMrKyrBt2zZ8++23mDt3Ls8YEfkBdpCIyFLatm2Ll156CU2bNsWUKVMQHh6O+vXrY9iwYWjatCmmTZuG8+fP49ChQwCAt956C+3bt8err76KtLQ0tG/fHu+++y42b96MH374weP4v/nNb/D//X//nyNWSUkJ7rrrLjz55JNo1qwZJk+ejCNHjqCoqAgAcPLkSXTt2hWtW7dGkyZN8NBDD6F79+5Sy4SIjMcOEhFZSps2bRz/Dg4ORr169dC6dWvHsgYNGgAAzpw5AwD45ptvsHnzZseYpsjISKSlpQEAcnNzNcW/GetW8ceMGYNZs2aha9eumD59uqPjRkS+jR0kIrKU0NBQp79tNpvTspt3x1VVVQEALl++jIcffhgHDx50eh09etSrMzlqsW4V/9lnn8WPP/6IgQMH4ttvv0XHjh2xaNEij+MSkbWwg0REPu3OO+/E999/j8aNG+P22293eul5C//PJSYmYsSIEVizZg0mTpyId955x5C4RKQfdpCIyKc999xzuHDhAvr164evv/4aubm52LRpE4YMGYLKykrd448bNw6bNm1CXl4e9u/fj82bN+OOO+7QPS4R6YsdJCLyaQkJCdixYwcqKytx//33o3Xr1hg3bhxiYmIQFKT/Ia6yshLPPfcc7rjjDjzwwANo1qwZ3n77bd3jEpG+bIpZ09gSEZlk+fLlGDduHIqLiw2JN2PGDHzyySc4ePCgIfGISDueQSKigGS32xEZGYnJkyfrFuPkyZOIjIzEq6++qlsMItIHzyARUcC5dOmSYx6jmJgY1K9fX5c4FRUVOH78OAAgLCwMiYmJusQhIvnYQSIiIiJywUtsRERERC7YQSIiIiJywQ4SERERkQt2kIiIiIhcsINERERE5IIdJCIiIiIX7CARERERuWAHiYiIiMgFO0hERERELv5/uml8man5X4sAAAAASUVORK5CYII=\n" }, "metadata": {} } ], "source": [ "# Create figure with one axis per neuron population\n", "fig, axes = plt.subplots(len(neurons), sharex=True)\n", "\n", "# Loop through neuron populations and the axis we're going to plot their raster plot on\n", "for n, a in zip(neurons, axes):\n", " # Extract spike times and IDs and plot\n", " spike_times, spike_ids = n.spike_recording_data[0]\n", " a.scatter(spike_times, spike_ids, s=1)\n", "\n", " a.set_title(n.name)\n", " a.set_ylabel(\"Neuron ID\")\n", " a.set_xlim((0, PRESENT_TIMESTEPS * TIMESTEP))\n", " a.set_ylim((0, n.num_neurons))\n", "\n", "# Add an x-axis label and translucent line showing the correct label\n", "axes[-1].set_xlabel(\"Time [ms]\")\n", "axes[-1].hlines(testing_labels[0], xmin=0, xmax=PRESENT_TIMESTEPS,\n", " linestyle=\"--\", color=\"gray\", alpha=0.2);" ] } ], "metadata": { "accelerator": "GPU", "colab": { "name": "tutorial_1", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "nbformat": 4, "nbformat_minor": 0 }