Skip to content

Instantly share code, notes, and snippets.

@asford
Last active March 3, 2018 19:05
Show Gist options
  • Save asford/0c681808143af0d324f965e6b9660383 to your computer and use it in GitHub Desktop.
Save asford/0c681808143af0d324f965e6b9660383 to your computer and use it in GitHub Desktop.
# Layout configuration for conda environments.
# Specify environment name with `layout conda <envname>`
# or
# Detect name from environment.yml with `layout conda`
layout_conda() {
if [ -n "$1" ]; then
source activate $1;
elif (grep -q name: environment.yml); then
source activate `grep name: environment.yml | sed -e 's/name: //'`
else
(>&2 echo No environment specified);
exit 1;
fi;
}
layout conda
# Created by https://www.gitignore.io/api/python,jupyternotebook
### JupyterNotebook ###
.ipynb_checkpoints
*/.ipynb_checkpoints/*
# Remove previous ipynb_checkpoints
# git rm -r .ipynb_checkpoints/
#
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.hypothesis/
# Translations
*.mo
*.pot
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule.*
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
# End of https://www.gitignore.io/api/python,jupyternotebook

Depth Limited Sparse Graph Paths

name: sparse_mult
dependencies:
- python=3.5
- ipython
- ipykernel
- numpy
- scipy
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy\n",
"import scipy.sparse"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def graph_path_expansion(adjacency_graph, depth):\n",
" \"\"\"Expand unweighted Adjacency matrix to find inter-vertex paths to a given depth.\n",
" \n",
" Performs stacked, sparse multiplications of a [0/1] adjacency matrix to identify inter-node paths. \n",
" Stacks paths by length and return sparse adjacency-matrix where inter-vertex weight is the shortest\n",
" path between two verticies.\n",
" \n",
" Returns a sparse coo_matrix of the identified paths with integer-valued path lengths.\n",
" \"\"\"\n",
" \n",
" assert adjacency_graph.ndim == 2 and adjacency_graph.shape[0] == adjacency_graph.shape[1]\n",
" \n",
" adjacency_graph = scipy.sparse.coo_matrix(adjacency_graph.astype(bool))\n",
" \n",
" dist_stack = [\n",
" adjacency_graph,\n",
" ]\n",
" \n",
" for _ in range(2, depth):\n",
" dist_stack.append(dist_stack[-1] @ adjacency_graph)\n",
" \n",
" dist_matrix = scipy.sparse.coo_matrix(adjacency_graph.shape)\n",
" \n",
" # Oh my, let's get weird.\n",
" #\n",
" # The implied value of the sparse entries of a matrix is 0,\n",
" # Which is reflected the the `.minimum` and `.maximum` operations.\n",
" # Need to offset all our path lengths to a negative number so that\n",
" # we can still rank via minimum, but have a sparse entry considered\n",
" # \"greater\" than any existing path length. Just substract the maximum\n",
" # path length, we'll then rest back into the true path length domain\n",
" # for the return value.\n",
" for i, dist_graph in enumerate(dist_stack):\n",
" dist_matrix = dist_matrix.minimum( dist_graph.astype(int) * (i - depth))\n",
" \n",
" dist_matrix = dist_matrix.tocoo()\n",
" return scipy.sparse.coo_matrix((dist_matrix.data + depth + 1, (dist_matrix.row, dist_matrix.col)))\n",
"\n",
"def sparse_path_len_to_dense(path_length_graph):\n",
" \n",
" path_length_graph = path_length_graph.tocoo()\n",
" result = numpy.full(path_length_graph.shape, numpy.inf)\n",
" result[path_length_graph.row, path_length_graph.col] = path_length_graph.data\n",
" \n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 20 ms, sys: 2 ms, total: 22 ms\n",
"Wall time: 22.5 ms\n"
]
}
],
"source": [
"%%time\n",
"system_size = int(10e3)\n",
"max_depth = 4\n",
"\n",
"bond_matrix = scipy.sparse.diags([[True], [True], [True]], [-1, 0, 1], shape=(system_size, system_size), dtype=bool)\n",
"dist_matrix = graph_path_expansion(bond_matrix, max_depth)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
"require.config({\n",
" paths: {\n",
" 'svg-pan-zoom': '//cdn.jsdelivr.net/npm/[email protected]/dist/svg-pan-zoom.min',\n",
" 'hammer': '//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min',\n",
" 'viz': '//cdnjs.cloudflare.com/ajax/libs/viz.js/1.8.0/viz'\n",
" }\n",
"});\n",
"\n",
"\n",
"require([\"svg-pan-zoom\", \"hammer\", \"viz\"], function(svgPanZoom, Hammer, viz) {\n",
" console.log(Viz);\n",
" var source = atob('ZGlncmFwaCB7CglncmFwaCBbZm9udG5hbWU9QXJpYWwsIG5vZGVzZXA9MC4xMjUsIHJhbmtzZXA9\\nMC4yNV07Cglub2RlIFtmb250Y29sb3I9d2hpdGUsIGZvbnRuYW1lPUFyaWFsLCBoZWlnaHQ9MCwg\\nc2hhcGU9Ym94LCBzdHlsZT1maWxsZWQsIHdpZHRoPTBdOwoJZWRnZSBbZm9udG5hbWU9QXJpYWxd\\nOwoJMCBbY29sb3I9IiMwZDIwNzkiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iYmFzZToyMTM6bm56XG40LjUzJVxuKDIuMDElKVxuMTIyw5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07CgkwIC0+IDQ2IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIxLjQxJVxuMjDDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJMCAtPiAxMjMgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMTc0IiwgZm9u\\ndGNvbG9yPSIjMGQxMTc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuMTElXG4xMDLDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMSBbY29sb3I9IiMwZDQz\\nODIiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29vOjIx\\nOTpfY2hlY2tcbjExLjY4JVxuKDIuNDklKVxuN8OXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5j\\nb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9z\\ncGFyc2UvY29vLnB5Il07CgkxIC0+IDAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTcz\\nIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjYlXG43\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEgLT4gMTMgW2Fy\\ncm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMzUlXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBk\\nMTI3NCIsIGZvbnRjb2xvcj0iIzBkMTI3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjE3\\nJVxuN8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDE1\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjUxJVxuN8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07CgkxIC0+IDI3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0i\\nIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIx\\nLjQ1JVxuMTLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMSAt\\nPiA5NCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEzNzUiLCBmb250Y29sb3I9IiMwZDEz\\nNzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS42MCVcbjE5w5ciLCBsYWJlbGRpc3RhbmNl\\nPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEgLT4gMTE5IFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGQ3MyIsIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjE0JVxuMTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJd\\nOwoJMiBbY29sb3I9IiMwYzVjODgiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iY29vOjMxMDp0b2NzclxuMTYuMjIlXG4oMS41NSUpXG41w5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb28ucHkiXTsKCTIgLT4gMCBbYXJyb3dzaXplPSIwLjM1\\nIiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAi\\nLCBsYWJlbD0iMC40OCVcbjEzw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAu\\nNTAiXTsKCTIgLT4gMTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNv\\nbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTMlXG40w5ciLCBsYWJl\\nbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMTQgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjMGQxMDc0IiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuNjclXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTIgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzMTdkIiwgZm9u\\ndGNvbG9yPSIjMGQzMTdkIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjguMTUlXG41w5ciLCBs\\nYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMzkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxZTc4IiwgZm9udGNvbG9yPSIjMGQxZTc4IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjQuMTQlXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTIgLT4gOTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwg\\nZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMzQlXG40w5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTIgLT4gMTE2IFthcnJv\\nd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSIwLjQ3JVxuOMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkyIC0+IDEyMSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE0\\nNzUiLCBmb250Y29sb3I9IiMwZDE0NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS43NSVc\\nbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMyBbY29sb3I9\\nIiMwZDI5N2IiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nY29tcHJlc3NlZDoxMDU4OnBydW5lXG42LjQwJVxuKDIuNjAlKVxuMjTDlyIsIHRvb2x0aXA9Ii9o\\nb21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFj\\na2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTMgLT4gMCBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDFjNzciLCBmb250Y29sb3I9IiMwZDFjNzciLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMy41NiVcbjk2w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTMgLT4gODIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9u\\ndGNvbG9yPSIjMGQwZjczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNTAlXG40OMOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzIC0+IDg1IFthcnJvd3Np\\nemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXpl\\nPSIxMC4wMCIsIGxhYmVsPSIwLjU3JVxuNzLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMyAtPiAxMTkgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDcz\\nIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTglXG4y\\nNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0IFtjb2xvcj0i\\nIzBjNWM4OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJj\\nb21wcmVzc2VkOjEwOTA6X2Jpbm9wdFxuMTYuMTIlXG4oMC44NSUpXG4zw5ciLCB0b29sdGlwPSIv\\naG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBh\\nY2thZ2VzL3NjaXB5L3NwYXJzZS9jb21wcmVzc2VkLnB5Il07Cgk0IC0+IDAgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMjIlXG42w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTQgLT4gMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEwNzQiLCBmb250\\nY29sb3I9IiMwZDEwNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC44MCVcbjPDlyIsIGxh\\nYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNCAtPiAxMSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMC4zMCVcbjnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJNCAtPiAxMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBm\\nb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4zMCVcbjEyw5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTQgLT4gMTQgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjMGQwZjczIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjAuNTAlXG4zw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTQgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzOTdm\\nIiwgZm9udGNvbG9yPSIjMGQzOTdmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjkuNzclXG42\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTQgLT4gMTE4IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTk3NyIsIGZvbnRjb2xvcj0iIzBkMTk3NyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIyLjk1JVxuM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk1IFtjb2xvcj0iIzBjOTY4YyIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb286MTI1Ol9faW5pdF9fXG4yNi43OSVcbigy\\nLjExJSlcbjfDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNSAt\\nPiAxIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkNDM4MiIsIGZvbnRjb2xvcj0iIzBkNDM4\\nMiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxMS42OCVcbjfDlyIsIGxhYmVsZGlzdGFuY2U9\\nIjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNSAtPiAxNCBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDExNzQiLCBmb250Y29sb3I9IiMwZDExNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMS4wMSVcbjbDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJ\\nNSAtPiAzNiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiMw\\nZDNjODAiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTAuMjAlXG4xw5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUgLT4gNTAgW2Fycm93c2l6ZT0iMC4zNSIs\\nIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9IjAuMTQlXG43w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAi\\nXTsKCTUgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9y\\nPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjYlXG4xOMOXIiwgbGFiZWxk\\naXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDc5IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIwLjkxJVxuNsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIw\\nLjUwIl07Cgk1IC0+IDg3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRj\\nb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjI3JVxuN8OXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDkzIFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIwLjc4JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRo\\nPSIwLjUwIl07Cgk1IC0+IDk0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZv\\nbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjUxJVxuNsOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1IC0+IDExMCBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC4yNSVcbjfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJNSAtPiAxMTYgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTcz\\nIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjQlXG40\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTggW2NvbG9yPSIj\\nMGQwZjc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNo\\nYXBlX2Jhc2U6ODQ0OnRpbGVcbjAuNjMlXG4oMC4zMSUpXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9m\\nb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2Vz\\nL251bXB5L2xpYi9zaGFwZV9iYXNlLnB5Il07Cgk5IFtjb2xvcj0iIzBkMWM3NyIsIGZvbnRjb2xv\\ncj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjc3JfbWF0bWF0X3Bhc3My\\nXG4zLjU1JVxuKDMuNTUlKVxuMsOXIiwgdG9vbHRpcD0iIl07CgkxMCBbY29sb3I9IiMwYzcwOGMi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29tcHJlc3Nl\\nZDo0Nzc6X211bF9zcGFyc2VfbWF0cml4XG4xOS40NCVcbigwLjc4JSlcbjLDlyIsIHRvb2x0aXA9\\nIi9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUt\\ncGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTEwIC0+IDkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjMGQxYzc3IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjMuNTUlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTEwIC0+IDExIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIs\\nIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjIwJVxuNsOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMCAtPiAxMyBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC40NSVcbjE4w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTEwIC0+IDE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBk\\nMTA3NCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjY3\\nJVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMCAtPiAx\\nNyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDI5N2IiLCBmb250Y29sb3I9IiMwZDI5N2Ii\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNi41MiVcbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAu\\nNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTAgLT4gNzEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9y\\nPSIjMGQxMjc1IiwgZm9udGNvbG9yPSIjMGQxMjc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjEuMzglXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTEx\\nIFtjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSI6MDplbXB0eVxuMC42NiVcbigwLjY2JSlcbjIww5ciLCB0b29sdGlwPSIiXTsKCTEy\\nIFtjb2xvcj0iIzBkMjE3OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSJjb21wcmVzc2VkOjkyNzp0b2Nvb1xuNC42NCVcbigwLjMyJSlcbjHDlyIsIHRvb2x0\\naXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3Np\\ndGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHkiXTsKCTEyIC0+IDUgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxZDc4IiwgZm9udGNvbG9yPSIjMGQxZDc4IiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjMuODMlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTEzIFtjb2xvcj0iIzBkMjQ3YSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJudW1lcmljOjQyNDphc2FycmF5XG41LjQzJVxuKDMu\\nMzYlKVxuMjE3w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211\\nbHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2NvcmUvbnVtZXJpYy5weSJdOwoJ\\nMTMgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNvbG9yPSIj\\nMGQxYTc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMTQlXG4yMTfDlyIsIGxhYmVsZGlz\\ndGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTQgW2NvbG9yPSIjMGQzYTdmIiwgZm9u\\ndGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRpbHM6MTE5Omdl\\ndF9pbmRleF9kdHlwZVxuOS44OCVcbig0LjYxJSlcbjU5w5ciLCB0b29sdGlwPSIvaG9tZS9mb3Jk\\nYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3Nj\\naXB5L3NwYXJzZS9zcHV0aWxzLnB5Il07CgkxNCAtPiAxMyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMi41MCVcbjEwMMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgkxNCAtPiA1MCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEyNzQiLCBmb250Y29sb3I9\\nIiMwZDEyNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS4yMSVcbjU5w5ciLCBsYWJlbGRp\\nc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE0IC0+IDU4IFthcnJvd3NpemU9IjAu\\nMzUiLCBjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4w\\nMCIsIGxhYmVsPSIwLjYyJVxuNTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJMTQgLT4gMTE0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTQ3NSIsIGZv\\nbnRjb2xvcj0iIzBkMTQ3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjgxJVxuNTnDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTUgW2NvbG9yPSIjMGQx\\nNTc1IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRp\\nbHM6OTE6dG9fbmF0aXZlXG4xLjg5JVxuKDAuNzYlKVxuMjbDlyIsIHRvb2x0aXA9Ii9ob21lL2Zv\\ncmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMv\\nc2NpcHkvc3BhcnNlL3NwdXRpbHMucHkiXTsKCTE1IC0+IDEzIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjY1JVxuMjbDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJd\\nOwoJMTYgW2NvbG9yPSIjMGM1ODg3IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MTI4OmNoZWNrX2Zvcm1hdFxuMTUuMzYlXG4oNC4xNSUp\\nXG4xOcOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xp\\nYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJ\\nMTYgLT4gMyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDIzNzkiLCBmb250Y29sb3I9IiMw\\nZDIzNzkiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNS4wNyVcbjE5w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE2IC0+IDEzIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMTE3NCIsIGZvbnRjb2xvcj0iIzBkMTE3NCIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjk1JVxuMzjDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJMTYgLT4gMTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNv\\nbG9yPSIjMGQxYTc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMTglXG4xOcOXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNiAtPiAxNSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDEyNzUiLCBmb250Y29sb3I9IiMwZDEyNzUiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMS4zOCVcbjE5w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTE2IC0+IDg1IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3NCIs\\nIGZvbnRjb2xvcj0iIzBkMGY3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjYwJVxuNzbD\\nlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTYgLT4gMTE5IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE0JVxuMTnDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgW2NvbG9yPSIjMGM5Yjc5IiwgZm9udGNvbG9yPSIjZmZm\\nZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MjU6X19pbml0X19cbjMw\\nLjk1JVxuKDMuNTMlKVxuMTnDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9z\\ncGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXBy\\nZXNzZWQucHkiXTsKCTE3IC0+IDEzIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIs\\nIGZvbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjEzJVxuNcOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAtPiAxNCBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMi4zNSVcbjE0w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTE3IC0+IDE2IFthcnJvd3NpemU9IjAuMzkiLCBjb2xvcj0iIzBj\\nNTg4NyIsIGZvbnRjb2xvcj0iIzBjNTg4NyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxNS4z\\nNiVcbjE5w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjYxIiwgcGVud2lkdGg9IjAuNjEiXTsKCTE3IC0+\\nIDMyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMzM3ZSIsIGZvbnRjb2xvcj0iIzBkMzM3\\nZSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI4LjQ1JVxuNcOXIiwgbGFiZWxkaXN0YW5jZT0i\\nMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAtPiA1MCBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMC4yOSVcbjE0w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsK\\nCTE3IC0+IDUxIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0i\\nIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjU2JVxuMznDlyIsIGxhYmVsZGlz\\ndGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gNjYgW2Fycm93c2l6ZT0iMC4z\\nNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAw\\nIiwgbGFiZWw9IjAuMzklXG4xOcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIw\\nLjUwIl07CgkxNyAtPiA3OCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250\\nY29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC40NCVcbjPDlyIsIGxh\\nYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gNzkgW2Fycm93c2l6\\nZT0iMC4zNSIsIGNvbG9yPSIjMGQxNjc1IiwgZm9udGNvbG9yPSIjMGQxNjc1IiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9IjIuMTElXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndp\\nZHRoPSIwLjUwIl07CgkxNyAtPiA4NSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMi\\nLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4yMCVcbjI2\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTE3IC0+IDg3IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjU1JVxuMTTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMTcgLT4gOTQgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIj\\nMGQxMjc0IiwgZm9udGNvbG9yPSIjMGQxMjc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEu\\nMTglXG4xNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxNyAt\\nPiAxMTAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjMGQx\\nMDc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNjglXG4xOcOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxOSBbY29sb3I9IiNmZTA1MDAiLCBmb250Y29s\\nb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6ZXhlY1xuOTkuNTYlXG4o\\nMC42MCUpXG4xw5ciLCB0b29sdGlwPSIiXTsKCTE5IC0+IDM3IFthcnJvd3NpemU9IjAuOTkiLCBj\\nb2xvcj0iI2ZkMGIwMCIsIGZvbnRjb2xvcj0iI2ZkMGIwMCIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSI5OC45NyVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjMuOTYiLCBwZW53aWR0aD0iMy45NiJd\\nOwoJMjAgW2NvbG9yPSIjZmYwMDAwIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9InByb2ZpbGU6MDpzeXN0ZW1fc2l6ZSA9IGludCg1ZTMpXG5tYXhfZGVwdGgg\\nPSA0XG5cbmJvbmRfbWF0cml4ID0gc2NpcHkuc3BhcnNlLmRpYWdzKFtbVHJ1ZV0sIFtUcnVlXSwg\\nW1RydWVdXSwgWy0xLCAwLCAxXSwgc2hhcGU9KHN5c3RlbV9zaXplLCBzeXN0ZW1fc2l6ZSksIGR0\\neXBlPWJvb2wpXG5kaXN0X21hdHJpeCA9IGdyYXBoX3BhdGhfZXhwYW5zaW9uKGJvbmRfbWF0cml4\\nLCBtYXhfZGVwdGgpXG4xMDAuMDAlXG4oMC4xNyUpXG4xw5ciLCB0b29sdGlwPXByb2ZpbGVdOwoJ\\nMjAgLT4gMTkgW2Fycm93c2l6ZT0iMS4wMCIsIGNvbG9yPSIjZmUwNTAwIiwgZm9udGNvbG9yPSIj\\nZmUwNTAwIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Ijk5LjU2JVxuMcOXIiwgbGFiZWxkaXN0\\nYW5jZT0iMy45OCIsIHBlbndpZHRoPSIzLjk4Il07CgkyMSBbY29sb3I9IiMwZDEwNzQiLCBmb250\\nY29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6Y29uY2F0ZW5hdGVc\\nbjAuNzklXG4oMC43OSUpXG4zw5ciLCB0b29sdGlwPSIiXTsKCTIzIFtjb2xvcj0iIzBkMTI3NCIs\\nIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJhcnJheXNldG9w\\nczoyNTY6X3VuaXF1ZTFkXG4xLjM3JVxuKDAuMzQlKVxuMsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9u\\ndW1weS9saWIvYXJyYXlzZXRvcHMucHkiXTsKCTIzIC0+IDIxIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjUzJVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgkyNiBbY29sb3I9IiMwZDE1NzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iX21ldGhvZHM6Mjg6X2FtaW5cbjEuOTclXG4oMC4yMCUpXG4xMsOXIiwgdG9v\\nbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUv\\nc2l0ZS1wYWNrYWdlcy9udW1weS9jb3JlL19tZXRob2RzLnB5Il07CgkyNiAtPiAxMjAgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxODc2IiwgZm9udGNvbG9yPSIjMGQxODc2IiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjIuNTclXG4xMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkyNyBbY29sb3I9IiMwZDE2NzYiLCBmb250Y29sb3I9IiNmZmZmZmYi\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6bWluXG4yLjMwJVxuKDAuMzQlKVxuMTnDlyIs\\nIHRvb2x0aXA9IiJdOwoJMjcgLT4gMjYgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxNTc1\\nIiwgZm9udGNvbG9yPSIjMGQxNTc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuOTclXG4x\\nMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMCBbY29sb3I9\\nIiMwZDEzNzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nY29tcHJlc3NlZDo5NzM6X19nZXRfaGFzX2Nhbm9uaWNhbF9mb3JtYXRcbjEuNTUlXG4oMC4zNCUp\\nXG42w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGli\\nL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb21wcmVzc2VkLnB5Il07Cgkz\\nMCAtPiAxMDUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIj\\nMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMTclXG42w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTMyIFtjb2xvcj0iIzBkM2I4MCIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJiYXNlOjI2OTphc2Zvcm1h\\ndFxuMTAuMTQlXG4oMC4xNCUpXG42w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2Vu\\ndnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9i\\nYXNlLnB5Il07CgkzMiAtPiAyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMzk3ZiIsIGZv\\nbnRjb2xvcj0iIzBkMzk3ZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI5LjczJVxuM8OXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMyBbY29sb3I9IiMwZDFm\\nNzgiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29uc3Ry\\ndWN0OjY0OmRpYWdzXG40LjMxJVxuKDAuNjMlKVxuMcOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFz\\nLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lw\\neS9zcGFyc2UvY29uc3RydWN0LnB5Il07CgkzMyAtPiAyNyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMC40OCVcbjTDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJ\\nMzMgLT4gMzIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9yPSIj\\nMGQxNDc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNjklXG4xw5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTMzIC0+IDQyIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjQxJVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUw\\nIl07CgkzMyAtPiA1MiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE1NzUiLCBmb250Y29s\\nb3I9IiMwZDE1NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS44OCVcbjHDlyIsIGxhYmVs\\nZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzMgLT4gNTcgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMTglXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTMzIC0+IDc4IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZv\\nbnRjb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE1JVxuMcOXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzMyAtPiA5NCBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC40MiVcbjXDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzQgW2NvbG9yPSIjMGQyNzdiIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwg\\nZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbzo0NTI6X3dpdGhfZGF0YVxuNi4wOCVcbigwLjE5\\nJSlcbjLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9s\\naWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJMzQgLT4g\\nNSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDJmN2QiLCBmb250Y29sb3I9IiMwZDJmN2Qi\\nLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNy42NSVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAu\\nNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzQgLT4gOTggW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9y\\nPSIjMGQwZDczIiwgZm9udGNvbG9yPSIjMGQwZDczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjAuMTglXG40w5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM1\\nIFtjb2xvcj0iI2Y2M2IwMSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSI8aXB5dGhvbi1pbnB1dC02LTc2NTAyZWMwOTU0ND46MTpncmFwaF9wYXRoX2V4cGFu\\nc2lvblxuOTQuMTIlXG4oMS41NiUpXG4xw5ciLCB0b29sdGlwPSI8aXB5dGhvbi1pbnB1dC02LTc2\\nNTAyZWMwOTU0ND4iXTsKCTM1IC0+IDUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQ0Mjgy\\nIiwgZm9udGNvbG9yPSIjMGQ0MjgyIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjExLjQ4JVxu\\nM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkzNSAtPiAxMiBb\\nYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDIxNzkiLCBmb250Y29sb3I9IiMwZDIxNzkiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iNC42NCVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJMzUgLT4gNDggW2Fycm93c2l6ZT0iMC40NCIsIGNvbG9yPSIj\\nMGM2ZjhjIiwgZm9udGNvbG9yPSIjMGM2ZjhjIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE5\\nLjM5JVxuNMOXIiwgbGFiZWxkaXN0YW5jZT0iMC43OCIsIHBlbndpZHRoPSIwLjc4Il07CgkzNSAt\\nPiA2MCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiMwZDNj\\nODAiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTAuMjMlXG4xw5ciLCBsYWJlbGRpc3RhbmNl\\nPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM1IC0+IDY0IFthcnJvd3NpemU9IjAuNDkiLCBj\\nb2xvcj0iIzBjOGU5MiIsIGZvbnRjb2xvcj0iIzBjOGU5MiIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIyNC4yMiVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuOTciLCBwZW53aWR0aD0iMC45NyJd\\nOwoJMzUgLT4gNjcgW2Fycm93c2l6ZT0iMC40MyIsIGNvbG9yPSIjMGM2YThiIiwgZm9udGNvbG9y\\nPSIjMGM2YThiIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE4LjQ4JVxuM8OXIiwgbGFiZWxk\\naXN0YW5jZT0iMC43NCIsIHBlbndpZHRoPSIwLjc0Il07CgkzNSAtPiA4MSBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDQyODIiLCBmb250Y29sb3I9IiMwZDQyODIiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMTEuNDQlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTM2IFtjb2xvcj0iIzBkM2M4MCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJkaWE6MzQ4OnRvY29vXG4xMC4yMCVcbigyLjUxJSlcbjHDlyIs\\nIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9u\\nMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RpYS5weSJdOwoJMzYgLT4gNSBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDFkNzgiLCBmb250Y29sb3I9IiMwZDFkNzgiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMy44MyVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzYgLT4gOCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzQi\\nLCBmb250Y29sb3I9IiMwZDBmNzQiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC42MyVcbjHD\\nlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJMzYgLT4gNzUgW2Fy\\ncm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjMGQxYzc3IiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuNTElXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTM3IFtjb2xvcj0iI2ZkMGIwMCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI8c3RyaW5nPjoxOjxtb2R1bGU+XG45OC45NyVc\\nbigwLjU0JSlcbjHDlyIsIHRvb2x0aXA9IjxzdHJpbmc+Il07CgkzNyAtPiAzMyBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDFmNzgiLCBmb250Y29sb3I9IiMwZDFmNzgiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iNC4zMSVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJMzcgLT4gMzUgW2Fycm93c2l6ZT0iMC45NyIsIGNvbG9yPSIjZjYzYjAxIiwg\\nZm9udGNvbG9yPSIjZjYzYjAxIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Ijk0LjEyJVxuMcOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMy43NiIsIHBlbndpZHRoPSIzLjc2Il07CgkzOSBbY29sb3I9IiMw\\nZDI4N2IiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29t\\ncHJlc3NlZDoxMDAyOnN1bV9kdXBsaWNhdGVzXG42LjIxJVxuKDAuMjMlKVxuNsOXIiwgdG9vbHRp\\ncD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0\\nZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJMzkgLT4gMyBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC41MyVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJMzkgLT4gMzAgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMzc1\\nIiwgZm9udGNvbG9yPSIjMGQxMzc1IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNTUlXG42\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTM5IC0+IDU0IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWI3NyIsIGZvbnRjb2xvcj0iIzBkMWI3NyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjM2JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk0MCBbY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0ibnVtZXJpYzo0OTU6YXNhbnlhcnJheVxuMC41\\nMCVcbigwLjI0JSlcbjE0w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3Bh\\ncnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2NvcmUvbnVtZXJpYy5w\\neSJdOwoJNDAgLT4gNTEgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNv\\nbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuMjAlXG4xNMOXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0MiBbY29sb3I9IiMwZDBmNzQi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0ic2hhcGVfYmFz\\nZToxMTphdGxlYXN0XzFkXG4wLjYyJVxuKDAuMjQlKVxuNsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9u\\ndW1weS9jb3JlL3NoYXBlX2Jhc2UucHkiXTsKCTQyIC0+IDQwIFthcnJvd3NpemU9IjAuMzUiLCBj\\nb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxh\\nYmVsPSIwLjIxJVxuNsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07\\nCgk0MyBbY29sb3I9IiMwZDEzNzUiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iYXJyYXlzZXRvcHM6MTEzOnVuaXF1ZVxuMS41NCVcbigwLjEzJSlcbjLDlyIs\\nIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9u\\nMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvbGliL2FycmF5c2V0b3BzLnB5Il07Cgk0MyAtPiAyMyBb\\nYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDEyNzQiLCBmb250Y29sb3I9IiMwZDEyNzQiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS4zNyVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAi\\nLCBwZW53aWR0aD0iMC41MCJdOwoJNDYgW2NvbG9yPSIjMGQxMzc1IiwgZm9udGNvbG9yPSIjZmZm\\nZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbzoxOTM6Z2V0bm56XG4xLjQxJVxuKDAu\\nODglKVxuMjDDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNDYg\\nLT4gODUgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjMGQw\\nZjczIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNDclXG42MMOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0NyBbY29sb3I9IiMwZDQwODEiLCBmb250Y29s\\nb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iZGF0YTozMjpfZGVkdXBlZF9k\\nYXRhXG4xMS4wMiVcbigwLjA4JSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEv\\nZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNl\\nL2RhdGEucHkiXTsKCTQ3IC0+IDM5IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIs\\nIGZvbnRjb2xvcj0iIzBkMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIyLjA3JVxuMsOX\\nIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0NyAtPiA2OSBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiMwZDI3N2EiLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iNS45OSVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBw\\nZW53aWR0aD0iMC41MCJdOwoJNDggW2NvbG9yPSIjMGM2ZjhjIiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6Njc6YXN0eXBlXG4xOS4zOSVcbigwLjIz\\nJSlcbjTDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9s\\naWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RhdGEucHkiXTsKCTQ4IC0+\\nIDM0IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWE3NyIsIGZvbnRjb2xvcj0iIzBkMWE3\\nNyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjA0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0i\\nMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OCAtPiA0NyBbYXJyb3dzaXplPSIwLjM1IiwgY29s\\nb3I9IiMwZDQwODEiLCBmb250Y29sb3I9IiMwZDQwODEiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0iMTEuMDIlXG4zw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsK\\nCTQ4IC0+IDY1IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0i\\nIzBkMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjk1JVxuMcOXIiwgbGFiZWxkaXN0\\nYW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OCAtPiA5OSBbYXJyb3dzaXplPSIwLjM1\\nIiwgY29sb3I9IiMwZDE5NzYiLCBmb250Y29sb3I9IiMwZDE5NzYiLCBmb250c2l6ZT0iMTAuMDAi\\nLCBsYWJlbD0iMi45MCVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJNDggLT4gMTE2IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGQ3MyIsIGZvbnRj\\nb2xvcj0iIzBkMGQ3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjE4JVxuM8OXIiwgbGFi\\nZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk0OSBbY29sb3I9IiMwZDEzNzUi\\nLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYWJjOjE3ODpf\\nX2luc3RhbmNlY2hlY2tfX1xuMS40MiVcbigwLjkxJSlcbjE1w5ciLCB0b29sdGlwPSIvaG9tZS9m\\nb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9hYmMucHkiXTsKCTQ5\\nIC0+IDExNyBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMw\\nZDBmNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC41MSVcbjMww5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUwIFtjb2xvcj0iIzBkMWI3NyIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDppc2luc3RhbmNlXG4z\\nLjQ2JVxuKDIuMDQlKVxuMTY4w5ciLCB0b29sdGlwPSIiXTsKCTUwIC0+IDQ5IFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTM3NSIsIGZvbnRjb2xvcj0iIzBkMTM3NSIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIxLjQyJVxuMTXDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJNTEgW2NvbG9yPSIjMGQxZjc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmFycmF5XG40LjIzJVxuKDQuMjMlKVxuMjkzw5ciLCB0\\nb29sdGlwPSIiXTsKCTUyIFtjb2xvcj0iIzBkMWQ3OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJkaWE6Nzg6X19pbml0X19cbjMuNzclXG4oMC42MSUpXG4y\\nw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5\\ndGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9kaWEucHkiXTsKCTUyIC0+IDE0IFth\\ncnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjM0JVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIs\\nIHBlbndpZHRoPSIwLjUwIl07Cgk1MiAtPiA0MiBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMw\\nZDBlNzMiLCBmb250Y29sb3I9IiMwZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4y\\nMSVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNTIgLT4g\\nNDMgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxMzc1IiwgZm9udGNvbG9yPSIjMGQxMzc1\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjEuNTQlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIw\\nLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTUyIC0+IDc5IFthcnJvd3NpemU9IjAuMzUiLCBjb2xv\\ncj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVs\\nPSIwLjMwJVxuMsOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk1\\nMiAtPiA5NCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBkNzMiLCBmb250Y29sb3I9IiMw\\nZDBkNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4xNyVcbjLDlyIsIGxhYmVsZGlzdGFu\\nY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNTMgW2NvbG9yPSIjMGQxYTc3IiwgZm9udGNv\\nbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmNzcl9zb3J0X2luZGlj\\nZXNcbjMuMTElXG4oMy4xMSUpXG4yw5ciLCB0b29sdGlwPSIiXTsKCTU0IFtjb2xvcj0iIzBkMWI3\\nNyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVz\\nc2VkOjEwNDk6c29ydF9pbmRpY2VzXG4zLjM2JVxuKDAuMDklKVxuMsOXIiwgdG9vbHRpcD0iL2hv\\nbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNr\\nYWdlcy9zY2lweS9zcGFyc2UvY29tcHJlc3NlZC5weSJdOwoJNTQgLT4gNTMgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQxYTc3IiwgZm9udGNvbG9yPSIjMGQxYTc3IiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjMuMTElXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTU2IFtjb2xvcj0iIzBjNjE4OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjUzMzpfbWF4aW11bV9taW5pbXVtXG4xNy4w\\nMyVcbigwLjIwJSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFy\\nc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNz\\nZWQucHkiXTsKCTU2IC0+IDQgW2Fycm93c2l6ZT0iMC40MCIsIGNvbG9yPSIjMGM1Yzg4IiwgZm9u\\ndGNvbG9yPSIjMGM1Yzg4IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjE2LjEyJVxuM8OXIiwg\\nbGFiZWxkaXN0YW5jZT0iMC42NCIsIHBlbndpZHRoPSIwLjY0Il07Cgk1NiAtPiA1NyBbYXJyb3dz\\naXplPSIwLjM1IiwgY29sb3I9IiMwZDBmNzMiLCBmb250Y29sb3I9IiMwZDBmNzMiLCBmb250c2l6\\nZT0iMTAuMDAiLCBsYWJlbD0iMC41NCVcbjPDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53\\naWR0aD0iMC41MCJdOwoJNTcgW2NvbG9yPSIjMGQxZTc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwg\\nZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9InNwdXRpbHM6MTgzOmlzc2NhbGFybGlrZVxuMy45NyVc\\nbigwLjY3JSlcbjIyw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNl\\nX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9zcHV0aWxzLnB5\\nIl07Cgk1NyAtPiA4OCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE5NzciLCBmb250Y29s\\nb3I9IiMwZDE5NzciLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMi45NCVcbjIyw5ciLCBsYWJl\\nbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTU4IFtjb2xvcj0iIzBkMGY3NCIs\\nIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJnZXRsaW1pdHM6\\nNTMyOm1heFxuMC42MiVcbigwLjYyJSlcbjU5w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNv\\nbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL251bXB5L2Nv\\ncmUvZ2V0bGltaXRzLnB5Il07Cgk1OSBbY29sb3I9IiMwZDQ5ODMiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYmFzZTo0OTg6X211bF9zcGFyc2VfbWF0cml4\\nXG4xMi43OCVcbigwLjA5JSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52\\ncy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Jh\\nc2UucHkiXTsKCTU5IC0+IDIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQxYjc3IiwgZm9u\\ndGNvbG9yPSIjMGQxYjc3IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjMuMjQlXG4xw5ciLCBs\\nYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTU5IC0+IDEwIFthcnJvd3Np\\nemU9IjAuMzUiLCBjb2xvcj0iIzBkMzk3ZiIsIGZvbnRjb2xvcj0iIzBkMzk3ZiIsIGZvbnRzaXpl\\nPSIxMC4wMCIsIGxhYmVsPSI5LjcyJVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndp\\nZHRoPSIwLjUwIl07Cgk2MCBbY29sb3I9IiMwZDNjODAiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iYmFzZTozMDU6bWluaW11bVxuMTAuMjMlXG4oMC4wNiUp\\nXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGli\\nL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07Cgk2MCAtPiAy\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWI3NyIsIGZvbnRjb2xvcj0iIzBkMWI3NyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjI0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2MCAtPiA4MSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9\\nIiMwZDI2N2EiLCBmb250Y29sb3I9IiMwZDI2N2EiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nNS43MiVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjQg\\nW2NvbG9yPSIjMGM4ZTkyIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9ImJhc2U6NTE2Ol9fbWF0bXVsX19cbjI0LjIyJVxuKDAuMDglKVxuMsOXIiwgdG9vbHRp\\ncD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0\\nZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJNjQgLT4gNTcgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQwZTczIiwgZm9udGNvbG9yPSIjMGQwZTczIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjAuMzYlXG4yw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTY0IC0+IDY3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkNDc4MyIsIGZv\\nbnRjb2xvcj0iIzBkNDc4MyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxMi4zMiVcbjLDlyIs\\nIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjUgW2NvbG9yPSIjMGQx\\nNTc1IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6\\nODU6Y29weVxuMS45NSVcbigwLjAzJSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29u\\nZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3Bh\\ncnNlL2RhdGEucHkiXTsKCTY1IC0+IDEwMCBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDE0\\nNzUiLCBmb250Y29sb3I9IiMwZDE0NzUiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMS44NCVc\\nbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNjYgW2NvbG9y\\nPSIjMGQwZjczIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nImJhc2U6MTIwMjppc3NwbWF0cml4XG4wLjU1JVxuKDAuMzclKVxuMjfDlyIsIHRvb2x0aXA9Ii9o\\nb21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFj\\na2FnZXMvc2NpcHkvc3BhcnNlL2Jhc2UucHkiXTsKCTY2IC0+IDUwIFthcnJvd3NpemU9IjAuMzUi\\nLCBjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iIzBkMGY3MyIsIGZvbnRzaXplPSIxMC4wMCIs\\nIGxhYmVsPSIwLjU2JVxuMjfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41\\nMCJdOwoJNjcgW2NvbG9yPSIjMGM5YjdhIiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9\\nIjEwLjAwIiwgbGFiZWw9ImJhc2U6NDEzOl9fbXVsX19cbjMwLjgwJVxuKDAuMzElKVxuNcOXIiwg\\ndG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24z\\nLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJNjcgLT4gMTAgW2Fycm93\\nc2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQzOTdmIiwgZm9udGNvbG9yPSIjMGQzOTdmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjkuNzIlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVu\\nd2lkdGg9IjAuNTAiXTsKCTY3IC0+IDU3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTA3\\nNCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjkwJVxu\\nNcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2NyAtPiA1OSBb\\nYXJyb3dzaXplPSIwLjM2IiwgY29sb3I9IiMwZDQ5ODMiLCBmb250Y29sb3I9IiMwZDQ5ODMiLCBm\\nb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMTIuNzglXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUx\\nIiwgcGVud2lkdGg9IjAuNTEiXTsKCTY3IC0+IDc3IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0i\\nIzBkMmI3YyIsIGZvbnRjb2xvcj0iIzBkMmI3YyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI2\\nLjg0JVxuM8OXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk2OSBb\\nY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBs\\nYWJlbD0iY29vOjQ2NDpzdW1fZHVwbGljYXRlc1xuNS45OSVcbigwLjA0JSlcbjHDlyIsIHRvb2x0\\naXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3Np\\ndGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2Nvby5weSJdOwoJNjkgLT4gNzQgW2Fycm93c2l6ZT0i\\nMC4zNSIsIGNvbG9yPSIjMGQyNzdhIiwgZm9udGNvbG9yPSIjMGQyNzdhIiwgZm9udHNpemU9IjEw\\nLjAwIiwgbGFiZWw9IjUuOTQlXG4xw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9\\nIjAuNTAiXTsKCTcxIFtjb2xvcj0iIzBkMTI3NSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjc3JfbWF0bWF0X3Bhc3MxXG4xLjM4JVxuKDEuMzglKVxu\\nMsOXIiwgdG9vbHRpcD0iIl07Cgk3NCBbY29sb3I9IiMwZDI3N2EiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iY29vOjQ3NTpfc3VtX2R1cGxpY2F0ZXNcbjUu\\nOTQlXG4oMC45MSUpXG4xw5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3Bh\\ncnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9jb28ucHki\\nXTsKCTc0IC0+IDc2IFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWQ3OCIsIGZvbnRjb2xv\\ncj0iIzBkMWQ3OCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjg5JVxuMcOXIiwgbGFiZWxk\\naXN0YW5jZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07Cgk3NCAtPiA4OSBbYXJyb3dzaXplPSIw\\nLjM1IiwgY29sb3I9IiMwZDEwNzQiLCBmb250Y29sb3I9IiMwZDEwNzQiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iMC42OCVcbjHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0i\\nMC41MCJdOwoJNzUgW2NvbG9yPSIjMGQxYzc3IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjowOmFyYW5nZVxuMy41MSVcbigzLjUxJSlcbjHDlyIsIHRvb2x0\\naXA9IiJdOwoJNzYgW2NvbG9yPSIjMGQxZDc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNp\\nemU9IjEwLjAwIiwgbGFiZWw9IjowOmxleHNvcnRcbjMuODklXG4oMy44OSUpXG4xw5ciLCB0b29s\\ndGlwPSIiXTsKCTc3IFtjb2xvcj0iIzBkMmI3YyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSJkYXRhOjExNzpfbXVsX3NjYWxhclxuNi44NCVcbigwLjU2JSlc\\nbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIv\\ncHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RhdGEucHkiXTsKCTc3IC0+IDM0\\nIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMWE3NyIsIGZvbnRjb2xvcj0iIzBkMWE3NyIs\\nIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjA0JVxuMcOXIiwgbGFiZWxkaXN0YW5jZT0iMC41\\nMCIsIHBlbndpZHRoPSIwLjUwIl07Cgk3NyAtPiA5OSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9\\nIiMwZDE5NzYiLCBmb250Y29sb3I9IiMwZDE5NzYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0i\\nMi45MCVcbjLDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJNzgg\\nW2NvbG9yPSIjMGQwZjc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwg\\nbGFiZWw9IjowOnplcm9zXG4wLjU5JVxuKDAuNTklKVxuNMOXIiwgdG9vbHRpcD0iIl07Cgk3OSBb\\nY29sb3I9IiMwZDFiNzciLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBs\\nYWJlbD0ic3B1dGlsczoyMDA6aXNzaGFwZVxuMy4zMiVcbigwLjczJSlcbjIyw5ciLCB0b29sdGlw\\nPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211bHQvbGliL3B5dGhvbjMuNS9zaXRl\\nLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9zcHV0aWxzLnB5Il07Cgk3OSAtPiA5MSBbYXJyb3dzaXpl\\nPSIwLjM1IiwgY29sb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiMwZDE3NzYiLCBmb250c2l6ZT0i\\nMTAuMDAiLCBsYWJlbD0iMi4zNSVcbjExw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lk\\ndGg9IjAuNTAiXTsKCTgxIFtjb2xvcj0iIzBjNjI4OSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjU2MTptaW5pbXVtXG4xNy4xNiVcbigw\\nLjEzJSlcbjPDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2NvbXByZXNzZWQucHki\\nXTsKCTgxIC0+IDU2IFthcnJvd3NpemU9IjAuNDEiLCBjb2xvcj0iIzBjNjE4OSIsIGZvbnRjb2xv\\ncj0iIzBjNjE4OSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxNy4wMyVcbjPDlyIsIGxhYmVs\\nZGlzdGFuY2U9IjAuNjgiLCBwZW53aWR0aD0iMC42OCJdOwoJODIgW2NvbG9yPSIjMGQwZjczIiwg\\nZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9Il91dGlsOjEyODpf\\ncHJ1bmVfYXJyYXlcbjAuNTAlXG4oMC41MCUpXG40OMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFz\\nLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lw\\neS9fbGliL191dGlsLnB5Il07Cgk4NSBbY29sb3I9IiMwZDE2NzYiLCBmb250Y29sb3I9IiNmZmZm\\nZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6bGVuXG4yLjMxJVxuKDIuMzElKVxuMjk0\\nw5ciLCB0b29sdGlwPSIiXTsKCTg3IFtjb2xvcj0iIzBkMTE3NCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJiYXNlOjc4OnNldF9zaGFwZVxuMS4wOSVcbigw\\nLjkxJSlcbjI4w5ciLCB0b29sdGlwPSIvaG9tZS9mb3JkYXMvLmNvbmRhL2VudnMvc3BhcnNlX211\\nbHQvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL3NjaXB5L3NwYXJzZS9iYXNlLnB5Il07Cgk4\\nNyAtPiA4NSBbYXJyb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDBlNzMiLCBmb250Y29sb3I9IiMw\\nZDBlNzMiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iMC4yMiVcbjI4w5ciLCBsYWJlbGRpc3Rh\\nbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTg4IFtjb2xvcj0iIzBkMTk3NyIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJudW1lcmljOjE5MTc6aXNz\\nY2FsYXJcbjIuOTQlXG4oMC44MyUpXG4yMsOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25k\\nYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9udW1weS9jb3Jl\\nL251bWVyaWMucHkiXTsKCTg4IC0+IDUwIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTA3\\nNCIsIGZvbnRjb2xvcj0iIzBkMTA3NCIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIwLjc2JVxu\\nMzfDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJODkgW2NvbG9y\\nPSIjMGQxMDc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9\\nIjowOnJlZHVjZWF0XG4wLjY4JVxuKDAuNjglKVxuMcOXIiwgdG9vbHRpcD0iIl07Cgk5MSBbY29s\\nb3I9IiMwZDE3NzYiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJl\\nbD0ic3B1dGlsczoxODg6aXNpbnRsaWtlXG4yLjM1JVxuKDAuMjMlKVxuMTHDlyIsIHRvb2x0aXA9\\nIi9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUt\\ncGFja2FnZXMvc2NpcHkvc3BhcnNlL3NwdXRpbHMucHkiXTsKCTkxIC0+IDU3IFthcnJvd3NpemU9\\nIjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0iIzBkMTU3NSIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSIxLjk4JVxuMTHDlyIsIGxhYmVsZGlzdGFuY2U9IjAuNTAiLCBwZW53aWR0\\naD0iMC41MCJdOwoJOTIgW2NvbG9yPSIjMGQxZjc4IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9u\\ndHNpemU9IjEwLjAwIiwgbGFiZWw9Il9tZXRob2RzOjI1Ol9hbWF4XG40LjE4JVxuKDAuMzglKVxu\\nMTTDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVsdC9saWIv\\ncHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9fbWV0aG9kcy5weSJdOwoJOTIgLT4g\\nMTIwIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTk3NyIsIGZvbnRjb2xvcj0iIzBkMTk3\\nNyIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIzLjAwJVxuMTTDlyIsIGxhYmVsZGlzdGFuY2U9\\nIjAuNTAiLCBwZW53aWR0aD0iMC41MCJdOwoJOTMgW2NvbG9yPSIjMGQxMDc0IiwgZm9udGNvbG9y\\nPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImZyb21udW1lcmljOjIyMjI6YW1h\\neFxuMC43OCVcbigwLjExJSlcbjLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52\\ncy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9mcm9t\\nbnVtZXJpYy5weSJdOwoJOTMgLT4gOTIgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQwZjc0\\nIiwgZm9udGNvbG9yPSIjMGQwZjc0IiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjAuNjAlXG4y\\nw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTk0IFtjb2xvcj0i\\nIzBkMjA3OCIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6\\nMDptYXhcbjQuNDYlXG4oMC45NSUpXG41M8OXIiwgdG9vbHRpcD0iIl07Cgk5NCAtPiA5MiBbYXJy\\nb3dzaXplPSIwLjM1IiwgY29sb3I9IiMwZDFjNzciLCBmb250Y29sb3I9IiMwZDFjNzciLCBmb250\\nc2l6ZT0iMTAuMDAiLCBsYWJlbD0iMy41OSVcbjEyw5ciLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwg\\ncGVud2lkdGg9IjAuNTAiXTsKCTk4IFtjb2xvcj0iIzBkMGY3NCIsIGZvbnRjb2xvcj0iI2ZmZmZm\\nZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpjb3B5XG4wLjYyJVxuKDAuNjIlKVxuMTTD\\nlyIsIHRvb2x0aXA9IiJdOwoJOTkgW2NvbG9yPSIjMGQyNjdhIiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImNvbXByZXNzZWQ6MTA3ODpfd2l0aF9kYXRhXG41\\nLjgwJVxuKDAuMjUlKVxuNMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3Nw\\nYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2UvY29tcHJl\\nc3NlZC5weSJdOwoJOTkgLT4gMTcgW2Fycm93c2l6ZT0iMC4zNSIsIGNvbG9yPSIjMGQyOTdiIiwg\\nZm9udGNvbG9yPSIjMGQyOTdiIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjYuNTIlXG40w5ci\\nLCBsYWJlbGRpc3RhbmNlPSIwLjUwIiwgcGVud2lkdGg9IjAuNTAiXTsKCTk5IC0+IDk4IFthcnJv\\nd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMGU3MyIsIGZvbnRjb2xvcj0iIzBkMGU3MyIsIGZvbnRz\\naXplPSIxMC4wMCIsIGxhYmVsPSIwLjM1JVxuOMOXIiwgbGFiZWxkaXN0YW5jZT0iMC41MCIsIHBl\\nbndpZHRoPSIwLjUwIl07CgkxMDAgW2NvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9yPSIjZmZmZmZm\\nIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRpYTozNzA6X3dpdGhfZGF0YVxuMS44NCVcbigw\\nLjA3JSlcbjHDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3BhcnNlL2RpYS5weSJdOwoJMTAw\\nIC0+IDUyIFthcnJvd3NpemU9IjAuMzUiLCBjb2xvcj0iIzBkMTU3NSIsIGZvbnRjb2xvcj0iIzBk\\nMTU3NSIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSIxLjg4JVxuMcOXIiwgbGFiZWxkaXN0YW5j\\nZT0iMC41MCIsIHBlbndpZHRoPSIwLjUwIl07CgkxMDUgW2NvbG9yPSIjMGQwZjczIiwgZm9udGNv\\nbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmhhc2F0dHJcbjAuNTIl\\nXG4oMC40NSUpXG4xOMOXIiwgdG9vbHRpcD0iIl07CgkxMTAgW2NvbG9yPSIjMGQxMTc0IiwgZm9u\\ndGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImRhdGE6MjI6X19pbml0\\nX19cbjEuMDAlXG4oMC41NSUpXG4yOMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9l\\nbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9zY2lweS9zcGFyc2Uv\\nZGF0YS5weSJdOwoJMTE0IFtjb2xvcj0iIzBkMTQ3NSIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZv\\nbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJnZXRsaW1pdHM6NTA3Ol9faW5pdF9fXG4xLjgxJVxuKDEu\\nODElKVxuNTnDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29uZGEvZW52cy9zcGFyc2VfbXVs\\ndC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9nZXRsaW1pdHMucHkiXTsK\\nCTExNiBbY29sb3I9IiMwZDEwNzQiLCBmb250Y29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAu\\nMDAiLCBsYWJlbD0iOjA6YXN0eXBlXG4wLjg4JVxuKDAuODglKVxuMTXDlyIsIHRvb2x0aXA9IiJd\\nOwoJMTE3IFtjb2xvcj0iIzBkMGY3MyIsIGZvbnRjb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIx\\nMC4wMCIsIGxhYmVsPSJfd2Vha3JlZnNldDo3MDpfX2NvbnRhaW5zX19cbjAuNTElXG4oMC41MSUp\\nXG4zMMOXIiwgdG9vbHRpcD0iL2hvbWUvZm9yZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xp\\nYi9weXRob24zLjUvX3dlYWtyZWZzZXQucHkiXTsKCTExOCBbY29sb3I9IiMwZDE5NzciLCBmb250\\nY29sb3I9IiNmZmZmZmYiLCBmb250c2l6ZT0iMTAuMDAiLCBsYWJlbD0iOjA6Y3NyX21pbmltdW1f\\nY3NyXG4yLjk1JVxuKDIuOTUlKVxuM8OXIiwgdG9vbHRpcD0iIl07CgkxMTkgW2NvbG9yPSIjMGQx\\nMTc0IiwgZm9udGNvbG9yPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9ImJhc2U6\\nMTAxOmdldF9zaGFwZVxuMC45NyVcbigwLjk3JSlcbjEyN8OXIiwgdG9vbHRpcD0iL2hvbWUvZm9y\\nZGFzLy5jb25kYS9lbnZzL3NwYXJzZV9tdWx0L2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9z\\nY2lweS9zcGFyc2UvYmFzZS5weSJdOwoJMTIwIFtjb2xvcj0iIzBkMjU3YSIsIGZvbnRjb2xvcj0i\\nI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSI6MDpyZWR1Y2VcbjUuNTclXG4oNS41\\nNyUpXG4yNsOXIiwgdG9vbHRpcD0iIl07CgkxMjEgW2NvbG9yPSIjMGQxNDc1IiwgZm9udGNvbG9y\\nPSIjZmZmZmZmIiwgZm9udHNpemU9IjEwLjAwIiwgbGFiZWw9IjowOmNvb190b2NzclxuMS43NSVc\\nbigxLjc1JSlcbjTDlyIsIHRvb2x0aXA9IiJdOwoJMTIzIFtjb2xvcj0iIzBkMTE3NCIsIGZvbnRj\\nb2xvcj0iI2ZmZmZmZiIsIGZvbnRzaXplPSIxMC4wMCIsIGxhYmVsPSJjb21wcmVzc2VkOjEwMDpn\\nZXRubnpcbjEuMTElXG4oMS4xMSUpXG4xMDLDlyIsIHRvb2x0aXA9Ii9ob21lL2ZvcmRhcy8uY29u\\nZGEvZW52cy9zcGFyc2VfbXVsdC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvc2NpcHkvc3Bh\\ncnNlL2NvbXByZXNzZWQucHkiXTsKfQo=\\n');\n",
" var image = Viz(\n",
" source, {\n",
" engine: \"dot\",\n",
" totalMemory: 67108864\n",
" });\n",
"\n",
" //console.log(image);\n",
"\n",
" var svg_container = '<div style=\"width: 100%; border:1px solid black; \">';\n",
" element.append(svg_container)\n",
" element.find(\"div\").append(image);\n",
" console.log(element);\n",
"\n",
" var svg_element = $(element).find(\"svg\");\n",
" svg_element.removeAttr(\"width\");\n",
" svg_element.removeAttr(\"height\");\n",
" svg_element[0].setAttribute(\"height\", \"90em\")\n",
" svg_element[0].setAttribute(\"width\", \"100%\")\n",
" svg_element[0].setAttribute(\"preserveAspectRatio\", \"xMinYMin\")\n",
"\n",
" var eventsHandler;\n",
" eventsHandler = {\n",
" haltEventListeners: ['touchstart', 'touchend', 'touchmove', 'touchleave', 'touchcancel'],\n",
" init: function(options) {\n",
" var instance = options.instance\n",
" , initialScale = 1\n",
" , pannedX = 0\n",
" , pannedY = 0\n",
"\n",
" // Init Hammer\n",
" // Listen only for pointer and touch events\n",
" this.hammer = Hammer(options.svgElement, {\n",
" inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput\n",
" })\n",
"\n",
" // Enable pinch\n",
" this.hammer.get('pinch').set({enable: true})\n",
"\n",
" // Handle double tap\n",
" this.hammer.on('doubletap', function(ev){\n",
" instance.zoomIn()\n",
" })\n",
"\n",
" // Handle pan\n",
" this.hammer.on('panstart panmove', function(ev){\n",
" // On pan start reset panned variables\n",
" if (ev.type === 'panstart') {\n",
" pannedX = 0\n",
" pannedY = 0\n",
" }\n",
" // Pan only the difference\n",
" instance.panBy({x: ev.deltaX - pannedX, y: ev.deltaY - pannedY})\n",
" pannedX = ev.deltaX\n",
" pannedY = ev.deltaY\n",
" })\n",
"\n",
" // Handle pinch\n",
" this.hammer.on('pinchstart pinchmove', function(ev){\n",
" // On pinch start remember initial zoom\n",
" if (ev.type === 'pinchstart') {\n",
" initialScale = instance.getZoom()\n",
" instance.zoom(initialScale * ev.scale)\n",
" }\n",
" instance.zoom(initialScale * ev.scale)\n",
" })\n",
" // Prevent moving the page on some devices when panning over SVG\n",
" options.svgElement.addEventListener('touchmove', function(e){ e.preventDefault(); });\n",
" },\n",
" destroy: function(){\n",
" this.hammer.destroy()\n",
" }\n",
" }\n",
"\n",
"\n",
" var panzoom = svgPanZoom(svg_element[0], {\n",
" zoomEnabled: true,\n",
" controlIconsEnabled: true,\n",
" fit: true,\n",
" center: true,\n",
" zoomScaleSensitivity: 0.33,\n",
" customEventsHandler: eventsHandler\n",
" });\n",
"\n",
" panzoom.resize();\n",
" panzoom.fit();\n",
" panzoom.center();\n",
"\n",
" $(window).resize(function(){\n",
" panzoom.resize();\n",
" panzoom.fit();\n",
" panzoom.center();\n",
" })\n",
"\n",
" window.svg_container = svg_container;\n",
" window.svg_element = svg_element;\n",
" window.panzoom = svgPanZoom(svg_element[0], {\n",
" zoomEnabled: true,\n",
" controlIconsEnabled: true,\n",
" fit: true,\n",
" center: true,\n",
" zoomScaleSensitivity: 0.33,\n",
" });\n",
"});\n"
],
"text/plain": [
"<graphviz.files.Source at 0x7e466c03e710>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%visual_profile\n",
"system_size = int(5e3)\n",
"max_depth = 4\n",
"\n",
"bond_matrix = scipy.sparse.diags([[True], [True], [True]], [-1, 0, 1], shape=(system_size, system_size), dtype=bool)\n",
"dist_matrix = graph_path_expansion(bond_matrix, max_depth)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 1., 2., 3., inf, inf, inf, inf, inf, inf],\n",
" [ 1., 1., 1., 2., 3., inf, inf, inf, inf, inf],\n",
" [ 2., 1., 1., 1., 2., 3., inf, inf, inf, inf],\n",
" [ 3., 2., 1., 1., 1., 2., 3., inf, inf, inf],\n",
" [inf, 3., 2., 1., 1., 1., 2., 3., inf, inf],\n",
" [inf, inf, 3., 2., 1., 1., 1., 2., 3., inf],\n",
" [inf, inf, inf, 3., 2., 1., 1., 1., 2., 3.],\n",
" [inf, inf, inf, inf, 3., 2., 1., 1., 1., 2.],\n",
" [inf, inf, inf, inf, inf, 3., 2., 1., 1., 1.],\n",
" [inf, inf, inf, inf, inf, inf, 3., 2., 1., 1.]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sparse_path_len_to_dense(dist_matrix)[:10, :10]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:sparse_mult]",
"language": "python",
"name": "conda-env-sparse_mult-py"
},
"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.5.4"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment