diff --git a/SigmoidNeuron.ipynb b/SigmoidNeuron.ipynb new file mode 100644 index 0000000..9a7a29e --- /dev/null +++ b/SigmoidNeuron.ipynb @@ -0,0 +1,2747 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "0225_SigmoidNeuron.ipynb", + "version": "0.3.2", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "metadata": { + "id": "1rSm9moJ8pdJ", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "#Plotting Sigmoid Function" + ] + }, + { + "metadata": { + "id": "4b-cuTE0yxny", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits import mplot3d\n", + "import matplotlib.colors\n", + "import pandas as pd\n", + "from sklearn.preprocessing import StandardScaler, MinMaxScaler\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import accuracy_score, mean_squared_error\n", + "from tqdm import tqdm_notebook" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "SRVIGSuu81sQ", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "$S_{w, b}(x) = \\frac{1}{1 + e^{-(wx + b)}}$" + ] + }, + { + "metadata": { + "id": "rNQrG54w8wiv", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def sigmoid(x, w, b):\n", + " return 1/(1 + np.exp(-(w*x + b)))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "rk9MK68U9JdQ", + "colab_type": "code", + "outputId": "b426685c-751f-4840-8592-a11bf3f8f21f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "sigmoid(1, 0.5, 0)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.6224593312018546" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "metadata": { + "id": "qIV9kBzE9LuD", + "colab_type": "code", + "outputId": "502ce4a7-838b-4458-bd55-f73d14c4ffa6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + } + }, + "cell_type": "code", + "source": [ + "w = -1.8 #@param {type: \"slider\", min: -2, max: 2, step: 0.1}\n", + "b = -0.5 #@param {type: \"slider\", min: -2, max: 2, step: 0.1}\n", + "X = np.linspace(-10,10,100)\n", + "Y = sigmoid(X, w, b)\n", + "\n", + "plt.plot(X, Y)\n", + "plt.show()\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nc+dO0zRN86tf/ar50ksv9XldZWWluXLlStM0TfOVV14xH3roodEr+jxVVlaaa9eu7fNcbW2teeut\nt1pU0fn5zW9+Y65Zs2bA+a2treb1119vnjhxwmxrazNvuukms6mpaRQrHJqNGzeaFRUVpmma5t69\ne81PfepT/Za54oorRrmq87Nt2zbz3nvvNU3TNPfv32/ecccdfebfeOON5pEjR8yenh7zzjvvNPft\n22dFmUNSVVVlfu5znzNN0zQbGxvNefPm9Zk/f/58MxgMWlDZ+XnttdfMBx98cMD50fSefNi2bdvC\nn7Fn2H37aG1tNZcsWWJ+85vfNJ9++mnTNE3zkUceMV944QXTNE3z8ccfN5955pk+rxlsmxqOqOiO\n9nq9euKJJ+TxeMLPdXZ26vDhw+FvI/Pnz1dVVVWf11VVVWnhwoWSevfMduzYMXpFn4fu7m49++yz\nWrJkidWljJidO3fq0ksvlcfjUXJyskpLS235ftxyyy36+te/LknKzs5Wc3OzxRWdv6qqKi1YsECS\nNHHiRLW0tCgYDEqSamtrlZGRofz8fDkcDs2bN6/fdmMnl19+uX70ox9JktLT09XW1qaenh6Lq4qs\naHtPPuwnP/mJHnjgAavLOC+JiYlau3atfD5f+Llt27bpb/7mbyQNnCUDbVPDFRUhnJKS0q87o6mp\nSenp6eHpnJwc+f3+PssEAgFlZ2dLkhwOhwzDUGdn58gXfJ5efPFFXXPNNUpOTu43LxAI6Etf+pLK\ny8v7dAHZ0fbt23XPPffo7rvv1jvvvNNn3offC6k34D76ftlBQkKCkpKSJEm/+tWvdPPNN/dbprOz\nU8uWLVN5ebmeeuqp0S5xUIFAQFlZWeHpD/9b+/3+qHgfznA6nUpNTZUkbdy4UXPnzu33WVBRUaE7\n77xTjz32mEwbXwBw//79uu+++3TnnXfq1VdfDT8fbe/JGbt27VJ+fr68Xm+f5+2+fbhcrn6ftW1t\nbeHu54GyZKBtatj1RGQtEbRhwwZt2LChz3MPPvigPv7xj5/zdUPZ+KzcQM/Vrt/85jf9jmdLUmZm\nph566CHdcsstOnnypG6//XZdddVVfb7BWeFsbbnpppv04IMP6tprr9Wbb76pr33ta/rtb3874Drs\n8GF5rvfkmWeeUXV1tX72s5/1e93DDz+sW265RYZhaMmSJZo9e7YuvfTS0Sr7vNnh33q4/vCHP2jj\nxo36xS9+0ef5L33pS/r4xz+ujIwMLV26VJs3b9YNN9xgUZUDGz9+vL74xS/qxhtvVG1tre666y69\n+OKL/Y47RpONGzfq1ltv7fd8tG0fHzXaWWK7EL799tuHNGDno12F9fX1/cLJ5/PJ7/dr6tSp6urq\nkmmalv2nH6hdp06d0rFjx1RUVNRvntvt1qc+9SlJve2dPn26Dh48aHkID/YezZo1S42Njerp6Qnv\ntfh8PgUCgfAyDQ0Nuuyyy0a81nMZqB0bNmzQn/70J/3Lv/yLEhIS+s2/8847w4+vuuoq7d2711Yf\nMmf7tz6zt/LReWfbbuzmlVde0c9+9jP967/+a59DUpL0yU9+Mvx47ty52rt3ry1DeMyYMVq0aJEk\naezYscrNzVV9fb2Ki4uj8j2Rertwv/nNb/Z73u7bx9mkpqaqvb1dycnJA2bJQNvUcEVFd/TZJCQk\n6KKLLtJf/vIXSb1duh/dWy4rK9Pvf/97SdKWLVt05ZVXjnqdg9mzZ48uuuiis8577bXX9Oijj0rq\nDes9e/ZowoQJo1nekK1du1a/+93vJPWOPMzOzu7TbThz5ky9/fbbOnHihFpbW7Vjx45+o47toLa2\nVs8995yeeOKJcLf0hx08eFDLli2TaZrq7u7Wjh07wiNe7aKsrCw8yr66ulo+n09ut1uSVFRUpGAw\nqLq6OnV3d2vLli0qKyuzstxzOnnypL7//e/rySefVGZmZr9599xzT/gQ0+uvv2679+KMTZs2ad26\ndZJ6u5+PHz8eHsUdbe+J1PtFIS0trd9OTTRsH2dz9dVXh7eZgbJkoG1quGy3J3w2L730ktatW6eD\nBw+qurpaTz/9tH7xi19oxYoV+ta3vqVQKKSZM2fq6quvliTdf//9+ulPf6pFixZp69atuvPOO5WY\nmKg1a9ZY3JL+Pno8SJJWrVqlu+66S7Nnz9bzzz+vxYsXq6enR/fee68tT7+QpE984hP6+7//ez33\n3HPq7u7WqlWrJEk///nPdfnll2vWrFlatmyZ7rnnHhmGoaVLl/bbq7GDDRs2qLm5Wffee2/4uXXr\n1umXv/xluB15eXm67bbb5HA4dN1110XuVIUIKS0tVUlJicrLy2UYhioqKlRZWSmPx6OFCxdq5cqV\nWrZsmSRp0aJFtv1iJ0kvvPCCmpqa9OUvfzn83JVXXqkpU6Zo4cKFmjt3rhYvXqykpCRNmzbNlnvB\nUu+pVMuXL9cf//hHdXV1aeXKlfrd734Xle+J1P9z68Pbud23j927d+t73/ueDh8+LJfLpc2bN+ux\nxx7TI488ovXr16ugoCDcw/KVr3xFjz766Fm3qUjhVoYAAFgkarujAQCIdoQwAAAWIYQBALAIIQwA\ngEUIYQAALEIIAwBgEUIYAACLEMIAAFjk/wMIMmstBWV0kAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "XgX6Sk1zAZ58", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "$S_{w_1, w_2, b}(x_1, x_2) = \\frac{1}{1 + e^{-(w_1x_1 + w_2x_2 + b)}}$" + ] + }, + { + "metadata": { + "id": "Xzv09uw79iCB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def sigmoid_2d(x1, x2, w1, w2, b):\n", + " return 1/(1 + np.exp(-(w1*x1 + w2*x2 + b)))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6qYSkJw2AuHQ", + "colab_type": "code", + "outputId": "b70b542d-dbc8-4723-c4ca-2309a0fd5eef", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "sigmoid_2d(1, 0, 0.5, 0, 0)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.6224593312018546" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "metadata": { + "id": "LHYJ_3OoBEiC", + "colab_type": "code", + "outputId": "be4e8465-b64f-4068-f92a-35e594050bee", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "X1 = np.linspace(-10, 10, 100)\n", + "X2 = np.linspace(-10, 10, 100)\n", + "\n", + "XX1, XX2 = np.meshgrid(X1, X2)\n", + "\n", + "print(X1.shape, X2.shape, XX1.shape, XX2.shape)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(100,) (100,) (100, 100) (100, 100)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "2P743Iy1BhWt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "w1 = 2\n", + "w2 = -0.5\n", + "b = 0\n", + "Y = sigmoid_2d(XX1, XX2, w1, w2, b)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "FrnRL07q_bfV", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "my_cmap = matplotlib.colors.LinearSegmentedColormap.from_list(\"\", [\"red\",\"yellow\",\"green\"])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "M_ukHbN1_G3t", + "colab_type": "code", + "outputId": "76a8ba1f-9aed-4a2b-eefa-e792ec3edb3b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 351 + } + }, + "cell_type": "code", + "source": [ + "plt.contourf(XX1, XX2, Y, cmap = my_cmap, alpha = 0.6)\n", + "plt.show()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\ny/Xyyy9n+hST1tLSov79+4dfH/uZNDc32/rzkiS3263evXtLkmpra1VSUtLl7838+fNVUVGhxYsX\nJ3bXTIvZuXOnbrnlFlVUVKi+/odbFjvh8+v0wQcfaPDgwRowYEDEcrt93yTJ4/F0+dsfDAbDZfhY\neRfrexrzOCadb0KyfivbDOpurK+99lqXOQSS1K9fP82dO1fTpk3TwYMHVVpaqgkTJnS5058VRBvf\nlVdeqTlz5ujCCy/Ue++9p3vvvVd/+9vfYu7Dap/Zsbr7/F599VVt375dS5Ys6fK+efPmadq0acrL\ny1NlZaXGjx+vMWPGZOq0e8zKn0lP/POf/1Rtba1eeumliOW33367Jk2apL59+2r27NnasGGDLr/8\n8iydZfJ+/OMf67bbbtMVV1yhpqYm3Xjjjdq4caPj7vxZW1ura6+9tstyu3/fojEr7zIa7rl0K9tY\nY/3+++/1xRdfaMiQIV3W5efn67rrrpPU8TsYPXq0du3aZclwj/dZjh07Vl999ZXa2trCV0qFhYVq\naWkJb7N//36dffbZaT/XVMQaX01Njd544w09++yz8nq9XdZXVFSEf54wYYIaGxst/ccm2mfSeXV0\n/Lpo30M7eOutt7RkyRK9+OKLEf/8J0nXXHNN+OeSkhI1NjbaKtwHDhyoqVOnSpKGDh2qk046Sfv2\n7dMpp5zimM9P6ihbP/TQQ12W2+37Fkvv3r11+PBh+Xy+mHkX63saS9bL8tE4+Va2O3bs0Kmnnhp1\n3dtvv61FixZJ6viPgB07dmj48OGZPL0eWbp0qdatWyepYzZoIBCIKIGeddZZ+vDDD/Xtt9/qu+++\n07Zt27rMNreypqYmrVq1Sk8//XS4PH+sXbt2qaqqSoZhKBQKadu2beFZzFZVXFwc7tjYvn27CgsL\nlZ+fL0kaMmSIDh06pD179igUCmnTpk0qLrbXI2sPHjyoxx9/XM8//7z69evXZd2MGTPC/5z3zjvv\nWP7zOt7atWu1bNkySR1l+C+//DI8298Jn5/U8R8lJ554YpeLNzt+32KZOHFi+HsYK+9ifU9jyXor\n3LG3st2+fbtWrFihl156SQ888EDErWwnTpwo6Ydb2U6dOlWbN29WRUVF+Fa2dnD8v4NJUnV1tW68\n8UaNHz9ef/3rX1VWVqa2tjbNnDnTVm05V199te655x6tWrVKoVBI1dXVkqQXXnhBRUVFGjt2rKqq\nqjRjxgzl5eVp9uzZXa6krKympkZff/21Zs6cGV62bNkyLV++PDy+QYMGafr06XK5XJo8eXL8dpUs\nGzdunEaNGqXy8nLl5eVp/vz5WrNmjQoKCjRlyhQtWLBAVVVVkqSpU6fa6j82JWn9+vU6cOCA7rjj\njvCyc889V6effrqmTJmikpISlZWV6YQTTtAZZ5xhq6t2qaOV7+6779a//vUvtba2asGCBVq3bp1j\nPj+p69/MY/+e2O37JnW08z322GPau3evPB6PNmzYoMWLF+u+++7T6tWrdfLJJ4crSnfeeacWLVoU\n9XsaD7efBQDAYSxZlgcAAKkj3AEAcBjCHQAAhyHcAQBwGMIdAACHIdwBAHAYwh0AAIch3AEAcJj/\nB1VU+LbsvDYMAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "yxNWoIIEB5Sm", + "colab_type": "code", + "outputId": "92251a0f-e226-4ce2-dbc7-9d88f5553724", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 330 + } + }, + "cell_type": "code", + "source": [ + "fig = plt.figure()\n", + "ax = plt.axes(projection='3d')\n", + "ax.plot_surface(XX1, XX2, Y, cmap='viridis')\n", + "ax.set_xlabel('x1')\n", + "ax.set_ylabel('x2')\n", + "ax.set_zlabel('y')\n", + "\n", + "ax.view_init(30, 270)\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "_N5yf5T2GBJd", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Compute Loss for a Given Dataset" + ] + }, + { + "metadata": { + "id": "rOM48LlmCCW8", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "w_unknown = 0.5\n", + "b_unknown = 0.25\n", + "\n", + "X = np.random.random(25) * 20 - 10\n", + "Y = sigmoid(X, w_unknown, b_unknown)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "vMM_xLsyGlwB", + "colab_type": "code", + "outputId": "e75f211f-0538-484e-ada9-32c5435dde2a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + } + }, + "cell_type": "code", + "source": [ + "plt.plot(X, Y, '*')\n", + "plt.show()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nLFnS5bV4/QweOnTIKi4uth566CHrpZdesizLsh544AHrtddesyzLsh5//HGrqqqqy89E+tyeCtPU\nOjayWrlypYqLi02X0ucaGxs1fvx4paWl6bzzzlNubq4aGhpMl3VWZs+erR/96EeSpIyMDLW1tRmu\nqPfU1dWpoKBAkjRmzBgdOHBA7e3tkiS/36/09HQNGzZMSUlJmjZtmurq6kyWe04mT56sJ554QpJ0\nwQUX6MiRI+rs7DRcVd+xy3k80TPPPKM777zTdBm9YuDAgVq+fLncbnf4tS1btugrX/mKJOmaa67p\ndr7O9Lk9HcJYUm1trfLz83Xeeed1awsGg7r77rtVVFTUZQomntTX12vBggWaP3++/vGPf3RpCwaD\nysjICO9nZGSotbW1r0vskQEDBmjQoEGSpBdffFE33HBDt2OOHj2qkpISFRUV6fnnn+/rEs9ZMBiU\n0+kM7594flpbW+P+3ElScnKyBg8eLElau3atpk6d2m36sqysTHPnztVjjz0mK04XDdy5c6fuuOMO\nzZ07Vxs3bgy/bpfzeNw777yjYcOGyeVydXk9Xj+DKSkp3bLhyJEj4Wnpz33uc93O15k+t6d9n16q\nt99bs2aN1qxZ0+W1u+66S1OmTNHLL7+sn/70p91+5sILL9Q999yj2bNn6+DBg7rtttt0xRVXdPkL\nqT85VR+vv/563XXXXbr66qv19ttv64c//KH++Mc/nvZ39Pd/6M50HquqqtTc3Kxnn32228/df//9\nmj17thwOh4qLizVp0iSNHz++r8ruNf39/PTEn//8Z61du1a/+93vurx+9913a8qUKUpPT9eiRYtU\nU1Oja6+91lCV52b06NH63ve+p+uuu05+v1/z5s1TbW1tt+uMdrB27VrdfPPN3V63y2fwZNF8JqM5\nJmHC+LbbbjvljUmHDx/Wv/71L40YMaJbW2pqqm655RZJx/6yueyyy/Tee+/12zA+XR+Pmzhxovbv\n36/Ozs7wyMPtdisYDIaPCQQC+tKXvhTzWs/V6fq4Zs0a/eUvf9GvfvUrDRgwoFv73Llzw9tXXHGF\ntm/fHhf/EJzq/BwfcZzctm/fvn77/2Ykb775pp599ln99re/VVpaWpe2r371q+HtqVOnavv27XEX\nxhdddJFmzZolSRo1apSGDBmiffv2aeTIkbY6j9KxKdyHHnqo2+vx+hk8lcGDB+uTTz7Reeedd8rz\ndabP7ekk/DS11+vV5z//+VO2bd68WY888oikY6Ht9XqVnZ3dl+X12PLly/Xqq69KOnZHYEZGRpcp\nwC9+8Yt699139fHHH+vQoUNqaGjodidyf+f3+7Vq1So9/fTT4enqE7333nsqKSmRZVnq6OhQQ0ND\n+K7W/i4vLy98h39zc7PcbrdSU1MlSSNGjFB7e7v27t2rjo4OvfHGG8rLyzNZ7jk5ePCgHn30UT33\n3HO68MILu7UtWLBAR48elSRt3bo1bs7didavX68VK1ZIOjYt/dFHH4XvCLfLeZSO/SFx/vnndxvx\nx/Nn8FSuuuqq8OeytrZWU6ZM6dJ+ps/t6STMyPh0Tr5eI0nl5eWaN2+eJk2apFdeeUVz5sxRZ2en\nFi5cGHdfqbjxxhv1gx/8QKtWrVJHR4fKy8slSb/5zW80efJkTZw4USUlJVqwYIEcDocWLVrUbWTS\n361Zs0ZtbW1auHBh+LUVK1bohRdeCPdx6NChuvXWW5WUlKTp06dH/ppBP5Gbm6ucnBwVFRXJ4XCo\nrKxM1dXVSktL04wZM7RkyRKVlJRIkmbNmhV3fyxK0muvvaZQKKR77703/NqXv/xljRs3TjNmzNDU\nqVM1Z84cDRo0SJdeemncjYqlY1/PWrx4sV5//XV9+umnWrJkiV599VVbnUep+7+nJ/47E6+fwaam\nJlVWVur9999XSkqKampq9Nhjj+mBBx7Q6tWrNXz48PDszX333adHHnnklJ/bSHiEIgAAhiX8NDUA\nAKYRxgAAGEYYAwBgGGEMAIBhhDEAAIYRxgAAGEYYAwBgGGEMAIBh/w/DJn0GQnO8ngAAAABJRU5E\nrkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "5haUj0q7HEa9", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def calculate_loss(X, Y, w_est, b_est):\n", + " loss = 0\n", + " for x, y in zip(X, Y):\n", + " loss += (y - sigmoid(x, w_est, b_est))**2\n", + " return loss" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "xnml5DRSGoyc", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "W = np.linspace(0, 2, 101)\n", + "B = np.linspace(-1, 1, 101)\n", + "\n", + "WW, BB = np.meshgrid(W, B)\n", + "\n", + "Loss = np.zeros(WW.shape)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1KCXYmrfHa1B", + "colab_type": "code", + "outputId": "8d262eec-4970-4bf6-d340-883670ad9b93", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "WW.shape" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(101, 101)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "metadata": { + "id": "9k3a5Km5HeFE", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "for i in range(WW.shape[0]):\n", + " for j in range(WW.shape[1]):\n", + " Loss[i, j] = calculate_loss(X, Y, WW[i, j], BB[i, j])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "fKiOr3HcHy5K", + "colab_type": "code", + "outputId": "cc90b86e-051b-49d7-b8f8-5c3e88f4202b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 330 + } + }, + "cell_type": "code", + "source": [ + "fig = plt.figure()\n", + "ax = plt.axes(projection='3d')\n", + "ax.plot_surface(WW, BB, Loss, cmap='viridis')\n", + "ax.set_xlabel('w')\n", + "ax.set_ylabel('b')\n", + "ax.set_zlabel('Loss')\n", + "\n", + "ax.view_init(30, 270)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "yZHdvwGpH_-E", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "ij = np.argmin(Loss)\n", + "i = int(np.floor(ij/Loss.shape[1]))\n", + "j = int(ij - i * Loss.shape[1])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "TsLGyN6zIrBt", + "colab_type": "code", + "outputId": "0ec06c9d-cbec-4d41-ed96-2cc4d74bcd1e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "print(i, j)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "62 25\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "aIEMVQyLJDvO", + "colab_type": "code", + "outputId": "abf4dfd8-049b-4c88-de3b-463099762181", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "print(WW[i, j], BB[i, j])" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.5 0.24\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "D8jX1XZzCH86", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Class for Sigmoid Neuron" + ] + }, + { + "metadata": { + "id": "VW-jtAl3CJuu", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "class SigmoidNeuron:\n", + " \n", + " def __init__(self):\n", + " self.w = None\n", + " self.b = None\n", + " \n", + " def perceptron(self, x):\n", + " return np.dot(x, self.w.T) + self.b\n", + " \n", + " def sigmoid(self, x):\n", + " return 1.0/(1.0 + np.exp(-x))\n", + " \n", + " def grad_w(self, x, y):\n", + " y_pred = self.sigmoid(self.perceptron(x))\n", + " return (y_pred - y) * y_pred * (1 - y_pred) * x\n", + " \n", + " def grad_b(self, x, y):\n", + " y_pred = self.sigmoid(self.perceptron(x))\n", + " return (y_pred - y) * y_pred * (1 - y_pred)\n", + " \n", + " def fit(self, X, Y, epochs=1, learning_rate=1, initialise=True, display_loss=False):\n", + " \n", + " # initialise w, b\n", + " if initialise:\n", + " self.w = np.random.randn(1, X.shape[1])\n", + " self.b = 0\n", + " \n", + " if display_loss:\n", + " loss = {}\n", + " \n", + " for i in tqdm_notebook(range(epochs), total=epochs, unit=\"epoch\"):\n", + " dw = 0\n", + " db = 0\n", + " for x, y in zip(X, Y):\n", + " dw += self.grad_w(x, y)\n", + " db += self.grad_b(x, y) \n", + " self.w -= learning_rate * dw\n", + " self.b -= learning_rate * db\n", + " \n", + " if display_loss:\n", + " Y_pred = self.sigmoid(self.perceptron(X))\n", + " loss[i] = mean_squared_error(Y_pred, Y)\n", + " \n", + " if display_loss:\n", + " plt.plot(loss.values())\n", + " plt.xlabel('Epochs')\n", + " plt.ylabel('Mean Squared Error')\n", + " plt.show()\n", + " \n", + " def predict(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.sigmoid(self.perceptron(x))\n", + " Y_pred.append(y_pred)\n", + " return np.array(Y_pred)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6OZnNCJGHp7b", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Fit for toy data" + ] + }, + { + "metadata": { + "id": "0qSMcculHplT", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "X = np.asarray([[2.5, 2.5], [4, -1], [1, -4], [-3, 1.25], [-2, -4], [1, 5]])\n", + "Y = [1, 1, 1, 0, 0, 0]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "41eRAHTDH65S", + "colab_type": "code", + "outputId": "c22e579d-23bc-4928-cd80-1eb4e16c6d22", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.min.js": { + "data": "IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dfShleHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIG4oaSl7aWYoZVtpXSlyZXR1cm4gZVtpXS5leHBvcnRzO3ZhciByPWVbaV09e2k6aSxsOiExLGV4cG9ydHM6e319O3JldHVybiB0W2ldLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLG4pLHIubD0hMCxyLmV4cG9ydHN9cmV0dXJuIG4ubT10LG4uYz1lLG4uZD1mdW5jdGlvbih0LGUsaSl7bi5vKHQsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2VudW1lcmFibGU6ITAsZ2V0Oml9KX0sbi5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbih0LGUpe2lmKDEmZSYmKHQ9bih0KSksOCZlKXJldHVybiB0O2lmKDQmZSYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIoaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJiJzdHJpbmciIT10eXBlb2YgdClmb3IodmFyIHIgaW4gdCluLmQoaSxyLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfS5iaW5kKG51bGwscikpO3JldHVybiBpfSxuLm49ZnVuY3Rpb24odCl7dmFyIGU9dCYmdC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gdH07cmV0dXJuIG4uZChlLCJhIixlKSxlfSxuLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LG4ucD0iIixuKG4ucz0xNDApfShbZnVuY3Rpb24odCxlKXsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT90LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTp0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNCkscj1pLkJ1ZmZlcjtmdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dfWZ1bmN0aW9uIHModCxlLG4pe3JldHVybiByKHQsZSxuKX1yLmZyb20mJnIuYWxsb2MmJnIuYWxsb2NVbnNhZmUmJnIuYWxsb2NVbnNhZmVTbG93P3QuZXhwb3J0cz1pOihvKGksZSksZS5CdWZmZXI9cyksbyhyLHMpLHMuZnJvbT1mdW5jdGlvbih0LGUsbil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIHIodCxlLG4pfSxzLmFsbG9jPWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpPXIodCk7cmV0dXJuIHZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiBuP2kuZmlsbChlLG4pOmkuZmlsbChlKTppLmZpbGwoMCksaX0scy5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByKHQpfSxzLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpLlNsb3dCdWZmZXIodCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMDIpKSxpKG4oMzAzKSksaShuKDMwNCkpLGkobigzMDUpKSxpKG4oMzA2KSksaShuKDE4KSksaShuKDMwNykpLGkobigzMDgpKSxpKG4oMzA5KSksaShuKDMxMCkpLGkobigzMTEpKSxpKG4oMzEyKSksaShuKDMxMykpLGkobigzMTQpKSxpKG4oMzE1KSksaShuKDMxNikpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gcih0LGUpe3Quc3VwZXJfPWU7dmFyIG49ZnVuY3Rpb24oKXt9O24ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gbyh0LGUsbil7aWYoby5pc0JOKHQpKXJldHVybiB0O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT10JiYoImxlIiE9PWUmJiJiZSIhPT1lfHwobj1lLGU9MTApLHRoaXMuX2luaXQodHx8MCxlfHwxMCxufHwiYmUiKSl9dmFyIHM7Im9iamVjdCI9PXR5cGVvZiB0P3QuZXhwb3J0cz1vOmUuQk49byxvLkJOPW8sby53b3JkU2l6ZT0yNjt0cnl7cz1uKDE4MikuQnVmZmVyfWNhdGNoKHQpe31mdW5jdGlvbiBhKHQsZSxuKXtmb3IodmFyIGk9MCxyPU1hdGgubWluKHQubGVuZ3RoLG4pLG89ZTtvPHI7bysrKXt2YXIgcz10LmNoYXJDb2RlQXQobyktNDg7aTw8PTQsaXw9cz49NDkmJnM8PTU0P3MtNDkrMTA6cz49MTcmJnM8PTIyP3MtMTcrMTA6MTUmc31yZXR1cm4gaX1mdW5jdGlvbiB1KHQsZSxuLGkpe2Zvcih2YXIgcj0wLG89TWF0aC5taW4odC5sZW5ndGgsbikscz1lO3M8bztzKyspe3ZhciBhPXQuY2hhckNvZGVBdChzKS00ODtyKj1pLHIrPWE+PTQ5P2EtNDkrMTA6YT49MTc/YS0xNysxMDphfXJldHVybiByfW8uaXNCTj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG98fG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuY29uc3RydWN0b3Iud29yZFNpemU9PT1vLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHQud29yZHMpfSxvLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKT4wP3Q6ZX0sby5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jbXAoZSk8MD90OmV9LG8ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodCxlLG4pO2lmKCJvYmplY3QiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHQsZSxuKTsiaGV4Ij09PWUmJihlPTE2KSxpKGU9PT0oMHxlKSYmZT49MiYmZTw9MzYpO3ZhciByPTA7Ii0iPT09KHQ9dC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJnIrKywxNj09PWU/dGhpcy5fcGFyc2VIZXgodCxyKTp0aGlzLl9wYXJzZUJhc2UodCxlLHIpLCItIj09PXRbMF0mJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKSwibGUiPT09biYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUsbil9LG8ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHQsZSxuKXt0PDAmJih0aGlzLm5lZ2F0aXZlPTEsdD0tdCksdDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdF0sdGhpcy5sZW5ndGg9MSk6dDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihpKHQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxuKX0sby5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih0LGUsbil7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKSx0Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh0Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT0wO3ZhciBvLHMsYT0wO2lmKCJiZSI9PT1uKWZvcihyPXQubGVuZ3RoLTEsbz0wO3I+PTA7ci09MylzPXRbcl18dFtyLTFdPDw4fHRbci0yXTw8MTYsdGhpcy53b3Jkc1tvXXw9czw8YSY2NzEwODg2Myx0aGlzLndvcmRzW28rMV09cz4+PjI2LWEmNjcxMDg4NjMsKGErPTI0KT49MjYmJihhLT0yNixvKyspO2Vsc2UgaWYoImxlIj09PW4pZm9yKHI9MCxvPTA7cjx0Lmxlbmd0aDtyKz0zKXM9dFtyXXx0W3IrMV08PDh8dFtyKzJdPDwxNix0aGlzLndvcmRzW29dfD1zPDxhJjY3MTA4ODYzLHRoaXMud29yZHNbbysxXT1zPj4+MjYtYSY2NzEwODg2MywoYSs9MjQpPj0yNiYmKGEtPTI2LG8rKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT0wO3ZhciBpLHIsbz0wO2ZvcihuPXQubGVuZ3RoLTYsaT0wO24+PWU7bi09NilyPWEodCxuLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMsKG8rPTI0KT49MjYmJihvLT0yNixpKyspO24rNiE9PWUmJihyPWEodCxlLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUsbil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIGk9MCxyPTE7cjw9NjcxMDg4NjM7cio9ZSlpKys7aS0tLHI9ci9lfDA7Zm9yKHZhciBvPXQubGVuZ3RoLW4scz1vJWksYT1NYXRoLm1pbihvLG8tcykrbixjPTAsaD1uO2g8YTtoKz1pKWM9dSh0LGgsaCtpLGUpLHRoaXMuaW11bG4ociksdGhpcy53b3Jkc1swXStjPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWM6dGhpcy5faWFkZG4oYyk7aWYoMCE9PXMpe3ZhciBsPTE7Zm9yKGM9dSh0LGgsdC5sZW5ndGgsZSksaD0wO2g8cztoKyspbCo9ZTt0aGlzLmltdWxuKGwpLHRoaXMud29yZHNbMF0rYzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1jOnRoaXMuX2lhZGRuKGMpfX0sby5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sby5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LG8ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sby5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LG8ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIGM9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0saD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxsPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIGQodCxlLG4pe24ubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlO3ZhciBpPXQubGVuZ3RoK2UubGVuZ3RofDA7bi5sZW5ndGg9aSxpPWktMXwwO3ZhciByPTB8dC53b3Jkc1swXSxvPTB8ZS53b3Jkc1swXSxzPXIqbyxhPTY3MTA4ODYzJnMsdT1zLzY3MTA4ODY0fDA7bi53b3Jkc1swXT1hO2Zvcih2YXIgYz0xO2M8aTtjKyspe2Zvcih2YXIgaD11Pj4+MjYsbD02NzEwODg2MyZ1LGQ9TWF0aC5taW4oYyxlLmxlbmd0aC0xKSxmPU1hdGgubWF4KDAsYy10Lmxlbmd0aCsxKTtmPD1kO2YrKyl7dmFyIHA9Yy1mfDA7aCs9KHM9KHI9MHx0LndvcmRzW3BdKSoobz0wfGUud29yZHNbZl0pK2wpLzY3MTA4ODY0fDAsbD02NzEwODg2MyZzfW4ud29yZHNbY109MHxsLHU9MHxofXJldHVybiAwIT09dT9uLndvcmRzW2NdPTB8dTpuLmxlbmd0aC0tLG4uc3RyaXAoKX1vLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKGU9MHxlfHwxLDE2PT09KHQ9dHx8MTApfHwiaGV4Ij09PXQpe249IiI7Zm9yKHZhciByPTAsbz0wLHM9MDtzPHRoaXMubGVuZ3RoO3MrKyl7dmFyIGE9dGhpcy53b3Jkc1tzXSx1PSgxNjc3NzIxNSYoYTw8cnxvKSkudG9TdHJpbmcoMTYpO249MCE9PShvPWE+Pj4yNC1yJjE2Nzc3MjE1KXx8cyE9PXRoaXMubGVuZ3RoLTE/Y1s2LXUubGVuZ3RoXSt1K246dStuLChyKz0yKT49MjYmJihyLT0yNixzLS0pfWZvcigwIT09byYmKG49by50b1N0cmluZygxNikrbik7bi5sZW5ndGglZSE9MDspbj0iMCIrbjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuPSItIituKSxufWlmKHQ9PT0oMHx0KSYmdD49MiYmdDw9MzYpe3ZhciBkPWhbdF0sZj1sW3RdO249IiI7dmFyIHA9dGhpcy5jbG9uZSgpO2ZvcihwLm5lZ2F0aXZlPTA7IXAuaXNaZXJvKCk7KXt2YXIgbT1wLm1vZG4oZikudG9TdHJpbmcodCk7bj0ocD1wLmlkaXZuKGYpKS5pc1plcm8oKT9tK246Y1tkLW0ubGVuZ3RoXSttK259Zm9yKHRoaXMuaXNaZXJvKCkmJihuPSIwIituKTtuLmxlbmd0aCVlIT0wOyluPSIwIituO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG49Ii0iK24pLG59aSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxvLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD90Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJmkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy10OnR9LG8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sby5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaSh2b2lkIDAhPT1zKSx0aGlzLnRvQXJyYXlMaWtlKHMsdCxlKX0sby5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHQsZSl9LG8ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmJ5dGVMZW5ndGgoKSxvPW58fE1hdGgubWF4KDEscik7aShyPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksaShvPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgcyxhLHU9ImxlIj09PWUsYz1uZXcgdChvKSxoPXRoaXMuY2xvbmUoKTtpZih1KXtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW2FdPXM7Zm9yKDthPG87YSsrKWNbYV09MH1lbHNle2ZvcihhPTA7YTxvLXI7YSsrKWNbYV09MDtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW28tYS0xXT1zfXJldHVybiBjfSxNYXRoLmNsejMyP28ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7cmV0dXJuIDMyLU1hdGguY2x6MzIodCl9Om8ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7dmFyIGU9dCxuPTA7cmV0dXJuIGU+PTQwOTYmJihuKz0xMyxlPj4+PTEzKSxlPj02NCYmKG4rPTcsZT4+Pj03KSxlPj04JiYobis9NCxlPj4+PTQpLGU+PTImJihuKz0yLGU+Pj49MiksbitlfSxvLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIDI2O3ZhciBlPXQsbj0wO3JldHVybiAwPT0oODE5MSZlKSYmKG4rPTEzLGU+Pj49MTMpLDA9PSgxMjcmZSkmJihuKz03LGU+Pj49NyksMD09KDE1JmUpJiYobis9NCxlPj4+PTQpLDA9PSgzJmUpJiYobis9MixlPj4+PTIpLDA9PSgxJmUpJiZuKyssbn0sby5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSxlPXRoaXMuX2NvdW50Qml0cyh0KTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK2V9LG8ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciBuPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbZV0pO2lmKHQrPW4sMjYhPT1uKWJyZWFrfXJldHVybiB0fSxvLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxvLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4odCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50ZXN0bih0LTEpP3RoaXMubm90bih0KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sby5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LG8ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LG8ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXx0LndvcmRzW2VdO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHQpfSxvLnByb3RvdHlwZS5vcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih0KTp0LmNsb25lKCkuaW9yKHRoaXMpfSxvLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHQpOnQuY2xvbmUoKS5pdW9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPXRoaXMud29yZHNbbl0mdC53b3Jkc1tuXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1YW5kKHQpfSxvLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxvLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQodCk6dC5jbG9uZSgpLml1YW5kKHRoaXMpfSxvLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhlPXRoaXMsbj10KTooZT10LG49dGhpcyk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT1lLndvcmRzW2ldXm4ud29yZHNbaV07aWYodGhpcyE9PWUpZm9yKDtpPGUubGVuZ3RoO2krKyl0aGlzLndvcmRzW2ldPWUud29yZHNbaV07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih0KX0sby5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0sby5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHQpOnQuY2xvbmUoKS5pdXhvcih0aGlzKX0sby5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPTB8TWF0aC5jZWlsKHQvMjYpLG49dCUyNjt0aGlzLl9leHBhbmQoZSksbj4wJiZlLS07Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLndvcmRzW3JdPTY3MTA4ODYzJn50aGlzLndvcmRzW3JdO3JldHVybiBuPjAmJih0aGlzLndvcmRzW3JdPX50aGlzLndvcmRzW3JdJjY3MTA4ODYzPj4yNi1uKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sby5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgbj10LzI2fDAscj10JTI2O3JldHVybiB0aGlzLl9leHBhbmQobisxKSx0aGlzLndvcmRzW25dPWU/dGhpcy53b3Jkc1tuXXwxPDxyOnRoaXMud29yZHNbbl0mfigxPDxyKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLGU9dGhpcy5pc3ViKHQpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIHQubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD50Lmxlbmd0aD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgcj0wLG89MDtvPGkubGVuZ3RoO28rKyllPSgwfG4ud29yZHNbb10pKygwfGkud29yZHNbb10pK3IsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlLHI9ZT4+PjI2O2Zvcig7MCE9PXImJm88bi5sZW5ndGg7bysrKWU9KDB8bi53b3Jkc1tvXSkrcix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmUscj1lPj4+MjY7aWYodGhpcy5sZW5ndGg9bi5sZW5ndGgsMCE9PXIpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09cix0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobiE9PXRoaXMpZm9yKDtvPG4ubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPW4ud29yZHNbb107cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gMCE9PXQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0Lm5lZ2F0aXZlPTAsZT10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLGUpOjA9PT10Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGU9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGUpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxvLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lm5lZ2F0aXZlKXt0Lm5lZ2F0aXZlPTA7dmFyIGU9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbixpLHI9dGhpcy5jbXAodCk7aWYoMD09PXIpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3I+MD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgbz0wLHM9MDtzPGkubGVuZ3RoO3MrKylvPShlPSgwfG4ud29yZHNbc10pLSgwfGkud29yZHNbc10pK28pPj4yNix0aGlzLndvcmRzW3NdPTY3MTA4ODYzJmU7Zm9yKDswIT09byYmczxuLmxlbmd0aDtzKyspbz0oZT0oMHxuLndvcmRzW3NdKStvKT4+MjYsdGhpcy53b3Jkc1tzXT02NzEwODg2MyZlO2lmKDA9PT1vJiZzPG4ubGVuZ3RoJiZuIT09dGhpcylmb3IoO3M8bi5sZW5ndGg7cysrKXRoaXMud29yZHNbc109bi53b3Jkc1tzXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgscyksbiE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0KX07dmFyIGY9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzPXQud29yZHMsYT1lLndvcmRzLHU9bi53b3JkcyxjPTAsaD0wfHNbMF0sbD04MTkxJmgsZD1oPj4+MTMsZj0wfHNbMV0scD04MTkxJmYsbT1mPj4+MTMsZz0wfHNbMl0sdj04MTkxJmcsYj1nPj4+MTMseT0wfHNbM10sXz04MTkxJnksdz15Pj4+MTMseD0wfHNbNF0sTT04MTkxJngsUz14Pj4+MTMsRT0wfHNbNV0sQT04MTkxJkUsQz1FPj4+MTMsaz0wfHNbNl0sTz04MTkxJmssUD1rPj4+MTMsVD0wfHNbN10saj04MTkxJlQsST1UPj4+MTMsTD0wfHNbOF0sQj04MTkxJkwsRD1MPj4+MTMsUj0wfHNbOV0sej04MTkxJlIsTj1SPj4+MTMsVz0wfGFbMF0scT04MTkxJlcsSD1XPj4+MTMsRj0wfGFbMV0sVj04MTkxJkYsVT1GPj4+MTMsSz0wfGFbMl0sWT04MTkxJkssWD1LPj4+MTMsJD0wfGFbM10sRz04MTkxJiQsSj0kPj4+MTMsWj0wfGFbNF0sUT04MTkxJlosdHQ9Wj4+PjEzLGV0PTB8YVs1XSxudD04MTkxJmV0LGl0PWV0Pj4+MTMscnQ9MHxhWzZdLG90PTgxOTEmcnQsc3Q9cnQ+Pj4xMyxhdD0wfGFbN10sdXQ9ODE5MSZhdCxjdD1hdD4+PjEzLGh0PTB8YVs4XSxsdD04MTkxJmh0LGR0PWh0Pj4+MTMsZnQ9MHxhWzldLHB0PTgxOTEmZnQsbXQ9ZnQ+Pj4xMztuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD0xOTt2YXIgZ3Q9KGMrKGk9TWF0aC5pbXVsKGwscSkpfDApKygoODE5MSYocj0ocj1NYXRoLmltdWwobCxIKSkrTWF0aC5pbXVsKGQscSl8MCkpPDwxMyl8MDtjPSgobz1NYXRoLmltdWwoZCxIKSkrKHI+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHAscSkscj0ocj1NYXRoLmltdWwocCxIKSkrTWF0aC5pbXVsKG0scSl8MCxvPU1hdGguaW11bChtLEgpO3ZhciB2dD0oYysoaT1pK01hdGguaW11bChsLFYpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLFUpfDApK01hdGguaW11bChkLFYpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxVKXwwKSsocj4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsaT1NYXRoLmltdWwodixxKSxyPShyPU1hdGguaW11bCh2LEgpKStNYXRoLmltdWwoYixxKXwwLG89TWF0aC5pbXVsKGIsSCksaT1pK01hdGguaW11bChwLFYpfDAscj0ocj1yK01hdGguaW11bChwLFUpfDApK01hdGguaW11bChtLFYpfDAsbz1vK01hdGguaW11bChtLFUpfDA7dmFyIGJ0PShjKyhpPWkrTWF0aC5pbXVsKGwsWSl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsWCl8MCkrTWF0aC5pbXVsKGQsWSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChkLFgpfDApKyhyPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxpPU1hdGguaW11bChfLHEpLHI9KHI9TWF0aC5pbXVsKF8sSCkpK01hdGguaW11bCh3LHEpfDAsbz1NYXRoLmltdWwodyxIKSxpPWkrTWF0aC5pbXVsKHYsVil8MCxyPShyPXIrTWF0aC5pbXVsKHYsVSl8MCkrTWF0aC5pbXVsKGIsVil8MCxvPW8rTWF0aC5pbXVsKGIsVSl8MCxpPWkrTWF0aC5pbXVsKHAsWSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsWCl8MCkrTWF0aC5pbXVsKG0sWSl8MCxvPW8rTWF0aC5pbXVsKG0sWCl8MDt2YXIgeXQ9KGMrKGk9aStNYXRoLmltdWwobCxHKXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxKKXwwKStNYXRoLmltdWwoZCxHKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsSil8MCkrKHI+Pj4xMyl8MCkrKHl0Pj4+MjYpfDAseXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE0scSkscj0ocj1NYXRoLmltdWwoTSxIKSkrTWF0aC5pbXVsKFMscSl8MCxvPU1hdGguaW11bChTLEgpLGk9aStNYXRoLmltdWwoXyxWKXwwLHI9KHI9citNYXRoLmltdWwoXyxVKXwwKStNYXRoLmltdWwodyxWKXwwLG89bytNYXRoLmltdWwodyxVKXwwLGk9aStNYXRoLmltdWwodixZKXwwLHI9KHI9citNYXRoLmltdWwodixYKXwwKStNYXRoLmltdWwoYixZKXwwLG89bytNYXRoLmltdWwoYixYKXwwLGk9aStNYXRoLmltdWwocCxHKXwwLHI9KHI9citNYXRoLmltdWwocCxKKXwwKStNYXRoLmltdWwobSxHKXwwLG89bytNYXRoLmltdWwobSxKKXwwO3ZhciBfdD0oYysoaT1pK01hdGguaW11bChsLFEpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLHR0KXwwKStNYXRoLmltdWwoZCxRKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsdHQpfDApKyhyPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxpPU1hdGguaW11bChBLHEpLHI9KHI9TWF0aC5pbXVsKEEsSCkpK01hdGguaW11bChDLHEpfDAsbz1NYXRoLmltdWwoQyxIKSxpPWkrTWF0aC5pbXVsKE0sVil8MCxyPShyPXIrTWF0aC5pbXVsKE0sVSl8MCkrTWF0aC5pbXVsKFMsVil8MCxvPW8rTWF0aC5pbXVsKFMsVSl8MCxpPWkrTWF0aC5pbXVsKF8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKF8sWCl8MCkrTWF0aC5pbXVsKHcsWSl8MCxvPW8rTWF0aC5pbXVsKHcsWCl8MCxpPWkrTWF0aC5pbXVsKHYsRyl8MCxyPShyPXIrTWF0aC5pbXVsKHYsSil8MCkrTWF0aC5pbXVsKGIsRyl8MCxvPW8rTWF0aC5pbXVsKGIsSil8MCxpPWkrTWF0aC5pbXVsKHAsUSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsdHQpfDApK01hdGguaW11bChtLFEpfDAsbz1vK01hdGguaW11bChtLHR0KXwwO3ZhciB3dD0oYysoaT1pK01hdGguaW11bChsLG50KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxpdCl8MCkrTWF0aC5pbXVsKGQsbnQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxpdCl8MCkrKHI+Pj4xMyl8MCkrKHd0Pj4+MjYpfDAsd3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE8scSkscj0ocj1NYXRoLmltdWwoTyxIKSkrTWF0aC5pbXVsKFAscSl8MCxvPU1hdGguaW11bChQLEgpLGk9aStNYXRoLmltdWwoQSxWKXwwLHI9KHI9citNYXRoLmltdWwoQSxVKXwwKStNYXRoLmltdWwoQyxWKXwwLG89bytNYXRoLmltdWwoQyxVKXwwLGk9aStNYXRoLmltdWwoTSxZKXwwLHI9KHI9citNYXRoLmltdWwoTSxYKXwwKStNYXRoLmltdWwoUyxZKXwwLG89bytNYXRoLmltdWwoUyxYKXwwLGk9aStNYXRoLmltdWwoXyxHKXwwLHI9KHI9citNYXRoLmltdWwoXyxKKXwwKStNYXRoLmltdWwodyxHKXwwLG89bytNYXRoLmltdWwodyxKKXwwLGk9aStNYXRoLmltdWwodixRKXwwLHI9KHI9citNYXRoLmltdWwodix0dCl8MCkrTWF0aC5pbXVsKGIsUSl8MCxvPW8rTWF0aC5pbXVsKGIsdHQpfDAsaT1pK01hdGguaW11bChwLG50KXwwLHI9KHI9citNYXRoLmltdWwocCxpdCl8MCkrTWF0aC5pbXVsKG0sbnQpfDAsbz1vK01hdGguaW11bChtLGl0KXwwO3ZhciB4dD0oYysoaT1pK01hdGguaW11bChsLG90KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxzdCl8MCkrTWF0aC5pbXVsKGQsb3QpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxzdCl8MCkrKHI+Pj4xMyl8MCkrKHh0Pj4+MjYpfDAseHQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKGoscSkscj0ocj1NYXRoLmltdWwoaixIKSkrTWF0aC5pbXVsKEkscSl8MCxvPU1hdGguaW11bChJLEgpLGk9aStNYXRoLmltdWwoTyxWKXwwLHI9KHI9citNYXRoLmltdWwoTyxVKXwwKStNYXRoLmltdWwoUCxWKXwwLG89bytNYXRoLmltdWwoUCxVKXwwLGk9aStNYXRoLmltdWwoQSxZKXwwLHI9KHI9citNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQyxZKXwwLG89bytNYXRoLmltdWwoQyxYKXwwLGk9aStNYXRoLmltdWwoTSxHKXwwLHI9KHI9citNYXRoLmltdWwoTSxKKXwwKStNYXRoLmltdWwoUyxHKXwwLG89bytNYXRoLmltdWwoUyxKKXwwLGk9aStNYXRoLmltdWwoXyxRKXwwLHI9KHI9citNYXRoLmltdWwoXyx0dCl8MCkrTWF0aC5pbXVsKHcsUSl8MCxvPW8rTWF0aC5pbXVsKHcsdHQpfDAsaT1pK01hdGguaW11bCh2LG50KXwwLHI9KHI9citNYXRoLmltdWwodixpdCl8MCkrTWF0aC5pbXVsKGIsbnQpfDAsbz1vK01hdGguaW11bChiLGl0KXwwLGk9aStNYXRoLmltdWwocCxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKHAsc3QpfDApK01hdGguaW11bChtLG90KXwwLG89bytNYXRoLmltdWwobSxzdCl8MDt2YXIgTXQ9KGMrKGk9aStNYXRoLmltdWwobCx1dCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsY3QpfDApK01hdGguaW11bChkLHV0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsY3QpfDApKyhyPj4+MTMpfDApKyhNdD4+PjI2KXwwLE10Jj02NzEwODg2MyxpPU1hdGguaW11bChCLHEpLHI9KHI9TWF0aC5pbXVsKEIsSCkpK01hdGguaW11bChELHEpfDAsbz1NYXRoLmltdWwoRCxIKSxpPWkrTWF0aC5pbXVsKGosVil8MCxyPShyPXIrTWF0aC5pbXVsKGosVSl8MCkrTWF0aC5pbXVsKEksVil8MCxvPW8rTWF0aC5pbXVsKEksVSl8MCxpPWkrTWF0aC5pbXVsKE8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKE8sWCl8MCkrTWF0aC5pbXVsKFAsWSl8MCxvPW8rTWF0aC5pbXVsKFAsWCl8MCxpPWkrTWF0aC5pbXVsKEEsRyl8MCxyPShyPXIrTWF0aC5pbXVsKEEsSil8MCkrTWF0aC5pbXVsKEMsRyl8MCxvPW8rTWF0aC5pbXVsKEMsSil8MCxpPWkrTWF0aC5pbXVsKE0sUSl8MCxyPShyPXIrTWF0aC5pbXVsKE0sdHQpfDApK01hdGguaW11bChTLFEpfDAsbz1vK01hdGguaW11bChTLHR0KXwwLGk9aStNYXRoLmltdWwoXyxudCl8MCxyPShyPXIrTWF0aC5pbXVsKF8saXQpfDApK01hdGguaW11bCh3LG50KXwwLG89bytNYXRoLmltdWwodyxpdCl8MCxpPWkrTWF0aC5pbXVsKHYsb3QpfDAscj0ocj1yK01hdGguaW11bCh2LHN0KXwwKStNYXRoLmltdWwoYixvdCl8MCxvPW8rTWF0aC5pbXVsKGIsc3QpfDAsaT1pK01hdGguaW11bChwLHV0KXwwLHI9KHI9citNYXRoLmltdWwocCxjdCl8MCkrTWF0aC5pbXVsKG0sdXQpfDAsbz1vK01hdGguaW11bChtLGN0KXwwO3ZhciBTdD0oYysoaT1pK01hdGguaW11bChsLGx0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxkdCl8MCkrTWF0aC5pbXVsKGQsbHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxkdCl8MCkrKHI+Pj4xMyl8MCkrKFN0Pj4+MjYpfDAsU3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHoscSkscj0ocj1NYXRoLmltdWwoeixIKSkrTWF0aC5pbXVsKE4scSl8MCxvPU1hdGguaW11bChOLEgpLGk9aStNYXRoLmltdWwoQixWKXwwLHI9KHI9citNYXRoLmltdWwoQixVKXwwKStNYXRoLmltdWwoRCxWKXwwLG89bytNYXRoLmltdWwoRCxVKXwwLGk9aStNYXRoLmltdWwoaixZKXwwLHI9KHI9citNYXRoLmltdWwoaixYKXwwKStNYXRoLmltdWwoSSxZKXwwLG89bytNYXRoLmltdWwoSSxYKXwwLGk9aStNYXRoLmltdWwoTyxHKXwwLHI9KHI9citNYXRoLmltdWwoTyxKKXwwKStNYXRoLmltdWwoUCxHKXwwLG89bytNYXRoLmltdWwoUCxKKXwwLGk9aStNYXRoLmltdWwoQSxRKXwwLHI9KHI9citNYXRoLmltdWwoQSx0dCl8MCkrTWF0aC5pbXVsKEMsUSl8MCxvPW8rTWF0aC5pbXVsKEMsdHQpfDAsaT1pK01hdGguaW11bChNLG50KXwwLHI9KHI9citNYXRoLmltdWwoTSxpdCl8MCkrTWF0aC5pbXVsKFMsbnQpfDAsbz1vK01hdGguaW11bChTLGl0KXwwLGk9aStNYXRoLmltdWwoXyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKF8sc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxpPWkrTWF0aC5pbXVsKHYsdXQpfDAscj0ocj1yK01hdGguaW11bCh2LGN0KXwwKStNYXRoLmltdWwoYix1dCl8MCxvPW8rTWF0aC5pbXVsKGIsY3QpfDAsaT1pK01hdGguaW11bChwLGx0KXwwLHI9KHI9citNYXRoLmltdWwocCxkdCl8MCkrTWF0aC5pbXVsKG0sbHQpfDAsbz1vK01hdGguaW11bChtLGR0KXwwO3ZhciBFdD0oYysoaT1pK01hdGguaW11bChsLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxtdCl8MCkrTWF0aC5pbXVsKGQscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxtdCl8MCkrKHI+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosVikscj0ocj1NYXRoLmltdWwoeixVKSkrTWF0aC5pbXVsKE4sVil8MCxvPU1hdGguaW11bChOLFUpLGk9aStNYXRoLmltdWwoQixZKXwwLHI9KHI9citNYXRoLmltdWwoQixYKXwwKStNYXRoLmltdWwoRCxZKXwwLG89bytNYXRoLmltdWwoRCxYKXwwLGk9aStNYXRoLmltdWwoaixHKXwwLHI9KHI9citNYXRoLmltdWwoaixKKXwwKStNYXRoLmltdWwoSSxHKXwwLG89bytNYXRoLmltdWwoSSxKKXwwLGk9aStNYXRoLmltdWwoTyxRKXwwLHI9KHI9citNYXRoLmltdWwoTyx0dCl8MCkrTWF0aC5pbXVsKFAsUSl8MCxvPW8rTWF0aC5pbXVsKFAsdHQpfDAsaT1pK01hdGguaW11bChBLG50KXwwLHI9KHI9citNYXRoLmltdWwoQSxpdCl8MCkrTWF0aC5pbXVsKEMsbnQpfDAsbz1vK01hdGguaW11bChDLGl0KXwwLGk9aStNYXRoLmltdWwoTSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE0sc3QpfDApK01hdGguaW11bChTLG90KXwwLG89bytNYXRoLmltdWwoUyxzdCl8MCxpPWkrTWF0aC5pbXVsKF8sdXQpfDAscj0ocj1yK01hdGguaW11bChfLGN0KXwwKStNYXRoLmltdWwodyx1dCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDAsaT1pK01hdGguaW11bCh2LGx0KXwwLHI9KHI9citNYXRoLmltdWwodixkdCl8MCkrTWF0aC5pbXVsKGIsbHQpfDAsbz1vK01hdGguaW11bChiLGR0KXwwO3ZhciBBdD0oYysoaT1pK01hdGguaW11bChwLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwocCxtdCl8MCkrTWF0aC5pbXVsKG0scHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwobSxtdCl8MCkrKHI+Pj4xMyl8MCkrKEF0Pj4+MjYpfDAsQXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosWSkscj0ocj1NYXRoLmltdWwoeixYKSkrTWF0aC5pbXVsKE4sWSl8MCxvPU1hdGguaW11bChOLFgpLGk9aStNYXRoLmltdWwoQixHKXwwLHI9KHI9citNYXRoLmltdWwoQixKKXwwKStNYXRoLmltdWwoRCxHKXwwLG89bytNYXRoLmltdWwoRCxKKXwwLGk9aStNYXRoLmltdWwoaixRKXwwLHI9KHI9citNYXRoLmltdWwoaix0dCl8MCkrTWF0aC5pbXVsKEksUSl8MCxvPW8rTWF0aC5pbXVsKEksdHQpfDAsaT1pK01hdGguaW11bChPLG50KXwwLHI9KHI9citNYXRoLmltdWwoTyxpdCl8MCkrTWF0aC5pbXVsKFAsbnQpfDAsbz1vK01hdGguaW11bChQLGl0KXwwLGk9aStNYXRoLmltdWwoQSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKEEsc3QpfDApK01hdGguaW11bChDLG90KXwwLG89bytNYXRoLmltdWwoQyxzdCl8MCxpPWkrTWF0aC5pbXVsKE0sdXQpfDAscj0ocj1yK01hdGguaW11bChNLGN0KXwwKStNYXRoLmltdWwoUyx1dCl8MCxvPW8rTWF0aC5pbXVsKFMsY3QpfDAsaT1pK01hdGguaW11bChfLGx0KXwwLHI9KHI9citNYXRoLmltdWwoXyxkdCl8MCkrTWF0aC5pbXVsKHcsbHQpfDAsbz1vK01hdGguaW11bCh3LGR0KXwwO3ZhciBDdD0oYysoaT1pK01hdGguaW11bCh2LHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwodixtdCl8MCkrTWF0aC5pbXVsKGIscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoYixtdCl8MCkrKHI+Pj4xMyl8MCkrKEN0Pj4+MjYpfDAsQ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosRykscj0ocj1NYXRoLmltdWwoeixKKSkrTWF0aC5pbXVsKE4sRyl8MCxvPU1hdGguaW11bChOLEopLGk9aStNYXRoLmltdWwoQixRKXwwLHI9KHI9citNYXRoLmltdWwoQix0dCl8MCkrTWF0aC5pbXVsKEQsUSl8MCxvPW8rTWF0aC5pbXVsKEQsdHQpfDAsaT1pK01hdGguaW11bChqLG50KXwwLHI9KHI9citNYXRoLmltdWwoaixpdCl8MCkrTWF0aC5pbXVsKEksbnQpfDAsbz1vK01hdGguaW11bChJLGl0KXwwLGk9aStNYXRoLmltdWwoTyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sc3QpfDApK01hdGguaW11bChQLG90KXwwLG89bytNYXRoLmltdWwoUCxzdCl8MCxpPWkrTWF0aC5pbXVsKEEsdXQpfDAscj0ocj1yK01hdGguaW11bChBLGN0KXwwKStNYXRoLmltdWwoQyx1dCl8MCxvPW8rTWF0aC5pbXVsKEMsY3QpfDAsaT1pK01hdGguaW11bChNLGx0KXwwLHI9KHI9citNYXRoLmltdWwoTSxkdCl8MCkrTWF0aC5pbXVsKFMsbHQpfDAsbz1vK01hdGguaW11bChTLGR0KXwwO3ZhciBrdD0oYysoaT1pK01hdGguaW11bChfLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoXyxtdCl8MCkrTWF0aC5pbXVsKHcscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwodyxtdCl8MCkrKHI+Pj4xMyl8MCkrKGt0Pj4+MjYpfDAsa3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosUSkscj0ocj1NYXRoLmltdWwoeix0dCkpK01hdGguaW11bChOLFEpfDAsbz1NYXRoLmltdWwoTix0dCksaT1pK01hdGguaW11bChCLG50KXwwLHI9KHI9citNYXRoLmltdWwoQixpdCl8MCkrTWF0aC5pbXVsKEQsbnQpfDAsbz1vK01hdGguaW11bChELGl0KXwwLGk9aStNYXRoLmltdWwoaixvdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosc3QpfDApK01hdGguaW11bChJLG90KXwwLG89bytNYXRoLmltdWwoSSxzdCl8MCxpPWkrTWF0aC5pbXVsKE8sdXQpfDAscj0ocj1yK01hdGguaW11bChPLGN0KXwwKStNYXRoLmltdWwoUCx1dCl8MCxvPW8rTWF0aC5pbXVsKFAsY3QpfDAsaT1pK01hdGguaW11bChBLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQSxkdCl8MCkrTWF0aC5pbXVsKEMsbHQpfDAsbz1vK01hdGguaW11bChDLGR0KXwwO3ZhciBPdD0oYysoaT1pK01hdGguaW11bChNLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoTSxtdCl8MCkrTWF0aC5pbXVsKFMscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoUyxtdCl8MCkrKHI+Pj4xMyl8MCkrKE90Pj4+MjYpfDAsT3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbnQpLHI9KHI9TWF0aC5pbXVsKHosaXQpKStNYXRoLmltdWwoTixudCl8MCxvPU1hdGguaW11bChOLGl0KSxpPWkrTWF0aC5pbXVsKEIsb3QpfDAscj0ocj1yK01hdGguaW11bChCLHN0KXwwKStNYXRoLmltdWwoRCxvdCl8MCxvPW8rTWF0aC5pbXVsKEQsc3QpfDAsaT1pK01hdGguaW11bChqLHV0KXwwLHI9KHI9citNYXRoLmltdWwoaixjdCl8MCkrTWF0aC5pbXVsKEksdXQpfDAsbz1vK01hdGguaW11bChJLGN0KXwwLGk9aStNYXRoLmltdWwoTyxsdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sZHQpfDApK01hdGguaW11bChQLGx0KXwwLG89bytNYXRoLmltdWwoUCxkdCl8MDt2YXIgUHQ9KGMrKGk9aStNYXRoLmltdWwoQSxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEEsbXQpfDApK01hdGguaW11bChDLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEMsbXQpfDApKyhyPj4+MTMpfDApKyhQdD4+PjI2KXwwLFB0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LG90KSxyPShyPU1hdGguaW11bCh6LHN0KSkrTWF0aC5pbXVsKE4sb3QpfDAsbz1NYXRoLmltdWwoTixzdCksaT1pK01hdGguaW11bChCLHV0KXwwLHI9KHI9citNYXRoLmltdWwoQixjdCl8MCkrTWF0aC5pbXVsKEQsdXQpfDAsbz1vK01hdGguaW11bChELGN0KXwwLGk9aStNYXRoLmltdWwoaixsdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosZHQpfDApK01hdGguaW11bChJLGx0KXwwLG89bytNYXRoLmltdWwoSSxkdCl8MDt2YXIgVHQ9KGMrKGk9aStNYXRoLmltdWwoTyxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKE8sbXQpfDApK01hdGguaW11bChQLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFAsbXQpfDApKyhyPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LHV0KSxyPShyPU1hdGguaW11bCh6LGN0KSkrTWF0aC5pbXVsKE4sdXQpfDAsbz1NYXRoLmltdWwoTixjdCksaT1pK01hdGguaW11bChCLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQixkdCl8MCkrTWF0aC5pbXVsKEQsbHQpfDAsbz1vK01hdGguaW11bChELGR0KXwwO3ZhciBqdD0oYysoaT1pK01hdGguaW11bChqLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoaixtdCl8MCkrTWF0aC5pbXVsKEkscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoSSxtdCl8MCkrKHI+Pj4xMyl8MCkrKGp0Pj4+MjYpfDAsanQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbHQpLHI9KHI9TWF0aC5pbXVsKHosZHQpKStNYXRoLmltdWwoTixsdCl8MCxvPU1hdGguaW11bChOLGR0KTt2YXIgSXQ9KGMrKGk9aStNYXRoLmltdWwoQixwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEIsbXQpfDApK01hdGguaW11bChELHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEQsbXQpfDApKyhyPj4+MTMpfDApKyhJdD4+PjI2KXwwLEl0Jj02NzEwODg2Mzt2YXIgTHQ9KGMrKGk9TWF0aC5pbXVsKHoscHQpKXwwKSsoKDgxOTEmKHI9KHI9TWF0aC5pbXVsKHosbXQpKStNYXRoLmltdWwoTixwdCl8MCkpPDwxMyl8MDtyZXR1cm4gYz0oKG89TWF0aC5pbXVsKE4sbXQpKSsocj4+PjEzKXwwKSsoTHQ+Pj4yNil8MCxMdCY9NjcxMDg4NjMsdVswXT1ndCx1WzFdPXZ0LHVbMl09YnQsdVszXT15dCx1WzRdPV90LHVbNV09d3QsdVs2XT14dCx1WzddPU10LHVbOF09U3QsdVs5XT1FdCx1WzEwXT1BdCx1WzExXT1DdCx1WzEyXT1rdCx1WzEzXT1PdCx1WzE0XT1QdCx1WzE1XT1UdCx1WzE2XT1qdCx1WzE3XT1JdCx1WzE4XT1MdCwwIT09YyYmKHVbMTldPWMsbi5sZW5ndGgrKyksbn07ZnVuY3Rpb24gcCh0LGUsbil7cmV0dXJuKG5ldyBtKS5tdWxwKHQsZSxuKX1mdW5jdGlvbiBtKHQsZSl7dGhpcy54PXQsdGhpcy55PWV9TWF0aC5pbXVsfHwoZj1kKSxvLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubGVuZ3RoK3QubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXQubGVuZ3RoP2YodGhpcyx0LGUpOm48NjM/ZCh0aGlzLHQsZSk6bjwxMDI0P2Z1bmN0aW9uKHQsZSxuKXtuLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aDtmb3IodmFyIGk9MCxyPTAsbz0wO288bi5sZW5ndGgtMTtvKyspe3ZhciBzPXI7cj0wO2Zvcih2YXIgYT02NzEwODg2MyZpLHU9TWF0aC5taW4obyxlLmxlbmd0aC0xKSxjPU1hdGgubWF4KDAsby10Lmxlbmd0aCsxKTtjPD11O2MrKyl7dmFyIGg9by1jLGw9KDB8dC53b3Jkc1toXSkqKDB8ZS53b3Jkc1tjXSksZD02NzEwODg2MyZsO2E9NjcxMDg4NjMmKGQ9ZCthfDApLHIrPShzPShzPXMrKGwvNjcxMDg4NjR8MCl8MCkrKGQ+Pj4yNil8MCk+Pj4yNixzJj02NzEwODg2M31uLndvcmRzW29dPWEsaT1zLHM9cn1yZXR1cm4gMCE9PWk/bi53b3Jkc1tvXT1pOm4ubGVuZ3RoLS0sbi5zdHJpcCgpfSh0aGlzLHQsZSk6cCh0aGlzLHQsZSl9LG0ucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxuPW8ucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxpPTA7aTx0O2krKyllW2ldPXRoaXMucmV2QmluKGksbix0KTtyZXR1cm4gZX0sbS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHQsZSxuKXtpZigwPT09dHx8dD09PW4tMSlyZXR1cm4gdDtmb3IodmFyIGk9MCxyPTA7cjxlO3IrKylpfD0oMSZ0KTw8ZS1yLTEsdD4+PTE7cmV0dXJuIGl9LG0ucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxlLG4saSxyLG8pe2Zvcih2YXIgcz0wO3M8bztzKyspaVtzXT1lW3Rbc11dLHJbc109blt0W3NdXX0sbS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLnBlcm11dGUobyx0LGUsbixpLHIpO2Zvcih2YXIgcz0xO3M8cjtzPDw9MSlmb3IodmFyIGE9czw8MSx1PU1hdGguY29zKDIqTWF0aC5QSS9hKSxjPU1hdGguc2luKDIqTWF0aC5QSS9hKSxoPTA7aDxyO2grPWEpZm9yKHZhciBsPXUsZD1jLGY9MDtmPHM7ZisrKXt2YXIgcD1uW2grZl0sbT1pW2grZl0sZz1uW2grZitzXSx2PWlbaCtmK3NdLGI9bCpnLWQqdjt2PWwqditkKmcsZz1iLG5baCtmXT1wK2csaVtoK2ZdPW0rdixuW2grZitzXT1wLWcsaVtoK2Yrc109bS12LGYhPT1hJiYoYj11KmwtYypkLGQ9dSpkK2MqbCxsPWIpfX0sbS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24odCxlKXt2YXIgbj0xfE1hdGgubWF4KGUsdCksaT0xJm4scj0wO2ZvcihuPW4vMnwwO247bj4+Pj0xKXIrKztyZXR1cm4gMTw8cisxK2l9LG0ucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUsbil7aWYoIShuPD0xKSlmb3IodmFyIGk9MDtpPG4vMjtpKyspe3ZhciByPXRbaV07dFtpXT10W24taS0xXSx0W24taS0xXT1yLHI9ZVtpXSxlW2ldPS1lW24taS0xXSxlW24taS0xXT0tcn19LG0ucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9MDtpPGUvMjtpKyspe3ZhciByPTgxOTIqTWF0aC5yb3VuZCh0WzIqaSsxXS9lKStNYXRoLnJvdW5kKHRbMippXS9lKStuO3RbaV09NjcxMDg4NjMmcixuPXI8NjcxMDg4NjQ/MDpyLzY3MTA4ODY0fDB9cmV0dXJuIHR9LG0ucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24odCxlLG4scil7Zm9yKHZhciBvPTAscz0wO3M8ZTtzKyspbys9MHx0W3NdLG5bMipzXT04MTkxJm8sbz4+Pj0xMyxuWzIqcysxXT04MTkxJm8sbz4+Pj0xMztmb3Iocz0yKmU7czxyOysrcyluW3NdPTA7aSgwPT09byksaSgwPT0oLTgxOTImbykpfSxtLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT0wO3JldHVybiBlfSxtLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsZS5sZW5ndGgpLHI9dGhpcy5tYWtlUkJUKGkpLG89dGhpcy5zdHViKGkpLHM9bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpLGM9bmV3IEFycmF5KGkpLGg9bmV3IEFycmF5KGkpLGw9bmV3IEFycmF5KGkpLGQ9bi53b3JkcztkLmxlbmd0aD1pLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHMsaSksdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYyxpKSx0aGlzLnRyYW5zZm9ybShzLG8sYSx1LGksciksdGhpcy50cmFuc2Zvcm0oYyxvLGgsbCxpLHIpO2Zvcih2YXIgZj0wO2Y8aTtmKyspe3ZhciBwPWFbZl0qaFtmXS11W2ZdKmxbZl07dVtmXT1hW2ZdKmxbZl0rdVtmXSpoW2ZdLGFbZl09cH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoYSx1LGkpLHRoaXMudHJhbnNmb3JtKGEsdSxkLG8saSxyKSx0aGlzLmNvbmp1Z2F0ZShkLG8saSksdGhpcy5ub3JtYWxpemUxM2IoZCxpKSxuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aCxuLnN0cmlwKCl9LG8ucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0sby5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHAodGhpcyx0LGUpfSxvLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odCx0aGlzKX0sby5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCk7Zm9yKHZhciBlPTAsbj0wO248dGhpcy5sZW5ndGg7bisrKXt2YXIgcj0oMHx0aGlzLndvcmRzW25dKSp0LG89KDY3MTA4ODYzJnIpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9ci82NzEwODg2NHwwLGUrPW8+Pj4yNix0aGlzLndvcmRzW25dPTY3MTA4ODYzJm99cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tuXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0LmJpdExlbmd0aCgpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPW4vMjZ8MCxyPW4lMjY7ZVtuXT0odC53b3Jkc1tpXSYxPDxyKT4+PnJ9cmV0dXJuIGV9KHQpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciBuPXRoaXMsaT0wO2k8ZS5sZW5ndGgmJjA9PT1lW2ldO2krKyxuPW4uc3FyKCkpO2lmKCsraTxlLmxlbmd0aClmb3IodmFyIHI9bi5zcXIoKTtpPGUubGVuZ3RoO2krKyxyPXIuc3FyKCkpMCE9PWVbaV0mJihuPW4ubXVsKHIpKTtyZXR1cm4gbn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHQpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZSxuPXQlMjYscj0odC1uKS8yNixvPTY3MTA4ODYzPj4+MjYtbjw8MjYtbjtpZigwIT09bil7dmFyIHM9MDtmb3IoZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgYT10aGlzLndvcmRzW2VdJm8sdT0oMHx0aGlzLndvcmRzW2VdKS1hPDxuO3RoaXMud29yZHNbZV09dXxzLHM9YT4+PjI2LW59cyYmKHRoaXMud29yZHNbZV09cyx0aGlzLmxlbmd0aCsrKX1pZigwIT09cil7Zm9yKGU9dGhpcy5sZW5ndGgtMTtlPj0wO2UtLSl0aGlzLndvcmRzW2Urcl09dGhpcy53b3Jkc1tlXTtmb3IoZT0wO2U8cjtlKyspdGhpcy53b3Jkc1tlXT0wO3RoaXMubGVuZ3RoKz1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih0KX0sby5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCkscj1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PW47aWYoci09cyxyPU1hdGgubWF4KDAsciksdSl7Zm9yKHZhciBjPTA7YzxzO2MrKyl1LndvcmRzW2NdPXRoaXMud29yZHNbY107dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxjPTA7Yzx0aGlzLmxlbmd0aDtjKyspdGhpcy53b3Jkc1tjXT10aGlzLndvcmRzW2Mrc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgaD0wO2ZvcihjPXRoaXMubGVuZ3RoLTE7Yz49MCYmKDAhPT1ofHxjPj1yKTtjLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1tjXTt0aGlzLndvcmRzW2NdPWg8PDI2LW98bD4+Pm8saD1sJmF9cmV0dXJuIHUmJjAhPT1oJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1oKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHQsZSxuKX0sby5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHQpfSxvLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih0KX0sby5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHQpfSxvLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih0KX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYsbj0odC1lKS8yNixyPTE8PGU7cmV0dXJuISh0aGlzLmxlbmd0aDw9bikmJiEhKHRoaXMud29yZHNbbl0mcil9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2O2lmKGkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uKXJldHVybiB0aGlzO2lmKDAhPT1lJiZuKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obix0aGlzLmxlbmd0aCksMCE9PWUpe3ZhciByPTY3MTA4ODYzXjY3MTA4ODYzPj4+ZTw8ZTt0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHQpfSxvLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwP3RoaXMuaXN1Ym4oLXQpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8dD8odGhpcy53b3Jkc1swXT10LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHQpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odCl7dGhpcy53b3Jkc1swXSs9dDtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPj02NzEwODg2NDtlKyspdGhpcy53b3Jkc1tlXS09NjcxMDg4NjQsZT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tlKzFdPTE6dGhpcy53b3Jkc1tlKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGUrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odCl7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwKXJldHVybiB0aGlzLmlhZGRuKC10KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09dCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV08MDtlKyspdGhpcy53b3Jkc1tlXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tlKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLHM9dC5sZW5ndGgrbjt0aGlzLl9leHBhbmQocyk7dmFyIGE9MDtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXtvPSgwfHRoaXMud29yZHNbcituXSkrYTt2YXIgdT0oMHx0LndvcmRzW3JdKSplO2E9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbcituXT02NzEwODg2MyZvfWZvcig7cjx0aGlzLmxlbmd0aC1uO3IrKylhPShvPSgwfHRoaXMud29yZHNbcituXSkrYSk+PjI2LHRoaXMud29yZHNbcituXT02NzEwODg2MyZvO2lmKDA9PT1hKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKGkoLTE9PT1hKSxhPTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKWE9KG89LSgwfHRoaXMud29yZHNbcl0pK2EpPj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHQsZSl7dmFyIG49KHRoaXMubGVuZ3RoLHQubGVuZ3RoKSxpPXRoaXMuY2xvbmUoKSxyPXQscz0wfHIud29yZHNbci5sZW5ndGgtMV07MCE9PShuPTI2LXRoaXMuX2NvdW50Qml0cyhzKSkmJihyPXIudXNobG4obiksaS5pdXNobG4obikscz0wfHIud29yZHNbci5sZW5ndGgtMV0pO3ZhciBhLHU9aS5sZW5ndGgtci5sZW5ndGg7aWYoIm1vZCIhPT1lKXsoYT1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxhLndvcmRzPW5ldyBBcnJheShhLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYS53b3Jkc1tjXT0wfXZhciBoPWkuY2xvbmUoKS5faXNobG5zdWJtdWwociwxLHUpOzA9PT1oLm5lZ2F0aXZlJiYoaT1oLGEmJihhLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgZD02NzEwODg2NCooMHxpLndvcmRzW3IubGVuZ3RoK2xdKSsoMHxpLndvcmRzW3IubGVuZ3RoK2wtMV0pO2ZvcihkPU1hdGgubWluKGQvc3wwLDY3MTA4ODYzKSxpLl9pc2hsbnN1Ym11bChyLGQsbCk7MCE9PWkubmVnYXRpdmU7KWQtLSxpLm5lZ2F0aXZlPTAsaS5faXNobG5zdWJtdWwociwxLGwpLGkuaXNaZXJvKCl8fChpLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1kKX1yZXR1cm4gYSYmYS5zdHJpcCgpLGkuc3RyaXAoKSwiZGl2IiE9PWUmJjAhPT1uJiZpLml1c2hybihuKSx7ZGl2OmF8fG51bGwsbW9kOml9fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpKCF0LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmU/KGE9dGhpcy5uZWcoKS5kaXZtb2QodCxlKSwibW9kIiE9PWUmJihyPWEuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihzPWEubW9kLm5lZygpLG4mJjAhPT1zLm5lZ2F0aXZlJiZzLmlhZGQodCkpLHtkaXY6cixtb2Q6c30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZT8oYT10aGlzLmRpdm1vZCh0Lm5lZygpLGUpLCJtb2QiIT09ZSYmKHI9YS5kaXYubmVnKCkpLHtkaXY6cixtb2Q6YS5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKT8oYT10aGlzLm5lZygpLmRpdm1vZCh0Lm5lZygpLGUpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksbiYmMCE9PXMubmVnYXRpdmUmJnMuaXN1Yih0KSkse2RpdjphLmRpdixtb2Q6c30pOnQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh0KTwwP3tkaXY6bmV3IG8oMCksbW9kOnRoaXN9OjE9PT10Lmxlbmd0aD8iZGl2Ij09PWU/e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ZT97ZGl2Om51bGwsbW9kOm5ldyBvKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHQsZSk7dmFyIHIscyxhfSxvLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sby5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LG8ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sby5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kaXZtb2QodCk7aWYoZS5tb2QuaXNaZXJvKCkpcmV0dXJuIGUuZGl2O3ZhciBuPTAhPT1lLmRpdi5uZWdhdGl2ZT9lLm1vZC5pc3ViKHQpOmUubW9kLGk9dC51c2hybigxKSxyPXQuYW5kbG4oMSksbz1uLmNtcChpKTtyZXR1cm4gbzwwfHwxPT09ciYmMD09PW8/ZS5kaXY6MCE9PWUuZGl2Lm5lZ2F0aXZlP2UuZGl2LmlzdWJuKDEpOmUuZGl2LmlhZGRuKDEpfSxvLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0oMTw8MjYpJXQsbj0wLHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSluPShlKm4rKDB8dGhpcy53b3Jkc1tyXSkpJXQ7cmV0dXJuIG59LG8ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIHI9KDB8dGhpcy53b3Jkc1tuXSkrNjcxMDg4NjQqZTt0aGlzLndvcmRzW25dPXIvdHwwLGU9ciV0fXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0KX0sby5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlKSxpKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLG49dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIHI9bmV3IG8oMSkscz1uZXcgbygwKSxhPW5ldyBvKDApLHU9bmV3IG8oMSksYz0wO2UuaXNFdmVuKCkmJm4uaXNFdmVuKCk7KWUuaXVzaHJuKDEpLG4uaXVzaHJuKDEpLCsrYztmb3IodmFyIGg9bi5jbG9uZSgpLGw9ZS5jbG9uZSgpOyFlLmlzWmVybygpOyl7Zm9yKHZhciBkPTAsZj0xOzA9PShlLndvcmRzWzBdJmYpJiZkPDI2OysrZCxmPDw9MSk7aWYoZD4wKWZvcihlLml1c2hybihkKTtkLS0gPjA7KShyLmlzT2RkKCl8fHMuaXNPZGQoKSkmJihyLmlhZGQoaCkscy5pc3ViKGwpKSxyLml1c2hybigxKSxzLml1c2hybigxKTtmb3IodmFyIHA9MCxtPTE7MD09KG4ud29yZHNbMF0mbSkmJnA8MjY7KytwLG08PD0xKTtpZihwPjApZm9yKG4uaXVzaHJuKHApO3AtLSA+MDspKGEuaXNPZGQoKXx8dS5pc09kZCgpKSYmKGEuaWFkZChoKSx1LmlzdWIobCkpLGEuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobiksci5pc3ViKGEpLHMuaXN1Yih1KSk6KG4uaXN1YihlKSxhLmlzdWIociksdS5pc3ViKHMpKX1yZXR1cm57YTphLGI6dSxnY2Q6bi5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24odCl7aSgwPT09dC5uZWdhdGl2ZSksaSghdC5pc1plcm8oKSk7dmFyIGU9dGhpcyxuPXQuY2xvbmUoKTtlPTAhPT1lLm5lZ2F0aXZlP2UudW1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciByLHM9bmV3IG8oMSksYT1uZXcgbygwKSx1PW4uY2xvbmUoKTtlLmNtcG4oMSk+MCYmbi5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxoPTE7MD09KGUud29yZHNbMF0maCkmJmM8MjY7KytjLGg8PD0xKTtpZihjPjApZm9yKGUuaXVzaHJuKGMpO2MtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7Zm9yKHZhciBsPTAsZD0xOzA9PShuLndvcmRzWzBdJmQpJiZsPDI2OysrbCxkPDw9MSk7aWYobD4wKWZvcihuLml1c2hybihsKTtsLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobikscy5pc3ViKGEpKToobi5pc3ViKGUpLGEuaXN1YihzKSl9cmV0dXJuKHI9MD09PWUuY21wbigxKT9zOmEpLmNtcG4oMCk8MCYmci5pYWRkKHQpLHJ9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIGU9dGhpcy5jbG9uZSgpLG49dC5jbG9uZSgpO2UubmVnYXRpdmU9MCxuLm5lZ2F0aXZlPTA7Zm9yKHZhciBpPTA7ZS5pc0V2ZW4oKSYmbi5pc0V2ZW4oKTtpKyspZS5pdXNocm4oMSksbi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO2Zvcig7bi5pc0V2ZW4oKTspbi5pdXNocm4oMSk7dmFyIHI9ZS5jbXAobik7aWYocjwwKXt2YXIgbz1lO2U9bixuPW99ZWxzZSBpZigwPT09cnx8MD09PW4uY21wbigxKSlicmVhaztlLmlzdWIobil9cmV0dXJuIG4uaXVzaGxuKGkpfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVnY2QodCkuYS51bW9kKHQpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ0fSxvLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2LHI9MTw8ZTtpZih0aGlzLmxlbmd0aDw9bilyZXR1cm4gdGhpcy5fZXhwYW5kKG4rMSksdGhpcy53b3Jkc1tuXXw9cix0aGlzO2Zvcih2YXIgbz1yLHM9bjswIT09byYmczx0aGlzLmxlbmd0aDtzKyspe3ZhciBhPTB8dGhpcy53b3Jkc1tzXTtvPShhKz1vKT4+PjI2LGEmPTY3MTA4ODYzLHRoaXMud29yZHNbc109YX1yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW3NdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24odCl7dmFyIGUsbj10PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFuKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZuKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKWU9MTtlbHNle24mJih0PS10KSxpKHQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciByPTB8dGhpcy53b3Jkc1swXTtlPXI9PT10PzA6cjx0Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIDE7dmFyIGU9dGhpcy51Y21wKHQpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lOmV9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+dC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBlPTAsbj10aGlzLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT0wfHRoaXMud29yZHNbbl0scj0wfHQud29yZHNbbl07aWYoaSE9PXIpe2k8cj9lPS0xOmk+ciYmKGU9MSk7YnJlYWt9fXJldHVybiBlfSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcG4odCl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dGhpcy5jbXAodCl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXBuKHQpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuY21wKHQpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wbih0KX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmNtcCh0KX0sby5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB4KHQpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxpKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdih0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgbyhlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gYigpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiB5KCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gdygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiB4KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9by5fcHJpbWUodCk7dGhpcy5tPWUucCx0aGlzLnByaW1lPWV9ZWxzZSBpKHQuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTSh0KXt4LmNhbGwodGhpcyx0KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBvKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXYucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHR9LHYucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odCl7dmFyIGUsbj10O2Rve3RoaXMuc3BsaXQobix0aGlzLnRtcCksZT0obj0obj10aGlzLmltdWxLKG4pKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZT50aGlzLm4pO3ZhciBpPWU8dGhpcy5uPy0xOm4udWNtcCh0aGlzLnApO3JldHVybiAwPT09aT8obi53b3Jkc1swXT0wLG4ubGVuZ3RoPTEpOmk+MD9uLmlzdWIodGhpcy5wKTpuLnN0cmlwKCksbn0sdi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXt0Lml1c2hybih0aGlzLm4sMCxlKX0sdi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfSxyKGIsdiksYi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49TWF0aC5taW4odC5sZW5ndGgsOSksaT0wO2k8bjtpKyspZS53b3Jkc1tpXT10LndvcmRzW2ldO2lmKGUubGVuZ3RoPW4sdC5sZW5ndGg8PTkpcmV0dXJuIHQud29yZHNbMF09MCx2b2lkKHQubGVuZ3RoPTEpO3ZhciByPXQud29yZHNbOV07Zm9yKGUud29yZHNbZS5sZW5ndGgrK109NDE5NDMwMyZyLGk9MTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPTB8dC53b3Jkc1tpXTt0LndvcmRzW2ktMTBdPSg0MTk0MzAzJm8pPDw0fHI+Pj4yMixyPW99cj4+Pj0yMix0LndvcmRzW2ktMTBdPXIsMD09PXImJnQubGVuZ3RoPjEwP3QubGVuZ3RoLT0xMDp0Lmxlbmd0aC09OX0sYi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7dC53b3Jkc1t0Lmxlbmd0aF09MCx0LndvcmRzW3QubGVuZ3RoKzFdPTAsdC5sZW5ndGgrPTI7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT0wfHQud29yZHNbbl07ZSs9OTc3KmksdC53b3Jkc1tuXT02NzEwODg2MyZlLGU9NjQqaSsoZS82NzEwODg2NHwwKX1yZXR1cm4gMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJih0Lmxlbmd0aC0tLDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aC0tKSx0fSxyKHksdikscihfLHYpLHIodyx2KSx3LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPTE5KigwfHQud29yZHNbbl0pK2Uscj02NzEwODg2MyZpO2k+Pj49MjYsdC53b3Jkc1tuXT1yLGU9aX1yZXR1cm4gMCE9PWUmJih0LndvcmRzW3QubGVuZ3RoKytdPWUpLHR9LG8uX3ByaW1lPWZ1bmN0aW9uKHQpe2lmKGdbdF0pcmV0dXJuIGdbdF07dmFyIGU7aWYoImsyNTYiPT09dCllPW5ldyBiO2Vsc2UgaWYoInAyMjQiPT09dCllPW5ldyB5O2Vsc2UgaWYoInAxOTIiPT09dCllPW5ldyBfO2Vsc2V7aWYoInAyNTUxOSIhPT10KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3QpO2U9bmV3IHd9cmV0dXJuIGdbdF09ZSxlfSx4LnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxlKXtpKDA9PSh0Lm5lZ2F0aXZlfGUubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQmJnQucmVkPT09ZS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UodCkuX2ZvcmNlUmVkKHRoaXMpOnQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlzWmVybygpP3QuY2xvbmUoKTp0aGlzLm0uc3ViKHQpLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuYWRkKGUpO3JldHVybiBuLmNtcCh0aGlzLm0pPj0wJiZuLmlzdWIodGhpcy5tKSxuLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LmlhZGQoZSk7cmV0dXJuIG4uY21wKHRoaXMubSk+PTAmJm4uaXN1Yih0aGlzLm0pLG59LHgucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LnN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG4uX2ZvcmNlUmVkKHRoaXMpfSx4LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuaXN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG59LHgucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnVzaGxuKGUpKX0seC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQuaW11bChlKSl9LHgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQubXVsKGUpKX0seC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbXVsKHQsdC5jbG9uZSgpKX0seC5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSx4LnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT10aGlzLm0uYW5kbG4oMyk7aWYoaShlJTI9PTEpLDM9PT1lKXt2YXIgbj10aGlzLm0uYWRkKG5ldyBvKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHQsbil9Zm9yKHZhciByPXRoaXMubS5zdWJuKDEpLHM9MDshci5pc1plcm8oKSYmMD09PXIuYW5kbG4oMSk7KXMrKyxyLml1c2hybigxKTtpKCFyLmlzWmVybygpKTt2YXIgYT1uZXcgbygxKS50b1JlZCh0aGlzKSx1PWEucmVkTmVnKCksYz10aGlzLm0uc3VibigxKS5pdXNocm4oMSksaD10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKGg9bmV3IG8oMipoKmgpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhoLGMpLmNtcCh1KTspaC5yZWRJQWRkKHUpO2Zvcih2YXIgbD10aGlzLnBvdyhoLHIpLGQ9dGhpcy5wb3codCxyLmFkZG4oMSkuaXVzaHJuKDEpKSxmPXRoaXMucG93KHQscikscD1zOzAhPT1mLmNtcChhKTspe2Zvcih2YXIgbT1mLGc9MDswIT09bS5jbXAoYSk7ZysrKW09bS5yZWRTcXIoKTtpKGc8cCk7dmFyIHY9dGhpcy5wb3cobCxuZXcgbygxKS5pdXNobG4ocC1nLTEpKTtkPWQucmVkTXVsKHYpLGw9di5yZWRTcXIoKSxmPWYucmVkTXVsKGwpLHA9Z31yZXR1cm4gZH0seC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXt2YXIgZT10Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ZS5uZWdhdGl2ZT8oZS5uZWdhdGl2ZT0wLHRoaXMuaW1vZChlKS5yZWROZWcoKSk6dGhpcy5pbW9kKGUpfSx4LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCxlKXtpZihlLmlzWmVybygpKXJldHVybiBuZXcgbygxKS50b1JlZCh0aGlzKTtpZigwPT09ZS5jbXBuKDEpKXJldHVybiB0LmNsb25lKCk7dmFyIG49bmV3IEFycmF5KDE2KTtuWzBdPW5ldyBvKDEpLnRvUmVkKHRoaXMpLG5bMV09dDtmb3IodmFyIGk9MjtpPG4ubGVuZ3RoO2krKyluW2ldPXRoaXMubXVsKG5baS0xXSx0KTt2YXIgcj1uWzBdLHM9MCxhPTAsdT1lLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09dSYmKHU9MjYpLGk9ZS5sZW5ndGgtMTtpPj0wO2ktLSl7Zm9yKHZhciBjPWUud29yZHNbaV0saD11LTE7aD49MDtoLS0pe3ZhciBsPWM+PmgmMTtyIT09blswXSYmKHI9dGhpcy5zcXIocikpLDAhPT1sfHwwIT09cz8oczw8PTEsc3w9bCwoND09PSsrYXx8MD09PWkmJjA9PT1oKSYmKHI9dGhpcy5tdWwocixuW3NdKSxhPTAscz0wKSk6YT0wfXU9MjZ9cmV0dXJuIHJ9LHgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXt2YXIgZT10LnVtb2QodGhpcy5tKTtyZXR1cm4gZT09PXQ/ZS5jbG9uZSgpOmV9LHgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvbmUoKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxvLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBNKHQpfSxyKE0seCksTS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC51c2hsbih0aGlzLnNoaWZ0KSl9LE0ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW1vZCh0Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gdC53b3Jkc1swXT0wLHQubGVuZ3RoPTEsdDt2YXIgbj10LmltdWwoZSksaT1uLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxyPW4uaXN1YihpKS5pdXNocm4odGhpcy5zaGlmdCksbz1yO3JldHVybiByLmNtcCh0aGlzLm0pPj0wP289ci5pc3ViKHRoaXMubSk6ci5jbXBuKDApPDAmJihvPXIuaWFkZCh0aGlzLm0pKSxvLl9mb3JjZVJlZCh0aGlzKX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gbmV3IG8oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuPXQubXVsKGUpLGk9bi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscj1uLmlzdWIoaSkuaXVzaHJuKHRoaXMuc2hpZnQpLHM9cjtyZXR1cm4gci5jbXAodGhpcy5tKT49MD9zPXIuaXN1Yih0aGlzLm0pOnIuY21wbigwKTwwJiYocz1yLmlhZGQodGhpcy5tKSkscy5fZm9yY2VSZWQodGhpcyl9LE0ucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW1vZCh0Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0odCx0aGlzKX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpewovKiEKICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwp2YXIgaT1uKDgxKSxyPW4oMTQ2KSxvPW4oODMpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdS5UWVBFRF9BUlJBWV9TVVBQT1JUPzIxNDc0ODM2NDc6MTA3Mzc0MTgyM31mdW5jdGlvbiBhKHQsZSl7aWYocygpPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoIik7cmV0dXJuIHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odD1uZXcgVWludDhBcnJheShlKSkuX19wcm90b19fPXUucHJvdG90eXBlOihudWxsPT09dCYmKHQ9bmV3IHUoZSkpLHQubGVuZ3RoPWUpLHR9ZnVuY3Rpb24gdSh0LGUsbil7aWYoISh1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fHRoaXMgaW5zdGFuY2VvZiB1KSlyZXR1cm4gbmV3IHUodCxlLG4pO2lmKCJudW1iZXIiPT10eXBlb2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gbCh0aGlzLHQpfXJldHVybiBjKHRoaXMsdCxlLG4pfWZ1bmN0aW9uIGModCxlLG4saSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZnVuY3Rpb24odCxlLG4saSl7aWYoZS5ieXRlTGVuZ3RoLG48MHx8ZS5ieXRlTGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidvZmZzZXQnIGlzIG91dCBvZiBib3VuZHMiKTtpZihlLmJ5dGVMZW5ndGg8bisoaXx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHMiKTtlPXZvaWQgMD09PW4mJnZvaWQgMD09PWk/bmV3IFVpbnQ4QXJyYXkoZSk6dm9pZCAwPT09aT9uZXcgVWludDhBcnJheShlLG4pOm5ldyBVaW50OEFycmF5KGUsbixpKTt1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHQ9ZSkuX19wcm90b19fPXUucHJvdG90eXBlOnQ9ZCh0LGUpO3JldHVybiB0fSh0LGUsbixpKToic3RyaW5nIj09dHlwZW9mIGU/ZnVuY3Rpb24odCxlLG4peyJzdHJpbmciPT10eXBlb2YgbiYmIiIhPT1ufHwobj0idXRmOCIpO2lmKCF1LmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcignImVuY29kaW5nIiBtdXN0IGJlIGEgdmFsaWQgc3RyaW5nIGVuY29kaW5nJyk7dmFyIGk9MHxwKGUsbikscj0odD1hKHQsaSkpLndyaXRlKGUsbik7ciE9PWkmJih0PXQuc2xpY2UoMCxyKSk7cmV0dXJuIHR9KHQsZSxuKTpmdW5jdGlvbih0LGUpe2lmKHUuaXNCdWZmZXIoZSkpe3ZhciBuPTB8ZihlLmxlbmd0aCk7cmV0dXJuIDA9PT0odD1hKHQsbikpLmxlbmd0aD90OihlLmNvcHkodCwwLDAsbiksdCl9aWYoZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8Imxlbmd0aCJpbiBlKXJldHVybiJudW1iZXIiIT10eXBlb2YgZS5sZW5ndGh8fChpPWUubGVuZ3RoKSE9aT9hKHQsMCk6ZCh0LGUpO2lmKCJCdWZmZXIiPT09ZS50eXBlJiZvKGUuZGF0YSkpcmV0dXJuIGQodCxlLmRhdGEpfXZhciBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4iKX0odCxlKX1mdW5jdGlvbiBoKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJyl9ZnVuY3Rpb24gbCh0LGUpe2lmKGgoZSksdD1hKHQsZTwwPzA6MHxmKGUpKSwhdS5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgbj0wO248ZTsrK24pdFtuXT0wO3JldHVybiB0fWZ1bmN0aW9uIGQodCxlKXt2YXIgbj1lLmxlbmd0aDwwPzA6MHxmKGUubGVuZ3RoKTt0PWEodCxuKTtmb3IodmFyIGk9MDtpPG47aSs9MSl0W2ldPTI1NSZlW2ldO3JldHVybiB0fWZ1bmN0aW9uIGYodCl7aWYodD49cygpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitzKCkudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHx0fWZ1bmN0aW9uIHAodCxlKXtpZih1LmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3JiYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKXJldHVybiB0LmJ5dGVMZW5ndGg7InN0cmluZyIhPXR5cGVvZiB0JiYodD0iIit0KTt2YXIgbj10Lmxlbmd0aDtpZigwPT09bilyZXR1cm4gMDtmb3IodmFyIGk9ITE7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2Ugdm9pZCAwOnJldHVybiBXKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqbjtjYXNlImhleCI6cmV0dXJuIG4+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gcSh0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBXKHQpLmxlbmd0aDtlPSgiIitlKS50b0xvd2VyQ2FzZSgpLGk9ITB9fWZ1bmN0aW9uIG0odCxlLG4pe3ZhciBpPXRbZV07dFtlXT10W25dLHRbbl09aX1mdW5jdGlvbiBnKHQsZSxuLGkscil7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1uLG49MCk6bj4yMTQ3NDgzNjQ3P249MjE0NzQ4MzY0NzpuPC0yMTQ3NDgzNjQ4JiYobj0tMjE0NzQ4MzY0OCksbj0rbixpc05hTihuKSYmKG49cj8wOnQubGVuZ3RoLTEpLG48MCYmKG49dC5sZW5ndGgrbiksbj49dC5sZW5ndGgpe2lmKHIpcmV0dXJuLTE7bj10Lmxlbmd0aC0xfWVsc2UgaWYobjwwKXtpZighcilyZXR1cm4tMTtuPTB9aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT11LmZyb20oZSxpKSksdS5pc0J1ZmZlcihlKSlyZXR1cm4gMD09PWUubGVuZ3RoPy0xOnYodCxlLG4saSxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGUmPTI1NSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP3I/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQsZSxuKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHQsZSxuKTp2KHQsW2VdLG4saSxyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiB2KHQsZSxuLGkscil7dmFyIG8scz0xLGE9dC5sZW5ndGgsdT1lLmxlbmd0aDtpZih2b2lkIDAhPT1pJiYoInVjczIiPT09KGk9U3RyaW5nKGkpLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09aXx8InV0ZjE2bGUiPT09aXx8InV0Zi0xNmxlIj09PWkpKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO3M9MixhLz0yLHUvPTIsbi89Mn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDE9PT1zP3RbZV06dC5yZWFkVUludDE2QkUoZSpzKX1pZihyKXt2YXIgaD0tMTtmb3Iobz1uO288YTtvKyspaWYoYyh0LG8pPT09YyhlLC0xPT09aD8wOm8taCkpe2lmKC0xPT09aCYmKGg9byksby1oKzE9PT11KXJldHVybiBoKnN9ZWxzZS0xIT09aCYmKG8tPW8taCksaD0tMX1lbHNlIGZvcihuK3U+YSYmKG49YS11KSxvPW47bz49MDtvLS0pe2Zvcih2YXIgbD0hMCxkPTA7ZDx1O2QrKylpZihjKHQsbytkKSE9PWMoZSxkKSl7bD0hMTticmVha31pZihsKXJldHVybiBvfXJldHVybi0xfWZ1bmN0aW9uIGIodCxlLG4saSl7bj1OdW1iZXIobil8fDA7dmFyIHI9dC5sZW5ndGgtbjtpPyhpPU51bWJlcihpKSk+ciYmKGk9cik6aT1yO3ZhciBvPWUubGVuZ3RoO2lmKG8lMiE9MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTtpPm8vMiYmKGk9by8yKTtmb3IodmFyIHM9MDtzPGk7KytzKXt2YXIgYT1wYXJzZUludChlLnN1YnN0cigyKnMsMiksMTYpO2lmKGlzTmFOKGEpKXJldHVybiBzO3RbbitzXT1hfXJldHVybiBzfWZ1bmN0aW9uIHkodCxlLG4saSl7cmV0dXJuIEgoVyhlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBfKHQsZSxuLGkpe3JldHVybiBIKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDsrK24pZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQobikpO3JldHVybiBlfShlKSx0LG4saSl9ZnVuY3Rpb24gdyh0LGUsbixpKXtyZXR1cm4gXyh0LGUsbixpKX1mdW5jdGlvbiB4KHQsZSxuLGkpe3JldHVybiBIKHEoZSksdCxuLGkpfWZ1bmN0aW9uIE0odCxlLG4saSl7cmV0dXJuIEgoZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyLG89W10scz0wO3M8dC5sZW5ndGgmJiEoKGUtPTIpPDApOysrcyluPXQuY2hhckNvZGVBdChzKSxpPW4+Pjgscj1uJTI1NixvLnB1c2gociksby5wdXNoKGkpO3JldHVybiBvfShlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBTKHQsZSxuKXtyZXR1cm4gMD09PWUmJm49PT10Lmxlbmd0aD9pLmZyb21CeXRlQXJyYXkodCk6aS5mcm9tQnl0ZUFycmF5KHQuc2xpY2UoZSxuKSl9ZnVuY3Rpb24gRSh0LGUsbil7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIGk9W10scj1lO3I8bjspe3ZhciBvLHMsYSx1LGM9dFtyXSxoPW51bGwsbD1jPjIzOT80OmM+MjIzPzM6Yz4xOTE/MjoxO2lmKHIrbDw9bilzd2l0Y2gobCl7Y2FzZSAxOmM8MTI4JiYoaD1jKTticmVhaztjYXNlIDI6MTI4PT0oMTkyJihvPXRbcisxXSkpJiYodT0oMzEmYyk8PDZ8NjMmbyk+MTI3JiYoaD11KTticmVhaztjYXNlIDM6bz10W3IrMV0scz10W3IrMl0sMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJih1PSgxNSZjKTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjIwNDcmJih1PDU1Mjk2fHx1PjU3MzQzKSYmKGg9dSk7YnJlYWs7Y2FzZSA0Om89dFtyKzFdLHM9dFtyKzJdLGE9dFtyKzNdLDEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYxMjg9PSgxOTImYSkmJih1PSgxNSZjKTw8MTh8KDYzJm8pPDwxMnwoNjMmcyk8PDZ8NjMmYSk+NjU1MzUmJnU8MTExNDExMiYmKGg9dSl9bnVsbD09PWg/KGg9NjU1MzMsbD0xKTpoPjY1NTM1JiYoaC09NjU1MzYsaS5wdXNoKGg+Pj4xMCYxMDIzfDU1Mjk2KSxoPTU2MzIwfDEwMjMmaCksaS5wdXNoKGgpLHIrPWx9cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8PUEpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQpO3ZhciBuPSIiLGk9MDtmb3IoO2k8ZTspbis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdC5zbGljZShpLGkrPUEpKTtyZXR1cm4gbn0oaSl9ZS5CdWZmZXI9dSxlLlNsb3dCdWZmZXI9ZnVuY3Rpb24odCl7K3QhPXQmJih0PTApO3JldHVybiB1LmFsbG9jKCt0KX0sZS5JTlNQRUNUX01BWF9CWVRFUz01MCx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ9dm9pZCAwIT09dC5UWVBFRF9BUlJBWV9TVVBQT1JUP3QuVFlQRURfQVJSQVlfU1VQUE9SVDpmdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PXQuZm9vKCkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YmFycmF5JiYwPT09dC5zdWJhcnJheSgxLDEpLmJ5dGVMZW5ndGh9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGUua01heExlbmd0aD1zKCksdS5wb29sU2l6ZT04MTkyLHUuX2F1Z21lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19fPXUucHJvdG90eXBlLHR9LHUuZnJvbT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMobnVsbCx0LGUsbil9LHUuVFlQRURfQVJSQVlfU1VQUE9SVCYmKHUucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSx1Ll9fcHJvdG9fXz1VaW50OEFycmF5LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuc3BlY2llcyYmdVtTeW1ib2wuc3BlY2llc109PT11JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodSxTeW1ib2wuc3BlY2llcyx7dmFsdWU6bnVsbCxjb25maWd1cmFibGU6ITB9KSksdS5hbGxvYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBoKGUpLGU8PTA/YSh0LGUpOnZvaWQgMCE9PW4/InN0cmluZyI9PXR5cGVvZiBpP2EodCxlKS5maWxsKG4saSk6YSh0LGUpLmZpbGwobik6YSh0LGUpfShudWxsLHQsZSxuKX0sdS5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX0sdS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7aWYoIXUuaXNCdWZmZXIodCl8fCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZih0PT09ZSlyZXR1cm4gMDtmb3IodmFyIG49dC5sZW5ndGgsaT1lLmxlbmd0aCxyPTAsbz1NYXRoLm1pbihuLGkpO3I8bzsrK3IpaWYodFtyXSE9PWVbcl0pe249dFtyXSxpPWVbcl07YnJlYWt9cmV0dXJuIG48aT8tMTppPG4/MTowfSx1LmlzRW5jb2Rpbmc9ZnVuY3Rpb24odCl7c3dpdGNoKFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHUuY29uY2F0PWZ1bmN0aW9uKHQsZSl7aWYoIW8odCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdS5hbGxvYygwKTt2YXIgbjtpZih2b2lkIDA9PT1lKWZvcihlPTAsbj0wO248dC5sZW5ndGg7KytuKWUrPXRbbl0ubGVuZ3RoO3ZhciBpPXUuYWxsb2NVbnNhZmUoZSkscj0wO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBzPXRbbl07aWYoIXUuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO3MuY29weShpLHIpLHIrPXMubGVuZ3RofXJldHVybiBpfSx1LmJ5dGVMZW5ndGg9cCx1LnByb3RvdHlwZS5faXNCdWZmZXI9ITAsdS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz0yKW0odGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9NCltKHRoaXMsZSxlKzMpLG0odGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz04KW0odGhpcyxlLGUrNyksbSh0aGlzLGUrMSxlKzYpLG0odGhpcyxlKzIsZSs1KSxtKHRoaXMsZSszLGUrNCk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9MHx0aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/RSh0aGlzLDAsdCk6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPSExO2lmKCh2b2lkIDA9PT1lfHxlPDApJiYoZT0wKSxlPnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1ufHxuPnRoaXMubGVuZ3RoKSYmKG49dGhpcy5sZW5ndGgpLG48PTApcmV0dXJuIiI7aWYoKG4+Pj49MCk8PShlPj4+PTApKXJldHVybiIiO2Zvcih0fHwodD0idXRmOCIpOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gTyh0aGlzLGUsbik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gRSh0aGlzLGUsbik7Y2FzZSJhc2NpaSI6cmV0dXJuIEModGhpcyxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGsodGhpcyxlLG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUyh0aGlzLGUsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBQKHRoaXMsZSxuKTtkZWZhdWx0OmlmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGk9ITB9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10fHwwPT09dS5jb21wYXJlKHRoaXMsdCl9LHUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixuPWUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJih0PXRoaXMudG9TdHJpbmcoImhleCIsMCxuKS5tYXRjaCgvLnsyfS9nKS5qb2luKCIgIiksdGhpcy5sZW5ndGg+biYmKHQrPSIgLi4uICIpKSwiPEJ1ZmZlciAiK3QrIj4ifSx1LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXQ/dC5sZW5ndGg6MCksdm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9dGhpcy5sZW5ndGgpLGU8MHx8bj50Lmxlbmd0aHx8aTwwfHxyPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihpPj1yJiZlPj1uKXJldHVybiAwO2lmKGk+PXIpcmV0dXJuLTE7aWYoZT49bilyZXR1cm4gMTtpZih0aGlzPT09dClyZXR1cm4gMDtmb3IodmFyIG89KHI+Pj49MCktKGk+Pj49MCkscz0obj4+Pj0wKS0oZT4+Pj0wKSxhPU1hdGgubWluKG8scyksYz10aGlzLnNsaWNlKGksciksaD10LnNsaWNlKGUsbiksbD0wO2w8YTsrK2wpaWYoY1tsXSE9PWhbbF0pe289Y1tsXSxzPWhbbF07YnJlYWt9cmV0dXJuIG88cz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLG4pfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZyh0aGlzLHQsZSxuLCEwKX0sdS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBnKHRoaXMsdCxlLG4sITEpfSx1LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixpKXtpZih2b2lkIDA9PT1lKWk9InV0ZjgiLG49dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09biYmInN0cmluZyI9PXR5cGVvZiBlKWk9ZSxuPXRoaXMubGVuZ3RoLGU9MDtlbHNle2lmKCFpc0Zpbml0ZShlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7ZXw9MCxpc0Zpbml0ZShuKT8obnw9MCx2b2lkIDA9PT1pJiYoaT0idXRmOCIpKTooaT1uLG49dm9pZCAwKX12YXIgcj10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1ufHxuPnIpJiYobj1yKSx0Lmxlbmd0aD4wJiYobjwwfHxlPDApfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2l8fChpPSJ1dGY4Iik7Zm9yKHZhciBvPSExOzspc3dpdGNoKGkpe2Nhc2UiaGV4IjpyZXR1cm4gYih0aGlzLHQsZSxuKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB5KHRoaXMsdCxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBfKHRoaXMsdCxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHcodGhpcyx0LGUsbik7Y2FzZSJiYXNlNjQiOnJldHVybiB4KHRoaXMsdCxlLG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gTSh0aGlzLHQsZSxuKTtkZWZhdWx0OmlmKG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitpKTtpPSgiIitpKS50b0xvd2VyQ2FzZSgpLG89ITB9fSx1LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBBPTQwOTY7ZnVuY3Rpb24gQyh0LGUsbil7dmFyIGk9IiI7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIHI9ZTtyPG47KytyKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIGsodCxlLG4pe3ZhciBpPSIiO249TWF0aC5taW4odC5sZW5ndGgsbik7Zm9yKHZhciByPWU7cjxuOysrcilpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIE8odCxlLG4pe3ZhciBpPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFufHxuPDB8fG4+aSkmJihuPWkpO2Zvcih2YXIgcj0iIixvPWU7bzxuOysrbylyKz1OKHRbb10pO3JldHVybiByfWZ1bmN0aW9uIFAodCxlLG4pe2Zvcih2YXIgaT10LnNsaWNlKGUsbikscj0iIixvPTA7bzxpLmxlbmd0aDtvKz0yKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaVtvXSsyNTYqaVtvKzFdKTtyZXR1cm4gcn1mdW5jdGlvbiBUKHQsZSxuKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBqKHQsZSxuLGkscixvKXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5yfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKG4raT50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUsbixpKXtlPDAmJihlPTY1NTM1K2UrMSk7Zm9yKHZhciByPTAsbz1NYXRoLm1pbih0Lmxlbmd0aC1uLDIpO3I8bzsrK3IpdFtuK3JdPShlJjI1NTw8OCooaT9yOjEtcikpPj4+OCooaT9yOjEtcil9ZnVuY3Rpb24gTCh0LGUsbixpKXtlPDAmJihlPTQyOTQ5NjcyOTUrZSsxKTtmb3IodmFyIHI9MCxvPU1hdGgubWluKHQubGVuZ3RoLW4sNCk7cjxvOysrcil0W24rcl09ZT4+PjgqKGk/cjozLXIpJjI1NX1mdW5jdGlvbiBCKHQsZSxuLGkscixvKXtpZihuK2k+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKG48MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRCh0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDQpLHIud3JpdGUodCxlLG4saSwyMyw0KSxuKzR9ZnVuY3Rpb24gUih0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDgpLHIud3JpdGUodCxlLG4saSw1Miw4KSxuKzh9dS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMubGVuZ3RoO2lmKCh0PX5+dCk8MD8odCs9aSk8MCYmKHQ9MCk6dD5pJiYodD1pKSwoZT12b2lkIDA9PT1lP2k6fn5lKTwwPyhlKz1pKTwwJiYoZT0wKTplPmkmJihlPWkpLGU8dCYmKGU9dCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUKShuPXRoaXMuc3ViYXJyYXkodCxlKSkuX19wcm90b19fPXUucHJvdG90eXBlO2Vsc2V7dmFyIHI9ZS10O249bmV3IHUocix2b2lkIDApO2Zvcih2YXIgbz0wO288cjsrK28pbltvXT10aGlzW28rdF19cmV0dXJuIG59LHUucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLG4pe3R8PTAsZXw9MCxufHxUKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPXRoaXNbdF0scj0xLG89MDsrK288ZSYmKHIqPTI1Nik7KWkrPXRoaXNbdCtvXSpyO3JldHVybiBpfSx1LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3QrLS1lXSxyPTE7ZT4wJiYocio9MjU2KTspaSs9dGhpc1t0Ky0tZV0qcjtyZXR1cm4gaX0sdS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx1LnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDh8dGhpc1t0KzFdfSx1LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3RdLHI9MSxvPTA7KytvPGUmJihyKj0yNTYpOylpKz10aGlzW3Qrb10qcjtyZXR1cm4gaT49KHIqPTEyOCkmJihpLT1NYXRoLnBvdygyLDgqZSkpLGl9LHUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0LGUsbil7dHw9MCxlfD0wLG58fFQodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIGk9ZSxyPTEsbz10aGlzW3QrLS1pXTtpPjAmJihyKj0yNTYpOylvKz10aGlzW3QrLS1pXSpyO3JldHVybiBvPj0ocio9MTI4KSYmKG8tPU1hdGgucG93KDIsOCplKSksb30sdS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe2V8fFQodCwyLHRoaXMubGVuZ3RoKTt2YXIgbj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmbj80Mjk0OTAxNzYwfG46bn0sdS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXtlfHxUKHQsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LHUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LHUucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDIzLDQpfSx1LnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksci5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw4LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDUyLDgpfSx1LnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDgsdGhpcy5sZW5ndGgpLHIucmVhZCh0aGlzLHQsITEsNTIsOCl9LHUucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxuLGkpeyh0PSt0LGV8PTAsbnw9MCxpKXx8aih0aGlzLHQsZSxuLE1hdGgucG93KDIsOCpuKS0xLDApO3ZhciByPTEsbz0wO2Zvcih0aGlzW2VdPTI1NSZ0OysrbzxuJiYocio9MjU2KTspdGhpc1tlK29dPXQvciYyNTU7cmV0dXJuIGUrbn0sdS5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odCxlLG4saSl7KHQ9K3QsZXw9MCxufD0wLGkpfHxqKHRoaXMsdCxlLG4sTWF0aC5wb3coMiw4Km4pLTEsMCk7dmFyIHI9bi0xLG89MTtmb3IodGhpc1tlK3JdPTI1NSZ0Oy0tcj49MCYmKG8qPTI1Nik7KXRoaXNbZStyXT10L28mMjU1O3JldHVybiBlK259LHUucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDI1NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHRoaXNbZV09MjU1JnQsZSsxfSx1LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsMiw2NTUzNSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwyLDY1NTM1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQpOkkodGhpcyx0LGUsITEpLGUrMn0sdS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCk6TCh0aGlzLHQsZSwhMCksZSs0fSx1LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0KTpMKHRoaXMsdCxlLCExKSxlKzR9LHUucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odCxlLG4saSl7aWYodD0rdCxlfD0wLCFpKXt2YXIgcj1NYXRoLnBvdygyLDgqbi0xKTtqKHRoaXMsdCxlLG4sci0xLC1yKX12YXIgbz0wLHM9MSxhPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytvPG4mJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28tMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9K3QsZXw9MCwhaSl7dmFyIHI9TWF0aC5wb3coMiw4Km4tMSk7aih0aGlzLHQsZSxuLHItMSwtcil9dmFyIG89bi0xLHM9MSxhPTA7Zm9yKHRoaXNbZStvXT0yNTUmdDstLW8+PTAmJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28rMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDEyNywtMTI4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0KTpJKHRoaXMsdCxlLCExKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQpOkwodGhpcyx0LGUsITApLGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0PDAmJih0PTQyOTQ5NjcyOTUrdCsxKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCk6TCh0aGlzLHQsZSwhMSksZSs0fSx1LnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCEwLG4pfSx1LnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCExLG4pfSx1LnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUih0aGlzLHQsZSwhMCxuKX0sdS5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIFIodGhpcyx0LGUsITEsbil9LHUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlLG4saSl7aWYobnx8KG49MCksaXx8MD09PWl8fChpPXRoaXMubGVuZ3RoKSxlPj10Lmxlbmd0aCYmKGU9dC5sZW5ndGgpLGV8fChlPTApLGk+MCYmaTxuJiYoaT1uKSxpPT09bilyZXR1cm4gMDtpZigwPT09dC5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihuPDB8fG4+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoaTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO2k+dGhpcy5sZW5ndGgmJihpPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPGktbiYmKGk9dC5sZW5ndGgtZStuKTt2YXIgcixvPWktbjtpZih0aGlzPT09dCYmbjxlJiZlPGkpZm9yKHI9by0xO3I+PTA7LS1yKXRbcitlXT10aGlzW3Irbl07ZWxzZSBpZihvPDFlM3x8IXUuVFlQRURfQVJSQVlfU1VQUE9SVClmb3Iocj0wO3I8bzsrK3IpdFtyK2VdPXRoaXNbcituXTtlbHNlIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHQsdGhpcy5zdWJhcnJheShuLG4rbyksZSk7cmV0dXJuIG99LHUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLG4saSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KGk9ZSxlPTAsbj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiBuJiYoaT1uLG49dGhpcy5sZW5ndGgpLDE9PT10Lmxlbmd0aCl7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3I8MjU2JiYodD1yKX1pZih2b2lkIDAhPT1pJiYic3RyaW5nIiE9dHlwZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmIXUuaXNFbmNvZGluZyhpKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2kpfWVsc2UibnVtYmVyIj09dHlwZW9mIHQmJih0Jj0yNTUpO2lmKGU8MHx8dGhpcy5sZW5ndGg8ZXx8dGhpcy5sZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobjw9ZSlyZXR1cm4gdGhpczt2YXIgbztpZihlPj4+PTAsbj12b2lkIDA9PT1uP3RoaXMubGVuZ3RoOm4+Pj4wLHR8fCh0PTApLCJudW1iZXIiPT10eXBlb2YgdClmb3Iobz1lO288bjsrK28pdGhpc1tvXT10O2Vsc2V7dmFyIHM9dS5pc0J1ZmZlcih0KT90OlcobmV3IHUodCxpKS50b1N0cmluZygpKSxhPXMubGVuZ3RoO2ZvcihvPTA7bzxuLWU7KytvKXRoaXNbbytlXT1zW28lYV19cmV0dXJuIHRoaXN9O3ZhciB6PS9bXitcLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIE4odCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFcodCxlKXt2YXIgbjtlPWV8fDEvMDtmb3IodmFyIGk9dC5sZW5ndGgscj1udWxsLG89W10scz0wO3M8aTsrK3Mpe2lmKChuPXQuY2hhckNvZGVBdChzKSk+NTUyOTUmJm48NTczNDQpe2lmKCFyKXtpZihuPjU2MzE5KXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYocysxPT09aSl7KGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfXI9bjtjb250aW51ZX1pZihuPDU2MzIwKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSkscj1uO2NvbnRpbnVlfW49NjU1MzYrKHItNTUyOTY8PDEwfG4tNTYzMjApfWVsc2UgciYmKGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKHI9bnVsbCxuPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigoZS09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKG48MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztvLnB1c2gobj4+MTh8MjQwLG4+PjEyJjYzfDEyOCxuPj42JjYzfDEyOCw2MyZufDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIHEodCl7cmV0dXJuIGkudG9CeXRlQXJyYXkoZnVuY3Rpb24odCl7aWYoKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0odCkucmVwbGFjZSh6LCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT0wOyl0Kz0iPSI7cmV0dXJuIHR9KHQpKX1mdW5jdGlvbiBIKHQsZSxuLGkpe2Zvcih2YXIgcj0wO3I8aSYmIShyK24+PWUubGVuZ3RofHxyPj10Lmxlbmd0aCk7KytyKWVbcituXT10W3JdO3JldHVybiByfX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7dmFyIHIsbz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1yKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMiksYT1uKDMyMCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy50eXBlPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNDb25mbGF0YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiExfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNvbmZsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiExfSx0fSgpO2UuTWVzc2FnZT11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBvKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0NvbmZsYXRhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY29uZmxhdGU9ZnVuY3Rpb24odCl7cmV0dXJuITB9LGV9KHUpO2UuQ29uZmxhdGFibGVNZXNzYWdlPWMsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPW8uZ2V0KHQpO24mJjAhPT1uLmxlbmd0aD9zLmV2ZXJ5KHMucmV0cm8obiksZnVuY3Rpb24obil7cmV0dXJuIW58fGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0hMDt0cnl7aT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGUsbik6dC5tZXNzYWdlSG9vayhlLG4pfWNhdGNoKHQpe2ModCl9cmV0dXJuIGl9KG4sdCxlKX0pJiZwKHQsZSk6cCh0LGUpfWUuc2VuZE1lc3NhZ2U9bixlLnBvc3RNZXNzYWdlPWZ1bmN0aW9uKHQsZSl7ZS5pc0NvbmZsYXRhYmxlJiZzLnNvbWUocixmdW5jdGlvbihuKXtyZXR1cm4gbi5oYW5kbGVyPT09dCYmISFuLm1zZyYmbi5tc2cudHlwZT09PWUudHlwZSYmISFuLm1zZy5pc0NvbmZsYXRhYmxlJiZuLm1zZy5jb25mbGF0ZShlKX0pfHxtKHQsZSl9LGUuaW5zdGFsbE1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7biYmLTEhPT1uLmluZGV4T2YoZSl8fChuP24ucHVzaChlKTpvLnNldCh0LFtlXSkpfSxlLnJlbW92ZU1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7aWYobil7dmFyIGk9bi5pbmRleE9mKGUpOy0xIT09aSYmKG5baV09bnVsbCx2KG4pKX19LGUuY2xlYXJEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPW8uZ2V0KHQpO2UmJmUubGVuZ3RoPjAmJihzLkFycmF5RXh0LmZpbGwoZSxudWxsKSx2KGUpKSxzLmVhY2gocixmdW5jdGlvbihlKXtlLmhhbmRsZXI9PT10JiYoZS5oYW5kbGVyPW51bGwsZS5tc2c9bnVsbCl9KX0sZS5mbHVzaD1mdW5jdGlvbigpe2x8fDA9PT1ofHwoZihoKSxsPSEwLGcoKSxsPSExKX0sZS5nZXRFeGNlcHRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGUuc2V0RXhjZXB0aW9uSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1jO3JldHVybiBjPXQsZX07dmFyIHI9bmV3IGEuTGlua2VkTGlzdCxvPW5ldyBXZWFrTWFwLHU9bmV3IFNldCxjPWZ1bmN0aW9uKHQpe2NvbnNvbGUuZXJyb3IodCl9LGg9MCxsPSExLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6dCxmPSJmdW5jdGlvbiI9PXR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZT9jYW5jZWxBbmltYXRpb25GcmFtZTppO2Z1bmN0aW9uIHAodCxlKXt0cnl7dC5wcm9jZXNzTWVzc2FnZShlKX1jYXRjaCh0KXtjKHQpfX1mdW5jdGlvbiBtKHQsZSl7ci5hZGRMYXN0KHtoYW5kbGVyOnQsbXNnOmV9KSwwPT09aCYmKGg9ZChnKSl9ZnVuY3Rpb24gZygpe2lmKGg9MCwhci5pc0VtcHR5KXt2YXIgdD17aGFuZGxlcjpudWxsLG1zZzpudWxsfTtmb3Ioci5hZGRMYXN0KHQpOzspe3ZhciBlPXIucmVtb3ZlRmlyc3QoKTtpZihlPT09dClyZXR1cm47ZS5oYW5kbGVyJiZlLm1zZyYmbihlLmhhbmRsZXIsZS5tc2cpfX19ZnVuY3Rpb24gdih0KXswPT09dS5zaXplJiZkKGIpLHUuYWRkKHQpfWZ1bmN0aW9uIGIoKXt1LmZvckVhY2goeSksdS5jbGVhcigpfWZ1bmN0aW9uIHkodCl7cy5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LF8pfWZ1bmN0aW9uIF8odCl7cmV0dXJuIG51bGw9PT10fX0oZS5NZXNzYWdlTG9vcHx8KGUuTWVzc2FnZUxvb3A9e30pKX0pLmNhbGwodGhpcyxuKDQ0KS5zZXRJbW1lZGlhdGUsbig0NCkuY2xlYXJJbW1lZGlhdGUpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsbil7dmFyIGk7IWZ1bmN0aW9uKCl7dmFyIHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmJiZzZWxmfHwib2JqZWN0Ij09dHlwZW9mIHQmJnQuZ2xvYmFsPT09dCYmdHx8dGhpc3x8e30sbz1yLl8scz1BcnJheS5wcm90b3R5cGUsYT1PYmplY3QucHJvdG90eXBlLHU9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2w/U3ltYm9sLnByb3RvdHlwZTpudWxsLGM9cy5wdXNoLGg9cy5zbGljZSxsPWEudG9TdHJpbmcsZD1hLmhhc093blByb3BlcnR5LGY9QXJyYXkuaXNBcnJheSxwPU9iamVjdC5rZXlzLG09T2JqZWN0LmNyZWF0ZSxnPWZ1bmN0aW9uKCl7fSx2PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygdj90OnRoaXMgaW5zdGFuY2VvZiB2P3ZvaWQodGhpcy5fd3JhcHBlZD10KTpuZXcgdih0KX07ZS5ub2RlVHlwZT9yLl89djooIW4ubm9kZVR5cGUmJm4uZXhwb3J0cyYmKGU9bi5leHBvcnRzPXYpLGUuXz12KSx2LlZFUlNJT049IjEuOS4xIjt2YXIgYix5PWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1lKXJldHVybiB0O3N3aXRjaChudWxsPT1uPzM6bil7Y2FzZSAxOnJldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiB0LmNhbGwoZSxuLGkscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24obixpLHIsbyl7cmV0dXJuIHQuY2FsbChlLG4saSxyLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fSxfPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdi5pdGVyYXRlZSE9PWI/di5pdGVyYXRlZSh0LGUpOm51bGw9PXQ/di5pZGVudGl0eTp2LmlzRnVuY3Rpb24odCk/eSh0LGUsbik6di5pc09iamVjdCh0KSYmIXYuaXNBcnJheSh0KT92Lm1hdGNoZXIodCk6di5wcm9wZXJ0eSh0KX07di5pdGVyYXRlZT1iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF8odCxlLDEvMCl9O3ZhciB3PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9bnVsbD09ZT90Lmxlbmd0aC0xOitlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPU1hdGgubWF4KGFyZ3VtZW50cy5sZW5ndGgtZSwwKSxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09YXJndW1lbnRzW3IrZV07c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHRoaXMsaSk7Y2FzZSAxOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0saSk7Y2FzZSAyOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdLGkpfXZhciBvPUFycmF5KGUrMSk7Zm9yKHI9MDtyPGU7cisrKW9bcl09YXJndW1lbnRzW3JdO3JldHVybiBvW2VdPWksdC5hcHBseSh0aGlzLG8pfX0seD1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm57fTtpZihtKXJldHVybiBtKHQpO2cucHJvdG90eXBlPXQ7dmFyIGU9bmV3IGc7cmV0dXJuIGcucHJvdG90eXBlPW51bGwsZX0sTT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxTPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJmQuY2FsbCh0LGUpfSxFPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXtpZihudWxsPT10KXJldHVybjt0PXRbZVtpXV19cmV0dXJuIG4/dDp2b2lkIDB9LEE9TWF0aC5wb3coMiw1MyktMSxDPU0oImxlbmd0aCIpLGs9ZnVuY3Rpb24odCl7dmFyIGU9Qyh0KTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJmU8PUF9O3YuZWFjaD12LmZvckVhY2g9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7aWYoZT15KGUsbiksayh0KSlmb3IoaT0wLHI9dC5sZW5ndGg7aTxyO2krKyllKHRbaV0saSx0KTtlbHNle3ZhciBvPXYua2V5cyh0KTtmb3IoaT0wLHI9by5sZW5ndGg7aTxyO2krKyllKHRbb1tpXV0sb1tpXSx0KX1yZXR1cm4gdH0sdi5tYXA9di5jb2xsZWN0PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz1BcnJheShyKSxzPTA7czxyO3MrKyl7dmFyIGE9aT9pW3NdOnM7b1tzXT1lKHRbYV0sYSx0KX1yZXR1cm4gb307dmFyIE89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+PTM7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPSFrKGUpJiZ2LmtleXMoZSkscz0ob3x8ZSkubGVuZ3RoLGE9dD4wPzA6cy0xO2ZvcihyfHwoaT1lW28/b1thXTphXSxhKz10KTthPj0wJiZhPHM7YSs9dCl7dmFyIHU9bz9vW2FdOmE7aT1uKGksZVt1XSx1LGUpfXJldHVybiBpfShlLHkobixyLDQpLGksbyl9fTt2LnJlZHVjZT12LmZvbGRsPXYuaW5qZWN0PU8oMSksdi5yZWR1Y2VSaWdodD12LmZvbGRyPU8oLTEpLHYuZmluZD12LmRldGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9KGsodCk/di5maW5kSW5kZXg6di5maW5kS2V5KSh0LGUsbik7aWYodm9pZCAwIT09aSYmLTEhPT1pKXJldHVybiB0W2ldfSx2LmZpbHRlcj12LnNlbGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9W107cmV0dXJuIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixyKXtlKHQsbixyKSYmaS5wdXNoKHQpfSksaX0sdi5yZWplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2LmZpbHRlcih0LHYubmVnYXRlKF8oZSkpLG4pfSx2LmV2ZXJ5PXYuYWxsPWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKCFlKHRbc10scyx0KSlyZXR1cm4hMX1yZXR1cm4hMH0sdi5zb21lPXYuYW55PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKGUodFtzXSxzLHQpKXJldHVybiEwfXJldHVybiExfSx2LmNvbnRhaW5zPXYuaW5jbHVkZXM9di5pbmNsdWRlPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksKCJudW1iZXIiIT10eXBlb2Ygbnx8aSkmJihuPTApLHYuaW5kZXhPZih0LGUsbik+PTB9LHYuaW52b2tlPXcoZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7cmV0dXJuIHYuaXNGdW5jdGlvbihlKT9yPWU6di5pc0FycmF5KGUpJiYoaT1lLnNsaWNlKDAsLTEpLGU9ZVtlLmxlbmd0aC0xXSksdi5tYXAodCxmdW5jdGlvbih0KXt2YXIgbz1yO2lmKCFvKXtpZihpJiZpLmxlbmd0aCYmKHQ9RSh0LGkpKSxudWxsPT10KXJldHVybjtvPXRbZV19cmV0dXJuIG51bGw9PW8/bzpvLmFwcGx5KHQsbil9KX0pLHYucGx1Y2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdi5tYXAodCx2LnByb3BlcnR5KGUpKX0sdi53aGVyZT1mdW5jdGlvbih0LGUpe3JldHVybiB2LmZpbHRlcih0LHYubWF0Y2hlcihlKSl9LHYuZmluZFdoZXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZmluZCh0LHYubWF0Y2hlcihlKSl9LHYubWF4PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89LTEvMCxzPS0xLzA7aWYobnVsbD09ZXx8Im51bWJlciI9PXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIHRbMF0mJm51bGwhPXQpZm9yKHZhciBhPTAsdT0odD1rKHQpP3Q6di52YWx1ZXModCkpLmxlbmd0aDthPHU7YSsrKW51bGwhPShpPXRbYV0pJiZpPm8mJihvPWkpO2Vsc2UgZT1fKGUsbiksdi5lYWNoKHQsZnVuY3Rpb24odCxuLGkpeygocj1lKHQsbixpKSk+c3x8cj09PS0xLzAmJm89PT0tMS8wKSYmKG89dCxzPXIpfSk7cmV0dXJuIG99LHYubWluPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MS8wLHM9MS8wO2lmKG51bGw9PWV8fCJudW1iZXIiPT10eXBlb2YgZSYmIm9iamVjdCIhPXR5cGVvZiB0WzBdJiZudWxsIT10KWZvcih2YXIgYT0wLHU9KHQ9ayh0KT90OnYudmFsdWVzKHQpKS5sZW5ndGg7YTx1O2ErKyludWxsIT0oaT10W2FdKSYmaTxvJiYobz1pKTtlbHNlIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixpKXsoKHI9ZSh0LG4saSkpPHN8fHI9PT0xLzAmJm89PT0xLzApJiYobz10LHM9cil9KTtyZXR1cm4gb30sdi5zaHVmZmxlPWZ1bmN0aW9uKHQpe3JldHVybiB2LnNhbXBsZSh0LDEvMCl9LHYuc2FtcGxlPWZ1bmN0aW9uKHQsZSxuKXtpZihudWxsPT1lfHxuKXJldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksdFt2LnJhbmRvbSh0Lmxlbmd0aC0xKV07dmFyIGk9ayh0KT92LmNsb25lKHQpOnYudmFsdWVzKHQpLHI9QyhpKTtlPU1hdGgubWF4KE1hdGgubWluKGUsciksMCk7Zm9yKHZhciBvPXItMSxzPTA7czxlO3MrKyl7dmFyIGE9di5yYW5kb20ocyxvKSx1PWlbc107aVtzXT1pW2FdLGlbYV09dX1yZXR1cm4gaS5zbGljZSgwLGUpfSx2LnNvcnRCeT1mdW5jdGlvbih0LGUsbil7dmFyIGk9MDtyZXR1cm4gZT1fKGUsbiksdi5wbHVjayh2Lm1hcCh0LGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57dmFsdWU6dCxpbmRleDppKyssY3JpdGVyaWE6ZSh0LG4scil9fSkuc29ydChmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JpdGVyaWEsaT1lLmNyaXRlcmlhO2lmKG4hPT1pKXtpZihuPml8fHZvaWQgMD09PW4pcmV0dXJuIDE7aWYobjxpfHx2b2lkIDA9PT1pKXJldHVybi0xfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSwidmFsdWUiKX07dmFyIFA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3ZhciBvPWU/W1tdLFtdXTp7fTtyZXR1cm4gaT1fKGksciksdi5lYWNoKG4sZnVuY3Rpb24oZSxyKXt2YXIgcz1pKGUscixuKTt0KG8sZSxzKX0pLG99fTt2Lmdyb3VwQnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0ucHVzaChlKTp0W25dPVtlXX0pLHYuaW5kZXhCeT1QKGZ1bmN0aW9uKHQsZSxuKXt0W25dPWV9KSx2LmNvdW50Qnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0rKzp0W25dPTF9KTt2YXIgVD0vW15cdWQ4MDAtXHVkZmZmXXxbXHVkODAwLVx1ZGJmZl1bXHVkYzAwLVx1ZGZmZl18W1x1ZDgwMC1cdWRmZmZdL2c7di50b0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3YuaXNBcnJheSh0KT9oLmNhbGwodCk6di5pc1N0cmluZyh0KT90Lm1hdGNoKFQpOmsodCk/di5tYXAodCx2LmlkZW50aXR5KTp2LnZhbHVlcyh0KTpbXX0sdi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PzA6ayh0KT90Lmxlbmd0aDp2LmtleXModCkubGVuZ3RofSx2LnBhcnRpdGlvbj1QKGZ1bmN0aW9uKHQsZSxuKXt0W24/MDoxXS5wdXNoKGUpfSwhMCksdi5maXJzdD12LmhlYWQ9di50YWtlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09dHx8dC5sZW5ndGg8MT9udWxsPT1lP3ZvaWQgMDpbXTpudWxsPT1lfHxuP3RbMF06di5pbml0aWFsKHQsdC5sZW5ndGgtZSl9LHYuaW5pdGlhbD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LDAsTWF0aC5tYXgoMCx0Lmxlbmd0aC0obnVsbD09ZXx8bj8xOmUpKSl9LHYubGFzdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PXR8fHQubGVuZ3RoPDE/bnVsbD09ZT92b2lkIDA6W106bnVsbD09ZXx8bj90W3QubGVuZ3RoLTFdOnYucmVzdCh0LE1hdGgubWF4KDAsdC5sZW5ndGgtZSkpfSx2LnJlc3Q9di50YWlsPXYuZHJvcD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LG51bGw9PWV8fG4/MTplKX0sdi5jb21wYWN0PWZ1bmN0aW9uKHQpe3JldHVybiB2LmZpbHRlcih0LEJvb2xlYW4pfTt2YXIgaj1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9KGk9aXx8W10pLmxlbmd0aCxvPTAscz1DKHQpO288cztvKyspe3ZhciBhPXRbb107aWYoayhhKSYmKHYuaXNBcnJheShhKXx8di5pc0FyZ3VtZW50cyhhKSkpaWYoZSlmb3IodmFyIHU9MCxjPWEubGVuZ3RoO3U8YzspaVtyKytdPWFbdSsrXTtlbHNlIGooYSxlLG4saSkscj1pLmxlbmd0aDtlbHNlIG58fChpW3IrK109YSl9cmV0dXJuIGl9O3YuZmxhdHRlbj1mdW5jdGlvbih0LGUpe3JldHVybiBqKHQsZSwhMSl9LHYud2l0aG91dD13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZGlmZmVyZW5jZSh0LGUpfSksdi51bmlxPXYudW5pcXVlPWZ1bmN0aW9uKHQsZSxuLGkpe3YuaXNCb29sZWFuKGUpfHwoaT1uLG49ZSxlPSExKSxudWxsIT1uJiYobj1fKG4saSkpO2Zvcih2YXIgcj1bXSxvPVtdLHM9MCxhPUModCk7czxhO3MrKyl7dmFyIHU9dFtzXSxjPW4/bih1LHMsdCk6dTtlJiYhbj8ocyYmbz09PWN8fHIucHVzaCh1KSxvPWMpOm4/di5jb250YWlucyhvLGMpfHwoby5wdXNoKGMpLHIucHVzaCh1KSk6di5jb250YWlucyhyLHUpfHxyLnB1c2godSl9cmV0dXJuIHJ9LHYudW5pb249dyhmdW5jdGlvbih0KXtyZXR1cm4gdi51bmlxKGoodCwhMCwhMCkpfSksdi5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49YXJndW1lbnRzLmxlbmd0aCxpPTAscj1DKHQpO2k8cjtpKyspe3ZhciBvPXRbaV07aWYoIXYuY29udGFpbnMoZSxvKSl7dmFyIHM7Zm9yKHM9MTtzPG4mJnYuY29udGFpbnMoYXJndW1lbnRzW3NdLG8pO3MrKyk7cz09PW4mJmUucHVzaChvKX19cmV0dXJuIGV9LHYuZGlmZmVyZW5jZT13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9aihlLCEwLCEwKSx2LmZpbHRlcih0LGZ1bmN0aW9uKHQpe3JldHVybiF2LmNvbnRhaW5zKGUsdCl9KX0pLHYudW56aXA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQmJnYubWF4KHQsQykubGVuZ3RofHwwLG49QXJyYXkoZSksaT0wO2k8ZTtpKyspbltpXT12LnBsdWNrKHQsaSk7cmV0dXJuIG59LHYuemlwPXcodi51bnppcCksdi5vYmplY3Q9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49e30saT0wLHI9Qyh0KTtpPHI7aSsrKWU/blt0W2ldXT1lW2ldOm5bdFtpXVswXV09dFtpXVsxXTtyZXR1cm4gbn07dmFyIEk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtuPV8obixpKTtmb3IodmFyIHI9QyhlKSxvPXQ+MD8wOnItMTtvPj0wJiZvPHI7bys9dClpZihuKGVbb10sbyxlKSlyZXR1cm4gbztyZXR1cm4tMX19O3YuZmluZEluZGV4PUkoMSksdi5maW5kTGFzdEluZGV4PUkoLTEpLHYuc29ydGVkSW5kZXg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPShuPV8obixpLDEpKShlKSxvPTAscz1DKHQpO288czspe3ZhciBhPU1hdGguZmxvb3IoKG8rcykvMik7bih0W2FdKTxyP289YSsxOnM9YX1yZXR1cm4gb307dmFyIEw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihpLHIsbyl7dmFyIHM9MCxhPUMoaSk7aWYoIm51bWJlciI9PXR5cGVvZiBvKXQ+MD9zPW8+PTA/bzpNYXRoLm1heChvK2Escyk6YT1vPj0wP01hdGgubWluKG8rMSxhKTpvK2ErMTtlbHNlIGlmKG4mJm8mJmEpcmV0dXJuIGlbbz1uKGkscildPT09cj9vOi0xO2lmKHIhPXIpcmV0dXJuKG89ZShoLmNhbGwoaSxzLGEpLHYuaXNOYU4pKT49MD9vK3M6LTE7Zm9yKG89dD4wP3M6YS0xO28+PTAmJm88YTtvKz10KWlmKGlbb109PT1yKXJldHVybiBvO3JldHVybi0xfX07di5pbmRleE9mPUwoMSx2LmZpbmRJbmRleCx2LnNvcnRlZEluZGV4KSx2Lmxhc3RJbmRleE9mPUwoLTEsdi5maW5kTGFzdEluZGV4KSx2LnJhbmdlPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1lJiYoZT10fHwwLHQ9MCksbnx8KG49ZTx0Py0xOjEpO2Zvcih2YXIgaT1NYXRoLm1heChNYXRoLmNlaWwoKGUtdCkvbiksMCkscj1BcnJheShpKSxvPTA7bzxpO28rKyx0Kz1uKXJbb109dDtyZXR1cm4gcn0sdi5jaHVuaz1mdW5jdGlvbih0LGUpe2lmKG51bGw9PWV8fGU8MSlyZXR1cm5bXTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOyluLnB1c2goaC5jYWxsKHQsaSxpKz1lKSk7cmV0dXJuIG59O3ZhciBCPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIShpIGluc3RhbmNlb2YgZSkpcmV0dXJuIHQuYXBwbHkobixyKTt2YXIgbz14KHQucHJvdG90eXBlKSxzPXQuYXBwbHkobyxyKTtyZXR1cm4gdi5pc09iamVjdChzKT9zOm99O3YuYmluZD13KGZ1bmN0aW9uKHQsZSxuKXtpZighdi5pc0Z1bmN0aW9uKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkJpbmQgbXVzdCBiZSBjYWxsZWQgb24gYSBmdW5jdGlvbiIpO3ZhciBpPXcoZnVuY3Rpb24ocil7cmV0dXJuIEIodCxpLGUsdGhpcyxuLmNvbmNhdChyKSl9KTtyZXR1cm4gaX0pLHYucGFydGlhbD13KGZ1bmN0aW9uKHQsZSl7dmFyIG49di5wYXJ0aWFsLnBsYWNlaG9sZGVyLGk9ZnVuY3Rpb24oKXtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLHM9QXJyYXkobyksYT0wO2E8bzthKyspc1thXT1lW2FdPT09bj9hcmd1bWVudHNbcisrXTplW2FdO2Zvcig7cjxhcmd1bWVudHMubGVuZ3RoOylzLnB1c2goYXJndW1lbnRzW3IrK10pO3JldHVybiBCKHQsaSx0aGlzLHRoaXMscyl9O3JldHVybiBpfSksdi5wYXJ0aWFsLnBsYWNlaG9sZGVyPXYsdi5iaW5kQWxsPXcoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT1qKGUsITEsITEpKS5sZW5ndGg7aWYobjwxKXRocm93IG5ldyBFcnJvcigiYmluZEFsbCBtdXN0IGJlIHBhc3NlZCBmdW5jdGlvbiBuYW1lcyIpO2Zvcig7bi0tOyl7dmFyIGk9ZVtuXTt0W2ldPXYuYmluZCh0W2ldLHQpfX0pLHYubWVtb2l6ZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKGkpe3ZhciByPW4uY2FjaGUsbz0iIisoZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKTtyZXR1cm4gUyhyLG8pfHwocltvXT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkscltvXX07cmV0dXJuIG4uY2FjaGU9e30sbn0sdi5kZWxheT13KGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KG51bGwsbil9LGUpfSksdi5kZWZlcj12LnBhcnRpYWwodi5kZWxheSx2LDEpLHYudGhyb3R0bGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGE9MDtufHwobj17fSk7dmFyIHU9ZnVuY3Rpb24oKXthPSExPT09bi5sZWFkaW5nPzA6di5ub3coKSxpPW51bGwscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKX0sYz1mdW5jdGlvbigpe3ZhciBjPXYubm93KCk7YXx8ITEhPT1uLmxlYWRpbmd8fChhPWMpO3ZhciBoPWUtKGMtYSk7cmV0dXJuIHI9dGhpcyxvPWFyZ3VtZW50cyxoPD0wfHxoPmU/KGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxhPWMscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKSk6aXx8ITE9PT1uLnRyYWlsaW5nfHwoaT1zZXRUaW1lb3V0KHUsaCkpLHN9O3JldHVybiBjLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxhPTAsaT1yPW89bnVsbH0sY30sdi5kZWJvdW5jZT1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvPWZ1bmN0aW9uKGUsbil7aT1udWxsLG4mJihyPXQuYXBwbHkoZSxuKSl9LHM9dyhmdW5jdGlvbihzKXtpZihpJiZjbGVhclRpbWVvdXQoaSksbil7dmFyIGE9IWk7aT1zZXRUaW1lb3V0KG8sZSksYSYmKHI9dC5hcHBseSh0aGlzLHMpKX1lbHNlIGk9di5kZWxheShvLGUsdGhpcyxzKTtyZXR1cm4gcn0pO3JldHVybiBzLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxpPW51bGx9LHN9LHYud3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiB2LnBhcnRpYWwoZSx0KX0sdi5uZWdhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdi5jb21wb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49ZSxpPXRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpO24tLTspaT10W25dLmNhbGwodGhpcyxpKTtyZXR1cm4gaX19LHYuYWZ0ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigtLXQ8MSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx2LmJlZm9yZT1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBmdW5jdGlvbigpe3JldHVybi0tdD4wJiYobj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdDw9MSYmKGU9bnVsbCksbn19LHYub25jZT12LnBhcnRpYWwodi5iZWZvcmUsMiksdi5yZXN0QXJndW1lbnRzPXc7dmFyIEQ9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxSPVsidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdLHo9ZnVuY3Rpb24odCxlKXt2YXIgbj1SLmxlbmd0aCxpPXQuY29uc3RydWN0b3Iscj12LmlzRnVuY3Rpb24oaSkmJmkucHJvdG90eXBlfHxhLG89ImNvbnN0cnVjdG9yIjtmb3IoUyh0LG8pJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyk7bi0tOykobz1SW25dKWluIHQmJnRbb10hPT1yW29dJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyl9O3Yua2V5cz1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm5bXTtpZihwKXJldHVybiBwKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KVModCxuKSYmZS5wdXNoKG4pO3JldHVybiBEJiZ6KHQsZSksZX0sdi5hbGxLZXlzPWZ1bmN0aW9uKHQpe2lmKCF2LmlzT2JqZWN0KHQpKXJldHVybltdO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gRCYmeih0LGUpLGV9LHYudmFsdWVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT12LmtleXModCksbj1lLmxlbmd0aCxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09dFtlW3JdXTtyZXR1cm4gaX0sdi5tYXBPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe2U9XyhlLG4pO2Zvcih2YXIgaT12LmtleXModCkscj1pLmxlbmd0aCxvPXt9LHM9MDtzPHI7cysrKXt2YXIgYT1pW3NdO29bYV09ZSh0W2FdLGEsdCl9cmV0dXJuIG99LHYucGFpcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXYua2V5cyh0KSxuPWUubGVuZ3RoLGk9QXJyYXkobikscj0wO3I8bjtyKyspaVtyXT1bZVtyXSx0W2Vbcl1dXTtyZXR1cm4gaX0sdi5pbnZlcnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LG49di5rZXlzKHQpLGk9MCxyPW4ubGVuZ3RoO2k8cjtpKyspZVt0W25baV1dXT1uW2ldO3JldHVybiBlfSx2LmZ1bmN0aW9ucz12Lm1ldGhvZHM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpdi5pc0Z1bmN0aW9uKHRbbl0pJiZlLnB1c2gobik7cmV0dXJuIGUuc29ydCgpfTt2YXIgTj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKGUmJihuPU9iamVjdChuKSksaTwyfHxudWxsPT1uKXJldHVybiBuO2Zvcih2YXIgcj0xO3I8aTtyKyspZm9yKHZhciBvPWFyZ3VtZW50c1tyXSxzPXQobyksYT1zLmxlbmd0aCx1PTA7dTxhO3UrKyl7dmFyIGM9c1t1XTtlJiZ2b2lkIDAhPT1uW2NdfHwobltjXT1vW2NdKX1yZXR1cm4gbn19O3YuZXh0ZW5kPU4odi5hbGxLZXlzKSx2LmV4dGVuZE93bj12LmFzc2lnbj1OKHYua2V5cyksdi5maW5kS2V5PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGkscj12LmtleXModCksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihlKHRbaT1yW29dXSxpLHQpKXJldHVybiBpfTt2YXIgVyxxLEg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluIG59O3YucGljaz13KGZ1bmN0aW9uKHQsZSl7dmFyIG49e30saT1lWzBdO2lmKG51bGw9PXQpcmV0dXJuIG47di5pc0Z1bmN0aW9uKGkpPyhlLmxlbmd0aD4xJiYoaT15KGksZVsxXSkpLGU9di5hbGxLZXlzKHQpKTooaT1ILGU9aihlLCExLCExKSx0PU9iamVjdCh0KSk7Zm9yKHZhciByPTAsbz1lLmxlbmd0aDtyPG87cisrKXt2YXIgcz1lW3JdLGE9dFtzXTtpKGEscyx0KSYmKG5bc109YSl9cmV0dXJuIG59KSx2Lm9taXQ9dyhmdW5jdGlvbih0LGUpe3ZhciBuLGk9ZVswXTtyZXR1cm4gdi5pc0Z1bmN0aW9uKGkpPyhpPXYubmVnYXRlKGkpLGUubGVuZ3RoPjEmJihuPWVbMV0pKTooZT12Lm1hcChqKGUsITEsITEpLFN0cmluZyksaT1mdW5jdGlvbih0LG4pe3JldHVybiF2LmNvbnRhaW5zKGUsbil9KSx2LnBpY2sodCxpLG4pfSksdi5kZWZhdWx0cz1OKHYuYWxsS2V5cywhMCksdi5jcmVhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj14KHQpO3JldHVybiBlJiZ2LmV4dGVuZE93bihuLGUpLG59LHYuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHYuaXNPYmplY3QodCk/di5pc0FycmF5KHQpP3Quc2xpY2UoKTp2LmV4dGVuZCh7fSx0KTp0fSx2LnRhcD1mdW5jdGlvbih0LGUpe3JldHVybiBlKHQpLHR9LHYuaXNNYXRjaD1mdW5jdGlvbih0LGUpe3ZhciBuPXYua2V5cyhlKSxpPW4ubGVuZ3RoO2lmKG51bGw9PXQpcmV0dXJuIWk7Zm9yKHZhciByPU9iamVjdCh0KSxvPTA7bzxpO28rKyl7dmFyIHM9bltvXTtpZihlW3NdIT09cltzXXx8IShzIGluIHIpKXJldHVybiExfXJldHVybiEwfSxXPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9PT1lKXJldHVybiAwIT09dHx8MS90PT0xL2U7aWYobnVsbD09dHx8bnVsbD09ZSlyZXR1cm4hMTtpZih0IT10KXJldHVybiBlIT1lO3ZhciByPXR5cGVvZiB0O3JldHVybigiZnVuY3Rpb24iPT09cnx8Im9iamVjdCI9PT1yfHwib2JqZWN0Ij09dHlwZW9mIGUpJiZxKHQsZSxuLGkpfSxxPWZ1bmN0aW9uKHQsZSxuLGkpe3QgaW5zdGFuY2VvZiB2JiYodD10Ll93cmFwcGVkKSxlIGluc3RhbmNlb2YgdiYmKGU9ZS5fd3JhcHBlZCk7dmFyIHI9bC5jYWxsKHQpO2lmKHIhPT1sLmNhbGwoZSkpcmV0dXJuITE7c3dpdGNoKHIpe2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIiIrdD09IiIrZTtjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuK3QhPSt0PytlIT0rZTowPT0rdD8xLyt0PT0xL2U6K3Q9PStlO2Nhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpyZXR1cm4rdD09K2U7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiB1LnZhbHVlT2YuY2FsbCh0KT09PXUudmFsdWVPZi5jYWxsKGUpfXZhciBvPSJbb2JqZWN0IEFycmF5XSI9PT1yO2lmKCFvKXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4hMTt2YXIgcz10LmNvbnN0cnVjdG9yLGE9ZS5jb25zdHJ1Y3RvcjtpZihzIT09YSYmISh2LmlzRnVuY3Rpb24ocykmJnMgaW5zdGFuY2VvZiBzJiZ2LmlzRnVuY3Rpb24oYSkmJmEgaW5zdGFuY2VvZiBhKSYmImNvbnN0cnVjdG9yImluIHQmJiJjb25zdHJ1Y3RvciJpbiBlKXJldHVybiExfWk9aXx8W107Zm9yKHZhciBjPShuPW58fFtdKS5sZW5ndGg7Yy0tOylpZihuW2NdPT09dClyZXR1cm4gaVtjXT09PWU7aWYobi5wdXNoKHQpLGkucHVzaChlKSxvKXtpZigoYz10Lmxlbmd0aCkhPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IoO2MtLTspaWYoIVcodFtjXSxlW2NdLG4saSkpcmV0dXJuITF9ZWxzZXt2YXIgaCxkPXYua2V5cyh0KTtpZihjPWQubGVuZ3RoLHYua2V5cyhlKS5sZW5ndGghPT1jKXJldHVybiExO2Zvcig7Yy0tOylpZihoPWRbY10sIVMoZSxoKXx8IVcodFtoXSxlW2hdLG4saSkpcmV0dXJuITF9cmV0dXJuIG4ucG9wKCksaS5wb3AoKSwhMH0sdi5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFcodCxlKX0sdi5pc0VtcHR5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwoayh0KSYmKHYuaXNBcnJheSh0KXx8di5pc1N0cmluZyh0KXx8di5pc0FyZ3VtZW50cyh0KSk/MD09PXQubGVuZ3RoOjA9PT12LmtleXModCkubGVuZ3RoKX0sdi5pc0VsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8MSE9PXQubm9kZVR5cGUpfSx2LmlzQXJyYXk9Znx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PWwuY2FsbCh0KX0sdi5pc09iamVjdD1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4iZnVuY3Rpb24iPT09ZXx8Im9iamVjdCI9PT1lJiYhIXR9LHYuZWFjaChbIkFyZ3VtZW50cyIsIkZ1bmN0aW9uIiwiU3RyaW5nIiwiTnVtYmVyIiwiRGF0ZSIsIlJlZ0V4cCIsIkVycm9yIiwiU3ltYm9sIiwiTWFwIiwiV2Vha01hcCIsIlNldCIsIldlYWtTZXQiXSxmdW5jdGlvbih0KXt2WyJpcyIrdF09ZnVuY3Rpb24oZSl7cmV0dXJuIGwuY2FsbChlKT09PSJbb2JqZWN0ICIrdCsiXSJ9fSksdi5pc0FyZ3VtZW50cyhhcmd1bWVudHMpfHwodi5pc0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gUyh0LCJjYWxsZWUiKX0pO3ZhciBGPXIuZG9jdW1lbnQmJnIuZG9jdW1lbnQuY2hpbGROb2Rlczsib2JqZWN0IiE9dHlwZW9mIEludDhBcnJheSYmImZ1bmN0aW9uIiE9dHlwZW9mIEYmJih2LmlzRnVuY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR8fCExfSksdi5pc0Zpbml0ZT1mdW5jdGlvbih0KXtyZXR1cm4hdi5pc1N5bWJvbCh0KSYmaXNGaW5pdGUodCkmJiFpc05hTihwYXJzZUZsb2F0KHQpKX0sdi5pc05hTj1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc051bWJlcih0KSYmaXNOYU4odCl9LHYuaXNCb29sZWFuPWZ1bmN0aW9uKHQpe3JldHVybiEwPT09dHx8ITE9PT10fHwiW29iamVjdCBCb29sZWFuXSI9PT1sLmNhbGwodCl9LHYuaXNOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dH0sdi5pc1VuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dH0sdi5oYXM9ZnVuY3Rpb24odCxlKXtpZighdi5pc0FycmF5KGUpKXJldHVybiBTKHQsZSk7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXt2YXIgcj1lW2ldO2lmKG51bGw9PXR8fCFkLmNhbGwodCxyKSlyZXR1cm4hMTt0PXRbcl19cmV0dXJuISFufSx2Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5fPW8sdGhpc30sdi5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sdi5jb25zdGFudD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LHYubm9vcD1mdW5jdGlvbigpe30sdi5wcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc0FycmF5KHQpP2Z1bmN0aW9uKGUpe3JldHVybiBFKGUsdCl9Ok0odCl9LHYucHJvcGVydHlPZj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNBcnJheShlKT9FKHQsZSk6dFtlXX19LHYubWF0Y2hlcj12Lm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9di5leHRlbmRPd24oe30sdCksZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNNYXRjaChlLHQpfX0sdi50aW1lcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9QXJyYXkoTWF0aC5tYXgoMCx0KSk7ZT15KGUsbiwxKTtmb3IodmFyIHI9MDtyPHQ7cisrKWlbcl09ZShyKTtyZXR1cm4gaX0sdi5yYW5kb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZSYmKGU9dCx0PTApLHQrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLXQrMSkpfSx2Lm5vdz1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07dmFyIFY9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImI3gyNzsiLCJgIjoiJiN4NjA7In0sVT12LmludmVydChWKSxLPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSxuPSIoPzoiK3Yua2V5cyh0KS5qb2luKCJ8IikrIikiLGk9UmVnRXhwKG4pLHI9UmVnRXhwKG4sImciKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8iIjoiIit0LGkudGVzdCh0KT90LnJlcGxhY2UocixlKTp0fX07di5lc2NhcGU9SyhWKSx2LnVuZXNjYXBlPUsoVSksdi5yZXN1bHQ9ZnVuY3Rpb24odCxlLG4pe3YuaXNBcnJheShlKXx8KGU9W2VdKTt2YXIgaT1lLmxlbmd0aDtpZighaSlyZXR1cm4gdi5pc0Z1bmN0aW9uKG4pP24uY2FsbCh0KTpuO2Zvcih2YXIgcj0wO3I8aTtyKyspe3ZhciBvPW51bGw9PXQ/dm9pZCAwOnRbZVtyXV07dm9pZCAwPT09byYmKG89bixyPWkpLHQ9di5pc0Z1bmN0aW9uKG8pP28uY2FsbCh0KTpvfXJldHVybiB0fTt2YXIgWT0wO3YudW5pcXVlSWQ9ZnVuY3Rpb24odCl7dmFyIGU9KytZKyIiO3JldHVybiB0P3QrZTplfSx2LnRlbXBsYXRlU2V0dGluZ3M9e2V2YWx1YXRlOi88JShbXHNcU10rPyklPi9nLGludGVycG9sYXRlOi88JT0oW1xzXFNdKz8pJT4vZyxlc2NhcGU6LzwlLShbXHNcU10rPyklPi9nfTt2YXIgWD0vKC4pXi8sJD17IiciOiInIiwiXFwiOiJcXCIsIlxyIjoiciIsIlxuIjoibiIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxHPS9cXHwnfFxyfFxufFx1MjAyOHxcdTIwMjkvZyxKPWZ1bmN0aW9uKHQpe3JldHVybiJcXCIrJFt0XX07di50ZW1wbGF0ZT1mdW5jdGlvbih0LGUsbil7IWUmJm4mJihlPW4pLGU9di5kZWZhdWx0cyh7fSxlLHYudGVtcGxhdGVTZXR0aW5ncyk7dmFyIGkscj1SZWdFeHAoWyhlLmVzY2FwZXx8WCkuc291cmNlLChlLmludGVycG9sYXRlfHxYKS5zb3VyY2UsKGUuZXZhbHVhdGV8fFgpLnNvdXJjZV0uam9pbigifCIpKyJ8JCIsImciKSxvPTAscz0iX19wKz0nIjt0LnJlcGxhY2UocixmdW5jdGlvbihlLG4saSxyLGEpe3JldHVybiBzKz10LnNsaWNlKG8sYSkucmVwbGFjZShHLEopLG89YStlLmxlbmd0aCxuP3MrPSInK1xuKChfX3Q9KCIrbisiKSk9PW51bGw/Jyc6Xy5lc2NhcGUoX190KSkrXG4nIjppP3MrPSInK1xuKChfX3Q9KCIraSsiKSk9PW51bGw/Jyc6X190KStcbiciOnImJihzKz0iJztcbiIrcisiXG5fX3ArPSciKSxlfSkscys9Iic7XG4iLGUudmFyaWFibGV8fChzPSJ3aXRoKG9ianx8e30pe1xuIitzKyJ9XG4iKSxzPSJ2YXIgX190LF9fcD0nJyxfX2o9QXJyYXkucHJvdG90eXBlLmpvaW4scHJpbnQ9ZnVuY3Rpb24oKXtfX3ArPV9fai5jYWxsKGFyZ3VtZW50cywnJyk7fTtcbiIrcysicmV0dXJuIF9fcDtcbiI7dHJ5e2k9bmV3IEZ1bmN0aW9uKGUudmFyaWFibGV8fCJvYmoiLCJfIixzKX1jYXRjaCh0KXt0aHJvdyB0LnNvdXJjZT1zLHR9dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY2FsbCh0aGlzLHQsdil9LHU9ZS52YXJpYWJsZXx8Im9iaiI7cmV0dXJuIGEuc291cmNlPSJmdW5jdGlvbigiK3UrIil7XG4iK3MrIn0iLGF9LHYuY2hhaW49ZnVuY3Rpb24odCl7dmFyIGU9dih0KTtyZXR1cm4gZS5fY2hhaW49ITAsZX07dmFyIFo9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2hhaW4/dihlKS5jaGFpbigpOmV9O3YubWl4aW49ZnVuY3Rpb24odCl7cmV0dXJuIHYuZWFjaCh2LmZ1bmN0aW9ucyh0KSxmdW5jdGlvbihlKXt2YXIgbj12W2VdPXRbZV07di5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5fd3JhcHBlZF07cmV0dXJuIGMuYXBwbHkodCxhcmd1bWVudHMpLFoodGhpcyxuLmFwcGx5KHYsdCkpfX0pLHZ9LHYubWl4aW4odiksdi5lYWNoKFsicG9wIiwicHVzaCIsInJldmVyc2UiLCJzaGlmdCIsInNvcnQiLCJzcGxpY2UiLCJ1bnNoaWZ0Il0sZnVuY3Rpb24odCl7dmFyIGU9c1t0XTt2LnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuX3dyYXBwZWQ7cmV0dXJuIGUuYXBwbHkobixhcmd1bWVudHMpLCJzaGlmdCIhPT10JiYic3BsaWNlIiE9PXR8fDAhPT1uLmxlbmd0aHx8ZGVsZXRlIG5bMF0sWih0aGlzLG4pfX0pLHYuZWFjaChbImNvbmNhdCIsImpvaW4iLCJzbGljZSJdLGZ1bmN0aW9uKHQpe3ZhciBlPXNbdF07di5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gWih0aGlzLGUuYXBwbHkodGhpcy5fd3JhcHBlZCxhcmd1bWVudHMpKX19KSx2LnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwcGVkfSx2LnByb3RvdHlwZS52YWx1ZU9mPXYucHJvdG90eXBlLnRvSlNPTj12LnByb3RvdHlwZS52YWx1ZSx2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5fd3JhcHBlZCl9LHZvaWQgMD09PShpPWZ1bmN0aW9uKCl7cmV0dXJuIHZ9LmFwcGx5KGUsW10pKXx8KG4uZXhwb3J0cz1pKX0oKX0pLmNhbGwodGhpcyxuKDEzKSxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNSksdT1uKDMwKSxjPW4oMTEpLGg9big3NyksbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2ZsYWdzPTAsdGhpcy5fbGF5b3V0PW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZGlzcG9zZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMubm9kZT1vLmNyZWF0ZU5vZGUodCksdGhpcy5hZGRDbGFzcygicC1XaWRnZXQiKX1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuaXNEaXNwb3NlZHx8KHRoaXMuc2V0RmxhZyh0LkZsYWcuSXNEaXNwb3NlZCksdGhpcy5fZGlzcG9zZWQuZW1pdCh2b2lkIDApLHRoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKSx0aGlzLl9sYXlvdXQmJih0aGlzLl9sYXlvdXQuZGlzcG9zZSgpLHRoaXMuX2xheW91dD1udWxsKSxjLlNpZ25hbC5jbGVhckRhdGEodGhpcyksYS5NZXNzYWdlTG9vcC5jbGVhckRhdGEodGhpcyksdS5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzRGlzcG9zZWQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzSGlkZGVuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzSGlkZGVuKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVmlzaWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc1Zpc2libGUpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidGl0bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby50aXRsZVByb3BlcnR5LmdldCh0aGlzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5pZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubm9kZS5pZD10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZGF0YXNldH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9wYXJlbnQhPT1lKXtpZihlJiZ0aGlzLmNvbnRhaW5zKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwYXJlbnQgd2lkZ2V0LiIpO2lmKHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXt2YXIgbj1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLXJlbW92ZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfWlmKHRoaXMuX3BhcmVudD1lLHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXtuPW5ldyB0LkNoaWxkTWVzc2FnZSgiY2hpbGQtYWRkZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfXRoaXMuaXNEaXNwb3NlZHx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLlBhcmVudENoYW5nZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxheW91dCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXlvdXR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9sYXlvdXQhPT1lKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5EaXNhbGxvd0xheW91dCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHdpZGdldCBsYXlvdXQuIik7aWYodGhpcy5fbGF5b3V0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSB3aWRnZXQgbGF5b3V0LiIpO2lmKGUucGFyZW50KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSBsYXlvdXQgcGFyZW50LiIpO3RoaXMuX2xheW91dD1lLGUucGFyZW50PXRoaXN9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dD90aGlzLl9sYXlvdXQuaXRlcigpOnMuZW1wdHkoKX0sdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQ7ZTtlPWUuX3BhcmVudClpZihlPT09dGhpcylyZXR1cm4hMDtyZXR1cm4hMX0sdC5wcm90b3R5cGUuaGFzQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5jbGFzc0xpc3QuY29udGFpbnModCl9LHQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmVDbGFzcz1mdW5jdGlvbih0KXt0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSh0KX0sdC5wcm90b3R5cGUudG9nZ2xlQ2xhc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4hMD09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpLCEwKTohMT09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QucmVtb3ZlKHQpLCExKTp0aGlzLm5vZGUuY2xhc3NMaXN0LnRvZ2dsZSh0KX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLlVwZGF0ZVJlcXVlc3QpfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24oKXthLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsdC5Nc2cuRml0UmVxdWVzdCl9LHQucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLkFjdGl2YXRlUmVxdWVzdCl9LHQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkNsb3NlUmVxdWVzdCl9LHQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0hpZGRlbikmJighdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkJlZm9yZVNob3cpLHRoaXMuY2xlYXJGbGFnKHQuRmxhZy5Jc0hpZGRlbiksdGhpcy5yZW1vdmVDbGFzcygicC1tb2QtaGlkZGVuIiksIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5BZnRlclNob3cpLHRoaXMucGFyZW50KSl7dmFyIGU9bmV3IHQuQ2hpbGRNZXNzYWdlKCJjaGlsZC1zaG93biIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50ZXN0RmxhZyh0LkZsYWcuSXNIaWRkZW4pJiYoIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5CZWZvcmVIaWRlKSx0aGlzLnNldEZsYWcodC5GbGFnLklzSGlkZGVuKSx0aGlzLmFkZENsYXNzKCJwLW1vZC1oaWRkZW4iKSwhdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkFmdGVySGlkZSksdGhpcy5wYXJlbnQpKXt2YXIgZT1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLWhpZGRlbiIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLnNldEhpZGRlbj1mdW5jdGlvbih0KXt0P3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnByb3RvdHlwZS50ZXN0RmxhZz1mdW5jdGlvbih0KXtyZXR1cm4gMCE9KHRoaXMuX2ZsYWdzJnQpfSx0LnByb3RvdHlwZS5zZXRGbGFnPWZ1bmN0aW9uKHQpe3RoaXMuX2ZsYWdzfD10fSx0LnByb3RvdHlwZS5jbGVhckZsYWc9ZnVuY3Rpb24odCl7dGhpcy5fZmxhZ3MmPX50fSx0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXtzd2l0Y2goZS50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vblJlc2l6ZShlKTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uVXBkYXRlUmVxdWVzdChlKTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uRml0UmVxdWVzdChlKTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlU2hvdyhlKTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMuc2V0RmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJTaG93KGUpO2JyZWFrO2Nhc2UiYmVmb3JlLWhpZGUiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVIaWRlKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItaGlkZSI6dGhpcy5jbGVhckZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVySGlkZShlKTticmVhaztjYXNlImJlZm9yZS1hdHRhY2giOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVBdHRhY2goZSk7YnJlYWs7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMuaXNIaWRkZW58fHRoaXMucGFyZW50JiYhdGhpcy5wYXJlbnQuaXNWaXNpYmxlfHx0aGlzLnNldEZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5zZXRGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJBdHRhY2goZSk7YnJlYWs7Y2FzZSJiZWZvcmUtZGV0YWNoIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItZGV0YWNoIjp0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNBdHRhY2hlZCksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVyRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWN0aXZhdGUtcmVxdWVzdCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFjdGl2YXRlUmVxdWVzdChlKTticmVhaztjYXNlImNsb3NlLXJlcXVlc3QiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25DbG9zZVJlcXVlc3QoZSk7YnJlYWs7Y2FzZSJjaGlsZC1hZGRlZCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkNoaWxkQWRkZWQoZSk7YnJlYWs7Y2FzZSJjaGlsZC1yZW1vdmVkIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQ2hpbGRSZW1vdmVkKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5ub3RpZnlMYXlvdXQoZSl9fSx0LnByb3RvdHlwZS5ub3RpZnlMYXlvdXQ9ZnVuY3Rpb24odCl7dGhpcy5fbGF5b3V0JiZ0aGlzLl9sYXlvdXQucHJvY2Vzc1BhcmVudE1lc3NhZ2UodCl9LHQucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25CZWZvcmVIaWRlPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25BZnRlckhpZGU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZURldGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt9LHR9KCk7ZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dFt0LklzRGlzcG9zZWQ9MV09IklzRGlzcG9zZWQiLHRbdC5Jc0F0dGFjaGVkPTJdPSJJc0F0dGFjaGVkIix0W3QuSXNIaWRkZW49NF09IklzSGlkZGVuIix0W3QuSXNWaXNpYmxlPThdPSJJc1Zpc2libGUiLHRbdC5EaXNhbGxvd0xheW91dD0xNl09IkRpc2FsbG93TGF5b3V0In0odC5GbGFnfHwodC5GbGFnPXt9KSksZnVuY3Rpb24odCl7dC5CZWZvcmVTaG93PW5ldyBhLk1lc3NhZ2UoImJlZm9yZS1zaG93IiksdC5BZnRlclNob3c9bmV3IGEuTWVzc2FnZSgiYWZ0ZXItc2hvdyIpLHQuQmVmb3JlSGlkZT1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtaGlkZSIpLHQuQWZ0ZXJIaWRlPW5ldyBhLk1lc3NhZ2UoImFmdGVyLWhpZGUiKSx0LkJlZm9yZUF0dGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtYXR0YWNoIiksdC5BZnRlckF0dGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1hdHRhY2giKSx0LkJlZm9yZURldGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtZGV0YWNoIiksdC5BZnRlckRldGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1kZXRhY2giKSx0LlBhcmVudENoYW5nZWQ9bmV3IGEuTWVzc2FnZSgicGFyZW50LWNoYW5nZWQiKSx0LlVwZGF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJ1cGRhdGUtcmVxdWVzdCIpLHQuRml0UmVxdWVzdD1uZXcgYS5Db25mbGF0YWJsZU1lc3NhZ2UoImZpdC1yZXF1ZXN0IiksdC5BY3RpdmF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJhY3RpdmF0ZS1yZXF1ZXN0IiksdC5DbG9zZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJjbG9zZS1yZXF1ZXN0Iil9KHQuTXNnfHwodC5Nc2c9e30pKTt2YXIgZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSl8fHRoaXM7cmV0dXJuIGkuY2hpbGQ9bixpfXJldHVybiByKGUsdCksZX0oYS5NZXNzYWdlKTt0LkNoaWxkTWVzc2FnZT1lO3ZhciBuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcywicmVzaXplIil8fHRoaXM7cmV0dXJuIGkud2lkdGg9ZSxpLmhlaWdodD1uLGl9cmV0dXJuIHIoZSx0KSxlfShhLk1lc3NhZ2UpO3QuUmVzaXplTWVzc2FnZT1uLGZ1bmN0aW9uKHQpe3QuVW5rbm93blNpemU9bmV3IHQoLTEsLTEpfShuPXQuUmVzaXplTWVzc2FnZXx8KHQuUmVzaXplTWVzc2FnZT17fSkpLHQuYXR0YWNoPWZ1bmN0aW9uKGUsbixpKXtpZih2b2lkIDA9PT1pJiYoaT1udWxsKSxlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBhdHRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoZS5pc0F0dGFjaGVkfHxkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGUubm9kZSkpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgYWxyZWFkeSBhdHRhY2hlZC4iKTtpZighZG9jdW1lbnQuYm9keS5jb250YWlucyhuKSl0aHJvdyBuZXcgRXJyb3IoIkhvc3QgaXMgbm90IGF0dGFjaGVkLiIpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0Lk1zZy5CZWZvcmVBdHRhY2gpLG4uaW5zZXJ0QmVmb3JlKGUubm9kZSxpKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJBdHRhY2gpfSx0LmRldGFjaD1mdW5jdGlvbihlKXtpZihlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZXRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoIWUuaXNBdHRhY2hlZHx8IWRvY3VtZW50LmJvZHkuY29udGFpbnMoZS5ub2RlKSl0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBpcyBub3QgYXR0YWNoZWQuIik7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQuTXNnLkJlZm9yZURldGFjaCksZS5ub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZS5ub2RlKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJEZXRhY2gpfX0obD1lLldpZGdldHx8KGUuV2lkZ2V0PXt9KSksZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXt0LnRpdGxlUHJvcGVydHk9bmV3IHUuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToidGl0bGUiLGNyZWF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGguVGl0bGUoe293bmVyOnR9KX19KSx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigxNDEpKSxpKG4oNzUpKSxpKG4oMzMzKSksaShuKDMzNCkpLGkobigzMzUpKSxpKG4oMzM2KSksaShuKDc0KSksaShuKDI1KSksaShuKDMzNykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMTcpKSxpKG4oMzE4KSksaShuKDMxOSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWU7aS52ZXJzaW9uPW4oMTg4KS52ZXJzaW9uLGkudXRpbHM9bigxODkpLGkucmFuZD1uKDEwNSksaS5jdXJ2ZT1uKDQ4KSxpLmN1cnZlcz1uKDE5NCksaS5lYz1uKDIwMiksaS5lZGRzYT1uKDIwNil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaSxyPW4oMiksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5zZW5kZXI9dH1yZXR1cm4gdC5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBpLmNvbm5lY3QodGhpcyx0LGUpfSx0LnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuZGlzY29ubmVjdCh0aGlzLHQsZSl9LHQucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24odCl7aS5lbWl0KHRoaXMsdCl9LHR9KCk7ZS5TaWduYWw9byxmdW5jdGlvbih0KXt0LmRpc2Nvbm5lY3RCZXR3ZWVuPWZ1bmN0aW9uKHQsZSl7aS5kaXNjb25uZWN0QmV0d2Vlbih0LGUpfSx0LmRpc2Nvbm5lY3RTZW5kZXI9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0U2VuZGVyKHQpfSx0LmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXtpLmRpc2Nvbm5lY3RSZWNlaXZlcih0KX0sdC5kaXNjb25uZWN0QWxsPWZ1bmN0aW9uKHQpe2kuZGlzY29ubmVjdEFsbCh0KX0sdC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0QWxsKHQpfSx0LmdldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5leGNlcHRpb25IYW5kbGVyfSx0LnNldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9aS5leGNlcHRpb25IYW5kbGVyO3JldHVybiBpLmV4Y2VwdGlvbkhhbmRsZXI9dCxlfX0obz1lLlNpZ25hbHx8KGUuU2lnbmFsPXt9KSksZS5TaWduYWw9byxmdW5jdGlvbihlKXtlLmV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcih0KX0sZS5jb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYob3x8KG89W10sbi5zZXQodC5zZW5kZXIsbykpLGEobyx0LGUscikpcmV0dXJuITE7dmFyIHM9cnx8ZSx1PWkuZ2V0KHMpO3V8fCh1PVtdLGkuc2V0KHMsdSkpO3ZhciBjPXtzaWduYWw6dCxzbG90OmUsdGhpc0FyZzpyfTtyZXR1cm4gby5wdXNoKGMpLHUucHVzaChjKSwhMH0sZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYoIW98fDA9PT1vLmxlbmd0aClyZXR1cm4hMTt2YXIgcz1hKG8sdCxlLHIpO2lmKCFzKXJldHVybiExO3ZhciB1PXJ8fGUsaD1pLmdldCh1KTtyZXR1cm4gcy5zaWduYWw9bnVsbCxjKG8pLGMoaCksITB9LGUuZGlzY29ubmVjdEJldHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgbz1uLmdldCh0KTtpZihvJiYwIT09by5sZW5ndGgpe3ZhciBzPWkuZ2V0KGUpO3MmJjAhPT1zLmxlbmd0aCYmKHIuZWFjaChzLGZ1bmN0aW9uKGUpe2Uuc2lnbmFsJiZlLnNpZ25hbC5zZW5kZXI9PT10JiYoZS5zaWduYWw9bnVsbCl9KSxjKG8pLGMocykpfX0sZS5kaXNjb25uZWN0U2VuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPW4uZ2V0KHQpO2UmJjAhPT1lLmxlbmd0aCYmKHIuZWFjaChlLGZ1bmN0aW9uKHQpe2lmKHQuc2lnbmFsKXt2YXIgZT10LnRoaXNBcmd8fHQuc2xvdDt0LnNpZ25hbD1udWxsLGMoaS5nZXQoZSkpfX0pLGMoZSkpfSxlLmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXt2YXIgZT1pLmdldCh0KTtlJiYwIT09ZS5sZW5ndGgmJihyLmVhY2goZSxmdW5jdGlvbih0KXtpZih0LnNpZ25hbCl7dmFyIGU9dC5zaWduYWwuc2VuZGVyO3Quc2lnbmFsPW51bGwsYyhuLmdldChlKSl9fSksYyhlKSl9LGUuZGlzY29ubmVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZT1uLmdldCh0KTtlJiZlLmxlbmd0aD4wJiYoci5lYWNoKGUsZnVuY3Rpb24odCl7dC5zaWduYWw9bnVsbH0pLGMoZSkpO3ZhciBvPWkuZ2V0KHQpO28mJm8ubGVuZ3RoPjAmJihyLmVhY2gobyxmdW5jdGlvbih0KXt0LnNpZ25hbD1udWxsfSksYyhvKSl9LGUuZW1pdD1mdW5jdGlvbih0LGUpe3ZhciBpPW4uZ2V0KHQuc2VuZGVyKTtpZihpJiYwIT09aS5sZW5ndGgpZm9yKHZhciByPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgcz1pW3JdO3Muc2lnbmFsPT09dCYmdShzLGUpfX07dmFyIG49bmV3IFdlYWtNYXAsaT1uZXcgV2Vha01hcCxvPW5ldyBTZXQscz0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZTp0O2Z1bmN0aW9uIGEodCxlLG4saSl7cmV0dXJuIHIuZmluZCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpZ25hbD09PWUmJnQuc2xvdD09PW4mJnQudGhpc0FyZz09PWl9KX1mdW5jdGlvbiB1KHQsbil7dmFyIGk9dC5zaWduYWwscj10LnNsb3Qsbz10LnRoaXNBcmc7dHJ5e3IuY2FsbChvLGkuc2VuZGVyLG4pfWNhdGNoKHQpe2UuZXhjZXB0aW9uSGFuZGxlcih0KX19ZnVuY3Rpb24gYyh0KXswPT09by5zaXplJiZzKGgpLG8uYWRkKHQpfWZ1bmN0aW9uIGgoKXtvLmZvckVhY2gobCksby5jbGVhcigpfWZ1bmN0aW9uIGwodCl7ci5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LGQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG51bGw9PT10LnNpZ25hbH19KGl8fChpPXt9KSl9KS5jYWxsKHRoaXMsbig0NCkuc2V0SW1tZWRpYXRlKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMjMpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29yZVdpZGdldE1vZGVsIixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTn0pfSxlfShvLldpZGdldE1vZGVsKTtlLkNvcmVXaWRnZXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvcmVET01XaWRnZXRNb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0oby5ET01XaWRnZXRNb2RlbCk7ZS5Db3JlRE9NV2lkZ2V0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb3JlRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0ocy5EZXNjcmlwdGlvbk1vZGVsKTtlLkNvcmVEZXNjcmlwdGlvbk1vZGVsPWx9LGZ1bmN0aW9uKHQsZSl7dmFyIG47bj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpeyJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfXQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoZXx8IkFzc2VydGlvbiBmYWlsZWQiKX10LmV4cG9ydHM9bixuLmVxdWFsPWZ1bmN0aW9uKHQsZSxuKXtpZih0IT1lKXRocm93IG5ldyBFcnJvcihufHwiQXNzZXJ0aW9uIGZhaWxlZDogIit0KyIgIT0gIitlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTsKLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KIWZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOyJvYmplY3QiPT10eXBlb2YgdC5leHBvcnRzP3QuZXhwb3J0cz1lLmRvY3VtZW50P24oZSwhMCk6ZnVuY3Rpb24odCl7aWYoIXQuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIG4odCl9Om4oZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4scil7InVzZSBzdHJpY3QiO3ZhciBvPVtdLHM9bi5kb2N1bWVudCxhPU9iamVjdC5nZXRQcm90b3R5cGVPZix1PW8uc2xpY2UsYz1vLmNvbmNhdCxoPW8ucHVzaCxsPW8uaW5kZXhPZixkPXt9LGY9ZC50b1N0cmluZyxwPWQuaGFzT3duUHJvcGVydHksbT1wLnRvU3RyaW5nLGc9bS5jYWxsKE9iamVjdCksdj17fSxiPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQubm9kZVR5cGV9LHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnQ9PT10LndpbmRvd30sXz17dHlwZTohMCxzcmM6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIHcodCxlLG4pe3ZhciBpLHI9KGU9ZXx8cykuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoci50ZXh0PXQsbilmb3IoaSBpbiBfKW5baV0mJihyW2ldPW5baV0pO2UuaGVhZC5hcHBlbmRDaGlsZChyKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIG51bGw9PXQ/dCsiIjoib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0P2RbZi5jYWxsKHQpXXx8Im9iamVjdCI6dHlwZW9mIHR9dmFyIE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IE0uZm4uaW5pdCh0LGUpfSxTPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZztmdW5jdGlvbiBFKHQpe3ZhciBlPSEhdCYmImxlbmd0aCJpbiB0JiZ0Lmxlbmd0aCxuPXgodCk7cmV0dXJuIWIodCkmJiF5KHQpJiYoImFycmF5Ij09PW58fDA9PT1lfHwibnVtYmVyIj09dHlwZW9mIGUmJmU+MCYmZS0xIGluIHQpfU0uZm49TS5wcm90b3R5cGU9e2pxdWVyeToiMy4zLjEiLGNvbnN0cnVjdG9yOk0sbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD91LmNhbGwodGhpcyk6dDwwP3RoaXNbdCt0aGlzLmxlbmd0aF06dGhpc1t0XX0scHVzaFN0YWNrOmZ1bmN0aW9uKHQpe3ZhciBlPU0ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLHQpO3JldHVybiBlLnByZXZPYmplY3Q9dGhpcyxlfSxlYWNoOmZ1bmN0aW9uKHQpe3JldHVybiBNLmVhY2godGhpcyx0KX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLm1hcCh0aGlzLGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuY2FsbChlLG4sZSl9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGgsbj0rdCsodDwwP2U6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4+PTAmJm48ZT9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6aCxzb3J0Om8uc29ydCxzcGxpY2U6by5zcGxpY2V9LE0uZXh0ZW5kPU0uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscixvLHM9YXJndW1lbnRzWzBdfHx7fSxhPTEsdT1hcmd1bWVudHMubGVuZ3RoLGM9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIHMmJihjPXMscz1hcmd1bWVudHNbYV18fHt9LGErKyksIm9iamVjdCI9PXR5cGVvZiBzfHxiKHMpfHwocz17fSksYT09PXUmJihzPXRoaXMsYS0tKTthPHU7YSsrKWlmKG51bGwhPSh0PWFyZ3VtZW50c1thXSkpZm9yKGUgaW4gdCluPXNbZV0scyE9PShpPXRbZV0pJiYoYyYmaSYmKE0uaXNQbGFpbk9iamVjdChpKXx8KHI9QXJyYXkuaXNBcnJheShpKSkpPyhyPyhyPSExLG89biYmQXJyYXkuaXNBcnJheShuKT9uOltdKTpvPW4mJk0uaXNQbGFpbk9iamVjdChuKT9uOnt9LHNbZV09TS5leHRlbmQoYyxvLGkpKTp2b2lkIDAhPT1pJiYoc1tlXT1pKSk7cmV0dXJuIHN9LE0uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy4zLjEiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKHQpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuISghdHx8IltvYmplY3QgT2JqZWN0XSIhPT1mLmNhbGwodCkpJiYoIShlPWEodCkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj1wLmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcikmJm0uY2FsbChuKT09PWcpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlO2ZvcihlIGluIHQpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24odCl7dyh0KX0sZWFjaDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MDtpZihFKHQpKWZvcihuPXQubGVuZ3RoO2k8biYmITEhPT1lLmNhbGwodFtpXSxpLHRbaV0pO2krKyk7ZWxzZSBmb3IoaSBpbiB0KWlmKCExPT09ZS5jYWxsKHRbaV0saSx0W2ldKSlicmVhaztyZXR1cm4gdH0sdHJpbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjoodCsiIikucmVwbGFjZShTLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZXx8W107cmV0dXJuIG51bGwhPXQmJihFKE9iamVjdCh0KSk/TS5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgdD9bdF06dCk6aC5jYWxsKG4sdCkpLG59LGluQXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1lPy0xOmwuY2FsbChlLHQsbil9LG1lcmdlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPStlLmxlbmd0aCxpPTAscj10Lmxlbmd0aDtpPG47aSsrKXRbcisrXT1lW2ldO3JldHVybiB0Lmxlbmd0aD1yLHR9LGdyZXA6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aCxzPSFuO3I8bztyKyspIWUodFtyXSxyKSE9PXMmJmkucHVzaCh0W3JdKTtyZXR1cm4gaX0sbWFwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MCxzPVtdO2lmKEUodCkpZm9yKGk9dC5sZW5ndGg7bzxpO28rKyludWxsIT0ocj1lKHRbb10sbyxuKSkmJnMucHVzaChyKTtlbHNlIGZvcihvIGluIHQpbnVsbCE9KHI9ZSh0W29dLG8sbikpJiZzLnB1c2gocik7cmV0dXJuIGMuYXBwbHkoW10scyl9LGd1aWQ6MSxzdXBwb3J0OnZ9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoTS5mbltTeW1ib2wuaXRlcmF0b3JdPW9bU3ltYm9sLml0ZXJhdG9yXSksTS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe2RbIltvYmplY3QgIitlKyJdIl09ZS50b0xvd2VyQ2FzZSgpfSk7dmFyIEE9Ci8qIQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4zLjMKICogaHR0cHM6Ly9zaXp6bGVqcy5jb20vCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIERhdGU6IDIwMTYtMDgtMDgKICovCmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnLHYsYix5LF89InNpenpsZSIrMSpuZXcgRGF0ZSx3PXQuZG9jdW1lbnQseD0wLE09MCxTPXN0KCksRT1zdCgpLEE9c3QoKSxDPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lJiYobD0hMCksMH0saz17fS5oYXNPd25Qcm9wZXJ0eSxPPVtdLFA9Ty5wb3AsVD1PLnB1c2gsaj1PLnB1c2gsST1PLnNsaWNlLEw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspaWYodFtuXT09PWUpcmV0dXJuIG47cmV0dXJuLTF9LEI9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixEPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixSPSIoPzpcXFxcLnxbXFx3LV18W15cMC1cXHhhMF0pKyIsej0iXFxbIitEKyIqKCIrUisiKSg/OiIrRCsiKihbKl4kfCF+XT89KSIrRCsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK1IrIikpfCkiK0QrIipcXF0iLE49IjooIitSKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18Iit6KyIpKil8LiopXFwpfCkiLFc9bmV3IFJlZ0V4cChEKyIrIiwiZyIpLHE9bmV3IFJlZ0V4cCgiXiIrRCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitEKyIrJCIsImciKSxIPW5ldyBSZWdFeHAoIl4iK0QrIiosIitEKyIqIiksRj1uZXcgUmVnRXhwKCJeIitEKyIqKFs+K35dfCIrRCsiKSIrRCsiKiIpLFY9bmV3IFJlZ0V4cCgiPSIrRCsiKihbXlxcXSdcIl0qPykiK0QrIipcXF0iLCJnIiksVT1uZXcgUmVnRXhwKE4pLEs9bmV3IFJlZ0V4cCgiXiIrUisiJCIpLFk9e0lEOm5ldyBSZWdFeHAoIl4jKCIrUisiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitSKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitSKyJ8WypdKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIreiksUFNFVURPOm5ldyBSZWdFeHAoIl4iK04pLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrRCsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrRCsiKig/OihbKy1dfCkiK0QrIiooXFxkKyl8KSkiK0QrIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitEKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK0QrIiooKD86LVxcZCk/XFxkKikiK0QrIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFg9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSwkPS9eaFxkJC9pLEc9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLEo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxaPS9bK35dLyxRPW5ldyBSZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrRCsiP3woIitEKyIpfC4pIiwiaWciKSx0dD1mdW5jdGlvbih0LGUsbil7dmFyIGk9IjB4IitlLTY1NTM2O3JldHVybiBpIT1pfHxuP2U6aTwwP1N0cmluZy5mcm9tQ2hhckNvZGUoaSs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShpPj4xMHw1NTI5NiwxMDIzJml8NTYzMjApfSxldD0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxudD1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJcMCI9PT10PyLvv70iOnQuc2xpY2UoMCwtMSkrIlxcIit0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK3R9LGl0PWZ1bmN0aW9uKCl7ZCgpfSxydD1idChmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuZGlzYWJsZWQmJigiZm9ybSJpbiB0fHwibGFiZWwiaW4gdCl9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7ai5hcHBseShPPUkuY2FsbCh3LmNoaWxkTm9kZXMpLHcuY2hpbGROb2RlcyksT1t3LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaCh0KXtqPXthcHBseTpPLmxlbmd0aD9mdW5jdGlvbih0LGUpe1QuYXBwbHkodCxJLmNhbGwoZSkpfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPTA7dFtuKytdPWVbaSsrXTspO3QubGVuZ3RoPW4tMX19fWZ1bmN0aW9uIG90KHQsZSxpLHIpe3ZhciBvLGEsYyxoLGwscCx2LGI9ZSYmZS5vd25lckRvY3VtZW50LHg9ZT9lLm5vZGVUeXBlOjk7aWYoaT1pfHxbXSwic3RyaW5nIiE9dHlwZW9mIHR8fCF0fHwxIT09eCYmOSE9PXgmJjExIT09eClyZXR1cm4gaTtpZighciYmKChlP2Uub3duZXJEb2N1bWVudHx8ZTp3KSE9PWYmJmQoZSksZT1lfHxmLG0pKXtpZigxMSE9PXgmJihsPUouZXhlYyh0KSkpaWYobz1sWzFdKXtpZig5PT09eCl7aWYoIShjPWUuZ2V0RWxlbWVudEJ5SWQobykpKXJldHVybiBpO2lmKGMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNlIGlmKGImJihjPWIuZ2V0RWxlbWVudEJ5SWQobykpJiZ5KGUsYykmJmMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNle2lmKGxbMl0pcmV0dXJuIGouYXBwbHkoaSxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpKSxpO2lmKChvPWxbM10pJiZuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gai5hcHBseShpLGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShvKSksaX1pZihuLnFzYSYmIUFbdCsiICJdJiYoIWd8fCFnLnRlc3QodCkpKXtpZigxIT09eCliPWUsdj10O2Vsc2UgaWYoIm9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2ZvcigoaD1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/aD1oLnJlcGxhY2UoZXQsbnQpOmUuc2V0QXR0cmlidXRlKCJpZCIsaD1fKSxhPShwPXModCkpLmxlbmd0aDthLS07KXBbYV09IiMiK2grIiAiK3Z0KHBbYV0pO3Y9cC5qb2luKCIsIiksYj1aLnRlc3QodCkmJm10KGUucGFyZW50Tm9kZSl8fGV9aWYodil0cnl7cmV0dXJuIGouYXBwbHkoaSxiLnF1ZXJ5U2VsZWN0b3JBbGwodikpLGl9Y2F0Y2godCl7fWZpbmFsbHl7aD09PV8mJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIHUodC5yZXBsYWNlKHEsIiQxIiksZSxpLHIpfWZ1bmN0aW9uIHN0KCl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uIGUobixyKXtyZXR1cm4gdC5wdXNoKG4rIiAiKT5pLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVt0LnNoaWZ0KCldLGVbbisiICJdPXJ9fWZ1bmN0aW9uIGF0KHQpe3JldHVybiB0W19dPSEwLHR9ZnVuY3Rpb24gdXQodCl7dmFyIGU9Zi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIXQoZSl9Y2F0Y2godCl7cmV0dXJuITF9ZmluYWxseXtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxlPW51bGx9fWZ1bmN0aW9uIGN0KHQsZSl7Zm9yKHZhciBuPXQuc3BsaXQoInwiKSxyPW4ubGVuZ3RoO3ItLTspaS5hdHRySGFuZGxlW25bcl1dPWV9ZnVuY3Rpb24gaHQodCxlKXt2YXIgbj1lJiZ0LGk9biYmMT09PXQubm9kZVR5cGUmJjE9PT1lLm5vZGVUeXBlJiZ0LnNvdXJjZUluZGV4LWUuc291cmNlSW5kZXg7aWYoaSlyZXR1cm4gaTtpZihuKWZvcig7bj1uLm5leHRTaWJsaW5nOylpZihuPT09ZSlyZXR1cm4tMTtyZXR1cm4gdD8xOi0xfWZ1bmN0aW9uIGx0KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09bnx8ImJ1dHRvbiI9PT1uKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gZnQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiJmb3JtImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/ImxhYmVsImluIGU/ImxhYmVsImluIGUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT10OmUuZGlzYWJsZWQ9PT10OmUuaXNEaXNhYmxlZD09PXR8fGUuaXNEaXNhYmxlZCE9PSF0JiZydChlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6ImxhYmVsImluIGUmJmUuZGlzYWJsZWQ9PT10fX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4gYXQoZnVuY3Rpb24oZSl7cmV0dXJuIGU9K2UsYXQoZnVuY3Rpb24obixpKXtmb3IodmFyIHIsbz10KFtdLG4ubGVuZ3RoLGUpLHM9by5sZW5ndGg7cy0tOyluW3I9b1tzXV0mJihuW3JdPSEoaVtyXT1uW3JdKSl9KX0pfWZ1bmN0aW9uIG10KHQpe3JldHVybiB0JiZ2b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZ0fWZvcihlIGluIG49b3Quc3VwcG9ydD17fSxvPW90LmlzWE1MPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJih0Lm93bmVyRG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hIWUmJiJIVE1MIiE9PWUubm9kZU5hbWV9LGQ9b3Quc2V0RG9jdW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUscixzPXQ/dC5vd25lckRvY3VtZW50fHx0Onc7cmV0dXJuIHMhPT1mJiY5PT09cy5ub2RlVHlwZSYmcy5kb2N1bWVudEVsZW1lbnQ/KHA9KGY9cykuZG9jdW1lbnRFbGVtZW50LG09IW8oZiksdyE9PWYmJihyPWYuZGVmYXVsdFZpZXcpJiZyLnRvcCE9PXImJihyLmFkZEV2ZW50TGlzdGVuZXI/ci5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGl0LCExKTpyLmF0dGFjaEV2ZW50JiZyLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsaXQpKSxuLmF0dHJpYnV0ZXM9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lPSJpIiwhdC5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksbi5nZXRFbGVtZW50c0J5VGFnTmFtZT11dChmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBlbmRDaGlsZChmLmNyZWF0ZUNvbW1lbnQoIiIpKSwhdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1HLnRlc3QoZi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxuLmdldEJ5SWQ9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHAuYXBwZW5kQ2hpbGQodCkuaWQ9XywhZi5nZXRFbGVtZW50c0J5TmFtZXx8IWYuZ2V0RWxlbWVudHNCeU5hbWUoXykubGVuZ3RofSksbi5nZXRCeUlkPyhpLmZpbHRlci5JRD1mdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoUSx0dCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiaWQiKT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbj1lLmdldEVsZW1lbnRCeUlkKHQpO3JldHVybiBuP1tuXTpbXX19KTooaS5maWx0ZXIuSUQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKFEsdHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj12b2lkIDAhPT10LmdldEF0dHJpYnV0ZU5vZGUmJnQuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbiYmbi52YWx1ZT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbixpLHIsbz1lLmdldEVsZW1lbnRCeUlkKHQpO2lmKG8pe2lmKChuPW8uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJm4udmFsdWU9PT10KXJldHVybltvXTtmb3Iocj1lLmdldEVsZW1lbnRzQnlOYW1lKHQpLGk9MDtvPXJbaSsrXTspaWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PXQpcmV0dXJuW29dfXJldHVybltdfX0pLGkuZmluZC5UQUc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk6bi5xc2E/ZS5xdWVyeVNlbGVjdG9yQWxsKHQpOnZvaWQgMH06ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9MCxvPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk7aWYoIioiPT09dCl7Zm9yKDtuPW9bcisrXTspMT09PW4ubm9kZVR5cGUmJmkucHVzaChuKTtyZXR1cm4gaX1yZXR1cm4gb30saS5maW5kLkNMQVNTPW4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJm0pcmV0dXJuIGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KX0sdj1bXSxnPVtdLChuLnFzYT1HLnRlc3QoZi5xdWVyeVNlbGVjdG9yQWxsKSkmJih1dChmdW5jdGlvbih0KXtwLmFwcGVuZENoaWxkKHQpLmlubmVySFRNTD0iPGEgaWQ9JyIrXysiJz48L2E+PHNlbGVjdCBpZD0nIitfKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLHQucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJmcucHVzaCgiWypeJF09IitEKyIqKD86Jyd8XCJcIikiKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGcucHVzaCgiXFxbIitEKyIqKD86dmFsdWV8IitCKyIpIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrXysiLV0iKS5sZW5ndGh8fGcucHVzaCgifj0iKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxnLnB1c2goIjpjaGVja2VkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrXysiKyoiKS5sZW5ndGh8fGcucHVzaCgiLiMuK1srfl0iKX0pLHV0KGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciBlPWYuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLHQuYXBwZW5kQ2hpbGQoZSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLHQucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJmcucHVzaCgibmFtZSIrRCsiKlsqXiR8IX5dPz0iKSwyIT09dC5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmZy5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLHAuYXBwZW5kQ2hpbGQodCkuZGlzYWJsZWQ9ITAsMiE9PXQucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZnLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IiksZy5wdXNoKCIsLio6Iil9KSksKG4ubWF0Y2hlc1NlbGVjdG9yPUcudGVzdChiPXAubWF0Y2hlc3x8cC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHAubW96TWF0Y2hlc1NlbGVjdG9yfHxwLm9NYXRjaGVzU2VsZWN0b3J8fHAubXNNYXRjaGVzU2VsZWN0b3IpKSYmdXQoZnVuY3Rpb24odCl7bi5kaXNjb25uZWN0ZWRNYXRjaD1iLmNhbGwodCwiKiIpLGIuY2FsbCh0LCJbcyE9JyddOngiKSx2LnB1c2goIiE9IixOKX0pLGc9Zy5sZW5ndGgmJm5ldyBSZWdFeHAoZy5qb2luKCJ8IikpLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLGU9Ry50ZXN0KHAuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9ZXx8Ry50ZXN0KHAuY29udGFpbnMpP2Z1bmN0aW9uKHQsZSl7dmFyIG49OT09PXQubm9kZVR5cGU/dC5kb2N1bWVudEVsZW1lbnQ6dCxpPWUmJmUucGFyZW50Tm9kZTtyZXR1cm4gdD09PWl8fCEoIWl8fDEhPT1pLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhpKTp0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGkpKSl9OmZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IoO2U9ZS5wYXJlbnROb2RlOylpZihlPT09dClyZXR1cm4hMDtyZXR1cm4hMX0sQz1lP2Z1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIGw9ITAsMDt2YXIgaT0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gaXx8KDEmKGk9KHQub3duZXJEb2N1bWVudHx8dCk9PT0oZS5vd25lckRvY3VtZW50fHxlKT90LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpOjEpfHwhbi5zb3J0RGV0YWNoZWQmJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk9PT1pP3Q9PT1mfHx0Lm93bmVyRG9jdW1lbnQ9PT13JiZ5KHcsdCk/LTE6ZT09PWZ8fGUub3duZXJEb2N1bWVudD09PXcmJnkodyxlKT8xOmg/TChoLHQpLUwoaCxlKTowOjQmaT8tMToxKX06ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4gbD0hMCwwO3ZhciBuLGk9MCxyPXQucGFyZW50Tm9kZSxvPWUucGFyZW50Tm9kZSxzPVt0XSxhPVtlXTtpZighcnx8IW8pcmV0dXJuIHQ9PT1mPy0xOmU9PT1mPzE6cj8tMTpvPzE6aD9MKGgsdCktTChoLGUpOjA7aWYocj09PW8pcmV0dXJuIGh0KHQsZSk7Zm9yKG49dDtuPW4ucGFyZW50Tm9kZTspcy51bnNoaWZ0KG4pO2ZvcihuPWU7bj1uLnBhcmVudE5vZGU7KWEudW5zaGlmdChuKTtmb3IoO3NbaV09PT1hW2ldOylpKys7cmV0dXJuIGk/aHQoc1tpXSxhW2ldKTpzW2ldPT09dz8tMTphW2ldPT09dz8xOjB9LGYpOmZ9LG90Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gb3QodCxudWxsLG51bGwsZSl9LG90Lm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbih0LGUpe2lmKCh0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSxlPWUucmVwbGFjZShWLCI9JyQxJ10iKSxuLm1hdGNoZXNTZWxlY3RvciYmbSYmIUFbZSsiICJdJiYoIXZ8fCF2LnRlc3QoZSkpJiYoIWd8fCFnLnRlc3QoZSkpKXRyeXt2YXIgaT1iLmNhbGwodCxlKTtpZihpfHxuLmRpc2Nvbm5lY3RlZE1hdGNofHx0LmRvY3VtZW50JiYxMSE9PXQuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGl9Y2F0Y2godCl7fXJldHVybiBvdChlLGYsbnVsbCxbdF0pLmxlbmd0aD4wfSxvdC5jb250YWlucz1mdW5jdGlvbih0LGUpe3JldHVybih0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSx5KHQsZSl9LG90LmF0dHI9ZnVuY3Rpb24odCxlKXsodC5vd25lckRvY3VtZW50fHx0KSE9PWYmJmQodCk7dmFyIHI9aS5hdHRySGFuZGxlW2UudG9Mb3dlckNhc2UoKV0sbz1yJiZrLmNhbGwoaS5hdHRySGFuZGxlLGUudG9Mb3dlckNhc2UoKSk/cih0LGUsIW0pOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09bz9vOm4uYXR0cmlidXRlc3x8IW0/dC5nZXRBdHRyaWJ1dGUoZSk6KG89dC5nZXRBdHRyaWJ1dGVOb2RlKGUpKSYmby5zcGVjaWZpZWQ/by52YWx1ZTpudWxsfSxvdC5lc2NhcGU9ZnVuY3Rpb24odCl7cmV0dXJuKHQrIiIpLnJlcGxhY2UoZXQsbnQpfSxvdC5lcnJvcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrdCl9LG90LnVuaXF1ZVNvcnQ9ZnVuY3Rpb24odCl7dmFyIGUsaT1bXSxyPTAsbz0wO2lmKGw9IW4uZGV0ZWN0RHVwbGljYXRlcyxoPSFuLnNvcnRTdGFibGUmJnQuc2xpY2UoMCksdC5zb3J0KEMpLGwpe2Zvcig7ZT10W28rK107KWU9PT10W29dJiYocj1pLnB1c2gobykpO2Zvcig7ci0tOyl0LnNwbGljZShpW3JdLDEpfXJldHVybiBoPW51bGwsdH0scj1vdC5nZXRUZXh0PWZ1bmN0aW9uKHQpe3ZhciBlLG49IiIsaT0wLG89dC5ub2RlVHlwZTtpZihvKXtpZigxPT09b3x8OT09PW98fDExPT09byl7aWYoInN0cmluZyI9PXR5cGVvZiB0LnRleHRDb250ZW50KXJldHVybiB0LnRleHRDb250ZW50O2Zvcih0PXQuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyluKz1yKHQpfWVsc2UgaWYoMz09PW98fDQ9PT1vKXJldHVybiB0Lm5vZGVWYWx1ZX1lbHNlIGZvcig7ZT10W2krK107KW4rPXIoZSk7cmV0dXJuIG59LChpPW90LnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmF0LG1hdGNoOlksYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0ucmVwbGFjZShRLHR0KSx0WzNdPSh0WzNdfHx0WzRdfHx0WzVdfHwiIikucmVwbGFjZShRLHR0KSwifj0iPT09dFsyXSYmKHRbM109IiAiK3RbM10rIiAiKSx0LnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PXRbMV0uc2xpY2UoMCwzKT8odFszXXx8b3QuZXJyb3IodFswXSksdFs0XT0rKHRbNF0/dFs1XSsodFs2XXx8MSk6MiooImV2ZW4iPT09dFszXXx8Im9kZCI9PT10WzNdKSksdFs1XT0rKHRbN10rdFs4XXx8Im9kZCI9PT10WzNdKSk6dFszXSYmb3QuZXJyb3IodFswXSksdH0sUFNFVURPOmZ1bmN0aW9uKHQpe3ZhciBlLG49IXRbNl0mJnRbMl07cmV0dXJuIFkuQ0hJTEQudGVzdCh0WzBdKT9udWxsOih0WzNdP3RbMl09dFs0XXx8dFs1XXx8IiI6biYmVS50ZXN0KG4pJiYoZT1zKG4sITApKSYmKGU9bi5pbmRleE9mKCIpIixuLmxlbmd0aC1lKS1uLmxlbmd0aCkmJih0WzBdPXRbMF0uc2xpY2UoMCxlKSx0WzJdPW4uc2xpY2UoMCxlKSksdC5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZShRLHR0KS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PXQ/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWV9fSxDTEFTUzpmdW5jdGlvbih0KXt2YXIgZT1TW3QrIiAiXTtyZXR1cm4gZXx8KGU9bmV3IFJlZ0V4cCgiKF58IitEKyIpIit0KyIoIitEKyJ8JCkiKSkmJlModCxmdW5jdGlvbih0KXtyZXR1cm4gZS50ZXN0KCJzdHJpbmciPT10eXBlb2YgdC5jbGFzc05hbWUmJnQuY2xhc3NOYW1lfHx2b2lkIDAhPT10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9b3QuYXR0cihpLHQpO3JldHVybiBudWxsPT1yPyIhPSI9PT1lOiFlfHwocis9IiIsIj0iPT09ZT9yPT09bjoiIT0iPT09ZT9yIT09bjoiXj0iPT09ZT9uJiYwPT09ci5pbmRleE9mKG4pOiIqPSI9PT1lP24mJnIuaW5kZXhPZihuKT4tMToiJD0iPT09ZT9uJiZyLnNsaWNlKC1uLmxlbmd0aCk9PT1uOiJ+PSI9PT1lPygiICIrci5yZXBsYWNlKFcsIiAiKSsiICIpLmluZGV4T2Yobik+LTE6Inw9Ij09PWUmJihyPT09bnx8ci5zbGljZSgwLG4ubGVuZ3RoKzEpPT09bisiLSIpKX19LENISUxEOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89Im50aCIhPT10LnNsaWNlKDAsMykscz0ibGFzdCIhPT10LnNsaWNlKC00KSxhPSJvZi10eXBlIj09PWU7cmV0dXJuIDE9PT1pJiYwPT09cj9mdW5jdGlvbih0KXtyZXR1cm4hIXQucGFyZW50Tm9kZX06ZnVuY3Rpb24oZSxuLHUpe3ZhciBjLGgsbCxkLGYscCxtPW8hPT1zPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsZz1lLnBhcmVudE5vZGUsdj1hJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYj0hdSYmIWEseT0hMTtpZihnKXtpZihvKXtmb3IoO207KXtmb3IoZD1lO2Q9ZFttXTspaWYoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT12OjE9PT1kLm5vZGVUeXBlKXJldHVybiExO3A9bT0ib25seSI9PT10JiYhcCYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihwPVtzP2cuZmlyc3RDaGlsZDpnLmxhc3RDaGlsZF0scyYmYil7Zm9yKHk9KGY9KGM9KGg9KGw9KGQ9ZylbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pJiZjWzJdLGQ9ZiYmZy5jaGlsZE5vZGVzW2ZdO2Q9KytmJiZkJiZkW21dfHwoeT1mPTApfHxwLnBvcCgpOylpZigxPT09ZC5ub2RlVHlwZSYmKyt5JiZkPT09ZSl7aFt0XT1beCxmLHldO2JyZWFrfX1lbHNlIGlmKGImJih5PWY9KGM9KGg9KGw9KGQ9ZSlbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pLCExPT09eSlmb3IoOyhkPSsrZiYmZCYmZFttXXx8KHk9Zj0wKXx8cC5wb3AoKSkmJigoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT12OjEhPT1kLm5vZGVUeXBlKXx8ISsreXx8KGImJigoaD0obD1kW19dfHwoZFtfXT17fSkpW2QudW5pcXVlSURdfHwobFtkLnVuaXF1ZUlEXT17fSkpW3RdPVt4LHldKSxkIT09ZSkpOyk7cmV0dXJuKHktPXIpPT09aXx8eSVpPT0wJiZ5L2k+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKHQsZSl7dmFyIG4scj1pLnBzZXVkb3NbdF18fGkuc2V0RmlsdGVyc1t0LnRvTG93ZXJDYXNlKCldfHxvdC5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK3QpO3JldHVybiByW19dP3IoZSk6ci5sZW5ndGg+MT8obj1bdCx0LCIiLGVdLGkuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eSh0LnRvTG93ZXJDYXNlKCkpP2F0KGZ1bmN0aW9uKHQsbil7Zm9yKHZhciBpLG89cih0LGUpLHM9by5sZW5ndGg7cy0tOyl0W2k9TCh0LG9bc10pXT0hKG5baV09b1tzXSl9KTpmdW5jdGlvbih0KXtyZXR1cm4gcih0LDAsbil9KTpyfX0scHNldWRvczp7bm90OmF0KGZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W10saT1hKHQucmVwbGFjZShxLCIkMSIpKTtyZXR1cm4gaVtfXT9hdChmdW5jdGlvbih0LGUsbixyKXtmb3IodmFyIG8scz1pKHQsbnVsbCxyLFtdKSxhPXQubGVuZ3RoO2EtLTspKG89c1thXSkmJih0W2FdPSEoZVthXT1vKSl9KTpmdW5jdGlvbih0LHIsbyl7cmV0dXJuIGVbMF09dCxpKGUsbnVsbCxvLG4pLGVbMF09bnVsbCwhbi5wb3AoKX19KSxoYXM6YXQoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBvdCh0LGUpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOmF0KGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZShRLHR0KSxmdW5jdGlvbihlKXtyZXR1cm4oZS50ZXh0Q29udGVudHx8ZS5pbm5lclRleHR8fHIoZSkpLmluZGV4T2YodCk+LTF9fSksbGFuZzphdChmdW5jdGlvbih0KXtyZXR1cm4gSy50ZXN0KHR8fCIiKXx8b3QuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrdCksdD10LnJlcGxhY2UoUSx0dCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgbjtkb3tpZihuPW0/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihuPW4udG9Mb3dlckNhc2UoKSk9PT10fHwwPT09bi5pbmRleE9mKHQrIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciBuPXQubG9jYXRpb24mJnQubG9jYXRpb24uaGFzaDtyZXR1cm4gbiYmbi5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1wfSxmb2N1czpmdW5jdGlvbih0KXtyZXR1cm4gdD09PWYuYWN0aXZlRWxlbWVudCYmKCFmLmhhc0ZvY3VzfHxmLmhhc0ZvY3VzKCkpJiYhISh0LnR5cGV8fHQuaHJlZnx8fnQudGFiSW5kZXgpfSxlbmFibGVkOmZ0KCExKSxkaXNhYmxlZDpmdCghMCksY2hlY2tlZDpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiEhdC5jaGVja2VkfHwib3B0aW9uIj09PWUmJiEhdC5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT10LnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbih0KXtmb3IodD10LmZpcnN0Q2hpbGQ7dDt0PXQubmV4dFNpYmxpbmcpaWYodC5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIWkucHNldWRvcy5lbXB0eSh0KX0saGVhZGVyOmZ1bmN0aW9uKHQpe3JldHVybiAkLnRlc3QodC5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBYLnRlc3QodC5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiJidXR0b24iPT09dC50eXBlfHwiYnV0dG9uIj09PWV9LHRleHQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuImlucHV0Ij09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09dC50eXBlJiYobnVsbD09KGU9dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWUudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnB0KGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpwdChmdW5jdGlvbih0LGUpe3JldHVybltlLTFdfSksZXE6cHQoZnVuY3Rpb24odCxlLG4pe3JldHVybltuPDA/bitlOm5dfSksZXZlbjpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLG9kZDpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0xO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLGx0OnB0KGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bjwwP24rZTpuOy0taT49MDspdC5wdXNoKGkpO3JldHVybiB0fSksZ3Q6cHQoZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1uPDA/bitlOm47KytpPGU7KXQucHVzaChpKTtyZXR1cm4gdH0pfX0pLnBzZXVkb3MubnRoPWkucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0paS5wc2V1ZG9zW2VdPWx0KGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0paS5wc2V1ZG9zW2VdPWR0KGUpO2Z1bmN0aW9uIGd0KCl7fWZ1bmN0aW9uIHZ0KHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGgsaT0iIjtlPG47ZSsrKWkrPXRbZV0udmFsdWU7cmV0dXJuIGl9ZnVuY3Rpb24gYnQodCxlLG4pe3ZhciBpPWUuZGlyLHI9ZS5uZXh0LG89cnx8aSxzPW4mJiJwYXJlbnROb2RlIj09PW8sYT1NKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSxuLHIpe2Zvcig7ZT1lW2ldOylpZigxPT09ZS5ub2RlVHlwZXx8cylyZXR1cm4gdChlLG4scik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsbix1KXt2YXIgYyxoLGwsZD1beCxhXTtpZih1KXtmb3IoO2U9ZVtpXTspaWYoKDE9PT1lLm5vZGVUeXBlfHxzKSYmdChlLG4sdSkpcmV0dXJuITB9ZWxzZSBmb3IoO2U9ZVtpXTspaWYoMT09PWUubm9kZVR5cGV8fHMpaWYoaD0obD1lW19dfHwoZVtfXT17fSkpW2UudW5pcXVlSURdfHwobFtlLnVuaXF1ZUlEXT17fSksciYmcj09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbaV18fGU7ZWxzZXtpZigoYz1oW29dKSYmY1swXT09PXgmJmNbMV09PT1hKXJldHVybiBkWzJdPWNbMl07aWYoaFtvXT1kLGRbMl09dChlLG4sdSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHl0KHQpe3JldHVybiB0Lmxlbmd0aD4xP2Z1bmN0aW9uKGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZighdFtyXShlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9OnRbMF19ZnVuY3Rpb24gX3QodCxlLG4saSxyKXtmb3IodmFyIG8scz1bXSxhPTAsdT10Lmxlbmd0aCxjPW51bGwhPWU7YTx1O2ErKykobz10W2FdKSYmKG4mJiFuKG8saSxyKXx8KHMucHVzaChvKSxjJiZlLnB1c2goYSkpKTtyZXR1cm4gc31mdW5jdGlvbiB3dCh0LGUsbixpLHIsbyl7cmV0dXJuIGkmJiFpW19dJiYoaT13dChpKSksciYmIXJbX10mJihyPXd0KHIsbykpLGF0KGZ1bmN0aW9uKG8scyxhLHUpe3ZhciBjLGgsbCxkPVtdLGY9W10scD1zLmxlbmd0aCxtPW98fGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9MCxyPWUubGVuZ3RoO2k8cjtpKyspb3QodCxlW2ldLG4pO3JldHVybiBufShlfHwiKiIsYS5ub2RlVHlwZT9bYV06YSxbXSksZz0hdHx8IW8mJmU/bTpfdChtLGQsdCxhLHUpLHY9bj9yfHwobz90OnB8fGkpP1tdOnM6ZztpZihuJiZuKGcsdixhLHUpLGkpZm9yKGM9X3QodixmKSxpKGMsW10sYSx1KSxoPWMubGVuZ3RoO2gtLTspKGw9Y1toXSkmJih2W2ZbaF1dPSEoZ1tmW2hdXT1sKSk7aWYobyl7aWYocnx8dCl7aWYocil7Zm9yKGM9W10saD12Lmxlbmd0aDtoLS07KShsPXZbaF0pJiZjLnB1c2goZ1toXT1sKTtyKG51bGwsdj1bXSxjLHUpfWZvcihoPXYubGVuZ3RoO2gtLTspKGw9dltoXSkmJihjPXI/TChvLGwpOmRbaF0pPi0xJiYob1tjXT0hKHNbY109bCkpfX1lbHNlIHY9X3Qodj09PXM/di5zcGxpY2UocCx2Lmxlbmd0aCk6dikscj9yKG51bGwscyx2LHUpOmouYXBwbHkocyx2KX0pfWZ1bmN0aW9uIHh0KHQpe2Zvcih2YXIgZSxuLHIsbz10Lmxlbmd0aCxzPWkucmVsYXRpdmVbdFswXS50eXBlXSxhPXN8fGkucmVsYXRpdmVbIiAiXSx1PXM/MTowLGg9YnQoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSxhLCEwKSxsPWJ0KGZ1bmN0aW9uKHQpe3JldHVybiBMKGUsdCk+LTF9LGEsITApLGQ9W2Z1bmN0aW9uKHQsbixpKXt2YXIgcj0hcyYmKGl8fG4hPT1jKXx8KChlPW4pLm5vZGVUeXBlP2godCxuLGkpOmwodCxuLGkpKTtyZXR1cm4gZT1udWxsLHJ9XTt1PG87dSsrKWlmKG49aS5yZWxhdGl2ZVt0W3VdLnR5cGVdKWQ9W2J0KHl0KGQpLG4pXTtlbHNle2lmKChuPWkuZmlsdGVyW3RbdV0udHlwZV0uYXBwbHkobnVsbCx0W3VdLm1hdGNoZXMpKVtfXSl7Zm9yKHI9Kyt1O3I8byYmIWkucmVsYXRpdmVbdFtyXS50eXBlXTtyKyspO3JldHVybiB3dCh1PjEmJnl0KGQpLHU+MSYmdnQodC5zbGljZSgwLHUtMSkuY29uY2F0KHt2YWx1ZToiICI9PT10W3UtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShxLCIkMSIpLG4sdTxyJiZ4dCh0LnNsaWNlKHUscikpLHI8byYmeHQodD10LnNsaWNlKHIpKSxyPG8mJnZ0KHQpKX1kLnB1c2gobil9cmV0dXJuIHl0KGQpfXJldHVybiBndC5wcm90b3R5cGU9aS5maWx0ZXJzPWkucHNldWRvcyxpLnNldEZpbHRlcnM9bmV3IGd0LHM9b3QudG9rZW5pemU9ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8scyxhLHUsYyxoPUVbdCsiICJdO2lmKGgpcmV0dXJuIGU/MDpoLnNsaWNlKDApO2ZvcihhPXQsdT1bXSxjPWkucHJlRmlsdGVyO2E7KXtmb3IocyBpbiBuJiYhKHI9SC5leGVjKGEpKXx8KHImJihhPWEuc2xpY2UoclswXS5sZW5ndGgpfHxhKSx1LnB1c2gobz1bXSkpLG49ITEsKHI9Ri5leGVjKGEpKSYmKG49ci5zaGlmdCgpLG8ucHVzaCh7dmFsdWU6bix0eXBlOnJbMF0ucmVwbGFjZShxLCIgIil9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKSxpLmZpbHRlcikhKHI9WVtzXS5leGVjKGEpKXx8Y1tzXSYmIShyPWNbc10ocikpfHwobj1yLnNoaWZ0KCksby5wdXNoKHt2YWx1ZTpuLHR5cGU6cyxtYXRjaGVzOnJ9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gZT9hLmxlbmd0aDphP290LmVycm9yKHQpOkUodCx1KS5zbGljZSgwKX0sYT1vdC5jb21waWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1bXSxvPVtdLGE9QVt0KyIgIl07aWYoIWEpe2ZvcihlfHwoZT1zKHQpKSxuPWUubGVuZ3RoO24tLTspKGE9eHQoZVtuXSkpW19dP3IucHVzaChhKTpvLnB1c2goYSk7KGE9QSh0LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5sZW5ndGg+MCxyPXQubGVuZ3RoPjAsbz1mdW5jdGlvbihvLHMsYSx1LGgpe3ZhciBsLHAsZyx2PTAsYj0iMCIseT1vJiZbXSxfPVtdLHc9YyxNPW98fHImJmkuZmluZC5UQUcoIioiLGgpLFM9eCs9bnVsbD09dz8xOk1hdGgucmFuZG9tKCl8fC4xLEU9TS5sZW5ndGg7Zm9yKGgmJihjPXM9PT1mfHxzfHxoKTtiIT09RSYmbnVsbCE9KGw9TVtiXSk7YisrKXtpZihyJiZsKXtmb3IocD0wLHN8fGwub3duZXJEb2N1bWVudD09PWZ8fChkKGwpLGE9IW0pO2c9dFtwKytdOylpZihnKGwsc3x8ZixhKSl7dS5wdXNoKGwpO2JyZWFrfWgmJih4PVMpfW4mJigobD0hZyYmbCkmJnYtLSxvJiZ5LnB1c2gobCkpfWlmKHYrPWIsbiYmYiE9PXYpe2ZvcihwPTA7Zz1lW3ArK107KWcoeSxfLHMsYSk7aWYobyl7aWYodj4wKWZvcig7Yi0tOyl5W2JdfHxfW2JdfHwoX1tiXT1QLmNhbGwodSkpO189X3QoXyl9ai5hcHBseSh1LF8pLGgmJiFvJiZfLmxlbmd0aD4wJiZ2K2UubGVuZ3RoPjEmJm90LnVuaXF1ZVNvcnQodSl9cmV0dXJuIGgmJih4PVMsYz13KSx5fTtyZXR1cm4gbj9hdChvKTpvfShvLHIpKSkuc2VsZWN0b3I9dH1yZXR1cm4gYX0sdT1vdC5zZWxlY3Q9ZnVuY3Rpb24odCxlLG4scil7dmFyIG8sdSxjLGgsbCxkPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LGY9IXImJnModD1kLnNlbGVjdG9yfHx0KTtpZihuPW58fFtdLDE9PT1mLmxlbmd0aCl7aWYoKHU9ZlswXT1mWzBdLnNsaWNlKDApKS5sZW5ndGg+MiYmIklEIj09PShjPXVbMF0pLnR5cGUmJjk9PT1lLm5vZGVUeXBlJiZtJiZpLnJlbGF0aXZlW3VbMV0udHlwZV0pe2lmKCEoZT0oaS5maW5kLklEKGMubWF0Y2hlc1swXS5yZXBsYWNlKFEsdHQpLGUpfHxbXSlbMF0pKXJldHVybiBuO2QmJihlPWUucGFyZW50Tm9kZSksdD10LnNsaWNlKHUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcihvPVkubmVlZHNDb250ZXh0LnRlc3QodCk/MDp1Lmxlbmd0aDtvLS0mJihjPXVbb10sIWkucmVsYXRpdmVbaD1jLnR5cGVdKTspaWYoKGw9aS5maW5kW2hdKSYmKHI9bChjLm1hdGNoZXNbMF0ucmVwbGFjZShRLHR0KSxaLnRlc3QodVswXS50eXBlKSYmbXQoZS5wYXJlbnROb2RlKXx8ZSkpKXtpZih1LnNwbGljZShvLDEpLCEodD1yLmxlbmd0aCYmdnQodSkpKXJldHVybiBqLmFwcGx5KG4sciksbjticmVha319cmV0dXJuKGR8fGEodCxmKSkocixlLCFtLG4sIWV8fFoudGVzdCh0KSYmbXQoZS5wYXJlbnROb2RlKXx8ZSksbn0sbi5zb3J0U3RhYmxlPV8uc3BsaXQoIiIpLnNvcnQoQykuam9pbigiIik9PT1fLG4uZGV0ZWN0RHVwbGljYXRlcz0hIWwsZCgpLG4uc29ydERldGFjaGVkPXV0KGZ1bmN0aW9uKHQpe3JldHVybiAxJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09dC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGN0KCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbih0LGUsbil7aWYoIW4pcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGUsInR5cGUiPT09ZS50b0xvd2VyQ2FzZSgpPzE6Mil9KSxuLmF0dHJpYnV0ZXMmJnV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGlucHV0Lz4iLHQuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT10LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGN0KCJ2YWx1ZSIsZnVuY3Rpb24odCxlLG4pe2lmKCFuJiYiaW5wdXQiPT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB0LmRlZmF1bHRWYWx1ZX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10LmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxjdChCLGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZighbilyZXR1cm4hMD09PXRbZV0/ZS50b0xvd2VyQ2FzZSgpOihpPXQuZ2V0QXR0cmlidXRlTm9kZShlKSkmJmkuc3BlY2lmaWVkP2kudmFsdWU6bnVsbH0pLG90fShuKTtNLmZpbmQ9QSxNLmV4cHI9QS5zZWxlY3RvcnMsTS5leHByWyI6Il09TS5leHByLnBzZXVkb3MsTS51bmlxdWVTb3J0PU0udW5pcXVlPUEudW5pcXVlU29ydCxNLnRleHQ9QS5nZXRUZXh0LE0uaXNYTUxEb2M9QS5pc1hNTCxNLmNvbnRhaW5zPUEuY29udGFpbnMsTS5lc2NhcGVTZWxlY3Rvcj1BLmVzY2FwZTt2YXIgQz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9dm9pZCAwIT09bjsodD10W2VdKSYmOSE9PXQubm9kZVR5cGU7KWlmKDE9PT10Lm5vZGVUeXBlKXtpZihyJiZNKHQpLmlzKG4pKWJyZWFrO2kucHVzaCh0KX1yZXR1cm4gaX0saz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXTt0O3Q9dC5uZXh0U2libGluZykxPT09dC5ub2RlVHlwZSYmdCE9PWUmJm4ucHVzaCh0KTtyZXR1cm4gbn0sTz1NLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O2Z1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZS50b0xvd2VyQ2FzZSgpfXZhciBUPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8/Pig/OjxcL1wxPnwpJC9pO2Z1bmN0aW9uIGoodCxlLG4pe3JldHVybiBiKGUpP00uZ3JlcCh0LGZ1bmN0aW9uKHQsaSl7cmV0dXJuISFlLmNhbGwodCxpLHQpIT09bn0pOmUubm9kZVR5cGU/TS5ncmVwKHQsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lIT09bn0pOiJzdHJpbmciIT10eXBlb2YgZT9NLmdyZXAodCxmdW5jdGlvbih0KXtyZXR1cm4gbC5jYWxsKGUsdCk+LTEhPT1ufSk6TS5maWx0ZXIoZSx0LG4pfU0uZmlsdGVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lWzBdO3JldHVybiBuJiYodD0iOm5vdCgiK3QrIikiKSwxPT09ZS5sZW5ndGgmJjE9PT1pLm5vZGVUeXBlP00uZmluZC5tYXRjaGVzU2VsZWN0b3IoaSx0KT9baV06W106TS5maW5kLm1hdGNoZXModCxNLmdyZXAoZSxmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubm9kZVR5cGV9KSl9LE0uZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlLG4saT10aGlzLmxlbmd0aCxyPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0aGlzLnB1c2hTdGFjayhNKHQpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihlPTA7ZTxpO2UrKylpZihNLmNvbnRhaW5zKHJbZV0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKG49dGhpcy5wdXNoU3RhY2soW10pLGU9MDtlPGk7ZSsrKU0uZmluZCh0LHJbZV0sbik7cmV0dXJuIGk+MT9NLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITEpKX0sbm90OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITApKX0saXM6ZnVuY3Rpb24odCl7cmV0dXJuISFqKHRoaXMsInN0cmluZyI9PXR5cGVvZiB0JiZPLnRlc3QodCk/TSh0KTp0fHxbXSwhMSkubGVuZ3RofX0pO3ZhciBJLEw9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoTS5mbi5pbml0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyO2lmKCF0KXJldHVybiB0aGlzO2lmKG49bnx8SSwic3RyaW5nIj09dHlwZW9mIHQpe2lmKCEoaT0iPCI9PT10WzBdJiYiPiI9PT10W3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aD49Mz9bbnVsbCx0LG51bGxdOkwuZXhlYyh0KSl8fCFpWzFdJiZlKXJldHVybiFlfHxlLmpxdWVyeT8oZXx8bikuZmluZCh0KTp0aGlzLmNvbnN0cnVjdG9yKGUpLmZpbmQodCk7aWYoaVsxXSl7aWYoZT1lIGluc3RhbmNlb2YgTT9lWzBdOmUsTS5tZXJnZSh0aGlzLE0ucGFyc2VIVE1MKGlbMV0sZSYmZS5ub2RlVHlwZT9lLm93bmVyRG9jdW1lbnR8fGU6cywhMCkpLFQudGVzdChpWzFdKSYmTS5pc1BsYWluT2JqZWN0KGUpKWZvcihpIGluIGUpYih0aGlzW2ldKT90aGlzW2ldKGVbaV0pOnRoaXMuYXR0cihpLGVbaV0pO3JldHVybiB0aGlzfXJldHVybihyPXMuZ2V0RWxlbWVudEJ5SWQoaVsyXSkpJiYodGhpc1swXT1yLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIHQubm9kZVR5cGU/KHRoaXNbMF09dCx0aGlzLmxlbmd0aD0xLHRoaXMpOmIodCk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KHQpOnQoTSk6TS5tYWtlQXJyYXkodCx0aGlzKX0pLnByb3RvdHlwZT1NLmZuLEk9TShzKTt2YXIgQj0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxEPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2Z1bmN0aW9uIFIodCxlKXtmb3IoOyh0PXRbZV0pJiYxIT09dC5ub2RlVHlwZTspO3JldHVybiB0fU0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24odCl7dmFyIGU9TSh0LHRoaXMpLG49ZS5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxuO3QrKylpZihNLmNvbnRhaW5zKHRoaXMsZVt0XSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MCxyPXRoaXMubGVuZ3RoLG89W10scz0ic3RyaW5nIiE9dHlwZW9mIHQmJk0odCk7aWYoIU8udGVzdCh0KSlmb3IoO2k8cjtpKyspZm9yKG49dGhpc1tpXTtuJiZuIT09ZTtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYocz9zLmluZGV4KG4pPi0xOjE9PT1uLm5vZGVUeXBlJiZNLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sdCkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubGVuZ3RoPjE/TS51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD8ic3RyaW5nIj09dHlwZW9mIHQ/bC5jYWxsKE0odCksdGhpc1swXSk6bC5jYWxsKHRoaXMsdC5qcXVlcnk/dFswXTp0KTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLnVuaXF1ZVNvcnQoTS5tZXJnZSh0aGlzLmdldCgpLE0odCxlKSkpKX0sYWRkQmFjazpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hZGQobnVsbD09dD90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcih0KSl9fSksTS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiYxMSE9PWUubm9kZVR5cGU/ZTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQyh0LCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gUih0LCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKHQpe3JldHVybiBSKHQsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIEModCwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIEModCwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBDKHQsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKHQpe3JldHVybiBrKCh0LnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLHQpfSxjaGlsZHJlbjpmdW5jdGlvbih0KXtyZXR1cm4gayh0LmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LCJpZnJhbWUiKT90LmNvbnRlbnREb2N1bWVudDooUCh0LCJ0ZW1wbGF0ZSIpJiYodD10LmNvbnRlbnR8fHQpLE0ubWVyZ2UoW10sdC5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24obixpKXt2YXIgcj1NLm1hcCh0aGlzLGUsbik7cmV0dXJuIlVudGlsIiE9PXQuc2xpY2UoLTUpJiYoaT1uKSxpJiYic3RyaW5nIj09dHlwZW9mIGkmJihyPU0uZmlsdGVyKGkscikpLHRoaXMubGVuZ3RoPjEmJihEW3RdfHxNLnVuaXF1ZVNvcnQociksQi50ZXN0KHQpJiZyLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2socil9fSk7dmFyIHo9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBOKHQpe3JldHVybiB0fWZ1bmN0aW9uIFcodCl7dGhyb3cgdH1mdW5jdGlvbiBxKHQsZSxuLGkpe3ZhciByO3RyeXt0JiZiKHI9dC5wcm9taXNlKT9yLmNhbGwodCkuZG9uZShlKS5mYWlsKG4pOnQmJmIocj10LnRoZW4pP3IuY2FsbCh0LGUsbik6ZS5hcHBseSh2b2lkIDAsW3RdLnNsaWNlKGkpKX1jYXRjaCh0KXtuLmFwcGx5KHZvaWQgMCxbdF0pfX1NLkNhbGxiYWNrcz1mdW5jdGlvbih0KXt0PSJzdHJpbmciPT10eXBlb2YgdD9mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gTS5lYWNoKHQubWF0Y2goeil8fFtdLGZ1bmN0aW9uKHQsbil7ZVtuXT0hMH0pLGV9KHQpOk0uZXh0ZW5kKHt9LHQpO3ZhciBlLG4saSxyLG89W10scz1bXSxhPS0xLHU9ZnVuY3Rpb24oKXtmb3Iocj1yfHx0Lm9uY2UsaT1lPSEwO3MubGVuZ3RoO2E9LTEpZm9yKG49cy5zaGlmdCgpOysrYTxvLmxlbmd0aDspITE9PT1vW2FdLmFwcGx5KG5bMF0sblsxXSkmJnQuc3RvcE9uRmFsc2UmJihhPW8ubGVuZ3RoLG49ITEpO3QubWVtb3J5fHwobj0hMSksZT0hMSxyJiYobz1uP1tdOiIiKX0sYz17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG8mJihuJiYhZSYmKGE9by5sZW5ndGgtMSxzLnB1c2gobikpLGZ1bmN0aW9uIGUobil7TS5lYWNoKG4sZnVuY3Rpb24obixpKXtiKGkpP3QudW5pcXVlJiZjLmhhcyhpKXx8by5wdXNoKGkpOmkmJmkubGVuZ3RoJiYic3RyaW5nIiE9PXgoaSkmJmUoaSl9KX0oYXJndW1lbnRzKSxuJiYhZSYmdSgpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gTS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbjsobj1NLmluQXJyYXkoZSxvLG4pKT4tMTspby5zcGxpY2UobiwxKSxuPD1hJiZhLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/TS5pbkFycmF5KHQsbyk+LTE6by5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbyYmKG89W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gcj1zPVtdLG89bj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFvfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIHI9cz1bXSxufHxlfHwobz1uPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXJ9LGZpcmVXaXRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJ8fChuPVt0LChuPW58fFtdKS5zbGljZT9uLnNsaWNlKCk6bl0scy5wdXNoKG4pLGV8fHUoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBjLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhaX19O3JldHVybiBjfSxNLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24odCl7dmFyIGU9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLE0uQ2FsbGJhY2tzKCJtZW1vcnkiKSxNLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGk9InBlbmRpbmciLHI9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBvLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHIudGhlbihudWxsLHQpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzO3JldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe00uZWFjaChlLGZ1bmN0aW9uKGUsaSl7dmFyIHI9Yih0W2lbNF1dKSYmdFtpWzRdXTtvW2lbMV1dKGZ1bmN0aW9uKCl7dmFyIHQ9ciYmci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dCYmYih0LnByb21pc2UpP3QucHJvbWlzZSgpLnByb2dyZXNzKG4ubm90aWZ5KS5kb25lKG4ucmVzb2x2ZSkuZmFpbChuLnJlamVjdCk6bltpWzBdKyJXaXRoIl0odGhpcyxyP1t0XTphcmd1bWVudHMpfSl9KSx0PW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxpLHIpe3ZhciBvPTA7ZnVuY3Rpb24gcyh0LGUsaSxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLHU9YXJndW1lbnRzLGM9ZnVuY3Rpb24oKXt2YXIgbixjO2lmKCEodDxvKSl7aWYoKG49aS5hcHBseShhLHUpKT09PWUucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO2M9biYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pJiZuLnRoZW4sYihjKT9yP2MuY2FsbChuLHMobyxlLE4scikscyhvLGUsVyxyKSk6KG8rKyxjLmNhbGwobixzKG8sZSxOLHIpLHMobyxlLFcscikscyhvLGUsTixlLm5vdGlmeVdpdGgpKSk6KGkhPT1OJiYoYT12b2lkIDAsdT1bbl0pLChyfHxlLnJlc29sdmVXaXRoKShhLHUpKX19LGg9cj9jOmZ1bmN0aW9uKCl7dHJ5e2MoKX1jYXRjaChuKXtNLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJk0uRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhuLGguc3RhY2tUcmFjZSksdCsxPj1vJiYoaSE9PVcmJihhPXZvaWQgMCx1PVtuXSksZS5yZWplY3RXaXRoKGEsdSkpfX07dD9oKCk6KE0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoaC5zdGFja1RyYWNlPU0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLG4uc2V0VGltZW91dChoKSl9fXJldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe2VbMF1bM10uYWRkKHMoMCxuLGIocik/cjpOLG4ubm90aWZ5V2l0aCkpLGVbMV1bM10uYWRkKHMoMCxuLGIodCk/dDpOKSksZVsyXVszXS5hZGQocygwLG4sYihpKT9pOlcpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dD9NLmV4dGVuZCh0LHIpOnJ9fSxvPXt9O3JldHVybiBNLmVhY2goZSxmdW5jdGlvbih0LG4pe3ZhciBzPW5bMl0sYT1uWzVdO3JbblsxXV09cy5hZGQsYSYmcy5hZGQoZnVuY3Rpb24oKXtpPWF9LGVbMy10XVsyXS5kaXNhYmxlLGVbMy10XVszXS5kaXNhYmxlLGVbMF1bMl0ubG9jayxlWzBdWzNdLmxvY2spLHMuYWRkKG5bM10uZmlyZSksb1tuWzBdXT1mdW5jdGlvbigpe3JldHVybiBvW25bMF0rIldpdGgiXSh0aGlzPT09bz92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9LG9bblswXSsiV2l0aCJdPXMuZmlyZVdpdGh9KSxyLnByb21pc2UobyksdCYmdC5jYWxsKG8sbyksb30sd2hlbjpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49ZSxpPUFycmF5KG4pLHI9dS5jYWxsKGFyZ3VtZW50cyksbz1NLkRlZmVycmVkKCkscz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7aVt0XT10aGlzLHJbdF09YXJndW1lbnRzLmxlbmd0aD4xP3UuY2FsbChhcmd1bWVudHMpOm4sLS1lfHxvLnJlc29sdmVXaXRoKGkscil9fTtpZihlPD0xJiYocSh0LG8uZG9uZShzKG4pKS5yZXNvbHZlLG8ucmVqZWN0LCFlKSwicGVuZGluZyI9PT1vLnN0YXRlKCl8fGIocltuXSYmcltuXS50aGVuKSkpcmV0dXJuIG8udGhlbigpO2Zvcig7bi0tOylxKHJbbl0scyhuKSxvLnJlamVjdCk7cmV0dXJuIG8ucHJvbWlzZSgpfX0pO3ZhciBIPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO00uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbih0LGUpe24uY29uc29sZSYmbi5jb25zb2xlLndhcm4mJnQmJkgudGVzdCh0Lm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UsdC5zdGFjayxlKX0sTS5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbih0KXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSl9O3ZhciBGPU0uRGVmZXJyZWQoKTtmdW5jdGlvbiBWKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixWKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFYpLE0ucmVhZHkoKX1NLmZuLnJlYWR5PWZ1bmN0aW9uKHQpe3JldHVybiBGLnRoZW4odCkuY2F0Y2goZnVuY3Rpb24odCl7TS5yZWFkeUV4Y2VwdGlvbih0KX0pLHRoaXN9LE0uZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKHQpeyghMD09PXQ/LS1NLnJlYWR5V2FpdDpNLmlzUmVhZHkpfHwoTS5pc1JlYWR5PSEwLCEwIT09dCYmLS1NLnJlYWR5V2FpdD4wfHxGLnJlc29sdmVXaXRoKHMsW01dKSl9fSksTS5yZWFkeS50aGVuPUYudGhlbiwiY29tcGxldGUiPT09cy5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1zLnJlYWR5U3RhdGUmJiFzLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9uLnNldFRpbWVvdXQoTS5yZWFkeSk6KHMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsViksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixWKSk7dmFyIFU9ZnVuY3Rpb24odCxlLG4saSxyLG8scyl7dmFyIGE9MCx1PXQubGVuZ3RoLGM9bnVsbD09bjtpZigib2JqZWN0Ij09PXgobikpZm9yKGEgaW4gcj0hMCxuKVUodCxlLGEsblthXSwhMCxvLHMpO2Vsc2UgaWYodm9pZCAwIT09aSYmKHI9ITAsYihpKXx8KHM9ITApLGMmJihzPyhlLmNhbGwodCxpKSxlPW51bGwpOihjPWUsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMuY2FsbChNKHQpLG4pfSkpLGUpKWZvcig7YTx1O2ErKyllKHRbYV0sbixzP2k6aS5jYWxsKHRbYV0sYSxlKHRbYV0sbikpKTtyZXR1cm4gcj90OmM/ZS5jYWxsKHQpOnU/ZSh0WzBdLG4pOm99LEs9L14tbXMtLyxZPS8tKFthLXpdKS9nO2Z1bmN0aW9uIFgodCxlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uICQodCl7cmV0dXJuIHQucmVwbGFjZShLLCJtcy0iKS5yZXBsYWNlKFksWCl9dmFyIEc9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lm5vZGVUeXBlfHw5PT09dC5ub2RlVHlwZXx8ISt0Lm5vZGVUeXBlfTtmdW5jdGlvbiBKKCl7dGhpcy5leHBhbmRvPU0uZXhwYW5kbytKLnVpZCsrfUoudWlkPTEsSi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gZXx8KGU9e30sRyh0KSYmKHQubm9kZVR5cGU/dFt0aGlzLmV4cGFuZG9dPWU6T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdGhpcy5leHBhbmRvLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pKSksZX0sc2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMuY2FjaGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJbJChlKV09bjtlbHNlIGZvcihpIGluIGUpclskKGkpXT1lW2ldO3JldHVybiByfSxnZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZT90aGlzLmNhY2hlKHQpOnRbdGhpcy5leHBhbmRvXSYmdFt0aGlzLmV4cGFuZG9dWyQoZSldfSxhY2Nlc3M6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1lfHxlJiYic3RyaW5nIj09dHlwZW9mIGUmJnZvaWQgMD09PW4/dGhpcy5nZXQodCxlKToodGhpcy5zZXQodCxlLG4pLHZvaWQgMCE9PW4/bjplKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10W3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09aSl7aWYodm9pZCAwIT09ZSl7bj0oZT1BcnJheS5pc0FycmF5KGUpP2UubWFwKCQpOihlPSQoZSkpaW4gaT9bZV06ZS5tYXRjaCh6KXx8W10pLmxlbmd0aDtmb3IoO24tLTspZGVsZXRlIGlbZVtuXV19KHZvaWQgMD09PWV8fE0uaXNFbXB0eU9iamVjdChpKSkmJih0Lm5vZGVUeXBlP3RbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIHRbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09ZSYmIU0uaXNFbXB0eU9iamVjdChlKX19O3ZhciBaPW5ldyBKLFE9bmV3IEosdHQ9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxldD0vW0EtWl0vZztmdW5jdGlvbiBudCh0LGUsbil7dmFyIGk7aWYodm9pZCAwPT09biYmMT09PXQubm9kZVR5cGUpaWYoaT0iZGF0YS0iK2UucmVwbGFjZShldCwiLSQmIikudG9Mb3dlckNhc2UoKSwic3RyaW5nIj09dHlwZW9mKG49dC5nZXRBdHRyaWJ1dGUoaSkpKXt0cnl7bj1mdW5jdGlvbih0KXtyZXR1cm4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmKCJudWxsIj09PXQ/bnVsbDp0PT09K3QrIiI/K3Q6dHQudGVzdCh0KT9KU09OLnBhcnNlKHQpOnQpfShuKX1jYXRjaCh0KXt9US5zZXQodCxlLG4pfWVsc2Ugbj12b2lkIDA7cmV0dXJuIG59TS5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24odCl7cmV0dXJuIFEuaGFzRGF0YSh0KXx8Wi5oYXNEYXRhKHQpfSxkYXRhOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUS5hY2Nlc3ModCxlLG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7US5yZW1vdmUodCxlKX0sX2RhdGE6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBaLmFjY2Vzcyh0LGUsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7Wi5yZW1vdmUodCxlKX19KSxNLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvPXRoaXNbMF0scz1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09dCl7aWYodGhpcy5sZW5ndGgmJihyPVEuZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhWi5nZXQobywiaGFzRGF0YUF0dHJzIikpKXtmb3Iobj1zLmxlbmd0aDtuLS07KXNbbl0mJjA9PT0oaT1zW25dLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihpPSQoaS5zbGljZSg1KSksbnQobyxpLHJbaV0pKTtaLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gcn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyx0KX0pOlUodGhpcyxmdW5jdGlvbihlKXt2YXIgbjtpZihvJiZ2b2lkIDA9PT1lKXJldHVybiB2b2lkIDAhPT0obj1RLmdldChvLHQpKT9uOnZvaWQgMCE9PShuPW50KG8sdCkpP246dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsdCxlKX0pfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLHQpfSl9fSksTS5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0KXJldHVybiBlPShlfHwiZngiKSsicXVldWUiLGk9Wi5nZXQodCxlKSxuJiYoIWl8fEFycmF5LmlzQXJyYXkobik/aT1aLmFjY2Vzcyh0LGUsTS5tYWtlQXJyYXkobikpOmkucHVzaChuKSksaXx8W119LGRlcXVldWU6ZnVuY3Rpb24odCxlKXtlPWV8fCJmeCI7dmFyIG49TS5xdWV1ZSh0LGUpLGk9bi5sZW5ndGgscj1uLnNoaWZ0KCksbz1NLl9xdWV1ZUhvb2tzKHQsZSk7ImlucHJvZ3Jlc3MiPT09ciYmKHI9bi5zaGlmdCgpLGktLSksciYmKCJmeCI9PT1lJiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLHIuY2FsbCh0LGZ1bmN0aW9uKCl7TS5kZXF1ZXVlKHQsZSl9LG8pKSwhaSYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZSsicXVldWVIb29rcyI7cmV0dXJuIFouZ2V0KHQsbil8fFouYWNjZXNzKHQsbix7ZW1wdHk6TS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7Wi5yZW1vdmUodCxbZSsicXVldWUiLG5dKX0pfSl9fSksTS5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iZngiLG4tLSksYXJndW1lbnRzLmxlbmd0aDxuP00ucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1lP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49TS5xdWV1ZSh0aGlzLHQsZSk7TS5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1uWzBdJiZNLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtNLmRlcXVldWUodGhpcyx0KX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXVlKHR8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT0xLHI9TS5EZWZlcnJlZCgpLG89dGhpcyxzPXRoaXMubGVuZ3RoLGE9ZnVuY3Rpb24oKXstLWl8fHIucmVzb2x2ZVdpdGgobyxbb10pfTtmb3IoInN0cmluZyIhPXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSx0PXR8fCJmeCI7cy0tOykobj1aLmdldChvW3NdLHQrInF1ZXVlSG9va3MiKSkmJm4uZW1wdHkmJihpKyssbi5lbXB0eS5hZGQoYSkpO3JldHVybiBhKCksci5wcm9taXNlKGUpfX0pO3ZhciBpdD0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSxydD1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIraXQrIikoW2EteiVdKikkIiwiaSIpLG90PVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4ibm9uZSI9PT0odD1lfHx0KS5zdHlsZS5kaXNwbGF5fHwiIj09PXQuc3R5bGUuZGlzcGxheSYmTS5jb250YWlucyh0Lm93bmVyRG9jdW1lbnQsdCkmJiJub25lIj09PU0uY3NzKHQsImRpc3BsYXkiKX0sYXQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzPXt9O2ZvcihvIGluIGUpc1tvXT10LnN0eWxlW29dLHQuc3R5bGVbb109ZVtvXTtmb3IobyBpbiByPW4uYXBwbHkodCxpfHxbXSksZSl0LnN0eWxlW29dPXNbb107cmV0dXJuIHJ9O2Z1bmN0aW9uIHV0KHQsZSxuLGkpe3ZhciByLG8scz0yMCxhPWk/ZnVuY3Rpb24oKXtyZXR1cm4gaS5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gTS5jc3ModCxlLCIiKX0sdT1hKCksYz1uJiZuWzNdfHwoTS5jc3NOdW1iZXJbZV0/IiI6InB4IiksaD0oTS5jc3NOdW1iZXJbZV18fCJweCIhPT1jJiYrdSkmJnJ0LmV4ZWMoTS5jc3ModCxlKSk7aWYoaCYmaFszXSE9PWMpe2Zvcih1Lz0yLGM9Y3x8aFszXSxoPSt1fHwxO3MtLTspTS5zdHlsZSh0LGUsaCtjKSwoMS1vKSooMS0obz1hKCkvdXx8LjUpKTw9MCYmKHM9MCksaC89bztoKj0yLE0uc3R5bGUodCxlLGgrYyksbj1ufHxbXX1yZXR1cm4gbiYmKGg9K2h8fCt1fHwwLHI9blsxXT9oKyhuWzFdKzEpKm5bMl06K25bMl0saSYmKGkudW5pdD1jLGkuc3RhcnQ9aCxpLmVuZD1yKSkscn12YXIgY3Q9e307ZnVuY3Rpb24gaHQodCl7dmFyIGUsbj10Lm93bmVyRG9jdW1lbnQsaT10Lm5vZGVOYW1lLHI9Y3RbaV07cmV0dXJuIHJ8fChlPW4uYm9keS5hcHBlbmRDaGlsZChuLmNyZWF0ZUVsZW1lbnQoaSkpLHI9TS5jc3MoZSwiZGlzcGxheSIpLGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSwibm9uZSI9PT1yJiYocj0iYmxvY2siKSxjdFtpXT1yLHIpfWZ1bmN0aW9uIGx0KHQsZSl7Zm9yKHZhciBuLGkscj1bXSxvPTAscz10Lmxlbmd0aDtvPHM7bysrKShpPXRbb10pLnN0eWxlJiYobj1pLnN0eWxlLmRpc3BsYXksZT8oIm5vbmUiPT09biYmKHJbb109Wi5nZXQoaSwiZGlzcGxheSIpfHxudWxsLHJbb118fChpLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PWkuc3R5bGUuZGlzcGxheSYmc3QoaSkmJihyW29dPWh0KGkpKSk6Im5vbmUiIT09biYmKHJbb109Im5vbmUiLFouc2V0KGksImRpc3BsYXkiLG4pKSk7Zm9yKG89MDtvPHM7bysrKW51bGwhPXJbb10mJih0W29dLnN0eWxlLmRpc3BsYXk9cltvXSk7cmV0dXJuIHR9TS5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbih0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0P3Q/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7c3QodGhpcyk/TSh0aGlzKS5zaG93KCk6TSh0aGlzKS5oaWRlKCl9KX19KTt2YXIgZHQ9L14oPzpjaGVja2JveHxyYWRpbykkL2ksZnQ9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSspL2kscHQ9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLG10PXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07ZnVuY3Rpb24gZ3QodCxlKXt2YXIgbjtyZXR1cm4gbj12b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZXx8IioiKTp2b2lkIDAhPT10LnF1ZXJ5U2VsZWN0b3JBbGw/dC5xdWVyeVNlbGVjdG9yQWxsKGV8fCIqIik6W10sdm9pZCAwPT09ZXx8ZSYmUCh0LGUpP00ubWVyZ2UoW3RdLG4pOm59ZnVuY3Rpb24gdnQodCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspWi5zZXQodFtuXSwiZ2xvYmFsRXZhbCIsIWV8fFouZ2V0KGVbbl0sImdsb2JhbEV2YWwiKSl9bXQub3B0Z3JvdXA9bXQub3B0aW9uLG10LnRib2R5PW10LnRmb290PW10LmNvbGdyb3VwPW10LmNhcHRpb249bXQudGhlYWQsbXQudGg9bXQudGQ7dmFyIGJ0LHl0LF90PS88fCYjP1x3KzsvO2Z1bmN0aW9uIHd0KHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGMsaCxsPWUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9W10sZj0wLHA9dC5sZW5ndGg7ZjxwO2YrKylpZigobz10W2ZdKXx8MD09PW8paWYoIm9iamVjdCI9PT14KG8pKU0ubWVyZ2UoZCxvLm5vZGVUeXBlP1tvXTpvKTtlbHNlIGlmKF90LnRlc3Qobykpe2ZvcihzPXN8fGwuYXBwZW5kQ2hpbGQoZS5jcmVhdGVFbGVtZW50KCJkaXYiKSksYT0oZnQuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PW10W2FdfHxtdC5fZGVmYXVsdCxzLmlubmVySFRNTD11WzFdK00uaHRtbFByZWZpbHRlcihvKSt1WzJdLGg9dVswXTtoLS07KXM9cy5sYXN0Q2hpbGQ7TS5tZXJnZShkLHMuY2hpbGROb2RlcyksKHM9bC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIGQucHVzaChlLmNyZWF0ZVRleHROb2RlKG8pKTtmb3IobC50ZXh0Q29udGVudD0iIixmPTA7bz1kW2YrK107KWlmKGkmJk0uaW5BcnJheShvLGkpPi0xKXImJnIucHVzaChvKTtlbHNlIGlmKGM9TS5jb250YWlucyhvLm93bmVyRG9jdW1lbnQsbykscz1ndChsLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxjJiZ2dChzKSxuKWZvcihoPTA7bz1zW2grK107KXB0LnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKTtyZXR1cm4gbH1idD1zLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoeXQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHl0LnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSx5dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYnQuYXBwZW5kQ2hpbGQoeXQpLHYuY2hlY2tDbG9uZT1idC5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYnQuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix2Lm5vQ2xvbmVDaGVja2VkPSEhYnQuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3ZhciB4dD1zLmRvY3VtZW50RWxlbWVudCxNdD0vXmtleS8sU3Q9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLEV0PS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBBdCgpe3JldHVybiEwfWZ1bmN0aW9uIEN0KCl7cmV0dXJuITF9ZnVuY3Rpb24ga3QoKXt0cnl7cmV0dXJuIHMuYWN0aXZlRWxlbWVudH1jYXRjaCh0KXt9fWZ1bmN0aW9uIE90KHQsZSxuLGkscixvKXt2YXIgcyxhO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7Zm9yKGEgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihpPWl8fG4sbj12b2lkIDApLGUpT3QodCxhLG4saSxlW2FdLG8pO3JldHVybiB0fWlmKG51bGw9PWkmJm51bGw9PXI/KHI9bixpPW49dm9pZCAwKTpudWxsPT1yJiYoInN0cmluZyI9PXR5cGVvZiBuPyhyPWksaT12b2lkIDApOihyPWksaT1uLG49dm9pZCAwKSksITE9PT1yKXI9Q3Q7ZWxzZSBpZighcilyZXR1cm4gdDtyZXR1cm4gMT09PW8mJihzPXIsKHI9ZnVuY3Rpb24odCl7cmV0dXJuIE0oKS5vZmYodCkscy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPXMuZ3VpZHx8KHMuZ3VpZD1NLmd1aWQrKykpLHQuZWFjaChmdW5jdGlvbigpe00uZXZlbnQuYWRkKHRoaXMsZSxyLGksbil9KX1NLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouZ2V0KHQpO2lmKGcpZm9yKG4uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixyPW8uc2VsZWN0b3IpLHImJk0uZmluZC5tYXRjaGVzU2VsZWN0b3IoeHQsciksbi5ndWlkfHwobi5ndWlkPU0uZ3VpZCsrKSwodT1nLmV2ZW50cyl8fCh1PWcuZXZlbnRzPXt9KSwocz1nLmhhbmRsZSl8fChzPWcuaGFuZGxlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1NJiZNLmV2ZW50LnRyaWdnZXJlZCE9PWUudHlwZT9NLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxjPShlPShlfHwiIikubWF0Y2goeil8fFsiIl0pLmxlbmd0aDtjLS07KWY9bT0oYT1FdC5leGVjKGVbY10pfHxbXSlbMV0scD0oYVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGYmJihsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30sZj0ocj9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8ZixsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30saD1NLmV4dGVuZCh7dHlwZTpmLG9yaWdUeXBlOm0sZGF0YTppLGhhbmRsZXI6bixndWlkOm4uZ3VpZCxzZWxlY3RvcjpyLG5lZWRzQ29udGV4dDpyJiZNLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QociksbmFtZXNwYWNlOnAuam9pbigiLiIpfSxvKSwoZD11W2ZdKXx8KChkPXVbZl09W10pLmRlbGVnYXRlQ291bnQ9MCxsLnNldHVwJiYhMSE9PWwuc2V0dXAuY2FsbCh0LGkscCxzKXx8dC5hZGRFdmVudExpc3RlbmVyJiZ0LmFkZEV2ZW50TGlzdGVuZXIoZixzKSksbC5hZGQmJihsLmFkZC5jYWxsKHQsaCksaC5oYW5kbGVyLmd1aWR8fChoLmhhbmRsZXIuZ3VpZD1uLmd1aWQpKSxyP2Quc3BsaWNlKGQuZGVsZWdhdGVDb3VudCsrLDAsaCk6ZC5wdXNoKGgpLE0uZXZlbnQuZ2xvYmFsW2ZdPSEwKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouaGFzRGF0YSh0KSYmWi5nZXQodCk7aWYoZyYmKHU9Zy5ldmVudHMpKXtmb3IoYz0oZT0oZXx8IiIpLm1hdGNoKHopfHxbIiJdKS5sZW5ndGg7Yy0tOylpZihmPW09KGE9RXQuZXhlYyhlW2NdKXx8W10pWzFdLHA9KGFbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxmKXtmb3IobD1NLmV2ZW50LnNwZWNpYWxbZl18fHt9LGQ9dVtmPShpP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxmXXx8W10sYT1hWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLHM9bz1kLmxlbmd0aDtvLS07KWg9ZFtvXSwhciYmbSE9PWgub3JpZ1R5cGV8fG4mJm4uZ3VpZCE9PWguZ3VpZHx8YSYmIWEudGVzdChoLm5hbWVzcGFjZSl8fGkmJmkhPT1oLnNlbGVjdG9yJiYoIioqIiE9PWl8fCFoLnNlbGVjdG9yKXx8KGQuc3BsaWNlKG8sMSksaC5zZWxlY3RvciYmZC5kZWxlZ2F0ZUNvdW50LS0sbC5yZW1vdmUmJmwucmVtb3ZlLmNhbGwodCxoKSk7cyYmIWQubGVuZ3RoJiYobC50ZWFyZG93biYmITEhPT1sLnRlYXJkb3duLmNhbGwodCxwLGcuaGFuZGxlKXx8TS5yZW1vdmVFdmVudCh0LGYsZy5oYW5kbGUpLGRlbGV0ZSB1W2ZdKX1lbHNlIGZvcihmIGluIHUpTS5ldmVudC5yZW1vdmUodCxmK2VbY10sbixpLCEwKTtNLmlzRW1wdHlPYmplY3QodSkmJloucmVtb3ZlKHQsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhPU0uZXZlbnQuZml4KHQpLHU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGM9KFouZ2V0KHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saD1NLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307Zm9yKHVbMF09YSxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl1W2VdPWFyZ3VtZW50c1tlXTtpZihhLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWgucHJlRGlzcGF0Y2h8fCExIT09aC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkpe2ZvcihzPU0uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsYyksZT0wOyhyPXNbZSsrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihhLmN1cnJlbnRUYXJnZXQ9ci5lbGVtLG49MDsobz1yLmhhbmRsZXJzW24rK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOylhLnJuYW1lc3BhY2UmJiFhLnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fChhLmhhbmRsZU9iaj1vLGEuZGF0YT1vLmRhdGEsdm9pZCAwIT09KGk9KChNLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoci5lbGVtLHUpKSYmITE9PT0oYS5yZXN1bHQ9aSkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBoLnBvc3REaXNwYXRjaCYmaC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGEpLGEucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbyxzLGE9W10sdT1lLmRlbGVnYXRlQ291bnQsYz10LnRhcmdldDtpZih1JiZjLm5vZGVUeXBlJiYhKCJjbGljayI9PT10LnR5cGUmJnQuYnV0dG9uPj0xKSlmb3IoO2MhPT10aGlzO2M9Yy5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1jLm5vZGVUeXBlJiYoImNsaWNrIiE9PXQudHlwZXx8ITAhPT1jLmRpc2FibGVkKSl7Zm9yKG89W10scz17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1zW3I9KGk9ZVtuXSkuc2VsZWN0b3IrIiAiXSYmKHNbcl09aS5uZWVkc0NvbnRleHQ/TShyLHRoaXMpLmluZGV4KGMpPi0xOk0uZmluZChyLHRoaXMsbnVsbCxbY10pLmxlbmd0aCksc1tyXSYmby5wdXNoKGkpO28ubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczpvfSl9cmV0dXJuIGM9dGhpcyx1PGUubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczplLnNsaWNlKHUpfSksYX0sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShNLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6YihlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRbTS5leHBhbmRvXT90Om5ldyBNLkV2ZW50KHQpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09a3QoKSYmdGhpcy5mb2N1cylyZXR1cm4gdGhpcy5mb2N1cygpLCExfSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7aWYodGhpcz09PWt0KCkmJnRoaXMuYmx1cilyZXR1cm4gdGhpcy5ibHVyKCksITF9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKCJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2smJlAodGhpcywiaW5wdXQiKSlyZXR1cm4gdGhpcy5jbGljaygpLCExfSxfZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24odCl7dm9pZCAwIT09dC5yZXN1bHQmJnQub3JpZ2luYWxFdmVudCYmKHQub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT10LnJlc3VsdCl9fX19LE0ucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24odCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9LE0uRXZlbnQ9ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBNLkV2ZW50KSlyZXR1cm4gbmV3IE0uRXZlbnQodCxlKTt0JiZ0LnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD10LHRoaXMudHlwZT10LnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9dC5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT10LmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09dC5yZXR1cm5WYWx1ZT9BdDpDdCx0aGlzLnRhcmdldD10LnRhcmdldCYmMz09PXQudGFyZ2V0Lm5vZGVUeXBlP3QudGFyZ2V0LnBhcmVudE5vZGU6dC50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PXQuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9dCxlJiZNLmV4dGVuZCh0aGlzLGUpLHRoaXMudGltZVN0YW1wPXQmJnQudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbTS5leHBhbmRvXT0hMH0sTS5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk0uRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOkN0LGlzUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1BdCx0JiYhdGhpcy5pc1NpbXVsYXRlZCYmdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sTS5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLGNoYXI6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ZnVuY3Rpb24odCl7dmFyIGU9dC5idXR0b247cmV0dXJuIG51bGw9PXQud2hpY2gmJk10LnRlc3QodC50eXBlKT9udWxsIT10LmNoYXJDb2RlP3QuY2hhckNvZGU6dC5rZXlDb2RlOiF0LndoaWNoJiZ2b2lkIDAhPT1lJiZTdC50ZXN0KHQudHlwZSk/MSZlPzE6MiZlPzM6NCZlPzI6MDp0LndoaWNofX0sTS5ldmVudC5hZGRQcm9wKSxNLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKHQsZSl7TS5ldmVudC5zcGVjaWFsW3RdPXtkZWxlZ2F0ZVR5cGU6ZSxiaW5kVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXt2YXIgbixpPXQucmVsYXRlZFRhcmdldCxyPXQuaGFuZGxlT2JqO3JldHVybiBpJiYoaT09PXRoaXN8fE0uY29udGFpbnModGhpcyxpKSl8fCh0LnR5cGU9ci5vcmlnVHlwZSxuPXIuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC50eXBlPWUpLG59fX0pLE0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gT3QodGhpcyx0LGUsbixpKX0sb25lOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBPdCh0aGlzLHQsZSxuLGksMSl9LG9mZjpmdW5jdGlvbih0LGUsbil7dmFyIGkscjtpZih0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LmhhbmRsZU9iailyZXR1cm4gaT10LmhhbmRsZU9iaixNKHQuZGVsZWdhdGVUYXJnZXQpLm9mZihpLm5hbWVzcGFjZT9pLm9yaWdUeXBlKyIuIitpLm5hbWVzcGFjZTppLm9yaWdUeXBlLGkuc2VsZWN0b3IsaS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHIgaW4gdCl0aGlzLm9mZihyLGUsdFtyXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZXx8KG49ZSxlPXZvaWQgMCksITE9PT1uJiYobj1DdCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7TS5ldmVudC5yZW1vdmUodGhpcyx0LG4sZSl9KX19KTt2YXIgUHQ9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLFR0PS88c2NyaXB0fDxzdHlsZXw8bGluay9pLGp0PS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLEl0PS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBMdCh0LGUpe3JldHVybiBQKHQsInRhYmxlIikmJlAoMTEhPT1lLm5vZGVUeXBlP2U6ZS5maXJzdENoaWxkLCJ0ciIpJiZNKHQpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHx0fWZ1bmN0aW9uIEJ0KHQpe3JldHVybiB0LnR5cGU9KG51bGwhPT10LmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrdC50eXBlLHR9ZnVuY3Rpb24gRHQodCl7cmV0dXJuInRydWUvIj09PSh0LnR5cGV8fCIiKS5zbGljZSgwLDUpP3QudHlwZT10LnR5cGUuc2xpY2UoNSk6dC5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSx0fWZ1bmN0aW9uIFJ0KHQsZSl7dmFyIG4saSxyLG8scyxhLHUsYztpZigxPT09ZS5ub2RlVHlwZSl7aWYoWi5oYXNEYXRhKHQpJiYobz1aLmFjY2Vzcyh0KSxzPVouc2V0KGUsbyksYz1vLmV2ZW50cykpZm9yKHIgaW4gZGVsZXRlIHMuaGFuZGxlLHMuZXZlbnRzPXt9LGMpZm9yKG49MCxpPWNbcl0ubGVuZ3RoO248aTtuKyspTS5ldmVudC5hZGQoZSxyLGNbcl1bbl0pO1EuaGFzRGF0YSh0KSYmKGE9US5hY2Nlc3ModCksdT1NLmV4dGVuZCh7fSxhKSxRLnNldChlLHUpKX19ZnVuY3Rpb24genQodCxlLG4saSl7ZT1jLmFwcGx5KFtdLGUpO3ZhciByLG8scyxhLHUsaCxsPTAsZD10Lmxlbmd0aCxmPWQtMSxwPWVbMF0sbT1iKHApO2lmKG18fGQ+MSYmInN0cmluZyI9PXR5cGVvZiBwJiYhdi5jaGVja0Nsb25lJiZqdC50ZXN0KHApKXJldHVybiB0LmVhY2goZnVuY3Rpb24ocil7dmFyIG89dC5lcShyKTttJiYoZVswXT1wLmNhbGwodGhpcyxyLG8uaHRtbCgpKSksenQobyxlLG4saSl9KTtpZihkJiYobz0ocj13dChlLHRbMF0ub3duZXJEb2N1bWVudCwhMSx0LGkpKS5maXJzdENoaWxkLDE9PT1yLmNoaWxkTm9kZXMubGVuZ3RoJiYocj1vKSxvfHxpKSl7Zm9yKGE9KHM9TS5tYXAoZ3Qociwic2NyaXB0IiksQnQpKS5sZW5ndGg7bDxkO2wrKyl1PXIsbCE9PWYmJih1PU0uY2xvbmUodSwhMCwhMCksYSYmTS5tZXJnZShzLGd0KHUsInNjcmlwdCIpKSksbi5jYWxsKHRbbF0sdSxsKTtpZihhKWZvcihoPXNbcy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxNLm1hcChzLER0KSxsPTA7bDxhO2wrKyl1PXNbbF0scHQudGVzdCh1LnR5cGV8fCIiKSYmIVouYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmTS5jb250YWlucyhoLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/TS5fZXZhbFVybCYmTS5fZXZhbFVybCh1LnNyYyk6dyh1LnRleHRDb250ZW50LnJlcGxhY2UoSXQsIiIpLGgsdSkpfXJldHVybiB0fWZ1bmN0aW9uIE50KHQsZSxuKXtmb3IodmFyIGkscj1lP00uZmlsdGVyKGUsdCk6dCxvPTA7bnVsbCE9KGk9cltvXSk7bysrKW58fDEhPT1pLm5vZGVUeXBlfHxNLmNsZWFuRGF0YShndChpKSksaS5wYXJlbnROb2RlJiYobiYmTS5jb250YWlucyhpLm93bmVyRG9jdW1lbnQsaSkmJnZ0KGd0KGksInNjcmlwdCIpKSxpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSkpO3JldHVybiB0fU0uZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoUHQsIjwkMT48LyQyPiIpfSxjbG9uZTpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGMsaD10LmNsb25lTm9kZSghMCksbD1NLmNvbnRhaW5zKHQub3duZXJEb2N1bWVudCx0KTtpZighKHYubm9DbG9uZUNoZWNrZWR8fDEhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGV8fE0uaXNYTUxEb2ModCkpKWZvcihzPWd0KGgpLGk9MCxyPShvPWd0KHQpKS5sZW5ndGg7aTxyO2krKylhPW9baV0sdT1zW2ldLGM9dm9pZCAwLCJpbnB1dCI9PT0oYz11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZkdC50ZXN0KGEudHlwZSk/dS5jaGVja2VkPWEuY2hlY2tlZDoiaW5wdXQiIT09YyYmInRleHRhcmVhIiE9PWN8fCh1LmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZSk7aWYoZSlpZihuKWZvcihvPW98fGd0KHQpLHM9c3x8Z3QoaCksaT0wLHI9by5sZW5ndGg7aTxyO2krKylSdChvW2ldLHNbaV0pO2Vsc2UgUnQodCxoKTtyZXR1cm4ocz1ndChoLCJzY3JpcHQiKSkubGVuZ3RoPjAmJnZ0KHMsIWwmJmd0KHQsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG4saSxyPU0uZXZlbnQuc3BlY2lhbCxvPTA7dm9pZCAwIT09KG49dFtvXSk7bysrKWlmKEcobikpe2lmKGU9bltaLmV4cGFuZG9dKXtpZihlLmV2ZW50cylmb3IoaSBpbiBlLmV2ZW50cylyW2ldP00uZXZlbnQucmVtb3ZlKG4saSk6TS5yZW1vdmVFdmVudChuLGksZS5oYW5kbGUpO25bWi5leHBhbmRvXT12b2lkIDB9bltRLmV4cGFuZG9dJiYobltRLmV4cGFuZG9dPXZvaWQgMCl9fX0pLE0uZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIE50KHRoaXMsdCwhMCl9LHJlbW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnQodGhpcyx0KX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P00udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD10KX0pfSxudWxsLHQsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB6dCh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbih0KXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8THQodGhpcyx0KS5hcHBlbmRDaGlsZCh0KX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgZT1MdCh0aGlzLHQpO2UuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtudWxsIT0odD10aGlzW2VdKTtlKyspMT09PXQubm9kZVR5cGUmJihNLmNsZWFuRGF0YShndCh0LCExKSksdC50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bnVsbCE9dCYmdCxlPW51bGw9PWU/dDplLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIE0uY2xvbmUodGhpcyx0LGUpfSl9LGh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0KXt2YXIgZT10aGlzWzBdfHx7fSxuPTAsaT10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT10JiYxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZS5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYhVHQudGVzdCh0KSYmIW10WyhmdC5leGVjKHQpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7dD1NLmh0bWxQcmVmaWx0ZXIodCk7dHJ5e2Zvcig7bjxpO24rKykxPT09KGU9dGhpc1tuXXx8e30pLm5vZGVUeXBlJiYoTS5jbGVhbkRhdGEoZ3QoZSwhMSkpLGUuaW5uZXJIVE1MPXQpO2U9MH1jYXRjaCh0KXt9fWUmJnRoaXMuZW1wdHkoKS5hcHBlbmQodCl9LG51bGwsdCxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4genQodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5wYXJlbnROb2RlO00uaW5BcnJheSh0aGlzLHQpPDAmJihNLmNsZWFuRGF0YShndCh0aGlzKSksbiYmbi5yZXBsYWNlQ2hpbGQoZSx0aGlzKSl9LHQpfX0pLE0uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKHQsZSl7TS5mblt0XT1mdW5jdGlvbih0KXtmb3IodmFyIG4saT1bXSxyPU0odCksbz1yLmxlbmd0aC0xLHM9MDtzPD1vO3MrKyluPXM9PT1vP3RoaXM6dGhpcy5jbG9uZSghMCksTShyW3NdKVtlXShuKSxoLmFwcGx5KGksbi5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGkpfX0pO3ZhciBXdD1uZXcgUmVnRXhwKCJeKCIraXQrIikoPyFweClbYS16JV0rJCIsImkiKSxxdD1mdW5jdGlvbih0KXt2YXIgZT10Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGUmJmUub3BlbmVyfHwoZT1uKSxlLmdldENvbXB1dGVkU3R5bGUodCl9LEh0PW5ldyBSZWdFeHAob3Quam9pbigifCIpLCJpIik7ZnVuY3Rpb24gRnQodCxlLG4pe3ZhciBpLHIsbyxzLGE9dC5zdHlsZTtyZXR1cm4obj1ufHxxdCh0KSkmJigiIiE9PShzPW4uZ2V0UHJvcGVydHlWYWx1ZShlKXx8bltlXSl8fE0uY29udGFpbnModC5vd25lckRvY3VtZW50LHQpfHwocz1NLnN0eWxlKHQsZSkpLCF2LnBpeGVsQm94U3R5bGVzKCkmJld0LnRlc3QocykmJkh0LnRlc3QoZSkmJihpPWEud2lkdGgscj1hLm1pbldpZHRoLG89YS5tYXhXaWR0aCxhLm1pbldpZHRoPWEubWF4V2lkdGg9YS53aWR0aD1zLHM9bi53aWR0aCxhLndpZHRoPWksYS5taW5XaWR0aD1yLGEubWF4V2lkdGg9bykpLHZvaWQgMCE9PXM/cysiIjpzfWZ1bmN0aW9uIFZ0KHQsZSl7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCF0KCkpcmV0dXJuKHRoaXMuZ2V0PWUpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX0hZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7aWYoaCl7Yy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIixoLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiLHh0LmFwcGVuZENoaWxkKGMpLmFwcGVuZENoaWxkKGgpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShoKTtpPSIxJSIhPT10LnRvcCx1PTEyPT09ZSh0Lm1hcmdpbkxlZnQpLGguc3R5bGUucmlnaHQ9IjYwJSIsYT0zNj09PWUodC5yaWdodCkscj0zNj09PWUodC53aWR0aCksaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG89MzY9PT1oLm9mZnNldFdpZHRofHwiYWJzb2x1dGUiLHh0LnJlbW92ZUNoaWxkKGMpLGg9bnVsbH19ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KHQpKX12YXIgaSxyLG8sYSx1LGM9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5zdHlsZSYmKGguc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixoLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsdi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWguc3R5bGUuYmFja2dyb3VuZENsaXAsTS5leHRlbmQodix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxhfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxpfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHV9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLG99fSkpfSgpO3ZhciBVdD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sS3Q9L14tLS8sWXQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFh0PXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifSwkdD1bIldlYmtpdCIsIk1veiIsIm1zIl0sR3Q9cy5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBKdCh0KXt2YXIgZT1NLmNzc1Byb3BzW3RdO3JldHVybiBlfHwoZT1NLmNzc1Byb3BzW3RdPWZ1bmN0aW9uKHQpe2lmKHQgaW4gR3QpcmV0dXJuIHQ7Zm9yKHZhciBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpLG49JHQubGVuZ3RoO24tLTspaWYoKHQ9JHRbbl0rZSlpbiBHdClyZXR1cm4gdH0odCl8fHQpLGV9ZnVuY3Rpb24gWnQodCxlLG4pe3ZhciBpPXJ0LmV4ZWMoZSk7cmV0dXJuIGk/TWF0aC5tYXgoMCxpWzJdLShufHwwKSkrKGlbM118fCJweCIpOmV9ZnVuY3Rpb24gUXQodCxlLG4saSxyLG8pe3ZhciBzPSJ3aWR0aCI9PT1lPzE6MCxhPTAsdT0wO2lmKG49PT0oaT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7czw0O3MrPTIpIm1hcmdpbiI9PT1uJiYodSs9TS5jc3ModCxuK290W3NdLCEwLHIpKSxpPygiY29udGVudCI9PT1uJiYodS09TS5jc3ModCwicGFkZGluZyIrb3Rbc10sITAscikpLCJtYXJnaW4iIT09biYmKHUtPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKSkpOih1Kz1NLmNzcyh0LCJwYWRkaW5nIitvdFtzXSwhMCxyKSwicGFkZGluZyIhPT1uP3UrPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKTphKz1NLmNzcyh0LCJib3JkZXIiK290W3NdKyJXaWR0aCIsITAscikpO3JldHVybiFpJiZvPj0wJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwodFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0tby11LWEtLjUpKSksdX1mdW5jdGlvbiB0ZSh0LGUsbil7dmFyIGk9cXQodCkscj1GdCh0LGUsaSksbz0iYm9yZGVyLWJveCI9PT1NLmNzcyh0LCJib3hTaXppbmciLCExLGkpLHM9bztpZihXdC50ZXN0KHIpKXtpZighbilyZXR1cm4gcjtyPSJhdXRvIn1yZXR1cm4gcz1zJiYodi5ib3hTaXppbmdSZWxpYWJsZSgpfHxyPT09dC5zdHlsZVtlXSksKCJhdXRvIj09PXJ8fCFwYXJzZUZsb2F0KHIpJiYiaW5saW5lIj09PU0uY3NzKHQsImRpc3BsYXkiLCExLGkpKSYmKHI9dFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0scz0hMCksKHI9cGFyc2VGbG9hdChyKXx8MCkrUXQodCxlLG58fChvPyJib3JkZXIiOiJjb250ZW50IikscyxpLHIpKyJweCJ9ZnVuY3Rpb24gZWUodCxlLG4saSxyKXtyZXR1cm4gbmV3IGVlLnByb3RvdHlwZS5pbml0KHQsZSxuLGkscil9TS5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj1GdCh0LCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1uPyIxIjpufX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQmJjMhPT10Lm5vZGVUeXBlJiY4IT09dC5ub2RlVHlwZSYmdC5zdHlsZSl7dmFyIHIsbyxzLGE9JChlKSx1PUt0LnRlc3QoZSksYz10LnN0eWxlO2lmKHV8fChlPUp0KGEpKSxzPU0uY3NzSG9va3NbZV18fE0uY3NzSG9va3NbYV0sdm9pZCAwPT09bilyZXR1cm4gcyYmImdldCJpbiBzJiZ2b2lkIDAhPT0ocj1zLmdldCh0LCExLGkpKT9yOmNbZV07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihyPXJ0LmV4ZWMobikpJiZyWzFdJiYobj11dCh0LGUsciksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiPT09byYmKG4rPXImJnJbM118fChNLmNzc051bWJlclthXT8iIjoicHgiKSksdi5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PWUuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoY1tlXT0iaW5oZXJpdCIpLHMmJiJzZXQiaW4gcyYmdm9pZCAwPT09KG49cy5zZXQodCxuLGkpKXx8KHU/Yy5zZXRQcm9wZXJ0eShlLG4pOmNbZV09bikpfX0sY3NzOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLG8scyxhPSQoZSk7cmV0dXJuIEt0LnRlc3QoZSl8fChlPUp0KGEpKSwocz1NLmNzc0hvb2tzW2VdfHxNLmNzc0hvb2tzW2FdKSYmImdldCJpbiBzJiYocj1zLmdldCh0LCEwLG4pKSx2b2lkIDA9PT1yJiYocj1GdCh0LGUsaSkpLCJub3JtYWwiPT09ciYmZSBpbiBYdCYmKHI9WHRbZV0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KHIpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDpyKTpyfX0pLE0uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW2VdPXtnZXQ6ZnVuY3Rpb24odCxuLGkpe2lmKG4pcmV0dXJuIVV0LnRlc3QoTS5jc3ModCwiZGlzcGxheSIpKXx8dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD90ZSh0LGUsaSk6YXQodCxZdCxmdW5jdGlvbigpe3JldHVybiB0ZSh0LGUsaSl9KX0sc2V0OmZ1bmN0aW9uKHQsbixpKXt2YXIgcixvPXF0KHQpLHM9ImJvcmRlci1ib3giPT09TS5jc3ModCwiYm94U2l6aW5nIiwhMSxvKSxhPWkmJlF0KHQsZSxpLHMsbyk7cmV0dXJuIHMmJnYuc2Nyb2xsYm94U2l6ZSgpPT09by5wb3NpdGlvbiYmKGEtPU1hdGguY2VpbCh0WyJvZmZzZXQiK2VbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpXS1wYXJzZUZsb2F0KG9bZV0pLVF0KHQsZSwiYm9yZGVyIiwhMSxvKS0uNSkpLGEmJihyPXJ0LmV4ZWMobikpJiYicHgiIT09KHJbM118fCJweCIpJiYodC5zdHlsZVtlXT1uLG49TS5jc3ModCxlKSksWnQoMCxuLGEpfX19KSxNLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VnQodi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24odCxlKXtpZihlKXJldHVybihwYXJzZUZsb2F0KEZ0KHQsIm1hcmdpbkxlZnQiKSl8fHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1hdCh0LHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksTS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW3QrZV09e2V4cGFuZDpmdW5jdGlvbihuKXtmb3IodmFyIGk9MCxyPXt9LG89InN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoIiAiKTpbbl07aTw0O2krKylyW3Qrb3RbaV0rZV09b1tpXXx8b1tpLTJdfHxvWzBdO3JldHVybiByfX0sIm1hcmdpbiIhPT10JiYoTS5jc3NIb29rc1t0K2VdLnNldD1adCl9KSxNLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXt9LHM9MDtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IoaT1xdCh0KSxyPWUubGVuZ3RoO3M8cjtzKyspb1tlW3NdXT1NLmNzcyh0LGVbc10sITEsaSk7cmV0dXJuIG99cmV0dXJuIHZvaWQgMCE9PW4/TS5zdHlsZSh0LGUsbik6TS5jc3ModCxlKX0sdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9fSksTS5Ud2Vlbj1lZSxlZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmVlLGluaXQ6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuZWxlbT10LHRoaXMucHJvcD1uLHRoaXMuZWFzaW5nPXJ8fE0uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1lLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1pLHRoaXMudW5pdD1vfHwoTS5jc3NOdW1iZXJbbl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciB0PWVlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0JiZ0LmdldD90LmdldCh0aGlzKTplZS5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24odCl7dmFyIGUsbj1lZS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWU9TS5lYXNpbmdbdGhpcy5lYXNpbmddKHQsdGhpcy5vcHRpb25zLmR1cmF0aW9uKnQsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9ZT10LHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSplK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOmVlLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGVlLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1lZS5wcm90b3R5cGUsZWUucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiAxIT09dC5lbGVtLm5vZGVUeXBlfHxudWxsIT10LmVsZW1bdC5wcm9wXSYmbnVsbD09dC5lbGVtLnN0eWxlW3QucHJvcF0/dC5lbGVtW3QucHJvcF06KGU9TS5jc3ModC5lbGVtLHQucHJvcCwiIikpJiYiYXV0byIhPT1lP2U6MH0sc2V0OmZ1bmN0aW9uKHQpe00uZnguc3RlcFt0LnByb3BdP00uZnguc3RlcFt0LnByb3BdKHQpOjEhPT10LmVsZW0ubm9kZVR5cGV8fG51bGw9PXQuZWxlbS5zdHlsZVtNLmNzc1Byb3BzW3QucHJvcF1dJiYhTS5jc3NIb29rc1t0LnByb3BdP3QuZWxlbVt0LnByb3BdPXQubm93Ok0uc3R5bGUodC5lbGVtLHQucHJvcCx0Lm5vdyt0LnVuaXQpfX19LGVlLnByb3BIb29rcy5zY3JvbGxUb3A9ZWUucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbih0KXt0LmVsZW0ubm9kZVR5cGUmJnQuZWxlbS5wYXJlbnROb2RlJiYodC5lbGVtW3QucHJvcF09dC5ub3cpfX0sTS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdH0sc3dpbmc6ZnVuY3Rpb24odCl7cmV0dXJuLjUtTWF0aC5jb3ModCpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxNLmZ4PWVlLnByb3RvdHlwZS5pbml0LE0uZnguc3RlcD17fTt2YXIgbmUsaWUscmU9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLG9lPS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gc2UoKXtpZSYmKCExPT09cy5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lP24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlKTpuLnNldFRpbWVvdXQoc2UsTS5meC5pbnRlcnZhbCksTS5meC50aWNrKCkpfWZ1bmN0aW9uIGFlKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe25lPXZvaWQgMH0pLG5lPURhdGUubm93KCl9ZnVuY3Rpb24gdWUodCxlKXt2YXIgbixpPTAscj17aGVpZ2h0OnR9O2ZvcihlPWU/MTowO2k8NDtpKz0yLWUpclsibWFyZ2luIisobj1vdFtpXSldPXJbInBhZGRpbmciK25dPXQ7cmV0dXJuIGUmJihyLm9wYWNpdHk9ci53aWR0aD10KSxyfWZ1bmN0aW9uIGNlKHQsZSxuKXtmb3IodmFyIGkscj0oaGUudHdlZW5lcnNbZV18fFtdKS5jb25jYXQoaGUudHdlZW5lcnNbIioiXSksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihpPXJbb10uY2FsbChuLGUsdCkpcmV0dXJuIGl9ZnVuY3Rpb24gaGUodCxlLG4pe3ZhciBpLHIsbz0wLHM9aGUucHJlZmlsdGVycy5sZW5ndGgsYT1NLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIHUuZWxlbX0pLHU9ZnVuY3Rpb24oKXtpZihyKXJldHVybiExO2Zvcih2YXIgZT1uZXx8YWUoKSxuPU1hdGgubWF4KDAsYy5zdGFydFRpbWUrYy5kdXJhdGlvbi1lKSxpPTEtKG4vYy5kdXJhdGlvbnx8MCksbz0wLHM9Yy50d2VlbnMubGVuZ3RoO288cztvKyspYy50d2VlbnNbb10ucnVuKGkpO3JldHVybiBhLm5vdGlmeVdpdGgodCxbYyxpLG5dKSxpPDEmJnM/bjooc3x8YS5ub3RpZnlXaXRoKHQsW2MsMSwwXSksYS5yZXNvbHZlV2l0aCh0LFtjXSksITEpfSxjPWEucHJvbWlzZSh7ZWxlbTp0LHByb3BzOk0uZXh0ZW5kKHt9LGUpLG9wdHM6TS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOk0uZWFzaW5nLl9kZWZhdWx0fSxuKSxvcmlnaW5hbFByb3BlcnRpZXM6ZSxvcmlnaW5hbE9wdGlvbnM6bixzdGFydFRpbWU6bmV8fGFlKCksZHVyYXRpb246bi5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24oZSxuKXt2YXIgaT1NLlR3ZWVuKHQsYy5vcHRzLGUsbixjLm9wdHMuc3BlY2lhbEVhc2luZ1tlXXx8Yy5vcHRzLmVhc2luZyk7cmV0dXJuIGMudHdlZW5zLnB1c2goaSksaX0sc3RvcDpmdW5jdGlvbihlKXt2YXIgbj0wLGk9ZT9jLnR3ZWVucy5sZW5ndGg6MDtpZihyKXJldHVybiB0aGlzO2ZvcihyPSEwO248aTtuKyspYy50d2VlbnNbbl0ucnVuKDEpO3JldHVybiBlPyhhLm5vdGlmeVdpdGgodCxbYywxLDBdKSxhLnJlc29sdmVXaXRoKHQsW2MsZV0pKTphLnJlamVjdFdpdGgodCxbYyxlXSksdGhpc319KSxoPWMucHJvcHM7Zm9yKCFmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM7Zm9yKG4gaW4gdClpZihyPWVbaT0kKG4pXSxvPXRbbl0sQXJyYXkuaXNBcnJheShvKSYmKHI9b1sxXSxvPXRbbl09b1swXSksbiE9PWkmJih0W2ldPW8sZGVsZXRlIHRbbl0pLChzPU0uY3NzSG9va3NbaV0pJiYiZXhwYW5kImluIHMpZm9yKG4gaW4gbz1zLmV4cGFuZChvKSxkZWxldGUgdFtpXSxvKW4gaW4gdHx8KHRbbl09b1tuXSxlW25dPXIpO2Vsc2UgZVtpXT1yfShoLGMub3B0cy5zcGVjaWFsRWFzaW5nKTtvPHM7bysrKWlmKGk9aGUucHJlZmlsdGVyc1tvXS5jYWxsKGMsdCxoLGMub3B0cykpcmV0dXJuIGIoaS5zdG9wKSYmKE0uX3F1ZXVlSG9va3MoYy5lbGVtLGMub3B0cy5xdWV1ZSkuc3RvcD1pLnN0b3AuYmluZChpKSksaTtyZXR1cm4gTS5tYXAoaCxjZSxjKSxiKGMub3B0cy5zdGFydCkmJmMub3B0cy5zdGFydC5jYWxsKHQsYyksYy5wcm9ncmVzcyhjLm9wdHMucHJvZ3Jlc3MpLmRvbmUoYy5vcHRzLmRvbmUsYy5vcHRzLmNvbXBsZXRlKS5mYWlsKGMub3B0cy5mYWlsKS5hbHdheXMoYy5vcHRzLmFsd2F5cyksTS5meC50aW1lcihNLmV4dGVuZCh1LHtlbGVtOnQsYW5pbTpjLHF1ZXVlOmMub3B0cy5xdWV1ZX0pKSxjfU0uQW5pbWF0aW9uPU0uZXh0ZW5kKGhlLHt0d2VlbmVyczp7IioiOltmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4odCxlKTtyZXR1cm4gdXQobi5lbGVtLHQscnQuZXhlYyhlKSxuKSxufV19LHR3ZWVuZXI6ZnVuY3Rpb24odCxlKXtiKHQpPyhlPXQsdD1bIioiXSk6dD10Lm1hdGNoKHopO2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7aSsrKW49dFtpXSxoZS50d2VlbmVyc1tuXT1oZS50d2VlbmVyc1tuXXx8W10saGUudHdlZW5lcnNbbl0udW5zaGlmdChlKX0scHJlZmlsdGVyczpbZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGEsdSxjLGgsbD0id2lkdGgiaW4gZXx8ImhlaWdodCJpbiBlLGQ9dGhpcyxmPXt9LHA9dC5zdHlsZSxtPXQubm9kZVR5cGUmJnN0KHQpLGc9Wi5nZXQodCwiZnhzaG93Iik7Zm9yKGkgaW4gbi5xdWV1ZXx8KG51bGw9PShzPU0uX3F1ZXVlSG9va3ModCwiZngiKSkudW5xdWV1ZWQmJihzLnVucXVldWVkPTAsYT1zLmVtcHR5LmZpcmUscy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7cy51bnF1ZXVlZHx8YSgpfSkscy51bnF1ZXVlZCsrLGQuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5hbHdheXMoZnVuY3Rpb24oKXtzLnVucXVldWVkLS0sTS5xdWV1ZSh0LCJmeCIpLmxlbmd0aHx8cy5lbXB0eS5maXJlKCl9KX0pKSxlKWlmKHI9ZVtpXSxyZS50ZXN0KHIpKXtpZihkZWxldGUgZVtpXSxvPW98fCJ0b2dnbGUiPT09cixyPT09KG0/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PXJ8fCFnfHx2b2lkIDA9PT1nW2ldKWNvbnRpbnVlO209ITB9ZltpXT1nJiZnW2ldfHxNLnN0eWxlKHQsaSl9aWYoKHU9IU0uaXNFbXB0eU9iamVjdChlKSl8fCFNLmlzRW1wdHlPYmplY3QoZikpZm9yKGkgaW4gbCYmMT09PXQubm9kZVR5cGUmJihuLm92ZXJmbG93PVtwLm92ZXJmbG93LHAub3ZlcmZsb3dYLHAub3ZlcmZsb3dZXSxudWxsPT0oYz1nJiZnLmRpc3BsYXkpJiYoYz1aLmdldCh0LCJkaXNwbGF5IikpLCJub25lIj09PShoPU0uY3NzKHQsImRpc3BsYXkiKSkmJihjP2g9YzoobHQoW3RdLCEwKSxjPXQuc3R5bGUuZGlzcGxheXx8YyxoPU0uY3NzKHQsImRpc3BsYXkiKSxsdChbdF0pKSksKCJpbmxpbmUiPT09aHx8ImlubGluZS1ibG9jayI9PT1oJiZudWxsIT1jKSYmIm5vbmUiPT09TS5jc3ModCwiZmxvYXQiKSYmKHV8fChkLmRvbmUoZnVuY3Rpb24oKXtwLmRpc3BsYXk9Y30pLG51bGw9PWMmJihoPXAuZGlzcGxheSxjPSJub25lIj09PWg/IiI6aCkpLHAuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLG4ub3ZlcmZsb3cmJihwLm92ZXJmbG93PSJoaWRkZW4iLGQuYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1uLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPW4ub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9bi5vdmVyZmxvd1syXX0pKSx1PSExLGYpdXx8KGc/ImhpZGRlbiJpbiBnJiYobT1nLmhpZGRlbik6Zz1aLmFjY2Vzcyh0LCJmeHNob3ciLHtkaXNwbGF5OmN9KSxvJiYoZy5oaWRkZW49IW0pLG0mJmx0KFt0XSwhMCksZC5kb25lKGZ1bmN0aW9uKCl7Zm9yKGkgaW4gbXx8bHQoW3RdKSxaLnJlbW92ZSh0LCJmeHNob3ciKSxmKU0uc3R5bGUodCxpLGZbaV0pfSkpLHU9Y2UobT9nW2ldOjAsaSxkKSxpIGluIGd8fChnW2ldPXUuc3RhcnQsbSYmKHUuZW5kPXUuc3RhcnQsdS5zdGFydD0wKSl9XSxwcmVmaWx0ZXI6ZnVuY3Rpb24odCxlKXtlP2hlLnByZWZpbHRlcnMudW5zaGlmdCh0KTpoZS5wcmVmaWx0ZXJzLnB1c2godCl9fSksTS5zcGVlZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dCYmIm9iamVjdCI9PXR5cGVvZiB0P00uZXh0ZW5kKHt9LHQpOntjb21wbGV0ZTpufHwhbiYmZXx8Yih0KSYmdCxkdXJhdGlvbjp0LGVhc2luZzpuJiZlfHxlJiYhYihlKSYmZX07cmV0dXJuIE0uZngub2ZmP2kuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGkuZHVyYXRpb24mJihpLmR1cmF0aW9uIGluIE0uZnguc3BlZWRzP2kuZHVyYXRpb249TS5meC5zcGVlZHNbaS5kdXJhdGlvbl06aS5kdXJhdGlvbj1NLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9aS5xdWV1ZSYmITAhPT1pLnF1ZXVlfHwoaS5xdWV1ZT0iZngiKSxpLm9sZD1pLmNvbXBsZXRlLGkuY29tcGxldGU9ZnVuY3Rpb24oKXtiKGkub2xkKSYmaS5vbGQuY2FsbCh0aGlzKSxpLnF1ZXVlJiZNLmRlcXVldWUodGhpcyxpLnF1ZXVlKX0saX0sTS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5maWx0ZXIoc3QpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6ZX0sdCxuLGkpfSxhbmltYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPU0uaXNFbXB0eU9iamVjdCh0KSxvPU0uc3BlZWQoZSxuLGkpLHM9ZnVuY3Rpb24oKXt2YXIgZT1oZSh0aGlzLE0uZXh0ZW5kKHt9LHQpLG8pOyhyfHxaLmdldCh0aGlzLCJmaW5pc2giKSkmJmUuc3RvcCghMCl9O3JldHVybiBzLmZpbmlzaD1zLHJ8fCExPT09by5xdWV1ZT90aGlzLmVhY2gocyk6dGhpcy5xdWV1ZShvLnF1ZXVlLHMpfSxzdG9wOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1mdW5jdGlvbih0KXt2YXIgZT10LnN0b3A7ZGVsZXRlIHQuc3RvcCxlKG4pfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPWUsZT10LHQ9dm9pZCAwKSxlJiYhMSE9PXQmJnRoaXMucXVldWUodHx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ITAscj1udWxsIT10JiZ0KyJxdWV1ZUhvb2tzIixvPU0udGltZXJzLHM9Wi5nZXQodGhpcyk7aWYocilzW3JdJiZzW3JdLnN0b3AmJmkoc1tyXSk7ZWxzZSBmb3IociBpbiBzKXNbcl0mJnNbcl0uc3RvcCYmb2UudGVzdChyKSYmaShzW3JdKTtmb3Iocj1vLmxlbmd0aDtyLS07KW9bcl0uZWxlbSE9PXRoaXN8fG51bGwhPXQmJm9bcl0ucXVldWUhPT10fHwob1tyXS5hbmltLnN0b3AobiksZT0hMSxvLnNwbGljZShyLDEpKTshZSYmbnx8TS5kZXF1ZXVlKHRoaXMsdCl9KX0sZmluaXNoOmZ1bmN0aW9uKHQpe3JldHVybiExIT09dCYmKHQ9dHx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUsbj1aLmdldCh0aGlzKSxpPW5bdCsicXVldWUiXSxyPW5bdCsicXVldWVIb29rcyJdLG89TS50aW1lcnMscz1pP2kubGVuZ3RoOjA7Zm9yKG4uZmluaXNoPSEwLE0ucXVldWUodGhpcyx0LFtdKSxyJiZyLnN0b3AmJnIuc3RvcC5jYWxsKHRoaXMsITApLGU9by5sZW5ndGg7ZS0tOylvW2VdLmVsZW09PT10aGlzJiZvW2VdLnF1ZXVlPT09dCYmKG9bZV0uYW5pbS5zdG9wKCEwKSxvLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8cztlKyspaVtlXSYmaVtlXS5maW5pc2gmJmlbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIG4uZmluaXNofSl9fSksTS5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbih0LGUpe3ZhciBuPU0uZm5bZV07TS5mbltlXT1mdW5jdGlvbih0LGkscil7cmV0dXJuIG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHQ/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKHVlKGUsITApLHQsaSxyKX19KSxNLmVhY2goe3NsaWRlRG93bjp1ZSgic2hvdyIpLHNsaWRlVXA6dWUoImhpZGUiKSxzbGlkZVRvZ2dsZTp1ZSgidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24odCxuLGkpe3JldHVybiB0aGlzLmFuaW1hdGUoZSx0LG4saSl9fSksTS50aW1lcnM9W10sTS5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIHQsZT0wLG49TS50aW1lcnM7Zm9yKG5lPURhdGUubm93KCk7ZTxuLmxlbmd0aDtlKyspKHQ9bltlXSkoKXx8bltlXSE9PXR8fG4uc3BsaWNlKGUtLSwxKTtuLmxlbmd0aHx8TS5meC5zdG9wKCksbmU9dm9pZCAwfSxNLmZ4LnRpbWVyPWZ1bmN0aW9uKHQpe00udGltZXJzLnB1c2godCksTS5meC5zdGFydCgpfSxNLmZ4LmludGVydmFsPTEzLE0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpZXx8KGllPSEwLHNlKCkpfSxNLmZ4LnN0b3A9ZnVuY3Rpb24oKXtpZT1udWxsfSxNLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxNLmZuLmRlbGF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9TS5meCYmTS5meC5zcGVlZHNbdF18fHQsZT1lfHwiZngiLHRoaXMucXVldWUoZSxmdW5jdGlvbihlLGkpe3ZhciByPW4uc2V0VGltZW91dChlLHQpO2kuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KHIpfX0pfSxmdW5jdGlvbigpe3ZhciB0PXMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxlPXMuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQocy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7dC50eXBlPSJjaGVja2JveCIsdi5jaGVja09uPSIiIT09dC52YWx1ZSx2Lm9wdFNlbGVjdGVkPWUuc2VsZWN0ZWQsKHQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS52YWx1ZT0idCIsdC50eXBlPSJyYWRpbyIsdi5yYWRpb1ZhbHVlPSJ0Ij09PXQudmFsdWV9KCk7dmFyIGxlLGRlPU0uZXhwci5hdHRySGFuZGxlO00uZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLmF0dHIsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00ucmVtb3ZlQXR0cih0aGlzLHQpfSl9fSksTS5leHRlbmQoe2F0dHI6ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbz10Lm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuIHZvaWQgMD09PXQuZ2V0QXR0cmlidXRlP00ucHJvcCh0LGUsbik6KDE9PT1vJiZNLmlzWE1MRG9jKHQpfHwocj1NLmF0dHJIb29rc1tlLnRvTG93ZXJDYXNlKCldfHwoTS5leHByLm1hdGNoLmJvb2wudGVzdChlKT9sZTp2b2lkIDApKSx2b2lkIDAhPT1uP251bGw9PT1uP3ZvaWQgTS5yZW1vdmVBdHRyKHQsZSk6ciYmInNldCJpbiByJiZ2b2lkIDAhPT0oaT1yLnNldCh0LG4sZSkpP2k6KHQuc2V0QXR0cmlidXRlKGUsbisiIiksbik6ciYmImdldCJpbiByJiZudWxsIT09KGk9ci5nZXQodCxlKSk/aTpudWxsPT0oaT1NLmZpbmQuYXR0cih0LGUpKT92b2lkIDA6aSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKHQsZSl7aWYoIXYucmFkaW9WYWx1ZSYmInJhZGlvIj09PWUmJlAodCwiaW5wdXQiKSl7dmFyIG49dC52YWx1ZTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoInR5cGUiLGUpLG4mJih0LnZhbHVlPW4pLGV9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCxlKXt2YXIgbixpPTAscj1lJiZlLm1hdGNoKHopO2lmKHImJjE9PT10Lm5vZGVUeXBlKWZvcig7bj1yW2krK107KXQucmVtb3ZlQXR0cmlidXRlKG4pfX0pLGxlPXtzZXQ6ZnVuY3Rpb24odCxlLG4pe3JldHVybiExPT09ZT9NLnJlbW92ZUF0dHIodCxuKTp0LnNldEF0dHJpYnV0ZShuLG4pLG59fSxNLmVhY2goTS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKC9cdysvZyksZnVuY3Rpb24odCxlKXt2YXIgbj1kZVtlXXx8TS5maW5kLmF0dHI7ZGVbZV09ZnVuY3Rpb24odCxlLGkpe3ZhciByLG8scz1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGl8fChvPWRlW3NdLGRlW3NdPXIscj1udWxsIT1uKHQsZSxpKT9zOm51bGwsZGVbc109bykscn19KTt2YXIgZmU9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxwZT0vXig/OmF8YXJlYSkkL2k7ZnVuY3Rpb24gbWUodCl7cmV0dXJuKHQubWF0Y2goeil8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIHQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gdmUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDoic3RyaW5nIj09dHlwZW9mIHQmJnQubWF0Y2goeil8fFtdfU0uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLnByb3AsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW00ucHJvcEZpeFt0XXx8dF19KX19KSxNLmV4dGVuZCh7cHJvcDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXQubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm4gMT09PW8mJk0uaXNYTUxEb2ModCl8fChlPU0ucHJvcEZpeFtlXXx8ZSxyPU0ucHJvcEhvb2tzW2VdKSx2b2lkIDAhPT1uP3ImJiJzZXQiaW4gciYmdm9pZCAwIT09KGk9ci5zZXQodCxuLGUpKT9pOnRbZV09bjpyJiYiZ2V0ImluIHImJm51bGwhPT0oaT1yLmdldCh0LGUpKT9pOnRbZV19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ0YWJpbmRleCIpO3JldHVybiBlP3BhcnNlSW50KGUsMTApOmZlLnRlc3QodC5ub2RlTmFtZSl8fHBlLnRlc3QodC5ub2RlTmFtZSkmJnQuaHJlZj8wOi0xfX19LHByb3BGaXg6e2ZvcjoiaHRtbEZvciIsY2xhc3M6ImNsYXNzTmFtZSJ9fSksdi5vcHRTZWxlY3RlZHx8KE0ucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudE5vZGU7ZSYmKGUuc2VsZWN0ZWRJbmRleCxlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxNLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe00ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxNLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpLHIsbyxzLGEsdT0wO2lmKGIodCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtNKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ2UodGhpcykpKX0pO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylpLmluZGV4T2YoIiAiK28rIiAiKTwwJiYoaSs9bysiICIpO3IhPT0oYT1tZShpKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIsYSl9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHU9MDtpZihiKHQpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7TSh0aGlzKS5yZW1vdmVDbGFzcyh0LmNhbGwodGhpcyxlLGdlKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylmb3IoO2kuaW5kZXhPZigiICIrbysiICIpPi0xOylpPWkucmVwbGFjZSgiICIrbysiICIsIiAiKTtyIT09KGE9bWUoaSkpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGEpfXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPXR5cGVvZiB0LGk9InN0cmluZyI9PT1ufHxBcnJheS5pc0FycmF5KHQpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGUmJmk/ZT90aGlzLmFkZENsYXNzKHQpOnRoaXMucmVtb3ZlQ2xhc3ModCk6Yih0KT90aGlzLmVhY2goZnVuY3Rpb24obil7TSh0aGlzKS50b2dnbGVDbGFzcyh0LmNhbGwodGhpcyxuLGdlKHRoaXMpLGUpLGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUscixvLHM7aWYoaSlmb3Iocj0wLG89TSh0aGlzKSxzPXZlKHQpO2U9c1tyKytdOylvLmhhc0NsYXNzKGUpP28ucmVtb3ZlQ2xhc3MoZSk6by5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PXQmJiJib29sZWFuIiE9PW58fCgoZT1nZSh0aGlzKSkmJlouc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09dD8iIjpaLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpPTA7Zm9yKGU9IiAiK3QrIiAiO249dGhpc1tpKytdOylpZigxPT09bi5ub2RlVHlwZSYmKCIgIittZShnZShuKSkrIiAiKS5pbmRleE9mKGUpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBiZT0vXHIvZztNLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Yih0KSx0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIHI7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0ocj1pP3QuY2FsbCh0aGlzLG4sTSh0aGlzKS52YWwoKSk6dCk/cj0iIjoibnVtYmVyIj09dHlwZW9mIHI/cis9IiI6QXJyYXkuaXNBcnJheShyKSYmKHI9TS5tYXAocixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjp0KyIifSkpLChlPU0udmFsSG9va3NbdGhpcy50eXBlXXx8TS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBlJiZ2b2lkIDAhPT1lLnNldCh0aGlzLHIsInZhbHVlIil8fCh0aGlzLnZhbHVlPXIpKX0pKTpyPyhlPU0udmFsSG9va3Nbci50eXBlXXx8TS52YWxIb29rc1tyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmImdldCJpbiBlJiZ2b2lkIDAhPT0obj1lLmdldChyLCJ2YWx1ZSIpKT9uOiJzdHJpbmciPT10eXBlb2Yobj1yLnZhbHVlKT9uLnJlcGxhY2UoYmUsIiIpOm51bGw9PW4/IiI6bjp2b2lkIDB9fSksTS5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ2YWx1ZSIpO3JldHVybiBudWxsIT1lP2U6bWUoTS50ZXh0KHQpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXQub3B0aW9ucyxvPXQuc2VsZWN0ZWRJbmRleCxzPSJzZWxlY3Qtb25lIj09PXQudHlwZSxhPXM/bnVsbDpbXSx1PXM/bysxOnIubGVuZ3RoO2ZvcihpPW88MD91OnM/bzowO2k8dTtpKyspaWYoKChuPXJbaV0pLnNlbGVjdGVkfHxpPT09bykmJiFuLmRpc2FibGVkJiYoIW4ucGFyZW50Tm9kZS5kaXNhYmxlZHx8IVAobi5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoZT1NKG4pLnZhbCgpLHMpcmV0dXJuIGU7YS5wdXNoKGUpfXJldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyPXQub3B0aW9ucyxvPU0ubWFrZUFycmF5KGUpLHM9ci5sZW5ndGg7cy0tOykoKGk9cltzXSkuc2VsZWN0ZWQ9TS5pbkFycmF5KE0udmFsSG9va3Mub3B0aW9uLmdldChpKSxvKT4tMSkmJihuPSEwKTtyZXR1cm4gbnx8KHQuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLE0uZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe00udmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQuY2hlY2tlZD1NLmluQXJyYXkoTSh0KS52YWwoKSxlKT4tMX19LHYuY2hlY2tPbnx8KE0udmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjp0LnZhbHVlfSl9KSx2LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBuO3ZhciB5ZT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sX2U9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX07TS5leHRlbmQoTS5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbih0LGUsaSxyKXt2YXIgbyxhLHUsYyxoLGwsZCxmLG09W2l8fHNdLGc9cC5jYWxsKHQsInR5cGUiKT90LnR5cGU6dCx2PXAuY2FsbCh0LCJuYW1lc3BhY2UiKT90Lm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGE9Zj11PWk9aXx8cywzIT09aS5ub2RlVHlwZSYmOCE9PWkubm9kZVR5cGUmJiF5ZS50ZXN0KGcrTS5ldmVudC50cmlnZ2VyZWQpJiYoZy5pbmRleE9mKCIuIik+LTEmJih2PWcuc3BsaXQoIi4iKSxnPXYuc2hpZnQoKSx2LnNvcnQoKSksaD1nLmluZGV4T2YoIjoiKTwwJiYib24iK2csKHQ9dFtNLmV4cGFuZG9dP3Q6bmV3IE0uRXZlbnQoZywib2JqZWN0Ij09dHlwZW9mIHQmJnQpKS5pc1RyaWdnZXI9cj8yOjMsdC5uYW1lc3BhY2U9di5qb2luKCIuIiksdC5ybmFtZXNwYWNlPXQubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Yuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCx0LnJlc3VsdD12b2lkIDAsdC50YXJnZXR8fCh0LnRhcmdldD1pKSxlPW51bGw9PWU/W3RdOk0ubWFrZUFycmF5KGUsW3RdKSxkPU0uZXZlbnQuc3BlY2lhbFtnXXx8e30scnx8IWQudHJpZ2dlcnx8ITEhPT1kLnRyaWdnZXIuYXBwbHkoaSxlKSkpe2lmKCFyJiYhZC5ub0J1YmJsZSYmIXkoaSkpe2ZvcihjPWQuZGVsZWdhdGVUeXBlfHxnLHllLnRlc3QoYytnKXx8KGE9YS5wYXJlbnROb2RlKTthO2E9YS5wYXJlbnROb2RlKW0ucHVzaChhKSx1PWE7dT09PShpLm93bmVyRG9jdW1lbnR8fHMpJiZtLnB1c2godS5kZWZhdWx0Vmlld3x8dS5wYXJlbnRXaW5kb3d8fG4pfWZvcihvPTA7KGE9bVtvKytdKSYmIXQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZj1hLHQudHlwZT1vPjE/YzpkLmJpbmRUeXBlfHxnLChsPShaLmdldChhLCJldmVudHMiKXx8e30pW3QudHlwZV0mJlouZ2V0KGEsImhhbmRsZSIpKSYmbC5hcHBseShhLGUpLChsPWgmJmFbaF0pJiZsLmFwcGx5JiZHKGEpJiYodC5yZXN1bHQ9bC5hcHBseShhLGUpLCExPT09dC5yZXN1bHQmJnQucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIHQudHlwZT1nLHJ8fHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fGQuX2RlZmF1bHQmJiExIT09ZC5fZGVmYXVsdC5hcHBseShtLnBvcCgpLGUpfHwhRyhpKXx8aCYmYihpW2ddKSYmIXkoaSkmJigodT1pW2hdKSYmKGlbaF09bnVsbCksTS5ldmVudC50cmlnZ2VyZWQ9Zyx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihnLF9lKSxpW2ddKCksdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZyxfZSksTS5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLHUmJihpW2hdPXUpKSx0LnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1NLmV4dGVuZChuZXcgTS5FdmVudCxuLHt0eXBlOnQsaXNTaW11bGF0ZWQ6ITB9KTtNLmV2ZW50LnRyaWdnZXIoaSxudWxsLGUpfX0pLE0uZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00uZXZlbnQudHJpZ2dlcih0LGUsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIE0uZXZlbnQudHJpZ2dlcih0LGUsbiwhMCl9fSksdi5mb2N1c2lufHxNLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7TS5ldmVudC5zaW11bGF0ZShlLHQudGFyZ2V0LE0uZXZlbnQuZml4KHQpKX07TS5ldmVudC5zcGVjaWFsW2VdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBpPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxyPVouYWNjZXNzKGksZSk7cnx8aS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMCksWi5hY2Nlc3MoaSxlLChyfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMscj1aLmFjY2VzcyhpLGUpLTE7cj9aLmFjY2VzcyhpLGUscik6KGkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sITApLFoucmVtb3ZlKGksZSkpfX19KTt2YXIgd2U9bi5sb2NhdGlvbix4ZT1EYXRlLm5vdygpLE1lPS9cPy87TS5wYXJzZVhNTD1mdW5jdGlvbih0KXt2YXIgZTtpZighdHx8InN0cmluZyIhPXR5cGVvZiB0KXJldHVybiBudWxsO3RyeXtlPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyh0LCJ0ZXh0L3htbCIpfWNhdGNoKHQpe2U9dm9pZCAwfXJldHVybiBlJiYhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyc2VyZXJyb3IiKS5sZW5ndGh8fE0uZXJyb3IoIkludmFsaWQgWE1MOiAiK3QpLGV9O3ZhciBTZT0vXFtcXSQvLEVlPS9ccj9cbi9nLEFlPS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxDZT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZnVuY3Rpb24ga2UodCxlLG4saSl7dmFyIHI7aWYoQXJyYXkuaXNBcnJheShlKSlNLmVhY2goZSxmdW5jdGlvbihlLHIpe258fFNlLnRlc3QodCk/aSh0LHIpOmtlKHQrIlsiKygib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPXI/ZToiIikrIl0iLHIsbixpKX0pO2Vsc2UgaWYobnx8Im9iamVjdCIhPT14KGUpKWkodCxlKTtlbHNlIGZvcihyIGluIGUpa2UodCsiWyIrcisiXSIsZVtyXSxuLGkpfU0ucGFyYW09ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1iKGUpP2UoKTplO2lbaS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudCh0KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PW4/IiI6bil9O2lmKEFycmF5LmlzQXJyYXkodCl8fHQuanF1ZXJ5JiYhTS5pc1BsYWluT2JqZWN0KHQpKU0uZWFjaCh0LGZ1bmN0aW9uKCl7cih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIHQpa2Uobix0W25dLGUscik7cmV0dXJuIGkuam9pbigiJiIpfSxNLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIE0ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgdD1NLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gdD9NLm1ha2VBcnJheSh0KTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFNKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmQ2UudGVzdCh0aGlzLm5vZGVOYW1lKSYmIUFlLnRlc3QodCkmJih0aGlzLmNoZWNrZWR8fCFkdC50ZXN0KHQpKX0pLm1hcChmdW5jdGlvbih0LGUpe3ZhciBuPU0odGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP00ubWFwKG4sZnVuY3Rpb24odCl7cmV0dXJue25hbWU6ZS5uYW1lLHZhbHVlOnQucmVwbGFjZShFZSwiXHJcbiIpfX0pOntuYW1lOmUubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRWUsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgT2U9LyUyMC9nLFBlPS8jLiokLyxUZT0vKFs/Jl0pXz1bXiZdKi8samU9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxJZT0vXig/OkdFVHxIRUFEKSQvLExlPS9eXC9cLy8sQmU9e30sRGU9e30sUmU9IiovIi5jb25jYXQoIioiKSx6ZT1zLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBOZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXsic3RyaW5nIiE9dHlwZW9mIGUmJihuPWUsZT0iKiIpO3ZhciBpLHI9MCxvPWUudG9Mb3dlckNhc2UoKS5tYXRjaCh6KXx8W107aWYoYihuKSlmb3IoO2k9b1tyKytdOykiKyI9PT1pWzBdPyhpPWkuc2xpY2UoMSl8fCIqIiwodFtpXT10W2ldfHxbXSkudW5zaGlmdChuKSk6KHRbaV09dFtpXXx8W10pLnB1c2gobil9fWZ1bmN0aW9uIFdlKHQsZSxuLGkpe3ZhciByPXt9LG89dD09PURlO2Z1bmN0aW9uIHMoYSl7dmFyIHU7cmV0dXJuIHJbYV09ITAsTS5lYWNoKHRbYV18fFtdLGZ1bmN0aW9uKHQsYSl7dmFyIGM9YShlLG4saSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBjfHxvfHxyW2NdP28/ISh1PWMpOnZvaWQgMDooZS5kYXRhVHlwZXMudW5zaGlmdChjKSxzKGMpLCExKX0pLHV9cmV0dXJuIHMoZS5kYXRhVHlwZXNbMF0pfHwhclsiKiJdJiZzKCIqIil9ZnVuY3Rpb24gcWUodCxlKXt2YXIgbixpLHI9TS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIGUpdm9pZCAwIT09ZVtuXSYmKChyW25dP3Q6aXx8KGk9e30pKVtuXT1lW25dKTtyZXR1cm4gaSYmTS5leHRlbmQoITAsdCxpKSx0fXplLmhyZWY9d2UuaHJlZixNLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6d2UuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdCh3ZS5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSZSx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6TS5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/cWUocWUodCxNLmFqYXhTZXR0aW5ncyksZSk6cWUoTS5hamF4U2V0dGluZ3MsdCl9LGFqYXhQcmVmaWx0ZXI6TmUoQmUpLGFqYXhUcmFuc3BvcnQ6TmUoRGUpLGFqYXg6ZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIHQmJihlPXQsdD12b2lkIDApLGU9ZXx8e307dmFyIGkscixvLGEsdSxjLGgsbCxkLGYscD1NLmFqYXhTZXR1cCh7fSxlKSxtPXAuY29udGV4dHx8cCxnPXAuY29udGV4dCYmKG0ubm9kZVR5cGV8fG0uanF1ZXJ5KT9NKG0pOk0uZXZlbnQsdj1NLkRlZmVycmVkKCksYj1NLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx5PXAuc3RhdHVzQ29kZXx8e30sXz17fSx3PXt9LHg9ImNhbmNlbGVkIixTPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24odCl7dmFyIGU7aWYoaCl7aWYoIWEpZm9yKGE9e307ZT1qZS5leGVjKG8pOylhW2VbMV0udG9Mb3dlckNhc2UoKV09ZVsyXTtlPWFbdC50b0xvd2VyQ2FzZSgpXX1yZXR1cm4gbnVsbD09ZT9udWxsOmV9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBoP286bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1oJiYodD13W3QudG9Mb3dlckNhc2UoKV09d1t0LnRvTG93ZXJDYXNlKCldfHx0LF9bdF09ZSksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09aCYmKHAubWltZVR5cGU9dCksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbih0KXt2YXIgZTtpZih0KWlmKGgpUy5hbHdheXModFtTLnN0YXR1c10pO2Vsc2UgZm9yKGUgaW4gdCl5W2VdPVt5W2VdLHRbZV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbih0KXt2YXIgZT10fHx4O3JldHVybiBpJiZpLmFib3J0KGUpLEUoMCxlKSx0aGlzfX07aWYodi5wcm9taXNlKFMpLHAudXJsPSgodHx8cC51cmx8fHdlLmhyZWYpKyIiKS5yZXBsYWNlKExlLHdlLnByb3RvY29sKyIvLyIpLHAudHlwZT1lLm1ldGhvZHx8ZS50eXBlfHxwLm1ldGhvZHx8cC50eXBlLHAuZGF0YVR5cGVzPShwLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goeil8fFsiIl0sbnVsbD09cC5jcm9zc0RvbWFpbil7Yz1zLmNyZWF0ZUVsZW1lbnQoImEiKTt0cnl7Yy5ocmVmPXAudXJsLGMuaHJlZj1jLmhyZWYscC5jcm9zc0RvbWFpbj16ZS5wcm90b2NvbCsiLy8iK3plLmhvc3QhPWMucHJvdG9jb2wrIi8vIitjLmhvc3R9Y2F0Y2godCl7cC5jcm9zc0RvbWFpbj0hMH19aWYocC5kYXRhJiZwLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIHAuZGF0YSYmKHAuZGF0YT1NLnBhcmFtKHAuZGF0YSxwLnRyYWRpdGlvbmFsKSksV2UoQmUscCxlLFMpLGgpcmV0dXJuIFM7Zm9yKGQgaW4obD1NLmV2ZW50JiZwLmdsb2JhbCkmJjA9PU0uYWN0aXZlKysmJk0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IikscC50eXBlPXAudHlwZS50b1VwcGVyQ2FzZSgpLHAuaGFzQ29udGVudD0hSWUudGVzdChwLnR5cGUpLHI9cC51cmwucmVwbGFjZShQZSwiIikscC5oYXNDb250ZW50P3AuZGF0YSYmcC5wcm9jZXNzRGF0YSYmMD09PShwLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihwLmRhdGE9cC5kYXRhLnJlcGxhY2UoT2UsIisiKSk6KGY9cC51cmwuc2xpY2Uoci5sZW5ndGgpLHAuZGF0YSYmKHAucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2YgcC5kYXRhKSYmKHIrPShNZS50ZXN0KHIpPyImIjoiPyIpK3AuZGF0YSxkZWxldGUgcC5kYXRhKSwhMT09PXAuY2FjaGUmJihyPXIucmVwbGFjZShUZSwiJDEiKSxmPShNZS50ZXN0KHIpPyImIjoiPyIpKyJfPSIreGUrKytmKSxwLnVybD1yK2YpLHAuaWZNb2RpZmllZCYmKE0ubGFzdE1vZGlmaWVkW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixNLmxhc3RNb2RpZmllZFtyXSksTS5ldGFnW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLE0uZXRhZ1tyXSkpLChwLmRhdGEmJnAuaGFzQ29udGVudCYmITEhPT1wLmNvbnRlbnRUeXBlfHxlLmNvbnRlbnRUeXBlKSYmUy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHAuY29udGVudFR5cGUpLFMuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixwLmRhdGFUeXBlc1swXSYmcC5hY2NlcHRzW3AuZGF0YVR5cGVzWzBdXT9wLmFjY2VwdHNbcC5kYXRhVHlwZXNbMF1dKygiKiIhPT1wLmRhdGFUeXBlc1swXT8iLCAiK1JlKyI7IHE9MC4wMSI6IiIpOnAuYWNjZXB0c1siKiJdKSxwLmhlYWRlcnMpUy5zZXRSZXF1ZXN0SGVhZGVyKGQscC5oZWFkZXJzW2RdKTtpZihwLmJlZm9yZVNlbmQmJighMT09PXAuYmVmb3JlU2VuZC5jYWxsKG0sUyxwKXx8aCkpcmV0dXJuIFMuYWJvcnQoKTtpZih4PSJhYm9ydCIsYi5hZGQocC5jb21wbGV0ZSksUy5kb25lKHAuc3VjY2VzcyksUy5mYWlsKHAuZXJyb3IpLGk9V2UoRGUscCxlLFMpKXtpZihTLnJlYWR5U3RhdGU9MSxsJiZnLnRyaWdnZXIoImFqYXhTZW5kIixbUyxwXSksaClyZXR1cm4gUztwLmFzeW5jJiZwLnRpbWVvdXQ+MCYmKHU9bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uy5hYm9ydCgidGltZW91dCIpfSxwLnRpbWVvdXQpKTt0cnl7aD0hMSxpLnNlbmQoXyxFKX1jYXRjaCh0KXtpZihoKXRocm93IHQ7RSgtMSx0KX19ZWxzZSBFKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBFKHQsZSxzLGEpe3ZhciBjLGQsZixfLHcseD1lO2h8fChoPSEwLHUmJm4uY2xlYXJUaW1lb3V0KHUpLGk9dm9pZCAwLG89YXx8IiIsUy5yZWFkeVN0YXRlPXQ+MD80OjAsYz10Pj0yMDAmJnQ8MzAwfHwzMDQ9PT10LHMmJihfPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkscixvLHMsYT10LmNvbnRlbnRzLHU9dC5kYXRhVHlwZXM7IioiPT09dVswXTspdS5zaGlmdCgpLHZvaWQgMD09PWkmJihpPXQubWltZVR5cGV8fGUuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihpKWZvcihyIGluIGEpaWYoYVtyXSYmYVtyXS50ZXN0KGkpKXt1LnVuc2hpZnQocik7YnJlYWt9aWYodVswXWluIG4pbz11WzBdO2Vsc2V7Zm9yKHIgaW4gbil7aWYoIXVbMF18fHQuY29udmVydGVyc1tyKyIgIit1WzBdXSl7bz1yO2JyZWFrfXN8fChzPXIpfW89b3x8c31pZihvKXJldHVybiBvIT09dVswXSYmdS51bnNoaWZ0KG8pLG5bb119KHAsUyxzKSksXz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcixvLHMsYSx1LGM9e30saD10LmRhdGFUeXBlcy5zbGljZSgpO2lmKGhbMV0pZm9yKHMgaW4gdC5jb252ZXJ0ZXJzKWNbcy50b0xvd2VyQ2FzZSgpXT10LmNvbnZlcnRlcnNbc107Zm9yKG89aC5zaGlmdCgpO287KWlmKHQucmVzcG9uc2VGaWVsZHNbb10mJihuW3QucmVzcG9uc2VGaWVsZHNbb11dPWUpLCF1JiZpJiZ0LmRhdGFGaWx0ZXImJihlPXQuZGF0YUZpbHRlcihlLHQuZGF0YVR5cGUpKSx1PW8sbz1oLnNoaWZ0KCkpaWYoIioiPT09bylvPXU7ZWxzZSBpZigiKiIhPT11JiZ1IT09byl7aWYoIShzPWNbdSsiICIrb118fGNbIiogIitvXSkpZm9yKHIgaW4gYylpZigoYT1yLnNwbGl0KCIgIikpWzFdPT09byYmKHM9Y1t1KyIgIithWzBdXXx8Y1siKiAiK2FbMF1dKSl7ITA9PT1zP3M9Y1tyXTohMCE9PWNbcl0mJihvPWFbMF0saC51bnNoaWZ0KGFbMV0pKTticmVha31pZighMCE9PXMpaWYocyYmdC50aHJvd3MpZT1zKGUpO2Vsc2UgdHJ5e2U9cyhlKX1jYXRjaCh0KXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpzP3Q6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK3UrIiB0byAiK299fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6ZX19KHAsXyxTLGMpLGM/KHAuaWZNb2RpZmllZCYmKCh3PVMuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSkmJihNLmxhc3RNb2RpZmllZFtyXT13KSwodz1TLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoTS5ldGFnW3JdPXcpKSwyMDQ9PT10fHwiSEVBRCI9PT1wLnR5cGU/eD0ibm9jb250ZW50IjozMDQ9PT10P3g9Im5vdG1vZGlmaWVkIjooeD1fLnN0YXRlLGQ9Xy5kYXRhLGM9IShmPV8uZXJyb3IpKSk6KGY9eCwhdCYmeHx8KHg9ImVycm9yIix0PDAmJih0PTApKSksUy5zdGF0dXM9dCxTLnN0YXR1c1RleHQ9KGV8fHgpKyIiLGM/di5yZXNvbHZlV2l0aChtLFtkLHgsU10pOnYucmVqZWN0V2l0aChtLFtTLHgsZl0pLFMuc3RhdHVzQ29kZSh5KSx5PXZvaWQgMCxsJiZnLnRyaWdnZXIoYz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFtTLHAsYz9kOmZdKSxiLmZpcmVXaXRoKG0sW1MseF0pLGwmJihnLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW1MscF0pLC0tTS5hY3RpdmV8fE0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiBTfSxnZXRKU09OOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTS5nZXQodCxlLG4sImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE0uZ2V0KHQsdm9pZCAwLGUsInNjcmlwdCIpfX0pLE0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbih0LGUpe01bZV09ZnVuY3Rpb24odCxuLGkscil7cmV0dXJuIGIobikmJihyPXJ8fGksaT1uLG49dm9pZCAwKSxNLmFqYXgoTS5leHRlbmQoe3VybDp0LHR5cGU6ZSxkYXRhVHlwZTpyLGRhdGE6bixzdWNjZXNzOml9LE0uaXNQbGFpbk9iamVjdCh0KSYmdCkpfX0pLE0uX2V2YWxVcmw9ZnVuY3Rpb24odCl7cmV0dXJuIE0uYWpheCh7dXJsOnQsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsdGhyb3dzOiEwfSl9LE0uZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzWzBdJiYoYih0KSYmKHQ9dC5jYWxsKHRoaXNbMF0pKSxlPU0odCx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmUuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGUubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXM7dC5maXJzdEVsZW1lbnRDaGlsZDspdD10LmZpcnN0RWxlbWVudENoaWxkO3JldHVybiB0fSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe00odGhpcykud3JhcElubmVyKHQuY2FsbCh0aGlzLGUpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPU0odGhpcyksbj1lLmNvbnRlbnRzKCk7bi5sZW5ndGg/bi53cmFwQWxsKHQpOmUuYXBwZW5kKHQpfSl9LHdyYXA6ZnVuY3Rpb24odCl7dmFyIGU9Yih0KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe00odGhpcykud3JhcEFsbChlP3QuY2FsbCh0aGlzLG4pOnQpfSl9LHVud3JhcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnQodCkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe00odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSksTS5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKHQpe3JldHVybiFNLmV4cHIucHNldWRvcy52aXNpYmxlKHQpfSxNLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQub2Zmc2V0V2lkdGh8fHQub2Zmc2V0SGVpZ2h0fHx0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0sTS5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaCh0KXt9fTt2YXIgSGU9ezA6MjAwLDEyMjM6MjA0fSxGZT1NLmFqYXhTZXR0aW5ncy54aHIoKTt2LmNvcnM9ISFGZSYmIndpdGhDcmVkZW50aWFscyJpbiBGZSx2LmFqYXg9RmU9ISFGZSxNLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24odCl7dmFyIGUsaTtpZih2LmNvcnN8fEZlJiYhdC5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihyLG8pe3ZhciBzLGE9dC54aHIoKTtpZihhLm9wZW4odC50eXBlLHQudXJsLHQuYXN5bmMsdC51c2VybmFtZSx0LnBhc3N3b3JkKSx0LnhockZpZWxkcylmb3IocyBpbiB0LnhockZpZWxkcylhW3NdPXQueGhyRmllbGRzW3NdO2ZvcihzIGluIHQubWltZVR5cGUmJmEub3ZlcnJpZGVNaW1lVHlwZSYmYS5vdmVycmlkZU1pbWVUeXBlKHQubWltZVR5cGUpLHQuY3Jvc3NEb21haW58fHJbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KHJbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKSxyKWEuc2V0UmVxdWVzdEhlYWRlcihzLHJbc10pO2U9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZSYmKGU9aT1hLm9ubG9hZD1hLm9uZXJyb3I9YS5vbmFib3J0PWEub250aW1lb3V0PWEub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsImFib3J0Ij09PXQ/YS5hYm9ydCgpOiJlcnJvciI9PT10PyJudW1iZXIiIT10eXBlb2YgYS5zdGF0dXM/bygwLCJlcnJvciIpOm8oYS5zdGF0dXMsYS5zdGF0dXNUZXh0KTpvKEhlW2Euc3RhdHVzXXx8YS5zdGF0dXMsYS5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShhLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBhLnJlc3BvbnNlVGV4dD97YmluYXJ5OmEucmVzcG9uc2V9Ont0ZXh0OmEucmVzcG9uc2VUZXh0fSxhLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fSxhLm9ubG9hZD1lKCksaT1hLm9uZXJyb3I9YS5vbnRpbWVvdXQ9ZSgiZXJyb3IiKSx2b2lkIDAhPT1hLm9uYWJvcnQ/YS5vbmFib3J0PWk6YS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09YS5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlJiZpKCl9KX0sZT1lKCJhYm9ydCIpO3RyeXthLnNlbmQodC5oYXNDb250ZW50JiZ0LmRhdGF8fG51bGwpfWNhdGNoKHQpe2lmKGUpdGhyb3cgdH19LGFib3J0OmZ1bmN0aW9uKCl7ZSYmZSgpfX19KSxNLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24odCl7dC5jcm9zc0RvbWFpbiYmKHQuY29udGVudHMuc2NyaXB0PSExKX0pLE0uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKHQpe3JldHVybiBNLmdsb2JhbEV2YWwodCksdH19fSksTS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQuY2FjaGUmJih0LmNhY2hlPSExKSx0LmNyb3NzRG9tYWluJiYodC50eXBlPSJHRVQiKX0pLE0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbih0KXt2YXIgZSxuO2lmKHQuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oaSxyKXtlPU0oIjxzY3JpcHQ+IikucHJvcCh7Y2hhcnNldDp0LnNjcmlwdENoYXJzZXQsc3JjOnQudXJsfSkub24oImxvYWQgZXJyb3IiLG49ZnVuY3Rpb24odCl7ZS5yZW1vdmUoKSxuPW51bGwsdCYmcigiZXJyb3IiPT09dC50eXBlPzQwNDoyMDAsdC50eXBlKX0pLHMuaGVhZC5hcHBlbmRDaGlsZChlWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtuJiZuKCl9fX0pO3ZhciBWZSxVZT1bXSxLZT0vKD0pXD8oPz0mfCQpfFw/XD8vO00uYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdD1VZS5wb3AoKXx8TS5leHBhbmRvKyJfIit4ZSsrO3JldHVybiB0aGlzW3RdPSEwLHR9fSksTS5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbih0LGUsaSl7dmFyIHIsbyxzLGE9ITEhPT10Lmpzb25wJiYoS2UudGVzdCh0LnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiB0LmRhdGEmJjA9PT0odC5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZLZS50ZXN0KHQuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PXQuZGF0YVR5cGVzWzBdKXJldHVybiByPXQuanNvbnBDYWxsYmFjaz1iKHQuanNvbnBDYWxsYmFjayk/dC5qc29ucENhbGxiYWNrKCk6dC5qc29ucENhbGxiYWNrLGE/dFthXT10W2FdLnJlcGxhY2UoS2UsIiQxIityKTohMSE9PXQuanNvbnAmJih0LnVybCs9KE1lLnRlc3QodC51cmwpPyImIjoiPyIpK3QuanNvbnArIj0iK3IpLHQuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBzfHxNLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLHNbMF19LHQuZGF0YVR5cGVzWzBdPSJqc29uIixvPW5bcl0sbltyXT1mdW5jdGlvbigpe3M9YXJndW1lbnRzfSxpLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PW8/TShuKS5yZW1vdmVQcm9wKHIpOm5bcl09byx0W3JdJiYodC5qc29ucENhbGxiYWNrPWUuanNvbnBDYWxsYmFjayxVZS5wdXNoKHIpKSxzJiZiKG8pJiZvKHNbMF0pLHM9bz12b2lkIDB9KSwic2NyaXB0In0pLHYuY3JlYXRlSFRNTERvY3VtZW50PSgoVmU9cy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1WZS5jaGlsZE5vZGVzLmxlbmd0aCksTS5wYXJzZUhUTUw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgdD9bXTooImJvb2xlYW4iPT10eXBlb2YgZSYmKG49ZSxlPSExKSxlfHwodi5jcmVhdGVIVE1MRG9jdW1lbnQ/KChpPShlPXMuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPXMubG9jYXRpb24uaHJlZixlLmhlYWQuYXBwZW5kQ2hpbGQoaSkpOmU9cyksbz0hbiYmW10sKHI9VC5leGVjKHQpKT9bZS5jcmVhdGVFbGVtZW50KHJbMV0pXToocj13dChbdF0sZSxvKSxvJiZvLmxlbmd0aCYmTShvKS5yZW1vdmUoKSxNLm1lcmdlKFtdLHIuY2hpbGROb2RlcykpKTt2YXIgaSxyLG99LE0uZm4ubG9hZD1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHM9dGhpcyxhPXQuaW5kZXhPZigiICIpO3JldHVybiBhPi0xJiYoaT1tZSh0LnNsaWNlKGEpKSx0PXQuc2xpY2UoMCxhKSksYihlKT8obj1lLGU9dm9pZCAwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJihyPSJQT1NUIikscy5sZW5ndGg+MCYmTS5hamF4KHt1cmw6dCx0eXBlOnJ8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmV9KS5kb25lKGZ1bmN0aW9uKHQpe289YXJndW1lbnRzLHMuaHRtbChpP00oIjxkaXY+IikuYXBwZW5kKE0ucGFyc2VIVE1MKHQpKS5maW5kKGkpOnQpfSkuYWx3YXlzKG4mJmZ1bmN0aW9uKHQsZSl7cy5lYWNoKGZ1bmN0aW9uKCl7bi5hcHBseSh0aGlzLG98fFt0LnJlc3BvbnNlVGV4dCxlLHRdKX0pfSksdGhpc30sTS5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24odCxlKXtNLmZuW2VdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9uKGUsdCl9fSksTS5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIE0uZ3JlcChNLnRpbWVycyxmdW5jdGlvbihlKXtyZXR1cm4gdD09PWUuZWxlbX0pLmxlbmd0aH0sTS5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGM9TS5jc3ModCwicG9zaXRpb24iKSxoPU0odCksbD17fTsic3RhdGljIj09PWMmJih0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLGE9aC5vZmZzZXQoKSxvPU0uY3NzKHQsInRvcCIpLHU9TS5jc3ModCwibGVmdCIpLCgiYWJzb2x1dGUiPT09Y3x8ImZpeGVkIj09PWMpJiYobyt1KS5pbmRleE9mKCJhdXRvIik+LTE/KHM9KGk9aC5wb3NpdGlvbigpKS50b3Ascj1pLmxlZnQpOihzPXBhcnNlRmxvYXQobyl8fDAscj1wYXJzZUZsb2F0KHUpfHwwKSxiKGUpJiYoZT1lLmNhbGwodCxuLE0uZXh0ZW5kKHt9LGEpKSksbnVsbCE9ZS50b3AmJihsLnRvcD1lLnRvcC1hLnRvcCtzKSxudWxsIT1lLmxlZnQmJihsLmxlZnQ9ZS5sZWZ0LWEubGVmdCtyKSwidXNpbmciaW4gZT9lLnVzaW5nLmNhbGwodCxsKTpoLmNzcyhsKX19LE0uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24odCl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihlKXtNLm9mZnNldC5zZXRPZmZzZXQodGhpcyx0LGUpfSk7dmFyIGUsbixpPXRoaXNbMF07cmV0dXJuIGk/aS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49aS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6ZS50b3Arbi5wYWdlWU9mZnNldCxsZWZ0OmUubGVmdCtuLnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH06dm9pZCAwfSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciB0LGUsbixpPXRoaXNbMF0scj17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09TS5jc3MoaSwicG9zaXRpb24iKSllPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZWxzZXtmb3IoZT10aGlzLm9mZnNldCgpLG49aS5vd25lckRvY3VtZW50LHQ9aS5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3QmJih0PT09bi5ib2R5fHx0PT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PU0uY3NzKHQsInBvc2l0aW9uIik7KXQ9dC5wYXJlbnROb2RlO3QmJnQhPT1pJiYxPT09dC5ub2RlVHlwZSYmKChyPU0odCkub2Zmc2V0KCkpLnRvcCs9TS5jc3ModCwiYm9yZGVyVG9wV2lkdGgiLCEwKSxyLmxlZnQrPU0uY3NzKHQsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLXIudG9wLU0uY3NzKGksIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LXIubGVmdC1NLmNzcyhpLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMub2Zmc2V0UGFyZW50O3QmJiJzdGF0aWMiPT09TS5jc3ModCwicG9zaXRpb24iKTspdD10Lm9mZnNldFBhcmVudDtyZXR1cm4gdHx8eHR9KX19KSxNLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24odCxlKXt2YXIgbj0icGFnZVlPZmZzZXQiPT09ZTtNLmZuW3RdPWZ1bmN0aW9uKGkpe3JldHVybiBVKHRoaXMsZnVuY3Rpb24odCxpLHIpe3ZhciBvO2lmKHkodCk/bz10Ojk9PT10Lm5vZGVUeXBlJiYobz10LmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1yKXJldHVybiBvP29bZV06dFtpXTtvP28uc2Nyb2xsVG8obj9vLnBhZ2VYT2Zmc2V0OnIsbj9yOm8ucGFnZVlPZmZzZXQpOnRbaV09cn0sdCxpLGFyZ3VtZW50cy5sZW5ndGgpfX0pLE0uZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbih0LGUpe00uY3NzSG9va3NbZV09VnQodi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKHQsbil7aWYobilyZXR1cm4gbj1GdCh0LGUpLFd0LnRlc3Qobik/TSh0KS5wb3NpdGlvbigpW2VdKyJweCI6bn0pfSksTS5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmVhY2goe3BhZGRpbmc6ImlubmVyIit0LGNvbnRlbnQ6ZSwiIjoib3V0ZXIiK3R9LGZ1bmN0aW9uKG4saSl7TS5mbltpXT1mdW5jdGlvbihyLG8pe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgmJihufHwiYm9vbGVhbiIhPXR5cGVvZiByKSxhPW58fCghMD09PXJ8fCEwPT09bz8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFUodGhpcyxmdW5jdGlvbihlLG4scil7dmFyIG87cmV0dXJuIHkoZSk/MD09PWkuaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrdF06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrdF06OT09PWUubm9kZVR5cGU/KG89ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK3RdLG9bInNjcm9sbCIrdF0sZS5ib2R5WyJvZmZzZXQiK3RdLG9bIm9mZnNldCIrdF0sb1siY2xpZW50Iit0XSkpOnZvaWQgMD09PXI/TS5jc3MoZSxuLGEpOk0uc3R5bGUoZSxuLHIsYSl9LGUscz9yOnZvaWQgMCxzKX19KX0pLE0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe00uZm5bZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oZSxudWxsLHQsbik6dGhpcy50cmlnZ2VyKGUpfX0pLE0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIodCkubW91c2VsZWF2ZShlfHx0KX19KSxNLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMub24odCxudWxsLGUsbil9LHVuYmluZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm9mZih0LG51bGwsZSl9LGRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0aGlzLm9uKGUsdCxuLGkpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYodCwiKioiKTp0aGlzLm9mZihlLHR8fCIqKiIsbil9fSksTS5wcm94eT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscjtpZigic3RyaW5nIj09dHlwZW9mIGUmJihuPXRbZV0sZT10LHQ9biksYih0KSlyZXR1cm4gaT11LmNhbGwoYXJndW1lbnRzLDIpLChyPWZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZXx8dGhpcyxpLmNvbmNhdCh1LmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD10Lmd1aWQ9dC5ndWlkfHxNLmd1aWQrKyxyfSxNLmhvbGRSZWFkeT1mdW5jdGlvbih0KXt0P00ucmVhZHlXYWl0Kys6TS5yZWFkeSghMCl9LE0uaXNBcnJheT1BcnJheS5pc0FycmF5LE0ucGFyc2VKU09OPUpTT04ucGFyc2UsTS5ub2RlTmFtZT1QLE0uaXNGdW5jdGlvbj1iLE0uaXNXaW5kb3c9eSxNLmNhbWVsQ2FzZT0kLE0udHlwZT14LE0ubm93PURhdGUubm93LE0uaXNOdW1lcmljPWZ1bmN0aW9uKHQpe3ZhciBlPU0udHlwZSh0KTtyZXR1cm4oIm51bWJlciI9PT1lfHwic3RyaW5nIj09PWUpJiYhaXNOYU4odC1wYXJzZUZsb2F0KHQpKX0sdm9pZCAwPT09KGk9ZnVuY3Rpb24oKXtyZXR1cm4gTX0uYXBwbHkoZSxbXSkpfHwodC5leHBvcnRzPWkpO3ZhciBZZT1uLmpRdWVyeSxYZT1uLiQ7cmV0dXJuIE0ubm9Db25mbGljdD1mdW5jdGlvbih0KXtyZXR1cm4gbi4kPT09TSYmKG4uJD1YZSksdCYmbi5qUXVlcnk9PT1NJiYobi5qUXVlcnk9WWUpLE19LHJ8fChuLmpRdWVyeT1uLiQ9TSksTX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDgpO2UudXVpZD1pLnV1aWQsZS5XcmFwcGVkRXJyb3I9aS5XcmFwcGVkRXJyb3IsZS5yZXNvbHZlUHJvbWlzZXNEaWN0PWkucmVzb2x2ZVByb21pc2VzRGljdDt2YXIgcj1uKDgpO2UucmVqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW5ldyByLldyYXBwZWRFcnJvcih0LG4pO3JldHVybiBlJiZjb25zb2xlLmVycm9yKGkpLFByb21pc2UucmVqZWN0KGkpfX0sZS50eXBlc2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwIT09ZSYmKHQudGV4dENvbnRlbnQ9ZSksdm9pZCAwIT09d2luZG93Lk1hdGhKYXgmJk1hdGhKYXguSHViLlF1ZXVlKFsiVHlwZXNldCIsTWF0aEpheC5IdWIsdF0pfSxlLmVzY2FwZV9odG1sPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnRleHRDb250ZW50PXQsZS5pbm5lckhUTUx9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKTtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIDU1Mjk2PT0oNjQ1MTImdC5jaGFyQ29kZUF0KGUpKSYmKCEoZTwwfHxlKzE+PXQubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZ0LmNoYXJDb2RlQXQoZSsxKSkpfWZ1bmN0aW9uIHModCl7cmV0dXJuKHQ+Pj4yNHx0Pj4+OCY2NTI4MHx0PDw4JjE2NzExNjgwfCgyNTUmdCk8PDI0KT4+PjB9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoPyIwIit0OnR9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gNz09PXQubGVuZ3RoPyIwIit0OjY9PT10Lmxlbmd0aD8iMDAiK3Q6NT09PXQubGVuZ3RoPyIwMDAiK3Q6ND09PXQubGVuZ3RoPyIwMDAwIit0OjM9PT10Lmxlbmd0aD8iMDAwMDAiK3Q6Mj09PXQubGVuZ3RoPyIwMDAwMDAiK3Q6MT09PXQubGVuZ3RoPyIwMDAwMDAwIit0OnR9ZS5pbmhlcml0cz1yLGUudG9BcnJheT1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQuc2xpY2UoKTtpZighdClyZXR1cm5bXTt2YXIgbj1bXTtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYoZSl7aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLHI9MDtyPHQubGVuZ3RoO3IrPTIpbi5wdXNoKHBhcnNlSW50KHRbcl0rdFtyKzFdLDE2KSl9ZWxzZSBmb3IodmFyIGk9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBzPXQuY2hhckNvZGVBdChyKTtzPDEyOD9uW2krK109czpzPDIwNDg/KG5baSsrXT1zPj42fDE5MixuW2krK109NjMmc3wxMjgpOm8odCxyKT8ocz02NTUzNisoKDEwMjMmcyk8PDEwKSsoMTAyMyZ0LmNoYXJDb2RlQXQoKytyKSksbltpKytdPXM+PjE4fDI0MCxuW2krK109cz4+MTImNjN8MTI4LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpOihuW2krK109cz4+MTJ8MjI0LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpfWVsc2UgZm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluW3JdPTB8dFtyXTtyZXR1cm4gbn0sZS50b0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dC5sZW5ndGg7bisrKWUrPWEodFtuXS50b1N0cmluZygxNikpO3JldHVybiBlfSxlLmh0b25sPXMsZS50b0hleDMyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dFtpXTsibGl0dGxlIj09PWUmJihyPXMocikpLG4rPXUoci50b1N0cmluZygxNikpfXJldHVybiBufSxlLnplcm8yPWEsZS56ZXJvOD11LGUuam9pbjMyPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPW4tZTtpKG8lND09MCk7Zm9yKHZhciBzPW5ldyBBcnJheShvLzQpLGE9MCx1PWU7YTxzLmxlbmd0aDthKyssdSs9NCl7dmFyIGM7Yz0iYmlnIj09PXI/dFt1XTw8MjR8dFt1KzFdPDwxNnx0W3UrMl08PDh8dFt1KzNdOnRbdSszXTw8MjR8dFt1KzJdPDwxNnx0W3UrMV08PDh8dFt1XSxzW2FdPWM+Pj4wfXJldHVybiBzfSxlLnNwbGl0MzI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49bmV3IEFycmF5KDQqdC5sZW5ndGgpLGk9MCxyPTA7aTx0Lmxlbmd0aDtpKysscis9NCl7dmFyIG89dFtpXTsiYmlnIj09PWU/KG5bcl09bz4+PjI0LG5bcisxXT1vPj4+MTYmMjU1LG5bcisyXT1vPj4+OCYyNTUsbltyKzNdPTI1NSZvKToobltyKzNdPW8+Pj4yNCxuW3IrMl09bz4+PjE2JjI1NSxuW3IrMV09bz4+PjgmMjU1LG5bcl09MjU1Jm8pfXJldHVybiBufSxlLnJvdHIzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfSxlLnJvdGwzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfSxlLnN1bTMyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZT4+PjB9LGUuc3VtMzJfMz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrZStuPj4+MH0sZS5zdW0zMl80PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0K2UrbitpPj4+MH0sZS5zdW0zMl81PWZ1bmN0aW9uKHQsZSxuLGkscil7cmV0dXJuIHQrZStuK2krcj4+PjB9LGUuc3VtNjQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dFtlXSxvPWkrdFtlKzFdPj4+MCxzPShvPGk/MTowKStuK3I7dFtlXT1zPj4+MCx0W2UrMV09b30sZS5zdW02NF9oaT1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4oZStpPj4+MDxlPzE6MCkrdCtuPj4+MH0sZS5zdW02NF9sbz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZStpPj4+MH0sZS5zdW02NF80X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSl7dmFyIHU9MCxjPWU7cmV0dXJuIHUrPShjPWMraT4+PjApPGU/MTowLHUrPShjPWMrbz4+PjApPG8/MTowLHQrbityK3MrKHUrPShjPWMrYT4+PjApPGE/MTowKT4+PjB9LGUuc3VtNjRfNF9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEpe3JldHVybiBlK2krbythPj4+MH0sZS5zdW02NF81X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSx1LGMpe3ZhciBoPTAsbD1lO3JldHVybiBoKz0obD1sK2k+Pj4wKTxlPzE6MCxoKz0obD1sK28+Pj4wKTxvPzE6MCxoKz0obD1sK2E+Pj4wKTxhPzE6MCx0K24rcitzK3UrKGgrPShsPWwrYz4+PjApPGM/MTowKT4+PjB9LGUuc3VtNjRfNV9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEsdSxjKXtyZXR1cm4gZStpK28rYStjPj4+MH0sZS5yb3RyNjRfaGk9ZnVuY3Rpb24odCxlLG4pe3JldHVybihlPDwzMi1ufHQ+Pj5uKT4+PjB9LGUucm90cjY0X2xvPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4odDw8MzItbnxlPj4+bik+Pj4wfSxlLnNocjY0X2hpPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD4+Pm59LGUuc2hyNjRfbG89ZnVuY3Rpb24odCxlLG4pe3JldHVybih0PDwzMi1ufGU+Pj5uKT4+PjB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuaXRlcj90Lml0ZXIoKTpuZXcgcih0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pdGVyPWksZS5lYWNoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9MCxvPWkodCk7dm9pZCAwIT09KG49by5uZXh0KCkpOylpZighMT09PWUobixyKyspKXJldHVybn0sZS5ldmVyeT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyPTAsbz1pKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoIWUobixyKyspKXJldHVybiExO3JldHVybiEwfSxlLnNvbWU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aSh0KTt2b2lkIDAhPT0obj1vLm5leHQoKSk7KWlmKGUobixyKyspKXJldHVybiEwO3JldHVybiExfSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MCxyPVtdLG89aSh0KTt2b2lkIDAhPT0oZT1vLm5leHQoKSk7KXJbbisrXT1lO3JldHVybiByfTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBlPW5ldyB0KHRoaXMuX3NvdXJjZSk7cmV0dXJuIGUuX2luZGV4PXRoaXMuX2luZGV4LGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2luZGV4Pj10aGlzLl9zb3VyY2UubGVuZ3RoKSlyZXR1cm4gdGhpcy5fc291cmNlW3RoaXMuX2luZGV4KytdfSx0fSgpO2UuQXJyYXlJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMjApLHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixvPWl8fHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7dC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyPXQuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gYSh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2k9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXtpPXN9fSgpO3ZhciB1LGM9W10saD0hMSxsPS0xO2Z1bmN0aW9uIGQoKXtoJiZ1JiYoaD0hMSx1Lmxlbmd0aD9jPXUuY29uY2F0KGMpOmw9LTEsYy5sZW5ndGgmJmYoKSl9ZnVuY3Rpb24gZigpe2lmKCFoKXt2YXIgdD1hKGQpO2g9ITA7Zm9yKHZhciBlPWMubGVuZ3RoO2U7KXtmb3IodT1jLGM9W107KytsPGU7KXUmJnVbbF0ucnVuKCk7bD0tMSxlPWMubGVuZ3RofXU9bnVsbCxoPSExLGZ1bmN0aW9uKHQpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoaT09PXN8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2kodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gaS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIHAodCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBtKCl7fXIubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtjLnB1c2gobmV3IHAodCxlKSksMSE9PWMubGVuZ3RofHxofHxhKGYpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxyLnRpdGxlPSJicm93c2VyIixyLmJyb3dzZXI9ITAsci5lbnY9e30sci5hcmd2PVtdLHIudmVyc2lvbj0iIixyLnZlcnNpb25zPXt9LHIub249bSxyLmFkZExpc3RlbmVyPW0sci5vbmNlPW0sci5vZmY9bSxyLnJlbW92ZUxpc3RlbmVyPW0sci5yZW1vdmVBbGxMaXN0ZW5lcnM9bSxyLmVtaXQ9bSxyLnByZXBlbmRMaXN0ZW5lcj1tLHIucHJlcGVuZE9uY2VMaXN0ZW5lcj1tLHIubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxyLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxyLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sci5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxyLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm0sbz1uKDYzKS5TdHJpbmdEZWNvZGVyO2Z1bmN0aW9uIHModCl7ci5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiB0LHRoaXMuaGFzaE1vZGU/dGhpc1t0XT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1uKDApKHMscikscy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIHQmJih0PWkuZnJvbSh0LGUpKTt2YXIgcj10aGlzLl91cGRhdGUodCk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczoobiYmKHI9dGhpcy5fdG9TdHJpbmcocixuKSkscil9LHMucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKCl7fSxzLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LHMucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0scy5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxzLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaTt0cnl7dGhpcy5oYXNoTW9kZT90aGlzLl91cGRhdGUodCk6dGhpcy5wdXNoKHRoaXMuX3VwZGF0ZSh0KSl9Y2F0Y2godCl7aT10fWZpbmFsbHl7bihpKX19LHMucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbih0KXt2YXIgZTt0cnl7dGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKX1jYXRjaCh0KXtlPXR9dChlKX0scy5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2ZpbmFsKCl8fGkuYWxsb2MoMCk7cmV0dXJuIHQmJihlPXRoaXMuX3RvU3RyaW5nKGUsdCwhMCkpLGV9LHMucHJvdG90eXBlLl90b1N0cmluZz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5fZGVjb2Rlcnx8KHRoaXMuX2RlY29kZXI9bmV3IG8oZSksdGhpcy5fZW5jb2Rpbmc9ZSksdGhpcy5fZW5jb2RpbmchPT1lKXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc3dpdGNoIGVuY29kaW5ncyIpO3ZhciBpPXRoaXMuX2RlY29kZXIud3JpdGUodCk7cmV0dXJuIG4mJihpKz10aGlzLl9kZWNvZGVyLmVuZCgpKSxpfSx0LmV4cG9ydHM9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oOSksbz1uKDUpLHM9bigzMCksYT1uKDExKSx1PW4oNyksYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2Rpc3Bvc2VkPSExLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuX2ZpdFBvbGljeT10LmZpdFBvbGljeXx8InNldC1taW4tc2l6ZSJ9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9kaXNwb3NlZD0hMCxhLlNpZ25hbC5jbGVhckRhdGEodGhpcykscy5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3BhcmVudCE9PXQpe2lmKHRoaXMuX3BhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjaGFuZ2UgcGFyZW50IHdpZGdldC4iKTtpZih0LmxheW91dCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHBhcmVudCB3aWRnZXQuIik7dGhpcy5fcGFyZW50PXQsdGhpcy5pbml0KCl9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZml0UG9saWN5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpdFBvbGljeX0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpdFBvbGljeSE9PXQmJih0aGlzLl9maXRQb2xpY3k9dCx0aGlzLl9wYXJlbnQpKXt2YXIgZT10aGlzLl9wYXJlbnQubm9kZS5zdHlsZTtlLm1pbldpZHRoPSIiLGUubWluSGVpZ2h0PSIiLGUubWF4V2lkdGg9IiIsZS5tYXhIZWlnaHQ9IiIsdGhpcy5fcGFyZW50LmZpdCgpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5wcm9jZXNzUGFyZW50TWVzc2FnZT1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5vblJlc2l6ZSh0KTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm9uVXBkYXRlUmVxdWVzdCh0KTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm9uRml0UmVxdWVzdCh0KTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm9uQmVmb3JlU2hvdyh0KTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMub25BZnRlclNob3codCk7YnJlYWs7Y2FzZSJiZWZvcmUtaGlkZSI6dGhpcy5vbkJlZm9yZUhpZGUodCk7YnJlYWs7Y2FzZSJhZnRlci1oaWRlIjp0aGlzLm9uQWZ0ZXJIaWRlKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWF0dGFjaCI6dGhpcy5vbkJlZm9yZUF0dGFjaCh0KTticmVhaztjYXNlImFmdGVyLWF0dGFjaCI6dGhpcy5vbkFmdGVyQXR0YWNoKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWRldGFjaCI6dGhpcy5vbkJlZm9yZURldGFjaCh0KTticmVhaztjYXNlImFmdGVyLWRldGFjaCI6dGhpcy5vbkFmdGVyRGV0YWNoKHQpO2JyZWFrO2Nhc2UiY2hpbGQtcmVtb3ZlZCI6dGhpcy5vbkNoaWxkUmVtb3ZlZCh0KTticmVhaztjYXNlImNoaWxkLXNob3duIjp0aGlzLm9uQ2hpbGRTaG93bih0KTticmVhaztjYXNlImNoaWxkLWhpZGRlbiI6dGhpcy5vbkNoaWxkSGlkZGVuKHQpfX0sdC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5wYXJlbnQ9dC5wYXJlbnR9KX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24odCl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9LHQucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpLmVhY2godGhpcyxmdW5jdGlvbih0KXtvLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KX0sdC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQmVmb3JlRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkFmdGVyRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZUhpZGU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJIaWRlPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldCh0LmNoaWxkKX0sdC5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt9LHR9KCk7ZS5MYXlvdXQ9YyxmdW5jdGlvbih0KXt0LmdldEhvcml6b250YWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGguaG9yaXpvbnRhbEFsaWdubWVudFByb3BlcnR5LmdldCh0KX0sdC5zZXRIb3Jpem9udGFsQWxpZ25tZW50PWZ1bmN0aW9uKHQsZSl7aC5ob3Jpem9udGFsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGgudmVydGljYWxBbGlnbm1lbnRQcm9wZXJ0eS5nZXQodCl9LHQuc2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCxlKXtoLnZlcnRpY2FsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9fShjPWUuTGF5b3V0fHwoZS5MYXlvdXQ9e30pKSxlLkxheW91dD1jO3ZhciBoLGw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3RvcD1OYU4sdGhpcy5fbGVmdD1OYU4sdGhpcy5fd2lkdGg9TmFOLHRoaXMuX2hlaWdodD1OYU4sdGhpcy5fbWluV2lkdGg9MCx0aGlzLl9taW5IZWlnaHQ9MCx0aGlzLl9tYXhXaWR0aD0xLzAsdGhpcy5fbWF4SGVpZ2h0PTEvMCx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLndpZGdldD10LHRoaXMud2lkZ2V0Lm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaXNwb3NlZCl7dGhpcy5fZGlzcG9zZWQ9ITA7dmFyIHQ9dGhpcy53aWRnZXQubm9kZS5zdHlsZTt0LnBvc2l0aW9uPSIiLHQudG9wPSIiLHQubGVmdD0iIix0LndpZHRoPSIiLHQuaGVpZ2h0PSIifX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtaW5XaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5XaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1pbkhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5IZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtYXhXaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhXaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1heEhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhIZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNIaWRkZW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNIaWRkZW59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNWaXNpYmxlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndpZGdldC5pc0F0dGFjaGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZpdD1mdW5jdGlvbigpe3ZhciB0PXIuRWxlbWVudEV4dC5zaXplTGltaXRzKHRoaXMud2lkZ2V0Lm5vZGUpO3RoaXMuX21pbldpZHRoPXQubWluV2lkdGgsdGhpcy5fbWluSGVpZ2h0PXQubWluSGVpZ2h0LHRoaXMuX21heFdpZHRoPXQubWF4V2lkdGgsdGhpcy5fbWF4SGVpZ2h0PXQubWF4SGVpZ2h0fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9TWF0aC5tYXgodGhpcy5fbWluV2lkdGgsTWF0aC5taW4obix0aGlzLl9tYXhXaWR0aCkpLHM9TWF0aC5tYXgodGhpcy5fbWluSGVpZ2h0LE1hdGgubWluKGksdGhpcy5fbWF4SGVpZ2h0KSk7aWYocjxuKXN3aXRjaChjLmdldEhvcml6b250YWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlImxlZnQiOmJyZWFrO2Nhc2UiY2VudGVyIjp0Kz0obi1yKS8yO2JyZWFrO2Nhc2UicmlnaHQiOnQrPW4tcjticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1pZihzPGkpc3dpdGNoKGMuZ2V0VmVydGljYWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlInRvcCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmUrPShpLXMpLzI7YnJlYWs7Y2FzZSJib3R0b20iOmUrPWktczticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgYT0hMSxoPXRoaXMud2lkZ2V0Lm5vZGUuc3R5bGU7aWYodGhpcy5fdG9wIT09ZSYmKHRoaXMuX3RvcD1lLGgudG9wPWUrInB4IiksdGhpcy5fbGVmdCE9PXQmJih0aGlzLl9sZWZ0PXQsaC5sZWZ0PXQrInB4IiksdGhpcy5fd2lkdGghPT1yJiYoYT0hMCx0aGlzLl93aWR0aD1yLGgud2lkdGg9cisicHgiKSx0aGlzLl9oZWlnaHQhPT1zJiYoYT0hMCx0aGlzLl9oZWlnaHQ9cyxoLmhlaWdodD1zKyJweCIpLGEpe3ZhciBsPW5ldyB1LldpZGdldC5SZXNpemVNZXNzYWdlKHIscyk7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLndpZGdldCxsKX19LHR9KCk7ZS5MYXlvdXRJdGVtPWwsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0LnBhcmVudCYmdC5wYXJlbnQubGF5b3V0JiZ0LnBhcmVudC51cGRhdGUoKX10Lmhvcml6b250YWxBbGlnbm1lbnRQcm9wZXJ0eT1uZXcgcy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJob3Jpem9udGFsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4iY2VudGVyIn0sY2hhbmdlZDplfSksdC52ZXJ0aWNhbEFsaWdubWVudFByb3BlcnR5PW5ldyBzLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6InZlcnRpY2FsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4idG9wIn0sY2hhbmdlZDplfSl9KGh8fChoPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpLGE9bigxNiksdT1uKDU3KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25TdHlsZU1vZGVsIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246dS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZS5zdHlsZVByb3BlcnRpZXM9e2Rlc2NyaXB0aW9uX3dpZHRoOntzZWxlY3RvcjoiLndpZGdldC1sYWJlbCIsYXR0cmlidXRlOiJ3aWR0aCIsZGVmYXVsdDpudWxsfX0sZX0ocy5TdHlsZU1vZGVsKTtlLkRlc2NyaXB0aW9uU3R5bGVNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbmFtZToiRGVzY3JpcHRpb25WaWV3Iixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOnUuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjp1LkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixkZXNjcmlwdGlvbjoiIixkZXNjcmlwdGlvbl90b29sdGlwOm51bGx9KX0sZX0ocy5ET01XaWRnZXRNb2RlbCk7ZS5EZXNjcmlwdGlvbk1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxhYmVsKSx0aGlzLmxhYmVsLmNsYXNzTmFtZT0id2lkZ2V0LWxhYmVsIix0aGlzLmxhYmVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmRlc2NyaXB0aW9uIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpkZXNjcmlwdGlvbl90b29sdGlwIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCl9LGUucHJvdG90eXBlLnR5cGVzZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEudHlwZXNldCh0LGUpfSl9LGUucHJvdG90eXBlLnVwZGF0ZURlc2NyaXB0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb25fdG9vbHRpcCIpO251bGw9PT1lJiYoZT10KSwwPT09dC5sZW5ndGg/dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSJub25lIjoodGhpcy5sYWJlbC5pbm5lckhUTUw9dCx0aGlzLnR5cGVzZXQodGhpcy5sYWJlbCksdGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmxhYmVsLnRpdGxlPWV9LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5EZXNjcmlwdGlvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGV9KGgpO2UuTGFiZWxlZERPTVdpZGdldE1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkxhYmVsZWRET01XaWRnZXRWaWV3PWZ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0Mykscj1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKG4pO3JldHVybiBlfTt0LmV4cG9ydHM9bDt2YXIgbz1uKDMyKTtvLmluaGVyaXRzPW4oMCk7dmFyIHM9big4NSksYT1uKDYyKTtvLmluaGVyaXRzKGwscyk7Zm9yKHZhciB1PXIoYS5wcm90b3R5cGUpLGM9MDtjPHUubGVuZ3RoO2MrKyl7dmFyIGg9dVtjXTtsLnByb3RvdHlwZVtoXXx8KGwucHJvdG90eXBlW2hdPWEucHJvdG90eXBlW2hdKX1mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbCh0KTtzLmNhbGwodGhpcyx0KSxhLmNhbGwodGhpcyx0KSx0JiYhMT09PXQucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSx0JiYhMT09PXQud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsdCYmITE9PT10LmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEpLHRoaXMub25jZSgiZW5kIixkKX1mdW5jdGlvbiBkKCl7dGhpcy5hbGxvd0hhbGZPcGVufHx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxpLm5leHRUaWNrKGYsdGhpcyl9ZnVuY3Rpb24gZih0KXt0LmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQpfSxzZXQ6ZnVuY3Rpb24odCl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXQsdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSksbC5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odCxlKXt0aGlzLnB1c2gobnVsbCksdGhpcy5lbmQoKSxpLm5leHRUaWNrKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4MSksYT1uKDI2KSx1PW4oMjMxKSxjPW4oMjk4KTtlLmRpZmZlcmVuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1lLmluZGV4T2YodCl9KX0sZS5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUodCxlKX0sZS5hc3NpZ249T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgaSBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpJiYodFtpXT1uW2ldKX1yZXR1cm4gdH0sZS51dWlkPWZ1bmN0aW9uKCl7cmV0dXJuIGEuVVVJRC51dWlkNCgpfTt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4saSl7dmFyIHI9dC5jYWxsKHRoaXMsbil8fHRoaXM7cmV0dXJuIGNvbnNvbGUud2FybigiV3JhcHBlZEVycm9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQhIiksci5lcnJvcl9zdGFjaz1pIGluc3RhbmNlb2YgZT9pLmVycm9yX3N0YWNrOltpXSxyLmVycm9yX3N0YWNrLnB1c2gocikscn1yZXR1cm4gcihlLHQpLGV9KEVycm9yKTtlLldyYXBwZWRFcnJvcj1oLGUucmVzb2x2ZVByb21pc2VzRGljdD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyh0KSxuPVtdO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7bi5wdXNoKHRbZV0pfSksUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbihuKXt0PXt9O2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXRbZVtpXV09bltpXTtyZXR1cm4gdH0pfSxlLnJlamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aHJvdyBlJiZjb25zb2xlLmVycm9yKG5ldyBFcnJvcih0KSksbn19LGUucHV0X2J1ZmZlcnM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXtmb3IodmFyIHI9ZVtpXSxvPXQscz0wO3M8ci5sZW5ndGgtMTtzKyspbz1vW3Jbc11dO29bcltyLmxlbmd0aC0xXV09bltpXX19LGUucmVtb3ZlX2J1ZmZlcnM9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1bXTtyZXR1cm57c3RhdGU6ZnVuY3Rpb24gdChpLHIpe2lmKGkudG9KU09OJiYoaT1pLnRvSlNPTigpKSxBcnJheS5pc0FycmF5KGkpKWZvcih2YXIgcz0hMSxhPTA7YTxpLmxlbmd0aDthKyspKGg9aVthXSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9aS5zbGljZSgpLHM9ITApLGUucHVzaChBcnJheUJ1ZmZlci5pc1ZpZXcoaCk/aC5idWZmZXI6aCksbi5wdXNoKHIuY29uY2F0KFthXSkpLGlbYV09bnVsbCk6KGw9dChoLHIuY29uY2F0KFthXSkpKSE9PWgmJihzfHwoaT1pLnNsaWNlKCkscz0hMCksaVthXT1sKSk7ZWxzZSBpZihjKGkpKWZvcih2YXIgdSBpbiBpKXt2YXIgaCxsO3M9ITEsaS5oYXNPd25Qcm9wZXJ0eSh1KSYmKGg9aVt1XSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9byh7fSxpKSxzPSEwKSxlLnB1c2goQXJyYXlCdWZmZXIuaXNWaWV3KGgpP2guYnVmZmVyOmgpLG4ucHVzaChyLmNvbmNhdChbdV0pKSxkZWxldGUgaVt1XSk6KGw9dChoLHIuY29uY2F0KFt1XSkpKSE9PWgmJihzfHwoaT1vKHt9LGkpLHM9ITApLGlbdV09bCkpfXJldHVybiBpfSh0LFtdKSxidWZmZXJzOmUsYnVmZmVyX3BhdGhzOm59fTt2YXIgbD1bIjAwIiwiMDEiLCIwMiIsIjAzIiwiMDQiLCIwNSIsIjA2IiwiMDciLCIwOCIsIjA5IiwiMEEiLCIwQiIsIjBDIiwiMEQiLCIwRSIsIjBGIiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyIsIjE4IiwiMTkiLCIxQSIsIjFCIiwiMUMiLCIxRCIsIjFFIiwiMUYiLCIyMCIsIjIxIiwiMjIiLCIyMyIsIjI0IiwiMjUiLCIyNiIsIjI3IiwiMjgiLCIyOSIsIjJBIiwiMkIiLCIyQyIsIjJEIiwiMkUiLCIyRiIsIjMwIiwiMzEiLCIzMiIsIjMzIiwiMzQiLCIzNSIsIjM2IiwiMzciLCIzOCIsIjM5IiwiM0EiLCIzQiIsIjNDIiwiM0QiLCIzRSIsIjNGIiwiNDAiLCI0MSIsIjQyIiwiNDMiLCI0NCIsIjQ1IiwiNDYiLCI0NyIsIjQ4IiwiNDkiLCI0QSIsIjRCIiwiNEMiLCI0RCIsIjRFIiwiNEYiLCI1MCIsIjUxIiwiNTIiLCI1MyIsIjU0IiwiNTUiLCI1NiIsIjU3IiwiNTgiLCI1OSIsIjVBIiwiNUIiLCI1QyIsIjVEIiwiNUUiLCI1RiIsIjYwIiwiNjEiLCI2MiIsIjYzIiwiNjQiLCI2NSIsIjY2IiwiNjciLCI2OCIsIjY5IiwiNkEiLCI2QiIsIjZDIiwiNkQiLCI2RSIsIjZGIiwiNzAiLCI3MSIsIjcyIiwiNzMiLCI3NCIsIjc1IiwiNzYiLCI3NyIsIjc4IiwiNzkiLCI3QSIsIjdCIiwiN0MiLCI3RCIsIjdFIiwiN0YiLCI4MCIsIjgxIiwiODIiLCI4MyIsIjg0IiwiODUiLCI4NiIsIjg3IiwiODgiLCI4OSIsIjhBIiwiOEIiLCI4QyIsIjhEIiwiOEUiLCI4RiIsIjkwIiwiOTEiLCI5MiIsIjkzIiwiOTQiLCI5NSIsIjk2IiwiOTciLCI5OCIsIjk5IiwiOUEiLCI5QiIsIjlDIiwiOUQiLCI5RSIsIjlGIiwiQTAiLCJBMSIsIkEyIiwiQTMiLCJBNCIsIkE1IiwiQTYiLCJBNyIsIkE4IiwiQTkiLCJBQSIsIkFCIiwiQUMiLCJBRCIsIkFFIiwiQUYiLCJCMCIsIkIxIiwiQjIiLCJCMyIsIkI0IiwiQjUiLCJCNiIsIkI3IiwiQjgiLCJCOSIsIkJBIiwiQkIiLCJCQyIsIkJEIiwiQkUiLCJCRiIsIkMwIiwiQzEiLCJDMiIsIkMzIiwiQzQiLCJDNSIsIkM2IiwiQzciLCJDOCIsIkM5IiwiQ0EiLCJDQiIsIkNDIiwiQ0QiLCJDRSIsIkNGIiwiRDAiLCJEMSIsIkQyIiwiRDMiLCJENCIsIkQ1IiwiRDYiLCJENyIsIkQ4IiwiRDkiLCJEQSIsIkRCIiwiREMiLCJERCIsIkRFIiwiREYiLCJFMCIsIkUxIiwiRTIiLCJFMyIsIkU0IiwiRTUiLCJFNiIsIkU3IiwiRTgiLCJFOSIsIkVBIiwiRUIiLCJFQyIsIkVEIiwiRUUiLCJFRiIsIkYwIiwiRjEiLCJGMiIsIkYzIiwiRjQiLCJGNSIsIkY2IiwiRjciLCJGOCIsIkY5IiwiRkEiLCJGQiIsIkZDIiwiRkQiLCJGRSIsIkZGIl07ZS5idWZmZXJUb0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCksbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspbi5wdXNoKGxbZVtpXV0pO3JldHVybiBuLmpvaW4oIiIpfSxlLmhleFRvQnVmZmVyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aC8yKSxuPTA7bjx0Lmxlbmd0aDtuKz0yKWVbbi8yXT1wYXJzZUludCh0LnNsaWNlKG4sbisyKSwxNik7cmV0dXJuIGUuYnVmZmVyfSxlLmJ1ZmZlclRvQmFzZTY0PWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb21CeXRlQXJyYXkobmV3IFVpbnQ4QXJyYXkodCkpfSxlLmJhc2U2NFRvQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBzLnRvQnl0ZUFycmF5KHQpLmJ1ZmZlcn19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE0MikpLGkobigxNDMpKSxpKG4oMTQ0KSksaShuKDgyKSksaShuKDIyOSkpLGkobigyMzApKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpKXt2YXIgcj1uKDEpLkJ1ZmZlcixvPWUuY3J5cHRvfHxlLm1zQ3J5cHRvO28mJm8uZ2V0UmFuZG9tVmFsdWVzP3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe2lmKHQ+NjU1MzYpdGhyb3cgbmV3IEVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIHM9bmV3IGUuVWludDhBcnJheSh0KTt0PjAmJm8uZ2V0UmFuZG9tVmFsdWVzKHMpO3ZhciBhPXIuZnJvbShzLmJ1ZmZlcik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXtuKG51bGwsYSl9KTtyZXR1cm4gYX06dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSl7dGhpcy5fYmxvY2s9aS5hbGxvYyh0KSx0aGlzLl9maW5hbFNpemU9ZSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9sZW49MH1yLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09dHlwZW9mIHQmJihlPWV8fCJ1dGY4Iix0PWkuZnJvbSh0LGUpKTtmb3IodmFyIG49dGhpcy5fYmxvY2sscj10aGlzLl9ibG9ja1NpemUsbz10Lmxlbmd0aCxzPXRoaXMuX2xlbixhPTA7YTxvOyl7Zm9yKHZhciB1PXMlcixjPU1hdGgubWluKG8tYSxyLXUpLGg9MDtoPGM7aCsrKW5bdStoXT10W2EraF07YSs9Yywocys9Yyklcj09MCYmdGhpcy5fdXBkYXRlKG4pfXJldHVybiB0aGlzLl9sZW4rPW8sdGhpc30sci5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxlKzEpLGU+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIG49OCp0aGlzLl9sZW47aWYobjw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKG4sdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIGk9KDQyOTQ5NjcyOTUmbik+Pj4wLHI9KG4taSkvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHIsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoaSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgbz10aGlzLl9oYXNoKCk7cmV0dXJuIHQ/by50b1N0cmluZyh0KTpvfSxyLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI0NSkscj1uKDI1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0LGUpO3JldHVybiBpKG4pP246dm9pZCAwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fcGlkPWkubmV4dFBJRCgpLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5fY3JlYXRlPXQuY3JlYXRlLHRoaXMuX2NvZXJjZT10LmNvZXJjZXx8bnVsbCx0aGlzLl9jb21wYXJlPXQuY29tcGFyZXx8bnVsbCx0aGlzLl9jaGFuZ2VkPXQuY2hhbmdlZHx8bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPWkuZW5zdXJlTWFwKHQpO3JldHVybiB0aGlzLl9waWQgaW4gZT9lW3RoaXMuX3BpZF06ZVt0aGlzLl9waWRdPXRoaXMuX2NyZWF0ZVZhbHVlKHQpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWkuZW5zdXJlTWFwKHQpO249dGhpcy5fcGlkIGluIHI/clt0aGlzLl9waWRdOnJbdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgbz10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsbixyW3RoaXMuX3BpZF09byl9LHQucHJvdG90eXBlLmNvZXJjZT1mdW5jdGlvbih0KXt2YXIgZSxuPWkuZW5zdXJlTWFwKHQpO2U9dGhpcy5fcGlkIGluIG4/blt0aGlzLl9waWRdOm5bdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgcj10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsZSxuW3RoaXMuX3BpZF09cil9LHQucHJvdG90eXBlLl9jcmVhdGVWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLl9jcmVhdGUpKHQpfSx0LnByb3RvdHlwZS5fY29lcmNlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb2VyY2U7cmV0dXJuIG4/bih0LGUpOmV9LHQucHJvdG90eXBlLl9jb21wYXJlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb21wYXJlO3JldHVybiBuP24odCxlKTp0PT09ZX0sdC5wcm90b3R5cGUuX21heWJlTm90aWZ5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9jaGFuZ2VkO2kmJiF0aGlzLl9jb21wYXJlVmFsdWUoZSxuKSYmaSh0LGUsbil9LHR9KCk7ZS5BdHRhY2hlZFByb3BlcnR5PXIsZnVuY3Rpb24odCl7dC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5vd25lckRhdGEuZGVsZXRlKHQpfX0ocj1lLkF0dGFjaGVkUHJvcGVydHl8fChlLkF0dGFjaGVkUHJvcGVydHk9e30pKSxlLkF0dGFjaGVkUHJvcGVydHk9cixmdW5jdGlvbih0KXt2YXIgZTt0Lm93bmVyRGF0YT1uZXcgV2Vha01hcCx0Lm5leHRQSUQ9KGU9MCxmdW5jdGlvbigpe3JldHVybiJwaWQtIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMikrIi0iK2UrK30pLHQuZW5zdXJlTWFwPWZ1bmN0aW9uKGUpe3ZhciBuPXQub3duZXJEYXRhLmdldChlKTtyZXR1cm4gbnx8KG49T2JqZWN0LmNyZWF0ZShudWxsKSx0Lm93bmVyRGF0YS5zZXQoZSxuKSxuKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oNTgpLG89big2NCkscz1uKDY1KSxhPW4oMjEpO2Z1bmN0aW9uIHUodCl7YS5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9dH1pKHUsYSksdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sdS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibWQ1Ij09PSh0PXQudG9Mb3dlckNhc2UoKSk/bmV3IHI6InJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/bmV3IG86bmV3IHUocyh0KSl9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1lLmlzQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheSh0KToiW29iamVjdCBBcnJheV0iPT09bih0KX0sZS5pc0Jvb2xlYW49ZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH0sZS5pc051bGw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fSxlLmlzTnVsbE9yVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fSxlLmlzTnVtYmVyPWZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdH0sZS5pc1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9LGUuaXNTeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fSxlLmlzVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10fSxlLmlzUmVnRXhwPWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09bih0KX0sZS5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fSxlLmlzRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1uKHQpfSxlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09PW4odCl8fHQgaW5zdGFuY2VvZiBFcnJvcn0sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxlLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8dm9pZCAwPT09dH0sZS5pc0J1ZmZlcj10LmlzQnVmZmVyfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLHI9bmV3IGUoaSksbz0wO288aTsrK28pcltvXT10W29dXm5bb107cmV0dXJuIHJ9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8oKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfWUuQmxvY2tIYXNoPW8sby5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYodD1pLnRvQXJyYXkodCxlKSx0aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nPXRoaXMucGVuZGluZy5jb25jYXQodCk6dGhpcy5wZW5kaW5nPXQsdGhpcy5wZW5kaW5nVG90YWwrPXQubGVuZ3RoLHRoaXMucGVuZGluZy5sZW5ndGg+PXRoaXMuX2RlbHRhOCl7dmFyIG49KHQ9dGhpcy5wZW5kaW5nKS5sZW5ndGgldGhpcy5fZGVsdGE4O3RoaXMucGVuZGluZz10LnNsaWNlKHQubGVuZ3RoLW4sdC5sZW5ndGgpLDA9PT10aGlzLnBlbmRpbmcubGVuZ3RoJiYodGhpcy5wZW5kaW5nPW51bGwpLHQ9aS5qb2luMzIodCwwLHQubGVuZ3RoLW4sdGhpcy5lbmRpYW4pO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cis9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUodCxyLHIrdGhpcy5fZGVsdGEzMil9cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGUodGhpcy5fcGFkKCkpLHIobnVsbD09PXRoaXMucGVuZGluZyksdGhpcy5fZGlnZXN0KHQpfSxvLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wZW5kaW5nVG90YWwsZT10aGlzLl9kZWx0YTgsbj1lLSh0K3RoaXMucGFkTGVuZ3RoKSVlLGk9bmV3IEFycmF5KG4rdGhpcy5wYWRMZW5ndGgpO2lbMF09MTI4O2Zvcih2YXIgcj0xO3I8bjtyKyspaVtyXT0wO2lmKHQ8PD0zLCJiaWciPT09dGhpcy5lbmRpYW4pe2Zvcih2YXIgbz04O288dGhpcy5wYWRMZW5ndGg7bysrKWlbcisrXT0wO2lbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+OCYyNTUsaVtyKytdPTI1NSZ0fWVsc2UgZm9yKGlbcisrXT0yNTUmdCxpW3IrK109dD4+PjgmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLG89ODtvPHRoaXMucGFkTGVuZ3RoO28rKylpW3IrK109MDtyZXR1cm4gaX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuYmlnbnVtPW4oMyksaS5kZWZpbmU9bigyMTApLmRlZmluZSxpLmJhc2U9bigzNiksaS5jb25zdGFudHM9bigxMTEpLGkuZGVjb2RlcnM9bigyMTYpLGkuZW5jb2RlcnM9bigyMTgpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLlJlcG9ydGVyPW4oMjEzKS5SZXBvcnRlcixpLkRlY29kZXJCdWZmZXI9bigxMTApLkRlY29kZXJCdWZmZXIsaS5FbmNvZGVyQnVmZmVyPW4oMTEwKS5FbmNvZGVyQnVmZmVyLGkuTm9kZT1uKDIxNCl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPW4oMjQ2KSxvPW4oMjQ3KSxzPSJbb2JqZWN0IE51bGxdIixhPSJbb2JqZWN0IFVuZGVmaW5lZF0iLHU9aT9pLnRvU3RyaW5nVGFnOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9hOnM6dSYmdSBpbiBPYmplY3QodCk/cih0KTpvKHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDQwKSksaShuKDc2KSksaShuKDMyMikpLGkobigzMjMpKSxpKG4oMzI0KSksaShuKDEzMikpLGkobigzMjUpKSxpKG4oMzI2KSksaShuKDMyNykpLGkobigyMikpLGkobigxMzEpKSxpKG4oMzI4KSksaShuKDU0KSksaShuKDQxKSksaShuKDMyOSkpLGkobigzMzApKSxpKG4oMTMzKSksaShuKDMzMSkpLGkobigxMzQpKSxpKG4oMTM1KSksaShuKDgwKSksaShuKDMzMikpLGkobig3NykpLGkobig3KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zaXplSGludD0wLHRoaXMubWluU2l6ZT0wLHRoaXMubWF4U2l6ZT0xLzAsdGhpcy5zdHJldGNoPTEsdGhpcy5zaXplPTAsdGhpcy5kb25lPSExfX0oKTtlLkJveFNpemVyPWksZnVuY3Rpb24odCl7dC5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5sZW5ndGg7aWYoMD09PW4pcmV0dXJuIGU7Zm9yKHZhciBpPTAscj0wLG89MCxzPTAsYT0wLHU9MDt1PG47Kyt1KXt2YXIgYz0odj10W3VdKS5taW5TaXplLGg9di5tYXhTaXplLGw9di5zaXplSGludDt2LmRvbmU9ITEsdi5zaXplPU1hdGgubWF4KGMsTWF0aC5taW4obCxoKSksbys9di5zaXplLGkrPWMscis9aCx2LnN0cmV0Y2g+MCYmKHMrPXYuc3RyZXRjaCxhKyspfWlmKGU9PT1vKXJldHVybiAwO2lmKGU8PWkpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWluU2l6ZTtyZXR1cm4gZS1pfWlmKGU+PXIpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWF4U2l6ZTtyZXR1cm4gZS1yfXZhciBkPW47aWYoZTxvKXtmb3IodmFyIGY9by1lO2E+MCYmZj4uMDE7KXt2YXIgcD1mLG09cztmb3IodT0wO3U8bjsrK3UpaWYoISh2PXRbdV0pLmRvbmUmJjAhPT12LnN0cmV0Y2gpe3ZhciBnPXYuc3RyZXRjaCpwL207di5zaXplLWc8PXYubWluU2l6ZT8oZi09di5zaXplLXYubWluU2l6ZSxzLT12LnN0cmV0Y2gsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tLGEtLSk6KGYtPWcsdi5zaXplLT1nKX19Zm9yKDtkPjAmJmY+LjAxOylmb3IoZz1mL2QsdT0wO3U8bjsrK3UpKHY9dFt1XSkuZG9uZXx8KHYuc2l6ZS1nPD12Lm1pblNpemU/KGYtPXYuc2l6ZS12Lm1pblNpemUsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tKTooZi09Zyx2LnNpemUtPWcpKX1lbHNle2ZvcihmPWUtbzthPjAmJmY+LjAxOylmb3IocD1mLG09cyx1PTA7dTxuOysrdSkodj10W3VdKS5kb25lfHwwPT09di5zdHJldGNofHwoZz12LnN0cmV0Y2gqcC9tLHYuc2l6ZStnPj12Lm1heFNpemU/KGYtPXYubWF4U2l6ZS12LnNpemUscy09di5zdHJldGNoLHYuc2l6ZT12Lm1heFNpemUsdi5kb25lPSEwLGQtLSxhLS0pOihmLT1nLHYuc2l6ZSs9ZykpO2Zvcig7ZD4wJiZmPi4wMTspZm9yKGc9Zi9kLHU9MDt1PG47Kyt1KXt2YXIgdjsodj10W3VdKS5kb25lfHwodi5zaXplK2c+PXYubWF4U2l6ZT8oZi09di5tYXhTaXplLXYuc2l6ZSx2LnNpemU9di5tYXhTaXplLHYuZG9uZT0hMCxkLS0pOihmLT1nLHYuc2l6ZSs9ZykpfX1yZXR1cm4gMH0sdC5hZGp1c3Q9ZnVuY3Rpb24odCxlLG4pezAhPT10Lmxlbmd0aCYmMCE9PW4mJihuPjA/ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9MDtyPD1lOysrcil7dmFyIG89dFtyXTtpKz1vLm1heFNpemUtby5zaXplfWZvcih2YXIgcz0wLHI9ZSsxLGE9dC5sZW5ndGg7cjxhOysrcil7dmFyIG89dFtyXTtzKz1vLnNpemUtby5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxzKSxyPWU7cj49MCYmdT4wOy0tcil7dmFyIG89dFtyXSxjPW8ubWF4U2l6ZS1vLnNpemU7Yz49dT8oby5zaXplSGludD1vLnNpemUrdSx1PTApOihvLnNpemVIaW50PW8uc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZSsxLGE9dC5sZW5ndGg7cjxhJiZoPjA7KytyKXt2YXIgbz10W3JdLGM9by5zaXplLW8ubWluU2l6ZTtjPj1oPyhvLnNpemVIaW50PW8uc2l6ZS1oLGg9MCk6KG8uc2l6ZUhpbnQ9by5zaXplLWMsaC09Yyl9fSh0LGUsbik6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9ZSsxLG89dC5sZW5ndGg7cjxvOysrcil7dmFyIHM9dFtyXTtpKz1zLm1heFNpemUtcy5zaXplfWZvcih2YXIgYT0wLHI9MDtyPD1lOysrcil7dmFyIHM9dFtyXTthKz1zLnNpemUtcy5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxhKSxyPWUrMSxvPXQubGVuZ3RoO3I8byYmdT4wOysrcil7dmFyIHM9dFtyXSxjPXMubWF4U2l6ZS1zLnNpemU7Yz49dT8ocy5zaXplSGludD1zLnNpemUrdSx1PTApOihzLnNpemVIaW50PXMuc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZTtyPj0wJiZoPjA7LS1yKXt2YXIgcz10W3JdLGM9cy5zaXplLXMubWluU2l6ZTtjPj1oPyhzLnNpemVIaW50PXMuc2l6ZS1oLGg9MCk6KHMuc2l6ZUhpbnQ9cy5zaXplLWMsaC09Yyl9fSh0LGUsLW4pKX19KGUuQm94RW5naW5lfHwoZS5Cb3hFbmdpbmU9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyKSxzPW4oNSksYT1uKDIyKSx1PW4oNyksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl93aWRnZXRzPVtdLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl93aWRnZXRzLmxlbmd0aD4wOyl0aGlzLl93aWRnZXRzLnBvcCgpLmRpc3Bvc2UoKTt0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gby5pdGVyKHRoaXMuX3dpZGdldHMpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy5fd2lkZ2V0cy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbih0LGUpe2UucGFyZW50PXRoaXMucGFyZW50O3ZhciBuPXRoaXMuX3dpZGdldHMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl93aWRnZXRzLmxlbmd0aCkpO2lmKC0xPT09bilyZXR1cm4gby5BcnJheUV4dC5pbnNlcnQodGhpcy5fd2lkZ2V0cyxpLGUpLHZvaWQodGhpcy5wYXJlbnQmJnRoaXMuYXR0YWNoV2lkZ2V0KGksZSkpO2k9PT10aGlzLl93aWRnZXRzLmxlbmd0aCYmaS0tLG4hPT1pJiYoby5BcnJheUV4dC5tb3ZlKHRoaXMuX3dpZGdldHMsbixpKSx0aGlzLnBhcmVudCYmdGhpcy5tb3ZlV2lkZ2V0KG4saSxlKSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldEF0KHRoaXMuX3dpZGdldHMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldEF0PWZ1bmN0aW9uKHQpe3ZhciBlPW8uQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fd2lkZ2V0cyx0KTtlJiZ0aGlzLnBhcmVudCYmdGhpcy5kZXRhY2hXaWRnZXQodCxlKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQsbil7ZS5hdHRhY2hXaWRnZXQobix0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnBhcmVudC5ub2RlLmNoaWxkcmVuW3RdO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmluc2VydEJlZm9yZShlLm5vZGUsbiksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHUuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKG4ubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShuLHUuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCk7dmFyIGk9dGhpcy5wYXJlbnQubm9kZS5jaGlsZHJlbltlXTt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKG4sdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5pbnNlcnRCZWZvcmUobi5ub2RlLGkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdS5XaWRnZXQuTXNnLkJlZm9yZURldGFjaCksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQWZ0ZXJEZXRhY2gpfSxlfShhLkxheW91dCk7ZS5QYW5lbExheW91dD1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvO3I9W24oMTUpXSx2b2lkIDA9PT0obz0iZnVuY3Rpb24iPT10eXBlb2YoaT1mdW5jdGlvbih0KXtyZXR1cm4gdC51aT10LnVpfHx7fSx0LnVpLnZlcnNpb249IjEuMTIuMSJ9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUpeyFlLnZlcnNpb258fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjAuIil8fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjEuIikmJjAhPT1lLnZlcnNpb24uaW5kZXhPZigidjEuOC4iKT90LmV4cG9ydHM9e25leHRUaWNrOmZ1bmN0aW9uKHQsbixpLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYWxsYmFjayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7dmFyIG8scyxhPWFyZ3VtZW50cy5sZW5ndGg7c3dpdGNoKGEpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIGUubmV4dFRpY2sodCk7Y2FzZSAyOnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbil9KTtjYXNlIDM6cmV0dXJuIGUubmV4dFRpY2soZnVuY3Rpb24oKXt0LmNhbGwobnVsbCxuLGkpfSk7Y2FzZSA0OnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbixpLHIpfSk7ZGVmYXVsdDpmb3Iobz1uZXcgQXJyYXkoYS0xKSxzPTA7czxvLmxlbmd0aDspb1tzKytdPWFyZ3VtZW50c1tzXTtyZXR1cm4gZS5uZXh0VGljayhmdW5jdGlvbigpe3QuYXBwbHkobnVsbCxvKX0pfX19OnQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0KXt2YXIgaT12b2lkIDAhPT10JiZ0fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHdpbmRvdyxyPUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTtmdW5jdGlvbiBvKHQsZSl7dGhpcy5faWQ9dCx0aGlzLl9jbGVhckZuPWV9ZS5zZXRUaW1lb3V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRUaW1lb3V0LGksYXJndW1lbnRzKSxjbGVhclRpbWVvdXQpfSxlLnNldEludGVydmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRJbnRlcnZhbCxpLGFyZ3VtZW50cyksY2xlYXJJbnRlcnZhbCl9LGUuY2xlYXJUaW1lb3V0PWUuY2xlYXJJbnRlcnZhbD1mdW5jdGlvbih0KXt0JiZ0LmNsb3NlKCl9LG8ucHJvdG90eXBlLnVucmVmPW8ucHJvdG90eXBlLnJlZj1mdW5jdGlvbigpe30sby5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckZuLmNhbGwoaSx0aGlzLl9pZCl9LGUuZW5yb2xsPWZ1bmN0aW9uKHQsZSl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PWV9LGUudW5lbnJvbGw9ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PS0xfSxlLl91bnJlZkFjdGl2ZT1lLmFjdGl2ZT1mdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCk7dmFyIGU9dC5faWRsZVRpbWVvdXQ7ZT49MCYmKHQuX2lkbGVUaW1lb3V0SWQ9c2V0VGltZW91dChmdW5jdGlvbigpe3QuX29uVGltZW91dCYmdC5fb25UaW1lb3V0KCl9LGUpKX0sbigxNTApLGUuc2V0SW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5zZXRJbW1lZGlhdGV8fHZvaWQgMCE9PXQmJnQuc2V0SW1tZWRpYXRlfHx0aGlzJiZ0aGlzLnNldEltbWVkaWF0ZSxlLmNsZWFySW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jbGVhckltbWVkaWF0ZXx8dm9pZCAwIT09dCYmdC5jbGVhckltbWVkaWF0ZXx8dGhpcyYmdGhpcy5jbGVhckltbWVkaWF0ZX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQpe2kuaXNCdWZmZXIodCl8fCh0PWkuZnJvbSh0KSk7Zm9yKHZhciBlPXQubGVuZ3RoLzR8MCxuPW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXQucmVhZFVJbnQzMkJFKDQqcik7cmV0dXJuIG59ZnVuY3Rpb24gbyh0KXtmb3IoOzA8dC5sZW5ndGg7dCsrKXRbMF09MH1mdW5jdGlvbiBzKHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGM9blswXSxoPW5bMV0sbD1uWzJdLGQ9blszXSxmPXRbMF1eZVswXSxwPXRbMV1eZVsxXSxtPXRbMl1eZVsyXSxnPXRbM11eZVszXSx2PTQsYj0xO2I8cjtiKyspbz1jW2Y+Pj4yNF1eaFtwPj4+MTYmMjU1XV5sW20+Pj44JjI1NV1eZFsyNTUmZ11eZVt2KytdLHM9Y1twPj4+MjRdXmhbbT4+PjE2JjI1NV1ebFtnPj4+OCYyNTVdXmRbMjU1JmZdXmVbdisrXSxhPWNbbT4+PjI0XV5oW2c+Pj4xNiYyNTVdXmxbZj4+PjgmMjU1XV5kWzI1NSZwXV5lW3YrK10sdT1jW2c+Pj4yNF1eaFtmPj4+MTYmMjU1XV5sW3A+Pj44JjI1NV1eZFsyNTUmbV1eZVt2KytdLGY9byxwPXMsbT1hLGc9dTtyZXR1cm4gbz0oaVtmPj4+MjRdPDwyNHxpW3A+Pj4xNiYyNTVdPDwxNnxpW20+Pj44JjI1NV08PDh8aVsyNTUmZ10pXmVbdisrXSxzPShpW3A+Pj4yNF08PDI0fGlbbT4+PjE2JjI1NV08PDE2fGlbZz4+PjgmMjU1XTw8OHxpWzI1NSZmXSleZVt2KytdLGE9KGlbbT4+PjI0XTw8MjR8aVtnPj4+MTYmMjU1XTw8MTZ8aVtmPj4+OCYyNTVdPDw4fGlbMjU1JnBdKV5lW3YrK10sdT0oaVtnPj4+MjRdPDwyNHxpW2Y+Pj4xNiYyNTVdPDwxNnxpW3A+Pj44JjI1NV08PDh8aVsyNTUmbV0pXmVbdisrXSxbbz4+Pj0wLHM+Pj49MCxhPj4+PTAsdT4+Pj0wXX12YXIgYT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMjU2KSxlPTA7ZTwyNTY7ZSsrKXRbZV09ZTwxMjg/ZTw8MTplPDwxXjI4Mztmb3IodmFyIG49W10saT1bXSxyPVtbXSxbXSxbXSxbXV0sbz1bW10sW10sW10sW11dLHM9MCxhPTAsdT0wO3U8MjU2OysrdSl7dmFyIGM9YV5hPDwxXmE8PDJeYTw8M15hPDw0O2M9Yz4+PjheMjU1JmNeOTksbltzXT1jLGlbY109czt2YXIgaD10W3NdLGw9dFtoXSxkPXRbbF0sZj0yNTcqdFtjXV4xNjg0MzAwOCpjO3JbMF1bc109Zjw8MjR8Zj4+PjgsclsxXVtzXT1mPDwxNnxmPj4+MTYsclsyXVtzXT1mPDw4fGY+Pj4yNCxyWzNdW3NdPWYsZj0xNjg0MzAwOSpkXjY1NTM3KmxeMjU3KmheMTY4NDMwMDgqcyxvWzBdW2NdPWY8PDI0fGY+Pj44LG9bMV1bY109Zjw8MTZ8Zj4+PjE2LG9bMl1bY109Zjw8OHxmPj4+MjQsb1szXVtjXT1mLDA9PT1zP3M9YT0xOihzPWhedFt0W3RbZF5oXV1dLGFePXRbdFthXV0pfXJldHVybntTQk9YOm4sSU5WX1NCT1g6aSxTVUJfTUlYOnIsSU5WX1NVQl9NSVg6b319KCk7ZnVuY3Rpb24gYyh0KXt0aGlzLl9rZXk9cih0KSx0aGlzLl9yZXNldCgpfWMuYmxvY2tTaXplPTE2LGMua2V5U2l6ZT0zMixjLnByb3RvdHlwZS5ibG9ja1NpemU9Yy5ibG9ja1NpemUsYy5wcm90b3R5cGUua2V5U2l6ZT1jLmtleVNpemUsYy5wcm90b3R5cGUuX3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQubGVuZ3RoLG49ZSs2LGk9NCoobisxKSxyPVtdLG89MDtvPGU7bysrKXJbb109dFtvXTtmb3Iobz1lO288aTtvKyspe3ZhciBzPXJbby0xXTtvJWU9PTA/KHM9czw8OHxzPj4+MjQscz11LlNCT1hbcz4+PjI0XTw8MjR8dS5TQk9YW3M+Pj4xNiYyNTVdPDwxNnx1LlNCT1hbcz4+PjgmMjU1XTw8OHx1LlNCT1hbMjU1JnNdLHNePWFbby9lfDBdPDwyNCk6ZT42JiZvJWU9PTQmJihzPXUuU0JPWFtzPj4+MjRdPDwyNHx1LlNCT1hbcz4+PjE2JjI1NV08PDE2fHUuU0JPWFtzPj4+OCYyNTVdPDw4fHUuU0JPWFsyNTUmc10pLHJbb109cltvLWVdXnN9Zm9yKHZhciBjPVtdLGg9MDtoPGk7aCsrKXt2YXIgbD1pLWgsZD1yW2wtKGglND8wOjQpXTtjW2hdPWg8NHx8bDw9ND9kOnUuSU5WX1NVQl9NSVhbMF1bdS5TQk9YW2Q+Pj4yNF1dXnUuSU5WX1NVQl9NSVhbMV1bdS5TQk9YW2Q+Pj4xNiYyNTVdXV51LklOVl9TVUJfTUlYWzJdW3UuU0JPWFtkPj4+OCYyNTVdXV51LklOVl9TVUJfTUlYWzNdW3UuU0JPWFsyNTUmZF1dfXRoaXMuX25Sb3VuZHM9bix0aGlzLl9rZXlTY2hlZHVsZT1yLHRoaXMuX2ludktleVNjaGVkdWxlPWN9LGMucHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jhdz1mdW5jdGlvbih0KXtyZXR1cm4gcyh0PXIodCksdGhpcy5fa2V5U2NoZWR1bGUsdS5TVUJfTUlYLHUuU0JPWCx0aGlzLl9uUm91bmRzKX0sYy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KHQpLG49aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG4ud3JpdGVVSW50MzJCRShlWzBdLDApLG4ud3JpdGVVSW50MzJCRShlWzFdLDQpLG4ud3JpdGVVSW50MzJCRShlWzJdLDgpLG4ud3JpdGVVSW50MzJCRShlWzNdLDEyKSxufSxjLnByb3RvdHlwZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9cih0KSlbMV07dFsxXT10WzNdLHRbM109ZTt2YXIgbj1zKHQsdGhpcy5faW52S2V5U2NoZWR1bGUsdS5JTlZfU1VCX01JWCx1LklOVl9TQk9YLHRoaXMuX25Sb3VuZHMpLG89aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG8ud3JpdGVVSW50MzJCRShuWzBdLDApLG8ud3JpdGVVSW50MzJCRShuWzNdLDQpLG8ud3JpdGVVSW50MzJCRShuWzJdLDgpLG8ud3JpdGVVSW50MzJCRShuWzFdLDEyKSxvfSxjLnByb3RvdHlwZS5zY3J1Yj1mdW5jdGlvbigpe28odGhpcy5fa2V5U2NoZWR1bGUpLG8odGhpcy5faW52S2V5U2NoZWR1bGUpLG8odGhpcy5fa2V5KX0sdC5leHBvcnRzLkFFUz1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbyl7aWYoaS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsImJpbmFyeSIpKSxlJiYoaS5pc0J1ZmZlcihlKXx8KGU9aS5mcm9tKGUsImJpbmFyeSIpKSw4IT09ZS5sZW5ndGgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBzPW4vOCxhPWkuYWxsb2MocyksdT1pLmFsbG9jKG98fDApLGM9aS5hbGxvYygwKTtzPjB8fG8+MDspe3ZhciBoPW5ldyByO2gudXBkYXRlKGMpLGgudXBkYXRlKHQpLGUmJmgudXBkYXRlKGUpLGM9aC5kaWdlc3QoKTt2YXIgbD0wO2lmKHM+MCl7dmFyIGQ9YS5sZW5ndGgtcztsPU1hdGgubWluKHMsYy5sZW5ndGgpLGMuY29weShhLGQsMCxsKSxzLT1sfWlmKGw8Yy5sZW5ndGgmJm8+MCl7dmFyIGY9dS5sZW5ndGgtbyxwPU1hdGgubWluKG8sYy5sZW5ndGgtbCk7Yy5jb3B5KHUsZixsLGwrcCksby09cH19cmV0dXJuIGMuZmlsbCgwKSx7a2V5OmEsaXY6dX19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC53ZWJwYWNrUG9seWZpbGx8fCh0LmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sdC5wYXRocz1bXSx0LmNoaWxkcmVufHwodC5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Lml9fSksdC53ZWJwYWNrUG9seWZpbGw9MSksdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtpLmJhc2U9bigxOTApLGkuc2hvcnQ9bigxOTEpLGkubW9udD1uKDE5MiksaS5lZHdhcmRzPW4oMTkzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDIwOSkscj1uKDIyMSksbz1uKDIyMikscz1uKDY3KSxhPW4oOTQpO2Z1bmN0aW9uIHUodCl7dmFyIG47Im9iamVjdCIhPXR5cGVvZiB0fHxlLmlzQnVmZmVyKHQpfHwobj10LnBhc3NwaHJhc2UsdD10LmtleSksInN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgZSh0KSk7dmFyIHUsYyxoPW8odCxuKSxsPWgudGFnLGQ9aC5kYXRhO3N3aXRjaChsKXtjYXNlIkNFUlRJRklDQVRFIjpjPWkuY2VydGlmaWNhdGUuZGVjb2RlKGQsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKGN8fChjPWkuUHVibGljS2V5LmRlY29kZShkLCJkZXIiKSksdT1jLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGMuc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gYy5zdWJqZWN0UHJpdmF0ZUtleT1jLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixkYXRhOmN9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBjLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5cGU6ImRzYSIsZGF0YTpjLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK3UpfXRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgdHlwZSAiK2wpO2Nhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpkPWZ1bmN0aW9uKHQsbil7dmFyIGk9dC5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsbz1wYXJzZUludCh0LmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCksdT1yW3QuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxjPXQuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLml2LGg9dC5zdWJqZWN0UHJpdmF0ZUtleSxsPXBhcnNlSW50KHUuc3BsaXQoIi0iKVsxXSwxMCkvOCxkPWEucGJrZGYyU3luYyhuLGksbyxsKSxmPXMuY3JlYXRlRGVjaXBoZXJpdih1LGQsYykscD1bXTtyZXR1cm4gcC5wdXNoKGYudXBkYXRlKGgpKSxwLnB1c2goZi5maW5hbCgpKSxlLmNvbmNhdChwKX0oZD1pLkVuY3J5cHRlZFByaXZhdGVLZXkuZGVjb2RlKGQsImRlciIpLG4pO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaCh1PShjPWkuUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Yy5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTppLkVDUHJpdmF0ZUtleS5kZWNvZGUoYy5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIGMuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6Yy5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIit1KX10aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitsKTtjYXNlIlJTQSBQVUJMSUMgS0VZIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGQsImRlciIpO2Nhc2UiUlNBIFBSSVZBVEUgS0VZIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShkLCJkZXIiKTtjYXNlIkRTQSBQUklWQVRFIEtFWSI6cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOmkuRFNBUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIil9O2Nhc2UiRUMgUFJJVkFURSBLRVkiOnJldHVybntjdXJ2ZTooZD1pLkVDUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLnBhcmFtZXRlcnMudmFsdWUscHJpdmF0ZUtleTpkLnByaXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrbCl9fXQuZXhwb3J0cz11LHUuc2lnbmF0dXJlPWkuc2lnbmF0dXJlfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjM1KSxyPW4oMjM2KSxvPW4oMjM3KSxzPW4oMjM4KSxhPW4oMjM5KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExOCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoaSh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjkpKE9iamVjdCwiY3JlYXRlIik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fX2RhdGFfXztyZXR1cm4gaShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDQxKSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1QYW5lbCIpLG4ubGF5b3V0PW8uY3JlYXRlTGF5b3V0KGUpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIndpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuYWRkV2lkZ2V0KHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dC5pbnNlcnRXaWRnZXQodCxlKX0sZX0obig3KS5XaWRnZXQpO2UuUGFuZWw9YSxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyBzLlBhbmVsTGF5b3V0fX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMudHlwZT0idGV4dCIsdGhpcy5jb250ZW50PXR9fSgpO2UuVmlydHVhbFRleHQ9cjt2YXIgbyxzPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnR5cGU9ImVsZW1lbnQiLHRoaXMudGFnPXQsdGhpcy5hdHRycz1lLHRoaXMuY2hpbGRyZW49bn19KCk7ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9e30sbj1bXSxpPTEsbz1hcmd1bWVudHMubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPWFyZ3VtZW50c1tpXTsic3RyaW5nIj09dHlwZW9mIGE/bi5wdXNoKG5ldyByKGEpKTphIGluc3RhbmNlb2Ygcj9uLnB1c2goYSk6YSBpbnN0YW5jZW9mIHM/bi5wdXNoKGEpOmEgaW5zdGFuY2VvZiBBcnJheT91KG4sYSk6MT09PWkmJmEmJiJvYmplY3QiPT10eXBlb2YgYSYmKGU9YSl9cmV0dXJuIG5ldyBzKHQsZSxuKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bisrKXt2YXIgbz1pW25dOyJzdHJpbmciPT10eXBlb2Ygbz90LnB1c2gobmV3IHIobykpOm8gaW5zdGFuY2VvZiByP3QucHVzaChvKTpvIGluc3RhbmNlb2YgcyYmdC5wdXNoKG8pfX19ZS5WaXJ0dWFsRWxlbWVudD1zLGUuaD1hLGZ1bmN0aW9uKHQpe3QuYT10LmJpbmQodm9pZCAwLCJhIiksdC5hYmJyPXQuYmluZCh2b2lkIDAsImFiYnIiKSx0LmFkZHJlc3M9dC5iaW5kKHZvaWQgMCwiYWRkcmVzcyIpLHQuYXJlYT10LmJpbmQodm9pZCAwLCJhcmVhIiksdC5hcnRpY2xlPXQuYmluZCh2b2lkIDAsImFydGljbGUiKSx0LmFzaWRlPXQuYmluZCh2b2lkIDAsImFzaWRlIiksdC5hdWRpbz10LmJpbmQodm9pZCAwLCJhdWRpbyIpLHQuYj10LmJpbmQodm9pZCAwLCJiIiksdC5iZGk9dC5iaW5kKHZvaWQgMCwiYmRpIiksdC5iZG89dC5iaW5kKHZvaWQgMCwiYmRvIiksdC5ibG9ja3F1b3RlPXQuYmluZCh2b2lkIDAsImJsb2NrcXVvdGUiKSx0LmJyPXQuYmluZCh2b2lkIDAsImJyIiksdC5idXR0b249dC5iaW5kKHZvaWQgMCwiYnV0dG9uIiksdC5jYW52YXM9dC5iaW5kKHZvaWQgMCwiY2FudmFzIiksdC5jYXB0aW9uPXQuYmluZCh2b2lkIDAsImNhcHRpb24iKSx0LmNpdGU9dC5iaW5kKHZvaWQgMCwiY2l0ZSIpLHQuY29kZT10LmJpbmQodm9pZCAwLCJjb2RlIiksdC5jb2w9dC5iaW5kKHZvaWQgMCwiY29sIiksdC5jb2xncm91cD10LmJpbmQodm9pZCAwLCJjb2xncm91cCIpLHQuZGF0YT10LmJpbmQodm9pZCAwLCJkYXRhIiksdC5kYXRhbGlzdD10LmJpbmQodm9pZCAwLCJkYXRhbGlzdCIpLHQuZGQ9dC5iaW5kKHZvaWQgMCwiZGQiKSx0LmRlbD10LmJpbmQodm9pZCAwLCJkZWwiKSx0LmRmbj10LmJpbmQodm9pZCAwLCJkZm4iKSx0LmRpdj10LmJpbmQodm9pZCAwLCJkaXYiKSx0LmRsPXQuYmluZCh2b2lkIDAsImRsIiksdC5kdD10LmJpbmQodm9pZCAwLCJkdCIpLHQuZW09dC5iaW5kKHZvaWQgMCwiZW0iKSx0LmVtYmVkPXQuYmluZCh2b2lkIDAsImVtYmVkIiksdC5maWVsZHNldD10LmJpbmQodm9pZCAwLCJmaWVsZHNldCIpLHQuZmlnY2FwdGlvbj10LmJpbmQodm9pZCAwLCJmaWdjYXB0aW9uIiksdC5maWd1cmU9dC5iaW5kKHZvaWQgMCwiZmlndXJlIiksdC5mb290ZXI9dC5iaW5kKHZvaWQgMCwiZm9vdGVyIiksdC5mb3JtPXQuYmluZCh2b2lkIDAsImZvcm0iKSx0LmgxPXQuYmluZCh2b2lkIDAsImgxIiksdC5oMj10LmJpbmQodm9pZCAwLCJoMiIpLHQuaDM9dC5iaW5kKHZvaWQgMCwiaDMiKSx0Lmg0PXQuYmluZCh2b2lkIDAsImg0IiksdC5oNT10LmJpbmQodm9pZCAwLCJoNSIpLHQuaDY9dC5iaW5kKHZvaWQgMCwiaDYiKSx0LmhlYWRlcj10LmJpbmQodm9pZCAwLCJoZWFkZXIiKSx0LmhyPXQuYmluZCh2b2lkIDAsImhyIiksdC5pPXQuYmluZCh2b2lkIDAsImkiKSx0LmlmcmFtZT10LmJpbmQodm9pZCAwLCJpZnJhbWUiKSx0LmltZz10LmJpbmQodm9pZCAwLCJpbWciKSx0LmlucHV0PXQuYmluZCh2b2lkIDAsImlucHV0IiksdC5pbnM9dC5iaW5kKHZvaWQgMCwiaW5zIiksdC5rYmQ9dC5iaW5kKHZvaWQgMCwia2JkIiksdC5sYWJlbD10LmJpbmQodm9pZCAwLCJsYWJlbCIpLHQubGVnZW5kPXQuYmluZCh2b2lkIDAsImxlZ2VuZCIpLHQubGk9dC5iaW5kKHZvaWQgMCwibGkiKSx0Lm1haW49dC5iaW5kKHZvaWQgMCwibWFpbiIpLHQubWFwPXQuYmluZCh2b2lkIDAsIm1hcCIpLHQubWFyaz10LmJpbmQodm9pZCAwLCJtYXJrIiksdC5tZXRlcj10LmJpbmQodm9pZCAwLCJtZXRlciIpLHQubmF2PXQuYmluZCh2b2lkIDAsIm5hdiIpLHQubm9zY3JpcHQ9dC5iaW5kKHZvaWQgMCwibm9zY3JpcHQiKSx0Lm9iamVjdD10LmJpbmQodm9pZCAwLCJvYmplY3QiKSx0Lm9sPXQuYmluZCh2b2lkIDAsIm9sIiksdC5vcHRncm91cD10LmJpbmQodm9pZCAwLCJvcHRncm91cCIpLHQub3B0aW9uPXQuYmluZCh2b2lkIDAsIm9wdGlvbiIpLHQub3V0cHV0PXQuYmluZCh2b2lkIDAsIm91dHB1dCIpLHQucD10LmJpbmQodm9pZCAwLCJwIiksdC5wYXJhbT10LmJpbmQodm9pZCAwLCJwYXJhbSIpLHQucHJlPXQuYmluZCh2b2lkIDAsInByZSIpLHQucHJvZ3Jlc3M9dC5iaW5kKHZvaWQgMCwicHJvZ3Jlc3MiKSx0LnE9dC5iaW5kKHZvaWQgMCwicSIpLHQucnA9dC5iaW5kKHZvaWQgMCwicnAiKSx0LnJ0PXQuYmluZCh2b2lkIDAsInJ0IiksdC5ydWJ5PXQuYmluZCh2b2lkIDAsInJ1YnkiKSx0LnM9dC5iaW5kKHZvaWQgMCwicyIpLHQuc2FtcD10LmJpbmQodm9pZCAwLCJzYW1wIiksdC5zZWN0aW9uPXQuYmluZCh2b2lkIDAsInNlY3Rpb24iKSx0LnNlbGVjdD10LmJpbmQodm9pZCAwLCJzZWxlY3QiKSx0LnNtYWxsPXQuYmluZCh2b2lkIDAsInNtYWxsIiksdC5zb3VyY2U9dC5iaW5kKHZvaWQgMCwic291cmNlIiksdC5zcGFuPXQuYmluZCh2b2lkIDAsInNwYW4iKSx0LnN0cm9uZz10LmJpbmQodm9pZCAwLCJzdHJvbmciKSx0LnN1Yj10LmJpbmQodm9pZCAwLCJzdWIiKSx0LnN1bW1hcnk9dC5iaW5kKHZvaWQgMCwic3VtbWFyeSIpLHQuc3VwPXQuYmluZCh2b2lkIDAsInN1cCIpLHQudGFibGU9dC5iaW5kKHZvaWQgMCwidGFibGUiKSx0LnRib2R5PXQuYmluZCh2b2lkIDAsInRib2R5IiksdC50ZD10LmJpbmQodm9pZCAwLCJ0ZCIpLHQudGV4dGFyZWE9dC5iaW5kKHZvaWQgMCwidGV4dGFyZWEiKSx0LnRmb290PXQuYmluZCh2b2lkIDAsInRmb290IiksdC50aD10LmJpbmQodm9pZCAwLCJ0aCIpLHQudGhlYWQ9dC5iaW5kKHZvaWQgMCwidGhlYWQiKSx0LnRpbWU9dC5iaW5kKHZvaWQgMCwidGltZSIpLHQudGl0bGU9dC5iaW5kKHZvaWQgMCwidGl0bGUiKSx0LnRyPXQuYmluZCh2b2lkIDAsInRyIiksdC50cmFjaz10LmJpbmQodm9pZCAwLCJ0cmFjayIpLHQudT10LmJpbmQodm9pZCAwLCJ1IiksdC51bD10LmJpbmQodm9pZCAwLCJ1bCIpLHQudmFyXz10LmJpbmQodm9pZCAwLCJ2YXIiKSx0LnZpZGVvPXQuYmluZCh2b2lkIDAsInZpZGVvIiksdC53YnI9dC5iaW5kKHZvaWQgMCwid2JyIil9KGE9ZS5ofHwoZS5oPXt9KSksZnVuY3Rpb24odCl7dC5yZWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZURPTU5vZGUodCl9LHQucmVuZGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5ob3N0TWFwLmdldChlKXx8W10saT1vLmFzQ29udGVudEFycmF5KHQpO28uaG9zdE1hcC5zZXQoZSxpKSxvLnVwZGF0ZUNvbnRlbnQoZSxuLGkpfX0oZS5WaXJ0dWFsRE9NfHwoZS5WaXJ0dWFsRE9NPXt9KSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtpZigidGV4dCI9PT10LnR5cGUpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQuY29udGVudCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LnRhZyk7IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpIGluIGUpaSBpbiBufHwoIm9uIj09PWkuc3Vic3RyKDAsMik/dFtpXT1lW2ldOnQuc2V0QXR0cmlidXRlKGksZVtpXSkpO3ZvaWQgMCE9PWUuY2xhc3NOYW1lJiZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGUuY2xhc3NOYW1lKTt2b2lkIDAhPT1lLmh0bWxGb3ImJnQuc2V0QXR0cmlidXRlKCJmb3IiLGUuaHRtbEZvcik7ZS5kYXRhc2V0JiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXQuc2V0QXR0cmlidXRlKCJkYXRhLSIrbixlW25dKX0odCxlLmRhdGFzZXQpO2Uuc3R5bGUmJmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10LnN0eWxlO2ZvcihuIGluIGUpaVtuXT1lW25dfSh0LGUuc3R5bGUpfShpLHQuYXR0cnMpO2Zvcih2YXIgcj0wLG89dC5jaGlsZHJlbi5sZW5ndGg7cjxvOysrcilpLmFwcGVuZENoaWxkKGUodC5jaGlsZHJlbltyXSkpO3JldHVybiBpfXQuaG9zdE1hcD1uZXcgV2Vha01hcCx0LmFzQ29udGVudEFycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3QgaW5zdGFuY2VvZiBBcnJheT90Olt0XTpbXX0sdC5jcmVhdGVET01Ob2RlPWUsdC51cGRhdGVDb250ZW50PWZ1bmN0aW9uIHQobixvLHMpe2lmKG8hPT1zKXtmb3IodmFyIGE9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5maXJzdENoaWxkLGk9T2JqZWN0LmNyZWF0ZShudWxsKSxyPTAsbz1lO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdOyJlbGVtZW50Ij09PXMudHlwZSYmcy5hdHRycy5rZXkmJihpW3MuYXR0cnMua2V5XT17dk5vZGU6cyxlbGVtZW50Om59KSxuPW4ubmV4dFNpYmxpbmd9cmV0dXJuIGl9KG4sbyksdT1vLnNsaWNlKCksYz1uLmZpcnN0Q2hpbGQsaD1zLmxlbmd0aCxsPTA7bDxoOysrbClpZihsPj11Lmxlbmd0aCluLmFwcGVuZENoaWxkKGUoc1tsXSkpO2Vsc2V7dmFyIGQ9dVtsXSxmPXNbbF07aWYoZCE9PWYpaWYoInRleHQiIT09ZC50eXBlfHwidGV4dCIhPT1mLnR5cGUpaWYoInRleHQiIT09ZC50eXBlJiYidGV4dCIhPT1mLnR5cGUpe3ZhciBwPWYuYXR0cnMua2V5O2lmKHAmJnAgaW4gYSl7dmFyIG09YVtwXTttLnZOb2RlIT09ZCYmKGkuQXJyYXlFeHQubW92ZSh1LHUuaW5kZXhPZihtLnZOb2RlLGwrMSksbCksbi5pbnNlcnRCZWZvcmUobS5lbGVtZW50LGMpLGQ9bS52Tm9kZSxjPW0uZWxlbWVudCl9aWYoZCE9PWYpe3ZhciBnPWQuYXR0cnMua2V5O2cmJmchPT1wPyhpLkFycmF5RXh0Lmluc2VydCh1LGwsZiksbi5pbnNlcnRCZWZvcmUoZShmKSxjKSk6ZC50YWc9PT1mLnRhZz8ocihjLGQuYXR0cnMsZi5hdHRycyksdChjLGQuY2hpbGRyZW4sZi5jaGlsZHJlbiksYz1jLm5leHRTaWJsaW5nKTooaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYykpfWVsc2UgYz1jLm5leHRTaWJsaW5nfWVsc2UgaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYyk7ZWxzZSBjLnRleHRDb250ZW50PWYuY29udGVudCxjPWMubmV4dFNpYmxpbmc7ZWxzZSBjPWMubmV4dFNpYmxpbmd9Zm9yKGw9dS5sZW5ndGgtaDtsPjA7LS1sKW4ucmVtb3ZlQ2hpbGQobi5sYXN0Q2hpbGQpfX07dmFyIG49e2tleTohMCxjbGFzc05hbWU6ITAsaHRtbEZvcjohMCxkYXRhc2V0OiEwLHN0eWxlOiEwfTtmdW5jdGlvbiByKHQsZSxpKXtpZihlIT09aSl7dmFyIHI7Zm9yKHIgaW4gZSlyIGluIG58fHIgaW4gaXx8KCJvbiI9PT1yLnN1YnN0cigwLDIpP3Rbcl09bnVsbDp0LnJlbW92ZUF0dHJpYnV0ZShyKSk7Zm9yKHIgaW4gaSlyIGluIG58fGVbcl09PT1pW3JdfHwoIm9uIj09PXIuc3Vic3RyKDAsMik/dFtyXT1pW3JdOnQuc2V0QXR0cmlidXRlKHIsaVtyXSkpO2UuY2xhc3NOYW1lIT09aS5jbGFzc05hbWUmJih2b2lkIDAhPT1pLmNsYXNzTmFtZT90LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGkuY2xhc3NOYW1lKTp0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSksZS5odG1sRm9yIT09aS5odG1sRm9yJiYodm9pZCAwIT09aS5odG1sRm9yP3Quc2V0QXR0cmlidXRlKCJmb3IiLGkuaHRtbEZvcik6dC5yZW1vdmVBdHRyaWJ1dGUoImZvciIpKSxlLmRhdGFzZXQhPT1pLmRhdGFzZXQmJmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gZSlpIGluIG58fHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLSIraSk7Zm9yKHZhciByIGluIG4pZVtyXSE9PW5bcl0mJnQuc2V0QXR0cmlidXRlKCJkYXRhLSIrcixuW3JdKX0odCxlLmRhdGFzZXR8fHt9LGkuZGF0YXNldHx8e30pLGUuc3R5bGUhPT1pLnN0eWxlJiZmdW5jdGlvbih0LGUsbil7dmFyIGkscj10LnN0eWxlO2ZvcihpIGluIGUpaSBpbiBufHwocltpXT0iIik7Zm9yKGkgaW4gbillW2ldIT09bltpXSYmKHJbaV09bltpXSl9KHQsZS5zdHlsZXx8e30saS5zdHlsZXx8e30pfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9big3OCksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLl9vblNjcm9sbEZyYW1lPWZ1bmN0aW9uKCl7aWYoZS5fc2Nyb2xsVGFyZ2V0KXt2YXIgdD1lLl9zY3JvbGxUYXJnZXQsbj10LmVsZW1lbnQscj10LmVkZ2Usbz10LmRpc3RhbmNlLHM9aS5TQ1JPTExfRURHRV9TSVpFLW8sYT1NYXRoLnBvdyhzL2kuU0NST0xMX0VER0VfU0laRSwyKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZChhKmkuU0NST0xMX0VER0VfU0laRSkpO3N3aXRjaChyKXtjYXNlInRvcCI6bi5zY3JvbGxUb3AtPXU7YnJlYWs7Y2FzZSJsZWZ0IjpuLnNjcm9sbExlZnQtPXU7YnJlYWs7Y2FzZSJyaWdodCI6bi5zY3JvbGxMZWZ0Kz11O2JyZWFrO2Nhc2UiYm90dG9tIjpuLnNjcm9sbFRvcCs9dX1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZS5fb25TY3JvbGxGcmFtZSl9fSx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9kcm9wQWN0aW9uPSJub25lIix0aGlzLl9vdmVycmlkZT1udWxsLHRoaXMuX2N1cnJlbnRUYXJnZXQ9bnVsbCx0aGlzLl9jdXJyZW50RWxlbWVudD1udWxsLHRoaXMuX3Byb21pc2U9bnVsbCx0aGlzLl9zY3JvbGxUYXJnZXQ9bnVsbCx0aGlzLl9yZXNvbHZlPW51bGwsdGhpcy5taW1lRGF0YT10Lm1pbWVEYXRhLHRoaXMuZHJhZ0ltYWdlPXQuZHJhZ0ltYWdlfHxudWxsLHRoaXMucHJvcG9zZWRBY3Rpb249dC5wcm9wb3NlZEFjdGlvbnx8ImNvcHkiLHRoaXMuc3VwcG9ydGVkQWN0aW9ucz10LnN1cHBvcnRlZEFjdGlvbnN8fCJhbGwiLHRoaXMuc291cmNlPXQuc291cmNlfHxudWxsfXJldHVybiB0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rpc3Bvc2VkKXtpZih0aGlzLl9kaXNwb3NlZD0hMCx0aGlzLl9jdXJyZW50VGFyZ2V0KXt2YXIgdD1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNldXAiLC0xLC0xKTtpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCxudWxsLHQpfXRoaXMuX2ZpbmFsaXplKCJub25lIil9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHRoaXMuX2Rpc3Bvc2VkKXJldHVybiBQcm9taXNlLnJlc29sdmUoIm5vbmUiKTtpZih0aGlzLl9wcm9taXNlKXJldHVybiB0aGlzLl9wcm9taXNlO3RoaXMuX2FkZExpc3RlbmVycygpLHRoaXMuX2F0dGFjaERyYWdJbWFnZSh0LGUpLHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLl9yZXNvbHZlPXR9KTt2YXIgcj1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNlbW92ZSIsdCxlKTtyZXR1cm4gZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChyKSx0aGlzLl9wcm9taXNlfSx0LnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7ZGVmYXVsdDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHQucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fdXBkYXRlQ3VycmVudFRhcmdldCh0KSx0aGlzLl91cGRhdGVEcmFnU2Nyb2xsKHQpLHRoaXMuX21vdmVEcmFnSW1hZ2UodC5jbGllbnRYLHQuY2xpZW50WSl9LHQucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDA9PT10LmJ1dHRvbilpZih0aGlzLl91cGRhdGVDdXJyZW50VGFyZ2V0KHQpLHRoaXMuX2N1cnJlbnRUYXJnZXQpe2lmKCJub25lIj09PXRoaXMuX2Ryb3BBY3Rpb24pcmV0dXJuIGkuZGlzcGF0Y2hEcmFnTGVhdmUodGhpcyx0aGlzLl9jdXJyZW50VGFyZ2V0LG51bGwsdCksdm9pZCB0aGlzLl9maW5hbGl6ZSgibm9uZSIpO3ZhciBlPWkuZGlzcGF0Y2hEcm9wKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCx0KTt0aGlzLl9maW5hbGl6ZShlKX1lbHNlIHRoaXMuX2ZpbmFsaXplKCJub25lIil9LHQucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLmRpc3Bvc2UoKX0sdC5wcm90b3R5cGUuX2FkZExpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3JlbW92ZUxpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3VwZGF0ZURyYWdTY3JvbGw9ZnVuY3Rpb24odCl7dmFyIGU9aS5maW5kU2Nyb2xsVGFyZ2V0KHQpOyh0aGlzLl9zY3JvbGxUYXJnZXR8fGUpJiYodGhpcy5fc2Nyb2xsVGFyZ2V0fHxzZXRUaW1lb3V0KHRoaXMuX29uU2Nyb2xsRnJhbWUsNTAwKSx0aGlzLl9zY3JvbGxUYXJnZXQ9ZSl9LHQucHJvdG90eXBlLl91cGRhdGVDdXJyZW50VGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2N1cnJlbnRUYXJnZXQsbj10aGlzLl9jdXJyZW50VGFyZ2V0LHI9dGhpcy5fY3VycmVudEVsZW1lbnQsbz1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHQuY2xpZW50WCx0LmNsaWVudFkpO3RoaXMuX2N1cnJlbnRFbGVtZW50PW8sbyE9PXImJm8hPT1uJiZpLmRpc3BhdGNoRHJhZ0V4aXQodGhpcyxuLG8sdCksbyE9PXImJm8hPT1uJiYobj1pLmRpc3BhdGNoRHJhZ0VudGVyKHRoaXMsbyxuLHQpKSxuIT09ZSYmKHRoaXMuX2N1cnJlbnRUYXJnZXQ9bixpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsZSxuLHQpKTt2YXIgcz1pLmRpc3BhdGNoRHJhZ092ZXIodGhpcyxuLHQpO3RoaXMuX3NldERyb3BBY3Rpb24ocyl9LHQucHJvdG90eXBlLl9hdHRhY2hEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dGhpcy5kcmFnSW1hZ2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtZHJhZy1pbWFnZSIpO3ZhciBuPXRoaXMuZHJhZ0ltYWdlLnN0eWxlO24ucG9pbnRlckV2ZW50cz0ibm9uZSIsbi5wb3NpdGlvbj0iZml4ZWQiLG4udG9wPWUrInB4IixuLmxlZnQ9dCsicHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kcmFnSW1hZ2UpfX0sdC5wcm90b3R5cGUuX21vdmVEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dmFyIG49dGhpcy5kcmFnSW1hZ2Uuc3R5bGU7bi50b3A9ZSsicHgiLG4ubGVmdD10KyJweCJ9fSx0LnByb3RvdHlwZS5fZGV0YWNoRHJhZ0ltYWdlPWZ1bmN0aW9uKCl7aWYodGhpcy5kcmFnSW1hZ2Upe3ZhciB0PXRoaXMuZHJhZ0ltYWdlLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzLmRyYWdJbWFnZSl9fSx0LnByb3RvdHlwZS5fc2V0RHJvcEFjdGlvbj1mdW5jdGlvbihlKXtpZihlPWkudmFsaWRhdGVBY3Rpb24oZSx0aGlzLnN1cHBvcnRlZEFjdGlvbnMpLCF0aGlzLl9vdmVycmlkZXx8dGhpcy5fZHJvcEFjdGlvbiE9PWUpc3dpdGNoKGUpe2Nhc2Uibm9uZSI6dGhpcy5fZHJvcEFjdGlvbj1lLHRoaXMuX292ZXJyaWRlPXQub3ZlcnJpZGVDdXJzb3IoIm5vLWRyb3AiKTticmVhaztjYXNlImNvcHkiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJjb3B5Iik7YnJlYWs7Y2FzZSJsaW5rIjp0aGlzLl9kcm9wQWN0aW9uPWUsdGhpcy5fb3ZlcnJpZGU9dC5vdmVycmlkZUN1cnNvcigiYWxpYXMiKTticmVhaztjYXNlIm1vdmUiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJtb3ZlIil9fSx0LnByb3RvdHlwZS5fZmluYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVzb2x2ZTt0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl9kZXRhY2hEcmFnSW1hZ2UoKSx0aGlzLl9vdmVycmlkZSYmKHRoaXMuX292ZXJyaWRlLmRpc3Bvc2UoKSx0aGlzLl9vdmVycmlkZT1udWxsKSx0aGlzLm1pbWVEYXRhLmNsZWFyKCksdGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5fZHJvcEFjdGlvbj0ibm9uZSIsdGhpcy5fY3VycmVudFRhcmdldD1udWxsLHRoaXMuX2N1cnJlbnRFbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsVGFyZ2V0PW51bGwsdGhpcy5fcHJvbWlzZT1udWxsLHRoaXMuX3Jlc29sdmU9bnVsbCxlJiZlKHQpfSx0fSgpO2UuRHJhZz1vLGZ1bmN0aW9uKHQpe3Qub3ZlcnJpZGVDdXJzb3I9ZnVuY3Rpb24odCl7dmFyIG49KytlO3JldHVybiBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj10LGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgicC1tb2Qtb3ZlcnJpZGUtY3Vyc29yIiksbmV3IHIuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7bj09PWUmJihkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLW92ZXJyaWRlLWN1cnNvciIpKX0pfTt2YXIgZT0wfShvPWUuRHJhZ3x8KGUuRHJhZz17fSkpLGUuRHJhZz1vLGZ1bmN0aW9uKHQpe3QuU0NST0xMX0VER0VfU0laRT0yMCx0LnZhbGlkYXRlQWN0aW9uPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIGVbdF0mbltpXT90OiJub25lIn0sdC5jcmVhdGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO3JldHVybiBpLmluaXRNb3VzZUV2ZW50KHQsITAsITAsd2luZG93LDAsMCwwLGUsbiwhMSwhMSwhMSwhMSwwLG51bGwpLGl9LHQuZmluZFNjcm9sbFRhcmdldD1mdW5jdGlvbihlKXtmb3IodmFyIG49ZS5jbGllbnRYLGk9ZS5jbGllbnRZLHI9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChuLGkpO3I7cj1yLnBhcmVudEVsZW1lbnQpaWYoci5oYXNBdHRyaWJ1dGUoImRhdGEtcC1kcmFnc2Nyb2xsIikpe3ZhciBvPTAscz0wO3I9PT1kb2N1bWVudC5ib2R5JiYobz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQpO3ZhciBhPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1hLnRvcCtzLGM9YS5sZWZ0K28saD1jK2Eud2lkdGgsbD11K2EuaGVpZ2h0O2lmKCEobjxjfHxuPj1ofHxpPHV8fGk+PWwpKXt2YXIgZD1uLWMrMSxmPWktdSsxLHA9aC1uLG09bC1pLGc9TWF0aC5taW4oZCxmLHAsbSk7aWYoIShnPnQuU0NST0xMX0VER0VfU0laRSkpe3ZhciB2PXZvaWQgMDtzd2l0Y2goZyl7Y2FzZSBtOnY9ImJvdHRvbSI7YnJlYWs7Y2FzZSBmOnY9InRvcCI7YnJlYWs7Y2FzZSBwOnY9InJpZ2h0IjticmVhaztjYXNlIGQ6dj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dmFyIGI9ci5zY3JvbGxXaWR0aC1yLmNsaWVudFdpZHRoLHk9ci5zY3JvbGxIZWlnaHQtci5jbGllbnRIZWlnaHQsXz12b2lkIDA7c3dpdGNoKHYpe2Nhc2UidG9wIjpfPXk+MCYmci5zY3JvbGxUb3A+MDticmVhaztjYXNlImxlZnQiOl89Yj4wJiZyLnNjcm9sbExlZnQ+MDticmVhaztjYXNlInJpZ2h0IjpfPWI+MCYmci5zY3JvbGxMZWZ0PGI7YnJlYWs7Y2FzZSJib3R0b20iOl89eT4wJiZyLnNjcm9sbFRvcDx5O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWlmKF8pcmV0dXJue2VsZW1lbnQ6cixlZGdlOnYsZGlzdGFuY2U6Z319fX1yZXR1cm4gbnVsbH0sdC5kaXNwYXRjaERyYWdFbnRlcj1mdW5jdGlvbih0LGUsbixyKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgbz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pO3JldHVybiBlLmRpc3BhdGNoRXZlbnQobyk/ZT09PWRvY3VtZW50LmJvZHk/bjoobz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pLGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChvKSxkb2N1bWVudC5ib2R5KTplfSx0LmRpc3BhdGNoRHJhZ0V4aXQ9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnZXhpdCIsdCxyLG4pO2UuZGlzcGF0Y2hFdmVudChvKX19LHQuZGlzcGF0Y2hEcmFnTGVhdmU9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnbGVhdmUiLHQscixuKTtlLmRpc3BhdGNoRXZlbnQobyl9fSx0LmRpc3BhdGNoRHJhZ092ZXI9ZnVuY3Rpb24odCxlLG4pe2lmKCFlKXJldHVybiJub25lIjt2YXIgcj1pKCJwLWRyYWdvdmVyIix0LG4sbnVsbCk7cmV0dXJuIGUuZGlzcGF0Y2hFdmVudChyKT8ibm9uZSI6ci5kcm9wQWN0aW9ufSx0LmRpc3BhdGNoRHJvcD1mdW5jdGlvbih0LGUsbil7aWYoIWUpcmV0dXJuIm5vbmUiO3ZhciByPWkoInAtZHJvcCIsdCxuLG51bGwpO3JldHVybiBlLmRpc3BhdGNoRXZlbnQocik/Im5vbmUiOnIuZHJvcEFjdGlvbn07dmFyIGU9e25vbmU6MCxjb3B5OjEsbGluazoyLG1vdmU6NH0sbj17bm9uZTplLm5vbmUsY29weTplLmNvcHksbGluazplLmxpbmssbW92ZTplLm1vdmUsImNvcHktbGluayI6ZS5jb3B5fGUubGluaywiY29weS1tb3ZlIjplLmNvcHl8ZS5tb3ZlLCJsaW5rLW1vdmUiOmUubGlua3xlLm1vdmUsYWxsOmUuY29weXxlLmxpbmt8ZS5tb3ZlfTtmdW5jdGlvbiBpKHQsZSxuLGkpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7cmV0dXJuIHIuaW5pdE1vdXNlRXZlbnQodCwhMCwhMCx3aW5kb3csMCxuLnNjcmVlblgsbi5zY3JlZW5ZLG4uY2xpZW50WCxuLmNsaWVudFksbi5jdHJsS2V5LG4uYWx0S2V5LG4uc2hpZnRLZXksbi5tZXRhS2V5LG4uYnV0dG9uLGkpLHIuZHJvcEFjdGlvbj0ibm9uZSIsci5taW1lRGF0YT1lLm1pbWVEYXRhLHIucHJvcG9zZWRBY3Rpb249ZS5wcm9wb3NlZEFjdGlvbixyLnN1cHBvcnRlZEFjdGlvbnM9ZS5zdXBwb3J0ZWRBY3Rpb25zLHIuc291cmNlPWUuc291cmNlLHJ9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTj0iMS40LjAifSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMCkscj1uKDg0KSxvPW4oMSkuQnVmZmVyLHM9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBhKCl7ci5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1mdW5jdGlvbiBjKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKGUmbnx+ZSZpKStyK298MCxzKStlfDB9ZnVuY3Rpb24gaCh0LGUsbixpLHIsbyxzKXtyZXR1cm4gdSh0KyhlJml8biZ+aSkrcitvfDAscykrZXwwfWZ1bmN0aW9uIGwodCxlLG4saSxyLG8scyl7cmV0dXJuIHUodCsoZV5uXmkpK3Irb3wwLHMpK2V8MH1mdW5jdGlvbiBkKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKG5eKGV8fmkpKStyK298MCxzKStlfDB9aShhLHIpLGEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9cyxlPTA7ZTwxNjsrK2UpdFtlXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KmUpO3ZhciBuPXRoaXMuX2EsaT10aGlzLl9iLHI9dGhpcy5fYyxvPXRoaXMuX2Q7bj1jKG4saSxyLG8sdFswXSwzNjE0MDkwMzYwLDcpLG89YyhvLG4saSxyLHRbMV0sMzkwNTQwMjcxMCwxMikscj1jKHIsbyxuLGksdFsyXSw2MDYxMDU4MTksMTcpLGk9YyhpLHIsbyxuLHRbM10sMzI1MDQ0MTk2NiwyMiksbj1jKG4saSxyLG8sdFs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLG4saSxyLHRbNV0sMTIwMDA4MDQyNiwxMikscj1jKHIsbyxuLGksdFs2XSwyODIxNzM1OTU1LDE3KSxpPWMoaSxyLG8sbix0WzddLDQyNDkyNjEzMTMsMjIpLG49YyhuLGkscixvLHRbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxuLGkscix0WzldLDIzMzY1NTI4NzksMTIpLHI9YyhyLG8sbixpLHRbMTBdLDQyOTQ5MjUyMzMsMTcpLGk9YyhpLHIsbyxuLHRbMTFdLDIzMDQ1NjMxMzQsMjIpLG49YyhuLGkscixvLHRbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8sbixpLHIsdFsxM10sNDI1NDYyNjE5NSwxMikscj1jKHIsbyxuLGksdFsxNF0sMjc5Mjk2NTAwNiwxNyksbj1oKG4saT1jKGkscixvLG4sdFsxNV0sMTIzNjUzNTMyOSwyMikscixvLHRbMV0sNDEyOTE3MDc4Niw1KSxvPWgobyxuLGkscix0WzZdLDMyMjU0NjU2NjQsOSkscj1oKHIsbyxuLGksdFsxMV0sNjQzNzE3NzEzLDE0KSxpPWgoaSxyLG8sbix0WzBdLDM5MjEwNjk5OTQsMjApLG49aChuLGkscixvLHRbNV0sMzU5MzQwODYwNSw1KSxvPWgobyxuLGkscix0WzEwXSwzODAxNjA4Myw5KSxyPWgocixvLG4saSx0WzE1XSwzNjM0NDg4OTYxLDE0KSxpPWgoaSxyLG8sbix0WzRdLDM4ODk0Mjk0NDgsMjApLG49aChuLGkscixvLHRbOV0sNTY4NDQ2NDM4LDUpLG89aChvLG4saSxyLHRbMTRdLDMyNzUxNjM2MDYsOSkscj1oKHIsbyxuLGksdFszXSw0MTA3NjAzMzM1LDE0KSxpPWgoaSxyLG8sbix0WzhdLDExNjM1MzE1MDEsMjApLG49aChuLGkscixvLHRbMTNdLDI4NTAyODU4MjksNSksbz1oKG8sbixpLHIsdFsyXSw0MjQzNTYzNTEyLDkpLHI9aChyLG8sbixpLHRbN10sMTczNTMyODQ3MywxNCksbj1sKG4saT1oKGkscixvLG4sdFsxMl0sMjM2ODM1OTU2MiwyMCkscixvLHRbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxuLGkscix0WzhdLDIyNzIzOTI4MzMsMTEpLHI9bChyLG8sbixpLHRbMTFdLDE4MzkwMzA1NjIsMTYpLGk9bChpLHIsbyxuLHRbMTRdLDQyNTk2NTc3NDAsMjMpLG49bChuLGkscixvLHRbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxuLGkscix0WzRdLDEyNzI4OTMzNTMsMTEpLHI9bChyLG8sbixpLHRbN10sNDEzOTQ2OTY2NCwxNiksaT1sKGkscixvLG4sdFsxMF0sMzIwMDIzNjY1NiwyMyksbj1sKG4saSxyLG8sdFsxM10sNjgxMjc5MTc0LDQpLG89bChvLG4saSxyLHRbMF0sMzkzNjQzMDA3NCwxMSkscj1sKHIsbyxuLGksdFszXSwzNTcyNDQ1MzE3LDE2KSxpPWwoaSxyLG8sbix0WzZdLDc2MDI5MTg5LDIzKSxuPWwobixpLHIsbyx0WzldLDM2NTQ2MDI4MDksNCksbz1sKG8sbixpLHIsdFsxMl0sMzg3MzE1MTQ2MSwxMSkscj1sKHIsbyxuLGksdFsxNV0sNTMwNzQyNTIwLDE2KSxuPWQobixpPWwoaSxyLG8sbix0WzJdLDMyOTk2Mjg2NDUsMjMpLHIsbyx0WzBdLDQwOTYzMzY0NTIsNiksbz1kKG8sbixpLHIsdFs3XSwxMTI2ODkxNDE1LDEwKSxyPWQocixvLG4saSx0WzE0XSwyODc4NjEyMzkxLDE1KSxpPWQoaSxyLG8sbix0WzVdLDQyMzc1MzMyNDEsMjEpLG49ZChuLGkscixvLHRbMTJdLDE3MDA0ODU1NzEsNiksbz1kKG8sbixpLHIsdFszXSwyMzk5OTgwNjkwLDEwKSxyPWQocixvLG4saSx0WzEwXSw0MjkzOTE1NzczLDE1KSxpPWQoaSxyLG8sbix0WzFdLDIyNDAwNDQ0OTcsMjEpLG49ZChuLGkscixvLHRbOF0sMTg3MzMxMzM1OSw2KSxvPWQobyxuLGkscix0WzE1XSw0MjY0MzU1NTUyLDEwKSxyPWQocixvLG4saSx0WzZdLDI3MzQ3Njg5MTYsMTUpLGk9ZChpLHIsbyxuLHRbMTNdLDEzMDkxNTE2NDksMjEpLG49ZChuLGkscixvLHRbNF0sNDE0OTQ0NDIyNiw2KSxvPWQobyxuLGkscix0WzExXSwzMTc0NzU2OTE3LDEwKSxyPWQocixvLG4saSx0WzJdLDcxODc4NzI1OSwxNSksaT1kKGkscixvLG4sdFs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErbnwwLHRoaXMuX2I9dGhpcy5fYitpfDAsdGhpcy5fYz10aGlzLl9jK3J8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxhLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIHQ9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIHQud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksdC53cml0ZUludDMyTEUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLHR9LHQuZXhwb3J0cz1hfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPXI7dmFyIGk9big2MCkuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIHIoKXtpLmNhbGwodGhpcyl9bigwKShyLGkpLHIuUmVhZGFibGU9big2MSksci5Xcml0YWJsZT1uKDE1Myksci5EdXBsZXg9bigxNTQpLHIuVHJhbnNmb3JtPW4oMTU1KSxyLlBhc3NUaHJvdWdoPW4oMTU2KSxyLlN0cmVhbT1yLHIucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoZSl7dC53cml0YWJsZSYmITE9PT10LndyaXRlKGUpJiZuLnBhdXNlJiZuLnBhdXNlKCl9ZnVuY3Rpb24gbygpe24ucmVhZGFibGUmJm4ucmVzdW1lJiZuLnJlc3VtZSgpfW4ub24oImRhdGEiLHIpLHQub24oImRyYWluIixvKSx0Ll9pc1N0ZGlvfHxlJiYhMT09PWUuZW5kfHwobi5vbigiZW5kIixhKSxuLm9uKCJjbG9zZSIsdSkpO3ZhciBzPSExO2Z1bmN0aW9uIGEoKXtzfHwocz0hMCx0LmVuZCgpKX1mdW5jdGlvbiB1KCl7c3x8KHM9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVzdHJveSYmdC5kZXN0cm95KCkpfWZ1bmN0aW9uIGModCl7aWYoaCgpLDA9PT1pLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyB0fWZ1bmN0aW9uIGgoKXtuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixyKSx0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIixhKSxuLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksbi5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxuLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGgpLG4ucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixoKSx0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsaCl9cmV0dXJuIG4ub24oImVycm9yIixjKSx0Lm9uKCJlcnJvciIsYyksbi5vbigiZW5kIixoKSxuLm9uKCJjbG9zZSIsaCksdC5vbigiY2xvc2UiLGgpLHQuZW1pdCgicGlwZSIsbiksdH19LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuX2V2ZW50cz10aGlzLl9ldmVudHN8fHt9LHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH1mdW5jdGlvbiBpKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBvKHQpe3JldHVybiB2b2lkIDA9PT10fXQuZXhwb3J0cz1uLG4uRXZlbnRFbWl0dGVyPW4sbi5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsbi5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDAsbi5kZWZhdWx0TWF4TGlzdGVuZXJzPTEwLG4ucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8aXNOYU4odCkpdGhyb3cgVHlwZUVycm9yKCJuIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt2YXIgZSxuLHMsYSx1LGM7aWYodGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSwiZXJyb3IiPT09dCYmKCF0aGlzLl9ldmVudHMuZXJyb3J8fHIodGhpcy5fZXZlbnRzLmVycm9yKSYmIXRoaXMuX2V2ZW50cy5lcnJvci5sZW5ndGgpKXtpZigoZT1hcmd1bWVudHNbMV0paW5zdGFuY2VvZiBFcnJvcil0aHJvdyBlO3ZhciBoPW5ldyBFcnJvcignVW5jYXVnaHQsIHVuc3BlY2lmaWVkICJlcnJvciIgZXZlbnQuICgnK2UrIikiKTt0aHJvdyBoLmNvbnRleHQ9ZSxofWlmKG8obj10aGlzLl9ldmVudHNbdF0pKXJldHVybiExO2lmKGkobikpc3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTpuLmNhbGwodGhpcyk7YnJlYWs7Y2FzZSAyOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSk7YnJlYWs7Y2FzZSAzOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pO2JyZWFrO2RlZmF1bHQ6YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbi5hcHBseSh0aGlzLGEpfWVsc2UgaWYocihuKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscz0oYz1uLnNsaWNlKCkpLmxlbmd0aCx1PTA7dTxzO3UrKyljW3VdLmFwcGx5KHRoaXMsYSk7cmV0dXJuITB9LG4ucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHM7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4gdGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSx0aGlzLl9ldmVudHMubmV3TGlzdGVuZXImJnRoaXMuZW1pdCgibmV3TGlzdGVuZXIiLHQsaShlLmxpc3RlbmVyKT9lLmxpc3RlbmVyOmUpLHRoaXMuX2V2ZW50c1t0XT9yKHRoaXMuX2V2ZW50c1t0XSk/dGhpcy5fZXZlbnRzW3RdLnB1c2goZSk6dGhpcy5fZXZlbnRzW3RdPVt0aGlzLl9ldmVudHNbdF0sZV06dGhpcy5fZXZlbnRzW3RdPWUscih0aGlzLl9ldmVudHNbdF0pJiYhdGhpcy5fZXZlbnRzW3RdLndhcm5lZCYmKHM9byh0aGlzLl9tYXhMaXN0ZW5lcnMpP24uZGVmYXVsdE1heExpc3RlbmVyczp0aGlzLl9tYXhMaXN0ZW5lcnMpJiZzPjAmJnRoaXMuX2V2ZW50c1t0XS5sZW5ndGg+cyYmKHRoaXMuX2V2ZW50c1t0XS53YXJuZWQ9ITAsY29uc29sZS5lcnJvcigiKG5vZGUpIHdhcm5pbmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4iLHRoaXMuX2V2ZW50c1t0XS5sZW5ndGgpLCJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLnRyYWNlJiZjb25zb2xlLnRyYWNlKCkpLHRoaXN9LG4ucHJvdG90eXBlLm9uPW4ucHJvdG90eXBlLmFkZExpc3RlbmVyLG4ucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odCxlKXtpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBuPSExO2Z1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUxpc3RlbmVyKHQsciksbnx8KG49ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXJldHVybiByLmxpc3RlbmVyPWUsdGhpcy5vbih0LHIpLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxzLGE7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtpZighdGhpcy5fZXZlbnRzfHwhdGhpcy5fZXZlbnRzW3RdKXJldHVybiB0aGlzO2lmKHM9KG49dGhpcy5fZXZlbnRzW3RdKS5sZW5ndGgsbz0tMSxuPT09ZXx8aShuLmxpc3RlbmVyKSYmbi5saXN0ZW5lcj09PWUpZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsZSk7ZWxzZSBpZihyKG4pKXtmb3IoYT1zO2EtLSA+MDspaWYoblthXT09PWV8fG5bYV0ubGlzdGVuZXImJm5bYV0ubGlzdGVuZXI9PT1lKXtvPWE7YnJlYWt9aWYobzwwKXJldHVybiB0aGlzOzE9PT1uLmxlbmd0aD8obi5sZW5ndGg9MCxkZWxldGUgdGhpcy5fZXZlbnRzW3RdKTpuLnNwbGljZShvLDEpLHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxlKX1yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLG47aWYoIXRoaXMuX2V2ZW50cylyZXR1cm4gdGhpcztpZighdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9ldmVudHM9e306dGhpcy5fZXZlbnRzW3RdJiZkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe2ZvcihlIGluIHRoaXMuX2V2ZW50cykicmVtb3ZlTGlzdGVuZXIiIT09ZSYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoZSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz17fSx0aGlzfWlmKGkobj10aGlzLl9ldmVudHNbdF0pKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxuKTtlbHNlIGlmKG4pZm9yKDtuLmxlbmd0aDspdGhpcy5yZW1vdmVMaXN0ZW5lcih0LG5bbi5sZW5ndGgtMV0pO3JldHVybiBkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHNbdF0/aSh0aGlzLl9ldmVudHNbdF0pP1t0aGlzLl9ldmVudHNbdF1dOnRoaXMuX2V2ZW50c1t0XS5zbGljZSgpOltdfSxuLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2V2ZW50cyl7dmFyIGU9dGhpcy5fZXZlbnRzW3RdO2lmKGkoZSkpcmV0dXJuIDE7aWYoZSlyZXR1cm4gZS5sZW5ndGh9cmV0dXJuIDB9LG4ubGlzdGVuZXJDb3VudD1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxpc3RlbmVyQ291bnQoZSl9fSxmdW5jdGlvbih0LGUsbil7KGU9dC5leHBvcnRzPW4oODUpKS5TdHJlYW09ZSxlLlJlYWRhYmxlPWUsZS5Xcml0YWJsZT1uKDYyKSxlLkR1cGxleD1uKDI0KSxlLlRyYW5zZm9ybT1uKDg4KSxlLlBhc3NUaHJvdWdoPW4oMTUyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpLHIpe3ZhciBvPW4oNDMpO2Z1bmN0aW9uIHModCl7dmFyIGU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuZW50cnk7dC5lbnRyeT1udWxsO2Zvcig7aTspe3ZhciByPWkuY2FsbGJhY2s7ZS5wZW5kaW5nY2ItLSxyKG4pLGk9aS5uZXh0fWUuY29ya2VkUmVxdWVzdHNGcmVlP2UuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9dDplLmNvcmtlZFJlcXVlc3RzRnJlZT10fShlLHQpfX10LmV4cG9ydHM9Yjt2YXIgYSx1PSFlLmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YoZS52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP2k6by5uZXh0VGljaztiLldyaXRhYmxlU3RhdGU9djt2YXIgYz1uKDMyKTtjLmluaGVyaXRzPW4oMCk7dmFyIGg9e2RlcHJlY2F0ZTpuKDE1MSl9LGw9big4NiksZD1uKDEpLkJ1ZmZlcixmPXIuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBwLG09big4Nyk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KHQsZSl7YT1hfHxuKDI0KSx0PXR8fHt9O3ZhciBpPWUgaW5zdGFuY2VvZiBhO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLGM9dC53cml0YWJsZUhpZ2hXYXRlck1hcmssaD10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKGN8fDA9PT1jKT9jOmgsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PXQuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe3ZhciBuPXQuX3dyaXRhYmxlU3RhdGUsaT1uLnN5bmMscj1uLndyaXRlY2I7aWYoZnVuY3Rpb24odCl7dC53cml0aW5nPSExLHQud3JpdGVjYj1udWxsLHQubGVuZ3RoLT10LndyaXRlbGVuLHQud3JpdGVsZW49MH0obiksZSkhZnVuY3Rpb24odCxlLG4saSxyKXstLWUucGVuZGluZ2NiLG4/KG8ubmV4dFRpY2socixpKSxvLm5leHRUaWNrKFMsdCxlKSx0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx0LmVtaXQoImVycm9yIixpKSk6KHIoaSksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdC5lbWl0KCJlcnJvciIsaSksUyh0LGUpKX0odCxuLGksZSxyKTtlbHNle3ZhciBzPXgobik7c3x8bi5jb3JrZWR8fG4uYnVmZmVyUHJvY2Vzc2luZ3x8IW4uYnVmZmVyZWRSZXF1ZXN0fHx3KHQsbiksaT91KF8sdCxuLHMscik6Xyh0LG4scyxyKX19KGUsdCl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IHModGhpcyl9ZnVuY3Rpb24gYih0KXtpZihhPWF8fG4oMjQpLCEocC5jYWxsKGIsdGhpcyl8fHRoaXMgaW5zdGFuY2VvZiBhKSlyZXR1cm4gbmV3IGIodCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgdih0LHRoaXMpLHRoaXMud3JpdGFibGU9ITAsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LndyaXRlJiYodGhpcy5fd3JpdGU9dC53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIHQud3JpdGV2JiYodGhpcy5fd3JpdGV2PXQud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmZpbmFsJiYodGhpcy5fZmluYWw9dC5maW5hbCkpLGwuY2FsbCh0aGlzKX1mdW5jdGlvbiB5KHQsZSxuLGkscixvLHMpe2Uud3JpdGVsZW49aSxlLndyaXRlY2I9cyxlLndyaXRpbmc9ITAsZS5zeW5jPSEwLG4/dC5fd3JpdGV2KHIsZS5vbndyaXRlKTp0Ll93cml0ZShyLG8sZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gXyh0LGUsbixpKXtufHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0saSgpLFModCxlKX1mdW5jdGlvbiB3KHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciBuPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmbiYmbi5uZXh0KXt2YXIgaT1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LHI9bmV3IEFycmF5KGkpLG89ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1uO2Zvcih2YXIgYT0wLHU9ITA7bjspclthXT1uLG4uaXNCdWZ8fCh1PSExKSxuPW4ubmV4dCxhKz0xO3IuYWxsQnVmZmVycz11LHkodCxlLCEwLGUubGVuZ3RoLHIsIiIsby5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBzKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7bjspe3ZhciBjPW4uY2h1bmssaD1uLmVuY29kaW5nLGw9bi5jYWxsYmFjaztpZih5KHQsZSwhMSxlLm9iamVjdE1vZGU/MTpjLmxlbmd0aCxjLGgsbCksbj1uLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09biYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1uLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiB4KHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJiYhdC53cml0aW5nfWZ1bmN0aW9uIE0odCxlKXt0Ll9maW5hbChmdW5jdGlvbihuKXtlLnBlbmRpbmdjYi0tLG4mJnQuZW1pdCgiZXJyb3IiLG4pLGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSxTKHQsZSl9KX1mdW5jdGlvbiBTKHQsZSl7dmFyIG49eChlKTtyZXR1cm4gbiYmKCFmdW5jdGlvbih0LGUpe2UucHJlZmluaXNoZWR8fGUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iPT10eXBlb2YgdC5fZmluYWw/KGUucGVuZGluZ2NiKyssZS5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKE0sdCxlKSk6KGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSkpfSh0LGUpLDA9PT1lLnBlbmRpbmdjYiYmKGUuZmluaXNoZWQ9ITAsdC5lbWl0KCJmaW5pc2giKSkpLG59Yy5pbmhlcml0cyhiLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1ZmZlcmVkUmVxdWVzdCxlPVtdO3Q7KWUucHVzaCh0KSx0PXQubmV4dDtyZXR1cm4gZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6aC5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2godCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8ocD1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYixTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiEhcC5jYWxsKHRoaXMsdCl8fHRoaXM9PT1iJiYodCYmdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIHYpfX0pKTpwPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpc30sYi5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpKX0sYi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9dGhpcy5fd3JpdGFibGVTdGF0ZSxzPSExLGE9IXIub2JqZWN0TW9kZSYmKGk9dCxkLmlzQnVmZmVyKGkpfHxpIGluc3RhbmNlb2YgZik7cmV0dXJuIGEmJiFkLmlzQnVmZmVyKHQpJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZC5mcm9tKHQpfSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihuPWUsZT1udWxsKSxhP2U9ImJ1ZmZlciI6ZXx8KGU9ci5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1nKSxyLmVuZGVkP2Z1bmN0aW9uKHQsZSl7dmFyIG49bmV3IEVycm9yKCJ3cml0ZSBhZnRlciBlbmQiKTt0LmVtaXQoImVycm9yIixuKSxvLm5leHRUaWNrKGUsbil9KHRoaXMsbik6KGF8fGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPSEwLHM9ITE7cmV0dXJuIG51bGw9PT1uP3M9bmV3IFR5cGVFcnJvcigiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iKToic3RyaW5nIj09dHlwZW9mIG58fHZvaWQgMD09PW58fGUub2JqZWN0TW9kZXx8KHM9bmV3IFR5cGVFcnJvcigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpKSxzJiYodC5lbWl0KCJlcnJvciIscyksby5uZXh0VGljayhpLHMpLHI9ITEpLHJ9KHRoaXMscix0LG4pKSYmKHIucGVuZGluZ2NiKysscz1mdW5jdGlvbih0LGUsbixpLHIsbyl7aWYoIW4pe3ZhciBzPWZ1bmN0aW9uKHQsZSxuKXt0Lm9iamVjdE1vZGV8fCExPT09dC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGV8fChlPWQuZnJvbShlLG4pKTtyZXR1cm4gZX0oZSxpLHIpO2khPT1zJiYobj0hMCxyPSJidWZmZXIiLGk9cyl9dmFyIGE9ZS5vYmplY3RNb2RlPzE6aS5sZW5ndGg7ZS5sZW5ndGgrPWE7dmFyIHU9ZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrO3V8fChlLm5lZWREcmFpbj0hMCk7aWYoZS53cml0aW5nfHxlLmNvcmtlZCl7dmFyIGM9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O2UubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6aSxlbmNvZGluZzpyLGlzQnVmOm4sY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDplLmJ1ZmZlcmVkUmVxdWVzdD1lLmxhc3RCdWZmZXJlZFJlcXVlc3QsZS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIHkodCxlLCExLGEsaSxyLG8pO3JldHVybiB1fSh0aGlzLHIsYSx0LGUsbikpLHN9LGIucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxiLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93cml0YWJsZVN0YXRlO3QuY29ya2VkJiYodC5jb3JrZWQtLSx0LndyaXRpbmd8fHQuY29ya2VkfHx0LmZpbmlzaGVkfHx0LmJ1ZmZlclByb2Nlc3Npbmd8fCF0LmJ1ZmZlcmVkUmVxdWVzdHx8dyh0aGlzLHQpKX0sYi5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKCh0KyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9dCx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxiLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe24obmV3IEVycm9yKCJfd3JpdGUoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LGIucHJvdG90eXBlLl93cml0ZXY9bnVsbCxiLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGU7ImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx0PW51bGwsZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLG51bGwhPXQmJnRoaXMud3JpdGUodCxlKSxpLmNvcmtlZCYmKGkuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksaS5lbmRpbmd8fGkuZmluaXNoZWR8fGZ1bmN0aW9uKHQsZSxuKXtlLmVuZGluZz0hMCxTKHQsZSksbiYmKGUuZmluaXNoZWQ/by5uZXh0VGljayhuKTp0Lm9uY2UoImZpbmlzaCIsbikpO2UuZW5kZWQ9ITAsdC53cml0YWJsZT0hMX0odGhpcyxpLG4pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD10KX19KSxiLnByb3RvdHlwZS5kZXN0cm95PW0uZGVzdHJveSxiLnByb3RvdHlwZS5fdW5kZXN0cm95PW0udW5kZXN0cm95LGIucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dGhpcy5lbmQoKSxlKHQpfX0pLmNhbGwodGhpcyxuKDIwKSxuKDQ0KS5zZXRJbW1lZGlhdGUsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXtzd2l0Y2goKHQ9IiIrdCkmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBvKHQpe3ZhciBlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiJ1dGY4Ijtmb3IodmFyIGU7Oylzd2l0Y2godCl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGU9ITB9fSh0KTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihpLmlzRW5jb2Rpbmc9PT1yfHwhcih0KSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3JldHVybiBlfHx0fSh0KSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1hLGU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWgsdGhpcy5lbmQ9bCxlPTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1kLHZvaWQodGhpcy5lbmQ9Zil9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1pLmFsbG9jVW5zYWZlKGUpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQ8PTEyNz8wOnQ+PjU9PTY/Mjp0Pj40PT0xND8zOnQ+PjM9PTMwPzQ6dD4+Nj09Mj8tMTotMn1mdW5jdGlvbiBhKHQpe3ZhciBlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsbj1mdW5jdGlvbih0LGUsbil7aWYoMTI4IT0oMTkyJmVbMF0pKXJldHVybiB0Lmxhc3ROZWVkPTAsIu+/vSI7aWYodC5sYXN0TmVlZD4xJiZlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZVsxXSkpcmV0dXJuIHQubGFzdE5lZWQ9MSwi77+9IjtpZih0Lmxhc3ROZWVkPjImJmUubGVuZ3RoPjImJjEyOCE9KDE5MiZlWzJdKSlyZXR1cm4gdC5sYXN0TmVlZD0yLCLvv70ifX0odGhpcyx0KTtyZXR1cm4gdm9pZCAwIT09bj9uOnRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoPyh0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToodC5jb3B5KHRoaXMubGFzdENoYXIsZSwwLHQubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXQubGVuZ3RoKSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT0wKXt2YXIgbj10LnRvU3RyaW5nKCJ1dGYxNmxlIixlKTtpZihuKXt2YXIgaT1uLmNoYXJDb2RlQXQobi5sZW5ndGgtMSk7aWYoaT49NTUyOTYmJmk8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdLG4uc2xpY2UoMCwtMSl9cmV0dXJuIG59cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXSx0LnRvU3RyaW5nKCJ1dGYxNmxlIixlLHQubGVuZ3RoLTEpfWZ1bmN0aW9uIGModCl7dmFyIGU9dCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgbj10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAsbil9cmV0dXJuIGV9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuPSh0Lmxlbmd0aC1lKSUzO3JldHVybiAwPT09bj90LnRvU3RyaW5nKCJiYXNlNjQiLGUpOih0aGlzLmxhc3ROZWVkPTMtbix0aGlzLmxhc3RUb3RhbD0zLDE9PT1uP3RoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXSksdC50b1N0cmluZygiYmFzZTY0IixlLHQubGVuZ3RoLW4pKX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTplfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIn1lLlN0cmluZ0RlY29kZXI9byxvLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIiI7dmFyIGUsbjtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZT10aGlzLmZpbGxMYXN0KHQpKSlyZXR1cm4iIjtuPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2Ugbj0wO3JldHVybiBuPHQubGVuZ3RoP2U/ZSt0aGlzLnRleHQodCxuKTp0aGlzLnRleHQodCxuKTplfHwiIn0sby5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSsi77+9IjplfSxvLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWUubGVuZ3RoLTE7aWYoaTxuKXJldHVybiAwO3ZhciByPXMoZVtpXSk7aWYocj49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTEpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTIpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYoMj09PXI/cj0wOnQubGFzdE5lZWQ9ci0zKSxyO3JldHVybiAwfSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoInV0ZjgiLGUpO3RoaXMubGFzdFRvdGFsPW47dmFyIGk9dC5sZW5ndGgtKG4tdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLDAsaSksdC50b1N0cmluZygidXRmOCIsZSxpKX0sby5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpcmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7dC5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHQubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT10Lmxlbmd0aH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0KS5CdWZmZXIscj1uKDApLG89big4NCkscz1uZXcgQXJyYXkoMTYpLGE9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sdT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxjPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxoPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxsPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLGQ9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gZigpe28uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWZ1bmN0aW9uIG0odCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXm5eaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGcodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJm58fmUmaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHYodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KygoZXx+bileaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGIodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJml8biZ+aSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHkodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXihufH5pKSkrbytzfDAsYSkrcnwwfXIoZixvKSxmLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMsZT0wO2U8MTY7KytlKXRbZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCplKTtmb3IodmFyIG49MHx0aGlzLl9hLGk9MHx0aGlzLl9iLHI9MHx0aGlzLl9jLG89MHx0aGlzLl9kLGY9MHx0aGlzLl9lLF89MHx0aGlzLl9hLHc9MHx0aGlzLl9iLHg9MHx0aGlzLl9jLE09MHx0aGlzLl9kLFM9MHx0aGlzLl9lLEU9MDtFPDgwO0UrPTEpe3ZhciBBLEM7RTwxNj8oQT1tKG4saSxyLG8sZix0W2FbRV1dLGxbMF0sY1tFXSksQz15KF8sdyx4LE0sUyx0W3VbRV1dLGRbMF0saFtFXSkpOkU8MzI/KEE9ZyhuLGkscixvLGYsdFthW0VdXSxsWzFdLGNbRV0pLEM9YihfLHcseCxNLFMsdFt1W0VdXSxkWzFdLGhbRV0pKTpFPDQ4PyhBPXYobixpLHIsbyxmLHRbYVtFXV0sbFsyXSxjW0VdKSxDPXYoXyx3LHgsTSxTLHRbdVtFXV0sZFsyXSxoW0VdKSk6RTw2ND8oQT1iKG4saSxyLG8sZix0W2FbRV1dLGxbM10sY1tFXSksQz1nKF8sdyx4LE0sUyx0W3VbRV1dLGRbM10saFtFXSkpOihBPXkobixpLHIsbyxmLHRbYVtFXV0sbFs0XSxjW0VdKSxDPW0oXyx3LHgsTSxTLHRbdVtFXV0sZFs0XSxoW0VdKSksbj1mLGY9byxvPXAociwxMCkscj1pLGk9QSxfPVMsUz1NLE09cCh4LDEwKSx4PXcsdz1DfXZhciBrPXRoaXMuX2IrcitNfDA7dGhpcy5fYj10aGlzLl9jK28rU3wwLHRoaXMuX2M9dGhpcy5fZCtmK198MCx0aGlzLl9kPXRoaXMuX2Urbit3fDAsdGhpcy5fZT10aGlzLl9hK2kreHwwLHRoaXMuX2E9a30sZi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciB0PWkuYWxsb2M/aS5hbGxvYygyMCk6bmV3IGkoMjApO3JldHVybiB0LndyaXRlSW50MzJMRSh0aGlzLl9hLDApLHQud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksdC53cml0ZUludDMyTEUodGhpcy5fYyw4KSx0LndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSx0fSx0LmV4cG9ydHM9Zn0sZnVuY3Rpb24odCxlLG4peyhlPXQuZXhwb3J0cz1mdW5jdGlvbih0KXt0PXQudG9Mb3dlckNhc2UoKTt2YXIgbj1lW3RdO2lmKCFuKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBufSkuc2hhPW4oMTU3KSxlLnNoYTE9bigxNTgpLGUuc2hhMjI0PW4oMTU5KSxlLnNoYTI1Nj1uKDg5KSxlLnNoYTM4ND1uKDE2MCksZS5zaGE1MTI9big5MCl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS51dGlscz1uKDE2NiksZS5DaXBoZXI9bigxNjcpLGUuREVTPW4oMTY4KSxlLkNCQz1uKDE2OSksZS5FREU9bigxNzApfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNzEpLHI9bigxNzkpLG89bigxMDApO2UuY3JlYXRlQ2lwaGVyPWUuQ2lwaGVyPWkuY3JlYXRlQ2lwaGVyLGUuY3JlYXRlQ2lwaGVyaXY9ZS5DaXBoZXJpdj1pLmNyZWF0ZUNpcGhlcml2LGUuY3JlYXRlRGVjaXBoZXI9ZS5EZWNpcGhlcj1yLmNyZWF0ZURlY2lwaGVyLGUuY3JlYXRlRGVjaXBoZXJpdj1lLkRlY2lwaGVyaXY9ci5jcmVhdGVEZWNpcGhlcml2LGUubGlzdENpcGhlcnM9ZS5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPXtFQ0I6bigxNzIpLENCQzpuKDE3MyksQ0ZCOm4oMTc0KSxDRkI4Om4oMTc1KSxDRkIxOm4oMTc2KSxPRkI6bigxNzcpLENUUjpuKDk4KSxHQ006big5OCl9LHI9bigxMDApO2Zvcih2YXIgbyBpbiByKXJbb10ubW9kdWxlPWlbcltvXS5tb2RlXTt0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigyNyk7ZnVuY3Rpb24gbyh0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlPXModCk7cmV0dXJue2JsaW5kZXI6ZS50b1JlZChpLm1vbnQodC5tb2R1bHVzKSkucmVkUG93KG5ldyBpKHQucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCksdW5ibGluZGVyOmUuaW52bSh0Lm1vZHVsdXMpfX0obiksbz1uLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGE9KGkubW9udChuLm1vZHVsdXMpLG5ldyBpKHQpLm11bChyLmJsaW5kZXIpLnVtb2Qobi5tb2R1bHVzKSksdT1hLnRvUmVkKGkubW9udChuLnByaW1lMSkpLGM9YS50b1JlZChpLm1vbnQobi5wcmltZTIpKSxoPW4uY29lZmZpY2llbnQsbD1uLnByaW1lMSxkPW4ucHJpbWUyLGY9dS5yZWRQb3cobi5leHBvbmVudDEpLHA9Yy5yZWRQb3cobi5leHBvbmVudDIpO2Y9Zi5mcm9tUmVkKCkscD1wLmZyb21SZWQoKTt2YXIgbT1mLmlzdWIocCkuaW11bChoKS51bW9kKGwpO3JldHVybiBtLmltdWwoZCkscC5pYWRkKG0pLG5ldyBlKHAuaW11bChyLnVuYmxpbmRlcikudW1vZChuLm1vZHVsdXMpLnRvQXJyYXkoITEsbykpfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksbj1uZXcgaShyKGUpKTtuLmNtcCh0Lm1vZHVsdXMpPj0wfHwhbi51bW9kKHQucHJpbWUxKXx8IW4udW1vZCh0LnByaW1lMik7KW49bmV3IGkocihlKSk7cmV0dXJuIG59dC5leHBvcnRzPW8sby5nZXRyPXN9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLnV0aWxzPW4oMTcpLGkuY29tbW9uPW4oMzQpLGkuc2hhPW4oMTk1KSxpLnJpcGVtZD1uKDE5OSksaS5obWFjPW4oMjAwKSxpLnNoYTE9aS5zaGEuc2hhMSxpLnNoYTI1Nj1pLnNoYS5zaGEyNTYsaS5zaGEyMjQ9aS5zaGEuc2hhMjI0LGkuc2hhMzg0PWkuc2hhLnNoYTM4NCxpLnNoYTUxMj1pLnNoYS5zaGE1MTIsaS5yaXBlbWQxNjA9aS5yaXBlbWQucmlwZW1kMTYwfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIk1hcCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxOSkuU3ltYm9sO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3ZhciBuPUFycmF5LmlzQXJyYXk7dC5leHBvcnRzPW59LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT049IjEuMS4wIixlLlBST1RPQ09MX1ZFUlNJT049IjIuMC4wIn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMjUpLGE9bigzMDApLHU9bigxMjkpLGM9bigxNSksaD1uKDMwMSksbD1uKDM5KSxkPW4oNSksZj1uKDc0KTtmdW5jdGlvbiBwKHQsZSl7dmFyIG47cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/KG49W10sdC5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7bi5wdXNoKHAodCxlKSl9KSxQcm9taXNlLmFsbChuKSk6dCBpbnN0YW5jZW9mIE9iamVjdD8obj17fSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGkpe25baV09cCh0W2ldLGUpfSkscy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pKToic3RyaW5nIj09dHlwZW9mIHQmJiJJUFlfTU9ERUxfIj09PXQuc2xpY2UoMCwxMCk/ZS5nZXRfbW9kZWwodC5zbGljZSgxMCx0Lmxlbmd0aCkpOlByb21pc2UucmVzb2x2ZSh0KX1lLnVucGFja19tb2RlbHM9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJue19tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX21vZGVsX25hbWU6IldpZGdldE1vZGVsIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246Zi5KVVBZVEVSX1dJREdFVFNfVkVSU0lPTixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX3ZpZXdfbmFtZTpudWxsLF92aWV3X21vZHVsZV92ZXJzaW9uOmYuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT04sX3ZpZXdfY291bnQ6bnVsbH19LGUucHJvdG90eXBlLmlzTmV3PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pLHRoaXMud2lkZ2V0X21hbmFnZXI9bi53aWRnZXRfbWFuYWdlcix0aGlzLm1vZGVsX2lkPW4ubW9kZWxfaWQ7dmFyIGk9bi5jb21tO3RoaXMudmlld3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLnN0YXRlX2NoYW5nZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5fc3RhdGVfbG9jaz1udWxsLHRoaXMuX21zZ19idWZmZXI9bnVsbCx0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1udWxsLHRoaXMuX3BlbmRpbmdfbXNncz0wLHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmY9e30saT8odGhpcy5jb21tPWksaS5vbl9jbG9zZSh0aGlzLl9oYW5kbGVfY29tbV9jbG9zZWQuYmluZCh0aGlzKSksaS5vbl9tc2codGhpcy5faGFuZGxlX2NvbW1fbXNnLmJpbmQodGhpcykpLHRoaXMuY29tbV9saXZlPSEwKTp0aGlzLmNvbW1fbGl2ZT0hMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb21tX2xpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbV9saXZlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fY29tbV9saXZlPXQsdGhpcy50cmlnZ2VyKCJjb21tX2xpdmVfdXBkYXRlIil9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwIT09dGhpcy5jb21tKXt2YXIgaT17bWV0aG9kOiJjdXN0b20iLGNvbnRlbnQ6dH07dGhpcy5jb21tLnNlbmQoaSxlLHt9LG4pfX0sZS5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD0hMSksIXRoaXMuX2Nsb3NlZCl7dGhpcy5fY2xvc2VkPSEwLHRoaXMuY29tbSYmIXQmJnRoaXMuY29tbS5jbG9zZSgpLHRoaXMuc3RvcExpc3RlbmluZygpLHRoaXMudHJpZ2dlcigiZGVzdHJveSIsdGhpcyksdGhpcy5jb21tJiZkZWxldGUgdGhpcy5jb21tO3ZhciBuPU9iamVjdC5rZXlzKHRoaXMudmlld3MpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS52aWV3c1t0XS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbW92ZSgpfSl9KTtyZXR1cm4gZGVsZXRlIHRoaXMudmlld3MsUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbigpe30pfX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX2Nsb3NlZD1mdW5jdGlvbih0KXt0aGlzLnRyaWdnZXIoImNvbW06Y2xvc2UiKSx0aGlzLmNsb3NlKCEwKX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX21zZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3N3aXRjaCh0LmNvbnRlbnQuZGF0YS5tZXRob2Qpe2Nhc2UidXBkYXRlIjpyZXR1cm4gdGhpcy5zdGF0ZV9jaGFuZ2U9dGhpcy5zdGF0ZV9jaGFuZ2UudGhlbihmdW5jdGlvbigpe3ZhciBuPXQuY29udGVudC5kYXRhLnN0YXRlLGk9dC5jb250ZW50LmRhdGEuYnVmZmVyX3BhdGhzfHxbXSxyPSh0LmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhuLGksciksZS5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUobixlLndpZGdldF9tYW5hZ2VyKX0pLnRoZW4oZnVuY3Rpb24odCl7ZS5zZXRfc3RhdGUodCl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IHByb2Nlc3MgdXBkYXRlIG1zZyBmb3IgbW9kZWwgaWQ6ICIrdGhpcy5tb2RlbF9pZCwhMCkpLHRoaXMuc3RhdGVfY2hhbmdlO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdGhpcy50cmlnZ2VyKCJtc2c6Y3VzdG9tIix0LmNvbnRlbnQuZGF0YS5jb250ZW50LHQuYnVmZmVycyksUHJvbWlzZS5yZXNvbHZlKCl9fSxlLnByb3RvdHlwZS5zZXRfc3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5fc3RhdGVfbG9jaz10O3RyeXt0aGlzLnNldCh0KX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJFcnJvciBzZXR0aW5nIHN0YXRlOiAiK3QubWVzc2FnZSl9ZmluYWxseXt0aGlzLl9zdGF0ZV9sb2NrPW51bGx9fSxlLnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdHRyaWJ1dGVzO2lmKHQpe3ZhciBuPXRoaXMuZGVmYXVsdHMsaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmNhbGwodGhpcyk6bixyPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MuaXNFcXVhbChlW3RdLGlbdF0pfHwoclt0XT1lW3RdKX0pLHJ9cmV0dXJuIG8oe30sZSl9LGUucHJvdG90eXBlLl9oYW5kbGVfc3RhdHVzPWZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXRoaXMuY29tbSYmImlkbGUiPT09dC5jb250ZW50LmV4ZWN1dGlvbl9zdGF0ZSYmKHRoaXMuX3BlbmRpbmdfbXNncy0tLG51bGwhPT10aGlzLl9tc2dfYnVmZmVyJiZ0aGlzLl9wZW5kaW5nX21zZ3M8MSYmKHRoaXMuc2VuZF9zeW5jX21lc3NhZ2UodGhpcy5fbXNnX2J1ZmZlcix0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcyksdGhpcy5fbXNnX2J1ZmZlcj1udWxsLHRoaXMuX21zZ19idWZmZXJfY2FsbGJhY2tzPW51bGwpKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndpZGdldF9tYW5hZ2VyLmNhbGxiYWNrcyh0KX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1hLnNldC5jYWxsKHRoaXMsdCxlLG4pO2lmKHZvaWQgMCE9PXRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYpe3ZhciByPXRoaXMuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e307aWYodGhpcy5fc3RhdGVfbG9jaylmb3IodmFyIG89MCx1PU9iamVjdC5rZXlzKHRoaXMuX3N0YXRlX2xvY2spO288dS5sZW5ndGg7bysrKXt2YXIgYz11W29dO3JbY109PT10aGlzLl9zdGF0ZV9sb2NrW2NdJiZkZWxldGUgcltjXX10aGlzLl9idWZmZXJlZF9zdGF0ZV9kaWZmPXMuYXNzaWduKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYscil9cmV0dXJuIGl9LGUucHJvdG90eXBlLnN5bmM9ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSx2b2lkIDA9PT10aGlzLmNvbW0pdGhyb3ciU3luY2luZyBlcnJvcjogbm8gY29tbSBjaGFubmVsIGRlZmluZWQiO3ZhciBpPSJwYXRjaCI9PT10P24uYXR0cnM6ZS5nZXRfc3RhdGUobi5kcm9wX2RlZmF1bHRzKTtpZih0aGlzLl9zdGF0ZV9sb2NrKWZvcih2YXIgcj0wLG89T2JqZWN0LmtleXModGhpcy5fc3RhdGVfbG9jayk7cjxvLmxlbmd0aDtyKyspe3ZhciBhPW9bcl07aVthXT09PXRoaXMuX3N0YXRlX2xvY2tbYV0mJmRlbGV0ZSBpW2FdfXZhciB1PXRoaXMuc2VyaWFsaXplKGkpO2lmKE9iamVjdC5rZXlzKHUpLmxlbmd0aD4wKXt2YXIgYz1uLmNhbGxiYWNrc3x8dGhpcy5jYWxsYmFja3MoKTtpZih0aGlzLl9wZW5kaW5nX21zZ3M+PTEpe3N3aXRjaCh0KXtjYXNlInBhdGNoIjp0aGlzLl9tc2dfYnVmZmVyPXMuYXNzaWduKHRoaXMuX21zZ19idWZmZXJ8fHt9LHUpO2JyZWFrO2Nhc2UidXBkYXRlIjpjYXNlImNyZWF0ZSI6dGhpcy5fbXNnX2J1ZmZlcj11O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWNvZ25pemVkIHN5bmNpbmcgbWV0aG9kIn10aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1jfWVsc2UgdGhpcy5zZW5kX3N5bmNfbWVzc2FnZShpLGMpfX0sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmNvbnN0cnVjdG9yLnNlcmlhbGl6ZXJzfHx7fSxuPTAsaT1PYmplY3Qua2V5cyh0KTtuPGkubGVuZ3RoO24rKyl7dmFyIHI9aVtuXTt0cnl7ZVtyXSYmZVtyXS5zZXJpYWxpemU/dFtyXT1lW3JdLnNlcmlhbGl6ZSh0W3JdLHRoaXMpOnRbcl09SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0W3JdKSksdFtyXSYmdFtyXS50b0pTT04mJih0W3JdPXRbcl0udG9KU09OKCkpfWNhdGNoKHQpe3Rocm93IGNvbnNvbGUuZXJyb3IoIkVycm9yIHNlcmlhbGl6aW5nIHdpZGdldCBzdGF0ZSBhdHRyaWJ1dGU6ICIsciksdH19cmV0dXJuIHR9LGUucHJvdG90eXBlLnNlbmRfc3luY19tZXNzYWdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt2b2lkIDA9PT1lJiYoZT17fSk7dHJ5e2UuaW9wdWI9ZS5pb3B1Ynx8e307dmFyIGk9ZS5pb3B1Yi5zdGF0dXM7ZS5pb3B1Yi5zdGF0dXM9ZnVuY3Rpb24odCl7bi5faGFuZGxlX3N0YXR1cyh0KSxpJiZpKHQpfTt2YXIgcj1zLnJlbW92ZV9idWZmZXJzKHQpO3RoaXMuY29tbS5zZW5kKHttZXRob2Q6InVwZGF0ZSIsc3RhdGU6ci5zdGF0ZSxidWZmZXJfcGF0aHM6ci5idWZmZXJfcGF0aHN9LGUse30sci5idWZmZXJzKSx0aGlzLl9wZW5kaW5nX21zZ3MrK31jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJDb3VsZCBub3Qgc2VuZCB3aWRnZXQgc3luYyBtZXNzYWdlIix0KX19LGUucHJvdG90eXBlLnNhdmVfY2hhbmdlcz1mdW5jdGlvbih0KXtpZih0aGlzLmNvbW1fbGl2ZSl7dmFyIGU9e3BhdGNoOiEwfTt0JiYoZS5jYWxsYmFja3M9dCksdGhpcy5zYXZlKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYsZSksdGhpcy5fYnVmZmVyZWRfc3RhdGVfZGlmZj17fX19LGUucHJvdG90eXBlLm9uX3NvbWVfY2hhbmdlPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dC5zb21lKHRoaXMuaGFzQ2hhbmdlZCx0aGlzKSYmZS5hcHBseShuLGFyZ3VtZW50cyl9LHRoaXMpfSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24odCl7cmV0dXJuIklQWV9NT0RFTF8iK3RoaXMubW9kZWxfaWR9LGUuX2Rlc2VyaWFsaXplX3N0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLnNlcmlhbGl6ZXJzO2lmKGkpZm9yKHZhciByIGluIG49e30sdClpW3JdJiZpW3JdLmRlc2VyaWFsaXplP25bcl09aVtyXS5kZXNlcmlhbGl6ZSh0W3JdLGUpOm5bcl09dFtyXTtlbHNlIG49dDtyZXR1cm4gcy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pfSxlfSh1Lk1vZGVsKTtlLldpZGdldE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfZG9tX2NsYXNzZXM6W119KX0sZS5zZXJpYWxpemVycz1vKHt9LG0uc2VyaWFsaXplcnMse2xheW91dDp7ZGVzZXJpYWxpemU6cH0sc3R5bGU6e2Rlc2VyaWFsaXplOnB9fSksZX0obSk7ZS5ET01XaWRnZXRNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuY2FsbCh0aGlzLGUpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlIixmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5rZXlzKGUubW9kZWwuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e30pOyJfdmlld19jb3VudCI9PT10WzBdJiYxPT09dC5sZW5ndGh8fGUudXBkYXRlKCl9KSx0aGlzLm9wdGlvbnM9dC5vcHRpb25zLHRoaXMub25jZSgicmVtb3ZlIixmdW5jdGlvbigpeyJudW1iZXIiPT10eXBlb2YgZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikmJihlLm1vZGVsLnNldCgiX3ZpZXdfY291bnQiLGUubW9kZWwuZ2V0KCJfdmlld19jb3VudCIpLTEpLGUubW9kZWwuc2F2ZV9jaGFuZ2VzKCkpfSksdGhpcy5vbmNlKCJkaXNwbGF5ZWQiLGZ1bmN0aW9uKCl7Im51bWJlciI9PXR5cGVvZiBlLm1vZGVsLmdldCgiX3ZpZXdfY291bnQiKSYmKGUubW9kZWwuc2V0KCJfdmlld19jb3VudCIsZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikrMSksZS5tb2RlbC5zYXZlX2NoYW5nZXMoKSl9KSx0aGlzLmRpc3BsYXllZD1uZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uub25jZSgiZGlzcGxheWVkIix0KX0pfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmNyZWF0ZV9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3JldHVybiBlPW8oe3BhcmVudDp0aGlzfSxlKSx0aGlzLm1vZGVsLndpZGdldF9tYW5hZ2VyLmNyZWF0ZV92aWV3KHQsZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgY2hpbGQgdmlldyIsITApKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuY2FsbGJhY2tzKHRoaXMpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbC5zZW5kKHQsdGhpcy5jYWxsYmFja3MoKSxlKX0sZS5wcm90b3R5cGUudG91Y2g9ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnNhdmVfY2hhbmdlcyh0aGlzLmNhbGxiYWNrcygpKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpLHRoaXMudHJpZ2dlcigicmVtb3ZlIiksdGhpc30sZX0oaC5OYXRpdmVWaWV3KTtlLldpZGdldFZpZXc9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlfShsLldpZGdldCk7ZS5KdXB5dGVyUGhvc3Bob3JXaWRnZXQ9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfZG9tX2NsYXNzZXMiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5wcmV2aW91cygiX2RvbV9jbGFzc2VzIik7bi51cGRhdGVfY2xhc3NlcyhpLGUpfSksdGhpcy5sYXlvdXRQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmxheW91dCIsZnVuY3Rpb24odCxlKXtuLnNldExheW91dChlLHQucHJldmlvdXMoImxheW91dCIpKX0pLHRoaXMuc3R5bGVQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOnN0eWxlIixmdW5jdGlvbih0LGUpe24uc2V0U3R5bGUoZSx0LnByZXZpb3VzKCJzdHlsZSIpKX0pLHRoaXMuZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtuLnVwZGF0ZV9jbGFzc2VzKFtdLG4ubW9kZWwuZ2V0KCJfZG9tX2NsYXNzZXMiKSksbi5zZXRMYXlvdXQobi5tb2RlbC5nZXQoImxheW91dCIpKSxuLnNldFN0eWxlKG4ubW9kZWwuZ2V0KCJzdHlsZSIpKX0pLHRoaXMuX2NvbW1fbGl2ZV91cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNvbW1fbGl2ZV91cGRhdGUiLGZ1bmN0aW9uKCl7bi5fY29tbV9saXZlX3VwZGF0ZSgpfSl9LGUucHJvdG90eXBlLnNldExheW91dD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dCYmKHRoaXMubGF5b3V0UHJvbWlzZT10aGlzLmxheW91dFByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5sYXlvdXQoKSxuLnN0b3BMaXN0ZW5pbmcoZS5tb2RlbCksZS5yZW1vdmUoKSksbi5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudHJpZ2dlcigiZGlzcGxheWVkIiksbi5saXN0ZW5Ubyh0Lm1vZGVsLCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZShuLnBXaWRnZXQsbC5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KSxkLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKG4ucFdpZGdldCxsLldpZGdldC5SZXNpemVNZXNzYWdlLlVua25vd25TaXplKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBMYXlvdXRWaWV3IHRvIERPTVdpZGdldFZpZXciLCEwKSl9KSl9LGUucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0JiYodGhpcy5zdHlsZVByb21pc2U9dGhpcy5zdHlsZVByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5zdHlsZSgpLG4uc3RvcExpc3RlbmluZyhlLm1vZGVsKSxlLnJlbW92ZSgpKSxuLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG4uZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC50cmlnZ2VyKCJkaXNwbGF5ZWQiKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBzdHlsZVZpZXcgdG8gRE9NV2lkZ2V0VmlldyIsITApKX0pKX0sZS5wcm90b3R5cGUudXBkYXRlX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPXRoaXMuZWwpLHMuZGlmZmVyZW5jZSh0LGUpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5yZW1vdmUodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5yZXBsYWNlKHQsIiIpKX0pLHMuZGlmZmVyZW5jZShlLHQpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5hZGQodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5jb25jYXQoIiAiLHQpKX0pfSxlLnByb3RvdHlwZS51cGRhdGVfbWFwcGVkX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMubW9kZWwucHJldmlvdXMoZSkscj10W2ldP3RbaV06W10sbz10W2k9dGhpcy5tb2RlbC5nZXQoZSldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhyLG8sbnx8dGhpcy5lbCl9LGUucHJvdG90eXBlLnNldF9tYXBwZWRfY2xhc3Nlcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5tb2RlbC5nZXQoZSkscj10W2ldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhbXSxyLG58fHRoaXMuZWwpfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdGhpcy4kZWw9dCBpbnN0YW5jZW9mIGM/dDpjKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF0sdGhpcy5wV2lkZ2V0PW5ldyBiKHtub2RlOnQsdmlldzp0aGlzfSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnByb2Nlc3NQaG9zcGhvck1lc3NhZ2U9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMudHJpZ2dlcigiZGlzcGxheWVkIil9fSxlLnByb3RvdHlwZS5fY29tbV9saXZlX3VwZGF0ZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuY29tbV9saXZlP3RoaXMucFdpZGdldC5yZW1vdmVDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpOnRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpfSxlfSh2KTtlLkRPTVdpZGdldFZpZXc9eX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDIpLGE9big5KSx1PW4oNSksYz1uKDMwKSxoPW4oNDApLGw9bigyMiksZD1uKDQxKSxmPW4oNykscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9ib3g9bnVsbCxuLl9hbGlnbm1lbnQ9InN0YXJ0IixuLl9kaXJlY3Rpb249InRvcC10by1ib3R0b20iLHZvaWQgMCE9PWUuZGlyZWN0aW9uJiYobi5fZGlyZWN0aW9uPWUuZGlyZWN0aW9uKSx2b2lkIDAhPT1lLmFsaWdubWVudCYmKG4uX2FsaWdubWVudD1lLmFsaWdubWVudCksdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3MuZWFjaCh0aGlzLl9pdGVtcyxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2JveD1udWxsLHRoaXMuX2l0ZW1zLmxlbmd0aD0wLHRoaXMuX3NpemVycy5sZW5ndGg9MCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZGlyZWN0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RpcmVjdGlvbiE9PXQmJih0aGlzLl9kaXJlY3Rpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXQsdGhpcy5wYXJlbnQuZml0KCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9hbGlnbm1lbnQhPT10JiYodGhpcy5fYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQmJih0aGlzLnBhcmVudC5kYXRhc2V0LmFsaWdubWVudD10LHRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXRoaXMuZGlyZWN0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7cy5BcnJheUV4dC5pbnNlcnQodGhpcy5faXRlbXMsdCxuZXcgbC5MYXlvdXRJdGVtKGUpKSxzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9zaXplcnMsdCxuZXcgaC5Cb3hTaXplciksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoZS5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUubW92ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7cy5BcnJheUV4dC5tb3ZlKHRoaXMuX2l0ZW1zLHQsZSkscy5BcnJheUV4dC5tb3ZlKHRoaXMuX3NpemVycyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49MCxpPXRoaXMuX2l0ZW1zLmxlbmd0aDtuPGk7KytuKXQrPSshdGhpcy5faXRlbXNbbl0uaXNIaWRkZW47dGhpcy5fZml4ZWQ9dGhpcy5fc3BhY2luZypNYXRoLm1heCgwLHQtMSk7dmFyIHI9by5pc0hvcml6b250YWwodGhpcy5fZGlyZWN0aW9uKSxzPXI/dGhpcy5fZml4ZWQ6MCxjPXI/MDp0aGlzLl9maXhlZDtmb3Iobj0wLGk9dGhpcy5faXRlbXMubGVuZ3RoO248aTsrK24pe3ZhciBoPXRoaXMuX2l0ZW1zW25dLGw9dGhpcy5fc2l6ZXJzW25dO2guaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnNpemVIaW50PWUuZ2V0U2l6ZUJhc2lzKGgud2lkZ2V0KSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxyPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW07c3dpdGNoKHRoaXMuX2RpcmVjdGlvbil7Y2FzZSJsZWZ0LXRvLXJpZ2h0IjpvPWguQm94RW5naW5lLmNhbGModGhpcy5fc2l6ZXJzLE1hdGgubWF4KDAsYy10aGlzLl9maXhlZCkpO2JyZWFrO2Nhc2UidG9wLXRvLWJvdHRvbSI6bz1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpKTticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKSksdSs9YzticmVhaztjYXNlImJvdHRvbS10by10b3AiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxsLXRoaXMuX2ZpeGVkKSkscys9bDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgZD0wLGY9MDtpZihvPjApc3dpdGNoKHRoaXMuX2FsaWdubWVudCl7Y2FzZSJzdGFydCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmQ9MCxmPW8vMjticmVhaztjYXNlImVuZCI6ZD0wLGY9bzticmVhaztjYXNlImp1c3RpZnkiOmQ9by9uLGY9MDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1mb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBwPXRoaXMuX2l0ZW1zW2ldO2lmKCFwLmlzSGlkZGVuKXt2YXIgbT10aGlzLl9zaXplcnNbaV0uc2l6ZTtzd2l0Y2godGhpcy5fZGlyZWN0aW9uKXtjYXNlImxlZnQtdG8tcmlnaHQiOnAudXBkYXRlKHUrZixzLG0rZCxsKSx1Kz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInRvcC10by1ib3R0b20iOnAudXBkYXRlKHUscytmLGMsbStkKSxzKz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOnAudXBkYXRlKHUtZi1tLWQscyxtK2QsbCksdS09bStkK3RoaXMuX3NwYWNpbmc7YnJlYWs7Y2FzZSJib3R0b20tdG8tdG9wIjpwLnVwZGF0ZSh1LHMtZi1tLWQsYyxtK2QpLHMtPW0rZCt0aGlzLl9zcGFjaW5nO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifX19fX0sZX0oZC5QYW5lbExheW91dCk7ZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LmdldFN0cmV0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIG8uc3RyZXRjaFByb3BlcnR5LmdldCh0KX0sdC5zZXRTdHJldGNoPWZ1bmN0aW9uKHQsZSl7by5zdHJldGNoUHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBvLnNpemVCYXNpc1Byb3BlcnR5LmdldCh0KX0sdC5zZXRTaXplQmFzaXM9ZnVuY3Rpb24odCxlKXtvLnNpemVCYXNpc1Byb3BlcnR5LnNldCh0LGUpfX0ocD1lLkJveExheW91dHx8KGUuQm94TGF5b3V0PXt9KSksZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBwJiZ0LnBhcmVudC5maXQoKX10LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuc2l6ZUJhc2lzUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToic2l6ZUJhc2lzIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKHQpe3JldHVybiJsZWZ0LXRvLXJpZ2h0Ij09PXR8fCJyaWdodC10by1sZWZ0Ij09PXR9LHQuY2xhbXBTcGFjaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGguZmxvb3IodCkpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMSkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fbGFiZWw9IiIsdGhpcy5fY2FwdGlvbj0iIix0aGlzLl9tbmVtb25pYz0tMSx0aGlzLl9pY29uQ2xhc3M9IiIsdGhpcy5faWNvbkxhYmVsPSIiLHRoaXMuX2NsYXNzTmFtZT0iIix0aGlzLl9jbG9zYWJsZT0hMSx0aGlzLl9jaGFuZ2VkPW5ldyBpLlNpZ25hbCh0aGlzKSx0aGlzLm93bmVyPXQub3duZXIsdm9pZCAwIT09dC5sYWJlbCYmKHRoaXMuX2xhYmVsPXQubGFiZWwpLHZvaWQgMCE9PXQubW5lbW9uaWMmJih0aGlzLl9tbmVtb25pYz10Lm1uZW1vbmljKSx2b2lkIDAhPT10Lmljb24mJih0aGlzLl9pY29uQ2xhc3M9dC5pY29uKSx2b2lkIDAhPT10Lmljb25DbGFzcyYmKHRoaXMuX2ljb25DbGFzcz10Lmljb25DbGFzcyksdm9pZCAwIT09dC5pY29uTGFiZWwmJih0aGlzLl9pY29uTGFiZWw9dC5pY29uTGFiZWwpLHZvaWQgMCE9PXQuY2FwdGlvbiYmKHRoaXMuX2NhcHRpb249dC5jYXB0aW9uKSx2b2lkIDAhPT10LmNsYXNzTmFtZSYmKHRoaXMuX2NsYXNzTmFtZT10LmNsYXNzTmFtZSksdm9pZCAwIT09dC5jbG9zYWJsZSYmKHRoaXMuX2Nsb3NhYmxlPXQuY2xvc2FibGUpLHRoaXMuX2RhdGFzZXQ9dC5kYXRhc2V0fHx7fX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJsYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYWJlbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2xhYmVsIT09dCYmKHRoaXMuX2xhYmVsPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibW5lbW9uaWMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW5lbW9uaWN9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tbmVtb25pYyE9PXQmJih0aGlzLl9tbmVtb25pYz10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LHNldDpmdW5jdGlvbih0KXt0aGlzLmljb25DbGFzcz10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ljb25DbGFzc30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2ljb25DbGFzcyE9PXQmJih0aGlzLl9pY29uQ2xhc3M9dCx0aGlzLl9jaGFuZ2VkLmVtaXQodm9pZCAwKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faWNvbkxhYmVsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faWNvbkxhYmVsIT09dCYmKHRoaXMuX2ljb25MYWJlbD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNhcHRpb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FwdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2NhcHRpb24hPT10JiYodGhpcy5fY2FwdGlvbj10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNsYXNzTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jbGFzc05hbWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbGFzc05hbWUhPT10JiYodGhpcy5fY2xhc3NOYW1lPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY2xvc2FibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xvc2FibGV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbG9zYWJsZSE9PXQmJih0aGlzLl9jbG9zYWJsZT10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImRhdGFzZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXNldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RhdGFzZXQhPT10JiYodGhpcy5fZGF0YXNldD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpO2UuVGl0bGU9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9mbj10fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5fZm59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKHRoaXMuX2ZuKXt2YXIgdD10aGlzLl9mbjt0aGlzLl9mbj1udWxsLHQoKX19LHR9KCk7ZS5EaXNwb3NhYmxlRGVsZWdhdGU9cjt2YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9pdGVtcz1uZXcgU2V0fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5faXRlbXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2l0ZW1zLmNsZWFyKCkpfSx0LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXMuaGFzKHQpfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuZGVsZXRlKHQpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX2l0ZW1zLmNsZWFyKCl9LHR9KCk7ZS5EaXNwb3NhYmxlU2V0PW8sZnVuY3Rpb24odCl7dC5mcm9tPWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyB0O3JldHVybiBpLmVhY2goZSxmdW5jdGlvbih0KXtuLmFkZCh0KX0pLG59fShvPWUuRGlzcG9zYWJsZVNldHx8KGUuRGlzcG9zYWJsZVNldD17fSkpLGUuRGlzcG9zYWJsZVNldD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEtleWJvYXJkTGF5b3V0PWZ1bmN0aW9uKCl7cmV0dXJuIGkua2V5Ym9hcmRMYXlvdXR9LGUuc2V0S2V5Ym9hcmRMYXlvdXQ9ZnVuY3Rpb24odCl7aS5rZXlib2FyZExheW91dD10fTt2YXIgaSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3RoaXMubmFtZT1lLHRoaXMuX2NvZGVzPW4sdGhpcy5fa2V5cz10LmV4dHJhY3RLZXlzKG4pfXJldHVybiB0LnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2tleXMpfSx0LnByb3RvdHlwZS5pc1ZhbGlkS2V5PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluIHRoaXMuX2tleXN9LHQucHJvdG90eXBlLmtleUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY29kZXNbdC5rZXlDb2RlXXx8IiJ9LHR9KCk7ZS5LZXljb2RlTGF5b3V0PXIsZnVuY3Rpb24odCl7dC5leHRyYWN0S2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcih2YXIgbiBpbiB0KWVbdFtuXV09ITA7cmV0dXJuIGV9fShyPWUuS2V5Y29kZUxheW91dHx8KGUuS2V5Y29kZUxheW91dD17fSkpLGUuS2V5Y29kZUxheW91dD1yLGUuRU5fVVM9bmV3IHIoImVuLXVzIix7ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEzOiJFbnRlciIsMTk6IlBhdXNlIiwyNzoiRXNjYXBlIiwzMjoiU3BhY2UiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNDg6IjAiLDQ5OiIxIiw1MDoiMiIsNTE6IjMiLDUyOiI0Iiw1MzoiNSIsNTQ6IjYiLDU1OiI3Iiw1NjoiOCIsNTc6IjkiLDU5OiI7Iiw2MToiPSIsNjU6IkEiLDY2OiJCIiw2NzoiQyIsNjg6IkQiLDY5OiJFIiw3MDoiRiIsNzE6IkciLDcyOiJIIiw3MzoiSSIsNzQ6IkoiLDc1OiJLIiw3NjoiTCIsNzc6Ik0iLDc4OiJOIiw3OToiTyIsODA6IlAiLDgxOiJRIiw4MjoiUiIsODM6IlMiLDg0OiJUIiw4NToiVSIsODY6IlYiLDg3OiJXIiw4ODoiWCIsODk6IlkiLDkwOiJaIiw5MzoiQ29udGV4dE1lbnUiLDk2OiIwIiw5NzoiMSIsOTg6IjIiLDk5OiIzIiwxMDA6IjQiLDEwMToiNSIsMTAyOiI2IiwxMDM6IjciLDEwNDoiOCIsMTA1OiI5IiwxMDY6IioiLDEwNzoiKyIsMTA5OiItIiwxMTA6Ii4iLDExMToiLyIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTczOiItIiwxODY6IjsiLDE4NzoiPSIsMTg4OiIsIiwxODk6Ii0iLDE5MDoiLiIsMTkxOiIvIiwxOTI6ImAiLDIxOToiWyIsMjIwOiJcXCIsMjIxOiJdIiwyMjI6IicifSksZnVuY3Rpb24odCl7dC5rZXlib2FyZExheW91dD1lLkVOX1VTfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1NiksYz1uKDUpLGg9bigxMSksbD1uKDU1KSxkPW4oNzcpLGY9big3KSxwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOm8uY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2N1cnJlbnRJbmRleD0tMSxpLl90aXRsZXM9W10saS5fcHJldmlvdXNUaXRsZT1udWxsLGkuX2RyYWdEYXRhPW51bGwsaS5fdGFiTW92ZWQ9bmV3IGguU2lnbmFsKGkpLGkuX2N1cnJlbnRDaGFuZ2VkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJDbG9zZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5fdGFiRGV0YWNoUmVxdWVzdGVkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJBY3RpdmF0ZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1UYWJCYXIiKSxpLnNldEZsYWcoZi5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS50YWJzTW92YWJsZT1uLnRhYnNNb3ZhYmxlfHwhMSxpLmFsbG93RGVzZWxlY3Q9bi5hbGxvd0Rlc2VsZWN0fHwhMSxpLmluc2VydEJlaGF2aW9yPW4uaW5zZXJ0QmVoYXZpb3J8fCJzZWxlY3QtdGFiLWlmLW5lZWRlZCIsaS5yZW1vdmVCZWhhdmlvcj1uLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LXRhYi1hZnRlciIsaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLl9vcmllbnRhdGlvbj1uLm9yaWVudGF0aW9ufHwiaG9yaXpvbnRhbCIsaS5kYXRhc2V0Lm9yaWVudGF0aW9uPWkuX29yaWVudGF0aW9uLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fdGl0bGVzLmxlbmd0aD0wLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJNb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYkFjdGl2YXRlUmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RhYkFjdGl2YXRlUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFiQ2xvc2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiQ2xvc2VSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJEZXRhY2hSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiRGV0YWNoUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFRpdGxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpdGxlc1t0aGlzLl9jdXJyZW50SW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdXJyZW50SW5kZXg9dD90aGlzLl90aXRsZXMuaW5kZXhPZih0KTotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImN1cnJlbnRJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50SW5kZXh9LHNldDpmdW5jdGlvbih0KXtpZigodDwwfHx0Pj10aGlzLl90aXRsZXMubGVuZ3RoKSYmKHQ9LTEpLHRoaXMuX2N1cnJlbnRJbmRleCE9PXQpe3ZhciBlPXRoaXMuX2N1cnJlbnRJbmRleCxuPXRoaXMuX3RpdGxlc1tlXXx8bnVsbCxpPXQscj10aGlzLl90aXRsZXNbaV18fG51bGw7dGhpcy5fY3VycmVudEluZGV4PWksdGhpcy5fcHJldmlvdXNUaXRsZT1uLHRoaXMudXBkYXRlKCksdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDplLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6aSxjdXJyZW50VGl0bGU6cn0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0aXRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGl0bGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29udGVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtVGFiQmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRUYWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5zZXJ0VGFiKHRoaXMuX3RpdGxlcy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFRhYj1mdW5jdGlvbih0LGUpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBuPW8uYXNUaXRsZShlKSxpPXRoaXMuX3RpdGxlcy5pbmRleE9mKG4pLHI9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX3RpdGxlcy5sZW5ndGgpKTtyZXR1cm4tMT09PWk/KHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3RpdGxlcyxyLG4pLG4uY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHRoaXMudXBkYXRlKCksdGhpcy5fYWRqdXN0Q3VycmVudEZvckluc2VydChyLG4pLG4pOihyPT09dGhpcy5fdGl0bGVzLmxlbmd0aCYmci0tLGk9PT1yP246KHMuQXJyYXlFeHQubW92ZSh0aGlzLl90aXRsZXMsaSxyKSx0aGlzLnVwZGF0ZSgpLHRoaXMuX2FkanVzdEN1cnJlbnRGb3JNb3ZlKGksciksbikpfSxlLnByb3RvdHlwZS5yZW1vdmVUYWI9ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVUYWJBdCh0aGlzLl90aXRsZXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVRhYkF0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBlPXMuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fdGl0bGVzLHQpO2UmJihlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlPT09dGhpcy5fcHJldmlvdXNUaXRsZSYmKHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCksdGhpcy51cGRhdGUoKSx0aGlzLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlKHQsZSkpfSxlLnByb3RvdHlwZS5jbGVhclRhYnM9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fdGl0bGVzLmxlbmd0aCl7dGhpcy5fcmVsZWFzZU1vdXNlKCk7Zm9yKHZhciB0PTAsZT10aGlzLl90aXRsZXM7dDxlLmxlbmd0aDt0Kyspe2VbdF0uY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpfXZhciBuPXRoaXMuY3VycmVudEluZGV4LGk9dGhpcy5jdXJyZW50VGl0bGU7dGhpcy5fY3VycmVudEluZGV4PS0xLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0aGlzLl90aXRsZXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSwtMSE9PW4mJnRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6bixwcmV2aW91c1RpdGxlOmksY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSl9fSxlLnByb3RvdHlwZS5yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJtb3VzZWRvd24iOnRoaXMuX2V2dE1vdXNlRG93bih0KTticmVhaztjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl90aXRsZXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5jdXJyZW50VGl0bGUscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10sdT1hPT09aSxjPXU/czpzLW8tMTtyW29dPW4ucmVuZGVyVGFiKHt0aXRsZTphLGN1cnJlbnQ6dSx6SW5kZXg6Y30pfWwuVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksMjc9PT10LmtleUNvZGUmJnRoaXMuX3JlbGVhc2VNb3VzZSgpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VEb3duPWZ1bmN0aW9uKHQpe2lmKCgwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbikmJiF0aGlzLl9kcmFnRGF0YSl7dmFyIGU9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixuPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoZSxmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2lmKC0xIT09biYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2RyYWdEYXRhPXt0YWI6ZVtuXSxpbmRleDpuLHByZXNzWDp0LmNsaWVudFgscHJlc3NZOnQuY2xpZW50WSx0YWJQb3M6LTEsdGFiU2l6ZTotMSx0YWJQcmVzc1BvczotMSx0YXJnZXRJbmRleDotMSx0YWJMYXlvdXQ6bnVsbCxjb250ZW50UmVjdDpudWxsLG92ZXJyaWRlOm51bGwsZHJhZ0FjdGl2ZTohMSxkcmFnQWJvcnRlZDohMSxkZXRhY2hSZXF1ZXN0ZWQ6ITF9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLDEhPT10LmJ1dHRvbikpe3ZhciBpPWVbbl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8KHRoaXMudGFic01vdmFibGUmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKSksdGhpcy5hbGxvd0Rlc2VsZWN0JiZ0aGlzLmN1cnJlbnRJbmRleD09PW4/dGhpcy5jdXJyZW50SW5kZXg9LTE6dGhpcy5jdXJyZW50SW5kZXg9biwtMSE9PXRoaXMuY3VycmVudEluZGV4JiZ0aGlzLl90YWJBY3RpdmF0ZVJlcXVlc3RlZC5lbWl0KHtpbmRleDp0aGlzLmN1cnJlbnRJbmRleCx0aXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pKX19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2RyYWdEYXRhO2lmKGUpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW47aWYoZS5kcmFnQWN0aXZlfHxvLmRyYWdFeGNlZWRlZChlLHQpKXtpZighZS5kcmFnQWN0aXZlKXt2YXIgaT1lLnRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsiaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbj8oZS50YWJQb3M9ZS50YWIub2Zmc2V0TGVmdCxlLnRhYlNpemU9aS53aWR0aCxlLnRhYlByZXNzUG9zPWUucHJlc3NYLWkubGVmdCk6KGUudGFiUG9zPWUudGFiLm9mZnNldFRvcCxlLnRhYlNpemU9aS5oZWlnaHQsZS50YWJQcmVzc1Bvcz1lLnByZXNzWS1pLnRvcCksZS50YWJMYXlvdXQ9by5zbmFwVGFiTGF5b3V0KG4sdGhpcy5fb3JpZW50YXRpb24pLGUuY29udGVudFJlY3Q9dGhpcy5jb250ZW50Tm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlLm92ZXJyaWRlPXUuRHJhZy5vdmVycmlkZUN1cnNvcigiZGVmYXVsdCIpLGUudGFiLmNsYXNzTGlzdC5hZGQoInAtbW9kLWRyYWdnaW5nIiksdGhpcy5hZGRDbGFzcygicC1tb2QtZHJhZ2dpbmciKSxlLmRyYWdBY3RpdmU9ITB9aWYoIWUuZGV0YWNoUmVxdWVzdGVkJiZvLmRldGFjaEV4Y2VlZGVkKGUsdCkpe2UuZGV0YWNoUmVxdWVzdGVkPSEwO3ZhciByPWUuaW5kZXgscz10LmNsaWVudFgsYT10LmNsaWVudFksYz1uW3JdLGg9dGhpcy5fdGl0bGVzW3JdO2lmKHRoaXMuX3RhYkRldGFjaFJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOmgsdGFiOmMsY2xpZW50WDpzLGNsaWVudFk6YX0pLGUuZHJhZ0Fib3J0ZWQpcmV0dXJufW8ubGF5b3V0VGFicyhuLGUsdCx0aGlzLl9vcmllbnRhdGlvbil9fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbil7dmFyIG49dGhpcy5fZHJhZ0RhdGE7aWYobil7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcywhMCksIW4uZHJhZ0FjdGl2ZSl7dGhpcy5fZHJhZ0RhdGE9bnVsbDt2YXIgaT10aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHI9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChpLGZ1bmN0aW9uKGUpe3JldHVybiBhLkVsZW1lbnRFeHQuaGl0VGVzdChlLHQuY2xpZW50WCx0LmNsaWVudFkpfSk7aWYociE9PW4uaW5kZXgpcmV0dXJuO3ZhciB1PXRoaXMuX3RpdGxlc1tyXTtpZighdS5jbG9zYWJsZSlyZXR1cm47aWYoMT09PXQuYnV0dG9uKXJldHVybiB2b2lkIHRoaXMuX3RhYkNsb3NlUmVxdWVzdGVkLmVtaXQoe2luZGV4OnIsdGl0bGU6dX0pO3ZhciBoPWlbcl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtyZXR1cm4gaCYmaC5jb250YWlucyh0LnRhcmdldCk/dm9pZCB0aGlzLl90YWJDbG9zZVJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOnV9KTp2b2lkIDB9aWYoMD09PXQuYnV0dG9uKXtvLmZpbmFsaXplVGFiUG9zaXRpb24obix0aGlzLl9vcmllbnRhdGlvbiksbi50YWIuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtZHJhZ2dpbmciKTt2YXIgbD1vLnBhcnNlVHJhbnNpdGlvbkR1cmF0aW9uKG4udGFiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIW4uZHJhZ0Fib3J0ZWQpe2UuX2RyYWdEYXRhPW51bGwsby5yZXNldFRhYlBvc2l0aW9ucyhlLmNvbnRlbnROb2RlLmNoaWxkcmVuLGUuX29yaWVudGF0aW9uKSxuLm92ZXJyaWRlLmRpc3Bvc2UoKSxlLnJlbW92ZUNsYXNzKCJwLW1vZC1kcmFnZ2luZyIpO3ZhciB0PW4uaW5kZXgsaT1uLnRhcmdldEluZGV4Oy0xIT09aSYmdCE9PWkmJihzLkFycmF5RXh0Lm1vdmUoZS5fdGl0bGVzLHQsaSksZS5fYWRqdXN0Q3VycmVudEZvck1vdmUodCxpKSxlLl90YWJNb3ZlZC5lbWl0KHtmcm9tSW5kZXg6dCx0b0luZGV4OmksdGl0bGU6ZS5fdGl0bGVzW2ldfSksYy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KSl9fSxsKX19fX0sZS5wcm90b3R5cGUuX3JlbGVhc2VNb3VzZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RyYWdEYXRhO3QmJih0aGlzLl9kcmFnRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHQuZHJhZ0Fib3J0ZWQ9ITAsdC5kcmFnQWN0aXZlJiYoby5yZXNldFRhYlBvc2l0aW9ucyh0aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHRoaXMuX29yaWVudGF0aW9uKSx0Lm92ZXJyaWRlLmRpc3Bvc2UoKSx0LnRhYi5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1kcmFnZ2luZyIpLHRoaXMucmVtb3ZlQ2xhc3MoInAtbW9kLWRyYWdnaW5nIikpKX0sZS5wcm90b3R5cGUuX2FkanVzdEN1cnJlbnRGb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmN1cnJlbnRUaXRsZSxpPXRoaXMuX2N1cnJlbnRJbmRleCxyPXRoaXMuaW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC10YWIiPT09cnx8InNlbGVjdC10YWItaWYtbmVlZGVkIj09PXImJi0xPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PXQsdGhpcy5fcHJldmlvdXNUaXRsZT1uLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDppLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6dCxjdXJyZW50VGl0bGU6ZX0pO2k+PXQmJnRoaXMuX2N1cnJlbnRJbmRleCsrfSxlLnByb3RvdHlwZS5fYWRqdXN0Q3VycmVudEZvck1vdmU9ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJyZW50SW5kZXg9PT10P3RoaXMuX2N1cnJlbnRJbmRleD1lOnRoaXMuX2N1cnJlbnRJbmRleDx0JiZ0aGlzLl9jdXJyZW50SW5kZXg+PWU/dGhpcy5fY3VycmVudEluZGV4Kys6dGhpcy5fY3VycmVudEluZGV4PnQmJnRoaXMuX2N1cnJlbnRJbmRleDw9ZSYmdGhpcy5fY3VycmVudEluZGV4LS19LGUucHJvdG90eXBlLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudEluZGV4LGk9dGhpcy5yZW1vdmVCZWhhdmlvcjtpZihuPT09dCl7aWYoMD09PXRoaXMuX3RpdGxlcy5sZW5ndGgpcmV0dXJuIHRoaXMuX2N1cnJlbnRJbmRleD0tMSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSk7aWYoInNlbGVjdC10YWItYWZ0ZXIiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWluKHQsdGhpcy5fdGl0bGVzLmxlbmd0aC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXRhYi1iZWZvcmUiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWF4KDAsdC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXByZXZpb3VzLXRhYiI9PT1pKXJldHVybiB0aGlzLl9wcmV2aW91c1RpdGxlPyh0aGlzLl9jdXJyZW50SW5kZXg9dGhpcy5fdGl0bGVzLmluZGV4T2YodGhpcy5fcHJldmlvdXNUaXRsZSksdGhpcy5fcHJldmlvdXNUaXRsZT1udWxsKTp0aGlzLl9jdXJyZW50SW5kZXg9TWF0aC5taW4odCx0aGlzLl90aXRsZXMubGVuZ3RoLTEpLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVGl0bGU6ZSxjdXJyZW50SW5kZXg6dGhpcy5fY3VycmVudEluZGV4LGN1cnJlbnRUaXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pO3RoaXMuX2N1cnJlbnRJbmRleD0tMSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNUaXRsZTplLGN1cnJlbnRJbmRleDotMSxjdXJyZW50VGl0bGU6bnVsbH0pfWVsc2Ugbj50JiZ0aGlzLl9jdXJyZW50SW5kZXgtLX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMudXBkYXRlKCl9LGV9KGYuV2lkZ2V0KTtlLlRhYkJhcj1wLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY2xvc2VJY29uU2VsZWN0b3I9Ii5wLVRhYkJhci10YWJDbG9zZUljb24iLHRoaXMuX3RhYklEPTAsdGhpcy5fdGFiS2V5cz1uZXcgV2Vha01hcH1yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVyVGFiPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUuY2FwdGlvbixuPXRoaXMuY3JlYXRlVGFiS2V5KHQpLGk9dGhpcy5jcmVhdGVUYWJTdHlsZSh0KSxyPXRoaXMuY3JlYXRlVGFiQ2xhc3ModCksbz10aGlzLmNyZWF0ZVRhYkRhdGFzZXQodCk7cmV0dXJuIGwuaC5saSh7a2V5Om4sY2xhc3NOYW1lOnIsdGl0bGU6ZSxzdHlsZTppLGRhdGFzZXQ6b30sdGhpcy5yZW5kZXJJY29uKHQpLHRoaXMucmVuZGVyTGFiZWwodCksdGhpcy5yZW5kZXJDbG9zZUljb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJY29uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSWNvbkNsYXNzKHQpO3JldHVybiBsLmguZGl2KHtjbGFzc05hbWU6ZX0sdC50aXRsZS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLVRhYkJhci10YWJMYWJlbCJ9LHQudGl0bGUubGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJDbG9zZUljb249ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1UYWJCYXItdGFiQ2xvc2VJY29uIn0pfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJLZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGFiS2V5cy5nZXQodC50aXRsZSk7cmV0dXJuIHZvaWQgMD09PWUmJihlPSJ0YWIta2V5LSIrdGhpcy5fdGFiSUQrKyx0aGlzLl90YWJLZXlzLnNldCh0LnRpdGxlLGUpKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJTdHlsZT1mdW5jdGlvbih0KXtyZXR1cm57ekluZGV4OiIiK3QuekluZGV4fX0sdC5wcm90b3R5cGUuY3JlYXRlVGFiQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtVGFiQmFyLXRhYiI7cmV0dXJuIHQudGl0bGUuY2xhc3NOYW1lJiYoZSs9IiAiK3QudGl0bGUuY2xhc3NOYW1lKSx0LnRpdGxlLmNsb3NhYmxlJiYoZSs9IiBwLW1vZC1jbG9zYWJsZSIpLHQuY3VycmVudCYmKGUrPSIgcC1tb2QtY3VycmVudCIpLGV9LHQucHJvdG90eXBlLmNyZWF0ZVRhYkRhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGl0bGUuZGF0YXNldH0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLVRhYkJhci10YWJJY29uIixuPXQudGl0bGUuaWNvbkNsYXNzO3JldHVybiBuP2UrIiAiK246ZX0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KHA9ZS5UYWJCYXJ8fChlLlRhYkJhcj17fSkpLGUuVGFiQmFyPXAsZnVuY3Rpb24odCl7dC5EUkFHX1RIUkVTSE9MRD01LHQuREVUQUNIX1RIUkVTSE9MRD0yMCx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLVRhYkJhci1jb250ZW50Iix0LmFwcGVuZENoaWxkKGUpLHR9LHQuYXNUaXRsZT1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGQuVGl0bGU/dDpuZXcgZC5UaXRsZSh0KX0sdC5wYXJzZVRyYW5zaXRpb25EdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gMWUzKihwYXJzZUZsb2F0KGUudHJhbnNpdGlvbkR1cmF0aW9uKXx8MCl9LHQuc25hcFRhYkxheW91dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgpLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpe3ZhciBvPXRbaV0scz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvKTtuW2ldPSJob3Jpem9udGFsIj09PWU/e3BvczpvLm9mZnNldExlZnQsc2l6ZTpvLm9mZnNldFdpZHRoLG1hcmdpbjpwYXJzZUZsb2F0KHMubWFyZ2luTGVmdCl8fDB9Ontwb3M6by5vZmZzZXRUb3Asc2l6ZTpvLm9mZnNldEhlaWdodCxtYXJnaW46cGFyc2VGbG9hdChzLm1hcmdpblRvcCl8fDB9fXJldHVybiBufSx0LmRyYWdFeGNlZWRlZD1mdW5jdGlvbihlLG4pe3ZhciBpPU1hdGguYWJzKG4uY2xpZW50WC1lLnByZXNzWCkscj1NYXRoLmFicyhuLmNsaWVudFktZS5wcmVzc1kpO3JldHVybiBpPj10LkRSQUdfVEhSRVNIT0xEfHxyPj10LkRSQUdfVEhSRVNIT0xEfSx0LmRldGFjaEV4Y2VlZGVkPWZ1bmN0aW9uKGUsbil7dmFyIGk9ZS5jb250ZW50UmVjdDtyZXR1cm4gbi5jbGllbnRYPGkubGVmdC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WD49aS5yaWdodCt0LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WTxpLnRvcC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WT49aS5ib3R0b20rdC5ERVRBQ0hfVEhSRVNIT0xEfSx0LmxheW91dFRhYnM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzLGE7Imhvcml6b250YWwiPT09aT8ocj1lLnByZXNzWCxvPW4uY2xpZW50WC1lLmNvbnRlbnRSZWN0LmxlZnQscz1uLmNsaWVudFgsYT1lLmNvbnRlbnRSZWN0LndpZHRoKToocj1lLnByZXNzWSxvPW4uY2xpZW50WS1lLmNvbnRlbnRSZWN0LnRvcCxzPW4uY2xpZW50WSxhPWUuY29udGVudFJlY3QuaGVpZ2h0KTtmb3IodmFyIHU9ZS5pbmRleCxjPW8tZS50YWJQcmVzc1BvcyxoPWMrZS50YWJTaXplLGw9MCxkPXQubGVuZ3RoO2w8ZDsrK2wpe3ZhciBmPXZvaWQgMCxwPWUudGFiTGF5b3V0W2xdLG09cC5wb3MrKHAuc2l6ZT4+MSk7aWYobDxlLmluZGV4JiZjPG0pZj1lLnRhYlNpemUrZS50YWJMYXlvdXRbbCsxXS5tYXJnaW4rInB4Iix1PU1hdGgubWluKHUsbCk7ZWxzZSBpZihsPmUuaW5kZXgmJmg+bSlmPS1lLnRhYlNpemUtcC5tYXJnaW4rInB4Iix1PU1hdGgubWF4KHUsbCk7ZWxzZSBpZihsPT09ZS5pbmRleCl7dmFyIGc9cy1yLHY9YS0oZS50YWJQb3MrZS50YWJTaXplKTtmPU1hdGgubWF4KC1lLnRhYlBvcyxNYXRoLm1pbihnLHYpKSsicHgifWVsc2UgZj0iIjsiaG9yaXpvbnRhbCI9PT1pP3RbbF0uc3R5bGUubGVmdD1mOnRbbF0uc3R5bGUudG9wPWZ9ZS50YXJnZXRJbmRleD11fSx0LmZpbmFsaXplVGFiUG9zaXRpb249ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKG49Imhvcml6b250YWwiPT09ZT90LmNvbnRlbnRSZWN0LndpZHRoOnQuY29udGVudFJlY3QuaGVpZ2h0LHQudGFyZ2V0SW5kZXg9PT10LmluZGV4KWk9MDtlbHNlIGlmKHQudGFyZ2V0SW5kZXg+dC5pbmRleClpPShyPXQudGFiTGF5b3V0W3QudGFyZ2V0SW5kZXhdKS5wb3Mrci5zaXplLXQudGFiU2l6ZS10LnRhYlBvcztlbHNle3ZhciByO2k9KHI9dC50YWJMYXlvdXRbdC50YXJnZXRJbmRleF0pLnBvcy10LnRhYlBvc312YXIgbz1uLSh0LnRhYlBvcyt0LnRhYlNpemUpLHM9TWF0aC5tYXgoLXQudGFiUG9zLE1hdGgubWluKGksbykpOyJob3Jpem9udGFsIj09PWU/dC50YWIuc3R5bGUubGVmdD1zKyJweCI6dC50YWIuc3R5bGUudG9wPXMrInB4In0sdC5yZXNldFRhYlBvc2l0aW9ucz1mdW5jdGlvbih0LGUpe3MuZWFjaCh0LGZ1bmN0aW9uKHQpeyJob3Jpem9udGFsIj09PWU/dC5zdHlsZS5sZWZ0PSIiOnQuc3R5bGUudG9wPSIifSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2UuYnl0ZUxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT1jKHQpLG49ZVswXSxpPWVbMV07cmV0dXJuIDMqKG4raSkvNC1pfSxlLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPWModCksaT1uWzBdLHM9blsxXSxhPW5ldyBvKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMyooZStuKS80LW59KDAsaSxzKSksdT0wLGg9cz4wP2ktNDppLGw9MDtsPGg7bCs9NCllPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTh8clt0LmNoYXJDb2RlQXQobCsxKV08PDEyfHJbdC5jaGFyQ29kZUF0KGwrMildPDw2fHJbdC5jaGFyQ29kZUF0KGwrMyldLGFbdSsrXT1lPj4xNiYyNTUsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZTsyPT09cyYmKGU9clt0LmNoYXJDb2RlQXQobCldPDwyfHJbdC5jaGFyQ29kZUF0KGwrMSldPj40LGFbdSsrXT0yNTUmZSk7MT09PXMmJihlPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTB8clt0LmNoYXJDb2RlQXQobCsxKV08PDR8clt0LmNoYXJDb2RlQXQobCsyKV0+PjIsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZSk7cmV0dXJuIGF9LGUuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10Lmxlbmd0aCxyPW4lMyxvPVtdLHM9MCxhPW4tcjtzPGE7cys9MTYzODMpby5wdXNoKGgodCxzLHMrMTYzODM+YT9hOnMrMTYzODMpKTsxPT09cj8oZT10W24tMV0sby5wdXNoKGlbZT4+Ml0raVtlPDw0JjYzXSsiPT0iKSk6Mj09PXImJihlPSh0W24tMl08PDgpK3Rbbi0xXSxvLnB1c2goaVtlPj4xMF0raVtlPj40JjYzXStpW2U8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIGk9W10scj1bXSxvPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LHM9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGE9MCx1PXMubGVuZ3RoO2E8dTsrK2EpaVthXT1zW2FdLHJbcy5jaGFyQ29kZUF0KGEpXT1hO2Z1bmN0aW9uIGModCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIG49dC5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1uJiYobj1lKSxbbixuPT09ZT8wOjQtbiU0XX1mdW5jdGlvbiBoKHQsZSxuKXtmb3IodmFyIHIsbyxzPVtdLGE9ZTthPG47YSs9MylyPSh0W2FdPDwxNiYxNjcxMTY4MCkrKHRbYSsxXTw8OCY2NTI4MCkrKDI1NSZ0W2ErMl0pLHMucHVzaChpWyhvPXIpPj4xOCY2M10raVtvPj4xMiY2M10raVtvPj42JjYzXStpWzYzJm9dKTtyZXR1cm4gcy5qb2luKCIiKX1yWyItIi5jaGFyQ29kZUF0KDApXT02MixyWyJfIi5jaGFyQ29kZUF0KDApXT02M30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dmFyIGU7dC5nZXRSYW5kb21WYWx1ZXM9KGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuY3J5cHRvfHx3aW5kb3cubXNDcnlwdG8pfHxuKDE0NSl8fG51bGwpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRSYW5kb21WYWx1ZXM/ZnVuY3Rpb24odCl7cmV0dXJuIGUuZ2V0UmFuZG9tVmFsdWVzKHQpfTplJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5yYW5kb21GaWxsU3luYz9mdW5jdGlvbih0KXtyZXR1cm4gZS5yYW5kb21GaWxsU3luYyh0KX06ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmFuZG9tQnl0ZXM/ZnVuY3Rpb24odCl7Zm9yKHZhciBuPWUucmFuZG9tQnl0ZXModC5sZW5ndGgpLGk9MCxyPW4ubGVuZ3RoO2k8cjsrK2kpdFtpXT1uW2ldfTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKW4lND09MCYmKGU9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpPj4+MCksdFtuXT0yNTUmZSxlPj4+PTh9fShlLlJhbmRvbXx8KGUuUmFuZG9tPXt9KSl9LGZ1bmN0aW9uKHQsZSl7dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PW4uY2FsbCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm07ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyksdGhpcy5fYmxvY2s9aS5hbGxvY1Vuc2FmZSh0KSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfW4oMCkobyxyKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1udWxsO3RyeXt0aGlzLnVwZGF0ZSh0LGUpfWNhdGNoKHQpe2k9dH1uKGkpfSxvLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKHQpe2U9dH10KGUpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZihmdW5jdGlvbih0LGUpe2lmKCFpLmlzQnVmZmVyKHQpJiYic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfSh0LCJEYXRhIiksdGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7aS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsZSkpO2Zvcih2YXIgbj10aGlzLl9ibG9jayxyPTA7dGhpcy5fYmxvY2tPZmZzZXQrdC5sZW5ndGgtcj49dGhpcy5fYmxvY2tTaXplOyl7Zm9yKHZhciBvPXRoaXMuX2Jsb2NrT2Zmc2V0O288dGhpcy5fYmxvY2tTaXplOyluW28rK109dFtyKytdO3RoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTB9Zm9yKDtyPHQubGVuZ3RoOyluW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPXRbcisrXTtmb3IodmFyIHM9MCxhPTgqdC5sZW5ndGg7YT4wOysrcyl0aGlzLl9sZW5ndGhbc10rPWEsKGE9dGhpcy5fbGVuZ3RoW3NdLzQyOTQ5NjcyOTZ8MCk+MCYmKHRoaXMuX2xlbmd0aFtzXS09NDI5NDk2NzI5NiphKTtyZXR1cm4gdGhpc30sby5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQiKX0sby5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMDt2YXIgZT10aGlzLl9kaWdlc3QoKTt2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9ibG9jay5maWxsKDApLHRoaXMuX2Jsb2NrT2Zmc2V0PTA7Zm9yKHZhciBuPTA7bjw0Oysrbil0aGlzLl9sZW5ndGhbbl09MDtyZXR1cm4gZX0sby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX2RpZ2VzdCBpcyBub3QgaW1wbGVtZW50ZWQiKX0sdC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUsaSl7dmFyIHI9big0Myk7dC5leHBvcnRzPXk7dmFyIG8scz1uKDgzKTt5LlJlYWRhYmxlU3RhdGU9YjtuKDYwKS5FdmVudEVtaXR0ZXI7dmFyIGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saXN0ZW5lcnMoZSkubGVuZ3RofSx1PW4oODYpLGM9bigxKS5CdWZmZXIsaD1lLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgbD1uKDMyKTtsLmluaGVyaXRzPW4oMCk7dmFyIGQ9bigxNDcpLGY9dm9pZCAwO2Y9ZCYmZC5kZWJ1Z2xvZz9kLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIHAsbT1uKDE0OCksZz1uKDg3KTtsLmluaGVyaXRzKHksdSk7dmFyIHY9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gYih0LGUpe3Q9dHx8e307dmFyIGk9ZSBpbnN0YW5jZW9mKG89b3x8bigyNCkpO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LnJlYWRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLHM9dC5yZWFkYWJsZUhpZ2hXYXRlck1hcmssYT10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKHN8fDA9PT1zKT9zOmEsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmJ1ZmZlcj1uZXcgbSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCx0LmVuY29kaW5nJiYocHx8KHA9big2MykuU3RyaW5nRGVjb2RlciksdGhpcy5kZWNvZGVyPW5ldyBwKHQuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyl9ZnVuY3Rpb24geSh0KXtpZihvPW98fG4oMjQpLCEodGhpcyBpbnN0YW5jZW9mIHkpKXJldHVybiBuZXcgeSh0KTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBiKHQsdGhpcyksdGhpcy5yZWFkYWJsZT0hMCx0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZCYmKHRoaXMuX3JlYWQ9dC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpKSx1LmNhbGwodGhpcyl9ZnVuY3Rpb24gXyh0LGUsbixpLHIpe3ZhciBvLHM9dC5fcmVhZGFibGVTdGF0ZTtudWxsPT09ZT8ocy5yZWFkaW5nPSExLGZ1bmN0aW9uKHQsZSl7aWYoZS5lbmRlZClyZXR1cm47aWYoZS5kZWNvZGVyKXt2YXIgbj1lLmRlY29kZXIuZW5kKCk7biYmbi5sZW5ndGgmJihlLmJ1ZmZlci5wdXNoKG4pLGUubGVuZ3RoKz1lLm9iamVjdE1vZGU/MTpuLmxlbmd0aCl9ZS5lbmRlZD0hMCxTKHQpfSh0LHMpKToocnx8KG89ZnVuY3Rpb24odCxlKXt2YXIgbjtpPWUsYy5pc0J1ZmZlcihpKXx8aSBpbnN0YW5jZW9mIGh8fCJzdHJpbmciPT10eXBlb2YgZXx8dm9pZCAwPT09ZXx8dC5vYmplY3RNb2RlfHwobj1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpO3ZhciBpO3JldHVybiBufShzLGUpKSxvP3QuZW1pdCgiZXJyb3IiLG8pOnMub2JqZWN0TW9kZXx8ZSYmZS5sZW5ndGg+MD8oInN0cmluZyI9PXR5cGVvZiBlfHxzLm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PWMucHJvdG90eXBlfHwoZT1mdW5jdGlvbih0KXtyZXR1cm4gYy5mcm9tKHQpfShlKSksaT9zLmVuZEVtaXR0ZWQ/dC5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpKTp3KHQscyxlLCEwKTpzLmVuZGVkP3QuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSk6KHMucmVhZGluZz0hMSxzLmRlY29kZXImJiFuPyhlPXMuZGVjb2Rlci53cml0ZShlKSxzLm9iamVjdE1vZGV8fDAhPT1lLmxlbmd0aD93KHQscyxlLCExKTpBKHQscykpOncodCxzLGUsITEpKSk6aXx8KHMucmVhZGluZz0hMSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hdC5lbmRlZCYmKHQubmVlZFJlYWRhYmxlfHx0Lmxlbmd0aDx0LmhpZ2hXYXRlck1hcmt8fDA9PT10Lmxlbmd0aCl9KHMpfWZ1bmN0aW9uIHcodCxlLG4saSl7ZS5mbG93aW5nJiYwPT09ZS5sZW5ndGgmJiFlLnN5bmM/KHQuZW1pdCgiZGF0YSIsbiksdC5yZWFkKDApKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoLGk/ZS5idWZmZXIudW5zaGlmdChuKTplLmJ1ZmZlci5wdXNoKG4pLGUubmVlZFJlYWRhYmxlJiZTKHQpKSxBKHQsZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHkucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSkseS5wcm90b3R5cGUuZGVzdHJveT1nLmRlc3Ryb3kseS5wcm90b3R5cGUuX3VuZGVzdHJveT1nLnVuZGVzdHJveSx5LnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe3RoaXMucHVzaChudWxsKSxlKHQpfSx5LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBpLm9iamVjdE1vZGU/bj0hMDoic3RyaW5nIj09dHlwZW9mIHQmJigoZT1lfHxpLmRlZmF1bHRFbmNvZGluZykhPT1pLmVuY29kaW5nJiYodD1jLmZyb20odCxlKSxlPSIiKSxuPSEwKSxfKHRoaXMsdCxlLCExLG4pfSx5LnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBfKHRoaXMsdCxudWxsLCEwLCExKX0seS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30seS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHB8fChwPW4oNjMpLlN0cmluZ0RlY29kZXIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1uZXcgcCh0KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXQsdGhpc307dmFyIHg9ODM4ODYwODtmdW5jdGlvbiBNKHQsZSl7cmV0dXJuIHQ8PTB8fDA9PT1lLmxlbmd0aCYmZS5lbmRlZD8wOmUub2JqZWN0TW9kZT8xOnQhPXQ/ZS5mbG93aW5nJiZlLmxlbmd0aD9lLmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoOmUubGVuZ3RoOih0PmUuaGlnaFdhdGVyTWFyayYmKGUuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gdD49eD90PXg6KHQtLSx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCx0fD10Pj4+MTYsdCsrKSx0fSh0KSksdDw9ZS5sZW5ndGg/dDplLmVuZGVkP2UubGVuZ3RoOihlLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gUyh0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2UubmVlZFJlYWRhYmxlPSExLGUuZW1pdHRlZFJlYWRhYmxlfHwoZigiZW1pdFJlYWRhYmxlIixlLmZsb3dpbmcpLGUuZW1pdHRlZFJlYWRhYmxlPSEwLGUuc3luYz9yLm5leHRUaWNrKEUsdCk6RSh0KSl9ZnVuY3Rpb24gRSh0KXtmKCJlbWl0IHJlYWRhYmxlIiksdC5lbWl0KCJyZWFkYWJsZSIpLFAodCl9ZnVuY3Rpb24gQSh0LGUpe2UucmVhZGluZ01vcmV8fChlLnJlYWRpbmdNb3JlPSEwLHIubmV4dFRpY2soQyx0LGUpKX1mdW5jdGlvbiBDKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoOyFlLnJlYWRpbmcmJiFlLmZsb3dpbmcmJiFlLmVuZGVkJiZlLmxlbmd0aDxlLmhpZ2hXYXRlck1hcmsmJihmKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHQucmVhZCgwKSxuIT09ZS5sZW5ndGgpOyluPWUubGVuZ3RoO2UucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gayh0KXtmKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSx0LnJlYWQoMCl9ZnVuY3Rpb24gTyh0LGUpe2UucmVhZGluZ3x8KGYoInJlc3VtZSByZWFkIDAiKSx0LnJlYWQoMCkpLGUucmVzdW1lU2NoZWR1bGVkPSExLGUuYXdhaXREcmFpbj0wLHQuZW1pdCgicmVzdW1lIiksUCh0KSxlLmZsb3dpbmcmJiFlLnJlYWRpbmcmJnQucmVhZCgwKX1mdW5jdGlvbiBQKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7Zm9yKGYoImZsb3ciLGUuZmxvd2luZyk7ZS5mbG93aW5nJiZudWxsIT09dC5yZWFkKCk7KTt9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDooZS5vYmplY3RNb2RlP249ZS5idWZmZXIuc2hpZnQoKTohdHx8dD49ZS5sZW5ndGg/KG49ZS5kZWNvZGVyP2UuYnVmZmVyLmpvaW4oIiIpOjE9PT1lLmJ1ZmZlci5sZW5ndGg/ZS5idWZmZXIuaGVhZC5kYXRhOmUuYnVmZmVyLmNvbmNhdChlLmxlbmd0aCksZS5idWZmZXIuY2xlYXIoKSk6bj1mdW5jdGlvbih0LGUsbil7dmFyIGk7dDxlLmhlYWQuZGF0YS5sZW5ndGg/KGk9ZS5oZWFkLmRhdGEuc2xpY2UoMCx0KSxlLmhlYWQuZGF0YT1lLmhlYWQuZGF0YS5zbGljZSh0KSk6aT10PT09ZS5oZWFkLmRhdGEubGVuZ3RoP2Uuc2hpZnQoKTpuP2Z1bmN0aW9uKHQsZSl7dmFyIG49ZS5oZWFkLGk9MSxyPW4uZGF0YTt0LT1yLmxlbmd0aDtmb3IoO249bi5uZXh0Oyl7dmFyIG89bi5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKHM9PT1vLmxlbmd0aD9yKz1vOnIrPW8uc2xpY2UoMCx0KSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsraSxuLm5leHQ/ZS5oZWFkPW4ubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9bixuLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytpfXJldHVybiBlLmxlbmd0aC09aSxyfSh0LGUpOmZ1bmN0aW9uKHQsZSl7dmFyIG49Yy5hbGxvY1Vuc2FmZSh0KSxpPWUuaGVhZCxyPTE7aS5kYXRhLmNvcHkobiksdC09aS5kYXRhLmxlbmd0aDtmb3IoO2k9aS5uZXh0Oyl7dmFyIG89aS5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKG8uY29weShuLG4ubGVuZ3RoLXQsMCxzKSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsrcixpLm5leHQ/ZS5oZWFkPWkubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9aSxpLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytyfXJldHVybiBlLmxlbmd0aC09cixufSh0LGUpO3JldHVybiBpfSh0LGUuYnVmZmVyLGUuZGVjb2Rlciksbik7dmFyIG59ZnVuY3Rpb24gaih0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2lmKGUubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCciZW5kUmVhZGFibGUoKSIgY2FsbGVkIG9uIG5vbi1lbXB0eSBzdHJlYW0nKTtlLmVuZEVtaXR0ZWR8fChlLmVuZGVkPSEwLHIubmV4dFRpY2soSSxlLHQpKX1mdW5jdGlvbiBJKHQsZSl7dC5lbmRFbWl0dGVkfHwwIT09dC5sZW5ndGh8fCh0LmVuZEVtaXR0ZWQ9ITAsZS5yZWFkYWJsZT0hMSxlLmVtaXQoImVuZCIpKX1mdW5jdGlvbiBMKHQsZSl7Zm9yKHZhciBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfXkucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24odCl7ZigicmVhZCIsdCksdD1wYXJzZUludCh0LDEwKTt2YXIgZT10aGlzLl9yZWFkYWJsZVN0YXRlLG49dDtpZigwIT09dCYmKGUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09dCYmZS5uZWVkUmVhZGFibGUmJihlLmxlbmd0aD49ZS5oaWdoV2F0ZXJNYXJrfHxlLmVuZGVkKSlyZXR1cm4gZigicmVhZDogZW1pdFJlYWRhYmxlIixlLmxlbmd0aCxlLmVuZGVkKSwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/aih0aGlzKTpTKHRoaXMpLG51bGw7aWYoMD09PSh0PU0odCxlKSkmJmUuZW5kZWQpcmV0dXJuIDA9PT1lLmxlbmd0aCYmaih0aGlzKSxudWxsO3ZhciBpLHI9ZS5uZWVkUmVhZGFibGU7cmV0dXJuIGYoIm5lZWQgcmVhZGFibGUiLHIpLCgwPT09ZS5sZW5ndGh8fGUubGVuZ3RoLXQ8ZS5oaWdoV2F0ZXJNYXJrKSYmZigibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLHI9ITApLGUuZW5kZWR8fGUucmVhZGluZz9mKCJyZWFkaW5nIG9yIGVuZGVkIixyPSExKTpyJiYoZigiZG8gcmVhZCIpLGUucmVhZGluZz0hMCxlLnN5bmM9ITAsMD09PWUubGVuZ3RoJiYoZS5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoZS5oaWdoV2F0ZXJNYXJrKSxlLnN5bmM9ITEsZS5yZWFkaW5nfHwodD1NKG4sZSkpKSxudWxsPT09KGk9dD4wP1QodCxlKTpudWxsKT8oZS5uZWVkUmVhZGFibGU9ITAsdD0wKTplLmxlbmd0aC09dCwwPT09ZS5sZW5ndGgmJihlLmVuZGVkfHwoZS5uZWVkUmVhZGFibGU9ITApLG4hPT10JiZlLmVuZGVkJiZqKHRoaXMpKSxudWxsIT09aSYmdGhpcy5lbWl0KCJkYXRhIixpKSxpfSx5LnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbih0KXt0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIl9yZWFkKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSx5LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKG8ucGlwZXNDb3VudCl7Y2FzZSAwOm8ucGlwZXM9dDticmVhaztjYXNlIDE6by5waXBlcz1bby5waXBlcyx0XTticmVhaztkZWZhdWx0Om8ucGlwZXMucHVzaCh0KX1vLnBpcGVzQ291bnQrPTEsZigicGlwZSBjb3VudD0lZCBvcHRzPSVqIixvLnBpcGVzQ291bnQsZSk7dmFyIHU9KCFlfHwhMSE9PWUuZW5kKSYmdCE9PWkuc3Rkb3V0JiZ0IT09aS5zdGRlcnI/aDp5O2Z1bmN0aW9uIGMoZSxpKXtmKCJvbnVucGlwZSIpLGU9PT1uJiZpJiYhMT09PWkuaGFzVW5waXBlZCYmKGkuaGFzVW5waXBlZD0hMCxmKCJjbGVhbnVwIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHQucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsYiksdC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGwpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSx0LnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLGMpLG4ucmVtb3ZlTGlzdGVuZXIoImVuZCIsaCksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIix5KSxuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixtKSxkPSEwLCFvLmF3YWl0RHJhaW58fHQuX3dyaXRhYmxlU3RhdGUmJiF0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbnx8bCgpKX1mdW5jdGlvbiBoKCl7Zigib25lbmQiKSx0LmVuZCgpfW8uZW5kRW1pdHRlZD9yLm5leHRUaWNrKHUpOm4ub25jZSgiZW5kIix1KSx0Lm9uKCJ1bnBpcGUiLGMpO3ZhciBsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7ZigicGlwZU9uRHJhaW4iLGUuYXdhaXREcmFpbiksZS5hd2FpdERyYWluJiZlLmF3YWl0RHJhaW4tLSwwPT09ZS5hd2FpdERyYWluJiZhKHQsImRhdGEiKSYmKGUuZmxvd2luZz0hMCxQKHQpKX19KG4pO3Qub24oImRyYWluIixsKTt2YXIgZD0hMTt2YXIgcD0hMTtmdW5jdGlvbiBtKGUpe2YoIm9uZGF0YSIpLHA9ITEsITEhPT10LndyaXRlKGUpfHxwfHwoKDE9PT1vLnBpcGVzQ291bnQmJm8ucGlwZXM9PT10fHxvLnBpcGVzQ291bnQ+MSYmLTEhPT1MKG8ucGlwZXMsdCkpJiYhZCYmKGYoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsbi5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKSxuLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKyxwPSEwKSxuLnBhdXNlKCkpfWZ1bmN0aW9uIGcoZSl7Zigib25lcnJvciIsZSkseSgpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSwwPT09YSh0LCJlcnJvciIpJiZ0LmVtaXQoImVycm9yIixlKX1mdW5jdGlvbiB2KCl7dC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixiKSx5KCl9ZnVuY3Rpb24gYigpe2YoIm9uZmluaXNoIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHkoKX1mdW5jdGlvbiB5KCl7ZigidW5waXBlIiksbi51bnBpcGUodCl9cmV0dXJuIG4ub24oImRhdGEiLG0pLGZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHQucHJlcGVuZExpc3RlbmVyKGUsbik7dC5fZXZlbnRzJiZ0Ll9ldmVudHNbZV0/cyh0Ll9ldmVudHNbZV0pP3QuX2V2ZW50c1tlXS51bnNoaWZ0KG4pOnQuX2V2ZW50c1tlXT1bbix0Ll9ldmVudHNbZV1dOnQub24oZSxuKX0odCwiZXJyb3IiLGcpLHQub25jZSgiY2xvc2UiLHYpLHQub25jZSgiZmluaXNoIixiKSx0LmVtaXQoInBpcGUiLG4pLG8uZmxvd2luZ3x8KGYoInBpcGUgcmVzdW1lIiksbi5yZXN1bWUoKSksdH0seS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj17aGFzVW5waXBlZDohMX07aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlcz90aGlzOih0fHwodD1lLnBpcGVzKSxlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExLHQmJnQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpO2lmKCF0KXt2YXIgaT1lLnBpcGVzLHI9ZS5waXBlc0NvdW50O2UucGlwZXM9bnVsbCxlLnBpcGVzQ291bnQ9MCxlLmZsb3dpbmc9ITE7Zm9yKHZhciBvPTA7bzxyO28rKylpW29dLmVtaXQoInVucGlwZSIsdGhpcyxuKTtyZXR1cm4gdGhpc312YXIgcz1MKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zP3RoaXM6KGUucGlwZXMuc3BsaWNlKHMsMSksZS5waXBlc0NvdW50LT0xLDE9PT1lLnBpcGVzQ291bnQmJihlLnBpcGVzPWUucGlwZXNbMF0pLHQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpfSx5LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3ZhciBuPXUucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LGUpO2lmKCJkYXRhIj09PXQpITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJnRoaXMucmVzdW1lKCk7ZWxzZSBpZigicmVhZGFibGUiPT09dCl7dmFyIGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtpLmVuZEVtaXR0ZWR8fGkucmVhZGFibGVMaXN0ZW5pbmd8fChpLnJlYWRhYmxlTGlzdGVuaW5nPWkubmVlZFJlYWRhYmxlPSEwLGkuZW1pdHRlZFJlYWRhYmxlPSExLGkucmVhZGluZz9pLmxlbmd0aCYmUyh0aGlzKTpyLm5leHRUaWNrKGssdGhpcykpfXJldHVybiBufSx5LnByb3RvdHlwZS5hZGRMaXN0ZW5lcj15LnByb3RvdHlwZS5vbix5LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiB0LmZsb3dpbmd8fChmKCJyZXN1bWUiKSx0LmZsb3dpbmc9ITAsZnVuY3Rpb24odCxlKXtlLnJlc3VtZVNjaGVkdWxlZHx8KGUucmVzdW1lU2NoZWR1bGVkPSEwLHIubmV4dFRpY2soTyx0LGUpKX0odGhpcyx0KSksdGhpc30seS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gZigiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoZigicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzfSx5LnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9yZWFkYWJsZVN0YXRlLGk9ITE7Zm9yKHZhciByIGluIHQub24oImVuZCIsZnVuY3Rpb24oKXtpZihmKCJ3cmFwcGVkIGVuZCIpLG4uZGVjb2RlciYmIW4uZW5kZWQpe3ZhciB0PW4uZGVjb2Rlci5lbmQoKTt0JiZ0Lmxlbmd0aCYmZS5wdXNoKHQpfWUucHVzaChudWxsKX0pLHQub24oImRhdGEiLGZ1bmN0aW9uKHIpeyhmKCJ3cmFwcGVkIGRhdGEiKSxuLmRlY29kZXImJihyPW4uZGVjb2Rlci53cml0ZShyKSksbi5vYmplY3RNb2RlJiZudWxsPT1yKXx8KG4ub2JqZWN0TW9kZXx8ciYmci5sZW5ndGgpJiYoZS5wdXNoKHIpfHwoaT0hMCx0LnBhdXNlKCkpKX0pLHQpdm9pZCAwPT09dGhpc1tyXSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbcl0mJih0aGlzW3JdPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdLmFwcGx5KHQsYXJndW1lbnRzKX19KHIpKTtmb3IodmFyIG89MDtvPHYubGVuZ3RoO28rKyl0Lm9uKHZbb10sdGhpcy5lbWl0LmJpbmQodGhpcyx2W29dKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oZSl7Zigid3JhcHBlZCBfcmVhZCIsZSksaSYmKGk9ITEsdC5yZXN1bWUoKSl9LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLHkuX2Zyb21MaXN0PVR9KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjApLkV2ZW50RW1pdHRlcn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQzKTtmdW5jdGlvbiByKHQsZSl7dC5lbWl0KCJlcnJvciIsZSl9dC5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkLHM9dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7cmV0dXJuIG98fHM/KGU/ZSh0KTohdHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fGkubmV4dFRpY2socix0aGlzLHQpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLGZ1bmN0aW9uKHQpeyFlJiZ0PyhpLm5leHRUaWNrKHIsbix0KSxuLl93cml0YWJsZVN0YXRlJiYobi5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITApKTplJiZlKHQpfSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXM7dmFyIGk9bigyNCkscj1uKDMyKTtmdW5jdGlvbiBvKHQsZSl7dmFyIG49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bi50cmFuc2Zvcm1pbmc9ITE7dmFyIGk9bi53cml0ZWNiO2lmKCFpKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIndyaXRlIGNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpKTtuLndyaXRlY2h1bms9bnVsbCxuLndyaXRlY2I9bnVsbCxudWxsIT1lJiZ0aGlzLnB1c2goZSksaSh0KTt2YXIgcj10aGlzLl9yZWFkYWJsZVN0YXRlO3IucmVhZGluZz0hMSwoci5uZWVkUmVhZGFibGV8fHIubGVuZ3RoPHIuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoci5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTtpLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06by5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT10LnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIHQuZmx1c2gmJih0aGlzLl9mbHVzaD10LmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixhKX1mdW5jdGlvbiBhKCl7dmFyIHQ9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fZmx1c2g/dGhpcy5fZmx1c2goZnVuY3Rpb24oZSxuKXt1KHQsZSxuKX0pOnUodGhpcyxudWxsLG51bGwpfWZ1bmN0aW9uIHUodCxlLG4pe2lmKGUpcmV0dXJuIHQuZW1pdCgiZXJyb3IiLGUpO2lmKG51bGwhPW4mJnQucHVzaChuKSx0Ll93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiB3cy5sZW5ndGggIT0gMCIpO2lmKHQuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiBzdGlsbCB0cmFuc2Zvcm1pbmciKTtyZXR1cm4gdC5wdXNoKG51bGwpfXIuaW5oZXJpdHM9bigwKSxyLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGkucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LHMucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLG4pe3Rocm93IG5ldyBFcnJvcigiX3RyYW5zZm9ybSgpIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxzLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKGkud3JpdGVjYj1uLGkud3JpdGVjaHVuaz10LGkud3JpdGVlbmNvZGluZz1lLCFpLnRyYW5zZm9ybWluZyl7dmFyIHI9dGhpcy5fcmVhZGFibGVTdGF0ZTsoaS5uZWVkVHJhbnNmb3JtfHxyLm5lZWRSZWFkYWJsZXx8ci5sZW5ndGg8ci5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChyLmhpZ2hXYXRlck1hcmspfX0scy5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbCE9PWUud3JpdGVjaHVuayYmZS53cml0ZWNiJiYhZS50cmFuc2Zvcm1pbmc/KGUudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShlLndyaXRlY2h1bmssZS53cml0ZWVuY29kaW5nLGUuYWZ0ZXJUcmFuc2Zvcm0pKTplLm5lZWRUcmFuc2Zvcm09ITB9LHMucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsdCxmdW5jdGlvbih0KXtlKHQpLG4uZW1pdCgiY2xvc2UiKX0pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sYT1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PWEsci5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGModCxlLG4pe3JldHVybiBuXnQmKGVebil9ZnVuY3Rpb24gaCh0LGUsbil7cmV0dXJuIHQmZXxuJih0fGUpfWZ1bmN0aW9uIGwodCl7cmV0dXJuKHQ+Pj4yfHQ8PDMwKV4odD4+PjEzfHQ8PDE5KV4odD4+PjIyfHQ8PDEwKX1mdW5jdGlvbiBkKHQpe3JldHVybih0Pj4+Nnx0PDwyNileKHQ+Pj4xMXx0PDwyMSleKHQ+Pj4yNXx0PDw3KX1mdW5jdGlvbiBmKHQpe3JldHVybih0Pj4+N3x0PDwyNSleKHQ+Pj4xOHx0PDwxNCledD4+PjN9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxwPTB8dGhpcy5fZixtPTB8dGhpcy5fZyxnPTB8dGhpcy5faCx2PTA7djwxNjsrK3Ypblt2XT10LnJlYWRJbnQzMkJFKDQqdik7Zm9yKDt2PDY0OysrdiluW3ZdPTB8KCgoZT1uW3YtMl0pPj4+MTd8ZTw8MTUpXihlPj4+MTl8ZTw8MTMpXmU+Pj4xMCkrblt2LTddK2Yoblt2LTE1XSkrblt2LTE2XTtmb3IodmFyIGI9MDtiPDY0OysrYil7dmFyIHk9ZytkKHUpK2ModSxwLG0pK3NbYl0rbltiXXwwLF89bChpKStoKGkscixvKXwwO2c9bSxtPXAscD11LHU9YSt5fDAsYT1vLG89cixyPWksaT15K198MH10aGlzLl9hPWkrdGhpcy5fYXwwLHRoaXMuX2I9cit0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPWErdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDAsdGhpcy5fZj1wK3RoaXMuX2Z8MCx0aGlzLl9nPW0rdGhpcy5fZ3wwLHRoaXMuX2g9Zyt0aGlzLl9ofDB9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9by5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIHQud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksdC53cml0ZUludDMyQkUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLHQud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gbl50JihlXm4pfWZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0JmV8biYodHxlKX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuKHQ+Pj4yOHxlPDw0KV4oZT4+PjJ8dDw8MzApXihlPj4+N3x0PDwyNSl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybih0Pj4+MTR8ZTw8MTgpXih0Pj4+MTh8ZTw8MTQpXihlPj4+OXx0PDwyMyl9ZnVuY3Rpb24gZih0LGUpe3JldHVybih0Pj4+MXxlPDwzMSleKHQ+Pj44fGU8PDI0KV50Pj4+N31mdW5jdGlvbiBwKHQsZSl7cmV0dXJuKHQ+Pj4xfGU8PDMxKV4odD4+Pjh8ZTw8MjQpXih0Pj4+N3xlPDwyNSl9ZnVuY3Rpb24gbSh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyledD4+PjZ9ZnVuY3Rpb24gZyh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyleKHQ+Pj42fGU8PDI2KX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQ+Pj4wPGU+Pj4wPzE6MH1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3csbj0wfHRoaXMuX2FoLGk9MHx0aGlzLl9iaCxyPTB8dGhpcy5fY2gsbz0wfHRoaXMuX2RoLGE9MHx0aGlzLl9laCx1PTB8dGhpcy5fZmgsYj0wfHRoaXMuX2doLHk9MHx0aGlzLl9oaCxfPTB8dGhpcy5fYWwsdz0wfHRoaXMuX2JsLHg9MHx0aGlzLl9jbCxNPTB8dGhpcy5fZGwsUz0wfHRoaXMuX2VsLEU9MHx0aGlzLl9mbCxBPTB8dGhpcy5fZ2wsQz0wfHRoaXMuX2hsLGs9MDtrPDMyO2srPTIpZVtrXT10LnJlYWRJbnQzMkJFKDQqayksZVtrKzFdPXQucmVhZEludDMyQkUoNCprKzQpO2Zvcig7azwxNjA7ays9Mil7dmFyIE89ZVtrLTMwXSxQPWVbay0zMCsxXSxUPWYoTyxQKSxqPXAoUCxPKSxJPW0oTz1lW2stNF0sUD1lW2stNCsxXSksTD1nKFAsTyksQj1lW2stMTRdLEQ9ZVtrLTE0KzFdLFI9ZVtrLTMyXSx6PWVbay0zMisxXSxOPWorRHwwLFc9VCtCK3YoTixqKXwwO1c9KFc9VytJK3YoTj1OK0x8MCxMKXwwKStSK3YoTj1OK3p8MCx6KXwwLGVba109VyxlW2srMV09Tn1mb3IodmFyIHE9MDtxPDE2MDtxKz0yKXtXPWVbcV0sTj1lW3ErMV07dmFyIEg9aChuLGksciksRj1oKF8sdyx4KSxWPWwobixfKSxVPWwoXyxuKSxLPWQoYSxTKSxZPWQoUyxhKSxYPXNbcV0sJD1zW3ErMV0sRz1jKGEsdSxiKSxKPWMoUyxFLEEpLFo9QytZfDAsUT15K0srdihaLEMpfDA7UT0oUT0oUT1RK0crdihaPVorSnwwLEopfDApK1grdihaPVorJHwwLCQpfDApK1crdihaPVorTnwwLE4pfDA7dmFyIHR0PVUrRnwwLGV0PVYrSCt2KHR0LFUpfDA7eT1iLEM9QSxiPXUsQT1FLHU9YSxFPVMsYT1vK1ErdihTPU0rWnwwLE0pfDAsbz1yLE09eCxyPWkseD13LGk9bix3PV8sbj1RK2V0K3YoXz1aK3R0fDAsWil8MH10aGlzLl9hbD10aGlzLl9hbCtffDAsdGhpcy5fYmw9dGhpcy5fYmwrd3wwLHRoaXMuX2NsPXRoaXMuX2NsK3h8MCx0aGlzLl9kbD10aGlzLl9kbCtNfDAsdGhpcy5fZWw9dGhpcy5fZWwrU3wwLHRoaXMuX2ZsPXRoaXMuX2ZsK0V8MCx0aGlzLl9nbD10aGlzLl9nbCtBfDAsdGhpcy5faGw9dGhpcy5faGwrQ3wwLHRoaXMuX2FoPXRoaXMuX2FoK24rdih0aGlzLl9hbCxfKXwwLHRoaXMuX2JoPXRoaXMuX2JoK2krdih0aGlzLl9ibCx3KXwwLHRoaXMuX2NoPXRoaXMuX2NoK3Irdih0aGlzLl9jbCx4KXwwLHRoaXMuX2RoPXRoaXMuX2RoK28rdih0aGlzLl9kbCxNKXwwLHRoaXMuX2VoPXRoaXMuX2VoK2Erdih0aGlzLl9lbCxTKXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK3Urdih0aGlzLl9mbCxFKXwwLHRoaXMuX2doPXRoaXMuX2doK2Irdih0aGlzLl9nbCxBKXwwLHRoaXMuX2hoPXRoaXMuX2hoK3krdih0aGlzLl9obCxDKXwwfSx1LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciB0PW8uYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIGUoZSxuLGkpe3Qud3JpdGVJbnQzMkJFKGUsaSksdC53cml0ZUludDMyQkUobixpKzQpfXJldHVybiBlKHRoaXMuX2FoLHRoaXMuX2FsLDApLGUodGhpcy5fYmgsdGhpcy5fYmwsOCksZSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksZSh0aGlzLl9maCx0aGlzLl9mbCw0MCksZSh0aGlzLl9naCx0aGlzLl9nbCw0OCksZSh0aGlzLl9oaCx0aGlzLl9obCw1NiksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oMTYxKSxvPW4oMjEpLHM9bigxKS5CdWZmZXIsYT1uKDkyKSx1PW4oNjQpLGM9big2NSksaD1zLmFsbG9jKDEyOCk7ZnVuY3Rpb24gbCh0LGUpe28uY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIGUmJihlPXMuZnJvbShlKSk7dmFyIG49InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0Oyh0aGlzLl9hbGc9dCx0aGlzLl9rZXk9ZSxlLmxlbmd0aD5uKT9lPSgicm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSkudXBkYXRlKGUpLmRpZ2VzdCgpOmUubGVuZ3RoPG4mJihlPXMuY29uY2F0KFtlLGhdLG4pKTtmb3IodmFyIGk9dGhpcy5faXBhZD1zLmFsbG9jVW5zYWZlKG4pLHI9dGhpcy5fb3BhZD1zLmFsbG9jVW5zYWZlKG4pLGE9MDthPG47YSsrKWlbYV09NTReZVthXSxyW2FdPTkyXmVbYV07dGhpcy5faGFzaD0icm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSx0aGlzLl9oYXNoLnVwZGF0ZShpKX1pKGwsbyksbC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sbC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IHU6Yyh0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKHQpLmRpZ2VzdCgpfSx0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4icm1kMTYwIj09PSh0PXQudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09dD9uZXcgbCgicm1kMTYwIixlKToibWQ1Ij09PXQ/bmV3IHIoYSxlKTpuZXcgbCh0LGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4obmV3IGkpLnVwZGF0ZSh0KS5kaWdlc3QoKX19LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17c2hhMjI0V2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSxzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJSU0EtU0hBMjU2Ijp7c2lnbjoiZWNkc2EvcnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LHNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uOntzaWduOiJyc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOntzaWduOiJlY2RzYS9yc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sc2hhNTEyV2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOntzaWduOiJyc2EiLGhhc2g6InNoYTEiLGlkOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7c2lnbjoiZWNkc2EiLGhhc2g6InNoYTEiLGlkOiIifSxzaGEyNTY6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSxzaGEyMjQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyMjQiLGlkOiIifSxzaGEzODQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSxzaGE1MTI6e3NpZ246ImVjZHNhIixoYXNoOiJzaGE1MTIiLGlkOiIifSwiRFNBLVNIQSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LCJEU0EtU0hBMSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LERTQTp7c2lnbjoiZHNhIixoYXNoOiJzaGExIixpZDoiIn0sIkRTQS1XSVRILVNIQTIyNCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMjI0IixpZDoiIn0sIkRTQS1TSEEyMjQiOntzaWduOiJkc2EiLGhhc2g6InNoYTIyNCIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOntzaWduOiJkc2EiLGhhc2g6InNoYTI1NiIsaWQ6IiJ9LCJEU0EtU0hBMjU2Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSwiRFNBLVNIQTM4NCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sIkRTQS1XSVRILVNIQTUxMiI6e3NpZ246ImRzYSIsaGFzaDoic2hhNTEyIixpZDoiIn0sIkRTQS1TSEE1MTIiOntzaWduOiJkc2EiLGhhc2g6InNoYTUxMiIsaWQ6IiJ9LCJEU0EtUklQRU1EMTYwIjp7c2lnbjoiZHNhIixoYXNoOiJybWQxNjAiLGlkOiIifSxyaXBlbWQxNjBXaXRoUlNBOntzaWduOiJyc2EiLGhhc2g6InJtZDE2MCIsaWQ6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7c2lnbjoicnNhIixoYXNoOiJybWQxNjAiLGlkOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSxtZDVXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJtZDUiLGlkOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifSwiUlNBLU1ENSI6e3NpZ246InJzYSIsaGFzaDoibWQ1IixpZDoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn19fSxmdW5jdGlvbih0LGUsbil7ZS5wYmtkZjI9bigxNjMpLGUucGJrZGYyU3luYz1uKDk3KX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgbj1NYXRoLnBvdygyLDMwKS0xO2Z1bmN0aW9uIGkodCxuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQmJiFlLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IobisiIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2lmKGkodCwiUGFzc3dvcmQiKSxpKGUsIlNhbHQiKSwibnVtYmVyIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihyPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihvPDB8fG8+bnx8byE9byl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG47ZS5icm93c2VyP249InV0Zi04IjpuPXBhcnNlSW50KGUudmVyc2lvbi5zcGxpdCgiLiIpWzBdLnNsaWNlKDEpLDEwKT49Nj8idXRmLTgiOiJiaW5hcnkiO3QuZXhwb3J0cz1ufSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oOTIpLHI9big2NCksbz1uKDY1KSxzPW4oOTUpLGE9big5NiksdT1uKDEpLkJ1ZmZlcixjPXUuYWxsb2MoMTI4KSxoPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gbCh0LGUsbil7dmFyIHM9ZnVuY3Rpb24odCl7cmV0dXJuInJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyByKS51cGRhdGUodCkuZGlnZXN0KCl9OiJtZDUiPT09dD9pOmZ1bmN0aW9uKGUpe3JldHVybiBvKHQpLnVwZGF0ZShlKS5kaWdlc3QoKX19KHQpLGE9InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0O2UubGVuZ3RoPmE/ZT1zKGUpOmUubGVuZ3RoPGEmJihlPXUuY29uY2F0KFtlLGNdLGEpKTtmb3IodmFyIGw9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGQ9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGY9MDtmPGE7ZisrKWxbZl09NTReZVtmXSxkW2ZdPTkyXmVbZl07dmFyIHA9dS5hbGxvY1Vuc2FmZShhK24rNCk7bC5jb3B5KHAsMCwwLGEpLHRoaXMuaXBhZDE9cCx0aGlzLmlwYWQyPWwsdGhpcy5vcGFkPWQsdGhpcy5hbGc9dCx0aGlzLmJsb2Nrc2l6ZT1hLHRoaXMuaGFzaD1zLHRoaXMuc2l6ZT1oW3RdfWwucHJvdG90eXBlLnJ1bj1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNvcHkoZSx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKGUpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGkscil7cyh0LGUsbixpKSx1LmlzQnVmZmVyKHQpfHwodD11LmZyb20odCxhKSksdS5pc0J1ZmZlcihlKXx8KGU9dS5mcm9tKGUsYSkpO3ZhciBvPW5ldyBsKHI9cnx8InNoYTEiLHQsZS5sZW5ndGgpLGM9dS5hbGxvY1Vuc2FmZShpKSxkPXUuYWxsb2NVbnNhZmUoZS5sZW5ndGgrNCk7ZS5jb3B5KGQsMCwwLGUubGVuZ3RoKTtmb3IodmFyIGY9MCxwPWhbcl0sbT1NYXRoLmNlaWwoaS9wKSxnPTE7Zzw9bTtnKyspe2Qud3JpdGVVSW50MzJCRShnLGUubGVuZ3RoKTtmb3IodmFyIHY9by5ydW4oZCxvLmlwYWQxKSxiPXYseT0xO3k8bjt5Kyspe2I9by5ydW4oYixvLmlwYWQyKTtmb3IodmFyIF89MDtfPHA7XysrKXZbX11ePWJbX119di5jb3B5KGMsZiksZis9cH1yZXR1cm4gY319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKSxyPW4oMSkuQnVmZmVyLG89big5OSk7ZnVuY3Rpb24gcyh0KXt2YXIgZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrUmF3KHQuX3ByZXYpO3JldHVybiBvKHQuX3ByZXYpLGV9ZS5lbmNyeXB0PWZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5jZWlsKGUubGVuZ3RoLzE2KSxvPXQuX2NhY2hlLmxlbmd0aDt0Ll9jYWNoZT1yLmNvbmNhdChbdC5fY2FjaGUsci5hbGxvY1Vuc2FmZSgxNipuKV0pO2Zvcih2YXIgYT0wO2E8bjthKyspe3ZhciB1PXModCksYz1vKzE2KmE7dC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzBdLGMrMCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzFdLGMrNCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzJdLGMrOCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzNdLGMrMTIpfXZhciBoPXQuX2NhY2hlLnNsaWNlKDAsZS5sZW5ndGgpO3JldHVybiB0Ll9jYWNoZT10Ll9jYWNoZS5zbGljZShlLmxlbmd0aCksaShlLGgpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dC5sZW5ndGg7bi0tOyl7aWYoMjU1IT09KGU9dC5yZWFkVUludDgobikpKXtlKyssdC53cml0ZVVJbnQ4KGUsbik7YnJlYWt9dC53cml0ZVVJbnQ4KDAsbil9fX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiYWVzLTEyOC1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTE5Mi1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jYmMiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDQkMiLHR5cGU6ImJsb2NrIn0sImFlcy0xOTItY2JjIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxMjg6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxOTI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMyNTY6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCOCIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiOCI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjgiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkI4Iix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCMSIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiMSI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjEiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkIxIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJPRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLW9mYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6Ik9GQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiT0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDVFIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWN0ciI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNUUiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ1RSIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTE5Mi1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTI1Ni1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ1KSxyPW4oMSkuQnVmZmVyLG89bigyMSkscz1uKDApLGE9bigxNzgpLHU9bigzMyksYz1uKDk5KTtmdW5jdGlvbiBoKHQsZSxuLHMpe28uY2FsbCh0aGlzKTt2YXIgdT1yLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpLkFFUyhlKTt2YXIgaD10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHUpO3RoaXMuX2doYXNoPW5ldyBhKGgpLG49ZnVuY3Rpb24odCxlLG4pe2lmKDEyPT09ZS5sZW5ndGgpcmV0dXJuIHQuX2ZpbklEPXIuY29uY2F0KFtlLHIuZnJvbShbMCwwLDAsMV0pXSksci5jb25jYXQoW2Usci5mcm9tKFswLDAsMCwyXSldKTt2YXIgaT1uZXcgYShuKSxvPWUubGVuZ3RoLHM9byUxNjtpLnVwZGF0ZShlKSxzJiYocz0xNi1zLGkudXBkYXRlKHIuYWxsb2MocywwKSkpLGkudXBkYXRlKHIuYWxsb2MoOCwwKSk7dmFyIHU9OCpvLGg9ci5hbGxvYyg4KTtoLndyaXRlVUludEJFKHUsMCw4KSxpLnVwZGF0ZShoKSx0Ll9maW5JRD1pLnN0YXRlO3ZhciBsPXIuZnJvbSh0Ll9maW5JRCk7cmV0dXJuIGMobCksbH0odGhpcyxuLGgpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9dCx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfXMoaCxvKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBlPTE2LXRoaXMuX2FsZW4lMTY7ZTwxNiYmKGU9ci5hbGxvYyhlLDApLHRoaXMuX2doYXNoLnVwZGF0ZShlKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciBuPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLHQpO3JldHVybiB0aGlzLl9kZWNyeXB0P3RoaXMuX2doYXNoLnVwZGF0ZSh0KTp0aGlzLl9naGFzaC51cGRhdGUobiksdGhpcy5fbGVuKz10Lmxlbmd0aCxufSxoLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWNyeXB0JiYhdGhpcy5fYXV0aFRhZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3ZhciB0PXUodGhpcy5fZ2hhc2guZmluYWwoOCp0aGlzLl9hbGVuLDgqdGhpcy5fbGVuKSx0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHRoaXMuX2ZpbklEKSk7aWYodGhpcy5fZGVjcnlwdCYmZnVuY3Rpb24odCxlKXt2YXIgbj0wO3QubGVuZ3RoIT09ZS5sZW5ndGgmJm4rKztmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLHI9MDtyPGk7KytyKW4rPXRbcl1eZVtyXTtyZXR1cm4gbn0odCx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9dCx0aGlzLl9jaXBoZXIuc2NydWIoKX0saC5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFyLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30saC5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbih0KXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz10fSxoLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKHQpLHRoaXMuX2FsZW4rPXQubGVuZ3RofSx0LmV4cG9ydHM9aH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNDUpLHI9bigxKS5CdWZmZXIsbz1uKDIxKTtmdW5jdGlvbiBzKHQsZSxuLHMpe28uY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IGkuQUVTKGUpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fbW9kZT10fW4oMCkocyxvKSxzLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyx0LHRoaXMuX2RlY3J5cHQpfSxzLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sdC5leHBvcnRzPXN9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3KTt0LmV4cG9ydHM9YixiLnNpbXBsZVNpZXZlPWcsYi5mZXJtYXRUZXN0PXY7dmFyIHI9bigzKSxvPW5ldyByKDI0KSxzPW5ldyhuKDEwNCkpLGE9bmV3IHIoMSksdT1uZXcgcigyKSxjPW5ldyByKDUpLGg9KG5ldyByKDE2KSxuZXcgcig4KSxuZXcgcigxMCkpLGw9bmV3IHIoMyksZD0obmV3IHIoNyksbmV3IHIoMTEpKSxmPW5ldyByKDQpLHA9KG5ldyByKDEyKSxudWxsKTtmdW5jdGlvbiBtKCl7aWYobnVsbCE9PXApcmV0dXJuIHA7dmFyIHQ9W107dFswXT0yO2Zvcih2YXIgZT0xLG49MztuPDEwNDg1NzY7bis9Mil7Zm9yKHZhciBpPU1hdGguY2VpbChNYXRoLnNxcnQobikpLHI9MDtyPGUmJnRbcl08PWkmJm4ldFtyXSE9MDtyKyspO2UhPT1yJiZ0W3JdPD1pfHwodFtlKytdPW4pfXJldHVybiBwPXQsdH1mdW5jdGlvbiBnKHQpe2Zvcih2YXIgZT1tKCksbj0wO248ZS5sZW5ndGg7bisrKWlmKDA9PT10Lm1vZG4oZVtuXSkpcmV0dXJuIDA9PT10LmNtcG4oZVtuXSk7cmV0dXJuITB9ZnVuY3Rpb24gdih0KXt2YXIgZT1yLm1vbnQodCk7cmV0dXJuIDA9PT11LnRvUmVkKGUpLnJlZFBvdyh0LnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIGIodCxlKXtpZih0PDE2KXJldHVybiBuZXcgcigyPT09ZXx8NT09PWU/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgbixwO2ZvcihlPW5ldyByKGUpOzspe2ZvcihuPW5ldyByKGkoTWF0aC5jZWlsKHQvOCkpKTtuLmJpdExlbmd0aCgpPnQ7KW4uaXNocm4oMSk7aWYobi5pc0V2ZW4oKSYmbi5pYWRkKGEpLG4udGVzdG4oMSl8fG4uaWFkZCh1KSxlLmNtcCh1KSl7aWYoIWUuY21wKGMpKWZvcig7bi5tb2QoaCkuY21wKGwpOyluLmlhZGQoZil9ZWxzZSBmb3IoO24ubW9kKG8pLmNtcChkKTspbi5pYWRkKGYpO2lmKGcocD1uLnNocm4oMSkpJiZnKG4pJiZ2KHApJiZ2KG4pJiZzLnRlc3QocCkmJnMudGVzdChuKSlyZXR1cm4gbn19fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzKSxyPW4oMTA1KTtmdW5jdGlvbiBvKHQpe3RoaXMucmFuZD10fHxuZXcgci5SYW5kfXQuZXhwb3J0cz1vLG8uY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbyh0KX0sby5wcm90b3R5cGUuX3JhbmRiZWxvdz1mdW5jdGlvbih0KXt2YXIgZT10LmJpdExlbmd0aCgpLG49TWF0aC5jZWlsKGUvOCk7ZG97dmFyIHI9bmV3IGkodGhpcy5yYW5kLmdlbmVyYXRlKG4pKX13aGlsZShyLmNtcCh0KT49MCk7cmV0dXJuIHJ9LG8ucHJvdG90eXBlLl9yYW5kcmFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnN1Yih0KTtyZXR1cm4gdC5hZGQodGhpcy5fcmFuZGJlbG93KG4pKX0sby5wcm90b3R5cGUudGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIHI9dC5iaXRMZW5ndGgoKSxvPWkubW9udCh0KSxzPW5ldyBpKDEpLnRvUmVkKG8pO2V8fChlPU1hdGgubWF4KDEsci80OHwwKSk7Zm9yKHZhciBhPXQuc3VibigxKSx1PTA7IWEudGVzdG4odSk7dSsrKTtmb3IodmFyIGM9dC5zaHJuKHUpLGg9YS50b1JlZChvKTtlPjA7ZS0tKXt2YXIgbD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMiksYSk7biYmbihsKTt2YXIgZD1sLnRvUmVkKG8pLnJlZFBvdyhjKTtpZigwIT09ZC5jbXAocykmJjAhPT1kLmNtcChoKSl7Zm9yKHZhciBmPTE7Zjx1O2YrKyl7aWYoMD09PShkPWQucmVkU3FyKCkpLmNtcChzKSlyZXR1cm4hMTtpZigwPT09ZC5jbXAoaCkpYnJlYWt9aWYoZj09PXUpcmV0dXJuITF9fXJldHVybiEwfSxvLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5iaXRMZW5ndGgoKSxyPWkubW9udCh0KSxvPW5ldyBpKDEpLnRvUmVkKHIpO2V8fChlPU1hdGgubWF4KDEsbi80OHwwKSk7Zm9yKHZhciBzPXQuc3VibigxKSxhPTA7IXMudGVzdG4oYSk7YSsrKTtmb3IodmFyIHU9dC5zaHJuKGEpLGM9cy50b1JlZChyKTtlPjA7ZS0tKXt2YXIgaD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMikscyksbD10LmdjZChoKTtpZigwIT09bC5jbXBuKDEpKXJldHVybiBsO3ZhciBkPWgudG9SZWQocikucmVkUG93KHUpO2lmKDAhPT1kLmNtcChvKSYmMCE9PWQuY21wKGMpKXtmb3IodmFyIGY9MTtmPGE7ZisrKXtpZigwPT09KGQ9ZC5yZWRTcXIoKSkuY21wKG8pKXJldHVybiBkLmZyb21SZWQoKS5zdWJuKDEpLmdjZCh0KTtpZigwPT09ZC5jbXAoYykpYnJlYWt9aWYoZj09PWEpcmV0dXJuKGQ9ZC5yZWRTcXIoKSkuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKHQpfX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtmdW5jdGlvbiByKHQpe3RoaXMucmFuZD10fWlmKHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaXx8KGk9bmV3IHIobnVsbCkpLGkuZ2VuZXJhdGUodCl9LHQuZXhwb3J0cy5SYW5kPXIsci5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhbmQodCl9LHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKHQpO2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0KSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBlfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz9yLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGUpLGV9OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP3IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKSxlfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRyeXt2YXIgbz1uKDE4Myk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIik7ci5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8ucmFuZG9tQnl0ZXModCl9fWNhdGNoKHQpe319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtmdW5jdGlvbiByKHQpe3JldHVybiAxPT09dC5sZW5ndGg/IjAiK3Q6dH1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0Lmxlbmd0aDtuKyspZSs9cih0W25dLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGV9aS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5zbGljZSgpO2lmKCF0KXJldHVybltdO3ZhciBuPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspbltpXT0wfHRbaV07cmV0dXJuIG59aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLGk9MDtpPHQubGVuZ3RoO2krPTIpbi5wdXNoKHBhcnNlSW50KHRbaV0rdFtpKzFdLDE2KSk7ZWxzZSBmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgcj10LmNoYXJDb2RlQXQoaSksbz1yPj44LHM9MjU1JnI7bz9uLnB1c2gobyxzKTpuLnB1c2gocyl9cmV0dXJuIG59LGkuemVybzI9cixpLnRvSGV4PW8saS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4iaGV4Ij09PWU/byh0KTp0fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KS5yb3RyMzI7ZnVuY3Rpb24gcih0LGUsbil7cmV0dXJuIHQmZV5+dCZufWZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiB0JmVedCZuXmUmbn1mdW5jdGlvbiBzKHQsZSxuKXtyZXR1cm4gdF5lXm59ZS5mdF8xPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiAwPT09dD9yKGUsbixpKToxPT09dHx8Mz09PXQ/cyhlLG4saSk6Mj09PXQ/byhlLG4saSk6dm9pZCAwfSxlLmNoMzI9cixlLm1hajMyPW8sZS5wMzI9cyxlLnMwXzI1Nj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LDIpXmkodCwxMyleaSh0LDIyKX0sZS5zMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCw2KV5pKHQsMTEpXmkodCwyNSl9LGUuZzBfMjU2PWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsNyleaSh0LDE4KV50Pj4+M30sZS5nMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCwxNyleaSh0LDE5KV50Pj4+MTB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDEwNykscz1uKDE0KSxhPWkuc3VtMzIsdT1pLnN1bTMyXzQsYz1pLnN1bTMyXzUsaD1vLmNoMzIsbD1vLm1hajMyLGQ9by5zMF8yNTYsZj1vLnMxXzI1NixwPW8uZzBfMjU2LG09by5nMV8yNTYsZz1yLkJsb2NrSGFzaCx2PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIGIoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBiKSlyZXR1cm4gbmV3IGI7Zy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz12LHRoaXMuVz1uZXcgQXJyYXkoNjQpfWkuaW5oZXJpdHMoYixnKSx0LmV4cG9ydHM9YixiLmJsb2NrU2l6ZT01MTIsYi5vdXRTaXplPTI1NixiLmhtYWNTdHJlbmd0aD0xOTIsYi5wYWRMZW5ndGg9NjQsYi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLlcsaT0wO2k8MTY7aSsrKW5baV09dFtlK2ldO2Zvcig7aTxuLmxlbmd0aDtpKyspbltpXT11KG0obltpLTJdKSxuW2ktN10scChuW2ktMTVdKSxuW2ktMTZdKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0sZz10aGlzLmhbMl0sdj10aGlzLmhbM10sYj10aGlzLmhbNF0seT10aGlzLmhbNV0sXz10aGlzLmhbNl0sdz10aGlzLmhbN107Zm9yKHModGhpcy5rLmxlbmd0aD09PW4ubGVuZ3RoKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciB4PWModyxmKGIpLGgoYix5LF8pLHRoaXMua1tpXSxuW2ldKSxNPWEoZChyKSxsKHIsbyxnKSk7dz1fLF89eSx5PWIsYj1hKHYseCksdj1nLGc9byxvPXIscj1hKHgsTSl9dGhpcy5oWzBdPWEodGhpcy5oWzBdLHIpLHRoaXMuaFsxXT1hKHRoaXMuaFsxXSxvKSx0aGlzLmhbMl09YSh0aGlzLmhbMl0sZyksdGhpcy5oWzNdPWEodGhpcy5oWzNdLHYpLHRoaXMuaFs0XT1hKHRoaXMuaFs0XSxiKSx0aGlzLmhbNV09YSh0aGlzLmhbNV0seSksdGhpcy5oWzZdPWEodGhpcy5oWzZdLF8pLHRoaXMuaFs3XT1hKHRoaXMuaFs3XSx3KX0sYi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDE0KSxzPWkucm90cjY0X2hpLGE9aS5yb3RyNjRfbG8sdT1pLnNocjY0X2hpLGM9aS5zaHI2NF9sbyxoPWkuc3VtNjQsbD1pLnN1bTY0X2hpLGQ9aS5zdW02NF9sbyxmPWkuc3VtNjRfNF9oaSxwPWkuc3VtNjRfNF9sbyxtPWkuc3VtNjRfNV9oaSxnPWkuc3VtNjRfNV9sbyx2PXIuQmxvY2tIYXNoLGI9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiB5KCl7aWYoISh0aGlzIGluc3RhbmNlb2YgeSkpcmV0dXJuIG5ldyB5O3YuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1iLHRoaXMuVz1uZXcgQXJyYXkoMTYwKX1mdW5jdGlvbiBfKHQsZSxuLGkscil7dmFyIG89dCZuXn50JnI7cmV0dXJuIG88MCYmKG8rPTQyOTQ5NjcyOTYpLG99ZnVuY3Rpb24gdyh0LGUsbixpLHIsbyl7dmFyIHM9ZSZpXn5lJm87cmV0dXJuIHM8MCYmKHMrPTQyOTQ5NjcyOTYpLHN9ZnVuY3Rpb24geCh0LGUsbixpLHIpe3ZhciBvPXQmbl50JnJebiZyO3JldHVybiBvPDAmJihvKz00Mjk0OTY3Mjk2KSxvfWZ1bmN0aW9uIE0odCxlLG4saSxyLG8pe3ZhciBzPWUmaV5lJm9eaSZvO3JldHVybiBzPDAmJihzKz00Mjk0OTY3Mjk2KSxzfWZ1bmN0aW9uIFModCxlKXt2YXIgbj1zKHQsZSwyOClecyhlLHQsMilecyhlLHQsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gRSh0LGUpe3ZhciBuPWEodCxlLDI4KV5hKGUsdCwyKV5hKGUsdCw3KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBBKHQsZSl7dmFyIG49cyh0LGUsMTQpXnModCxlLDE4KV5zKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBDKHQsZSl7dmFyIG49YSh0LGUsMTQpXmEodCxlLDE4KV5hKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBrKHQsZSl7dmFyIG49cyh0LGUsMSlecyh0LGUsOCledSh0LGUsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gTyh0LGUpe3ZhciBuPWEodCxlLDEpXmEodCxlLDgpXmModCxlLDcpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFAodCxlKXt2YXIgbj1zKHQsZSwxOSlecyhlLHQsMjkpXnUodCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFQodCxlKXt2YXIgbj1hKHQsZSwxOSleYShlLHQsMjkpXmModCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWkuaW5oZXJpdHMoeSx2KSx0LmV4cG9ydHM9eSx5LmJsb2NrU2l6ZT0xMDI0LHkub3V0U2l6ZT01MTIseS5obWFjU3RyZW5ndGg9MTkyLHkucGFkTGVuZ3RoPTEyOCx5LnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMuVyxpPTA7aTwzMjtpKyspbltpXT10W2UraV07Zm9yKDtpPG4ubGVuZ3RoO2krPTIpe3ZhciByPVAobltpLTRdLG5baS0zXSksbz1UKG5baS00XSxuW2ktM10pLHM9bltpLTE0XSxhPW5baS0xM10sdT1rKG5baS0zMF0sbltpLTI5XSksYz1PKG5baS0zMF0sbltpLTI5XSksaD1uW2ktMzJdLGw9bltpLTMxXTtuW2ldPWYocixvLHMsYSx1LGMsaCxsKSxuW2krMV09cChyLG8scyxhLHUsYyxoLGwpfX0seS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ByZXBhcmVCbG9jayh0LGUpO3ZhciBuPXRoaXMuVyxpPXRoaXMuaFswXSxyPXRoaXMuaFsxXSxzPXRoaXMuaFsyXSxhPXRoaXMuaFszXSx1PXRoaXMuaFs0XSxjPXRoaXMuaFs1XSxmPXRoaXMuaFs2XSxwPXRoaXMuaFs3XSx2PXRoaXMuaFs4XSxiPXRoaXMuaFs5XSx5PXRoaXMuaFsxMF0saz10aGlzLmhbMTFdLE89dGhpcy5oWzEyXSxQPXRoaXMuaFsxM10sVD10aGlzLmhbMTRdLGo9dGhpcy5oWzE1XTtvKHRoaXMuay5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciBJPTA7STxuLmxlbmd0aDtJKz0yKXt2YXIgTD1ULEI9aixEPUEodixiKSxSPUModixiKSx6PV8odixiLHksayxPKSxOPXcodixiLHksayxPLFApLFc9dGhpcy5rW0ldLHE9dGhpcy5rW0krMV0sSD1uW0ldLEY9bltJKzFdLFY9bShMLEIsRCxSLHosTixXLHEsSCxGKSxVPWcoTCxCLEQsUix6LE4sVyxxLEgsRik7TD1TKGksciksQj1FKGksciksRD14KGkscixzLGEsdSksUj1NKGkscixzLGEsdSxjKTt2YXIgSz1sKEwsQixELFIpLFk9ZChMLEIsRCxSKTtUPU8saj1QLE89eSxQPWsseT12LGs9Yix2PWwoZixwLFYsVSksYj1kKHAscCxWLFUpLGY9dSxwPWMsdT1zLGM9YSxzPWksYT1yLGk9bChWLFUsSyxZKSxyPWQoVixVLEssWSl9aCh0aGlzLmgsMCxpLHIpLGgodGhpcy5oLDIscyxhKSxoKHRoaXMuaCw0LHUsYyksaCh0aGlzLmgsNixmLHApLGgodGhpcy5oLDgsdixiKSxoKHRoaXMuaCwxMCx5LGspLGgodGhpcy5oLDEyLE8sUCksaCh0aGlzLmgsMTQsVCxqKX0seS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzYpLlJlcG9ydGVyLG89big0KS5CdWZmZXI7ZnVuY3Rpb24gcyh0LGUpe3IuY2FsbCh0aGlzLGUpLG8uaXNCdWZmZXIodCk/KHRoaXMuYmFzZT10LHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9dC5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBhKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhfHwodD1uZXcgYSh0LGUpKSx0aGlzLmxlbmd0aCs9dC5sZW5ndGgsdH0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCEoMDw9dCYmdDw9MjU1KSlyZXR1cm4gZS5lcnJvcigibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZSIpO3RoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KXRoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD1vLmJ5dGVMZW5ndGgodCk7ZWxzZXtpZighby5pc0J1ZmZlcih0KSlyZXR1cm4gZS5lcnJvcigiVW5zdXBwb3J0ZWQgdHlwZTogIit0eXBlb2YgdCk7dGhpcy52YWx1ZT10LHRoaXMubGVuZ3RoPXQubGVuZ3RofX1pKHMsciksZS5EZWNvZGVyQnVmZmVyPXMscy5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6dGhpcy5vZmZzZXQscmVwb3J0ZXI6ci5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0scy5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBlLm9mZnNldD10Lm9mZnNldCxlLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD10Lm9mZnNldCxyLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyx0LnJlcG9ydGVyKSxlfSxzLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LHMucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKHR8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0scy5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbih0LGUpe2lmKCEodGhpcy5vZmZzZXQrdDw9dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzLmVycm9yKGV8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKTt2YXIgbj1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBuLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsbi5vZmZzZXQ9dGhpcy5vZmZzZXQsbi5sZW5ndGg9dGhpcy5vZmZzZXQrdCx0aGlzLm9mZnNldCs9dCxufSxzLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZSh0P3Qub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sZS5FbmNvZGVyQnVmZmVyPWEsYS5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0LGUpe3JldHVybiB0fHwodD1uZXcgbyh0aGlzLmxlbmd0aCkpLGV8fChlPTApLDA9PT10aGlzLmxlbmd0aD90OihBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihuKXtuLmpvaW4odCxlKSxlKz1uLmxlbmd0aH0pOigibnVtYmVyIj09dHlwZW9mIHRoaXMudmFsdWU/dFtlXT10aGlzLnZhbHVlOiJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZT90LndyaXRlKHRoaXMudmFsdWUsZSk6by5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KHQsZSksZSs9dGhpcy5sZW5ndGgpLHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5fcmV2ZXJzZT1mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXsoMHxuKT09biYmKG58PTApO3ZhciBpPXRbbl07ZVtpXT1ufSksZX0saS5kZXI9bigyMTUpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzUpLG89ci5iYXNlLHM9ci5iaWdudW0sYT1yLmNvbnN0YW50cy5kZXI7ZnVuY3Rpb24gdSh0KXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZW50aXR5PXQsdGhpcy50cmVlPW5ldyBjLHRoaXMudHJlZS5faW5pdCh0LmJvZHkpfWZ1bmN0aW9uIGModCl7by5Ob2RlLmNhbGwodGhpcywiZGVyIix0KX1mdW5jdGlvbiBoKHQsZSl7dmFyIG49dC5yZWFkVUludDgoZSk7aWYodC5pc0Vycm9yKG4pKXJldHVybiBuO3ZhciBpPWEudGFnQ2xhc3Nbbj4+Nl0scj0wPT0oMzImbik7aWYoMzE9PSgzMSZuKSl7dmFyIG89bjtmb3Iobj0wOzEyOD09KDEyOCZvKTspe2lmKG89dC5yZWFkVUludDgoZSksdC5pc0Vycm9yKG8pKXJldHVybiBvO248PD03LG58PTEyNyZvfX1lbHNlIG4mPTMxO3JldHVybntjbHM6aSxwcmltaXRpdmU6cix0YWc6bix0YWdTdHI6YS50YWdbbl19fWZ1bmN0aW9uIGwodCxlLG4pe3ZhciBpPXQucmVhZFVJbnQ4KG4pO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZighZSYmMTI4PT09aSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JmkpKXJldHVybiBpO3ZhciByPTEyNyZpO2lmKHI+NClyZXR1cm4gdC5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO2k9MDtmb3IodmFyIG89MDtvPHI7bysrKXtpPDw9ODt2YXIgcz10LnJlYWRVSW50OChuKTtpZih0LmlzRXJyb3IocykpcmV0dXJuIHM7aXw9c31yZXR1cm4gaX10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIG8uRGVjb2RlckJ1ZmZlcnx8KHQ9bmV3IG8uRGVjb2RlckJ1ZmZlcih0LGUpKSx0aGlzLnRyZWUuX2RlY29kZSh0LGUpfSxpKGMsby5Ob2RlKSxjLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbih0LGUsbil7aWYodC5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIGk9dC5zYXZlKCkscj1oKHQsJ0ZhaWxlZCB0byBwZWVrIHRhZzogIicrZSsnIicpO3JldHVybiB0LmlzRXJyb3Iocik/cjoodC5yZXN0b3JlKGkpLHIudGFnPT09ZXx8ci50YWdTdHI9PT1lfHxyLnRhZ1N0cisib2YiPT09ZXx8bil9LGMucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWgodCwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrZSsnIicpO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTt2YXIgcj1sKHQsaS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK2UrJyInKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoIW4mJmkudGFnIT09ZSYmaS50YWdTdHIhPT1lJiZpLnRhZ1N0cisib2YiIT09ZSlyZXR1cm4gdC5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrZSsnIicpO2lmKGkucHJpbWl0aXZlfHxudWxsIT09cilyZXR1cm4gdC5za2lwKHIsJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytlKyciJyk7dmFyIG89dC5zYXZlKCkscz10aGlzLl9za2lwVW50aWxFbmQodCwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gdC5pc0Vycm9yKHMpP3M6KHI9dC5vZmZzZXQtby5vZmZzZXQsdC5yZXN0b3JlKG8pLHQuc2tpcChyLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrZSsnIicpKX0sYy5wcm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbih0LGUpe2Zvcig7Oyl7dmFyIG49aCh0LGUpO2lmKHQuaXNFcnJvcihuKSlyZXR1cm4gbjt2YXIgaSxyPWwodCxuLnByaW1pdGl2ZSxlKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoaT1uLnByaW1pdGl2ZXx8bnVsbCE9PXI/dC5za2lwKHIpOnRoaXMuX3NraXBVbnRpbEVuZCh0LGUpLHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZigiZW5kIj09PW4udGFnU3RyKWJyZWFrfX0sYy5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdOyF0LmlzRW1wdHkoKTspe3ZhciBvPXRoaXMuX3BlZWtUYWcodCwiZW5kIik7aWYodC5pc0Vycm9yKG8pKXJldHVybiBvO3ZhciBzPW4uZGVjb2RlKHQsImRlciIsaSk7aWYodC5pc0Vycm9yKHMpJiZvKWJyZWFrO3IucHVzaChzKX1yZXR1cm4gcn0sYy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbih0LGUpe2lmKCJiaXRzdHIiPT09ZSl7dmFyIG49dC5yZWFkVUludDgoKTtyZXR1cm4gdC5pc0Vycm9yKG4pP246e3VudXNlZDpuLGRhdGE6dC5yYXcoKX19aWYoImJtcHN0ciI9PT1lKXt2YXIgaT10LnJhdygpO2lmKGkubGVuZ3RoJTI9PTEpcmV0dXJuIHQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7Zm9yKHZhciByPSIiLG89MDtvPGkubGVuZ3RoLzI7bysrKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaS5yZWFkVUludDE2QkUoMipvKSk7cmV0dXJuIHJ9aWYoIm51bXN0ciI9PT1lKXt2YXIgcz10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihzKT9zOnQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09ZSlyZXR1cm4gdC5yYXcoKTtpZigib2JqRGVzYyI9PT1lKXJldHVybiB0LnJhdygpO2lmKCJwcmludHN0ciI9PT1lKXt2YXIgYT10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGEpP2E6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1yZXR1cm4vc3RyJC8udGVzdChlKT90LnJhdygpLnRvU3RyaW5nKCk6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrZSsiIHVuc3VwcG9ydGVkIil9LGMucHJvdG90eXBlLl9kZWNvZGVPYmppZD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHI9W10sbz0wOyF0LmlzRW1wdHkoKTspe3ZhciBzPXQucmVhZFVJbnQ4KCk7bzw8PTcsb3w9MTI3JnMsMD09KDEyOCZzKSYmKHIucHVzaChvKSxvPTApfTEyOCZzJiZyLnB1c2gobyk7dmFyIGE9clswXS80MHwwLHU9clswXSU0MDtpZihpPW4/cjpbYSx1XS5jb25jYXQoci5zbGljZSgxKSksZSl7dmFyIGM9ZVtpLmpvaW4oIiAiKV07dm9pZCAwPT09YyYmKGM9ZVtpLmpvaW4oIi4iKV0pLHZvaWQgMCE9PWMmJihpPWMpfXJldHVybiBpfSxjLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCkudG9TdHJpbmcoKTtpZigiZ2VudGltZSI9PT1lKXZhciBpPTB8bi5zbGljZSgwLDQpLHI9MHxuLnNsaWNlKDQsNiksbz0wfG4uc2xpY2UoNiw4KSxzPTB8bi5zbGljZSg4LDEwKSxhPTB8bi5zbGljZSgxMCwxMiksdT0wfG4uc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3RpbWUiIT09ZSlyZXR1cm4gdC5lcnJvcigiRGVjb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpO2k9MHxuLnNsaWNlKDAsMikscj0wfG4uc2xpY2UoMiw0KSxvPTB8bi5zbGljZSg0LDYpLHM9MHxuLnNsaWNlKDYsOCksYT0wfG4uc2xpY2UoOCwxMCksdT0wfG4uc2xpY2UoMTAsMTIpO2k9aTw3MD8yZTMraToxOTAwK2l9cmV0dXJuIERhdGUuVVRDKGksci0xLG8scyxhLHUsMCl9LGMucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxjLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbih0KXt2YXIgZT10LnJlYWRVSW50OCgpO3JldHVybiB0LmlzRXJyb3IoZSk/ZTowIT09ZX0sYy5wcm90b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCksaT1uZXcgcyhuKTtyZXR1cm4gZSYmKGk9ZVtpLnRvU3RyaW5nKDEwKV18fGkpLGl9LGMucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dChlKSksdC5fZ2V0RGVjb2RlcigiZGVyIikudHJlZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDM1KSxzPW8uYmFzZSxhPW8uY29uc3RhbnRzLmRlcjtmdW5jdGlvbiB1KHQpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5lbnRpdHk9dCx0aGlzLnRyZWU9bmV3IGMsdGhpcy50cmVlLl9pbml0KHQuYm9keSl9ZnVuY3Rpb24gYyh0KXtzLk5vZGUuY2FsbCh0aGlzLCJkZXIiLHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ8MTA/IjAiK3Q6dH10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUodCxlKS5qb2luKCl9LGkoYyxzLk5vZGUpLGMucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIG8scz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcjsic2Vxb2YiPT09dD90PSJzZXEiOiJzZXRvZiI9PT10JiYodD0ic2V0Iik7aWYoYS50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkodCkpcj1hLnRhZ0J5TmFtZVt0XTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgdHx8KDB8dCkhPT10KXJldHVybiBpLmVycm9yKCJVbmtub3duIHRhZzogIit0KTtyPXR9aWYocj49MzEpcmV0dXJuIGkuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpO2V8fChyfD0zMik7cmV0dXJuIHJ8PWEudGFnQ2xhc3NCeU5hbWVbbnx8InVuaXZlcnNhbCJdPDw2fSh0LGUsbix0aGlzLnJlcG9ydGVyKTtpZihpLmxlbmd0aDwxMjgpcmV0dXJuKG89bmV3IHIoMikpWzBdPXMsb1sxXT1pLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtvLGldKTtmb3IodmFyIHU9MSxjPWkubGVuZ3RoO2M+PTI1NjtjPj49OCl1Kys7KG89bmV3IHIoMit1KSlbMF09cyxvWzFdPTEyOHx1O2M9MSt1O2Zvcih2YXIgaD1pLmxlbmd0aDtoPjA7Yy0tLGg+Pj04KW9bY109MjU1Jmg7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW28saV0pfSxjLnByb3RvdHlwZS5fZW5jb2RlU3RyPWZ1bmN0aW9uKHQsZSl7aWYoImJpdHN0ciI9PT1lKXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfHQudW51c2VkLHQuZGF0YV0pO2lmKCJibXBzdHIiPT09ZSl7Zm9yKHZhciBuPW5ldyByKDIqdC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoO2krKyluLndyaXRlVUludDE2QkUodC5jaGFyQ29kZUF0KGkpLDIqaSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobil9cmV0dXJuIm51bXN0ciI9PT1lP3RoaXMuX2lzTnVtc3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09ZT90aGlzLl9pc1ByaW50c3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChlKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpOiJvYmpEZXNjIj09PWU/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcih0KTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitlKyIgdW5zdXBwb3J0ZWQiKX0sYy5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKHQsZSxuKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7dD1lW3RdLnNwbGl0KC9bXHNcLl0rL2cpO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt0PXQuc2xpY2UoKTtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeSh0KSk7aWYoIW4pe2lmKHRbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTt0LnNwbGljZSgwLDIsNDAqdFswXSt0WzFdKX12YXIgbz0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBzPXRbaV07Zm9yKG8rKztzPj0xMjg7cz4+PTcpbysrfXZhciBhPW5ldyByKG8pLHU9YS5sZW5ndGgtMTtmb3IoaT10Lmxlbmd0aC0xO2k+PTA7aS0tKXtzPXRbaV07Zm9yKGFbdS0tXT0xMjcmczsocz4+PTcpPjA7KWFbdS0tXT0xMjh8MTI3JnN9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoYSl9LGMucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uZXcgRGF0ZSh0KTtyZXR1cm4iZ2VudGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpKSxoKGkuZ2V0VVRDTW9udGgoKSsxKSxoKGkuZ2V0VVRDRGF0ZSgpKSxoKGkuZ2V0VVRDSG91cnMoKSksaChpLmdldFVUQ01pbnV0ZXMoKSksaChpLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKToidXRjdGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpJTEwMCksaChpLmdldFVUQ01vbnRoKCkrMSksaChpLmdldFVUQ0RhdGUoKSksaChpLmdldFVUQ0hvdXJzKCkpLGgoaS5nZXRVVENNaW51dGVzKCkpLGgoaS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpLHRoaXMuX2VuY29kZVN0cihuLCJvY3RzdHIiKX0sYy5wcm90b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGMucHJvdG90eXBlLl9lbmNvZGVJbnQ9ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlZhbHVlcyBtYXAgZG9lc24ndCBjb250YWluOiAiK0pTT04uc3RyaW5naWZ5KHQpKTt0PWVbdF19aWYoIm51bWJlciIhPXR5cGVvZiB0JiYhci5pc0J1ZmZlcih0KSl7dmFyIG49dC50b0FycmF5KCk7IXQuc2lnbiYmMTI4Jm5bMF0mJm4udW5zaGlmdCgwKSx0PW5ldyByKG4pfWlmKHIuaXNCdWZmZXIodCkpe3ZhciBpPXQubGVuZ3RoOzA9PT10Lmxlbmd0aCYmaSsrO3ZhciBvPW5ldyByKGkpO3JldHVybiB0LmNvcHkobyksMD09PXQubGVuZ3RoJiYob1swXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG8pfWlmKHQ8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpO2lmKHQ8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLHRdKTtpPTE7Zm9yKHZhciBzPXQ7cz49MjU2O3M+Pj04KWkrKztmb3Iocz0obz1uZXcgQXJyYXkoaSkpLmxlbmd0aC0xO3M+PTA7cy0tKW9bc109MjU1JnQsdD4+PTg7cmV0dXJuIDEyOCZvWzBdJiZvLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihuZXcgcihvKSl9LGMucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQ/MjU1OjApfSxjLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQoZSkpLHQuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LGMucHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5jdGlvbih0LGUsbil7dmFyIGkscj10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PXIuZGVmYXVsdClyZXR1cm4hMTt2YXIgbz10LmpvaW4oKTtpZih2b2lkIDA9PT1yLmRlZmF1bHRCdWZmZXImJihyLmRlZmF1bHRCdWZmZXI9dGhpcy5fZW5jb2RlVmFsdWUoci5kZWZhdWx0LGUsbikuam9pbigpKSxvLmxlbmd0aCE9PXIuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpcmV0dXJuITE7Zm9yKGk9MDtpPG8ubGVuZ3RoO2krKylpZihvW2ldIT09ci5kZWZhdWx0QnVmZmVyW2ldKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiMS4zLjEzMi4wLjEwIjoic2VjcDI1NmsxIiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1IjoicDUyMSJ9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzMSkscj1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiBvKHQpe3ZhciBlPXIuYWxsb2NVbnNhZmUoNCk7cmV0dXJuIGUud3JpdGVVSW50MzJCRSh0LDApLGV9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHM9ci5hbGxvYygwKSxhPTA7cy5sZW5ndGg8ZTspbj1vKGErKykscz1yLmNvbmNhdChbcyxpKCJzaGExIikudXBkYXRlKHQpLnVwZGF0ZShuKS5kaWdlc3QoKV0pO3JldHVybiBzLnNsaWNlKDAsZSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPS0xOysraTxuOyl0W2ldXj1lW2ldO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMykscj1uKDEpLkJ1ZmZlcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5mcm9tKHQudG9SZWQoaS5tb250KGUubW9kdWx1cykpLnJlZFBvdyhuZXcgaShlLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTIxKSxvPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixzPSJbb2JqZWN0IEZ1bmN0aW9uXSIsYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHU9IltvYmplY3QgUHJveHldIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpcmV0dXJuITE7dmFyIGU9aSh0KTtyZXR1cm4gZT09c3x8ZT09YXx8ZT09b3x8ZT09dX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG49Im9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLk9iamVjdD09PU9iamVjdCYmZTt0LmV4cG9ydHM9bn0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PWV8fCJmdW5jdGlvbiI9PWUpfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gbi5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1MSkscj1uKDI1OCksbz1uKDI2MCkscz1uKDI2MSksYT1uKDI2Mik7ZnVuY3Rpb24gdSh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX11LnByb3RvdHlwZS5jbGVhcj1pLHUucHJvdG90eXBlLmRlbGV0ZT1yLHUucHJvdG90eXBlLmdldD1vLHUucHJvdG90eXBlLmhhcz1zLHUucHJvdG90eXBlLnNldD1hLHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNjMpLHI9bigyNjYpLG89bigyNjcpLHM9MSxhPTI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHUsYyxoKXt2YXIgbD1uJnMsZD10Lmxlbmd0aCxmPWUubGVuZ3RoO2lmKGQhPWYmJiEobCYmZj5kKSlyZXR1cm4hMTt2YXIgcD1oLmdldCh0KTtpZihwJiZoLmdldChlKSlyZXR1cm4gcD09ZTt2YXIgbT0tMSxnPSEwLHY9biZhP25ldyBpOnZvaWQgMDtmb3IoaC5zZXQodCxlKSxoLnNldChlLHQpOysrbTxkOyl7dmFyIGI9dFttXSx5PWVbbV07aWYodSl2YXIgXz1sP3UoeSxiLG0sZSx0LGgpOnUoYix5LG0sdCxlLGgpO2lmKHZvaWQgMCE9PV8pe2lmKF8pY29udGludWU7Zz0hMTticmVha31pZih2KXtpZighcihlLGZ1bmN0aW9uKHQsZSl7aWYoIW8odixlKSYmKGI9PT10fHxjKGIsdCxuLHUsaCkpKXJldHVybiB2LnB1c2goZSl9KSl7Zz0hMTticmVha319ZWxzZSBpZihiIT09eSYmIWMoYix5LG4sdSxoKSl7Zz0hMTticmVha319cmV0dXJuIGguZGVsZXRlKHQpLGguZGVsZXRlKGUpLGd9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTkpLHI9bigyODQpLG89ZSYmIWUubm9kZVR5cGUmJmUscz1vJiYib2JqZWN0Ij09dHlwZW9mIHQmJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9cyYmcy5leHBvcnRzPT09bz9pLkJ1ZmZlcjp2b2lkIDAsdT0oYT9hLmlzQnVmZmVyOnZvaWQgMCl8fHI7dC5leHBvcnRzPXV9KS5jYWxsKHRoaXMsbig0NykodCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODYpLHI9bigyODcpLG89bigyODgpLHM9byYmby5pc1R5cGVkQXJyYXksYT1zP3Iocyk6aTt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9bn19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KGUobikpfX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oaSl7dmFyIHIsbyxzO3M9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PXNlbGYmJnNlbGZ8fCJvYmplY3QiPT10eXBlb2YgaSYmaS5nbG9iYWw9PWkmJmkscj1bbig2KSxuKDE1KSxlXSx2b2lkIDA9PT0obz1mdW5jdGlvbih0LGUsbil7cy5CYWNrYm9uZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10LkJhY2tib25lLG89QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuVkVSU0lPTj0iMS4yLjMiLGUuJD1pLGUubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0LkJhY2tib25lPXIsdGhpc30sZS5lbXVsYXRlSFRUUD0hMSxlLmVtdWxhdGVKU09OPSExO3ZhciBzPWZ1bmN0aW9uKHQsZSxpKXtuLmVhY2goZSxmdW5jdGlvbihlLHIpe25bcl0mJih0LnByb3RvdHlwZVtyXT1mdW5jdGlvbih0LGUsaSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXSh0aGlzW2ldKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbltlXSh0aGlzW2ldLHQpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIG5bZV0odGhpc1tpXSxhKHQsdGhpcykscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24odCxyLG8pe3JldHVybiBuW2VdKHRoaXNbaV0sYSh0LHRoaXMpLHIsbyl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9by5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQudW5zaGlmdCh0aGlzW2ldKSxuW2VdLmFwcGx5KG4sdCl9fX0oZSxyLGkpKX0pfSxhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbih0KT90Om4uaXNPYmplY3QodCkmJiFlLl9pc01vZGVsKHQpP3UodCk6bi5pc1N0cmluZyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQodCl9OnR9LHU9ZnVuY3Rpb24odCl7dmFyIGU9bi5tYXRjaGVzKHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0LmF0dHJpYnV0ZXMpfX0sYz1lLkV2ZW50cz17fSxoPS9ccysvLGw9ZnVuY3Rpb24odCxlLGkscixvKXt2YXIgcyxhPTA7aWYoaSYmIm9iamVjdCI9PXR5cGVvZiBpKXt2b2lkIDAhPT1yJiYiY29udGV4dCJpbiBvJiZ2b2lkIDA9PT1vLmNvbnRleHQmJihvLmNvbnRleHQ9cik7Zm9yKHM9bi5rZXlzKGkpO2E8cy5sZW5ndGg7YSsrKWU9bCh0LGUsc1thXSxpW3NbYV1dLG8pfWVsc2UgaWYoaSYmaC50ZXN0KGkpKWZvcihzPWkuc3BsaXQoaCk7YTxzLmxlbmd0aDthKyspZT10KGUsc1thXSxyLG8pO2Vsc2UgZT10KGUsaSxyLG8pO3JldHVybiBlfTtjLm9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZCh0aGlzLHQsZSxuKX07dmFyIGQ9ZnVuY3Rpb24odCxlLG4saSxyKXtpZih0Ll9ldmVudHM9bChmLHQuX2V2ZW50c3x8e30sZSxuLHtjb250ZXh0OmksY3R4OnQsbGlzdGVuaW5nOnJ9KSxyKXt2YXIgbz10Ll9saXN0ZW5lcnN8fCh0Ll9saXN0ZW5lcnM9e30pO29bci5pZF09cn1yZXR1cm4gdH07Yy5saXN0ZW5Ubz1mdW5jdGlvbih0LGUsaSl7aWYoIXQpcmV0dXJuIHRoaXM7dmFyIHI9dC5fbGlzdGVuSWR8fCh0Ll9saXN0ZW5JZD1uLnVuaXF1ZUlkKCJsIikpLG89dGhpcy5fbGlzdGVuaW5nVG98fCh0aGlzLl9saXN0ZW5pbmdUbz17fSkscz1vW3JdO2lmKCFzKXt2YXIgYT10aGlzLl9saXN0ZW5JZHx8KHRoaXMuX2xpc3RlbklkPW4udW5pcXVlSWQoImwiKSk7cz1vW3JdPXtvYmo6dCxvYmpJZDpyLGlkOmEsbGlzdGVuaW5nVG86byxjb3VudDowfX1yZXR1cm4gZCh0LGUsaSx0aGlzLHMpLHRoaXN9O3ZhciBmPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKG4pe3ZhciByPXRbZV18fCh0W2VdPVtdKSxvPWkuY29udGV4dCxzPWkuY3R4LGE9aS5saXN0ZW5pbmc7YSYmYS5jb3VudCsrLHIucHVzaCh7Y2FsbGJhY2s6bixjb250ZXh0Om8sY3R4Om98fHMsbGlzdGVuaW5nOmF9KX1yZXR1cm4gdH07Yy5vZmY9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLl9ldmVudHM/KHRoaXMuX2V2ZW50cz1sKHAsdGhpcy5fZXZlbnRzLHQsZSx7Y29udGV4dDpuLGxpc3RlbmVyczp0aGlzLl9saXN0ZW5lcnN9KSx0aGlzKTp0aGlzfSxjLnN0b3BMaXN0ZW5pbmc9ZnVuY3Rpb24odCxlLGkpe3ZhciByPXRoaXMuX2xpc3RlbmluZ1RvO2lmKCFyKXJldHVybiB0aGlzO2Zvcih2YXIgbz10P1t0Ll9saXN0ZW5JZF06bi5rZXlzKHIpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGE9cltvW3NdXTtpZighYSlicmVhazthLm9iai5vZmYoZSxpLHRoaXMpfXJldHVybiBuLmlzRW1wdHkocikmJih0aGlzLl9saXN0ZW5pbmdUbz12b2lkIDApLHRoaXN9O3ZhciBwPWZ1bmN0aW9uKHQsZSxpLHIpe2lmKHQpe3ZhciBvLHM9MCxhPXIuY29udGV4dCx1PXIubGlzdGVuZXJzO2lmKGV8fGl8fGEpe2Zvcih2YXIgYz1lP1tlXTpuLmtleXModCk7czxjLmxlbmd0aDtzKyspe2U9Y1tzXTt2YXIgaD10W2VdO2lmKCFoKWJyZWFrO2Zvcih2YXIgbD1bXSxkPTA7ZDxoLmxlbmd0aDtkKyspe3ZhciBmPWhbZF07aSYmaSE9PWYuY2FsbGJhY2smJmkhPT1mLmNhbGxiYWNrLl9jYWxsYmFja3x8YSYmYSE9PWYuY29udGV4dD9sLnB1c2goZik6KG89Zi5saXN0ZW5pbmcpJiYwPT0tLW8uY291bnQmJihkZWxldGUgdVtvLmlkXSxkZWxldGUgby5saXN0ZW5pbmdUb1tvLm9iaklkXSl9bC5sZW5ndGg/dFtlXT1sOmRlbGV0ZSB0W2VdfXJldHVybiBuLnNpemUodCk/dDp2b2lkIDB9Zm9yKHZhciBwPW4ua2V5cyh1KTtzPHAubGVuZ3RoO3MrKylvPXVbcFtzXV0sZGVsZXRlIHVbby5pZF0sZGVsZXRlIG8ubGlzdGVuaW5nVG9bby5vYmpJZF19fTtjLm9uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSx0LGUsbi5iaW5kKHRoaXMub2ZmLHRoaXMpKTtyZXR1cm4gdGhpcy5vbihyLHZvaWQgMCxpKX0sYy5saXN0ZW5Ub09uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSxlLGksbi5iaW5kKHRoaXMuc3RvcExpc3RlbmluZyx0aGlzLHQpKTtyZXR1cm4gdGhpcy5saXN0ZW5Ubyh0LHIpfTt2YXIgbT1mdW5jdGlvbih0LGUsaSxyKXtpZihpKXt2YXIgbz10W2VdPW4ub25jZShmdW5jdGlvbigpe3IoZSxvKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO28uX2NhbGxiYWNrPWl9cmV0dXJuIHR9O2MudHJpZ2dlcj1mdW5jdGlvbih0KXtpZighdGhpcy5fZXZlbnRzKXJldHVybiB0aGlzO2Zvcih2YXIgZT1NYXRoLm1heCgwLGFyZ3VtZW50cy5sZW5ndGgtMSksbj1BcnJheShlKSxpPTA7aTxlO2krKyluW2ldPWFyZ3VtZW50c1tpKzFdO3JldHVybiBsKGcsdGhpcy5fZXZlbnRzLHQsdm9pZCAwLG4pLHRoaXN9O3ZhciBnPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQpe3ZhciByPXRbZV0sbz10LmFsbDtyJiZvJiYobz1vLnNsaWNlKCkpLHImJnYocixpKSxvJiZ2KG8sW2VdLmNvbmNhdChpKSl9cmV0dXJuIHR9LHY9ZnVuY3Rpb24odCxlKXt2YXIgbixpPS0xLHI9dC5sZW5ndGgsbz1lWzBdLHM9ZVsxXSxhPWVbMl07c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCk7cmV0dXJuO2Nhc2UgMTpmb3IoOysraTxyOykobj10W2ldKS5jYWxsYmFjay5jYWxsKG4uY3R4LG8pO3JldHVybjtjYXNlIDI6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMpO3JldHVybjtjYXNlIDM6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMsYSk7cmV0dXJuO2RlZmF1bHQ6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suYXBwbHkobi5jdHgsZSk7cmV0dXJufX07Yy5iaW5kPWMub24sYy51bmJpbmQ9Yy5vZmYsbi5leHRlbmQoZSxjKTt2YXIgYj1lLk1vZGVsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dHx8e307ZXx8KGU9e30pLHRoaXMuY2lkPW4udW5pcXVlSWQodGhpcy5jaWRQcmVmaXgpLHRoaXMuYXR0cmlidXRlcz17fSxlLmNvbGxlY3Rpb24mJih0aGlzLmNvbGxlY3Rpb249ZS5jb2xsZWN0aW9uKSxlLnBhcnNlJiYoaT10aGlzLnBhcnNlKGksZSl8fHt9KSxpPW4uZGVmYXVsdHMoe30saSxuLnJlc3VsdCh0aGlzLCJkZWZhdWx0cyIpKSx0aGlzLnNldChpLGUpLHRoaXMuY2hhbmdlZD17fSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtuLmV4dGVuZChiLnByb3RvdHlwZSxjLHtjaGFuZ2VkOm51bGwsdmFsaWRhdGlvbkVycm9yOm51bGwsaWRBdHRyaWJ1dGU6ImlkIixjaWRQcmVmaXg6ImMiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9LHRvSlNPTjpmdW5jdGlvbih0KXtyZXR1cm4gbi5jbG9uZSh0aGlzLmF0dHJpYnV0ZXMpfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfSxlc2NhcGU6ZnVuY3Rpb24odCl7cmV0dXJuIG4uZXNjYXBlKHRoaXMuZ2V0KHQpKX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10aGlzLmdldCh0KX0sbWF0Y2hlczpmdW5jdGlvbih0KXtyZXR1cm4hIW4uaXRlcmF0ZWUodCx0aGlzKSh0aGlzLmF0dHJpYnV0ZXMpfSxzZXQ6ZnVuY3Rpb24odCxlLGkpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXM7dmFyIHI7aWYoIm9iamVjdCI9PXR5cGVvZiB0PyhyPXQsaT1lKToocj17fSlbdF09ZSxpfHwoaT17fSksIXRoaXMuX3ZhbGlkYXRlKHIsaSkpcmV0dXJuITE7dmFyIG89aS51bnNldCxzPWkuc2lsZW50LGE9W10sdT10aGlzLl9jaGFuZ2luZzt0aGlzLl9jaGFuZ2luZz0hMCx1fHwodGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzPW4uY2xvbmUodGhpcy5hdHRyaWJ1dGVzKSx0aGlzLmNoYW5nZWQ9e30pO3ZhciBjPXRoaXMuYXR0cmlidXRlcyxoPXRoaXMuY2hhbmdlZCxsPXRoaXMuX3ByZXZpb3VzQXR0cmlidXRlcztmb3IodmFyIGQgaW4gcillPXJbZF0sbi5pc0VxdWFsKGNbZF0sZSl8fGEucHVzaChkKSxuLmlzRXF1YWwobFtkXSxlKT9kZWxldGUgaFtkXTpoW2RdPWUsbz9kZWxldGUgY1tkXTpjW2RdPWU7aWYodGhpcy5pZD10aGlzLmdldCh0aGlzLmlkQXR0cmlidXRlKSwhcyl7YS5sZW5ndGgmJih0aGlzLl9wZW5kaW5nPWkpO2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXRoaXMudHJpZ2dlcigiY2hhbmdlOiIrYVtmXSx0aGlzLGNbYVtmXV0saSl9aWYodSlyZXR1cm4gdGhpcztpZighcylmb3IoO3RoaXMuX3BlbmRpbmc7KWk9dGhpcy5fcGVuZGluZyx0aGlzLl9wZW5kaW5nPSExLHRoaXMudHJpZ2dlcigiY2hhbmdlIix0aGlzLGkpO3JldHVybiB0aGlzLl9wZW5kaW5nPSExLHRoaXMuX2NoYW5naW5nPSExLHRoaXN9LHVuc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0KHQsdm9pZCAwLG4uZXh0ZW5kKHt9LGUse3Vuc2V0OiEwfSkpfSxjbGVhcjpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIGkgaW4gdGhpcy5hdHRyaWJ1dGVzKWVbaV09dm9pZCAwO3JldHVybiB0aGlzLnNldChlLG4uZXh0ZW5kKHt9LHQse3Vuc2V0OiEwfSkpfSxoYXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyFuLmlzRW1wdHkodGhpcy5jaGFuZ2VkKTpuLmhhcyh0aGlzLmNoYW5nZWQsdCl9LGNoYW5nZWRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiEhdGhpcy5oYXNDaGFuZ2VkKCkmJm4uY2xvbmUodGhpcy5jaGFuZ2VkKTt2YXIgZT10aGlzLl9jaGFuZ2luZz90aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM6dGhpcy5hdHRyaWJ1dGVzLGk9e307Zm9yKHZhciByIGluIHQpe3ZhciBvPXRbcl07bi5pc0VxdWFsKGVbcl0sbyl8fChpW3JdPW8pfXJldHVybiEhbi5zaXplKGkpJiZpfSxwcmV2aW91czpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmdGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzP3RoaXMuX3ByZXZpb3VzQXR0cmlidXRlc1t0XTpudWxsfSxwcmV2aW91c0F0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXMpfSxmZXRjaDpmdW5jdGlvbih0KXt0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCk7dmFyIGU9dGhpcyxpPXQuc3VjY2VzcztyZXR1cm4gdC5zdWNjZXNzPWZ1bmN0aW9uKG4pe3ZhciByPXQucGFyc2U/ZS5wYXJzZShuLHQpOm47aWYoIWUuc2V0KHIsdCkpcmV0dXJuITE7aSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS50cmlnZ2VyKCJzeW5jIixlLG4sdCl9LFIodGhpcyx0KSx0aGlzLnN5bmMoInJlYWQiLHRoaXMsdCl9LHNhdmU6ZnVuY3Rpb24odCxlLGkpe3ZhciByO251bGw9PXR8fCJvYmplY3QiPT10eXBlb2YgdD8ocj10LGk9ZSk6KHI9e30pW3RdPWU7dmFyIG89KGk9bi5leHRlbmQoe3ZhbGlkYXRlOiEwLHBhcnNlOiEwfSxpKSkud2FpdDtpZihyJiYhbyl7aWYoIXRoaXMuc2V0KHIsaSkpcmV0dXJuITF9ZWxzZSBpZighdGhpcy5fdmFsaWRhdGUocixpKSlyZXR1cm4hMTt2YXIgcz10aGlzLGE9aS5zdWNjZXNzLHU9dGhpcy5hdHRyaWJ1dGVzO2kuc3VjY2Vzcz1mdW5jdGlvbih0KXtzLmF0dHJpYnV0ZXM9dTt2YXIgZT1pLnBhcnNlP3MucGFyc2UodCxpKTp0O2lmKG8mJihlPW4uZXh0ZW5kKHt9LHIsZSkpLGUmJiFzLnNldChlLGkpKXJldHVybiExO2EmJmEuY2FsbChpLmNvbnRleHQscyx0LGkpLHMudHJpZ2dlcigic3luYyIscyx0LGkpfSxSKHRoaXMsaSksciYmbyYmKHRoaXMuYXR0cmlidXRlcz1uLmV4dGVuZCh7fSx1LHIpKTt2YXIgYz10aGlzLmlzTmV3KCk/ImNyZWF0ZSI6aS5wYXRjaD8icGF0Y2giOiJ1cGRhdGUiOyJwYXRjaCIhPT1jfHxpLmF0dHJzfHwoaS5hdHRycz1yKTt2YXIgaD10aGlzLnN5bmMoYyx0aGlzLGkpO3JldHVybiB0aGlzLmF0dHJpYnV0ZXM9dSxofSxkZXN0cm95OmZ1bmN0aW9uKHQpe3Q9dD9uLmNsb25lKHQpOnt9O3ZhciBlPXRoaXMsaT10LnN1Y2Nlc3Mscj10LndhaXQsbz1mdW5jdGlvbigpe2Uuc3RvcExpc3RlbmluZygpLGUudHJpZ2dlcigiZGVzdHJveSIsZSxlLmNvbGxlY3Rpb24sdCl9O3Quc3VjY2Vzcz1mdW5jdGlvbihuKXtyJiZvKCksaSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS5pc05ldygpfHxlLnRyaWdnZXIoInN5bmMiLGUsbix0KX07dmFyIHM9ITE7cmV0dXJuIHRoaXMuaXNOZXcoKT9uLmRlZmVyKHQuc3VjY2Vzcyk6KFIodGhpcyx0KSxzPXRoaXMuc3luYygiZGVsZXRlIix0aGlzLHQpKSxyfHxvKCksc30sdXJsOmZ1bmN0aW9uKCl7dmFyIHQ9bi5yZXN1bHQodGhpcywidXJsUm9vdCIpfHxuLnJlc3VsdCh0aGlzLmNvbGxlY3Rpb24sInVybCIpfHxEKCk7aWYodGhpcy5pc05ldygpKXJldHVybiB0O3ZhciBlPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpO3JldHVybiB0LnJlcGxhY2UoL1teXC9dJC8sIiQmLyIpK2VuY29kZVVSSUNvbXBvbmVudChlKX0scGFyc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hdHRyaWJ1dGVzKX0saXNOZXc6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXModGhpcy5pZEF0dHJpYnV0ZSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHt9LG4uZGVmYXVsdHMoe3ZhbGlkYXRlOiEwfSx0KSl9LF92YWxpZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCFlLnZhbGlkYXRlfHwhdGhpcy52YWxpZGF0ZSlyZXR1cm4hMDt0PW4uZXh0ZW5kKHt9LHRoaXMuYXR0cmlidXRlcyx0KTt2YXIgaT10aGlzLnZhbGlkYXRpb25FcnJvcj10aGlzLnZhbGlkYXRlKHQsZSl8fG51bGw7cmV0dXJuIWl8fCh0aGlzLnRyaWdnZXIoImludmFsaWQiLHRoaXMsaSxuLmV4dGVuZChlLHt2YWxpZGF0aW9uRXJyb3I6aX0pKSwhMSl9fSkscyhiLHtrZXlzOjEsdmFsdWVzOjEscGFpcnM6MSxpbnZlcnQ6MSxwaWNrOjAsb21pdDowLGNoYWluOjEsaXNFbXB0eToxfSwiYXR0cmlidXRlcyIpO3ZhciB5PWUuQ29sbGVjdGlvbj1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSxlLm1vZGVsJiYodGhpcy5tb2RlbD1lLm1vZGVsKSx2b2lkIDAhPT1lLmNvbXBhcmF0b3ImJih0aGlzLmNvbXBhcmF0b3I9ZS5jb21wYXJhdG9yKSx0aGlzLl9yZXNldCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdCYmdGhpcy5yZXNldCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKX0sXz17YWRkOiEwLHJlbW92ZTohMCxtZXJnZTohMH0sdz17YWRkOiEwLHJlbW92ZTohMX0seD1mdW5jdGlvbih0LGUsbil7bj1NYXRoLm1pbihNYXRoLm1heChuLDApLHQubGVuZ3RoKTtmb3IodmFyIGk9QXJyYXkodC5sZW5ndGgtbikscj1lLmxlbmd0aCxvPTA7bzxpLmxlbmd0aDtvKyspaVtvXT10W28rbl07Zm9yKG89MDtvPHI7bysrKXRbbytuXT1lW29dO2ZvcihvPTA7bzxpLmxlbmd0aDtvKyspdFtvK3Irbl09aVtvXX07bi5leHRlbmQoeS5wcm90b3R5cGUsYyx7bW9kZWw6Yixpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvSlNPTih0KX0pfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNldCh0LG4uZXh0ZW5kKHttZXJnZTohMX0sZSx3KSl9LHJlbW92ZTpmdW5jdGlvbih0LGUpe2U9bi5leHRlbmQoe30sZSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOm4uY2xvbmUodCk7dmFyIHI9dGhpcy5fcmVtb3ZlTW9kZWxzKHQsZSk7cmV0dXJuIWUuc2lsZW50JiZyJiZ0aGlzLnRyaWdnZXIoInVwZGF0ZSIsdGhpcyxlKSxpP3JbMF06cn0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCl7KGU9bi5kZWZhdWx0cyh7fSxlLF8pKS5wYXJzZSYmIXRoaXMuX2lzTW9kZWwodCkmJih0PXRoaXMucGFyc2UodCxlKSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOnQuc2xpY2UoKTt2YXIgcj1lLmF0O251bGwhPXImJihyPStyKSxyPDAmJihyKz10aGlzLmxlbmd0aCsxKTtmb3IodmFyIG8scz1bXSxhPVtdLHU9W10sYz17fSxoPWUuYWRkLGw9ZS5tZXJnZSxkPWUucmVtb3ZlLGY9ITEscD10aGlzLmNvbXBhcmF0b3ImJm51bGw9PXImJiExIT09ZS5zb3J0LG09bi5pc1N0cmluZyh0aGlzLmNvbXBhcmF0b3IpP3RoaXMuY29tcGFyYXRvcjpudWxsLGc9MDtnPHQubGVuZ3RoO2crKyl7bz10W2ddO3ZhciB2PXRoaXMuZ2V0KG8pO2lmKHYpe2lmKGwmJm8hPT12KXt2YXIgYj10aGlzLl9pc01vZGVsKG8pP28uYXR0cmlidXRlczpvO2UucGFyc2UmJihiPXYucGFyc2UoYixlKSksdi5zZXQoYixlKSxwJiYhZiYmKGY9di5oYXNDaGFuZ2VkKG0pKX1jW3YuY2lkXXx8KGNbdi5jaWRdPSEwLHMucHVzaCh2KSksdFtnXT12fWVsc2UgaCYmKG89dFtnXT10aGlzLl9wcmVwYXJlTW9kZWwobyxlKSkmJihhLnB1c2gobyksdGhpcy5fYWRkUmVmZXJlbmNlKG8sZSksY1tvLmNpZF09ITAscy5wdXNoKG8pKX1pZihkKXtmb3IoZz0wO2c8dGhpcy5sZW5ndGg7ZysrKW89dGhpcy5tb2RlbHNbZ10sY1tvLmNpZF18fHUucHVzaChvKTt1Lmxlbmd0aCYmdGhpcy5fcmVtb3ZlTW9kZWxzKHUsZSl9dmFyIHk9ITEsdz0hcCYmaCYmZDtpZihzLmxlbmd0aCYmdz8oeT10aGlzLmxlbmd0aCE9cy5sZW5ndGh8fG4uc29tZSh0aGlzLm1vZGVscyxmdW5jdGlvbih0LGUpe3JldHVybiB0IT09c1tlXX0pLHRoaXMubW9kZWxzLmxlbmd0aD0wLHgodGhpcy5tb2RlbHMscywwKSx0aGlzLmxlbmd0aD10aGlzLm1vZGVscy5sZW5ndGgpOmEubGVuZ3RoJiYocCYmKGY9ITApLHgodGhpcy5tb2RlbHMsYSxudWxsPT1yP3RoaXMubGVuZ3RoOnIpLHRoaXMubGVuZ3RoPXRoaXMubW9kZWxzLmxlbmd0aCksZiYmdGhpcy5zb3J0KHtzaWxlbnQ6ITB9KSwhZS5zaWxlbnQpe2ZvcihnPTA7ZzxhLmxlbmd0aDtnKyspbnVsbCE9ciYmKGUuaW5kZXg9citnKSwobz1hW2ddKS50cmlnZ2VyKCJhZGQiLG8sdGhpcyxlKTsoZnx8eSkmJnRoaXMudHJpZ2dlcigic29ydCIsdGhpcyxlKSwoYS5sZW5ndGh8fHUubGVuZ3RoKSYmdGhpcy50cmlnZ2VyKCJ1cGRhdGUiLHRoaXMsZSl9cmV0dXJuIGk/dFswXTp0fX0scmVzZXQ6ZnVuY3Rpb24odCxlKXtlPWU/bi5jbG9uZShlKTp7fTtmb3IodmFyIGk9MDtpPHRoaXMubW9kZWxzLmxlbmd0aDtpKyspdGhpcy5fcmVtb3ZlUmVmZXJlbmNlKHRoaXMubW9kZWxzW2ldLGUpO3JldHVybiBlLnByZXZpb3VzTW9kZWxzPXRoaXMubW9kZWxzLHRoaXMuX3Jlc2V0KCksdD10aGlzLmFkZCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKSxlLnNpbGVudHx8dGhpcy50cmlnZ2VyKCJyZXNldCIsdGhpcyxlKSx0fSxwdXNoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OnRoaXMubGVuZ3RofSxlKSl9LHBvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmF0KHRoaXMubGVuZ3RoLTEpO3JldHVybiB0aGlzLnJlbW92ZShlLHQpfSx1bnNoaWZ0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OjB9LGUpKX0sc2hpZnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdCgwKTtyZXR1cm4gdGhpcy5yZW1vdmUoZSx0KX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0aGlzLm1vZGVscyxhcmd1bWVudHMpfSxnZXQ6ZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dmFyIGU9dGhpcy5tb2RlbElkKHRoaXMuX2lzTW9kZWwodCk/dC5hdHRyaWJ1dGVzOnQpO3JldHVybiB0aGlzLl9ieUlkW3RdfHx0aGlzLl9ieUlkW2VdfHx0aGlzLl9ieUlkW3QuY2lkXX19LGF0OmZ1bmN0aW9uKHQpe3JldHVybiB0PDAmJih0Kz10aGlzLmxlbmd0aCksdGhpcy5tb2RlbHNbdF19LHdoZXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbZT8iZmluZCI6ImZpbHRlciJdKHQpfSxmaW5kV2hlcmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2hlcmUodCwhMCl9LHNvcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb21wYXJhdG9yO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNvcnQgYSBzZXQgd2l0aG91dCBhIGNvbXBhcmF0b3IiKTt0fHwodD17fSk7dmFyIGk9ZS5sZW5ndGg7cmV0dXJuIG4uaXNGdW5jdGlvbihlKSYmKGU9bi5iaW5kKGUsdGhpcykpLDE9PT1pfHxuLmlzU3RyaW5nKGUpP3RoaXMubW9kZWxzPXRoaXMuc29ydEJ5KGUpOnRoaXMubW9kZWxzLnNvcnQoZSksdC5zaWxlbnR8fHRoaXMudHJpZ2dlcigic29ydCIsdGhpcyx0KSx0aGlzfSxwbHVjazpmdW5jdGlvbih0KXtyZXR1cm4gbi5pbnZva2UodGhpcy5tb2RlbHMsImdldCIsdCl9LGZldGNoOmZ1bmN0aW9uKHQpe3ZhciBlPSh0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCkpLnN1Y2Nlc3MsaT10aGlzO3JldHVybiB0LnN1Y2Nlc3M9ZnVuY3Rpb24obil7dmFyIHI9dC5yZXNldD8icmVzZXQiOiJzZXQiO2lbcl0obix0KSxlJiZlLmNhbGwodC5jb250ZXh0LGksbix0KSxpLnRyaWdnZXIoInN5bmMiLGksbix0KX0sUih0aGlzLHQpLHRoaXMuc3luYygicmVhZCIsdGhpcyx0KX0sY3JlYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9KGU9ZT9uLmNsb25lKGUpOnt9KS53YWl0O2lmKCEodD10aGlzLl9wcmVwYXJlTW9kZWwodCxlKSkpcmV0dXJuITE7aXx8dGhpcy5hZGQodCxlKTt2YXIgcj10aGlzLG89ZS5zdWNjZXNzO3JldHVybiBlLnN1Y2Nlc3M9ZnVuY3Rpb24odCxlLG4pe2kmJnIuYWRkKHQsbiksbyYmby5jYWxsKG4uY29udGV4dCx0LGUsbil9LHQuc2F2ZShudWxsLGUpLHR9LHBhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubW9kZWxzLHttb2RlbDp0aGlzLm1vZGVsLGNvbXBhcmF0b3I6dGhpcy5jb21wYXJhdG9yfSl9LG1vZGVsSWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbdGhpcy5tb2RlbC5wcm90b3R5cGUuaWRBdHRyaWJ1dGV8fCJpZCJdfSxfcmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wLHRoaXMubW9kZWxzPVtdLHRoaXMuX2J5SWQ9e319LF9wcmVwYXJlTW9kZWw6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9pc01vZGVsKHQpKXJldHVybiB0LmNvbGxlY3Rpb258fCh0LmNvbGxlY3Rpb249dGhpcyksdDsoZT1lP24uY2xvbmUoZSk6e30pLmNvbGxlY3Rpb249dGhpczt2YXIgaT1uZXcgdGhpcy5tb2RlbCh0LGUpO3JldHVybiBpLnZhbGlkYXRpb25FcnJvcj8odGhpcy50cmlnZ2VyKCJpbnZhbGlkIix0aGlzLGkudmFsaWRhdGlvbkVycm9yLGUpLCExKTppfSxfcmVtb3ZlTW9kZWxzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5nZXQodFtpXSk7aWYocil7dmFyIG89dGhpcy5pbmRleE9mKHIpO3RoaXMubW9kZWxzLnNwbGljZShvLDEpLHRoaXMubGVuZ3RoLS0sZS5zaWxlbnR8fChlLmluZGV4PW8sci50cmlnZ2VyKCJyZW1vdmUiLHIsdGhpcyxlKSksbi5wdXNoKHIpLHRoaXMuX3JlbW92ZVJlZmVyZW5jZShyLGUpfX1yZXR1cm4hIW4ubGVuZ3RoJiZufSxfaXNNb2RlbDpmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGJ9LF9hZGRSZWZlcmVuY2U6ZnVuY3Rpb24odCxlKXt0aGlzLl9ieUlkW3QuY2lkXT10O3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJih0aGlzLl9ieUlkW25dPXQpLHQub24oImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfcmVtb3ZlUmVmZXJlbmNlOmZ1bmN0aW9uKHQsZSl7ZGVsZXRlIHRoaXMuX2J5SWRbdC5jaWRdO3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJmRlbGV0ZSB0aGlzLl9ieUlkW25dLHRoaXM9PT10LmNvbGxlY3Rpb24mJmRlbGV0ZSB0LmNvbGxlY3Rpb24sdC5vZmYoImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfb25Nb2RlbEV2ZW50OmZ1bmN0aW9uKHQsZSxuLGkpe2lmKCJhZGQiIT09dCYmInJlbW92ZSIhPT10fHxuPT09dGhpcyl7aWYoImRlc3Ryb3kiPT09dCYmdGhpcy5yZW1vdmUoZSxpKSwiY2hhbmdlIj09PXQpe3ZhciByPXRoaXMubW9kZWxJZChlLnByZXZpb3VzQXR0cmlidXRlcygpKSxvPXRoaXMubW9kZWxJZChlLmF0dHJpYnV0ZXMpO3IhPT1vJiYobnVsbCE9ciYmZGVsZXRlIHRoaXMuX2J5SWRbcl0sbnVsbCE9byYmKHRoaXMuX2J5SWRbb109ZSkpfXRoaXMudHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0pLHMoeSx7Zm9yRWFjaDozLGVhY2g6MyxtYXA6Myxjb2xsZWN0OjMscmVkdWNlOjQsZm9sZGw6NCxpbmplY3Q6NCxyZWR1Y2VSaWdodDo0LGZvbGRyOjQsZmluZDozLGRldGVjdDozLGZpbHRlcjozLHNlbGVjdDozLHJlamVjdDozLGV2ZXJ5OjMsYWxsOjMsc29tZTozLGFueTozLGluY2x1ZGU6MyxpbmNsdWRlczozLGNvbnRhaW5zOjMsaW52b2tlOjAsbWF4OjMsbWluOjMsdG9BcnJheToxLHNpemU6MSxmaXJzdDozLGhlYWQ6Myx0YWtlOjMsaW5pdGlhbDozLHJlc3Q6Myx0YWlsOjMsZHJvcDozLGxhc3Q6Myx3aXRob3V0OjAsZGlmZmVyZW5jZTowLGluZGV4T2Y6MyxzaHVmZmxlOjEsbGFzdEluZGV4T2Y6Myxpc0VtcHR5OjEsY2hhaW46MSxzYW1wbGU6MyxwYXJ0aXRpb246Myxncm91cEJ5OjMsY291bnRCeTozLHNvcnRCeTozLGluZGV4Qnk6M30sIm1vZGVscyIpO3ZhciBNPWUuVmlldz1mdW5jdGlvbih0KXt0aGlzLmNpZD1uLnVuaXF1ZUlkKCJ2aWV3Iiksbi5leHRlbmQodGhpcyxuLnBpY2sodCxFKSksdGhpcy5fZW5zdXJlRWxlbWVudCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9L14oXFMrKVxzKiguKikkLyxFPVsibW9kZWwiLCJjb2xsZWN0aW9uIiwiZWwiLCJpZCIsImF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJ0YWdOYW1lIiwiZXZlbnRzIl07bi5leHRlbmQoTS5wcm90b3R5cGUsYyx7dGFnTmFtZToiZGl2IiwkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLiRlbC5maW5kKHQpfSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUVsZW1lbnQoKSx0aGlzLnN0b3BMaXN0ZW5pbmcoKSx0aGlzfSxfcmVtb3ZlRWxlbWVudDpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZSgpfSxzZXRFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVuZGVsZWdhdGVFdmVudHMoKSx0aGlzLl9zZXRFbGVtZW50KHQpLHRoaXMuZGVsZWdhdGVFdmVudHMoKSx0aGlzfSxfc2V0RWxlbWVudDpmdW5jdGlvbih0KXt0aGlzLiRlbD10IGluc3RhbmNlb2YgZS4kP3Q6ZS4kKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF19LGRlbGVnYXRlRXZlbnRzOmZ1bmN0aW9uKHQpe2lmKHR8fCh0PW4ucmVzdWx0KHRoaXMsImV2ZW50cyIpKSwhdClyZXR1cm4gdGhpcztmb3IodmFyIGUgaW4gdGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdCl7dmFyIGk9dFtlXTtpZihuLmlzRnVuY3Rpb24oaSl8fChpPXRoaXNbaV0pLGkpe3ZhciByPWUubWF0Y2goUyk7dGhpcy5kZWxlZ2F0ZShyWzFdLHJbMl0sbi5iaW5kKGksdGhpcykpfX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLiRlbC5vbih0KyIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkLGUsbiksdGhpc30sdW5kZWxlZ2F0ZUV2ZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbCYmdGhpcy4kZWwub2ZmKCIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkKSx0aGlzfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy4kZWwub2ZmKHQrIi5kZWxlZ2F0ZUV2ZW50cyIrdGhpcy5jaWQsZSxuKSx0aGlzfSxfY3JlYXRlRWxlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KX0sX2Vuc3VyZUVsZW1lbnQ6ZnVuY3Rpb24oKXtpZih0aGlzLmVsKXRoaXMuc2V0RWxlbWVudChuLnJlc3VsdCh0aGlzLCJlbCIpKTtlbHNle3ZhciB0PW4uZXh0ZW5kKHt9LG4ucmVzdWx0KHRoaXMsImF0dHJpYnV0ZXMiKSk7dGhpcy5pZCYmKHQuaWQ9bi5yZXN1bHQodGhpcywiaWQiKSksdGhpcy5jbGFzc05hbWUmJih0LmNsYXNzPW4ucmVzdWx0KHRoaXMsImNsYXNzTmFtZSIpKSx0aGlzLnNldEVsZW1lbnQodGhpcy5fY3JlYXRlRWxlbWVudChuLnJlc3VsdCh0aGlzLCJ0YWdOYW1lIikpKSx0aGlzLl9zZXRBdHRyaWJ1dGVzKHQpfX0sX3NldEF0dHJpYnV0ZXM6ZnVuY3Rpb24odCl7dGhpcy4kZWwuYXR0cih0KX19KSxlLnN5bmM9ZnVuY3Rpb24odCxpLHIpe3ZhciBvPUFbdF07bi5kZWZhdWx0cyhyfHwocj17fSkse2VtdWxhdGVIVFRQOmUuZW11bGF0ZUhUVFAsZW11bGF0ZUpTT046ZS5lbXVsYXRlSlNPTn0pO3ZhciBzPXt0eXBlOm8sZGF0YVR5cGU6Impzb24ifTtpZihyLnVybHx8KHMudXJsPW4ucmVzdWx0KGksInVybCIpfHxEKCkpLG51bGwhPXIuZGF0YXx8IWl8fCJjcmVhdGUiIT09dCYmInVwZGF0ZSIhPT10JiYicGF0Y2giIT09dHx8KHMuY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24iLHMuZGF0YT1KU09OLnN0cmluZ2lmeShyLmF0dHJzfHxpLnRvSlNPTihyKSkpLHIuZW11bGF0ZUpTT04mJihzLmNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHMuZGF0YT1zLmRhdGE/e21vZGVsOnMuZGF0YX06e30pLHIuZW11bGF0ZUhUVFAmJigiUFVUIj09PW98fCJERUxFVEUiPT09b3x8IlBBVENIIj09PW8pKXtzLnR5cGU9IlBPU1QiLHIuZW11bGF0ZUpTT04mJihzLmRhdGEuX21ldGhvZD1vKTt2YXIgYT1yLmJlZm9yZVNlbmQ7ci5iZWZvcmVTZW5kPWZ1bmN0aW9uKHQpe2lmKHQuc2V0UmVxdWVzdEhlYWRlcigiWC1IVFRQLU1ldGhvZC1PdmVycmlkZSIsbyksYSlyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSJHRVQiPT09cy50eXBlfHxyLmVtdWxhdGVKU09OfHwocy5wcm9jZXNzRGF0YT0hMSk7dmFyIHU9ci5lcnJvcjtyLmVycm9yPWZ1bmN0aW9uKHQsZSxuKXtyLnRleHRTdGF0dXM9ZSxyLmVycm9yVGhyb3duPW4sdSYmdS5jYWxsKHIuY29udGV4dCx0LGUsbil9O3ZhciBjPXIueGhyPWUuYWpheChuLmV4dGVuZChzLHIpKTtyZXR1cm4gaS50cmlnZ2VyKCJyZXF1ZXN0IixpLGMsciksY307dmFyIEE9e2NyZWF0ZToiUE9TVCIsdXBkYXRlOiJQVVQiLHBhdGNoOiJQQVRDSCIsZGVsZXRlOiJERUxFVEUiLHJlYWQ6IkdFVCJ9O2UuYWpheD1mdW5jdGlvbigpe3JldHVybiBlLiQuYWpheC5hcHBseShlLiQsYXJndW1lbnRzKX07dmFyIEM9ZS5Sb3V0ZXI9ZnVuY3Rpb24odCl7dHx8KHQ9e30pLHQucm91dGVzJiYodGhpcy5yb3V0ZXM9dC5yb3V0ZXMpLHRoaXMuX2JpbmRSb3V0ZXMoKSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxrPS9cKCguKj8pXCkvZyxPPS8oXChcPyk/Olx3Ky9nLFA9L1wqXHcrL2csVD0vW1wte31cW1xdKz8uLFxcXF4kfCNcc10vZztuLmV4dGVuZChDLnByb3RvdHlwZSxjLHtpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyb3V0ZTpmdW5jdGlvbih0LGkscil7bi5pc1JlZ0V4cCh0KXx8KHQ9dGhpcy5fcm91dGVUb1JlZ0V4cCh0KSksbi5pc0Z1bmN0aW9uKGkpJiYocj1pLGk9IiIpLHJ8fChyPXRoaXNbaV0pO3ZhciBvPXRoaXM7cmV0dXJuIGUuaGlzdG9yeS5yb3V0ZSh0LGZ1bmN0aW9uKG4pe3ZhciBzPW8uX2V4dHJhY3RQYXJhbWV0ZXJzKHQsbik7ITEhPT1vLmV4ZWN1dGUocixzLGkpJiYoby50cmlnZ2VyLmFwcGx5KG8sWyJyb3V0ZToiK2ldLmNvbmNhdChzKSksby50cmlnZ2VyKCJyb3V0ZSIsaSxzKSxlLmhpc3RvcnkudHJpZ2dlcigicm91dGUiLG8saSxzKSl9KSx0aGlzfSxleGVjdXRlOmZ1bmN0aW9uKHQsZSxuKXt0JiZ0LmFwcGx5KHRoaXMsZSl9LG5hdmlnYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuaGlzdG9yeS5uYXZpZ2F0ZSh0LG4pLHRoaXN9LF9iaW5kUm91dGVzOmZ1bmN0aW9uKCl7aWYodGhpcy5yb3V0ZXMpe3RoaXMucm91dGVzPW4ucmVzdWx0KHRoaXMsInJvdXRlcyIpO2Zvcih2YXIgdCxlPW4ua2V5cyh0aGlzLnJvdXRlcyk7bnVsbCE9KHQ9ZS5wb3AoKSk7KXRoaXMucm91dGUodCx0aGlzLnJvdXRlc1t0XSl9fSxfcm91dGVUb1JlZ0V4cDpmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UoVCwiXFwkJiIpLnJlcGxhY2UoaywiKD86JDEpPyIpLnJlcGxhY2UoTyxmdW5jdGlvbih0LGUpe3JldHVybiBlP3Q6IihbXi8/XSspIn0pLnJlcGxhY2UoUCwiKFteP10qPykiKSxuZXcgUmVnRXhwKCJeIit0KyIoPzpcXD8oW1xcc1xcU10qKSk/JCIpfSxfZXh0cmFjdFBhcmFtZXRlcnM6ZnVuY3Rpb24odCxlKXt2YXIgaT10LmV4ZWMoZSkuc2xpY2UoMSk7cmV0dXJuIG4ubWFwKGksZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PWkubGVuZ3RoLTE/dHx8bnVsbDp0P2RlY29kZVVSSUNvbXBvbmVudCh0KTpudWxsfSl9fSk7dmFyIGo9ZS5IaXN0b3J5PWZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVycz1bXSx0aGlzLmNoZWNrVXJsPW4uYmluZCh0aGlzLmNoZWNrVXJsLHRoaXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYodGhpcy5sb2NhdGlvbj13aW5kb3cubG9jYXRpb24sdGhpcy5oaXN0b3J5PXdpbmRvdy5oaXN0b3J5KX0sST0vXlsjXC9dfFxzKyQvZyxMPS9eXC8rfFwvKyQvZyxCPS8jLiokLztqLnN0YXJ0ZWQ9ITEsbi5leHRlbmQoai5wcm90b3R5cGUsYyx7aW50ZXJ2YWw6NTAsYXRSb290OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9bXlwvXSQvLCIkJi8iKTtyZXR1cm4gdD09PXRoaXMucm9vdCYmIXRoaXMuZ2V0U2VhcmNoKCl9LG1hdGNoUm9vdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZGVjb2RlRnJhZ21lbnQodGhpcy5sb2NhdGlvbi5wYXRobmFtZSksZT10LnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aC0xKSsiLyI7cmV0dXJuIGU9PT10aGlzLnJvb3R9LGRlY29kZUZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUkkodC5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSl9LGdldFNlYXJjaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubG9jYXRpb24uaHJlZi5yZXBsYWNlKC8jLiovLCIiKS5tYXRjaCgvXD8uKy8pO3JldHVybiB0P3RbMF06IiJ9LGdldEhhc2g6ZnVuY3Rpb24odCl7dmFyIGU9KHR8fHRoaXMpLmxvY2F0aW9uLmhyZWYubWF0Y2goLyMoLiopJC8pO3JldHVybiBlP2VbMV06IiJ9LGdldFBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRlY29kZUZyYWdtZW50KHRoaXMubG9jYXRpb24ucGF0aG5hbWUrdGhpcy5nZXRTZWFyY2goKSkuc2xpY2UodGhpcy5yb290Lmxlbmd0aC0xKTtyZXR1cm4iLyI9PT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOnR9LGdldEZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10JiYodD10aGlzLl91c2VQdXNoU3RhdGV8fCF0aGlzLl93YW50c0hhc2hDaGFuZ2U/dGhpcy5nZXRQYXRoKCk6dGhpcy5nZXRIYXNoKCkpLHQucmVwbGFjZShJLCIiKX0sc3RhcnQ6ZnVuY3Rpb24odCl7aWYoai5zdGFydGVkKXRocm93IG5ldyBFcnJvcigiQmFja2JvbmUuaGlzdG9yeSBoYXMgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQiKTtpZihqLnN0YXJ0ZWQ9ITAsdGhpcy5vcHRpb25zPW4uZXh0ZW5kKHtyb290OiIvIn0sdGhpcy5vcHRpb25zLHQpLHRoaXMucm9vdD10aGlzLm9wdGlvbnMucm9vdCx0aGlzLl93YW50c0hhc2hDaGFuZ2U9ITEhPT10aGlzLm9wdGlvbnMuaGFzaENoYW5nZSx0aGlzLl9oYXNIYXNoQ2hhbmdlPSJvbmhhc2hjaGFuZ2UiaW4gd2luZG93JiYodm9pZCAwPT09ZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU+NyksdGhpcy5fdXNlSGFzaENoYW5nZT10aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX2hhc0hhc2hDaGFuZ2UsdGhpcy5fd2FudHNQdXNoU3RhdGU9ISF0aGlzLm9wdGlvbnMucHVzaFN0YXRlLHRoaXMuX2hhc1B1c2hTdGF0ZT0hKCF0aGlzLmhpc3Rvcnl8fCF0aGlzLmhpc3RvcnkucHVzaFN0YXRlKSx0aGlzLl91c2VQdXNoU3RhdGU9dGhpcy5fd2FudHNQdXNoU3RhdGUmJnRoaXMuX2hhc1B1c2hTdGF0ZSx0aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQoKSx0aGlzLnJvb3Q9KCIvIit0aGlzLnJvb3QrIi8iKS5yZXBsYWNlKEwsIi8iKSx0aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzUHVzaFN0YXRlKXtpZighdGhpcy5faGFzUHVzaFN0YXRlJiYhdGhpcy5hdFJvb3QoKSl7dmFyIGU9dGhpcy5yb290LnNsaWNlKDAsLTEpfHwiLyI7cmV0dXJuIHRoaXMubG9jYXRpb24ucmVwbGFjZShlKyIjIit0aGlzLmdldFBhdGgoKSksITB9dGhpcy5faGFzUHVzaFN0YXRlJiZ0aGlzLmF0Um9vdCgpJiZ0aGlzLm5hdmlnYXRlKHRoaXMuZ2V0SGFzaCgpLHtyZXBsYWNlOiEwfSl9aWYoIXRoaXMuX2hhc0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzSGFzaENoYW5nZSYmIXRoaXMuX3VzZVB1c2hTdGF0ZSl7dGhpcy5pZnJhbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksdGhpcy5pZnJhbWUuc3JjPSJqYXZhc2NyaXB0OjAiLHRoaXMuaWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaWZyYW1lLnRhYkluZGV4PS0xO3ZhciBpPWRvY3VtZW50LmJvZHkscj1pLmluc2VydEJlZm9yZSh0aGlzLmlmcmFtZSxpLmZpcnN0Q2hpbGQpLmNvbnRlbnRXaW5kb3c7ci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpLHIubG9jYXRpb24uaGFzaD0iIyIrdGhpcy5mcmFnbWVudH12YXIgbz13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXR0YWNoRXZlbnQoIm9uIit0LGUpfTtpZih0aGlzLl91c2VQdXNoU3RhdGU/bygicG9wc3RhdGUiLHRoaXMuY2hlY2tVcmwsITEpOnRoaXMuX3VzZUhhc2hDaGFuZ2UmJiF0aGlzLmlmcmFtZT9vKCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKTp0aGlzLl93YW50c0hhc2hDaGFuZ2UmJih0aGlzLl9jaGVja1VybEludGVydmFsPXNldEludGVydmFsKHRoaXMuY2hlY2tVcmwsdGhpcy5pbnRlcnZhbCkpLCF0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB0aGlzLmxvYWRVcmwoKX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyfHxmdW5jdGlvbih0LGUpe3JldHVybiBkZXRhY2hFdmVudCgib24iK3QsZSl9O3RoaXMuX3VzZVB1c2hTdGF0ZT90KCJwb3BzdGF0ZSIsdGhpcy5jaGVja1VybCwhMSk6dGhpcy5fdXNlSGFzaENoYW5nZSYmIXRoaXMuaWZyYW1lJiZ0KCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKSx0aGlzLmlmcmFtZSYmKGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5pZnJhbWUpLHRoaXMuaWZyYW1lPW51bGwpLHRoaXMuX2NoZWNrVXJsSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tVcmxJbnRlcnZhbCksai5zdGFydGVkPSExfSxyb3V0ZTpmdW5jdGlvbih0LGUpe3RoaXMuaGFuZGxlcnMudW5zaGlmdCh7cm91dGU6dCxjYWxsYmFjazplfSl9LGNoZWNrVXJsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0RnJhZ21lbnQoKTtpZihlPT09dGhpcy5mcmFnbWVudCYmdGhpcy5pZnJhbWUmJihlPXRoaXMuZ2V0SGFzaCh0aGlzLmlmcmFtZS5jb250ZW50V2luZG93KSksZT09PXRoaXMuZnJhZ21lbnQpcmV0dXJuITE7dGhpcy5pZnJhbWUmJnRoaXMubmF2aWdhdGUoZSksdGhpcy5sb2FkVXJsKCl9LGxvYWRVcmw6ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLm1hdGNoUm9vdCgpJiYodD10aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQodCksbi5zb21lKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oZSl7aWYoZS5yb3V0ZS50ZXN0KHQpKXJldHVybiBlLmNhbGxiYWNrKHQpLCEwfSkpfSxuYXZpZ2F0ZTpmdW5jdGlvbih0LGUpe2lmKCFqLnN0YXJ0ZWQpcmV0dXJuITE7ZSYmITAhPT1lfHwoZT17dHJpZ2dlcjohIWV9KSx0PXRoaXMuZ2V0RnJhZ21lbnQodHx8IiIpO3ZhciBuPXRoaXMucm9vdDsiIiE9PXQmJiI/IiE9PXQuY2hhckF0KDApfHwobj1uLnNsaWNlKDAsLTEpfHwiLyIpO3ZhciBpPW4rdDtpZih0PXRoaXMuZGVjb2RlRnJhZ21lbnQodC5yZXBsYWNlKEIsIiIpKSx0aGlzLmZyYWdtZW50IT09dCl7aWYodGhpcy5mcmFnbWVudD10LHRoaXMuX3VzZVB1c2hTdGF0ZSl0aGlzLmhpc3RvcnlbZS5yZXBsYWNlPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXSh7fSxkb2N1bWVudC50aXRsZSxpKTtlbHNle2lmKCF0aGlzLl93YW50c0hhc2hDaGFuZ2UpcmV0dXJuIHRoaXMubG9jYXRpb24uYXNzaWduKGkpO2lmKHRoaXMuX3VwZGF0ZUhhc2godGhpcy5sb2NhdGlvbix0LGUucmVwbGFjZSksdGhpcy5pZnJhbWUmJnQhPT10aGlzLmdldEhhc2godGhpcy5pZnJhbWUuY29udGVudFdpbmRvdykpe3ZhciByPXRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3c7ZS5yZXBsYWNlfHwoci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpKSx0aGlzLl91cGRhdGVIYXNoKHIubG9jYXRpb24sdCxlLnJlcGxhY2UpfX1yZXR1cm4gZS50cmlnZ2VyP3RoaXMubG9hZFVybCh0KTp2b2lkIDB9fSxfdXBkYXRlSGFzaDpmdW5jdGlvbih0LGUsbil7aWYobil7dmFyIGk9dC5ocmVmLnJlcGxhY2UoLyhqYXZhc2NyaXB0OnwjKS4qJC8sIiIpO3QucmVwbGFjZShpKyIjIitlKX1lbHNlIHQuaGFzaD0iIyIrZX19KSxlLmhpc3Rvcnk9bmV3IGosYi5leHRlbmQ9eS5leHRlbmQ9Qy5leHRlbmQ9TS5leHRlbmQ9ai5leHRlbmQ9ZnVuY3Rpb24odCxlKXt2YXIgaSxyPXRoaXM7aT10JiZuLmhhcyh0LCJjb25zdHJ1Y3RvciIpP3QuY29uc3RydWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG4uZXh0ZW5kKGkscixlKTt2YXIgbz1mdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3I9aX07cmV0dXJuIG8ucHJvdG90eXBlPXIucHJvdG90eXBlLGkucHJvdG90eXBlPW5ldyBvLHQmJm4uZXh0ZW5kKGkucHJvdG90eXBlLHQpLGkuX19zdXBlcl9fPXIucHJvdG90eXBlLGl9O3ZhciBEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdBICJ1cmwiIHByb3BlcnR5IG9yIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVkJyl9LFI9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmVycm9yO2UuZXJyb3I9ZnVuY3Rpb24oaSl7biYmbi5jYWxsKGUuY29udGV4dCx0LGksZSksdC50cmlnZ2VyKCJlcnJvciIsdCxpLGUpfX07cmV0dXJuIGV9KHMsbix0LGUpfS5hcHBseShlLHIpKXx8KHQuZXhwb3J0cz1vKX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9bigyKSxvPW4oMjYpLHM9big3OCksYT1uKDkpLHU9big3OSksYz1uKDExKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9yZXBsYXlpbmc9ITEsdGhpcy5fa2V5c3Ryb2tlcz1bXSx0aGlzLl9rZXlkb3duRXZlbnRzPVtdLHRoaXMuX2tleUJpbmRpbmdzPVtdLHRoaXMuX2V4YWN0S2V5TWF0Y2g9bnVsbCx0aGlzLl9jb21tYW5kcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2NvbW1hbmRDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKSx0aGlzLl9jb21tYW5kRXhlY3V0ZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjb21tYW5kQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNvbW1hbmRFeGVjdXRlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kRXhlY3V0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rZXlCaW5kaW5nQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImtleUJpbmRpbmdzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleUJpbmRpbmdzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmxpc3RDb21tYW5kcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jb21tYW5kcyl9LHQucHJvdG90eXBlLmhhc0NvbW1hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5fY29tbWFuZHN9LHQucHJvdG90eXBlLmFkZENvbW1hbmQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHQgaW4gdGhpcy5fY29tbWFuZHMpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgYWxyZWFkeSByZWdpc3RlcmVkLiIpO3JldHVybiB0aGlzLl9jb21tYW5kc1t0XT1pLmNyZWF0ZUNvbW1hbmQoZSksdGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtkZWxldGUgbi5fY29tbWFuZHNbdF0sbi5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJyZW1vdmVkIn0pfSl9LHQucHJvdG90eXBlLm5vdGlmeUNvbW1hbmRDaGFuZ2VkPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQmJiEodCBpbiB0aGlzLl9jb21tYW5kcykpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgaXMgbm90IHJlZ2lzdGVyZWQuIik7dGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOnQ/ImNoYW5nZWQiOiJtYW55LWNoYW5nZWQifSl9LHQucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4gbj9uLmxhYmVsLmNhbGwodm9pZCAwLGUpOiIifSx0LnByb3RvdHlwZS5tbmVtb25pYz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5tbmVtb25pYy5jYWxsKHZvaWQgMCxlKTotMX0sdC5wcm90b3R5cGUuaWNvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpLHRoaXMuaWNvbkNsYXNzKHQsZSl9LHQucHJvdG90eXBlLmljb25DbGFzcz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uQ2xhc3MuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmljb25MYWJlbD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uTGFiZWwuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNhcHRpb249ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uY2FwdGlvbi5jYWxsKHZvaWQgMCxlKToiIn0sdC5wcm90b3R5cGUudXNhZ2U9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24udXNhZ2UuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNsYXNzTmFtZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5jbGFzc05hbWUuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmRhdGFzZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uZGF0YXNldC5jYWxsKHZvaWQgMCxlKTp7fX0sdC5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4hIW4mJm4uaXNFbmFibGVkLmNhbGwodm9pZCAwLGUpfSx0LnByb3RvdHlwZS5pc1RvZ2dsZWQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiEhbiYmbi5pc1RvZ2dsZWQuY2FsbCh2b2lkIDAsZSl9LHQucHJvdG90eXBlLmlzVmlzaWJsZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuISFuJiZuLmlzVmlzaWJsZS5jYWxsKHZvaWQgMCxlKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG4saT10aGlzLl9jb21tYW5kc1t0XTtpZighaSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgbm90IHJlZ2lzdGVyZWQuIikpO3RyeXtuPWkuZXhlY3V0ZS5jYWxsKHZvaWQgMCxlKX1jYXRjaCh0KXtuPVByb21pc2UucmVqZWN0KHQpfXZhciByPVByb21pc2UucmVzb2x2ZShuKTtyZXR1cm4gdGhpcy5fY29tbWFuZEV4ZWN1dGVkLmVtaXQoe2lkOnQsYXJnczplLHJlc3VsdDpyfSkscn0sdC5wcm90b3R5cGUuYWRkS2V5QmluZGluZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49aS5jcmVhdGVLZXlCaW5kaW5nKHQpO3JldHVybiB0aGlzLl9rZXlCaW5kaW5ncy5wdXNoKG4pLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkLmVtaXQoe2JpbmRpbmc6bix0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtyLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YoZS5fa2V5QmluZGluZ3MsbiksZS5fa2V5QmluZGluZ0NoYW5nZWQuZW1pdCh7YmluZGluZzpuLHR5cGU6InJlbW92ZWQifSl9KX0sdC5wcm90b3R5cGUucHJvY2Vzc0tleWRvd25FdmVudD1mdW5jdGlvbihlKXtpZighdGhpcy5fcmVwbGF5aW5nKXt2YXIgbj10LmtleXN0cm9rZUZvcktleWRvd25FdmVudChlKTtpZighbilyZXR1cm4gdGhpcy5fcmVwbGF5S2V5ZG93bkV2ZW50cygpLHZvaWQgdGhpcy5fY2xlYXJQZW5kaW5nU3RhdGUoKTt0aGlzLl9rZXlzdHJva2VzLnB1c2gobik7dmFyIHI9aS5tYXRjaEtleUJpbmRpbmcodGhpcy5fa2V5QmluZGluZ3MsdGhpcy5fa2V5c3Ryb2tlcyxlKSxvPXIuZXhhY3Qscz1yLnBhcnRpYWw7aWYoIW8mJiFzKXJldHVybiB0aGlzLl9yZXBsYXlLZXlkb3duRXZlbnRzKCksdm9pZCB0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpO2lmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG8mJiFzKXJldHVybiB0aGlzLl9leGVjdXRlS2V5QmluZGluZyhvKSx2b2lkIHRoaXMuX2NsZWFyUGVuZGluZ1N0YXRlKCk7byYmKHRoaXMuX2V4YWN0S2V5TWF0Y2g9byksdGhpcy5fa2V5ZG93bkV2ZW50cy5wdXNoKGUpLHRoaXMuX3N0YXJ0VGltZXIoKX19LHQucHJvdG90eXBlLl9zdGFydFRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9jbGVhclRpbWVyKCksdGhpcy5fdGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb25QZW5kaW5nVGltZW91dCgpfSxpLkNIT1JEX1RJTUVPVVQpfSx0LnByb3RvdHlwZS5fY2xlYXJUaW1lcj1mdW5jdGlvbigpezAhPT10aGlzLl90aW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySUQpLHRoaXMuX3RpbWVySUQ9MCl9LHQucHJvdG90eXBlLl9yZXBsYXlLZXlkb3duRXZlbnRzPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX2tleWRvd25FdmVudHMubGVuZ3RoJiYodGhpcy5fcmVwbGF5aW5nPSEwLHRoaXMuX2tleWRvd25FdmVudHMuZm9yRWFjaChpLnJlcGxheUtleUV2ZW50KSx0aGlzLl9yZXBsYXlpbmc9ITEpfSx0LnByb3RvdHlwZS5fZXhlY3V0ZUtleUJpbmRpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO2lmKHRoaXMuaGFzQ29tbWFuZChlKSYmdGhpcy5pc0VuYWJsZWQoZSxuKSl0aGlzLmV4ZWN1dGUoZSxuKTtlbHNle3ZhciBpPXRoaXMuaGFzQ29tbWFuZChlKT8iZW5hYmxlZCI6InJlZ2lzdGVyZWQiLHI9IkNhbm5vdCBleGVjdXRlIGtleSBiaW5kaW5nICciK3Qua2V5cy5qb2luKCIsICIpKyInOiIsbz0iY29tbWFuZCAnIitlKyInIGlzIG5vdCAiK2krIi4iO2NvbnNvbGUud2FybihyKyIgIitvKX19LHQucHJvdG90eXBlLl9jbGVhclBlbmRpbmdTdGF0ZT1mdW5jdGlvbigpe3RoaXMuX2NsZWFyVGltZXIoKSx0aGlzLl9leGFjdEtleU1hdGNoPW51bGwsdGhpcy5fa2V5c3Ryb2tlcy5sZW5ndGg9MCx0aGlzLl9rZXlkb3duRXZlbnRzLmxlbmd0aD0wfSx0LnByb3RvdHlwZS5fb25QZW5kaW5nVGltZW91dD1mdW5jdGlvbigpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9leGFjdEtleU1hdGNoP3RoaXMuX2V4ZWN1dGVLZXlCaW5kaW5nKHRoaXMuX2V4YWN0S2V5TWF0Y2gpOnRoaXMuX3JlcGxheUtleWRvd25FdmVudHMoKSx0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpfSx0fSgpO2UuQ29tbWFuZFJlZ2lzdHJ5PWgsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9IiIsbj0hMSxpPSExLHI9ITEsbz0hMSxzPTAsdT10LnNwbGl0KC9ccysvKTtzPHUubGVuZ3RoO3MrKyl7dmFyIGM9dVtzXTsiQWNjZWwiPT09Yz9hLlBsYXRmb3JtLklTX01BQz9pPSEwOnI9ITA6IkFsdCI9PT1jP249ITA6IkNtZCI9PT1jP2k9ITA6IkN0cmwiPT09Yz9yPSEwOiJTaGlmdCI9PT1jP289ITA6Yy5sZW5ndGg+MCYmKGU9Yyl9cmV0dXJue2NtZDppLGN0cmw6cixhbHQ6bixzaGlmdDpvLGtleTplfX10LnBhcnNlS2V5c3Ryb2tlPWUsdC5ub3JtYWxpemVLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIG49IiIsaT1lKHQpO3JldHVybiBpLmN0cmwmJihuKz0iQ3RybCAiKSxpLmFsdCYmKG4rPSJBbHQgIiksaS5zaGlmdCYmKG4rPSJTaGlmdCAiKSxpLmNtZCYmYS5QbGF0Zm9ybS5JU19NQUMmJihuKz0iQ21kICIpLG4raS5rZXl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9ZSh0KTtyZXR1cm4gYS5QbGF0Zm9ybS5JU19NQUM/KGkuY3RybCYmKG4rPSLijIMgIiksaS5hbHQmJihuKz0i4oylICIpLGkuc2hpZnQmJihuKz0i4oenICIpLGkuY21kJiYobis9IuKMmCAiKSk6KGkuY3RybCYmKG4rPSJDdHJsKyIpLGkuYWx0JiYobis9IkFsdCsiKSxpLnNoaWZ0JiYobis9IlNoaWZ0KyIpKSxuK2kua2V5fSx0LmtleXN0cm9rZUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXt2YXIgZT11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKCFlKXJldHVybiIiO3ZhciBuPSIiO3JldHVybiB0LmN0cmxLZXkmJihuKz0iQ3RybCAiKSx0LmFsdEtleSYmKG4rPSJBbHQgIiksdC5zaGlmdEtleSYmKG4rPSJTaGlmdCAiKSx0Lm1ldGFLZXkmJmEuUGxhdGZvcm0uSVNfTUFDJiYobis9IkNtZCAiKSxuK2V9fShoPWUuQ29tbWFuZFJlZ2lzdHJ5fHwoZS5Db21tYW5kUmVnaXN0cnk9e30pKSxlLkNvbW1hbmRSZWdpc3RyeT1oLGZ1bmN0aW9uKHQpe3QuQ0hPUkRfVElNRU9VVD0xZTMsdC5jcmVhdGVDb21tYW5kPWZ1bmN0aW9uKHQpe3JldHVybntleGVjdXRlOnQuZXhlY3V0ZSxsYWJlbDp1KHQubGFiZWwsZSksbW5lbW9uaWM6dSh0Lm1uZW1vbmljLG4pLGljb25DbGFzczp1KHQuaWNvbkNsYXNzfHx0Lmljb24sZSksaWNvbkxhYmVsOnUodC5pY29uTGFiZWwsZSksY2FwdGlvbjp1KHQuY2FwdGlvbixlKSx1c2FnZTp1KHQudXNhZ2UsZSksY2xhc3NOYW1lOnUodC5jbGFzc05hbWUsZSksZGF0YXNldDp1KHQuZGF0YXNldCxzKSxpc0VuYWJsZWQ6dC5pc0VuYWJsZWR8fGksaXNUb2dnbGVkOnQuaXNUb2dnbGVkfHxyLGlzVmlzaWJsZTp0LmlzVmlzaWJsZXx8aX19LHQuY3JlYXRlS2V5QmluZGluZz1mdW5jdGlvbih0KXtyZXR1cm57a2V5czpjKHQpLHNlbGVjdG9yOmwodCksY29tbWFuZDp0LmNvbW1hbmQsYXJnczp0LmFyZ3N8fG8uSlNPTkV4dC5lbXB0eU9iamVjdH19LHQubWF0Y2hLZXlCaW5kaW5nPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bnVsbCxyPSExLG89MS8wLHM9MCx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD10W3VdLGw9ZChoLmtleXMsZSk7aWYoMCE9PWwpaWYoMiE9PWwpe3ZhciBwPWYoaC5zZWxlY3RvcixuKTtpZighKC0xPT09cHx8cD5vKSl7dmFyIG09YS5TZWxlY3Rvci5jYWxjdWxhdGVTcGVjaWZpY2l0eShoLnNlbGVjdG9yKTsoIWl8fHA8b3x8bT49cykmJihpPWgsbz1wLHM9bSl9fWVsc2Ugcnx8LTE9PT1mKGguc2VsZWN0b3Isbil8fChyPSEwKX1yZXR1cm57ZXhhY3Q6aSxwYXJ0aWFsOnJ9fSx0LnJlcGxheUtleUV2ZW50PWZ1bmN0aW9uKHQpe3QudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj10LmJ1YmJsZXN8fCEwLGk9dC5jYW5jZWxhYmxlfHwhMDtyZXR1cm4gZS5pbml0RXZlbnQodC50eXBlfHwia2V5ZG93biIsbixpKSxlLmtleT10LmtleXx8IiIsZS5rZXlDb2RlPXQua2V5Q29kZXx8MCxlLndoaWNoPXQua2V5Q29kZXx8MCxlLmN0cmxLZXk9dC5jdHJsS2V5fHwhMSxlLmFsdEtleT10LmFsdEtleXx8ITEsZS5zaGlmdEtleT10LnNoaWZ0S2V5fHwhMSxlLm1ldGFLZXk9dC5tZXRhS2V5fHwhMSxlLnZpZXc9dC52aWV3fHx3aW5kb3csZX0odCkpfTt2YXIgZT1mdW5jdGlvbigpe3JldHVybiIifSxuPWZ1bmN0aW9uKCl7cmV0dXJuLTF9LGk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0scj1mdW5jdGlvbigpe3JldHVybiExfSxzPWZ1bmN0aW9uKCl7cmV0dXJue319O2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gdm9pZCAwPT09dD9lOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gYyh0KXtyZXR1cm4oYS5QbGF0Zm9ybS5JU19XSU4/dC53aW5LZXlzfHx0LmtleXM6YS5QbGF0Zm9ybS5JU19NQUM/dC5tYWNLZXlzfHx0LmtleXM6dC5saW51eEtleXN8fHQua2V5cykubWFwKGgubm9ybWFsaXplS2V5c3Ryb2tlKX1mdW5jdGlvbiBsKHQpe2lmKC0xIT09dC5zZWxlY3Rvci5pbmRleE9mKCIsIikpdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RvciBjYW5ub3QgY29udGFpbiBjb21tYXM6ICIrdC5zZWxlY3Rvcik7aWYoIWEuU2VsZWN0b3IuaXNWYWxpZCh0LnNlbGVjdG9yKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VsZWN0b3I6ICIrdC5zZWxlY3Rvcik7cmV0dXJuIHQuc2VsZWN0b3J9ZnVuY3Rpb24gZCh0LGUpe2lmKHQubGVuZ3RoPGUubGVuZ3RoKXJldHVybiAwO2Zvcih2YXIgbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilpZih0W25dIT09ZVtuXSlyZXR1cm4gMDtyZXR1cm4gdC5sZW5ndGg+ZS5sZW5ndGg/MjoxfWZ1bmN0aW9uIGYodCxlKXtmb3IodmFyIG49ZS50YXJnZXQsaT1lLmN1cnJlbnRUYXJnZXQscj0wO251bGwhPT1uO249bi5wYXJlbnRFbGVtZW50LCsrcil7aWYoYS5TZWxlY3Rvci5tYXRjaGVzKG4sdCkpcmV0dXJuIHI7aWYobj09PWkpcmV0dXJuLTF9cmV0dXJuLTF9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHMsYT1uKDIpLHU9bigxMzApLGM9bigyNiksaD1uKDkpLGw9big3OSksZD1uKDUpLGY9bigxMSkscD1uKDU1KSxtPW4oNyksZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOnMuY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2NoaWxkSW5kZXg9LTEsaS5fYWN0aXZlSW5kZXg9LTEsaS5fb3BlblRpbWVySUQ9MCxpLl9jbG9zZVRpbWVySUQ9MCxpLl9pdGVtcz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLl9wYXJlbnRNZW51PW51bGwsaS5fYWJvdXRUb0Nsb3NlPW5ldyBmLlNpZ25hbChpKSxpLl9tZW51UmVxdWVzdGVkPW5ldyBmLlNpZ25hbChpKSxpLmFkZENsYXNzKCJwLU1lbnUiKSxpLnNldEZsYWcobS5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFib3V0VG9DbG9zZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hYm91dFRvQ2xvc2V9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtZW51UmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21lbnVSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYXJlbnRNZW51Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjaGlsZE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hpbGRNZW51fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicm9vdE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpczt0Ll9wYXJlbnRNZW51Oyl0PXQuX3BhcmVudE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsZWFmTWVudSIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzO3QuX2NoaWxkTWVudTspdD10Ll9jaGlsZE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51LWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZUl0ZW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXRlbXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX2l0ZW1zLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX2l0ZW1zLmxlbmd0aCkmJih0PS0xKSwtMT09PXR8fHMuY2FuQWN0aXZhdGUodGhpcy5faXRlbXNbdF0pfHwodD0tMSksdGhpcy5fYWN0aXZlSW5kZXghPT10JiYodGhpcy5fYWN0aXZlSW5kZXg9dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIml0ZW1zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZW1zfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFjdGl2YXRlTmV4dEl0ZW09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pdGVtcy5sZW5ndGgsZT10aGlzLl9hY3RpdmVJbmRleCxuPWU8dC0xP2UrMTowLGk9MD09PW4/dC0xOm4tMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMscy5jYW5BY3RpdmF0ZSxuLGkpfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVByZXZpb3VzSXRlbT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zLmxlbmd0aCxlPXRoaXMuX2FjdGl2ZUluZGV4LG49ZTw9MD90LTE6ZS0xLGk9bj09PXQtMT8wOm4rMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9pdGVtcyxzLmNhbkFjdGl2YXRlLG4saSl9LGUucHJvdG90eXBlLnRyaWdnZXJBY3RpdmVJdGVtPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkKXt2YXIgdD10aGlzLmFjdGl2ZUl0ZW07aWYodClpZih0aGlzLl9jYW5jZWxPcGVuVGltZXIoKSx0aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCksInN1Ym1lbnUiIT09dC50eXBlKXt0aGlzLnJvb3RNZW51LmNsb3NlKCk7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO3RoaXMuY29tbWFuZHMuaXNFbmFibGVkKGUsbik/dGhpcy5jb21tYW5kcy5leGVjdXRlKGUsbik6Y29uc29sZS5sb2coIkNvbW1hbmQgJyIrZSsiJyBpcyBkaXNhYmxlZC4iKX1lbHNlIHRoaXMuX29wZW5DaGlsZE1lbnUoITApfX0sZS5wcm90b3R5cGUuYWRkSXRlbT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnNlcnRJdGVtKHRoaXMuX2l0ZW1zLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0SXRlbT1mdW5jdGlvbih0LGUpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTE7dmFyIG49TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX2l0ZW1zLmxlbmd0aCkpLGk9cy5jcmVhdGVJdGVtKHRoaXMsZSk7cmV0dXJuIGEuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2l0ZW1zLG4saSksdGhpcy51cGRhdGUoKSxpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlSXRlbUF0KHRoaXMuX2l0ZW1zLmluZGV4T2YodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtQXQ9ZnVuY3Rpb24odCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSxhLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5jbGVhckl0ZW1zPWZ1bmN0aW9uKCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSwwIT09dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSl9LGUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSwhdGhpcy5pc0F0dGFjaGVkKXt2YXIgaT1uLmZvcmNlWHx8ITEscj1uLmZvcmNlWXx8ITE7cy5vcGVuUm9vdE1lbnUodGhpcyx0LGUsaSxyKSx0aGlzLmFjdGl2YXRlKCl9fSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZWVudGVyIjp0aGlzLl9ldnRNb3VzZUVudGVyKHQpO2JyZWFrO2Nhc2UibW91c2VsZWF2ZSI6dGhpcy5fZXZ0TW91c2VMZWF2ZSh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLmlzQXR0YWNoZWQmJnRoaXMubm9kZS5mb2N1cygpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2l0ZW1zLG49dGhpcy5yZW5kZXJlcixpPXRoaXMuX2FjdGl2ZUluZGV4LHI9cy5jb21wdXRlQ29sbGFwc2VkKGUpLG89bmV3IEFycmF5KGUubGVuZ3RoKSxhPTAsdT1lLmxlbmd0aDthPHU7KythKXt2YXIgYz1lW2FdLGg9YT09PWksbD1yW2FdO29bYV09bi5yZW5kZXJJdGVtKHtpdGVtOmMsYWN0aXZlOmgsY29sbGFwc2VkOmx9KX1wLlZpcnR1YWxET00ucmVuZGVyKG8sdGhpcy5jb250ZW50Tm9kZSl9LGUucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHRoaXMuX2NhbmNlbENsb3NlVGltZXIoKSx0aGlzLmFjdGl2ZUluZGV4PS0xO3ZhciBuPXRoaXMuX2NoaWxkTWVudTtuJiYodGhpcy5fY2hpbGRJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnU9bnVsbCxuLl9wYXJlbnRNZW51PW51bGwsbi5jbG9zZSgpKTt2YXIgaT10aGlzLl9wYXJlbnRNZW51O2kmJih0aGlzLl9wYXJlbnRNZW51PW51bGwsaS5fY2hpbGRJbmRleD0tMSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFjdGl2YXRlKCkpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fYWJvdXRUb0Nsb3NlLmVtaXQodm9pZCAwKSx0LnByb3RvdHlwZS5vbkNsb3NlUmVxdWVzdC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQua2V5Q29kZTtpZigxMyE9PWUpaWYoMjchPT1lKWlmKDM3IT09ZSlpZigzOCE9PWUpaWYoMzkhPT1lKWlmKDQwIT09ZSl7dmFyIG49bC5nZXRLZXlib2FyZExheW91dCgpLmtleUZvcktleWRvd25FdmVudCh0KTtpZihuKXt2YXIgaT10aGlzLl9hY3RpdmVJbmRleCsxLHI9cy5maW5kTW5lbW9uaWModGhpcy5faXRlbXMsbixpKTstMT09PXIuaW5kZXh8fHIubXVsdGlwbGU/LTEhPT1yLmluZGV4P3RoaXMuYWN0aXZlSW5kZXg9ci5pbmRleDotMSE9PXIuYXV0byYmKHRoaXMuYWN0aXZlSW5kZXg9ci5hdXRvKToodGhpcy5hY3RpdmVJbmRleD1yLmluZGV4LHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKSl9fWVsc2UgdGhpcy5hY3RpdmF0ZU5leHRJdGVtKCk7ZWxzZXt2YXIgbz10aGlzLmFjdGl2ZUl0ZW07byYmInN1Ym1lbnUiPT09by50eXBlP3RoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKTp0aGlzLnJvb3RNZW51Ll9tZW51UmVxdWVzdGVkLmVtaXQoIm5leHQiKX1lbHNlIHRoaXMuYWN0aXZhdGVQcmV2aW91c0l0ZW0oKTtlbHNlIHRoaXMuX3BhcmVudE1lbnU/dGhpcy5jbG9zZSgpOnRoaXMuX21lbnVSZXF1ZXN0ZWQuZW1pdCgicHJldmlvdXMiKTtlbHNlIHRoaXMuY2xvc2UoKTtlbHNlIHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy50cmlnZ2VyQWN0aXZlSXRlbSgpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGguRWxlbWVudEV4dC5oaXRUZXN0KGUsdC5jbGllbnRYLHQuY2xpZW50WSl9KTtpZihlIT09dGhpcy5fYWN0aXZlSW5kZXgpe2lmKHRoaXMuYWN0aXZlSW5kZXg9ZSwoZT10aGlzLmFjdGl2ZUluZGV4KT09PXRoaXMuX2NoaWxkSW5kZXgpcmV0dXJuIHRoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHZvaWQgdGhpcy5fY2FuY2VsQ2xvc2VUaW1lcigpOy0xIT09dGhpcy5fY2hpbGRJbmRleCYmdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCksdGhpcy5fY2FuY2VsT3BlblRpbWVyKCk7dmFyIG49dGhpcy5hY3RpdmVJdGVtO24mJiJzdWJtZW51Ij09PW4udHlwZSYmbi5zdWJtZW51JiZ0aGlzLl9zdGFydE9wZW5UaW1lcigpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRW50ZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3BhcmVudE1lbnU7ZTtlPWUuX3BhcmVudE1lbnUpZS5fY2FuY2VsT3BlblRpbWVyKCksZS5fY2FuY2VsQ2xvc2VUaW1lcigpLGUuYWN0aXZlSW5kZXg9ZS5fY2hpbGRJbmRleH0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTGVhdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FuY2VsT3BlblRpbWVyKCksdGhpcy5fY2hpbGRNZW51KXt2YXIgZT10LmNsaWVudFgsbj10LmNsaWVudFk7aC5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5fY2hpbGRNZW51Lm5vZGUsZSxuKT90aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCk6KHRoaXMuYWN0aXZlSW5kZXg9LTEsdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCkpfWVsc2UgdGhpcy5hY3RpdmVJbmRleD0tMX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXt0aGlzLl9wYXJlbnRNZW51fHwocy5oaXRUZXN0TWVudXModGhpcyx0LmNsaWVudFgsdC5jbGllbnRZKT8odC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpOnRoaXMuY2xvc2UoKSl9LGUucHJvdG90eXBlLl9vcGVuQ2hpbGRNZW51PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSExKTt2YXIgZT10aGlzLmFjdGl2ZUl0ZW07aWYoZSYmInN1Ym1lbnUiPT09ZS50eXBlJiZlLnN1Ym1lbnUpe3ZhciBuPWUuc3VibWVudTtpZihuIT09dGhpcy5fY2hpbGRNZW51KXt0aGlzLl9jbG9zZUNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudT1uLHRoaXMuX2NoaWxkSW5kZXg9dGhpcy5fYWN0aXZlSW5kZXgsbi5fcGFyZW50TWVudT10aGlzLGQuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyxtLldpZGdldC5Nc2cuVXBkYXRlUmVxdWVzdCk7dmFyIGk9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlblt0aGlzLl9hY3RpdmVJbmRleF07cy5vcGVuU3VibWVudShuLGkpLHQmJihuLmFjdGl2ZUluZGV4PS0xLG4uYWN0aXZhdGVOZXh0SXRlbSgpKSxuLmFjdGl2YXRlKCl9fWVsc2UgdGhpcy5fY2xvc2VDaGlsZE1lbnUoKX0sZS5wcm90b3R5cGUuX2Nsb3NlQ2hpbGRNZW51PWZ1bmN0aW9uKCl7dGhpcy5fY2hpbGRNZW51JiZ0aGlzLl9jaGlsZE1lbnUuY2xvc2UoKX0sZS5wcm90b3R5cGUuX3N0YXJ0T3BlblRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczswPT09dGhpcy5fb3BlblRpbWVySUQmJih0aGlzLl9vcGVuVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb3BlblRpbWVySUQ9MCx0Ll9vcGVuQ2hpbGRNZW51KCl9LHMuVElNRVJfREVMQVkpKX0sZS5wcm90b3R5cGUuX3N0YXJ0Q2xvc2VUaW1lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7MD09PXRoaXMuX2Nsb3NlVGltZXJJRCYmKHRoaXMuX2Nsb3NlVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fY2xvc2VUaW1lcklEPTAsdC5fY2xvc2VDaGlsZE1lbnUoKX0scy5USU1FUl9ERUxBWSkpfSxlLnByb3RvdHlwZS5fY2FuY2VsT3BlblRpbWVyPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX29wZW5UaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lcklEKSx0aGlzLl9vcGVuVGltZXJJRD0wKX0sZS5wcm90b3R5cGUuX2NhbmNlbENsb3NlVGltZXI9ZnVuY3Rpb24oKXswIT09dGhpcy5fY2xvc2VUaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZXJJRCksdGhpcy5fY2xvc2VUaW1lcklEPTApfSxlfShtLldpZGdldCk7ZS5NZW51PWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXJJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSXRlbUNsYXNzKHQpLG49dGhpcy5jcmVhdGVJdGVtRGF0YXNldCh0KTtyZXR1cm4gcC5oLmxpKHtjbGFzc05hbWU6ZSxkYXRhc2V0Om59LHRoaXMucmVuZGVySWNvbih0KSx0aGlzLnJlbmRlckxhYmVsKHQpLHRoaXMucmVuZGVyU2hvcnRjdXQodCksdGhpcy5yZW5kZXJTdWJtZW51KHQpKX0sdC5wcm90b3R5cGUucmVuZGVySWNvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUljb25DbGFzcyh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOmV9LHQuaXRlbS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdExhYmVsKHQpO3JldHVybiBwLmguZGl2KHtjbGFzc05hbWU6InAtTWVudS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVyU2hvcnRjdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRTaG9ydGN1dCh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbVNob3J0Y3V0In0sZSl9LHQucHJvdG90eXBlLnJlbmRlclN1Ym1lbnU9ZnVuY3Rpb24odCl7cmV0dXJuIHAuaC5kaXYoe2NsYXNzTmFtZToicC1NZW51LWl0ZW1TdWJtZW51SWNvbiJ9KX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbUNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5pdGVtLmlzVmlzaWJsZXx8KGUrPSIgcC1tb2QtaGlkZGVuIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpLHQuY29sbGFwc2VkJiYoZSs9IiBwLW1vZC1jb2xsYXBzZWQiKTt2YXIgbj10Lml0ZW0uY2xhc3NOYW1lO3JldHVybiBuJiYoZSs9IiAiK24pLGV9LHQucHJvdG90eXBlLmNyZWF0ZUl0ZW1EYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUudHlwZSxpPWUuY29tbWFuZCxyPWUuZGF0YXNldDtyZXR1cm4gbyh7fSxyLCJjb21tYW5kIj09PW4/e3R5cGU6bixjb21tYW5kOml9Ont0eXBlOm59KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbUljb24iLG49dC5pdGVtLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUubGFiZWwsaT1lLm1uZW1vbmljO2lmKGk8MHx8aT49bi5sZW5ndGgpcmV0dXJuIG47dmFyIHI9bi5zbGljZSgwLGkpLG89bi5zbGljZShpKzEpLHM9bltpXTtyZXR1cm5bcixwLmguc3Bhbih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbU1uZW1vbmljIn0scyksb119LHQucHJvdG90eXBlLmZvcm1hdFNob3J0Y3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbS5rZXlCaW5kaW5nO3JldHVybiBlP2Uua2V5cy5tYXAocy5mb3JtYXRLZXlzdHJva2UpLmpvaW4oIiwgIik6bnVsbH0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KGc9ZS5NZW51fHwoZS5NZW51PXt9KSksZS5NZW51PWcsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4ic2VwYXJhdG9yIiE9PXQudHlwZSYmdC5pc0VuYWJsZWQmJnQuaXNWaXNpYmxlfXQuVElNRVJfREVMQVk9MzAwLHQuU1VCTUVOVV9PVkVSTEFQPTMsdC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1NZW51LWNvbnRlbnQiLHQuYXBwZW5kQ2hpbGQoZSksdC50YWJJbmRleD0tMSx0fSx0LmNhbkFjdGl2YXRlPWUsdC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBuKHQuY29tbWFuZHMsZSl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dS5Db21tYW5kUmVnaXN0cnkucGFyc2VLZXlzdHJva2UodCk7cmV0dXJuIGguUGxhdGZvcm0uSVNfTUFDPyhuLmN0cmwmJihlKz0i4oyDICIpLG4uYWx0JiYoZSs9IuKMpSAiKSxuLnNoaWZ0JiYoZSs9IuKHpyAiKSxuLmNtZCYmKGUrPSLijJggIikpOihuLmN0cmwmJihlKz0iQ3RybCsiKSxuLmFsdCYmKGUrPSJBbHQrIiksbi5zaGlmdCYmKGUrPSJTaGlmdCsiKSksZStuLmtleX0sdC5oaXRUZXN0TWVudXM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10O2k7aT1pLmNoaWxkTWVudSlpZihoLkVsZW1lbnRFeHQuaGl0VGVzdChpLm5vZGUsZSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5jb21wdXRlQ29sbGFwc2VkPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7YS5BcnJheUV4dC5maWxsKGUsITEpO2Zvcih2YXIgbj0wLGk9dC5sZW5ndGg7bjxpOysrbilpZigocz10W25dKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbbl09ITB9Zm9yKHZhciByPWktMTtyPj0wOy0tcilpZigocz10W3JdKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbcl09ITB9Zm9yKHZhciBvPSExOysrbjxyOyl7dmFyIHM7KHM9dFtuXSkuaXNWaXNpYmxlJiYoInNlcGFyYXRvciIhPT1zLnR5cGU/bz0hMTpvP2Vbbl09ITA6bz0hMCl9cmV0dXJuIGV9LHQub3BlblJvb3RNZW51PWZ1bmN0aW9uKHQsZSxuLGkscil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgbz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQsYT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGM9dS0ocj9uOjApLGg9dC5ub2RlLGw9aC5zdHlsZTtsLnRvcD0iIixsLmxlZnQ9IiIsbC53aWR0aD0iIixsLmhlaWdodD0iIixsLnZpc2liaWxpdHk9ImhpZGRlbiIsbC5tYXhIZWlnaHQ9YysicHgiLG0uV2lkZ2V0LmF0dGFjaCh0LGRvY3VtZW50LmJvZHkpO3ZhciBmPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1mLndpZHRoLGc9Zi5oZWlnaHQ7IWkmJmUrcD5vK2EmJihlPW8rYS1wKSwhciYmbitnPnMrdSYmKG4+cyt1P249cyt1LWc6bi09ZyksbC50b3A9TWF0aC5tYXgoMCxuKSsicHgiLGwubGVmdD1NYXRoLm1heCgwLGUpKyJweCIsbC52aXNpYmlsaXR5PSIifSx0Lm9wZW5TdWJtZW51PWZ1bmN0aW9uKGUsbil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgaT13aW5kb3cucGFnZVhPZmZzZXQscj13aW5kb3cucGFnZVlPZmZzZXQsbz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgscz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGE9cyx1PWUubm9kZSxjPXUuc3R5bGU7Yy50b3A9IiIsYy5sZWZ0PSIiLGMud2lkdGg9IiIsYy5oZWlnaHQ9IiIsYy52aXNpYmlsaXR5PSJoaWRkZW4iLGMubWF4SGVpZ2h0PWErInB4IixtLldpZGdldC5hdHRhY2goZSxkb2N1bWVudC5ib2R5KTt2YXIgbD11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9bC53aWR0aCxwPWwuaGVpZ2h0LGc9aC5FbGVtZW50RXh0LmJveFNpemluZyhlLm5vZGUpLHY9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXYucmlnaHQtdC5TVUJNRU5VX09WRVJMQVA7YitmPmkrbyYmKGI9di5sZWZ0K3QuU1VCTUVOVV9PVkVSTEFQLWYpO3ZhciB5PXYudG9wLWcuYm9yZGVyVG9wLWcucGFkZGluZ1RvcDt5K3A+citzJiYoeT12LmJvdHRvbStnLmJvcmRlckJvdHRvbStnLnBhZGRpbmdCb3R0b20tcCksYy50b3A9TWF0aC5tYXgoMCx5KSsicHgiLGMubGVmdD1NYXRoLm1heCgwLGIpKyJweCIsYy52aXNpYmlsaXR5PSIifSx0LmZpbmRNbmVtb25pYz1mdW5jdGlvbih0LG4saSl7Zm9yKHZhciByPS0xLG89LTEscz0hMSxhPW4udG9VcHBlckNhc2UoKSx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD0odStpKSVjLGw9dFtoXTtpZihlKGwpKXt2YXIgZD1sLmxhYmVsO2lmKDAhPT1kLmxlbmd0aCl7dmFyIGY9bC5tbmVtb25pYztmPj0wJiZmPGQubGVuZ3RoP2RbZl0udG9VcHBlckNhc2UoKT09PWEmJigtMT09PXI/cj1oOnM9ITApOi0xPT09byYmZFswXS50b1VwcGVyQ2FzZSgpPT09YSYmKG89aCl9fX1yZXR1cm57aW5kZXg6cixtdWx0aXBsZTpzLGF1dG86b319O3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuX2NvbW1hbmRzPXQsdGhpcy50eXBlPWUudHlwZXx8ImNvbW1hbmQiLHRoaXMuY29tbWFuZD1lLmNvbW1hbmR8fCIiLHRoaXMuYXJncz1lLmFyZ3N8fGMuSlNPTkV4dC5lbXB0eU9iamVjdCx0aGlzLnN1Ym1lbnU9ZS5zdWJtZW51fHxudWxsfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5sYWJlbDoiIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1uZW1vbmljIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLm1uZW1vbmljKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5tbmVtb25pYzotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uQ2xhc3MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkNsYXNzKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uQ2xhc3M6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uTGFiZWw6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmNhcHRpb246IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5jbGFzc05hbWU6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJkYXRhc2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmRhdGFzZXQodGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmRhdGFzZXQ6e319LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0VuYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaXNFbmFibGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51IiE9PXRoaXMudHlwZXx8bnVsbCE9PXRoaXMuc3VibWVudX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiJjb21tYW5kIj09PXRoaXMudHlwZSYmdGhpcy5fY29tbWFuZHMuaXNUb2dnbGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNWaXNpYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmlzVmlzaWJsZSh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKToic3VibWVudSIhPT10aGlzLnR5cGV8fG51bGwhPT10aGlzLnN1Ym1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nIix7Z2V0OmZ1bmN0aW9uKCl7aWYoImNvbW1hbmQiPT09dGhpcy50eXBlKXt2YXIgdD10aGlzLmNvbW1hbmQsZT10aGlzLmFyZ3M7cmV0dXJuIGEuQXJyYXlFeHQuZmluZExhc3RWYWx1ZSh0aGlzLl9jb21tYW5kcy5rZXlCaW5kaW5ncyxmdW5jdGlvbihuKXtyZXR1cm4gbi5jb21tYW5kPT09dCYmYy5KU09ORXh0LmRlZXBFcXVhbChuLmFyZ3MsZSl9KXx8bnVsbH1yZXR1cm4gbnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpfShzfHwocz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1KSxjPW4oNDApLGg9bigyMiksbD1uKDcpLGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3NwYWNpbmc9NCxuLl9kaXJ0eT0hMSxuLl9yb290PW51bGwsbi5fYm94PW51bGwsbi5faXRlbXM9bmV3IE1hcCxuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuaXRlcigpO3RoaXMuX2l0ZW1zLmZvckVhY2goZnVuY3Rpb24odCl7dC5kaXNwb3NlKCl9KSx0aGlzLl9ib3g9bnVsbCx0aGlzLl9yb290PW51bGwsdGhpcy5faXRlbXMuY2xlYXIoKSxzLmVhY2goZSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0VtcHR5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLl9yb290fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJBbGxXaWRnZXRzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3Q/dGhpcy5fcm9vdC5pdGVyVXNlcldpZGdldHMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLnNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclNlbGVjdGVkV2lkZ2V0cygpOnMuZW1wdHkoKX0sZS5wcm90b3R5cGUudGFiQmFycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclRhYkJhcnMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLmhhbmRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJIYW5kbGVzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS5tb3ZlSGFuZGxlPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9yb290JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpKXt2YXIgaSxyPXRoaXMuX3Jvb3QuZmluZFNwbGl0Tm9kZSh0KTtpZihyKTAhPT0oaT0iaG9yaXpvbnRhbCI9PT1yLm5vZGUub3JpZW50YXRpb24/ZS10Lm9mZnNldExlZnQ6bi10Lm9mZnNldFRvcCkmJihyLm5vZGUuaG9sZFNpemVzKCksYy5Cb3hFbmdpbmUuYWRqdXN0KHIubm9kZS5zaXplcnMsci5pbmRleCxpKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpfX0sZS5wcm90b3R5cGUuc2F2ZUxheW91dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290Pyh0aGlzLl9yb290LmhvbGRBbGxTaXplcygpLHttYWluOnRoaXMuX3Jvb3QuY3JlYXRlQ29uZmlnKCl9KTp7bWFpbjpudWxsfX0sZS5wcm90b3R5cGUucmVzdG9yZUxheW91dD1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1uZXcgU2V0O2U9dC5tYWluP28ubm9ybWFsaXplQXJlYUNvbmZpZyh0Lm1haW4saSk6bnVsbDt2YXIgcj10aGlzLndpZGdldHMoKSxhPXRoaXMudGFiQmFycygpLHU9dGhpcy5oYW5kbGVzKCk7dGhpcy5fcm9vdD1udWxsLHMuZWFjaChyLGZ1bmN0aW9uKHQpe2kuaGFzKHQpfHwodC5wYXJlbnQ9bnVsbCl9KSxzLmVhY2goYSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHMuZWFjaCh1LGZ1bmN0aW9uKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QucGFyZW50PW4ucGFyZW50fSksdGhpcy5fcm9vdD1lP28ucmVhbGl6ZUFyZWFDb25maWcoZSx7Y3JlYXRlVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIG4uX2NyZWF0ZVRhYkJhcigpfSxjcmVhdGVIYW5kbGU6ZnVuY3Rpb24oKXtyZXR1cm4gbi5fY3JlYXRlSGFuZGxlKCl9fSk6bnVsbCx0aGlzLnBhcmVudCYmKGkuZm9yRWFjaChmdW5jdGlvbih0KXtuLmF0dGFjaFdpZGdldCh0KX0pLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuYWRkV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPWUucmVmfHxudWxsLGk9ZS5tb2RlfHwidGFiLWFmdGVyIixyPW51bGw7aWYodGhpcy5fcm9vdCYmbiYmKHI9dGhpcy5fcm9vdC5maW5kVGFiTm9kZShuKSksbiYmIXIpdGhyb3cgbmV3IEVycm9yKCJSZWZlcmVuY2Ugd2lkZ2V0IGlzIG5vdCBpbiB0aGUgbGF5b3V0LiIpO3N3aXRjaCh0LnBhcmVudD10aGlzLnBhcmVudCxpKXtjYXNlInRhYi1hZnRlciI6dGhpcy5faW5zZXJ0VGFiKHQsbixyLCEwKTticmVhaztjYXNlInRhYi1iZWZvcmUiOnRoaXMuX2luc2VydFRhYih0LG4sciwhMSk7YnJlYWs7Y2FzZSJzcGxpdC10b3AiOnRoaXMuX2luc2VydFNwbGl0KHQsbixyLCJ2ZXJ0aWNhbCIsITEpO2JyZWFrO2Nhc2Uic3BsaXQtbGVmdCI6dGhpcy5faW5zZXJ0U3BsaXQodCxuLHIsImhvcml6b250YWwiLCExKTticmVhaztjYXNlInNwbGl0LXJpZ2h0Ijp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwiaG9yaXpvbnRhbCIsITApO2JyZWFrO2Nhc2Uic3BsaXQtYm90dG9tIjp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwidmVydGljYWwiLCEwKX10aGlzLnBhcmVudCYmKHRoaXMuYXR0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZVdpZGdldCh0KSx0aGlzLnBhcmVudCYmKHRoaXMuZGV0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuaGl0VGVzdFRhYkFyZWFzPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX3Jvb3R8fCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmlzVmlzaWJsZSlyZXR1cm4gbnVsbDt0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIG49dGhpcy5wYXJlbnQubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQtbi5sZWZ0LXRoaXMuX2JveC5ib3JkZXJMZWZ0LHI9ZS1uLnRvcC10aGlzLl9ib3guYm9yZGVyVG9wLG89dGhpcy5fcm9vdC5oaXRUZXN0VGFiTm9kZXMoaSxyKTtpZighbylyZXR1cm4gbnVsbDt2YXIgcz1vLnRhYkJhcix1PW8udG9wLGM9by5sZWZ0LGg9by53aWR0aCxsPW8uaGVpZ2h0LGQ9dGhpcy5fYm94LmJvcmRlckxlZnQrdGhpcy5fYm94LmJvcmRlclJpZ2h0LGY9dGhpcy5fYm94LmJvcmRlclRvcCt0aGlzLl9ib3guYm9yZGVyQm90dG9tO3JldHVybnt0YWJCYXI6cyx4OmkseTpyLHRvcDp1LGxlZnQ6YyxyaWdodDpuLndpZHRoLWQtKGMraCksYm90dG9tOm4uaGVpZ2h0LWYtKHUrbCksd2lkdGg6aCxoZWlnaHQ6bH19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pLHMuZWFjaCh0aGlzLmhhbmRsZXMoKSxmdW5jdGlvbih0KXtlLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpfSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5ub2RlIT09dC5ub2RlLnBhcmVudE5vZGUmJih0aGlzLl9pdGVtcy5zZXQodCxuZXcgaC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxsLldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe2lmKHRoaXMucGFyZW50Lm5vZGU9PT10Lm5vZGUucGFyZW50Tm9kZSl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGwuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKTt2YXIgZT10aGlzLl9pdGVtcy5nZXQodCk7ZSYmKHRoaXMuX2l0ZW1zLmRlbGV0ZSh0KSxlLmRpc3Bvc2UoKSl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVTaG93LmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2guY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkU2hvd249ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRIaWRkZW49ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uUmVzaXplPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKHQud2lkdGgsdC5oZWlnaHQpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUoLTEsLTEpfSxlLnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdGhpcy5fZml0KCl9LGUucHJvdG90eXBlLl9yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fcm9vdCl7dmFyIGU9dGhpcy5fcm9vdC5maW5kVGFiTm9kZSh0KTtpZihlKWlmKGUudGFiQmFyLnRpdGxlcy5sZW5ndGg+MSllLnRhYkJhci5yZW1vdmVUYWIodC50aXRsZSk7ZWxzZSBpZihlLnRhYkJhci5kaXNwb3NlKCksdGhpcy5fcm9vdCE9PWUpe3RoaXMuX3Jvb3QuaG9sZEFsbFNpemVzKCk7dmFyIG49ZS5wYXJlbnQ7ZS5wYXJlbnQ9bnVsbDt2YXIgaT1zLkFycmF5RXh0LnJlbW92ZUZpcnN0T2Yobi5jaGlsZHJlbixlKSxyPXMuQXJyYXlFeHQucmVtb3ZlQXQobi5oYW5kbGVzLGkpO2lmKHMuQXJyYXlFeHQucmVtb3ZlQXQobi5zaXplcnMsaSksci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksbi5jaGlsZHJlbi5sZW5ndGg+MSluLnN5bmNIYW5kbGVzKCk7ZWxzZXt2YXIgYT1uLnBhcmVudDtuLnBhcmVudD1udWxsO3ZhciB1PW4uY2hpbGRyZW5bMF0sYz1uLmhhbmRsZXNbMF07aWYobi5jaGlsZHJlbi5sZW5ndGg9MCxuLmhhbmRsZXMubGVuZ3RoPTAsbi5zaXplcnMubGVuZ3RoPTAsYy5wYXJlbnROb2RlJiZjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyksdGhpcy5fcm9vdD09PW4pcmV0dXJuIHUucGFyZW50PW51bGwsdm9pZCh0aGlzLl9yb290PXUpO3ZhciBoPWEsbD1oLmNoaWxkcmVuLmluZGV4T2Yobik7aWYodSBpbnN0YW5jZW9mIG8uVGFiTGF5b3V0Tm9kZSlyZXR1cm4gdS5wYXJlbnQ9aCx2b2lkKGguY2hpbGRyZW5bbF09dSk7dmFyIGQ9cy5BcnJheUV4dC5yZW1vdmVBdChoLmhhbmRsZXMsbCk7cy5BcnJheUV4dC5yZW1vdmVBdChoLmNoaWxkcmVuLGwpLHMuQXJyYXlFeHQucmVtb3ZlQXQoaC5zaXplcnMsbCksZC5wYXJlbnROb2RlJiZkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7Zm9yKHZhciBmPTAscD11LmNoaWxkcmVuLmxlbmd0aDtmPHA7KytmKXt2YXIgbT11LmNoaWxkcmVuW2ZdLGc9dS5oYW5kbGVzW2ZdLHY9dS5zaXplcnNbZl07cy5BcnJheUV4dC5pbnNlcnQoaC5jaGlsZHJlbixsK2YsbSkscy5BcnJheUV4dC5pbnNlcnQoaC5oYW5kbGVzLGwrZixnKSxzLkFycmF5RXh0Lmluc2VydChoLnNpemVycyxsK2YsdiksbS5wYXJlbnQ9aH11LmNoaWxkcmVuLmxlbmd0aD0wLHUuaGFuZGxlcy5sZW5ndGg9MCx1LnNpemVycy5sZW5ndGg9MCx1LnBhcmVudD1udWxsLGguc3luY0hhbmRsZXMoKX19ZWxzZSB0aGlzLl9yb290PW51bGx9fSxlLnByb3RvdHlwZS5faW5zZXJ0VGFiPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQhPT1lKXtpZighdGhpcy5fcm9vdCl7dmFyIHI9bmV3IG8uVGFiTGF5b3V0Tm9kZSh0aGlzLl9jcmVhdGVUYWJCYXIoKSk7cmV0dXJuIHIudGFiQmFyLmFkZFRhYih0LnRpdGxlKSx2b2lkKHRoaXMuX3Jvb3Q9cil9dmFyIHM7bnx8KG49dGhpcy5fcm9vdC5maW5kRmlyc3RUYWJOb2RlKCkpLC0xPT09bi50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSkmJih0aGlzLl9yZW1vdmVXaWRnZXQodCksdC5oaWRlKCkpLHM9ZT9uLnRhYkJhci50aXRsZXMuaW5kZXhPZihlLnRpdGxlKTpuLnRhYkJhci5jdXJyZW50SW5kZXgsbi50YWJCYXIuaW5zZXJ0VGFiKHMrKGk/MTowKSx0LnRpdGxlKX19LGUucHJvdG90eXBlLl9pbnNlcnRTcGxpdD1mdW5jdGlvbih0LGUsbixpLHIpe2lmKHQhPT1lfHwhbnx8MSE9PW4udGFiQmFyLnRpdGxlcy5sZW5ndGgpe3RoaXMuX3JlbW92ZVdpZGdldCh0KTt2YXIgYT1uZXcgby5UYWJMYXlvdXROb2RlKHRoaXMuX2NyZWF0ZVRhYkJhcigpKTtpZihhLnRhYkJhci5hZGRUYWIodC50aXRsZSksdGhpcy5fcm9vdCl7aWYoIW58fCFuLnBhcmVudCl7dmFyIHU9dGhpcy5fc3BsaXRSb290KGkpLGM9cj91LmNoaWxkcmVuLmxlbmd0aDowO3Uubm9ybWFsaXplU2l6ZXMoKTt2YXIgaD1vLmNyZWF0ZVNpemVyKG4/MTpvLkdPTERFTl9SQVRJTyk7cmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHUuY2hpbGRyZW4sYyxhKSxzLkFycmF5RXh0Lmluc2VydCh1LnNpemVycyxjLGgpLHMuQXJyYXlFeHQuaW5zZXJ0KHUuaGFuZGxlcyxjLHRoaXMuX2NyZWF0ZUhhbmRsZSgpKSxhLnBhcmVudD11LHUubm9ybWFsaXplU2l6ZXMoKSx2b2lkIHUuc3luY0hhbmRsZXMoKX12YXIgbD1uLnBhcmVudDtpZihsLm9yaWVudGF0aW9uPT09aSl7dmFyIGQ9bC5jaGlsZHJlbi5pbmRleE9mKG4pO2wubm9ybWFsaXplU2l6ZXMoKTt2YXIgZj1sLnNpemVyc1tkXS5zaXplSGludC89MixwPWQrKHI/MTowKTtyZXR1cm4gcy5BcnJheUV4dC5pbnNlcnQobC5jaGlsZHJlbixwLGEpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuc2l6ZXJzLHAsby5jcmVhdGVTaXplcihmKSkscy5BcnJheUV4dC5pbnNlcnQobC5oYW5kbGVzLHAsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWwsdm9pZCBsLnN5bmNIYW5kbGVzKCl9dmFyIG09cy5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGwuY2hpbGRyZW4sbiksZz1uZXcgby5TcGxpdExheW91dE5vZGUoaSk7Zy5ub3JtYWxpemVkPSEwLGcuY2hpbGRyZW4ucHVzaChuKSxnLnNpemVycy5wdXNoKG8uY3JlYXRlU2l6ZXIoLjUpKSxnLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksbi5wYXJlbnQ9Zzt2YXIgdj1yPzE6MDtzLkFycmF5RXh0Lmluc2VydChnLmNoaWxkcmVuLHYsYSkscy5BcnJheUV4dC5pbnNlcnQoZy5zaXplcnMsdixvLmNyZWF0ZVNpemVyKC41KSkscy5BcnJheUV4dC5pbnNlcnQoZy5oYW5kbGVzLHYsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWcsZy5zeW5jSGFuZGxlcygpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuY2hpbGRyZW4sbSxnKSxnLnBhcmVudD1sfWVsc2UgdGhpcy5fcm9vdD1hfX0sZS5wcm90b3R5cGUuX3NwbGl0Um9vdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yb290O2lmKGUgaW5zdGFuY2VvZiBvLlNwbGl0TGF5b3V0Tm9kZSYmZS5vcmllbnRhdGlvbj09PXQpcmV0dXJuIGU7dmFyIG49dGhpcy5fcm9vdD1uZXcgby5TcGxpdExheW91dE5vZGUodCk7cmV0dXJuIGUmJihuLmNoaWxkcmVuLnB1c2goZSksbi5zaXplcnMucHVzaChvLmNyZWF0ZVNpemVyKDApKSxuLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksZS5wYXJlbnQ9biksbn0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO2lmKHRoaXMuX3Jvb3Qpe3ZhciBuPXRoaXMuX3Jvb3QuZml0KHRoaXMuX3NwYWNpbmcsdGhpcy5faXRlbXMpO3Q9bi5taW5XaWR0aCxlPW4ubWluSGVpZ2h0fXZhciBpPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPWkuaG9yaXpvbnRhbFN1bSxlKz1pLnZlcnRpY2FsU3VtO3ZhciByPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7ci5taW5XaWR0aD10KyJweCIsci5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsbC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGwuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKHRoaXMuX2RpcnR5PSExLHRoaXMuX3Jvb3Qpe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBuPXRoaXMuX2JveC5wYWRkaW5nVG9wLGk9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHI9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxvPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO3RoaXMuX3Jvb3QudXBkYXRlKG4saSxyLG8sdGhpcy5fc3BhY2luZyx0aGlzLl9pdGVtcyl9fSxlLnByb3RvdHlwZS5fY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gdC5vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5wYXJlbnQmJih0LnBhcmVudD10aGlzLnBhcmVudCx0aGlzLmF0dGFjaFdpZGdldCh0KSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZUhhbmRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmVuZGVyZXIuY3JlYXRlSGFuZGxlKCksZT10LnN0eWxlO3JldHVybiBlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS50b3A9IjAiLGUubGVmdD0iMCIsZS53aWR0aD0iMCIsZS5oZWlnaHQ9IjAiLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpLHR9LGV9KGguTGF5b3V0KTtlLkRvY2tMYXlvdXQ9ZCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBjLkJveFNpemVyO3JldHVybiBlLnNpemVIaW50PXQsZS5zaXplPXQsZX1mdW5jdGlvbiBuKHQsZSl7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe2lmKDA9PT10LndpZGdldHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBuPVtdO2lmKHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7ZS5oYXModCl8fChlLmFkZCh0KSxuLnB1c2godCkpfSksMD09PW4ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBpPXQuY3VycmVudEluZGV4Oy0xIT09aSYmKGk8MHx8aT49bi5sZW5ndGgpJiYoaT0wKTtyZXR1cm57dHlwZToidGFiLWFyZWEiLHdpZGdldHM6bixjdXJyZW50SW5kZXg6aX19KHQsZSk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9dC5vcmllbnRhdGlvbixyPVtdLG89W10scz0wLGE9dC5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9bih0LmNoaWxkcmVuW3NdLGUpO3UmJigidGFiLWFyZWEiPT09dS50eXBlfHx1Lm9yaWVudGF0aW9uIT09aT8oci5wdXNoKHUpLG8ucHVzaChNYXRoLmFicyh0LnNpemVzW3NdfHwwKSkpOihyLnB1c2guYXBwbHkocix1LmNoaWxkcmVuKSxvLnB1c2guYXBwbHkobyx1LnNpemVzKSkpfWlmKDA9PT1yLmxlbmd0aClyZXR1cm4gbnVsbDtpZigxPT09ci5sZW5ndGgpcmV0dXJuIHJbMF07cmV0dXJue3R5cGU6InNwbGl0LWFyZWEiLG9yaWVudGF0aW9uOmksY2hpbGRyZW46cixzaXplczpvfX0odCxlKX1mdW5jdGlvbiBpKHQsbil7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe3ZhciBuPWUuY3JlYXRlVGFiQmFyKCk7cmV0dXJuIHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7dC5oaWRlKCksbi5hZGRUYWIodC50aXRsZSl9KSxuLmN1cnJlbnRJbmRleD10LmN1cnJlbnRJbmRleCxuZXcgcihuKX0odCxuKTpmdW5jdGlvbih0LG4pe3ZhciByPW5ldyBvKHQub3JpZW50YXRpb24pO3JldHVybiBzLmVhY2godC5jaGlsZHJlbixmdW5jdGlvbihvLHMpe3ZhciBhPWkobyxuKSx1PWUodC5zaXplc1tzXSksYz1uLmNyZWF0ZUhhbmRsZSgpO3IuY2hpbGRyZW4ucHVzaChhKSxyLmhhbmRsZXMucHVzaChjKSxyLnNpemVycy5wdXNoKHUpLGEucGFyZW50PXJ9KSxyLnN5bmNIYW5kbGVzKCksci5ub3JtYWxpemVTaXplcygpLHJ9KHQsbil9dC5HT0xERU5fUkFUSU89LjYxOCx0LmNsYW1wU3BhY2luZz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5jcmVhdGVTaXplcj1lLHQubm9ybWFsaXplQXJlYUNvbmZpZz1uLHQucmVhbGl6ZUFyZWFDb25maWc9aTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLl90b3A9MCx0aGlzLl9sZWZ0PTAsdGhpcy5fd2lkdGg9MCx0aGlzLl9oZWlnaHQ9MDt2YXIgZT1uZXcgYy5Cb3hTaXplcixuPW5ldyBjLkJveFNpemVyO2Uuc3RyZXRjaD0wLG4uc3RyZXRjaD0xLHRoaXMudGFiQmFyPXQsdGhpcy5zaXplcnM9W2Usbl19cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidG9wIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RvcH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGVmdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIndpZHRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZHRofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaGVpZ2h0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlaWdodH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5pdGVyQWxsV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLmNoYWluKHMub25jZSh0aGlzLnRhYkJhciksdGhpcy5pdGVyVXNlcldpZGdldHMoKSl9LHQucHJvdG90eXBlLml0ZXJVc2VyV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLm1hcCh0aGlzLnRhYkJhci50aXRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQub3duZXJ9KX0sdC5wcm90b3R5cGUuaXRlclNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD9zLm9uY2UodC5vd25lcik6cy5lbXB0eSgpfSx0LnByb3RvdHlwZS5pdGVyVGFiQmFycz1mdW5jdGlvbigpe3JldHVybiBzLm9uY2UodGhpcy50YWJCYXIpfSx0LnByb3RvdHlwZS5pdGVySGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiBzLmVtcHR5KCl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09dGhpcy50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSk/dGhpczpudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kRmlyc3RUYWJOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe3JldHVybiB0PHRoaXMuX2xlZnR8fHQ+PXRoaXMuX2xlZnQrdGhpcy5fd2lkdGg/bnVsbDplPHRoaXMuX3RvcHx8ZT49dGhpcy5fdG9wK3RoaXMuX2hlaWdodD9udWxsOnRoaXN9LHQucHJvdG90eXBlLmNyZWF0ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ0YWItYXJlYSIsd2lkZ2V0czp0aGlzLnRhYkJhci50aXRsZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bmVyfSksY3VycmVudEluZGV4OnRoaXMudGFiQmFyLmN1cnJlbnRJbmRleH19LHQucHJvdG90eXBlLmhvbGRBbGxTaXplcz1mdW5jdGlvbigpe30sdC5wcm90b3R5cGUuZml0PWZ1bmN0aW9uKHQsZSl7dmFyIG49MCxpPTAscj1lLmdldCh0aGlzLnRhYkJhciksbz10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUscz1vP2UuZ2V0KG8ub3duZXIpOnZvaWQgMCxhPXRoaXMuc2l6ZXJzLHU9YVswXSxjPWFbMV07cmV0dXJuIHImJnIuZml0KCkscyYmcy5maXQoKSxyJiYhci5pc0hpZGRlbj8obj1NYXRoLm1heChuLHIubWluV2lkdGgpLGkrPXIubWluSGVpZ2h0LHUubWluU2l6ZT1yLm1pbkhlaWdodCx1Lm1heFNpemU9ci5tYXhIZWlnaHQpOih1Lm1pblNpemU9MCx1Lm1heFNpemU9MCkscyYmIXMuaXNIaWRkZW4/KG49TWF0aC5tYXgobixzLm1pbldpZHRoKSxpKz1zLm1pbkhlaWdodCxjLm1pblNpemU9cy5taW5IZWlnaHQsYy5tYXhTaXplPTEvMCk6KGMubWluU2l6ZT0wLGMubWF4U2l6ZT0xLzApLHttaW5XaWR0aDpuLG1pbkhlaWdodDppLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl90b3A9ZSx0aGlzLl9sZWZ0PXQsdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9aTt2YXIgcz1vLmdldCh0aGlzLnRhYkJhciksYT10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUsdT1hP28uZ2V0KGEub3duZXIpOnZvaWQgMDtpZihjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGkpLHMmJiFzLmlzSGlkZGVuKXt2YXIgaD10aGlzLnNpemVyc1swXS5zaXplO3MudXBkYXRlKHQsZSxuLGgpLGUrPWh9aWYodSYmIXUuaXNIaWRkZW4pe2g9dGhpcy5zaXplcnNbMV0uc2l6ZTt1LnVwZGF0ZSh0LGUsbixoKX19LHR9KCk7dC5UYWJMYXlvdXROb2RlPXI7dmFyIG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucGFyZW50PW51bGwsdGhpcy5ub3JtYWxpemVkPSExLHRoaXMuY2hpbGRyZW49W10sdGhpcy5zaXplcnM9W10sdGhpcy5oYW5kbGVzPVtdLHRoaXMub3JpZW50YXRpb249dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlckFsbFdpZGdldHM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJBbGxXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclVzZXJXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyVXNlcldpZGdldHMoKX0pO3JldHVybiBuZXcgcy5DaGFpbkl0ZXJhdG9yKHQpfSx0LnByb3RvdHlwZS5pdGVyU2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyU2VsZWN0ZWRXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclRhYkJhcnM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJUYWJCYXJzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlckhhbmRsZXM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJIYW5kbGVzKCl9KTtyZXR1cm4gcy5jaGFpbih0aGlzLmhhbmRsZXMsbmV3IHMuQ2hhaW5JdGVyYXRvcih0KSl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZTxuOysrZSl7dmFyIGk9dGhpcy5jaGlsZHJlbltlXS5maW5kVGFiTm9kZSh0KTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFuZGxlcy5pbmRleE9mKHQpO2lmKC0xIT09ZSlyZXR1cm57aW5kZXg6ZSxub2RlOnRoaXN9O2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5maW5kU3BsaXROb2RlKHQpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZpbmRGaXJzdFRhYk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY2hpbGRyZW4ubGVuZ3RoP251bGw6dGhpcy5jaGlsZHJlblswXS5maW5kRmlyc3RUYWJOb2RlKCl9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5oaXRUZXN0VGFiTm9kZXModCxlKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5jcmVhdGVDb25maWc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWVudGF0aW9uLGU9dGhpcy5jcmVhdGVOb3JtYWxpemVkU2l6ZXMoKTtyZXR1cm57dHlwZToic3BsaXQtYXJlYSIsb3JpZW50YXRpb246dCxjaGlsZHJlbjp0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jcmVhdGVDb25maWcoKX0pLHNpemVzOmV9fSx0LnByb3RvdHlwZS5zeW5jSGFuZGxlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cy5lYWNoKHRoaXMuaGFuZGxlcyxmdW5jdGlvbihlLG4pe2Uuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWVudGF0aW9uIix0Lm9yaWVudGF0aW9uKSxuPT09dC5oYW5kbGVzLmxlbmd0aC0xP2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik6ZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfSx0LnByb3RvdHlwZS5ob2xkU2l6ZXM9ZnVuY3Rpb24oKXtzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplSGludD10LnNpemV9KX0sdC5wcm90b3R5cGUuaG9sZEFsbFNpemVzPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuY2hpbGRyZW4sZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9sZEFsbFNpemVzKCl9KSx0aGlzLmhvbGRTaXplcygpfSx0LnByb3RvdHlwZS5ub3JtYWxpemVTaXplcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2l6ZXJzLmxlbmd0aDtpZigwIT09dCl7dGhpcy5ob2xkU2l6ZXMoKTt2YXIgZT1zLnJlZHVjZSh0aGlzLnNpemVycyxmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uuc2l6ZUhpbnR9LDApOzA9PT1lP3MuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbihlKXtlLnNpemU9ZS5zaXplSGludD0xL3R9KTpzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplPXQuc2l6ZUhpbnQvPWV9KSx0aGlzLm5vcm1hbGl6ZWQ9ITB9fSx0LnByb3RvdHlwZS5jcmVhdGVOb3JtYWxpemVkU2l6ZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNpemVycy5sZW5ndGg7aWYoMD09PXQpcmV0dXJuW107dmFyIGU9dGhpcy5zaXplcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9KSxuPXMucmVkdWNlKGUsZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKTtyZXR1cm4gMD09PW4/cy5lYWNoKGUsZnVuY3Rpb24obixpKXtlW2ldPTEvdH0pOnMuZWFjaChlLGZ1bmN0aW9uKHQsaSl7ZVtpXT10L259KSxlfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbixpPU1hdGgubWF4KDAsdGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkqdCxyPW4/aTowLG89bj8wOmkscz0wLGE9dGhpcy5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9dGhpcy5jaGlsZHJlbltzXS5maXQodCxlKTtuPyhvPU1hdGgubWF4KG8sdS5taW5IZWlnaHQpLHIrPXUubWluV2lkdGgsdGhpcy5zaXplcnNbc10ubWluU2l6ZT11Lm1pbldpZHRoKToocj1NYXRoLm1heChyLHUubWluV2lkdGgpLG8rPXUubWluSGVpZ2h0LHRoaXMuc2l6ZXJzW3NdLm1pblNpemU9dS5taW5IZWlnaHQpfXJldHVybnttaW5XaWR0aDpyLG1pbkhlaWdodDpvLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uLHU9TWF0aC5tYXgoMCx0aGlzLmNoaWxkcmVuLmxlbmd0aC0xKSpyLGg9TWF0aC5tYXgoMCwoYT9uOmkpLXUpO3RoaXMubm9ybWFsaXplZCYmKHMuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbih0KXt0LnNpemVIaW50Kj1ofSksdGhpcy5ub3JtYWxpemVkPSExKSxjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGgpO2Zvcih2YXIgbD0wLGQ9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bDxkOysrbCl7dmFyIGY9dGhpcy5jaGlsZHJlbltsXSxwPXRoaXMuc2l6ZXJzW2xdLnNpemUsbT10aGlzLmhhbmRsZXNbbF0uc3R5bGU7YT8oZi51cGRhdGUodCxlLHAsaSxyLG8pLHQrPXAsbS50b3A9ZSsicHgiLG0ubGVmdD10KyJweCIsbS53aWR0aD1yKyJweCIsbS5oZWlnaHQ9aSsicHgiLHQrPXIpOihmLnVwZGF0ZSh0LGUsbixwLHIsbyksZSs9cCxtLnRvcD1lKyJweCIsbS5sZWZ0PXQrInB4IixtLndpZHRoPW4rInB4IixtLmhlaWdodD1yKyJweCIsZSs9cil9fSx0fSgpO3QuU3BsaXRMYXlvdXROb2RlPW99KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big0MSksZj1uKDcpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX2hhc05vcm1lZFNpemVzPSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9oYW5kbGVzPVtdLG4uX2JveD1udWxsLG4uX2FsaWdubWVudD0ic3RhcnQiLG4uX29yaWVudGF0aW9uPSJob3Jpem9udGFsIixuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5vcmllbnRhdGlvbiYmKG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb24pLHZvaWQgMCE9PWUuYWxpZ25tZW50JiYobi5fYWxpZ25tZW50PWUuYWxpZ25tZW50KSx2b2lkIDAhPT1lLnNwYWNpbmcmJihuLl9zcGFjaW5nPW8uY2xhbXBTcGFjaW5nKGUuc3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fc2l6ZXJzLmxlbmd0aD0wLHRoaXMuX2hhbmRsZXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fb3JpZW50YXRpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnBhcmVudC5maXQoKSkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiYWxpZ25tZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsaWdubWVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2FsaWdubWVudCE9PXQmJih0aGlzLl9hbGlnbm1lbnQ9dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3Q9by5jbGFtcFNwYWNpbmcodCksdGhpcy5fc3BhY2luZyE9PXQmJih0aGlzLl9zcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImhhbmRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGFuZGxlc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKCl7cmV0dXJuIG8ubm9ybWFsaXplKHRoaXMuX3NpemVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX0pKX0sZS5wcm90b3R5cGUuc2V0UmVsYXRpdmVTaXplcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fc2l6ZXJzLmxlbmd0aCxuPXQuc2xpY2UoMCxlKTtuLmxlbmd0aDxlOyluLnB1c2goMCk7Zm9yKHZhciBpPW8ubm9ybWFsaXplKG4pLHI9MDtyPGU7KytyKXt2YXIgcz10aGlzLl9zaXplcnNbcl07cy5zaXplSGludD1pW3JdLHMuc2l6ZT1pW3JdfXRoaXMuX2hhc05vcm1lZFNpemVzPSEwLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUubW92ZUhhbmRsZT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5faGFuZGxlc1t0XTtpZihpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpJiYwIT09KG49Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/ZS1pLm9mZnNldExlZnQ6ZS1pLm9mZnNldFRvcCkpe2Zvcih2YXIgcj0wLG89dGhpcy5fc2l6ZXJzO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdO3Muc2l6ZT4wJiYocy5zaXplSGludD1zLnNpemUpfWguQm94RW5naW5lLmFkanVzdCh0aGlzLl9zaXplcnMsdCxuKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuZGF0YXNldC5vcmllbnRhdGlvbj10aGlzLm9yaWVudGF0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IGwuTGF5b3V0SXRlbShlKSxpPW8uY3JlYXRlSGFuZGxlKHRoaXMucmVuZGVyZXIpLHI9by5hdmVyYWdlU2l6ZSh0aGlzLl9zaXplcnMpLGE9by5jcmVhdGVTaXplcihyKTtzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG4pLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3NpemVycyx0LGEpLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2hhbmRsZXMsdCxpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoaSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3MuQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHMuQXJyYXlFeHQubW92ZSh0aGlzLl9zaXplcnMsdCxlKSxzLkFycmF5RXh0Lm1vdmUodGhpcy5faGFuZGxlcyx0LGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpLGk9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9oYW5kbGVzLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKSxuLmRpc3Bvc2UoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25CZWZvcmVTaG93PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlU2hvdy5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQudXBkYXRlKCl9LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoLmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkSGlkZGVuPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSh0LndpZHRoLHQuaGVpZ2h0KX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKC0xLC0xKX0sZS5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnRoaXMuX2ZpdCgpfSxlLnByb3RvdHlwZS5fZml0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsbj0tMSxpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl0aGlzLl9pdGVtc1tpXS5pc0hpZGRlbj90aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpOih0aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWhpZGRlbiIpLG49aSx0KyspOy0xIT09biYmdGhpcy5faGFuZGxlc1tuXS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLl9maXhlZD10aGlzLl9zcGFjaW5nKk1hdGgubWF4KDAsdC0xKTt2YXIgbz0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbixzPW8/dGhpcy5fZml4ZWQ6MCxjPW8/MDp0aGlzLl9maXhlZDtmb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBoPXRoaXMuX2l0ZW1zW2ldLGw9dGhpcy5fc2l6ZXJzW2ldO2wuc2l6ZT4wJiYobC5zaXplSGludD1sLnNpemUpLGguaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxvPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW0sZD0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbjtpZihvPWQ/TWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKTpNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpLHRoaXMuX2hhc05vcm1lZFNpemVzKXtmb3IodmFyIGY9MCxwPXRoaXMuX3NpemVycztmPHAubGVuZ3RoO2YrKyl7cFtmXS5zaXplSGludCo9b310aGlzLl9oYXNOb3JtZWRTaXplcz0hMX12YXIgbT1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxvKSxnPTAsdj0wO2lmKG0+MClzd2l0Y2godGhpcy5fYWxpZ25tZW50KXtjYXNlInN0YXJ0IjpicmVhaztjYXNlImNlbnRlciI6Zz0wLHY9bS8yO2JyZWFrO2Nhc2UiZW5kIjpnPTAsdj1tO2JyZWFrO2Nhc2UianVzdGlmeSI6Zz1tL24sdj0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGI9dGhpcy5faXRlbXNbaV07aWYoIWIuaXNIaWRkZW4pe3ZhciB5PXRoaXMuX3NpemVyc1tpXS5zaXplLF89dGhpcy5faGFuZGxlc1tpXS5zdHlsZTtkPyhiLnVwZGF0ZSh1K3Yscyx5K2csbCksdSs9eStnLF8udG9wPXMrInB4IixfLmxlZnQ9dSt2KyJweCIsXy53aWR0aD10aGlzLl9zcGFjaW5nKyJweCIsXy5oZWlnaHQ9bCsicHgiLHUrPXRoaXMuX3NwYWNpbmcpOihiLnVwZGF0ZSh1LHMrdixjLHkrZykscys9eStnLF8udG9wPXMrdisicHgiLF8ubGVmdD11KyJweCIsXy53aWR0aD1jKyJweCIsXy5oZWlnaHQ9dGhpcy5fc3BhY2luZysicHgiLHMrPXRoaXMuX3NwYWNpbmcpfX19fSxlfShkLlBhbmVsTGF5b3V0KTtlLlNwbGl0TGF5b3V0PXAsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBvLnN0cmV0Y2hQcm9wZXJ0eS5nZXQodCl9LHQuc2V0U3RyZXRjaD1mdW5jdGlvbih0LGUpe28uc3RyZXRjaFByb3BlcnR5LnNldCh0LGUpfX0ocD1lLlNwbGl0TGF5b3V0fHwoZS5TcGxpdExheW91dD17fSkpLGUuU3BsaXRMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZnVuY3Rpb24odCl7dC5wYXJlbnQmJnQucGFyZW50LmxheW91dCBpbnN0YW5jZW9mIHAmJnQucGFyZW50LmZpdCgpfX0pLHQuY3JlYXRlU2l6ZXI9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGguQm94U2l6ZXI7cmV0dXJuIGUuc2l6ZUhpbnQ9TWF0aC5mbG9vcih0KSxlfSx0LmNyZWF0ZUhhbmRsZT1mdW5jdGlvbih0KXt2YXIgZT10LmNyZWF0ZUhhbmRsZSgpO3JldHVybiBlLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZX0sdC5jbGFtcFNwYWNpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcih0KSl9LHQuYXZlcmFnZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5zaXplfSwwKS90Lmxlbmd0aHx8MH0sdC5ub3JtYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107dmFyIG49dC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLmFicyhlKX0sMCk7cmV0dXJuIDA9PT1uP3QubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAxL2V9KTp0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC9ufSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9big5KSxhPW4oNSksdT1uKDIyKSxjPW4oNDEpLGg9big3KSxsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2RpcnR5PSExLGUuX2l0ZW1zPVtdLGUuX2JveD1udWxsLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXtvLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG5ldyB1LkxheW91dEl0ZW0oZSkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe28uQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1vLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi53aWRnZXQubm9kZS5zdHlsZS56SW5kZXg9IiIsbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9MCxuPTAsaT10aGlzLl9pdGVtcy5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5faXRlbXNbbl07ci5pc0hpZGRlbnx8KHIuZml0KCksdD1NYXRoLm1heCh0LHIubWluV2lkdGgpLGU9TWF0aC5tYXgoZSxyLm1pbkhlaWdodCkpfXZhciBvPXRoaXMuX2JveD1zLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPW8uaG9yaXpvbnRhbFN1bSxlKz1vLnZlcnRpY2FsU3VtO3ZhciB1PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7dS5taW5XaWR0aD10KyJweCIsdS5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsaC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGguV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PXMuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvPXRoaXMuX2JveC5wYWRkaW5nVG9wLGE9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHU9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxjPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO2ZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGg9dGhpcy5faXRlbXNbaV07aC5pc0hpZGRlbnx8KGgud2lkZ2V0Lm5vZGUuc3R5bGUuekluZGV4PSIiK2ksaC51cGRhdGUoYSxvLHUsYykpfX19LGV9KGMuUGFuZWxMYXlvdXQpO2UuU3RhY2tlZExheW91dD1sfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMTEpLGE9big1NCksdT1uKDEzNCksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3dpZGdldFJlbW92ZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU3RhY2tlZFBhbmVsIiksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpLHRoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0oYS5QYW5lbCk7ZS5TdGFja2VkUGFuZWw9YyxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyB1LlN0YWNrZWRMYXlvdXR9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9bigxNiksYz1uKDIpLGg9big1KSxsPW4oMzkpLGQ9big2KSxmPW4oMTUpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Rpc3Bvc2VkfHwodC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpLHRoaXMuX3ZpZXcmJnRoaXMuX3ZpZXcucmVtb3ZlKCksdGhpcy5fdmlldz1udWxsKX0sZX0obC5QYW5lbCk7ZS5KdXB5dGVyUGhvc3Bob3JQYW5lbFdpZGdldD1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiQm94VmlldyIsX21vZGVsX25hbWU6IkJveE1vZGVsIixjaGlsZHJlbjpbXSxib3hfc3R5bGU6IiJ9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtjaGlsZHJlbjp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkJveE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJIQm94VmlldyIsX21vZGVsX25hbWU6IkhCb3hNb2RlbCJ9KX0sZX0obSk7ZS5IQm94TW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGQuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlZCb3hWaWV3IixfbW9kZWxfbmFtZToiVkJveE1vZGVsIn0pfSxlfShtKTtlLlZCb3hNb2RlbD12O3ZhciBiPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX2NyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucFdpZGdldD1uZXcgcCh7dmlldzp0aGlzfSksdGhpcy5wV2lkZ2V0Lm5vZGV9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuZWx8fHQhPT10aGlzLnBXaWRnZXQubm9kZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXNldCB0aGUgRE9NIGVsZW1lbnQuIik7dGhpcy5lbD10aGlzLnBXaWRnZXQubm9kZSx0aGlzLiRlbD1mKHRoaXMucFdpZGdldC5ub2RlKX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBzLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX21vZGVsLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLHRoaXMudXBkYXRlX2NoaWxkcmVuKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpib3hfc3R5bGUiLHRoaXMudXBkYXRlX2JveF9zdHlsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1jb250YWluZXIiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1ib3giKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy51cGRhdGVfY2hpbGRyZW4oKSx0aGlzLnNldF9ib3hfc3R5bGUoKX0sZS5wcm90b3R5cGUudXBkYXRlX2NoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLnRoZW4oZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2guTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodC5wV2lkZ2V0LGwuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9KX0sZS5wcm90b3R5cGUudXBkYXRlX2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuc2V0X2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuYWRkX2NoaWxkX21vZGVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgbC5XaWRnZXQ7cmV0dXJuIHRoaXMucFdpZGdldC5hZGRXaWRnZXQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBpPWMuQXJyYXlFeHQuZmlyc3RJbmRleE9mKGUucFdpZGdldC53aWRnZXRzLG4pO3JldHVybiBlLnBXaWRnZXQuaW5zZXJ0V2lkZ2V0KGksdC5wV2lkZ2V0KSxuLmRpc3Bvc2UoKSx0fSkuY2F0Y2godS5yZWplY3QoIkNvdWxkIG5vdCBhZGQgY2hpbGQgdmlldyB0byBib3giLCEwKSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuY2hpbGRyZW5fdmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJhbGVydCIsImFsZXJ0LXN1Y2Nlc3MiXSxpbmZvOlsiYWxlcnQiLCJhbGVydC1pbmZvIl0sd2FybmluZzpbImFsZXJ0IiwiYWxlcnQtd2FybmluZyJdLGRhbmdlcjpbImFsZXJ0IiwiYWxlcnQtZGFuZ2VyIl19LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5Cb3hWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWhib3giKX0sZX0oYik7ZS5IQm94Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC12Ym94Iil9LGV9KGIpO2UuVkJveFZpZXc9Xzt2YXIgdz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtZ3JpZGJveCIpLHRoaXMucFdpZGdldC5yZW1vdmVDbGFzcygid2lkZ2V0LWJveCIpfSxlfShiKTtlLkdyaWRCb3hWaWV3PXc7dmFyIHg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJHcmlkQm94VmlldyIsX21vZGVsX25hbWU6IkdyaWRCb3hNb2RlbCJ9KX0sZX0obSk7ZS5HcmlkQm94TW9kZWw9eH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDgpLGM9bigxNiksaD1uKDEzOSksbD1uKDYpLGQ9bigxNSk7bigzNDcpO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludE1vZGVsIix2YWx1ZTowfSl9LGV9KHMuQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuSW50TW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50TW9kZWwiLG1heDoxMDAsbWluOjB9KX0sZX0oZik7ZS5Cb3VuZGVkSW50TW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNsaWRlclN0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtoYW5kbGVfY29sb3I6e3NlbGVjdG9yOiIudWktc2xpZGVyLWhhbmRsZSIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuU2xpZGVyU3R5bGVNb2RlbD1tO3ZhciBnPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJJbnRTbGlkZXJWaWV3IixzdGVwOjEsb3JpZW50YXRpb246Imhvcml6b250YWwiLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6ImQiLGNvbnRpbnVvdXNfdXBkYXRlOiEwLHN0eWxlOm51bGwsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPWguZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0ocCk7ZS5JbnRTbGlkZXJNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZX0oZyk7ZS5JbnRSYW5nZVNsaWRlck1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VJbnQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1zbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1kKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5jb250ZW50RWRpdGFibGU9InRydWUiLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgbj10aGlzO24uJHNsaWRlci5zbGlkZXIoe30pLFsic3RlcCIsImRpc2FibGVkIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLm1vZGVsLmdldCh0KTt2b2lkIDAhPT1lJiZuLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLHQsZSl9KSx0aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKT90aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPSJmYWxzZSI6dGhpcy5yZWFkb3V0LmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI7dmFyIGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoIm1pbiIpO3I8PWkmJih2b2lkIDAhPT1pJiZ0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJtYXgiLGkpLHZvaWQgMCE9PXImJnRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1pbiIscikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm9yaWVudGF0aW9uIixvKSwidmVydGljYWwiPT09bz8odGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS12Ym94IikpOih0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC12c2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSksdGhpcy5tb2RlbC5nZXQoInJlYWRvdXQiKT8odGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe24ucmVhZG91dF9vdmVyZmxvdygpP24ucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJvdmVyZmxvdyIpOm4ucmVhZG91dC5jbGFzc0xpc3QucmVtb3ZlKCJvdmVyZmxvdyIpfSkpOnRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIn1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlYWRvdXRfb3ZlcmZsb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkb3V0LnNjcm9sbFdpZHRoPnRoaXMucmVhZG91dC5jbGllbnRXaWR0aH0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCIsImJsdXIgW2NvbnRlbnRFZGl0YWJsZT10cnVlXSI6ImhhbmRsZVRleHRDaGFuZ2UiLCJrZXlkb3duIFtjb250ZW50RWRpdGFibGU9dHJ1ZV0iOiJoYW5kbGVLZXlEb3duIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVUZXh0Q2hhbmdlKCkpfSxlLnByb3RvdHlwZS5fdmFsaWRhdGVfc2xpZGVfdmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkJhc2VJbnRTbGlkZXJWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcmFuZ2VfcmVnZXg9L15ccyooWystXT9cZCspXHMqWy064oCTXVxzKihbKy1dP1xkKykvLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJyYW5nZSIsITApO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsbi5zbGljZSgpKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKG4pLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09biYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsbix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXI7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkuam9pbigiIOKAkyAiKX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yYW5nZV9yZWdleC5leGVjKHQpO3JldHVybiBlP1t0aGlzLl9wYXJzZV92YWx1ZShlWzFdKSx0aGlzLl9wYXJzZV92YWx1ZShlWzJdKV06bnVsbH0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO251bGw9PT10fHxpc05hTih0WzBdKXx8aXNOYU4odFsxXSl8fHRbMF0+dFsxXT90aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKToodD1bTWF0aC5tYXgoTWF0aC5taW4odFswXSxuKSxlKSxNYXRoLm1heChNYXRoLm1pbih0WzFdLG4pLGUpXSlbMF0hPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKVswXXx8dFsxXSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpWzFdPyh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHQpLHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdCx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpOnRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnZhbHVlcy5tYXAodGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS52YWx1ZXMubWFwKHRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLG4se3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShiKTtlLkludFJhbmdlU2xpZGVyVmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMsZSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoIm1pbiIpLGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7cj5pP3I9aTpyPG4mJihyPW4pLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlIixyKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09ciYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIscix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybigwLHRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXIpKHQpfSxlLnByb3RvdHlwZS5zdHJpbmdUb1ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJzZV92YWx1ZSh0KX0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO2lzTmFOKHQpP3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpOih0PU1hdGgubWF4KE1hdGgubWluKHQsbiksZSkpIT09dGhpcy5tb2RlbC5nZXQoInZhbHVlIik/KHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodCksdGhpcy5tb2RlbC5zZXQoInZhbHVlIix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSk6dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSl9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKGUudmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSk7dGhpcy5tb2RlbC5zZXQoInZhbHVlIixuLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oYik7ZS5JbnRTbGlkZXJWaWV3PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITF9KX0sZX0oZik7ZS5JbnRUZXh0TW9kZWw9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITEsc3RlcDoxfSl9LGV9KHApO2UuQm91bmRlZEludFRleHRNb2RlbD14O3ZhciBNPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlSW50LGUuX2RlZmF1bHRfc3RlcD0iMSIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnR5cGU9Im51bWJlciIsdGhpcy50ZXh0Ym94LnJlcXVpcmVkPSEwLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9Yy51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9PXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX3BhcnNlX3ZhbHVlKHRoaXMudGV4dGJveC52YWx1ZSkhPT1uJiYodGhpcy50ZXh0Ym94LnZhbHVlPW4udG9TdHJpbmcoKSksdm9pZCAwIT09dGhpcy5tb2RlbC5nZXQoIm1pbiIpJiYodGhpcy50ZXh0Ym94Lm1pbj10aGlzLm1vZGVsLmdldCgibWluIikpLHZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKHRoaXMudGV4dGJveC5tYXg9dGhpcy5tb2RlbC5nZXQoIm1heCIpKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgic3RlcCIpJiZudWxsIT09dGhpcy5tb2RlbC5nZXQoInN0ZXAiKT90aGlzLnRleHRib3guc3RlcD10aGlzLm1vZGVsLmdldCgic3RlcCIpOnRoaXMudGV4dGJveC5zdGVwPXRoaXMuX2RlZmF1bHRfc3RlcCx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IGlucHV0IjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgaW5wdXQiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQudmFsdWUudHJpbSgpOyIiPT09ZXx8WyItIiwiLS4iLCIuIiwiKy4iLCIrIl0uaW5kZXhPZihlKT49MHx8dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZV92YWx1ZSh0LnRhcmdldC52YWx1ZSk7aWYoaXNOYU4oZSkpdC50YXJnZXQudmFsdWU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7ZWxzZXt2YXIgbj1lO3ZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKG49TWF0aC5taW4odGhpcy5tb2RlbC5nZXQoIm1heCIpLG4pKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgibWluIikmJihuPU1hdGgubWF4KHRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuKSksbiE9PWUmJih0LnRhcmdldC52YWx1ZT1uLGU9biksZSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpJiYodGhpcy5tb2RlbC5zZXQoInZhbHVlIixlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSl9fSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5JbnRUZXh0Vmlldz1NO3ZhciBTPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUHJvZ3Jlc3NTdHlsZU1vZGVsIn0pfSxlLnN0eWxlUHJvcGVydGllcz1vKHt9LGEuRGVzY3JpcHRpb25TdHlsZU1vZGVsLnN0eWxlUHJvcGVydGllcyx7YmFyX2NvbG9yOntzZWxlY3RvcjoiLnByb2dyZXNzLWJhciIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuUHJvZ3Jlc3NTdHlsZU1vZGVsPVM7dmFyIEU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0ocCk7ZS5JbnRQcm9ncmVzc01vZGVsPUU7dmFyIEE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJhcl9zdHlsZSIsdGhpcy51cGRhdGVfYmFyX3N0eWxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT0iaG9yaXpvbnRhbCI9PT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKT8id2lkZ2V0LWhwcm9ncmVzcyI6IndpZGdldC12cHJvZ3Jlc3MiO3RoaXMuZWwuY2xhc3NMaXN0LmFkZChlKSx0aGlzLnByb2dyZXNzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMucHJvZ3Jlc3MuY2xhc3NMaXN0LmFkZCgicHJvZ3Jlc3MiKSx0aGlzLnByb2dyZXNzLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnByb2dyZXNzKSx0aGlzLmJhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmJhci5jbGFzc0xpc3QuYWRkKCJwcm9ncmVzcy1iYXIiKSx0aGlzLmJhci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5sZWZ0PSIwcHgiLHRoaXMucHJvZ3Jlc3MuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5zZXRfYmFyX3N0eWxlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpLGk9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLHI9MTAwKihlLWkpLyhuLWkpO3JldHVybiJob3Jpem9udGFsIj09PXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpPyh0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtdmJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LXZwcm9ncmVzcyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5iYXIuc3R5bGUud2lkdGg9cisiJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PSIxMDAlIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLXZib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC12cHJvZ3Jlc3MiKSx0aGlzLmJhci5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PXIrIiUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUudXBkYXRlX2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5wcm90b3R5cGUuc2V0X2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJwcm9ncmVzcy1iYXItc3VjY2VzcyJdLGluZm86WyJwcm9ncmVzcy1iYXItaW5mbyJdLHdhcm5pbmc6WyJwcm9ncmVzcy1iYXItd2FybmluZyJdLGRhbmdlcjpbInByb2dyZXNzLWJhci1kYW5nZXIiXX0sZX0oYS5EZXNjcmlwdGlvblZpZXcpO2UuUHJvZ3Jlc3NWaWV3PUE7dmFyIEM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUGxheU1vZGVsIixfdmlld19uYW1lOiJQbGF5VmlldyIsX3BsYXlpbmc6ITEsX3JlcGVhdDohMSxzaG93X3JlcGVhdDohMCxpbnRlcnZhbDoxMDAsc3RlcDoxLGRpc2FibGVkOiExfSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pfSxlLnByb3RvdHlwZS5sb29wPWZ1bmN0aW9uKCl7aWYodGhpcy5nZXQoIl9wbGF5aW5nIikpe3ZhciB0PXRoaXMuZ2V0KCJ2YWx1ZSIpK3RoaXMuZ2V0KCJzdGVwIik7dDw9dGhpcy5nZXQoIm1heCIpPyh0aGlzLnNldCgidmFsdWUiLHQpLHRoaXMuc2NoZWR1bGVfbmV4dCgpKTp0aGlzLmdldCgiX3JlcGVhdCIpPyh0aGlzLnNldCgidmFsdWUiLHRoaXMuZ2V0KCJtaW4iKSksdGhpcy5zY2hlZHVsZV9uZXh0KCkpOnRoaXMuc2V0KCJfcGxheWluZyIsITEpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9fSxlLnByb3RvdHlwZS5zY2hlZHVsZV9uZXh0PWZ1bmN0aW9uKCl7d2luZG93LnNldFRpbWVvdXQodGhpcy5sb29wLmJpbmQodGhpcyksdGhpcy5nZXQoImludGVydmFsIikpfSxlLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zZXQoInZhbHVlIix0aGlzLmdldCgibWluIikpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9LGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zYXZlX2NoYW5nZXMoKX0sZS5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMuc2V0KCJfcGxheWluZyIsITApLHRoaXMuZ2V0KCJ2YWx1ZSIpPT10aGlzLmdldCgibWF4Iik/KHRoaXMuc2V0KCJ2YWx1ZSIsdGhpcy5nZXQoIm1pbiIpKSx0aGlzLnNjaGVkdWxlX25leHQoKSx0aGlzLnNhdmVfY2hhbmdlcygpKTp0aGlzLmxvb3AoKX0sZS5wcm90b3R5cGUucmVwZWF0PWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9yZXBlYXQiLCF0aGlzLmdldCgiX3JlcGVhdCIpKSx0aGlzLnNhdmVfY2hhbmdlcygpfSxlfShwKTtlLlBsYXlNb2RlbD1DO3ZhciBrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXBsYXkiKSx0aGlzLnBsYXlCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wYXVzZUJ1dHRvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSx0aGlzLnN0b3BCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5yZXBlYXRCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wbGF5QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucGF1c2VCdXR0b24uY2xhc3NOYW1lPSJqdXB5dGVyLWJ1dHRvbiIsdGhpcy5zdG9wQnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucmVwZWF0QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5wbGF5QnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucGF1c2VCdXR0b24pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdG9wQnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucmVwZWF0QnV0dG9uKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7ZS5jbGFzc05hbWU9ImZhIGZhLXBsYXkiLHRoaXMucGxheUJ1dHRvbi5hcHBlbmRDaGlsZChlKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7bi5jbGFzc05hbWU9ImZhIGZhLXBhdXNlIix0aGlzLnBhdXNlQnV0dG9uLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtpLmNsYXNzTmFtZT0iZmEgZmEtc3RvcCIsdGhpcy5zdG9wQnV0dG9uLmFwcGVuZENoaWxkKGkpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtyLmNsYXNzTmFtZT0iZmEgZmEtcmV0d2VldCIsdGhpcy5yZXBlYXRCdXR0b24uYXBwZW5kQ2hpbGQociksdGhpcy5wbGF5QnV0dG9uLm9uY2xpY2s9dGhpcy5tb2RlbC5wbGF5LmJpbmQodGhpcy5tb2RlbCksdGhpcy5wYXVzZUJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucGF1c2UuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnN0b3BCdXR0b24ub25jbGljaz10aGlzLm1vZGVsLnN0b3AuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnJlcGVhdEJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucmVwZWF0LmJpbmQodGhpcy5tb2RlbCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3BsYXlpbmciLHRoaXMudXBkYXRlX3BsYXlpbmcpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOl9yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2hvd19yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy51cGRhdGVfcGxheWluZygpLHRoaXMudXBkYXRlX3JlcGVhdCgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMucGxheUJ1dHRvbi5kaXNhYmxlZD10LHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnN0b3BCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnJlcGVhdEJ1dHRvbi5kaXNhYmxlZD10LHRoaXMudXBkYXRlX3BsYXlpbmcoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYXlpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3BsYXlpbmciKSxlPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3Q/KGV8fCh0aGlzLnBhdXNlQnV0dG9uLmRpc2FibGVkPSExKSx0aGlzLnBsYXlCdXR0b24uY2xhc3NMaXN0LmFkZCgibW9kLWFjdGl2ZSIpKTooZXx8KHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9ITApLHRoaXMucGxheUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVwZWF0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoIl9yZXBlYXQiKTt0aGlzLnJlcGVhdEJ1dHRvbi5zdHlsZS5kaXNwbGF5PXRoaXMubW9kZWwuZ2V0KCJzaG93X3JlcGVhdCIpP3RoaXMucGxheUJ1dHRvbi5zdHlsZS5kaXNwbGF5OiJub25lIix0P3RoaXMucmVwZWF0QnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTp0aGlzLnJlcGVhdEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIil9LGV9KHUuRE9NV2lkZ2V0Vmlldyk7ZS5QbGF5Vmlldz1rfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFdpZGdldCAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbig0MildLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlLG49MCxpPUFycmF5LnByb3RvdHlwZS5zbGljZTtyZXR1cm4gdC5jbGVhbkRhdGE9KGU9dC5jbGVhbkRhdGEsZnVuY3Rpb24obil7dmFyIGkscixvO2ZvcihvPTA7bnVsbCE9KHI9bltvXSk7bysrKXRyeXsoaT10Ll9kYXRhKHIsImV2ZW50cyIpKSYmaS5yZW1vdmUmJnQocikudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpfWNhdGNoKHQpe31lKG4pfSksdC53aWRnZXQ9ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scyxhPXt9LHU9ZS5zcGxpdCgiLiIpWzBdLGM9dSsiLSIrKGU9ZS5zcGxpdCgiLiIpWzFdKTtyZXR1cm4gaXx8KGk9bixuPXQuV2lkZ2V0KSx0LmlzQXJyYXkoaSkmJihpPXQuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQoaSkpKSx0LmV4cHJbIjoiXVtjLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdC5kYXRhKGUsYyl9LHRbdV09dFt1XXx8e30scj10W3VdW2VdLG89dFt1XVtlXT1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9jcmVhdGVXaWRnZXQpcmV0dXJuIG5ldyBvKHQsZSk7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KHQsZSl9LHQuZXh0ZW5kKG8scix7dmVyc2lvbjppLnZlcnNpb24sX3Byb3RvOnQuZXh0ZW5kKHt9LGkpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLChzPW5ldyBuKS5vcHRpb25zPXQud2lkZ2V0LmV4dGVuZCh7fSxzLm9wdGlvbnMpLHQuZWFjaChpLGZ1bmN0aW9uKGUsaSl7dC5pc0Z1bmN0aW9uKGkpP2FbZV09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIG4ucHJvdG90eXBlW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByKHQpe3JldHVybiBuLnByb3RvdHlwZVtlXS5hcHBseSh0aGlzLHQpfXJldHVybiBmdW5jdGlvbigpe3ZhciBlLG49dGhpcy5fc3VwZXIsbz10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj10LHRoaXMuX3N1cGVyQXBwbHk9cixlPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPW4sdGhpcy5fc3VwZXJBcHBseT1vLGV9fSgpOmFbZV09aX0pLG8ucHJvdG90eXBlPXQud2lkZ2V0LmV4dGVuZChzLHt3aWRnZXRFdmVudFByZWZpeDpyJiZzLndpZGdldEV2ZW50UHJlZml4fHxlfSxhLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTp1LHdpZGdldE5hbWU6ZSx3aWRnZXRGdWxsTmFtZTpjfSkscj8odC5lYWNoKHIuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKGUsbil7dmFyIGk9bi5wcm90b3R5cGU7dC53aWRnZXQoaS5uYW1lc3BhY2UrIi4iK2kud2lkZ2V0TmFtZSxvLG4uX3Byb3RvKX0pLGRlbGV0ZSByLl9jaGlsZENvbnN0cnVjdG9ycyk6bi5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSx0LndpZGdldC5icmlkZ2UoZSxvKSxvfSx0LndpZGdldC5leHRlbmQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuLHIsbz1pLmNhbGwoYXJndW1lbnRzLDEpLHM9MCxhPW8ubGVuZ3RoO3M8YTtzKyspZm9yKG4gaW4gb1tzXSlyPW9bc11bbl0sb1tzXS5oYXNPd25Qcm9wZXJ0eShuKSYmdm9pZCAwIT09ciYmKHQuaXNQbGFpbk9iamVjdChyKT9lW25dPXQuaXNQbGFpbk9iamVjdChlW25dKT90LndpZGdldC5leHRlbmQoe30sZVtuXSxyKTp0LndpZGdldC5leHRlbmQoe30scik6ZVtuXT1yKTtyZXR1cm4gZX0sdC53aWRnZXQuYnJpZGdlPWZ1bmN0aW9uKGUsbil7dmFyIHI9bi5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWV8fGU7dC5mbltlXT1mdW5jdGlvbihvKXt2YXIgcz0ic3RyaW5nIj09dHlwZW9mIG8sYT1pLmNhbGwoYXJndW1lbnRzLDEpLHU9dGhpcztyZXR1cm4gcz90aGlzLmxlbmd0aHx8Imluc3RhbmNlIiE9PW8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG4saT10LmRhdGEodGhpcyxyKTtyZXR1cm4iaW5zdGFuY2UiPT09bz8odT1pLCExKTppP3QuaXNGdW5jdGlvbihpW29dKSYmIl8iIT09by5jaGFyQXQoMCk/KG49aVtvXS5hcHBseShpLGEpKSE9PWkmJnZvaWQgMCE9PW4/KHU9biYmbi5qcXVlcnk/dS5wdXNoU3RhY2sobi5nZXQoKSk6biwhMSk6dm9pZCAwOnQuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK28rIicgZm9yICIrZSsiIHdpZGdldCBpbnN0YW5jZSIpOnQuZXJyb3IoImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIitlKyIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIitvKyInIil9KTp1PXZvaWQgMDooYS5sZW5ndGgmJihvPXQud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtvXS5jb25jYXQoYSkpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT10LmRhdGEodGhpcyxyKTtlPyhlLm9wdGlvbihvfHx7fSksZS5faW5pdCYmZS5faW5pdCgpKTp0LmRhdGEodGhpcyxyLG5ldyBuKG8sdGhpcykpfSkpLHV9fSx0LldpZGdldD1mdW5jdGlvbigpe30sdC5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzPVtdLHQuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixkZWZhdWx0RWxlbWVudDoiPGRpdj4iLG9wdGlvbnM6e2NsYXNzZXM6e30sZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oZSxpKXtpPXQoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PXQoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9dCgpLHRoaXMuaG92ZXJhYmxlPXQoKSx0aGlzLmZvY3VzYWJsZT10KCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSxpIT09dGhpcyYmKHQuZGF0YShpLHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1pJiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PXQoaS5zdHlsZT9pLm93bmVyRG9jdW1lbnQ6aS5kb2N1bWVudHx8aSksdGhpcy53aW5kb3c9dCh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz10LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxlKSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9nZXRDcmVhdGVFdmVudERhdGE6dC5ub29wLF9jcmVhdGU6dC5ub29wLF9pbml0OnQubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9kZXN0cm95KCksdC5lYWNoKHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24odCxuKXtlLl9yZW1vdmVDbGFzcyhuLHQpfSksdGhpcy5lbGVtZW50Lm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0RnVsbE5hbWUpLHRoaXMud2lkZ2V0KCkub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKSx0aGlzLmJpbmRpbmdzLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKX0sX2Rlc3Ryb3k6dC5ub29wLHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHIsbyxzPWU7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZihzPXt9LGk9ZS5zcGxpdCgiLiIpLGU9aS5zaGlmdCgpLGkubGVuZ3RoKXtmb3Iocj1zW2VdPXQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnNbZV0pLG89MDtvPGkubGVuZ3RoLTE7bysrKXJbaVtvXV09cltpW29dXXx8e30scj1yW2lbb11dO2lmKGU9aS5wb3AoKSwxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09cltlXT9udWxsOnJbZV07cltlXT1ufWVsc2V7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9uc1tlXT9udWxsOnRoaXMub3B0aW9uc1tlXTtzW2VdPW59cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMocyksdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gdCl0aGlzLl9zZXRPcHRpb24oZSx0W2VdKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiJjbGFzc2VzIj09PXQmJnRoaXMuX3NldE9wdGlvbkNsYXNzZXMoZSksdGhpcy5vcHRpb25zW3RdPWUsImRpc2FibGVkIj09PXQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKGUpLHRoaXN9LF9zZXRPcHRpb25DbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciBuLGkscjtmb3IobiBpbiBlKXI9dGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cFtuXSxlW25dIT09dGhpcy5vcHRpb25zLmNsYXNzZXNbbl0mJnImJnIubGVuZ3RoJiYoaT10KHIuZ2V0KCkpLHRoaXMuX3JlbW92ZUNsYXNzKHIsbiksaS5hZGRDbGFzcyh0aGlzLl9jbGFzc2VzKHtlbGVtZW50Omksa2V5czpuLGNsYXNzZXM6ZSxhZGQ6ITB9KSkpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy53aWRnZXQoKSx0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLG51bGwsISF0KSx0JiYodGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5ob3ZlcmFibGUsbnVsbCwidWktc3RhdGUtaG92ZXIiKSx0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmZvY3VzYWJsZSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpKX0sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX2NsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIG49W10saT10aGlzO2Z1bmN0aW9uIHIocixvKXt2YXIgcyxhO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspcz1pLmNsYXNzZXNFbGVtZW50TG9va3VwW3JbYV1dfHx0KCkscz1lLmFkZD90KHQudW5pcXVlKHMuZ2V0KCkuY29uY2F0KGUuZWxlbWVudC5nZXQoKSkpKTp0KHMubm90KGUuZWxlbWVudCkuZ2V0KCkpLGkuY2xhc3Nlc0VsZW1lbnRMb29rdXBbclthXV09cyxuLnB1c2goclthXSksbyYmZS5jbGFzc2VzW3JbYV1dJiZuLnB1c2goZS5jbGFzc2VzW3JbYV1dKX1yZXR1cm4gZT10LmV4dGVuZCh7ZWxlbWVudDp0aGlzLmVsZW1lbnQsY2xhc3Nlczp0aGlzLm9wdGlvbnMuY2xhc3Nlc3x8e319LGUpLHRoaXMuX29uKGUuZWxlbWVudCx7cmVtb3ZlOiJfdW50cmFja0NsYXNzZXNFbGVtZW50In0pLGUua2V5cyYmcihlLmtleXMubWF0Y2goL1xTKy9nKXx8W10sITApLGUuZXh0cmEmJnIoZS5leHRyYS5tYXRjaCgvXFMrL2cpfHxbXSksbi5qb2luKCIgIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LmVhY2gobi5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihpLHIpey0xIT09dC5pbkFycmF5KGUudGFyZ2V0LHIpJiYobi5jbGFzc2VzRWxlbWVudExvb2t1cFtpXT10KHIubm90KGUudGFyZ2V0KS5nZXQoKSkpfSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKHQsZSxuLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3ModCxlLG4sITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCxlLG4saSl7aT0iYm9vbGVhbiI9PXR5cGVvZiBpP2k6bjt2YXIgcj0ic3RyaW5nIj09dHlwZW9mIHR8fG51bGw9PT10LG89e2V4dHJhOnI/ZTpuLGtleXM6cj90OmUsZWxlbWVudDpyP3RoaXMuZWxlbWVudDp0LGFkZDppfTtyZXR1cm4gby5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXMobyksaSksdGhpc30sX29uOmZ1bmN0aW9uKGUsbixpKXt2YXIgcixvPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgZSYmKGk9bixuPWUsZT0hMSksaT8obj1yPXQobiksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChuKSk6KGk9bixuPXRoaXMuZWxlbWVudCxyPXRoaXMud2lkZ2V0KCkpLHQuZWFjaChpLGZ1bmN0aW9uKGkscyl7ZnVuY3Rpb24gYSgpe2lmKGV8fCEwIT09by5vcHRpb25zLmRpc2FibGVkJiYhdCh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKSlyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBzP29bc106cykuYXBwbHkobyxhcmd1bWVudHMpfSJzdHJpbmciIT10eXBlb2YgcyYmKGEuZ3VpZD1zLmd1aWQ9cy5ndWlkfHxhLmd1aWR8fHQuZ3VpZCsrKTt2YXIgdT1pLm1hdGNoKC9eKFtcdzotXSopXHMqKC4qKSQvKSxjPXVbMV0rby5ldmVudE5hbWVzcGFjZSxoPXVbMl07aD9yLm9uKGMsaCxhKTpuLm9uKGMsYSl9KX0sX29mZjpmdW5jdGlvbihlLG4pe249KG58fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsZS5vZmYobikub2ZmKG4pLHRoaXMuYmluZGluZ3M9dCh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dCh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXQodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIHQ/blt0XTp0KS5hcHBseShuLGFyZ3VtZW50cyl9LGV8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh0KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scz10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwobj10LkV2ZW50KG4pKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSxuLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbz1uLm9yaWdpbmFsRXZlbnQpZm9yKHIgaW4gbylyIGluIG58fChuW3JdPW9bcl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihuLGkpLCEodC5pc0Z1bmN0aW9uKHMpJiYhMT09PXMuYXBwbHkodGhpcy5lbGVtZW50WzBdLFtuXS5jb25jYXQoaSkpfHxuLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LHQuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24oZSxuKXt0LldpZGdldC5wcm90b3R5cGVbIl8iK2VdPWZ1bmN0aW9uKGkscixvKXt2YXIgczsic3RyaW5nIj09dHlwZW9mIHImJihyPXtlZmZlY3Q6cn0pO3ZhciBhPXI/ITA9PT1yfHwibnVtYmVyIj09dHlwZW9mIHI/bjpyLmVmZmVjdHx8bjplOyJudW1iZXIiPT10eXBlb2Yocj1yfHx7fSkmJihyPXtkdXJhdGlvbjpyfSkscz0hdC5pc0VtcHR5T2JqZWN0KHIpLHIuY29tcGxldGU9byxyLmRlbGF5JiZpLmRlbGF5KHIuZGVsYXkpLHMmJnQuZWZmZWN0cyYmdC5lZmZlY3RzLmVmZmVjdFthXT9pW2VdKHIpOmEhPT1lJiZpW2FdP2lbYV0oci5kdXJhdGlvbixyLmVhc2luZyxvKTppLnF1ZXVlKGZ1bmN0aW9uKG4pe3QodGhpcylbZV0oKSxvJiZvLmNhbGwoaVswXSksbigpfSl9fSksdC53aWRnZXR9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciBpPWZ1bmN0aW9uKHQsZSl7aWYoKG49KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBuLGk9dC5zbGljZSgwLG4pO3JldHVybltpLmxlbmd0aD4xP2lbMF0raS5zbGljZSgyKTppLCt0LnNsaWNlKG4rMSldfSxyPWZ1bmN0aW9uKHQpe3JldHVybih0PWkoTWF0aC5hYnModCkpKT90WzFdOk5hTn0sbz0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBzKHQpe3JldHVybiBuZXcgYSh0KX1mdW5jdGlvbiBhKHQpe2lmKCEoZT1vLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7dGhpcy5maWxsPWVbMV18fCIgIix0aGlzLmFsaWduPWVbMl18fCI+Iix0aGlzLnNpZ249ZVszXXx8Ii0iLHRoaXMuc3ltYm9sPWVbNF18fCIiLHRoaXMuemVybz0hIWVbNV0sdGhpcy53aWR0aD1lWzZdJiYrZVs2XSx0aGlzLmNvbW1hPSEhZVs3XSx0aGlzLnByZWNpc2lvbj1lWzhdJiYrZVs4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFlWzldLHRoaXMudHlwZT1lWzEwXXx8IiJ9cy5wcm90b3R5cGU9YS5wcm90b3R5cGUsYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsobnVsbD09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKG51bGw9PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgdSxjLGgsbCxkPWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBlLG49dC5sZW5ndGgsaT0xLHI9LTE7aTxuOysraSlzd2l0Y2godFtpXSl7Y2FzZSIuIjpyPWU9aTticmVhaztjYXNlIjAiOjA9PT1yJiYocj1pKSxlPWk7YnJlYWs7ZGVmYXVsdDppZihyPjApe2lmKCErdFtpXSlicmVhayB0O3I9MH19cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9LGY9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIHI9blswXSxvPW5bMV07cmV0dXJuIG88MD8iMC4iK25ldyBBcnJheSgtbykuam9pbigiMCIpK3I6ci5sZW5ndGg+bysxP3Iuc2xpY2UoMCxvKzEpKyIuIityLnNsaWNlKG8rMSk6cituZXcgQXJyYXkoby1yLmxlbmd0aCsyKS5qb2luKCIwIil9LHA9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYoMTAwKnQsZSl9LHI6ZixzOmZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciByPW5bMF0sbz1uWzFdLHM9by0odT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvLzMpKSkpKzEsYT1yLmxlbmd0aDtyZXR1cm4gcz09PWE/cjpzPmE/cituZXcgQXJyYXkocy1hKzEpLmpvaW4oIjAiKTpzPjA/ci5zbGljZSgwLHMpKyIuIityLnNsaWNlKHMpOiIwLiIrbmV3IEFycmF5KDEtcykuam9pbigiMCIpK2kodCxNYXRoLm1heCgwLGUrcy0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX0sbT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZz1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0sdj1mdW5jdGlvbih0KXt2YXIgZSxuLGk9dC5ncm91cGluZyYmdC50aG91c2FuZHM/KGU9dC5ncm91cGluZyxuPXQudGhvdXNhbmRzLGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciByPXQubGVuZ3RoLG89W10scz0wLGE9ZVswXSx1PTA7cj4wJiZhPjAmJih1K2ErMT5pJiYoYT1NYXRoLm1heCgxLGktdSkpLG8ucHVzaCh0LnN1YnN0cmluZyhyLT1hLHIrYSkpLCEoKHUrPWErMSk+aSkpOylhPWVbcz0ocysxKSVlLmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4obil9KTptLG89dC5jdXJyZW5jeSxhPXQuZGVjaW1hbCxjPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSl9fSh0Lm51bWVyYWxzKTptLGg9dC5wZXJjZW50fHwiJSI7ZnVuY3Rpb24gbCh0KXt2YXIgZT0odD1zKHQpKS5maWxsLG49dC5hbGlnbixyPXQuc2lnbixsPXQuc3ltYm9sLGY9dC56ZXJvLG09dC53aWR0aCx2PXQuY29tbWEsYj10LnByZWNpc2lvbix5PXQudHJpbSxfPXQudHlwZTsibiI9PT1fPyh2PSEwLF89ImciKTpwW19dfHwobnVsbD09YiYmKGI9MTIpLHk9ITAsXz0iZyIpLChmfHwiMCI9PT1lJiYiPSI9PT1uKSYmKGY9ITAsZT0iMCIsbj0iPSIpO3ZhciB3PSIkIj09PWw/b1swXToiIyI9PT1sJiYvW2JveFhdLy50ZXN0KF8pPyIwIitfLnRvTG93ZXJDYXNlKCk6IiIseD0iJCI9PT1sP29bMV06L1slcF0vLnRlc3QoXyk/aDoiIixNPXBbX10sUz0vW2RlZmdwcnMlXS8udGVzdChfKTtmdW5jdGlvbiBFKHQpe3ZhciBvLHMsaCxsPXcscD14O2lmKCJjIj09PV8pcD1NKHQpK3AsdD0iIjtlbHNle3ZhciBFPSh0PSt0KTwwO2lmKHQ9TShNYXRoLmFicyh0KSxiKSx5JiYodD1kKHQpKSxFJiYwPT0rdCYmKEU9ITEpLGw9KEU/IigiPT09cj9yOiItIjoiLSI9PT1yfHwiKCI9PT1yPyIiOnIpK2wscD0oInMiPT09Xz9nWzgrdS8zXToiIikrcCsoRSYmIigiPT09cj8iKSI6IiIpLFMpZm9yKG89LTEscz10Lmxlbmd0aDsrK288czspaWYoNDg+KGg9dC5jaGFyQ29kZUF0KG8pKXx8aD41Nyl7cD0oNDY9PT1oP2ErdC5zbGljZShvKzEpOnQuc2xpY2UobykpK3AsdD10LnNsaWNlKDAsbyk7YnJlYWt9fXYmJiFmJiYodD1pKHQsMS8wKSk7dmFyIEE9bC5sZW5ndGgrdC5sZW5ndGgrcC5sZW5ndGgsQz1BPG0/bmV3IEFycmF5KG0tQSsxKS5qb2luKGUpOiIiO3N3aXRjaCh2JiZmJiYodD1pKEMrdCxDLmxlbmd0aD9tLXAubGVuZ3RoOjEvMCksQz0iIiksbil7Y2FzZSI8Ijp0PWwrdCtwK0M7YnJlYWs7Y2FzZSI9Ijp0PWwrQyt0K3A7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxBPUMubGVuZ3RoPj4xKStsK3QrcCtDLnNsaWNlKEEpO2JyZWFrO2RlZmF1bHQ6dD1DK2wrdCtwfXJldHVybiBjKHQpfXJldHVybiBiPW51bGw9PWI/NjovW2dwcnNdLy50ZXN0KF8pP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpLEUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sRX1yZXR1cm57Zm9ybWF0OmwsZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIG49bCgoKHQ9cyh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IocihlKS8zKSkpLG89TWF0aC5wb3coMTAsLWkpLGE9Z1s4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKG8qdCkrYX19fX07ZnVuY3Rpb24gYih0KXtyZXR1cm4gYz12KHQpLGg9Yy5mb3JtYXQsbD1jLmZvcm1hdFByZWZpeCxjfWIoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7dmFyIHk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsLXIoTWF0aC5hYnModCkpKX0sXz1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIoZSkvMykpKS1yKE1hdGguYWJzKHQpKSl9LHc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxyKGUpLXIodCkpKzF9O24uZChlLCJmb3JtYXREZWZhdWx0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiBifSksbi5kKGUsImZvcm1hdCIsZnVuY3Rpb24oKXtyZXR1cm4gaH0pLG4uZChlLCJmb3JtYXRQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSxuLmQoZSwiZm9ybWF0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiB2fSksbi5kKGUsImZvcm1hdFNwZWNpZmllciIsZnVuY3Rpb24oKXtyZXR1cm4gc30pLG4uZChlLCJwcmVjaXNpb25GaXhlZCIsZnVuY3Rpb24oKXtyZXR1cm4geX0pLG4uZChlLCJwcmVjaXNpb25QcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIF99KSxuLmQoZSwicHJlY2lzaW9uUm91bmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHd9KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Zm9yKHZhciBpPW4oOCkscj1uKDMzOCksbz1uKDM2MCkscz17fSxhPTAsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKTthPHUubGVuZ3RoO2ErKyl7dmFyIGM9dVthXTsoYy5lbmRzV2l0aCgiTW9kZWwiKXx8Yy5lbmRzV2l0aCgiVmlldyIpKSYmKHNbY109aVtjXSl9Zm9yKHZhciBoPTAsbD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyKTtoPGwubGVuZ3RoO2grKyl7dmFyIGQ9bFtoXTsoZC5lbmRzV2l0aCgiTW9kZWwiKXx8ZC5lbmRzV2l0aCgiVmlldyIpKSYmKHNbZF09cltkXSl9Zm9yKHZhciBmPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvKTtmPHAubGVuZ3RoO2YrKyl7dmFyIG09cFtmXTsobS5lbmRzV2l0aCgiTW9kZWwiKXx8bS5lbmRzV2l0aCgiVmlldyIpKSYmKHNbbV09b1ttXSl9ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fSxyPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDI1KSxhPW4oNzQpLHU9YS5QUk9UT0NPTF9WRVJTSU9OLnNwbGl0KCIuIiwxKVswXSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY29tbV90YXJnZXRfbmFtZT0ianVweXRlci53aWRnZXQiLHRoaXMuX21vZGVscz1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiB0LnByb3RvdHlwZS5kaXNwbGF5X21vZGVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzO3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksdGhpcy5jcmVhdGVfdmlldyhlLG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGlzcGxheV92aWV3KHQsZSxuKX0pLmNhdGNoKHMucmVqZWN0KCJDb3VsZCBub3QgY3JlYXRlIHZpZXciLCEwKSl9LHQucHJvdG90eXBlLnNldFZpZXdPcHRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD17fSksdH0sdC5wcm90b3R5cGUuY3JlYXRlX3ZpZXc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgaT10LnN0YXRlX2NoYW5nZT10LnN0YXRlX2NoYW5nZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ubG9hZENsYXNzKHQuZ2V0KCJfdmlld19uYW1lIiksdC5nZXQoIl92aWV3X21vZHVsZSIpLHQuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpKS50aGVuKGZ1bmN0aW9uKGkpe3ZhciByPW5ldyBpKHttb2RlbDp0LG9wdGlvbnM6bi5zZXRWaWV3T3B0aW9ucyhlKX0pO3JldHVybiByLmxpc3RlblRvKHQsImRlc3Ryb3kiLHIucmVtb3ZlKSxQcm9taXNlLnJlc29sdmUoci5yZW5kZXIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiByfSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGNyZWF0ZSBhIHZpZXcgZm9yIG1vZGVsIGlkICIrdC5tb2RlbF9pZCwhMCkpfSkscj1zLnV1aWQoKTtyZXR1cm4gdC52aWV3c1tyXT1pLGkudGhlbihmdW5jdGlvbih0KXt0Lm9uY2UoInJlbW92ZSIsZnVuY3Rpb24oKXtkZWxldGUgdC5tb2RlbC52aWV3c1tyXX0sbil9KSx0LnN0YXRlX2NoYW5nZX0sdC5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybnt9fSx0LnByb3RvdHlwZS5nZXRfbW9kZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21vZGVsc1t0XX0sdC5wcm90b3R5cGUuaGFuZGxlX2NvbW1fb3Blbj1mdW5jdGlvbih0LGUpe3ZhciBuPShlLm1ldGFkYXRhfHx7fSkudmVyc2lvbnx8IiI7aWYobi5zcGxpdCgiLiIsMSlbMF0hPT11KXt2YXIgaT0iV3Jvbmcgd2lkZ2V0IHByb3RvY29sIHZlcnNpb246IHJlY2VpdmVkIHByb3RvY29sIHZlcnNpb24gJyIrbisiJywgYnV0IHdhcyBleHBlY3RpbmcgbWFqb3IgdmVyc2lvbiAnIit1KyInIjtyZXR1cm4gY29uc29sZS5lcnJvcihpKSxQcm9taXNlLnJlamVjdChpKX12YXIgcj1lLmNvbnRlbnQuZGF0YSxvPXIuYnVmZmVyX3BhdGhzfHxbXSxhPShlLmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhyLnN0YXRlLG8sYSksdGhpcy5uZXdfbW9kZWwoe21vZGVsX25hbWU6ci5zdGF0ZS5fbW9kZWxfbmFtZSxtb2RlbF9tb2R1bGU6ci5zdGF0ZS5fbW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuc3RhdGUuX21vZGVsX21vZHVsZV92ZXJzaW9uLGNvbW06dH0sci5zdGF0ZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgYSBtb2RlbC4iLCEwKSl9LHQucHJvdG90eXBlLm5ld193aWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXM7aWYodm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXQudmlld19uYW1lfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlX3ZlcnNpb24pcmV0dXJuIFByb21pc2UucmVqZWN0KCJuZXdfd2lkZ2V0KC4uLikgbXVzdCBiZSBnaXZlbiB2aWV3IGluZm9ybWF0aW9uIGluIHRoZSBvcHRpb25zLiIpO249dC5jb21tP1Byb21pc2UucmVzb2x2ZSh0LmNvbW0pOnRoaXMuX2NyZWF0ZV9jb21tKHRoaXMuY29tbV90YXJnZXRfbmFtZSx0Lm1vZGVsX2lkLHtzdGF0ZTp7X21vZGVsX21vZHVsZTp0Lm1vZGVsX21vZHVsZSxfbW9kZWxfbW9kdWxlX3ZlcnNpb246dC5tb2RlbF9tb2R1bGVfdmVyc2lvbixfbW9kZWxfbmFtZTp0Lm1vZGVsX25hbWUsX3ZpZXdfbW9kdWxlOnQudmlld19tb2R1bGUsX3ZpZXdfbW9kdWxlX3ZlcnNpb246dC52aWV3X21vZHVsZV92ZXJzaW9uLF92aWV3X25hbWU6dC52aWV3X25hbWV9fSx7dmVyc2lvbjphLlBST1RPQ09MX1ZFUlNJT059KTt2YXIgbz1pKHt9LHQpO3JldHVybiBuLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG8uY29tbT10LHIubmV3X21vZGVsKG8sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5zeW5jKCJjcmVhdGUiLHQpLHR9KX0sZnVuY3Rpb24oKXtyZXR1cm4gby5tb2RlbF9pZHx8KG8ubW9kZWxfaWQ9cy51dWlkKCkpLHIubmV3X21vZGVsKG8sZSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfbW9kZWw9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuX21vZGVsc1t0XT1lLGUudGhlbihmdW5jdGlvbihlKXtlLm9uY2UoImNvbW06Y2xvc2UiLGZ1bmN0aW9uKCl7ZGVsZXRlIG4uX21vZGVsc1t0XX0pfSl9LHQucHJvdG90eXBlLm5ld19tb2RlbD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkscih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixpO3JldHVybiBvKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDppZih0Lm1vZGVsX2lkKW49dC5tb2RlbF9pZDtlbHNle2lmKCF0LmNvbW0pdGhyb3cgbmV3IEVycm9yKCJOZWl0aGVyIGNvbW0gbm9yIG1vZGVsX2lkIHByb3ZpZGVkIGluIG9wdGlvbnMgb2JqZWN0LiBBdCBsZWFzdCBvbmUgbXVzdCBleGlzdC4iKTtuPXQubW9kZWxfaWQ9dC5jb21tLmNvbW1faWR9cmV0dXJuIGk9dGhpcy5fbWFrZV9tb2RlbCh0LGUpLHRoaXMucmVnaXN0ZXJfbW9kZWwobixpKSxbNCxpXTtjYXNlIDE6cmV0dXJuWzIsci5zZW50KCldfX0pfSl9LHQucHJvdG90eXBlLl9tYWtlX21vZGVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxyKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGkscixzLGEsdSxjO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpuPXQubW9kZWxfaWQsaT10aGlzLmxvYWRDbGFzcyh0Lm1vZGVsX25hbWUsdC5tb2RlbF9tb2R1bGUsdC5tb2RlbF9tb2R1bGVfdmVyc2lvbiksby5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gby50cnlzLnB1c2goWzEsMywsNF0pLFs0LGldO2Nhc2UgMjpyZXR1cm4gcj1vLnNlbnQoKSxbMyw0XTtjYXNlIDM6dGhyb3cgcz1vLnNlbnQoKSxjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgaW5zdGFudGlhdGUgd2lkZ2V0IikscztjYXNlIDQ6aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2RlbCBtb2R1bGUgIit0Lm1vZGVsX21vZHVsZSsiQCIrdC5tb2RlbF9tb2R1bGVfdmVyc2lvbisiLCAiK3QubW9kZWxfbmFtZSk7cmV0dXJuWzQsci5fZGVzZXJpYWxpemVfc3RhdGUoZSx0aGlzKV07Y2FzZSA1OnJldHVybiBhPW8uc2VudCgpLHU9e3dpZGdldF9tYW5hZ2VyOnRoaXMsbW9kZWxfaWQ6bixjb21tOnQuY29tbX0sKGM9bmV3IHIoYSx1KSkubmFtZT10Lm1vZGVsX25hbWUsYy5tb2R1bGU9dC5tb2RlbF9tb2R1bGUsWzIsY119fSl9KX0sdC5wcm90b3R5cGUuY2xlYXJfc3RhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0uY2xvc2UoKX0pLHQuX21vZGVscz17fX0pfSx0LnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciByPWVbaV0sbz1zLnJlbW92ZV9idWZmZXJzKHIuc2VyaWFsaXplKHIuZ2V0X3N0YXRlKHQuZHJvcF9kZWZhdWx0cykpKSxhPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTpzLmJ1ZmZlclRvQmFzZTY0KHQpLHBhdGg6by5idWZmZXJfcGF0aHNbZV0sZW5jb2Rpbmc6ImJhc2U2NCJ9fSk7bltpXT17bW9kZWxfbmFtZTpyLm5hbWUsbW9kZWxfbW9kdWxlOnIubW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSxzdGF0ZTpvLnN0YXRlfSxhLmxlbmd0aD4wJiYobltpXS5idWZmZXJzPWEpfSkse3ZlcnNpb25fbWFqb3I6Mix2ZXJzaW9uX21pbm9yOjAsc3RhdGU6bn19KX0sdC5wcm90b3R5cGUuc2V0X3N0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoISh0LnZlcnNpb25fbWFqb3ImJnQudmVyc2lvbl9tYWpvcjw9MikpdGhyb3ciVW5zdXBwb3J0ZWQgd2lkZ2V0IHN0YXRlIGZvcm1hdCI7dmFyIG49dC5zdGF0ZTtyZXR1cm4gdGhpcy5fZ2V0X2NvbW1faW5mbygpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKG4pLm1hcChmdW5jdGlvbihpKXt2YXIgcj17YmFzZTY0OnMuYmFzZTY0VG9CdWZmZXIsaGV4OnMuaGV4VG9CdWZmZXJ9LG89bltpXSxhPW8uc3RhdGU7aWYoby5idWZmZXJzKXt2YXIgdT1vLmJ1ZmZlcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGh9KSxjPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRhVmlldyhyW3QuZW5jb2RpbmddKHQuZGF0YSkpfSk7cy5wdXRfYnVmZmVycyhvLnN0YXRlLHUsYyl9aWYoZS5fbW9kZWxzW2ldKXJldHVybiBlLl9tb2RlbHNbaV0udGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUoYXx8e30sZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRfc3RhdGUoZSksdH0pfSk7dmFyIGg9e21vZGVsX2lkOmksbW9kZWxfbmFtZTpvLm1vZGVsX25hbWUsbW9kZWxfbW9kdWxlOm8ubW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOm8ubW9kZWxfbW9kdWxlX3ZlcnNpb259O3JldHVybiB0Lmhhc093blByb3BlcnR5KGkpP2UuX2NyZWF0ZV9jb21tKGUuY29tbV90YXJnZXRfbmFtZSxpKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBoLmNvbW09dCxlLm5ld19tb2RlbChoKX0pOmUubmV3X21vZGVsKGgsYSl9KSl9KX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5fbW9kZWxzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuX21vZGVsc1tlXS50aGVuKGZ1bmN0aW9uKHQpe3QuY29tbV9saXZlPSExfSl9KX0sdC5wcm90b3R5cGUucmVzb2x2ZVVybD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpfSx0fSgpO2UuTWFuYWdlckJhc2U9Y30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbnVsbD09PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIG4odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gaSh0LHIpe2lmKHQ9PT1yKXJldHVybiEwO2lmKGUodCl8fGUocikpcmV0dXJuITE7dmFyIG89bih0KSxzPW4ocik7cmV0dXJuIG89PT1zJiYobyYmcz9mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KytuKWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscik6ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4hMDtmb3IodmFyIG4gaW4gdClpZighKG4gaW4gZSkpcmV0dXJuITE7Zm9yKHZhciBuIGluIGUpaWYoIShuIGluIHQpKXJldHVybiExO2Zvcih2YXIgbiBpbiB0KWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscikpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIGUodCk/dDpuKHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLG49MCxpPXQubGVuZ3RoO248aTsrK24pZVtuXT1yKHRbbl0pO3JldHVybiBlfSh0KTpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCllW25dPXIodFtuXSk7cmV0dXJuIGV9KHQpfXQuZW1wdHlPYmplY3Q9T2JqZWN0LmZyZWV6ZSh7fSksdC5lbXB0eUFycmF5PU9iamVjdC5mcmVlemUoW10pLHQuaXNQcmltaXRpdmU9ZSx0LmlzQXJyYXk9bix0LmlzT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiFlKHQpJiYhbih0KX0sdC5kZWVwRXF1YWw9aSx0LmRlZXBDb3B5PXJ9KGUuSlNPTkV4dHx8KGUuSlNPTkV4dD17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl90eXBlcz1bXSx0aGlzLl92YWx1ZXM9W119cmV0dXJuIHQucHJvdG90eXBlLnR5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3R5cGVzLnNsaWNlKCl9LHQucHJvdG90eXBlLmhhc0RhdGE9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT10aGlzLl90eXBlcy5pbmRleE9mKHQpfSx0LnByb3RvdHlwZS5nZXREYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3R5cGVzLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lP3RoaXMuX3ZhbHVlc1tlXTp2b2lkIDB9LHQucHJvdG90eXBlLnNldERhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLmNsZWFyRGF0YSh0KSx0aGlzLl90eXBlcy5wdXNoKHQpLHRoaXMuX3ZhbHVlcy5wdXNoKGUpfSx0LnByb3RvdHlwZS5jbGVhckRhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHlwZXMuaW5kZXhPZih0KTstMSE9PWUmJih0aGlzLl90eXBlcy5zcGxpY2UoZSwxKSx0aGlzLl92YWx1ZXMuc3BsaWNlKGUsMSkpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3R5cGVzLmxlbmd0aD0wLHRoaXMuX3ZhbHVlcy5sZW5ndGg9MH0sdH0oKTtlLk1pbWVEYXRhPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dC5fcmVzb2x2ZT1lLHQuX3JlamVjdD1ufSl9cmV0dXJuIHQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCl7KDAsdGhpcy5fcmVzb2x2ZSkodCl9LHQucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXsoMCx0aGlzLl9yZWplY3QpKHQpfSx0fSgpO2UuUHJvbWlzZURlbGVnYXRlPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5yYW5kb21CeXRlcz1lLnJuZz1lLnBzZXVkb1JhbmRvbUJ5dGVzPWUucHJuZz1uKDI3KSxlLmNyZWF0ZUhhc2g9ZS5IYXNoPW4oMzEpLGUuY3JlYXRlSG1hYz1lLkhtYWM9big5MSk7dmFyIGk9bigxNjIpLHI9T2JqZWN0LmtleXMoaSksbz1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQocik7ZS5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gb307dmFyIHM9big5NCk7ZS5wYmtkZjI9cy5wYmtkZjIsZS5wYmtkZjJTeW5jPXMucGJrZGYyU3luYzt2YXIgYT1uKDE2NCk7ZS5DaXBoZXI9YS5DaXBoZXIsZS5jcmVhdGVDaXBoZXI9YS5jcmVhdGVDaXBoZXIsZS5DaXBoZXJpdj1hLkNpcGhlcml2LGUuY3JlYXRlQ2lwaGVyaXY9YS5jcmVhdGVDaXBoZXJpdixlLkRlY2lwaGVyPWEuRGVjaXBoZXIsZS5jcmVhdGVEZWNpcGhlcj1hLmNyZWF0ZURlY2lwaGVyLGUuRGVjaXBoZXJpdj1hLkRlY2lwaGVyaXYsZS5jcmVhdGVEZWNpcGhlcml2PWEuY3JlYXRlRGVjaXBoZXJpdixlLmdldENpcGhlcnM9YS5nZXRDaXBoZXJzLGUubGlzdENpcGhlcnM9YS5saXN0Q2lwaGVyczt2YXIgdT1uKDE4MSk7ZS5EaWZmaWVIZWxsbWFuR3JvdXA9dS5EaWZmaWVIZWxsbWFuR3JvdXAsZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9dS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAsZS5nZXREaWZmaWVIZWxsbWFuPXUuZ2V0RGlmZmllSGVsbG1hbixlLmNyZWF0ZURpZmZpZUhlbGxtYW49dS5jcmVhdGVEaWZmaWVIZWxsbWFuLGUuRGlmZmllSGVsbG1hbj11LkRpZmZpZUhlbGxtYW47dmFyIGM9bigxODYpO2UuY3JlYXRlU2lnbj1jLmNyZWF0ZVNpZ24sZS5TaWduPWMuU2lnbixlLmNyZWF0ZVZlcmlmeT1jLmNyZWF0ZVZlcmlmeSxlLlZlcmlmeT1jLlZlcmlmeSxlLmNyZWF0ZUVDREg9bigyMjQpO3ZhciBoPW4oMjI1KTtlLnB1YmxpY0VuY3J5cHQ9aC5wdWJsaWNFbmNyeXB0LGUucHJpdmF0ZUVuY3J5cHQ9aC5wcml2YXRlRW5jcnlwdCxlLnB1YmxpY0RlY3J5cHQ9aC5wdWJsaWNEZWNyeXB0LGUucHJpdmF0ZURlY3J5cHQ9aC5wcml2YXRlRGVjcnlwdDt2YXIgbD1uKDIyOCk7ZS5yYW5kb21GaWxsPWwucmFuZG9tRmlsbCxlLnJhbmRvbUZpbGxTeW5jPWwucmFuZG9tRmlsbFN5bmMsZS5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSxmdW5jdGlvbih0LGUpe2UucmVhZD1mdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvLHMsYT04KnItaS0xLHU9KDE8PGEpLTEsYz11Pj4xLGg9LTcsbD1uP3ItMTowLGQ9bj8tMToxLGY9dFtlK2xdO2ZvcihsKz1kLG89ZiYoMTw8LWgpLTEsZj4+PS1oLGgrPWE7aD4wO289MjU2Km8rdFtlK2xdLGwrPWQsaC09OCk7Zm9yKHM9byYoMTw8LWgpLTEsbz4+PS1oLGgrPWk7aD4wO3M9MjU2KnMrdFtlK2xdLGwrPWQsaC09OCk7aWYoMD09PW8pbz0xLWM7ZWxzZXtpZihvPT09dSlyZXR1cm4gcz9OYU46MS8wKihmPy0xOjEpO3MrPU1hdGgucG93KDIsaSksby09Y31yZXR1cm4oZj8tMToxKSpzKk1hdGgucG93KDIsby1pKX0sZS53cml0ZT1mdW5jdGlvbih0LGUsbixpLHIsbyl7dmFyIHMsYSx1LGM9OCpvLXItMSxoPSgxPDxjKS0xLGw9aD4+MSxkPTIzPT09cj9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsZj1pPzA6by0xLHA9aT8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhhPWlzTmFOKGUpPzE6MCxzPWgpOihzPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKHU9TWF0aC5wb3coMiwtcykpPDEmJihzLS0sdSo9MiksKGUrPXMrbD49MT9kL3U6ZCpNYXRoLnBvdygyLDEtbCkpKnU+PTImJihzKyssdS89MikscytsPj1oPyhhPTAscz1oKTpzK2w+PTE/KGE9KGUqdS0xKSpNYXRoLnBvdygyLHIpLHMrPWwpOihhPWUqTWF0aC5wb3coMixsLTEpKk1hdGgucG93KDIscikscz0wKSk7cj49ODt0W24rZl09MjU1JmEsZis9cCxhLz0yNTYsci09OCk7Zm9yKHM9czw8cnxhLGMrPXI7Yz4wO3RbbitmXT0yNTUmcyxmKz1wLHMvPTI1NixjLT04KTt0W24rZi1wXXw9MTI4Km19fSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEpLkJ1ZmZlcixyPW4oMTQ5KTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0KXt2YXIgZT17ZGF0YTp0LG5leHQ6bnVsbH07dGhpcy5sZW5ndGg+MD90aGlzLnRhaWwubmV4dD1lOnRoaXMuaGVhZD1lLHRoaXMudGFpbD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWUpLHRoaXMuaGVhZD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgdD10aGlzLmhlYWQuZGF0YTtyZXR1cm4gMT09PXRoaXMubGVuZ3RoP3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCx0fX0sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH0sdC5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBlPXRoaXMuaGVhZCxuPSIiK2UuZGF0YTtlPWUubmV4dDspbis9dCtlLmRhdGE7cmV0dXJuIG59LHQucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIGkuYWxsb2MoMCk7aWYoMT09PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzLmhlYWQuZGF0YTtmb3IodmFyIGUsbixyLG89aS5hbGxvY1Vuc2FmZSh0Pj4+MCkscz10aGlzLmhlYWQsYT0wO3M7KWU9cy5kYXRhLG49byxyPWEsZS5jb3B5KG4sciksYSs9cy5kYXRhLmxlbmd0aCxzPXMubmV4dDtyZXR1cm4gb30sdH0oKSxyJiZyLmluc3BlY3QmJnIuaW5zcGVjdC5jdXN0b20mJih0LmV4cG9ydHMucHJvdG90eXBlW3IuaW5zcGVjdC5jdXN0b21dPWZ1bmN0aW9uKCl7dmFyIHQ9ci5pbnNwZWN0KHtsZW5ndGg6dGhpcy5sZW5ndGh9KTtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKyIgIit0fSl9LGZ1bmN0aW9uKHQsZSl7fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHQsbil7InVzZSBzdHJpY3QiO2lmKCF0LnNldEltbWVkaWF0ZSl7dmFyIGkscixvLHMsYSx1PTEsYz17fSxoPSExLGw9dC5kb2N1bWVudCxkPU9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO2Q9ZCYmZC5zZXRUaW1lb3V0P2Q6dCwiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKHQucHJvY2Vzcyk/aT1mdW5jdGlvbih0KXtlLm5leHRUaWNrKGZ1bmN0aW9uKCl7cCh0KX0pfTohZnVuY3Rpb24oKXtpZih0LnBvc3RNZXNzYWdlJiYhdC5pbXBvcnRTY3JpcHRzKXt2YXIgZT0hMCxuPXQub25tZXNzYWdlO3JldHVybiB0Lm9ubWVzc2FnZT1mdW5jdGlvbigpe2U9ITF9LHQucG9zdE1lc3NhZ2UoIiIsIioiKSx0Lm9ubWVzc2FnZT1uLGV9fSgpP3QuTWVzc2FnZUNoYW5uZWw/KChvPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3AodC5kYXRhKX0saT1mdW5jdGlvbih0KXtvLnBvcnQyLnBvc3RNZXNzYWdlKHQpfSk6bCYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBsLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpPyhyPWwuZG9jdW1lbnRFbGVtZW50LGk9ZnVuY3Rpb24odCl7dmFyIGU9bC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3AodCksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxyLnJlbW92ZUNoaWxkKGUpLGU9bnVsbH0sci5hcHBlbmRDaGlsZChlKX0pOmk9ZnVuY3Rpb24odCl7c2V0VGltZW91dChwLDAsdCl9OihzPSJzZXRJbW1lZGlhdGUkIitNYXRoLnJhbmRvbSgpKyIkIixhPWZ1bmN0aW9uKGUpe2Uuc291cmNlPT09dCYmInN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT1lLmRhdGEuaW5kZXhPZihzKSYmcCgrZS5kYXRhLnNsaWNlKHMubGVuZ3RoKSl9LHQuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEsITEpOnQuYXR0YWNoRXZlbnQoIm9ubWVzc2FnZSIsYSksaT1mdW5jdGlvbihlKXt0LnBvc3RNZXNzYWdlKHMrZSwiKiIpfSksZC5zZXRJbW1lZGlhdGU9ZnVuY3Rpb24odCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW5ldyBGdW5jdGlvbigiIit0KSk7Zm9yKHZhciBlPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49MDtuPGUubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuKzFdO3ZhciByPXtjYWxsYmFjazp0LGFyZ3M6ZX07cmV0dXJuIGNbdV09cixpKHUpLHUrK30sZC5jbGVhckltbWVkaWF0ZT1mfWZ1bmN0aW9uIGYodCl7ZGVsZXRlIGNbdF19ZnVuY3Rpb24gcCh0KXtpZihoKXNldFRpbWVvdXQocCwwLHQpO2Vsc2V7dmFyIGU9Y1t0XTtpZihlKXtoPSEwO3RyeXshZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxsYmFjayxpPXQuYXJncztzd2l0Y2goaS5sZW5ndGgpe2Nhc2UgMDplKCk7YnJlYWs7Y2FzZSAxOmUoaVswXSk7YnJlYWs7Y2FzZSAyOmUoaVswXSxpWzFdKTticmVhaztjYXNlIDM6ZShpWzBdLGlbMV0saVsyXSk7YnJlYWs7ZGVmYXVsdDplLmFwcGx5KG4saSl9fShlKX1maW5hbGx5e2YodCksaD0hMX19fX19KCJ1bmRlZmluZWQiPT10eXBlb2Ygc2VsZj92b2lkIDA9PT10P3RoaXM6dDpzZWxmKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0KXt0cnl7aWYoIWUubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKHQpe3JldHVybiExfXZhciBuPWUubG9jYWxTdG9yYWdlW3RdO3JldHVybiBudWxsIT1uJiYidHJ1ZSI9PT1TdHJpbmcobikudG9Mb3dlckNhc2UoKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKCJub0RlcHJlY2F0aW9uIikpcmV0dXJuIHQ7dmFyIGk9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWkpe2lmKG4oInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoZSk7bigidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoZSk6Y29uc29sZS53YXJuKGUpLGk9ITB9cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1vO3ZhciBpPW4oODgpLHI9bigzMik7ZnVuY3Rpb24gbyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBvKSlyZXR1cm4gbmV3IG8odCk7aS5jYWxsKHRoaXMsdCl9ci5pbmhlcml0cz1uKDApLHIuaW5oZXJpdHMobyxpKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXtuKG51bGwsdCl9fSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjIpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oMjQpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjEpLlRyYW5zZm9ybX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDYxKS5QYXNzVGhyb3VnaH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxhPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdDw8MzB8dD4+PjJ9ZnVuY3Rpb24gaCh0LGUsbixpKXtyZXR1cm4gMD09PXQ/ZSZufH5lJmk6Mj09PXQ/ZSZufGUmaXxuJmk6ZV5uXml9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxsPTA7bDwxNjsrK2wpbltsXT10LnJlYWRJbnQzMkJFKDQqbCk7Zm9yKDtsPDgwOysrbCluW2xdPW5bbC0zXV5uW2wtOF1ebltsLTE0XV5uW2wtMTZdO2Zvcih2YXIgZD0wO2Q8ODA7KytkKXt2YXIgZj1+fihkLzIwKSxwPTB8KChlPWkpPDw1fGU+Pj4yNykraChmLHIsbyxhKSt1K25bZF0rc1tmXTt1PWEsYT1vLG89YyhyKSxyPWksaT1wfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLGE9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiB1KCl7dGhpcy5pbml0KCksdGhpcy5fdz1hLHIuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBjKHQpe3JldHVybiB0PDw1fHQ+Pj4yN31mdW5jdGlvbiBoKHQpe3JldHVybiB0PDwzMHx0Pj4+Mn1mdW5jdGlvbiBsKHQsZSxuLGkpe3JldHVybiAwPT09dD9lJm58fmUmaToyPT09dD9lJm58ZSZpfG4maTplXm5eaX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLl93LGk9MHx0aGlzLl9hLHI9MHx0aGlzLl9iLG89MHx0aGlzLl9jLGE9MHx0aGlzLl9kLHU9MHx0aGlzLl9lLGQ9MDtkPDE2OysrZCluW2RdPXQucmVhZEludDMyQkUoNCpkKTtmb3IoO2Q8ODA7KytkKW5bZF09KGU9bltkLTNdXm5bZC04XV5uW2QtMTRdXm5bZC0xNl0pPDwxfGU+Pj4zMTtmb3IodmFyIGY9MDtmPDgwOysrZil7dmFyIHA9fn4oZi8yMCksbT1jKGkpK2wocCxyLG8sYSkrdStuW2ZdK3NbcF18MDt1PWEsYT1vLG89aChyKSxyPWksaT1tfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oODkpLG89bigyOCkscz1uKDEpLkJ1ZmZlcixhPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcyw2NCw1Nil9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0zMjM4MzcxMDMyLHRoaXMuX2I9OTE0MTUwNjYzLHRoaXMuX2M9ODEyNzAyOTk5LHRoaXMuX2Q9NDE0NDkxMjY5Nyx0aGlzLl9lPTQyOTA3NzU4NTcsdGhpcy5fZj0xNzUwNjAzMDI1LHRoaXMuX2c9MTY5NDA3NjgzOSx0aGlzLl9oPTMyMDQwNzU0MjgsdGhpc30sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1zLmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gdC53cml0ZUludDMyQkUodGhpcy5fYSwwKSx0LndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUodGhpcy5fZCwxMiksdC53cml0ZUludDMyQkUodGhpcy5fZSwxNiksdC53cml0ZUludDMyQkUodGhpcy5fZiwyMCksdC53cml0ZUludDMyQkUodGhpcy5fZywyNCksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big5MCksbz1uKDI4KSxzPW4oMSkuQnVmZmVyLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcywxMjgsMTEyKX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9cy5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gZShlLG4saSl7dC53cml0ZUludDMyQkUoZSxpKSx0LndyaXRlSW50MzJCRShuLGkrNCl9cmV0dXJuIGUodGhpcy5fYWgsdGhpcy5fYWwsMCksZSh0aGlzLl9iaCx0aGlzLl9ibCw4KSxlKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxlKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxlKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxlKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSx0fSx0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDApLHI9bigxKS5CdWZmZXIsbz1uKDIxKSxzPXIuYWxsb2MoMTI4KSxhPTY0O2Z1bmN0aW9uIHUodCxlKXtvLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLHRoaXMuX2FsZz10LHRoaXMuX2tleT1lLGUubGVuZ3RoPmE/ZT10KGUpOmUubGVuZ3RoPGEmJihlPXIuY29uY2F0KFtlLHNdLGEpKTtmb3IodmFyIG49dGhpcy5faXBhZD1yLmFsbG9jVW5zYWZlKGEpLGk9dGhpcy5fb3BhZD1yLmFsbG9jVW5zYWZlKGEpLHU9MDt1PGE7dSsrKW5bdV09NTReZVt1XSxpW3VdPTkyXmVbdV07dGhpcy5faGFzaD1bbl19aSh1LG8pLHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5faGFzaC5wdXNoKHQpfSx1LnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hbGcoci5jb25jYXQodGhpcy5faGFzaCkpO3JldHVybiB0aGlzLl9hbGcoci5jb25jYXQoW3RoaXMuX29wYWQsdF0pKX0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9big5Myl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSxpKXt2YXIgcixvPW4oOTUpLHM9big5NiksYT1uKDk3KSx1PW4oMSkuQnVmZmVyLGM9ZS5jcnlwdG8mJmUuY3J5cHRvLnN1YnRsZSxoPXtzaGE6IlNIQS0xIiwic2hhLTEiOiJTSEEtMSIsc2hhMToiU0hBLTEiLHNoYTI1NjoiU0hBLTI1NiIsInNoYS0yNTYiOiJTSEEtMjU2IixzaGEzODQ6IlNIQS0zODQiLCJzaGEtMzg0IjoiU0hBLTM4NCIsInNoYS01MTIiOiJTSEEtNTEyIixzaGE1MTI6IlNIQS01MTIifSxsPVtdO2Z1bmN0aW9uIGQodCxlLG4saSxyKXtyZXR1cm4gYy5pbXBvcnRLZXkoInJhdyIsdCx7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGMuZGVyaXZlQml0cyh7bmFtZToiUEJLREYyIixzYWx0OmUsaXRlcmF0aW9uczpuLGhhc2g6e25hbWU6cn19LHQsaTw8Myl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB1LmZyb20odCl9KX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGYscCxtLGcpeyJmdW5jdGlvbiI9PXR5cGVvZiBtJiYoZz1tLG09dm9pZCAwKTt2YXIgdj1oWyhtPW18fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoIXZ8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlByb21pc2UpcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgZTt0cnl7ZT1hKHQsbixmLHAsbSl9Y2F0Y2godCl7cmV0dXJuIGcodCl9ZyhudWxsLGUpfSk7aWYobyh0LG4sZixwKSwiZnVuY3Rpb24iIT10eXBlb2YgZyl0aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpO3UuaXNCdWZmZXIodCl8fCh0PXUuZnJvbSh0LHMpKSx1LmlzQnVmZmVyKG4pfHwobj11LmZyb20obixzKSksZnVuY3Rpb24odCxlKXt0LnRoZW4oZnVuY3Rpb24odCl7aS5uZXh0VGljayhmdW5jdGlvbigpe2UobnVsbCx0KX0pfSxmdW5jdGlvbih0KXtpLm5leHRUaWNrKGZ1bmN0aW9uKCl7ZSh0KX0pfSl9KGZ1bmN0aW9uKHQpe2lmKGUucHJvY2VzcyYmIWUucHJvY2Vzcy5icm93c2VyKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKCFjfHwhYy5pbXBvcnRLZXl8fCFjLmRlcml2ZUJpdHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYodm9pZCAwIT09bFt0XSlyZXR1cm4gbFt0XTt2YXIgbj1kKHI9cnx8dS5hbGxvYyg4KSxyLDEwLDEyOCx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGxbdF09bixufSh2KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlP2QodCxuLGYscCx2KTphKHQsbixmLHAsbSl9KSxnKX19KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNjUpLHI9big2Nyksbz1uKDY4KSxzPW4oMTgwKSxhPW4oNDYpO2Z1bmN0aW9uIHUodCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlQ2lwaGVyaXYodCxlLG4pO2lmKHNbdF0pcmV0dXJuIG5ldyBpKHtrZXk6ZSxpdjpuLG1vZGU6dH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGModCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlRGVjaXBoZXJpdih0LGUsbik7aWYoc1t0XSlyZXR1cm4gbmV3IGkoe2tleTplLGl2Om4sbW9kZTp0LGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1lLmNyZWF0ZUNpcGhlcj1lLkNpcGhlcj1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYodD10LnRvTG93ZXJDYXNlKCksb1t0XSluPW9bdF0ua2V5LGk9b1t0XS5pdjtlbHNle2lmKCFzW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO249OCpzW3RdLmtleSxpPXNbdF0uaXZ9dmFyIHI9YShlLCExLG4saSk7cmV0dXJuIHUodCxyLmtleSxyLml2KX0sZS5jcmVhdGVDaXBoZXJpdj1lLkNpcGhlcml2PXUsZS5jcmVhdGVEZWNpcGhlcj1lLkRlY2lwaGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZih0PXQudG9Mb3dlckNhc2UoKSxvW3RdKW49b1t0XS5rZXksaT1vW3RdLml2O2Vsc2V7aWYoIXNbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7bj04KnNbdF0ua2V5LGk9c1t0XS5pdn12YXIgcj1hKGUsITEsbixpKTtyZXR1cm4gYyh0LHIua2V5LHIuaXYpfSxlLmNyZWF0ZURlY2lwaGVyaXY9ZS5EZWNpcGhlcml2PWMsZS5saXN0Q2lwaGVycz1lLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMocykuY29uY2F0KHIuZ2V0Q2lwaGVycygpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIxKSxyPW4oNjYpLG89bigwKSxzPW4oMSkuQnVmZmVyLGE9eyJkZXMtZWRlMy1jYmMiOnIuQ0JDLmluc3RhbnRpYXRlKHIuRURFKSwiZGVzLWVkZTMiOnIuRURFLCJkZXMtZWRlLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5FREUpLCJkZXMtZWRlIjpyLkVERSwiZGVzLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5ERVMpLCJkZXMtZWNiIjpyLkRFU307ZnVuY3Rpb24gdSh0KXtpLmNhbGwodGhpcyk7dmFyIGUsbj10Lm1vZGUudG9Mb3dlckNhc2UoKSxyPWFbbl07ZT10LmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgbz10LmtleTtzLmlzQnVmZmVyKG8pfHwobz1zLmZyb20obykpLCJkZXMtZWRlIiE9PW4mJiJkZXMtZWRlLWNiYyIhPT1ufHwobz1zLmNvbmNhdChbbyxvLnNsaWNlKDAsOCldKSk7dmFyIHU9dC5pdjtzLmlzQnVmZmVyKHUpfHwodT1zLmZyb20odSkpLHRoaXMuX2Rlcz1yLmNyZWF0ZSh7a2V5Om8saXY6dSx0eXBlOmV9KX1hLmRlcz1hWyJkZXMtY2JjIl0sYS5kZXMzPWFbImRlcy1lZGUzLWNiYyJdLHQuZXhwb3J0cz11LG8odSxpKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLnVwZGF0ZSh0KSl9LHUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybih0WzArZV08PDI0fHRbMStlXTw8MTZ8dFsyK2VdPDw4fHRbMytlXSk+Pj4wfSxlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLG4pe3RbMCtuXT1lPj4+MjQsdFsxK25dPWU+Pj4xNiYyNTUsdFsyK25dPWU+Pj44JjI1NSx0WzMrbl09MjU1JmV9LGUuaXA9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPTAsbz0wLHM9NjtzPj0wO3MtPTIpe2Zvcih2YXIgYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj4+YStzJjF9Zm9yKHM9NjtzPj0wO3MtPTIpe2ZvcihhPTE7YTw9MjU7YSs9OClvPDw9MSxvfD1lPj4+YStzJjE7Zm9yKGE9MTthPD0yNTthKz04KW88PD0xLG98PXQ+Pj5hK3MmMX1uW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnJpcD1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz0wO3M8NDtzKyspZm9yKHZhciBhPTI0O2E+PTA7YS09OClyPDw9MSxyfD1lPj4+YStzJjEscjw8PTEscnw9dD4+PmErcyYxO2ZvcihzPTQ7czw4O3MrKylmb3IoYT0yNDthPj0wO2EtPTgpbzw8PTEsb3w9ZT4+PmErcyYxLG88PD0xLG98PXQ+Pj5hK3MmMTtuW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnBjMT1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz03O3M+PTU7cy0tKXtmb3IodmFyIGE9MDthPD0yNDthKz04KXI8PD0xLHJ8PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+YStzJjE7Zm9yKHM9MTtzPD0zO3MrKyl7Zm9yKGE9MDthPD0yNDthKz04KW88PD0xLG98PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClvPDw9MSxvfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpbzw8PTEsb3w9dD4+YStzJjE7bltpKzBdPXI+Pj4wLG5baSsxXT1vPj4+MH0sZS5yMjhzaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw8ZSYyNjg0MzU0NTV8dD4+PjI4LWV9O3ZhciBpPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO2UucGMyPWZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgbz0wLHM9MCxhPWkubGVuZ3RoPj4+MSx1PTA7dTxhO3UrKylvPDw9MSxvfD10Pj4+aVt1XSYxO2Zvcih1PWE7dTxpLmxlbmd0aDt1Kyspczw8PTEsc3w9ZT4+PmlbdV0mMTtuW3IrMF09bz4+PjAsbltyKzFdPXM+Pj4wfSxlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9MCxyPTA7aT0oMSZ0KTw8NXx0Pj4+Mjc7Zm9yKHZhciBvPTIzO28+PTE1O28tPTQpaTw8PTYsaXw9dD4+Pm8mNjM7Zm9yKG89MTE7bz49MztvLT00KXJ8PXQ+Pj5vJjYzLHI8PD02O3J8PSgzMSZ0KTw8MXx0Pj4+MzEsZVtuKzBdPWk+Pj4wLGVbbisxXT1yPj4+MH07dmFyIHI9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07ZS5zdWJzdGl0dXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAsaT0wO2k8NDtpKyspe248PD00LG58PXJbNjQqaSsodD4+PjE4LTYqaSY2MyldfWZvcihpPTA7aTw0O2krKyl7bjw8PTQsbnw9clsyNTYrNjQqaSsoZT4+PjE4LTYqaSY2MyldfXJldHVybiBuPj4+MH07dmFyIG89WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO2UucGVybXV0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjxvLmxlbmd0aDtuKyspZTw8PTEsZXw9dD4+Pm9bbl0mMTtyZXR1cm4gZT4+PjB9LGUucGFkU3BsaXQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10LnRvU3RyaW5nKDIpO2kubGVuZ3RoPGU7KWk9IjAiK2k7Zm9yKHZhciByPVtdLG89MDtvPGU7bys9bilyLnB1c2goaS5zbGljZShvLG8rbikpO3JldHVybiByLmpvaW4oIiAiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCk7ZnVuY3Rpb24gcih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsdGhpcy5ibG9ja1NpemU9OCx0aGlzLl9pbml0KCksdGhpcy5idWZmZXI9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLmJ1ZmZlck9mZj0wfXQuZXhwb3J0cz1yLHIucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7fSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9bXToiZGVjcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fdXBkYXRlRGVjcnlwdCh0KTp0aGlzLl91cGRhdGVFbmNyeXB0KHQpfSxyLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZix0Lmxlbmd0aC1lKSxpPTA7aTxuO2krKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitpXT10W2UraV07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1uLG59LHIucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LGUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5ibG9ja1NpemV9LHIucHJvdG90eXBlLl91cGRhdGVFbmNyeXB0PWZ1bmN0aW9uKHQpe3ZhciBlPTAsbj0wLGk9KHRoaXMuYnVmZmVyT2ZmK3QubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKGUrPXRoaXMuX2J1ZmZlcih0LGUpLHRoaXMuYnVmZmVyT2ZmPT09dGhpcy5idWZmZXIubGVuZ3RoJiYobis9dGhpcy5fZmx1c2hCdWZmZXIocixuKSkpO2Zvcih2YXIgbz10Lmxlbmd0aC0odC5sZW5ndGgtZSkldGhpcy5ibG9ja1NpemU7ZTxvO2UrPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZSh0LGUscixuKSxuKz10aGlzLmJsb2NrU2l6ZTtmb3IoO2U8dC5sZW5ndGg7ZSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPXRbZV07cmV0dXJuIHJ9LHIucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49MCxpPU1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYrdC5sZW5ndGgpL3RoaXMuYmxvY2tTaXplKS0xLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpO2k+MDtpLS0pZSs9dGhpcy5fYnVmZmVyKHQsZSksbis9dGhpcy5fZmx1c2hCdWZmZXIocixuKTtyZXR1cm4gZSs9dGhpcy5fYnVmZmVyKHQsZSkscn0sci5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gdCYmKGU9dGhpcy51cGRhdGUodCkpLG49ImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2ZpbmFsRW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLGU/ZS5jb25jYXQobik6bn0sci5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbih0LGUpe2lmKDA9PT1lKXJldHVybiExO2Zvcig7ZTx0Lmxlbmd0aDspdFtlKytdPTA7cmV0dXJuITB9LHIucHJvdG90eXBlLl9maW5hbEVuY3J5cHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgdD1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LDApLHR9LHIucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbih0KXtyZXR1cm4gdH0sci5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdD1mdW5jdGlvbigpe2kuZXF1YWwodGhpcy5idWZmZXJPZmYsdGhpcy5ibG9ja1NpemUsIk5vdCBlbm91Z2ggZGF0YSB0byBkZWNyeXB0Iik7dmFyIHQ9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fZmx1c2hCdWZmZXIodCwwKSx0aGlzLl91bnBhZCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89big2Nikscz1vLnV0aWxzLGE9by5DaXBoZXI7ZnVuY3Rpb24gdSgpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1O3RoaXMuX2Rlc1N0YXRlPWUsdGhpcy5kZXJpdmVLZXlzKGUsdC5rZXkpfXIoYyxhKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9O3ZhciBoPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtjLnByb3RvdHlwZS5kZXJpdmVLZXlzPWZ1bmN0aW9uKHQsZSl7dC5rZXlzPW5ldyBBcnJheSgzMiksaS5lcXVhbChlLmxlbmd0aCx0aGlzLmJsb2NrU2l6ZSwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49cy5yZWFkVUludDMyQkUoZSwwKSxyPXMucmVhZFVJbnQzMkJFKGUsNCk7cy5wYzEobixyLHQudG1wLDApLG49dC50bXBbMF0scj10LnRtcFsxXTtmb3IodmFyIG89MDtvPHQua2V5cy5sZW5ndGg7bys9Mil7dmFyIGE9aFtvPj4+MV07bj1zLnIyOHNobChuLGEpLHI9cy5yMjhzaGwocixhKSxzLnBjMihuLHIsdC5rZXlzLG8pfX0sYy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9kZXNTdGF0ZSxvPXMucmVhZFVJbnQzMkJFKHQsZSksYT1zLnJlYWRVSW50MzJCRSh0LGUrNCk7cy5pcChvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLCJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9lbmNyeXB0KHIsbyxhLHIudG1wLDApOnRoaXMuX2RlY3J5cHQocixvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLHMud3JpdGVVSW50MzJCRShuLG8saSkscy53cml0ZVVJbnQzMkJFKG4sYSxpKzQpfSxjLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLWUsaT1lO2k8dC5sZW5ndGg7aSsrKXRbaV09bjtyZXR1cm4hMH0sYy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10W3QubGVuZ3RoLTFdLG49dC5sZW5ndGgtZTtuPHQubGVuZ3RoO24rKylpLmVxdWFsKHRbbl0sZSk7cmV0dXJuIHQuc2xpY2UoMCx0Lmxlbmd0aC1lKX0sYy5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89ZSxhPW4sdT0wO3U8dC5rZXlzLmxlbmd0aDt1Kz0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChhLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9YTthPShvXnMucGVybXV0ZShsKSk+Pj4wLG89ZH1zLnJpcChhLG8saSxyKX0sYy5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89bixhPWUsdT10LmtleXMubGVuZ3RoLTI7dT49MDt1LT0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChvLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9bztvPShhXnMucGVybXV0ZShsKSk+Pj4wLGE9ZH1zLnJpcChvLGEsaSxyKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89e307ZnVuY3Rpb24gcyh0KXtpLmVxdWFsKHQubGVuZ3RoLDgsIkludmFsaWQgSVYgbGVuZ3RoIiksdGhpcy5pdj1uZXcgQXJyYXkoOCk7Zm9yKHZhciBlPTA7ZTx0aGlzLml2Lmxlbmd0aDtlKyspdGhpcy5pdltlXT10W2VdfWUuaW5zdGFudGlhdGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlKSx0aGlzLl9jYmNJbml0KCl9cihlLHQpO2Zvcih2YXIgbj1PYmplY3Qua2V5cyhvKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07ZS5wcm90b3R5cGVbc109b1tzXX1yZXR1cm4gZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSxvLl9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHModGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0ZT10fSxvLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fY2JjU3RhdGUsbz10aGlzLmNvbnN0cnVjdG9yLnN1cGVyXy5wcm90b3R5cGUscz1yLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmJsb2NrU2l6ZTthKyspc1thXV49dFtlK2FdO28uX3VwZGF0ZS5jYWxsKHRoaXMscywwLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPW5baSthXX1lbHNle28uX3VwZGF0ZS5jYWxsKHRoaXMsdCxlLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKyluW2krYV1ePXNbYV07Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPXRbZSthXX19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKSxvPW4oNjYpLHM9by5DaXBoZXIsYT1vLkRFUztmdW5jdGlvbiB1KHQsZSl7aS5lcXVhbChlLmxlbmd0aCwyNCwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49ZS5zbGljZSgwLDgpLHI9ZS5zbGljZSg4LDE2KSxvPWUuc2xpY2UoMTYsMjQpO3RoaXMuY2lwaGVycz0iZW5jcnlwdCI9PT10P1thLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om59KSxhLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OnJ9KSxhLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om99KV06W2EuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6b30pLGEuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6cn0pLGEuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6bn0pXX1mdW5jdGlvbiBjKHQpe3MuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1KHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1lfXIoYyxzKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9LGMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fZWRlU3RhdGU7ci5jaXBoZXJzWzBdLl91cGRhdGUodCxlLG4saSksci5jaXBoZXJzWzFdLl91cGRhdGUobixpLG4saSksci5jaXBoZXJzWzJdLl91cGRhdGUobixpLG4saSl9LGMucHJvdG90eXBlLl9wYWQ9YS5wcm90b3R5cGUuX3BhZCxjLnByb3RvdHlwZS5fdW5wYWQ9YS5wcm90b3R5cGUuX3VucGFkfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big2OCkscj1uKDEwMSksbz1uKDEpLkJ1ZmZlcixzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGQsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PW8uZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9bigwKShoLGEpLGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUsbjt0aGlzLl9jYWNoZS5hZGQodCk7Zm9yKHZhciBpPVtdO2U9dGhpcy5fY2FjaGUuZ2V0KCk7KW49dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiBvLmNvbmNhdChpKX07dmFyIGw9by5hbGxvYygxNiwxNik7ZnVuY3Rpb24gZCgpe3RoaXMuY2FjaGU9by5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBmKHQsZSxuKXt2YXIgYT1pW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1vLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1vLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuKToiYXV0aCI9PT1hLnR5cGU/bmV3IHIoYS5tb2R1bGUsZSxuKTpuZXcgaChhLm1vZHVsZSxlLG4pfWgucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIHQ9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsdCksdGhpcy5fY2lwaGVyLnNjcnViKCksdDtpZighdC5lcXVhbHMobCkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0saC5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhdCx0aGlzfSxkLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5jYWNoZT1vLmNvbmNhdChbdGhpcy5jYWNoZSx0XSl9LGQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgdD10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHR9cmV0dXJuIG51bGx9LGQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTE2LXRoaXMuY2FjaGUubGVuZ3RoLGU9by5hbGxvY1Vuc2FmZSh0KSxuPS0xOysrbjx0OyllLndyaXRlVUludDgodCxuKTtyZXR1cm4gby5jb25jYXQoW3RoaXMuY2FjaGUsZV0pfSxlLmNyZWF0ZUNpcGhlcml2PWYsZS5jcmVhdGVDaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1pW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIHI9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBmKHQsci5rZXksci5pdil9fSxmdW5jdGlvbih0LGUpe2UuZW5jcnlwdD1mdW5jdGlvbih0LGUpe3JldHVybiB0Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKGUpfSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2lwaGVyLmRlY3J5cHRCbG9jayhlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKTtlLmVuY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKGUsdC5fcHJldik7cmV0dXJuIHQuX3ByZXY9dC5fY2lwaGVyLmVuY3J5cHRCbG9jayhuKSx0Ll9wcmV2fSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Ll9wcmV2O3QuX3ByZXY9ZTt2YXIgcj10Ll9jaXBoZXIuZGVjcnlwdEJsb2NrKGUpO3JldHVybiBpKHIsbil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDMzKTtmdW5jdGlvbiBvKHQsZSxuKXt2YXIgbz1lLmxlbmd0aCxzPXIoZSx0Ll9jYWNoZSk7cmV0dXJuIHQuX2NhY2hlPXQuX2NhY2hlLnNsaWNlKG8pLHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYsbj9lOnNdKSxzfWUuZW5jcnlwdD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByLHM9aS5hbGxvY1Vuc2FmZSgwKTtlLmxlbmd0aDspe2lmKDA9PT10Ll9jYWNoZS5sZW5ndGgmJih0Ll9jYWNoZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXY9aS5hbGxvY1Vuc2FmZSgwKSksISh0Ll9jYWNoZS5sZW5ndGg8PWUubGVuZ3RoKSl7cz1pLmNvbmNhdChbcyxvKHQsZSxuKV0pO2JyZWFrfXI9dC5fY2FjaGUubGVuZ3RoLHM9aS5jb25jYXQoW3Msbyh0LGUuc2xpY2UoMCxyKSxuKV0pLGU9ZS5zbGljZShyKX1yZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXt2YXIgcj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpWzBdXmU7cmV0dXJuIHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYuc2xpY2UoMSksaS5mcm9tKFtuP2U6cl0pXSkscn1lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXtmb3IodmFyIGkscixzPS0xLGE9MDsrK3M8ODspaT1lJjE8PDctcz8xMjg6MCxhKz0oMTI4JihyPXQuX2NpcGhlci5lbmNyeXB0QmxvY2sodC5fcHJldilbMF1eaSkpPj5zJTgsdC5fcHJldj1vKHQuX3ByZXYsbj9pOnIpO3JldHVybiBhfWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10Lmxlbmd0aCxyPS0xLG89aS5hbGxvY1Vuc2FmZSh0Lmxlbmd0aCk7Zm9yKHQ9aS5jb25jYXQoW3QsaS5mcm9tKFtlXSldKTsrK3I8bjspb1tyXT10W3JdPDwxfHRbcisxXT4+NztyZXR1cm4gb31lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24odCl7dmFyIGk9bigzMyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5fcHJldj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXZ9ZS5lbmNyeXB0PWZ1bmN0aW9uKGUsbil7Zm9yKDtlLl9jYWNoZS5sZW5ndGg8bi5sZW5ndGg7KWUuX2NhY2hlPXQuY29uY2F0KFtlLl9jYWNoZSxyKGUpXSk7dmFyIG89ZS5fY2FjaGUuc2xpY2UoMCxuLmxlbmd0aCk7cmV0dXJuIGUuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKG4ubGVuZ3RoKSxpKG4sbyl9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5hbGxvYygxNiwwKTtmdW5jdGlvbiBvKHQpe3ZhciBlPWkuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBlLndyaXRlVUludDMyQkUodFswXT4+PjAsMCksZS53cml0ZVVJbnQzMkJFKHRbMV0+Pj4wLDQpLGUud3JpdGVVSW50MzJCRSh0WzJdPj4+MCw4KSxlLndyaXRlVUludDMyQkUodFszXT4+PjAsMTIpLGV9ZnVuY3Rpb24gcyh0KXt0aGlzLmg9dCx0aGlzLnN0YXRlPWkuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1pLmFsbG9jVW5zYWZlKDApfXMucHJvdG90eXBlLmdoYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMTsrK2U8dC5sZW5ndGg7KXRoaXMuc3RhdGVbZV1ePXRbZV07dGhpcy5fbXVsdGlwbHkoKX0scy5wcm90b3R5cGUuX211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsbixpPVsodD10aGlzLmgpLnJlYWRVSW50MzJCRSgwKSx0LnJlYWRVSW50MzJCRSg0KSx0LnJlYWRVSW50MzJCRSg4KSx0LnJlYWRVSW50MzJCRSgxMildLHI9WzAsMCwwLDBdLHM9LTE7KytzPDEyODspe2ZvcigwIT0odGhpcy5zdGF0ZVt+fihzLzgpXSYxPDw3LXMlOCkmJihyWzBdXj1pWzBdLHJbMV1ePWlbMV0sclsyXV49aVsyXSxyWzNdXj1pWzNdKSxuPTAhPSgxJmlbM10pLGU9MztlPjA7ZS0tKWlbZV09aVtlXT4+PjF8KDEmaVtlLTFdKTw8MzE7aVswXT1pWzBdPj4+MSxuJiYoaVswXT1pWzBdXjIyNTw8MjQpfXRoaXMuc3RhdGU9byhyKX0scy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0aGlzLmNhY2hlPWkuY29uY2F0KFt0aGlzLmNhY2hlLHRdKTt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KWU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHRoaXMuZ2hhc2goZSl9LHMucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKGkuY29uY2F0KFt0aGlzLmNhY2hlLHJdLDE2KSksdGhpcy5naGFzaChvKFswLHQsMCxlXSkpLHRoaXMuc3RhdGV9LHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMDEpLHI9bigxKS5CdWZmZXIsbz1uKDY4KSxzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGwsdGhpcy5fbGFzdD12b2lkIDAsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PXIuZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9ZnVuY3Rpb24gbCgpe3RoaXMuY2FjaGU9ci5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBkKHQsZSxuKXt2YXIgYT1vW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1yLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuLCEwKToiYXV0aCI9PT1hLnR5cGU/bmV3IGkoYS5tb2R1bGUsZSxuLCEwKTpuZXcgaChhLm1vZHVsZSxlLG4pfW4oMCkoaCxhKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5fY2FjaGUuYWRkKHQpO2Zvcih2YXIgaT1bXTtlPXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZyk7KW49dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiByLmNvbmNhdChpKX0saC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dFsxNV07aWYoZTwxfHxlPjE2KXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGRlY3J5cHQgZGF0YSIpO3ZhciBuPS0xO2Zvcig7KytuPGU7KWlmKHRbbisoMTYtZSldIT09ZSl0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtpZigxNj09PWUpcmV0dXJuO3JldHVybiB0LnNsaWNlKDAsMTYtZSl9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLHQpKTtpZih0KXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGgucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIXQsdGhpc30sbC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3RoaXMuY2FjaGU9ci5jb25jYXQoW3RoaXMuY2FjaGUsdF0pfSxsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU7aWYodCl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGV9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGU7cmV0dXJuIG51bGx9LGwucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LGUuY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1vW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIGk9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBkKHQsaS5rZXksaS5pdil9LGUuY3JlYXRlRGVjaXBoZXJpdj1kfSxmdW5jdGlvbih0LGUpe2VbImRlcy1lY2IiXT17a2V5OjgsaXY6MH0sZVsiZGVzLWNiYyJdPWUuZGVzPXtrZXk6OCxpdjo4fSxlWyJkZXMtZWRlMy1jYmMiXT1lLmRlczM9e2tleToyNCxpdjo4fSxlWyJkZXMtZWRlMyJdPXtrZXk6MjQsaXY6MH0sZVsiZGVzLWVkZS1jYmMiXT17a2V5OjE2LGl2Ojh9LGVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTAzKSxyPW4oMTg0KSxvPW4oMTg1KTt2YXIgcz17YmluYXJ5OiEwLGhleDohMCxiYXNlNjQ6ITB9O2UuRGlmZmllSGVsbG1hbkdyb3VwPWUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPWUuZ2V0RGlmZmllSGVsbG1hbj1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdChyW2VdLnByaW1lLCJoZXgiKSxpPW5ldyB0KHJbZV0uZ2VuLCJoZXgiKTtyZXR1cm4gbmV3IG8obixpKX0sZS5jcmVhdGVEaWZmaWVIZWxsbWFuPWUuRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBlKG4scixhLHUpe3JldHVybiB0LmlzQnVmZmVyKHIpfHx2b2lkIDA9PT1zW3JdP2UobiwiYmluYXJ5IixyLGEpOihyPXJ8fCJiaW5hcnkiLHU9dXx8ImJpbmFyeSIsYT1hfHxuZXcgdChbMl0pLHQuaXNCdWZmZXIoYSl8fChhPW5ldyB0KGEsdSkpLCJudW1iZXIiPT10eXBlb2Ygbj9uZXcgbyhpKG4sYSksYSwhMCk6KHQuaXNCdWZmZXIobil8fChuPW5ldyB0KG4scikpLG5ldyBvKG4sYSwhMCkpKX19KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlKXt9LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17bW9kcDE6e2dlbjoiMDIiLHByaW1lOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmYifSxtb2RwMjp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmYifSxtb2RwNTp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNDp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE1OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE2OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNzp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxODp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDczYjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYzNmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmIn19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPW4oMykscj1uZXcobigxMDQpKSxvPW5ldyBpKDI0KSxzPW5ldyBpKDExKSxhPW5ldyBpKDEwKSx1PW5ldyBpKDMpLGM9bmV3IGkoNyksaD1uKDEwMyksbD1uKDI3KTtmdW5jdGlvbiBkKHQsbil7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLHRoaXMuX3B1Yj1uZXcgaSh0KSx0aGlzfWZ1bmN0aW9uIGYodCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fcHJpdj1uZXcgaSh0KSx0aGlzfXQuZXhwb3J0cz1tO3ZhciBwPXt9O2Z1bmN0aW9uIG0odCxlLG4pe3RoaXMuc2V0R2VuZXJhdG9yKGUpLHRoaXMuX19wcmltZT1uZXcgaSh0KSx0aGlzLl9wcmltZT1pLm1vbnQodGhpcy5fX3ByaW1lKSx0aGlzLl9wcmltZUxlbj10Lmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsbj8odGhpcy5zZXRQdWJsaWNLZXk9ZCx0aGlzLnNldFByaXZhdGVLZXk9Zik6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24gZyh0LG4pe3ZhciBpPW5ldyBlKHQudG9BcnJheSgpKTtyZXR1cm4gbj9pLnRvU3RyaW5nKG4pOml9T2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ2ZXJpZnlFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0aGlzLl9wcmltZUNvZGUmJih0aGlzLl9wcmltZUNvZGU9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnRvU3RyaW5nKCJoZXgiKSxpPVtuLHQudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYoaSBpbiBwKXJldHVybiBwW2ldO3ZhciBsLGQ9MDtpZih0LmlzRXZlbigpfHwhaC5zaW1wbGVTaWV2ZXx8IWguZmVybWF0VGVzdCh0KXx8IXIudGVzdCh0KSlyZXR1cm4gZCs9MSxkKz0iMDIiPT09bnx8IjA1Ij09PW4/ODo0LHBbaV09ZCxkO3N3aXRjaChyLnRlc3QodC5zaHJuKDEpKXx8KGQrPTIpLG4pe2Nhc2UiMDIiOnQubW9kKG8pLmNtcChzKSYmKGQrPTgpO2JyZWFrO2Nhc2UiMDUiOihsPXQubW9kKGEpKS5jbXAodSkmJmwuY21wKGMpJiYoZCs9OCk7YnJlYWs7ZGVmYXVsdDpkKz00fXJldHVybiBwW2ldPWQsZH0odGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9fSksbS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBpKGwodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxtLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKHQpe3ZhciBuPSh0PSh0PW5ldyBpKHQpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCkscj1uZXcgZShuLnRvQXJyYXkoKSksbz10aGlzLmdldFByaW1lKCk7aWYoci5sZW5ndGg8by5sZW5ndGgpe3ZhciBzPW5ldyBlKG8ubGVuZ3RoLXIubGVuZ3RoKTtzLmZpbGwoMCkscj1lLmNvbmNhdChbcyxyXSl9cmV0dXJuIHJ9LG0ucHJvdG90eXBlLmdldFB1YmxpY0tleT1mdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLl9wdWIsdCl9LG0ucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fcHJpdix0KX0sbS5wcm90b3R5cGUuZ2V0UHJpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fX3ByaW1lLHQpfSxtLnByb3RvdHlwZS5nZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fZ2VuLHQpfSxtLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fX2dlbj10LHRoaXMuX2dlbj1uZXcgaSh0KSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigzMSkscj1uKDU5KSxvPW4oMCkscz1uKDE4NyksYT1uKDIyMyksdT1uKDkzKTtmdW5jdGlvbiBjKHQpe3IuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgZT11W3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPWUuaGFzaCx0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gaCh0KXtyLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGU9dVt0XTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbmV3IGModCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbmV3IGgodCl9T2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbih0KXt1W3RdLmlkPW5ldyBlKHVbdF0uaWQsImhleCIpLHVbdC50b0xvd2VyQ2FzZSgpXT11W3RdfSksbyhjLHIuV3JpdGFibGUpLGMucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxjLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGMucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24odCxlKXt0aGlzLmVuZCgpO3ZhciBuPXRoaXMuX2hhc2guZGlnZXN0KCksaT1zKG4sdCx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiBlP2kudG9TdHJpbmcoZSk6aX0sbyhoLHIuV3JpdGFibGUpLGgucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGgucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LG4saSl7InN0cmluZyI9PXR5cGVvZiBuJiYobj1uZXcgZShuLGkpKSx0aGlzLmVuZCgpO3ZhciByPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0dXJuIGEobixyLHQsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sdC5leHBvcnRzPXtTaWduOmwsVmVyaWZ5OmQsY3JlYXRlU2lnbjpsLGNyZWF0ZVZlcmlmeTpkfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9big5MSkscj1uKDY5KSxvPW4oMTApLmVjLHM9bigzKSxhPW4oNDkpLHU9bigxMTQpO2Z1bmN0aW9uIGModCxuLHIsbyl7aWYoKHQ9bmV3IGUodC50b0FycmF5KCkpKS5sZW5ndGg8bi5ieXRlTGVuZ3RoKCkpe3ZhciBzPW5ldyBlKG4uYnl0ZUxlbmd0aCgpLXQubGVuZ3RoKTtzLmZpbGwoMCksdD1lLmNvbmNhdChbcyx0XSl9dmFyIGE9ci5sZW5ndGgsdT1mdW5jdGlvbih0LG4pe3Q9KHQ9aCh0LG4pKS5tb2Qobik7dmFyIGk9bmV3IGUodC50b0FycmF5KCkpO2lmKGkubGVuZ3RoPG4uYnl0ZUxlbmd0aCgpKXt2YXIgcj1uZXcgZShuLmJ5dGVMZW5ndGgoKS1pLmxlbmd0aCk7ci5maWxsKDApLGk9ZS5jb25jYXQoW3IsaV0pfXJldHVybiBpfShyLG4pLGM9bmV3IGUoYSk7Yy5maWxsKDEpO3ZhciBsPW5ldyBlKGEpO3JldHVybiBsLmZpbGwoMCksbD1pKG8sbCkudXBkYXRlKGMpLnVwZGF0ZShuZXcgZShbMF0pKS51cGRhdGUodCkudXBkYXRlKHUpLmRpZ2VzdCgpLGM9aShvLGwpLnVwZGF0ZShjKS5kaWdlc3QoKSx7azpsPWkobyxsKS51cGRhdGUoYykudXBkYXRlKG5ldyBlKFsxXSkpLnVwZGF0ZSh0KS51cGRhdGUodSkuZGlnZXN0KCksdjpjPWkobyxsKS51cGRhdGUoYykuZGlnZXN0KCl9fWZ1bmN0aW9uIGgodCxlKXt2YXIgbj1uZXcgcyh0KSxpPSh0Lmxlbmd0aDw8MyktZS5iaXRMZW5ndGgoKTtyZXR1cm4gaT4wJiZuLmlzaHJuKGkpLG59ZnVuY3Rpb24gbCh0LG4scil7dmFyIG8scztkb3tmb3Iobz1uZXcgZSgwKTs4Km8ubGVuZ3RoPHQuYml0TGVuZ3RoKCk7KW4udj1pKHIsbi5rKS51cGRhdGUobi52KS5kaWdlc3QoKSxvPWUuY29uY2F0KFtvLG4udl0pO3M9aChvLHQpLG4uaz1pKHIsbi5rKS51cGRhdGUobi52KS51cGRhdGUobmV3IGUoWzBdKSkuZGlnZXN0KCksbi52PWkocixuLmspLnVwZGF0ZShuLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09cy5jbXAodCkpO3JldHVybiBzfWZ1bmN0aW9uIGQodCxlLG4saSl7cmV0dXJuIHQudG9SZWQocy5tb250KG4pKS5yZWRQb3coZSkuZnJvbVJlZCgpLm1vZChpKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGksZixwKXt2YXIgbT1hKG4pO2lmKG0uY3VydmUpe2lmKCJlY2RzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIGk9dVtuLmN1cnZlLmpvaW4oIi4iKV07aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrbi5jdXJ2ZS5qb2luKCIuIikpO3ZhciByPW5ldyBvKGkpLmtleUZyb21Qcml2YXRlKG4ucHJpdmF0ZUtleSkuc2lnbih0KTtyZXR1cm4gbmV3IGUoci50b0RFUigpKX0odCxtKX1pZigiZHNhIj09PW0udHlwZSl7aWYoImRzYSIhPT1mKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LG4saSl7Zm9yKHZhciByLG89bi5wYXJhbXMucHJpdl9rZXksYT1uLnBhcmFtcy5wLHU9bi5wYXJhbXMucSxmPW4ucGFyYW1zLmcscD1uZXcgcygwKSxtPWgodCx1KS5tb2QodSksZz0hMSx2PWMobyx1LHQsaSk7ITE9PT1nOylyPWwodSx2LGkpLHA9ZChmLHIsYSx1KSwwPT09KGc9ci5pbnZtKHUpLmltdWwobS5hZGQoby5tdWwocCkpKS5tb2QodSkpLmNtcG4oMCkmJihnPSExLHA9bmV3IHMoMCkpO3JldHVybiBmdW5jdGlvbih0LG4pe3Q9dC50b0FycmF5KCksbj1uLnRvQXJyYXkoKSwxMjgmdFswXSYmKHQ9WzBdLmNvbmNhdCh0KSksMTI4Jm5bMF0mJihuPVswXS5jb25jYXQobikpO3ZhciBpPVs0OCx0Lmxlbmd0aCtuLmxlbmd0aCs0LDIsdC5sZW5ndGhdO3JldHVybiBpPWkuY29uY2F0KHQsWzIsbi5sZW5ndGhdLG4pLG5ldyBlKGkpfShwLGcpfSh0LG0saSl9aWYoInJzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7dD1lLmNvbmNhdChbcCx0XSk7Zm9yKHZhciBnPW0ubW9kdWx1cy5ieXRlTGVuZ3RoKCksdj1bMCwxXTt0Lmxlbmd0aCt2Lmxlbmd0aCsxPGc7KXYucHVzaCgyNTUpO3YucHVzaCgwKTtmb3IodmFyIGI9LTE7KytiPHQubGVuZ3RoOyl2LnB1c2godFtiXSk7cmV0dXJuIHIodixtKX0sdC5leHBvcnRzLmdldEtleT1jLHQuZXhwb3J0cy5tYWtlS2V5PWx9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9e25hbWU6ImVsbGlwdGljIix2ZXJzaW9uOiI2LjQuMSIsZGVzY3JpcHRpb246IkVDIGNyeXB0b2dyYXBoeSIsbWFpbjoibGliL2VsbGlwdGljLmpzIixmaWxlczpbImxpYiJdLHNjcmlwdHM6e2pzY3M6ImpzY3MgYmVuY2htYXJrcy8qLmpzIGxpYi8qLmpzIGxpYi8qKi8qLmpzIGxpYi8qKi8qKi8qLmpzIHRlc3QvaW5kZXguanMiLGpzaGludDoianNjcyBiZW5jaG1hcmtzLyouanMgbGliLyouanMgbGliLyoqLyouanMgbGliLyoqLyoqLyouanMgdGVzdC9pbmRleC5qcyIsbGludDoibnBtIHJ1biBqc2NzICYmIG5wbSBydW4ganNoaW50Iix1bml0OiJpc3RhbmJ1bCB0ZXN0IF9tb2NoYSAtLXJlcG9ydGVyPXNwZWMgdGVzdC9pbmRleC5qcyIsdGVzdDoibnBtIHJ1biBsaW50ICYmIG5wbSBydW4gdW5pdCIsdmVyc2lvbjoiZ3J1bnQgZGlzdCAmJiBnaXQgYWRkIGRpc3QvIn0scmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6ImdpdEBnaXRodWIuY29tOmluZHV0bnkvZWxsaXB0aWMifSxrZXl3b3JkczpbIkVDIiwiRWxsaXB0aWMiLCJjdXJ2ZSIsIkNyeXB0b2dyYXBoeSJdLGF1dGhvcjoiRmVkb3IgSW5kdXRueSA8ZmVkb3JAaW5kdXRueS5jb20+IixsaWNlbnNlOiJNSVQiLGJ1Z3M6e3VybDoiaHR0cHM6Ly9naXRodWIuY29tL2luZHV0bnkvZWxsaXB0aWMvaXNzdWVzIn0saG9tZXBhZ2U6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L2VsbGlwdGljIixkZXZEZXBlbmRlbmNpZXM6e2JyZnM6Il4xLjQuMyIsY292ZXJhbGxzOiJeMi4xMS4zIixncnVudDoiXjAuNC41IiwiZ3J1bnQtYnJvd3NlcmlmeSI6Il41LjAuMCIsImdydW50LWNsaSI6Il4xLjIuMCIsImdydW50LWNvbnRyaWItY29ubmVjdCI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItY29weSI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItdWdsaWZ5IjoiXjEuMC4xIiwiZ3J1bnQtbW9jaGEtaXN0YW5idWwiOiJeMy4wLjEiLCJncnVudC1zYXVjZWxhYnMiOiJeOC42LjIiLGlzdGFuYnVsOiJeMC40LjIiLGpzY3M6Il4yLjkuMCIsanNoaW50OiJeMi42LjAiLG1vY2hhOiJeMi4xLjAifSxkZXBlbmRlbmNpZXM6eyJibi5qcyI6Il40LjQuMCIsYnJvcmFuZDoiXjEuMC4xIiwiaGFzaC5qcyI6Il4xLjAuMCIsImhtYWMtZHJiZyI6Il4xLjAuMCIsaW5oZXJpdHM6Il4yLjAuMSIsIm1pbmltYWxpc3RpYy1hc3NlcnQiOiJeMS4wLjAiLCJtaW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzIjoiXjEuMC4wIn0sX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lbGxpcHRpYy8tL2VsbGlwdGljLTYuNC4xLnRneiIsX2ludGVncml0eToic2hhNTEyLUJzWEx6NXNxWDhPSGNzaDdDcUJNenR5WEFSbUdRM0xXUHRHakppNkRpSkhxNUMvcXZpOVAzT3Fnc3dLU0RmdGJ1OCtJb0kvUURUQW0yZkZuUTlTWlNRPT0iLF9mcm9tOiJlbGxpcHRpY0A2LjQuMSJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWUscj1uKDMpLG89bigxNCkscz1uKDEwNik7aS5hc3NlcnQ9byxpLnRvQXJyYXk9cy50b0FycmF5LGkuemVybzI9cy56ZXJvMixpLnRvSGV4PXMudG9IZXgsaS5lbmNvZGU9cy5lbmNvZGUsaS5nZXROQUY9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT0xPDxlKzEscj10LmNsb25lKCk7ci5jbXBuKDEpPj0wOyl7dmFyIG87aWYoci5pc09kZCgpKXt2YXIgcz1yLmFuZGxuKGktMSk7bz1zPihpPj4xKS0xPyhpPj4xKS1zOnMsci5pc3VibihvKX1lbHNlIG89MDtuLnB1c2gobyk7Zm9yKHZhciBhPTAhPT1yLmNtcG4oMCkmJjA9PT1yLmFuZGxuKGktMSk/ZSsxOjEsdT0xO3U8YTt1Kyspbi5wdXNoKDApO3IuaXVzaHJuKGEpfXJldHVybiBufSxpLmdldEpTRj1mdW5jdGlvbih0LGUpe3ZhciBuPVtbXSxbXV07dD10LmNsb25lKCksZT1lLmNsb25lKCk7Zm9yKHZhciBpPTAscj0wO3QuY21wbigtaSk+MHx8ZS5jbXBuKC1yKT4wOyl7dmFyIG8scyxhLHU9dC5hbmRsbigzKStpJjMsYz1lLmFuZGxuKDMpK3ImMzszPT09dSYmKHU9LTEpLDM9PT1jJiYoYz0tMSksbz0wPT0oMSZ1KT8wOjMhPShhPXQuYW5kbG4oNykraSY3KSYmNSE9PWF8fDIhPT1jP3U6LXUsblswXS5wdXNoKG8pLHM9MD09KDEmYyk/MDozIT0oYT1lLmFuZGxuKDcpK3ImNykmJjUhPT1hfHwyIT09dT9jOi1jLG5bMV0ucHVzaChzKSwyKmk9PT1vKzEmJihpPTEtaSksMipyPT09cysxJiYocj0xLXIpLHQuaXVzaHJuKDEpLGUuaXVzaHJuKDEpfXJldHVybiBufSxpLmNhY2hlZFByb3BlcnR5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0iXyIrZTt0LnByb3RvdHlwZVtlXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW2ldP3RoaXNbaV06dGhpc1tpXT1uLmNhbGwodGhpcyl9fSxpLnBhcnNlQnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2kudG9BcnJheSh0LCJoZXgiKTp0fSxpLmludEZyb21MRT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIodCwiaGV4IiwibGUiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5nZXROQUYscz1yLmdldEpTRixhPXIuYXNzZXJ0O2Z1bmN0aW9uIHUodCxlKXt0aGlzLnR5cGU9dCx0aGlzLnA9bmV3IGkoZS5wLDE2KSx0aGlzLnJlZD1lLnByaW1lP2kucmVkKGUucHJpbWUpOmkubW9udCh0aGlzLnApLHRoaXMuemVybz1uZXcgaSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IGkoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBpKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLm49ZS5uJiZuZXcgaShlLm4sMTYpLHRoaXMuZz1lLmcmJnRoaXMucG9pbnRGcm9tSlNPTihlLmcsZS5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpO3ZhciBuPXRoaXMubiYmdGhpcy5wLmRpdih0aGlzLm4pOyFufHxuLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIGModCxlKXt0aGlzLmN1cnZlPXQsdGhpcy50eXBlPWUsdGhpcy5wcmVjb21wdXRlZD1udWxsfXQuZXhwb3J0cz11LHUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sdS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSx1LnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24odCxlKXthKHQucHJlY29tcHV0ZWQpO3ZhciBuPXQuX2dldERvdWJsZXMoKSxpPW8oZSwxKSxyPSgxPDxuLnN0ZXArMSktKG4uc3RlcCUyPT0wPzI6MSk7ci89Mztmb3IodmFyIHM9W10sdT0wO3U8aS5sZW5ndGg7dSs9bi5zdGVwKXt2YXIgYz0wO2ZvcihlPXUrbi5zdGVwLTE7ZT49dTtlLS0pYz0oYzw8MSkraVtlXTtzLnB1c2goYyl9Zm9yKHZhciBoPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxsPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxkPXI7ZD4wO2QtLSl7Zm9yKHU9MDt1PHMubGVuZ3RoO3UrKyl7KGM9c1t1XSk9PT1kP2w9bC5taXhlZEFkZChuLnBvaW50c1t1XSk6Yz09PS1kJiYobD1sLm1peGVkQWRkKG4ucG9pbnRzW3VdLm5lZygpKSl9aD1oLmFkZChsKX1yZXR1cm4gaC50b1AoKX0sdS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24odCxlKXt2YXIgbj00LGk9dC5fZ2V0TkFGUG9pbnRzKG4pO249aS53bmQ7Zm9yKHZhciByPWkucG9pbnRzLHM9byhlLG4pLHU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLGM9cy5sZW5ndGgtMTtjPj0wO2MtLSl7Zm9yKGU9MDtjPj0wJiYwPT09c1tjXTtjLS0pZSsrO2lmKGM+PTAmJmUrKyx1PXUuZGJscChlKSxjPDApYnJlYWs7dmFyIGg9c1tjXTthKDAhPT1oKSx1PSJhZmZpbmUiPT09dC50eXBlP2g+MD91Lm1peGVkQWRkKHJbaC0xPj4xXSk6dS5taXhlZEFkZChyWy1oLTE+PjFdLm5lZygpKTpoPjA/dS5hZGQocltoLTE+PjFdKTp1LmFkZChyWy1oLTE+PjFdLm5lZygpKX1yZXR1cm4iYWZmaW5lIj09PXQudHlwZT91LnRvUCgpOnV9LHUucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuLGkscil7Zm9yKHZhciBhPXRoaXMuX3duYWZUMSx1PXRoaXMuX3duYWZUMixjPXRoaXMuX3duYWZUMyxoPTAsbD0wO2w8aTtsKyspe3ZhciBkPShFPWVbbF0pLl9nZXROQUZQb2ludHModCk7YVtsXT1kLnduZCx1W2xdPWQucG9pbnRzfWZvcihsPWktMTtsPj0xO2wtPTIpe3ZhciBmPWwtMSxwPWw7aWYoMT09PWFbZl0mJjE9PT1hW3BdKXt2YXIgbT1bZVtmXSxudWxsLG51bGwsZVtwXV07MD09PWVbZl0ueS5jbXAoZVtwXS55KT8obVsxXT1lW2ZdLmFkZChlW3BdKSxtWzJdPWVbZl0udG9KKCkubWl4ZWRBZGQoZVtwXS5uZWcoKSkpOjA9PT1lW2ZdLnkuY21wKGVbcF0ueS5yZWROZWcoKSk/KG1bMV09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdKSxtWzJdPWVbZl0uYWRkKGVbcF0ubmVnKCkpKToobVsxXT1lW2ZdLnRvSigpLm1peGVkQWRkKGVbcF0pLG1bMl09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdLm5lZygpKSk7dmFyIGc9Wy0zLC0xLC01LC03LDAsNyw1LDEsM10sdj1zKG5bZl0sbltwXSk7aD1NYXRoLm1heCh2WzBdLmxlbmd0aCxoKSxjW2ZdPW5ldyBBcnJheShoKSxjW3BdPW5ldyBBcnJheShoKTtmb3IodmFyIGI9MDtiPGg7YisrKXt2YXIgeT0wfHZbMF1bYl0sXz0wfHZbMV1bYl07Y1tmXVtiXT1nWzMqKHkrMSkrKF8rMSldLGNbcF1bYl09MCx1W2ZdPW19fWVsc2UgY1tmXT1vKG5bZl0sYVtmXSksY1twXT1vKG5bcF0sYVtwXSksaD1NYXRoLm1heChjW2ZdLmxlbmd0aCxoKSxoPU1hdGgubWF4KGNbcF0ubGVuZ3RoLGgpfXZhciB3PXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSx4PXRoaXMuX3duYWZUNDtmb3IobD1oO2w+PTA7bC0tKXtmb3IodmFyIE09MDtsPj0wOyl7dmFyIFM9ITA7Zm9yKGI9MDtiPGk7YisrKXhbYl09MHxjW2JdW2xdLDAhPT14W2JdJiYoUz0hMSk7aWYoIVMpYnJlYWs7TSsrLGwtLX1pZihsPj0wJiZNKyssdz13LmRibHAoTSksbDwwKWJyZWFrO2ZvcihiPTA7YjxpO2IrKyl7dmFyIEUsQT14W2JdOzAhPT1BJiYoQT4wP0U9dVtiXVtBLTE+PjFdOkE8MCYmKEU9dVtiXVstQS0xPj4xXS5uZWcoKSksdz0iYWZmaW5lIj09PUUudHlwZT93Lm1peGVkQWRkKEUpOncuYWRkKEUpKX19Zm9yKGw9MDtsPGk7bCsrKXVbbF09bnVsbDtyZXR1cm4gcj93OncudG9QKCl9LHUuQmFzZVBvaW50PWMsYy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3Q9ci50b0FycmF5KHQsZSk7dmFyIG49dGhpcy5wLmJ5dGVMZW5ndGgoKTtpZigoND09PXRbMF18fDY9PT10WzBdfHw3PT09dFswXSkmJnQubGVuZ3RoLTE9PTIqbilyZXR1cm4gNj09PXRbMF0/YSh0W3QubGVuZ3RoLTFdJTI9PTApOjc9PT10WzBdJiZhKHRbdC5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludCh0LnNsaWNlKDEsMStuKSx0LnNsaWNlKDErbiwxKzIqbikpO2lmKCgyPT09dFswXXx8Mz09PXRbMF0pJiZ0Lmxlbmd0aC0xPT09bilyZXR1cm4gdGhpcy5wb2ludEZyb21YKHQuc2xpY2UoMSwxK24pLDM9PT10WzBdKTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcG9pbnQgZm9ybWF0Iil9LGMucHJvdG90eXBlLmVuY29kZUNvbXByZXNzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZW5jb2RlKHQsITApfSxjLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCksbj10aGlzLmdldFgoKS50b0FycmF5KCJiZSIsZSk7cmV0dXJuIHQ/W3RoaXMuZ2V0WSgpLmlzRXZlbigpPzI6M10uY29uY2F0KG4pOls0XS5jb25jYXQobix0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsZSkpfSxjLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5lbmNvZGUodGhpcy5fZW5jb2RlKGUpLHQpfSxjLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIHRoaXM7dmFyIGU9e2RvdWJsZXM6bnVsbCxuYWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBlLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksZS5kb3VibGVzPXRoaXMuX2dldERvdWJsZXMoNCx0KSxlLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9ZSx0aGlzfSxjLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbih0KXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgZT10aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7cmV0dXJuISFlJiZlLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgodC5iaXRMZW5ndGgoKSsxKS9lLnN0ZXApfSxjLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlvbih0LGUpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgbj1bdGhpc10saT10aGlzLHI9MDtyPGU7cis9dCl7Zm9yKHZhciBvPTA7bzx0O28rKylpPWkuZGJsKCk7bi5wdXNoKGkpfXJldHVybntzdGVwOnQscG9pbnRzOm59fSxjLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQubmFmKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtmb3IodmFyIGU9W3RoaXNdLG49KDE8PHQpLTEsaT0xPT09bj9udWxsOnRoaXMuZGJsKCkscj0xO3I8bjtyKyspZVtyXT1lW3ItMV0uYWRkKGkpO3JldHVybnt3bmQ6dCxwb2ludHM6ZX19LGMucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGMucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsbj0wO248dDtuKyspZT1lLmRibCgpO3JldHVybiBlfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQ4KSxyPW4oMTApLG89bigzKSxzPW4oMCksYT1pLmJhc2UsdT1yLnV0aWxzLmFzc2VydDtmdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLCJzaG9ydCIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgbyh0LmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKHQpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIGgodCxlLG4saSl7YS5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsImFmZmluZSIpLG51bGw9PT1lJiZudWxsPT09bj8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhpcy5pbmY9ITApOih0aGlzLng9bmV3IG8oZSwxNiksdGhpcy55PW5ldyBvKG4sMTYpLGkmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9ZnVuY3Rpb24gbCh0LGUsbixpKXthLkJhc2VQb2ludC5jYWxsKHRoaXMsdCwiamFjb2JpYW4iKSxudWxsPT09ZSYmbnVsbD09PW4mJm51bGw9PT1pPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgbygwKSk6KHRoaXMueD1uZXcgbyhlLDE2KSx0aGlzLnk9bmV3IG8obiwxNiksdGhpcy56PW5ldyBvKGksMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24odCl7aWYodGhpcy56ZXJvQSYmdGhpcy5nJiZ0aGlzLm4mJjE9PT10aGlzLnAubW9kbigzKSl7dmFyIGUsbjtpZih0LmJldGEpZT1uZXcgbyh0LmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKTtlbHNle3ZhciBpPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO2U9KGU9aVswXS5jbXAoaVsxXSk8MD9pWzBdOmlbMV0pLnRvUmVkKHRoaXMucmVkKX1pZih0LmxhbWJkYSluPW5ldyBvKHQubGFtYmRhLDE2KTtlbHNle3ZhciByPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKHJbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChlKSk/bj1yWzBdOihuPXJbMV0sdSgwPT09dGhpcy5nLm11bChuKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoZSkpKSl9cmV0dXJue2JldGE6ZSxsYW1iZGE6bixiYXNpczp0LmJhc2lzP3QuYmFzaXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybnthOm5ldyBvKHQuYSwxNiksYjpuZXcgbyh0LmIsMTYpfX0pOnRoaXMuX2dldEVuZG9CYXNpcyhuKX19fSxjLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ9PT10aGlzLnA/dGhpcy5yZWQ6by5tb250KHQpLG49bmV3IG8oMikudG9SZWQoZSkucmVkSW52bSgpLGk9bi5yZWROZWcoKSxyPW5ldyBvKDMpLnRvUmVkKGUpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwobik7cmV0dXJuW2kucmVkQWRkKHIpLmZyb21SZWQoKSxpLnJlZFN1YihyKS5mcm9tUmVkKCldfSxjLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuLGkscixzLGEsdSxjLGgsbD10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLGQ9dCxmPXRoaXMubi5jbG9uZSgpLHA9bmV3IG8oMSksbT1uZXcgbygwKSxnPW5ldyBvKDApLHY9bmV3IG8oMSksYj0wOzAhPT1kLmNtcG4oMCk7KXt2YXIgeT1mLmRpdihkKTtjPWYuc3ViKHkubXVsKGQpKSxoPWcuc3ViKHkubXVsKHApKTt2YXIgXz12LnN1Yih5Lm11bChtKSk7aWYoIWkmJmMuY21wKGwpPDApZT11Lm5lZygpLG49cCxpPWMubmVnKCkscj1oO2Vsc2UgaWYoaSYmMj09KytiKWJyZWFrO3U9YyxmPWQsZD1jLGc9cCxwPWgsdj1tLG09X31zPWMubmVnKCksYT1oO3ZhciB3PWkuc3FyKCkuYWRkKHIuc3FyKCkpO3JldHVybiBzLnNxcigpLmFkZChhLnNxcigpKS5jbXAodyk+PTAmJihzPWUsYT1uKSxpLm5lZ2F0aXZlJiYoaT1pLm5lZygpLHI9ci5uZWcoKSkscy5uZWdhdGl2ZSYmKHM9cy5uZWcoKSxhPWEubmVnKCkpLFt7YTppLGI6cn0se2E6cyxiOmF9XX0sYy5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVuZG8uYmFzaXMsbj1lWzBdLGk9ZVsxXSxyPWkuYi5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxvPW4uYi5uZWcoKS5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxzPXIubXVsKG4uYSksYT1vLm11bChpLmEpLHU9ci5tdWwobi5iKSxjPW8ubXVsKGkuYik7cmV0dXJue2sxOnQuc3ViKHMpLnN1YihhKSxrMjp1LmFkZChjKS5uZWcoKX19LGMucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24odCxlKXsodD1uZXcgbyh0LDE2KSkucmVkfHwodD10LnRvUmVkKHRoaXMucmVkKSk7dmFyIG49dC5yZWRTcXIoKS5yZWRNdWwodCkucmVkSUFkZCh0LnJlZE11bCh0aGlzLmEpKS5yZWRJQWRkKHRoaXMuYiksaT1uLnJlZFNxcnQoKTtpZigwIT09aS5yZWRTcXIoKS5yZWRTdWIobikuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIHI9aS5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oZSYmIXJ8fCFlJiZyKSYmKGk9aS5yZWROZWcoKSksdGhpcy5wb2ludCh0LGkpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmluZilyZXR1cm4hMDt2YXIgZT10Lngsbj10LnksaT10aGlzLmEucmVkTXVsKGUpLHI9ZS5yZWRTcXIoKS5yZWRNdWwoZSkucmVkSUFkZChpKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1uLnJlZFNxcigpLnJlZElTdWIocikuY21wbigwKX0sYy5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9dGhpcy5fZW5kb1duYWZUMSxyPXRoaXMuX2VuZG9XbmFmVDIsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10aGlzLl9lbmRvU3BsaXQoZVtvXSksYT10W29dLHU9YS5fZ2V0QmV0YSgpO3MuazEubmVnYXRpdmUmJihzLmsxLmluZWcoKSxhPWEubmVnKCEwKSkscy5rMi5uZWdhdGl2ZSYmKHMuazIuaW5lZygpLHU9dS5uZWcoITApKSxpWzIqb109YSxpWzIqbysxXT11LHJbMipvXT1zLmsxLHJbMipvKzFdPXMuazJ9Zm9yKHZhciBjPXRoaXMuX3duYWZNdWxBZGQoMSxpLHIsMipvLG4pLGg9MDtoPDIqbztoKyspaVtoXT1udWxsLHJbaF09bnVsbDtyZXR1cm4gY30scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBoKHRoaXMsdCxlLG4pfSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGguZnJvbUpTT04odGhpcyx0LGUpfSxoLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5kbyl7dmFyIHQ9dGhpcy5wcmVjb21wdXRlZDtpZih0JiZ0LmJldGEpcmV0dXJuIHQuYmV0YTt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYodCl7dmFyIG49dGhpcy5jdXJ2ZSxpPWZ1bmN0aW9uKHQpe3JldHVybiBuLnBvaW50KHQueC5yZWRNdWwobi5lbmRvLmJldGEpLHQueSl9O3QuYmV0YT1lLGUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6dC5uYWYmJnt3bmQ6dC5uYWYud25kLHBvaW50czp0Lm5hZi5wb2ludHMubWFwKGkpfSxkb3VibGVzOnQuZG91YmxlcyYme3N0ZXA6dC5kb3VibGVzLnN0ZXAscG9pbnRzOnQuZG91Ymxlcy5wb2ludHMubWFwKGkpfX19cmV0dXJuIGV9fSxoLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIGUmJihlPUpTT04ucGFyc2UoZSkpO3ZhciBpPXQucG9pbnQoZVswXSxlWzFdLG4pO2lmKCFlWzJdKXJldHVybiBpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQucG9pbnQoZVswXSxlWzFdLG4pfXZhciBvPWVbMl07cmV0dXJuIGkucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOm8uZG91YmxlcyYme3N0ZXA6by5kb3VibGVzLnN0ZXAscG9pbnRzOltpXS5jb25jYXQoby5kb3VibGVzLnBvaW50cy5tYXAocikpfSxuYWY6by5uYWYmJnt3bmQ6by5uYWYud25kLHBvaW50czpbaV0uY29uY2F0KG8ubmFmLnBvaW50cy5tYXAocikpfX0saX0saC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxoLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7aWYodGhpcy5pbmYpcmV0dXJuIHQ7aWYodC5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcSh0KSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKHQpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAodC54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBlPXRoaXMueS5yZWRTdWIodC55KTswIT09ZS5jbXBuKDApJiYoZT1lLnJlZE11bCh0aGlzLngucmVkU3ViKHQueCkucmVkSW52bSgpKSk7dmFyIG49ZS5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1Yih0LngpLGk9ZS5yZWRNdWwodGhpcy54LnJlZFN1YihuKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGgucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciB0PXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09dC5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGU9dGhpcy5jdXJ2ZS5hLG49dGhpcy54LnJlZFNxcigpLGk9dC5yZWRJbnZtKCkscj1uLnJlZEFkZChuKS5yZWRJQWRkKG4pLnJlZElBZGQoZSkucmVkTXVsKGkpLG89ci5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSkscz1yLnJlZE11bCh0aGlzLngucmVkU3ViKG8pKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQobyxzKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9LGgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uZXcgbyh0LDE2KSx0aGlzLl9oYXNEb3VibGVzKHQpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsdCk6dGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKFt0aGlzXSxbdF0pOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyx0KX0saC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIpfSxoLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIsITApfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fHRoaXMuaW5mPT09dC5pbmYmJih0aGlzLmluZnx8MD09PXRoaXMueC5jbXAodC54KSYmMD09PXRoaXMueS5jbXAodC55KSl9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCkpO2lmKHQmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciBuPXRoaXMucHJlY29tcHV0ZWQsaT1mdW5jdGlvbih0KXtyZXR1cm4gdC5uZWcoKX07ZS5wcmVjb21wdXRlZD17bmFmOm4ubmFmJiZ7d25kOm4ubmFmLnduZCxwb2ludHM6bi5uYWYucG9pbnRzLm1hcChpKX0sZG91YmxlczpuLmRvdWJsZXMmJntzdGVwOm4uZG91Ymxlcy5zdGVwLHBvaW50czpuLmRvdWJsZXMucG9pbnRzLm1hcChpKX19fXJldHVybiBlfSxoLnByb3RvdHlwZS50b0o9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmY/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpfSxzKGwsYS5CYXNlUG9pbnQpLGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBsKHRoaXMsdCxlLG4pfSxsLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciB0PXRoaXMuei5yZWRJbnZtKCksZT10LnJlZFNxcigpLG49dGhpcy54LnJlZE11bChlKSxpPXRoaXMueS5yZWRNdWwoZSkucmVkTXVsKHQpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGwucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LGwucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdDtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgZT10LnoucmVkU3FyKCksbj10aGlzLnoucmVkU3FyKCksaT10aGlzLngucmVkTXVsKGUpLHI9dC54LnJlZE11bChuKSxvPXRoaXMueS5yZWRNdWwoZS5yZWRNdWwodC56KSkscz10LnkucmVkTXVsKG4ucmVkTXVsKHRoaXMueikpLGE9aS5yZWRTdWIociksdT1vLnJlZFN1YihzKTtpZigwPT09YS5jbXBuKDApKXJldHVybiAwIT09dS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBjPWEucmVkU3FyKCksaD1jLnJlZE11bChhKSxsPWkucmVkTXVsKGMpLGQ9dS5yZWRTcXIoKS5yZWRJQWRkKGgpLnJlZElTdWIobCkucmVkSVN1YihsKSxmPXUucmVkTXVsKGwucmVkSVN1YihkKSkucmVkSVN1YihvLnJlZE11bChoKSkscD10aGlzLnoucmVkTXVsKHQueikucmVkTXVsKGEpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChkLGYscCl9LGwucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0LnRvSigpO2lmKHQuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXRoaXMueCxpPXQueC5yZWRNdWwoZSkscj10aGlzLnksbz10LnkucmVkTXVsKGUpLnJlZE11bCh0aGlzLnopLHM9bi5yZWRTdWIoaSksYT1yLnJlZFN1YihvKTtpZigwPT09cy5jbXBuKDApKXJldHVybiAwIT09YS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciB1PXMucmVkU3FyKCksYz11LnJlZE11bChzKSxoPW4ucmVkTXVsKHUpLGw9YS5yZWRTcXIoKS5yZWRJQWRkKGMpLnJlZElTdWIoaCkucmVkSVN1YihoKSxkPWEucmVkTXVsKGgucmVkSVN1YihsKSkucmVkSVN1YihyLnJlZE11bChjKSksZj10aGlzLnoucmVkTXVsKHMpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChsLGQsZil9LGwucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe2Zvcih2YXIgZT10aGlzLG49MDtuPHQ7bisrKWU9ZS5kYmwoKTtyZXR1cm4gZX12YXIgaT10aGlzLmN1cnZlLmEscj10aGlzLmN1cnZlLnRpbnYsbz10aGlzLngscz10aGlzLnksYT10aGlzLnosdT1hLnJlZFNxcigpLnJlZFNxcigpLGM9cy5yZWRBZGQocyk7Zm9yKG49MDtuPHQ7bisrKXt2YXIgaD1vLnJlZFNxcigpLGw9Yy5yZWRTcXIoKSxkPWwucmVkU3FyKCksZj1oLnJlZEFkZChoKS5yZWRJQWRkKGgpLnJlZElBZGQoaS5yZWRNdWwodSkpLHA9by5yZWRNdWwobCksbT1mLnJlZFNxcigpLnJlZElTdWIocC5yZWRBZGQocCkpLGc9cC5yZWRJU3ViKG0pLHY9Zi5yZWRNdWwoZyk7dj12LnJlZElBZGQodikucmVkSVN1YihkKTt2YXIgYj1jLnJlZE11bChhKTtuKzE8dCYmKHU9dS5yZWRNdWwoZCkpLG89bSxhPWIsYz12fXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChvLGMucmVkTXVsKHIpLGEpfSxsLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxsLnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbigpe3ZhciB0LGUsbjtpZih0aGlzLnpPbmUpe3ZhciBpPXRoaXMueC5yZWRTcXIoKSxyPXRoaXMueS5yZWRTcXIoKSxvPXIucmVkU3FyKCkscz10aGlzLngucmVkQWRkKHIpLnJlZFNxcigpLnJlZElTdWIoaSkucmVkSVN1YihvKTtzPXMucmVkSUFkZChzKTt2YXIgYT1pLnJlZEFkZChpKS5yZWRJQWRkKGkpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyksYz1vLnJlZElBZGQobyk7Yz0oYz1jLnJlZElBZGQoYykpLnJlZElBZGQoYyksdD11LGU9YS5yZWRNdWwocy5yZWRJU3ViKHUpKS5yZWRJU3ViKGMpLG49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGg9dGhpcy54LnJlZFNxcigpLGw9dGhpcy55LnJlZFNxcigpLGQ9bC5yZWRTcXIoKSxmPXRoaXMueC5yZWRBZGQobCkucmVkU3FyKCkucmVkSVN1YihoKS5yZWRJU3ViKGQpO2Y9Zi5yZWRJQWRkKGYpO3ZhciBwPWgucmVkQWRkKGgpLnJlZElBZGQoaCksbT1wLnJlZFNxcigpLGc9ZC5yZWRJQWRkKGQpO2c9KGc9Zy5yZWRJQWRkKGcpKS5yZWRJQWRkKGcpLHQ9bS5yZWRJU3ViKGYpLnJlZElTdWIoZiksZT1wLnJlZE11bChmLnJlZElTdWIodCkpLnJlZElTdWIoZyksbj0obj10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQobil9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX3RocmVlRGJsPWZ1bmN0aW9uKCl7dmFyIHQsZSxuO2lmKHRoaXMuek9uZSl7dmFyIGk9dGhpcy54LnJlZFNxcigpLHI9dGhpcy55LnJlZFNxcigpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQocikucmVkU3FyKCkucmVkSVN1YihpKS5yZWRJU3ViKG8pO3M9cy5yZWRJQWRkKHMpO3ZhciBhPWkucmVkQWRkKGkpLnJlZElBZGQoaSkucmVkSUFkZCh0aGlzLmN1cnZlLmEpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7dD11O3ZhciBjPW8ucmVkSUFkZChvKTtjPShjPWMucmVkSUFkZChjKSkucmVkSUFkZChjKSxlPWEucmVkTXVsKHMucmVkSVN1Yih1KSkucmVkSVN1YihjKSxuPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBoPXRoaXMuei5yZWRTcXIoKSxsPXRoaXMueS5yZWRTcXIoKSxkPXRoaXMueC5yZWRNdWwobCksZj10aGlzLngucmVkU3ViKGgpLnJlZE11bCh0aGlzLngucmVkQWRkKGgpKTtmPWYucmVkQWRkKGYpLnJlZElBZGQoZik7dmFyIHA9ZC5yZWRJQWRkKGQpLG09KHA9cC5yZWRJQWRkKHApKS5yZWRBZGQocCk7dD1mLnJlZFNxcigpLnJlZElTdWIobSksbj10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihsKS5yZWRJU3ViKGgpO3ZhciBnPWwucmVkU3FyKCk7Zz0oZz0oZz1nLnJlZElBZGQoZykpLnJlZElBZGQoZykpLnJlZElBZGQoZyksZT1mLnJlZE11bChwLnJlZElTdWIodCkpLnJlZElTdWIoZyl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY3VydmUuYSxlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPWkucmVkU3FyKCkucmVkU3FyKCksbz1lLnJlZFNxcigpLHM9bi5yZWRTcXIoKSxhPW8ucmVkQWRkKG8pLnJlZElBZGQobykucmVkSUFkZCh0LnJlZE11bChyKSksdT1lLnJlZEFkZChlKSxjPSh1PXUucmVkSUFkZCh1KSkucmVkTXVsKHMpLGg9YS5yZWRTcXIoKS5yZWRJU3ViKGMucmVkQWRkKGMpKSxsPWMucmVkSVN1YihoKSxkPXMucmVkU3FyKCk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9YS5yZWRNdWwobCkucmVkSVN1YihkKSxwPW4ucmVkQWRkKG4pLnJlZE11bChpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaCxmLHApfSxsLnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJsKCkuYWRkKHRoaXMpO3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKSxpPWUucmVkU3FyKCkscj10LnJlZEFkZCh0KS5yZWRJQWRkKHQpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQoZSkucmVkU3FyKCkucmVkSVN1Yih0KS5yZWRJU3ViKGkpLGE9KHM9KHM9KHM9cy5yZWRJQWRkKHMpKS5yZWRBZGQocykucmVkSUFkZChzKSkucmVkSVN1YihvKSkucmVkU3FyKCksdT1pLnJlZElBZGQoaSk7dT0odT0odT11LnJlZElBZGQodSkpLnJlZElBZGQodSkpLnJlZElBZGQodSk7dmFyIGM9ci5yZWRJQWRkKHMpLnJlZFNxcigpLnJlZElTdWIobykucmVkSVN1YihhKS5yZWRJU3ViKHUpLGg9ZS5yZWRNdWwoYyk7aD0oaD1oLnJlZElBZGQoaCkpLnJlZElBZGQoaCk7dmFyIGw9dGhpcy54LnJlZE11bChhKS5yZWRJU3ViKGgpO2w9KGw9bC5yZWRJQWRkKGwpKS5yZWRJQWRkKGwpO3ZhciBkPXRoaXMueS5yZWRNdWwoYy5yZWRNdWwodS5yZWRJU3ViKGMpKS5yZWRJU3ViKHMucmVkTXVsKGEpKSk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9dGhpcy56LnJlZEFkZChzKS5yZWRTcXIoKS5yZWRJU3ViKG4pLnJlZElTdWIoYSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGwsZCxmKX0sbC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bmV3IG8odCxlKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGwucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe2lmKCJhZmZpbmUiPT09dC50eXBlKXJldHVybiB0aGlzLmVxKHQudG9KKCkpO2lmKHRoaXM9PT10KXJldHVybiEwO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChuKS5yZWRJU3ViKHQueC5yZWRNdWwoZSkpLmNtcG4oMCkpcmV0dXJuITE7dmFyIGk9ZS5yZWRNdWwodGhpcy56KSxyPW4ucmVkTXVsKHQueik7cmV0dXJuIDA9PT10aGlzLnkucmVkTXVsKHIpLnJlZElTdWIodC55LnJlZE11bChpKSkuY21wbigwKX0sbC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChlKTtpZigwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMDtmb3IodmFyIGk9dC5jbG9uZSgpLHI9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bChlKTs7KXtpZihpLmlhZGQodGhpcy5jdXJ2ZS5uKSxpLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKG4ucmVkSUFkZChyKSwwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMH19LGwucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBKUG9pbnQgSW5maW5pdHk+IjoiPEVDIEpQb2ludCB4OiAiK3RoaXMueC50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnoudG9TdHJpbmcoMTYsMikrIj4ifSxsLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0OCkscj1uKDMpLG89bigwKSxzPWkuYmFzZSxhPW4oMTApLnV0aWxzO2Z1bmN0aW9uIHUodCl7cy5jYWxsKHRoaXMsIm1vbnQiLHQpLHRoaXMuYT1uZXcgcih0LmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IHIodC5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgcig0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyByKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gYyh0LGUsbil7cy5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsInByb2plY3RpdmUiKSxudWxsPT09ZSYmbnVsbD09PW4/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvKToodGhpcy54PW5ldyByKGUsMTYpLHRoaXMuej1uZXcgcihuLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfW8odSxzKSx0LmV4cG9ydHM9dSx1LnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10Lm5vcm1hbGl6ZSgpLngsbj1lLnJlZFNxcigpLGk9bi5yZWRNdWwoZSkucmVkQWRkKG4ucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChlKTtyZXR1cm4gMD09PWkucmVkU3FydCgpLnJlZFNxcigpLmNtcChpKX0sbyhjLHMuQmFzZVBvaW50KSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnBvaW50KGEudG9BcnJheSh0LGUpLDEpfSx1LnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgYyh0aGlzLHQsZSl9LHUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbUpTT04odGhpcyx0KX0sYy5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sYy5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LGMuZnJvbUpTT049ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGModCxlWzBdLGVbMV18fHQub25lKX0sYy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxjLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sYy5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLGU9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLG49dC5yZWRTdWIoZSksaT10LnJlZE11bChlKSxyPW4ucmVkTXVsKGUucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChuKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGkscil9LGMucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLngucmVkQWRkKHRoaXMueiksaT10aGlzLngucmVkU3ViKHRoaXMueikscj10LngucmVkQWRkKHQueiksbz10LngucmVkU3ViKHQueikucmVkTXVsKG4pLHM9ci5yZWRNdWwoaSksYT1lLnoucmVkTXVsKG8ucmVkQWRkKHMpLnJlZFNxcigpKSx1PWUueC5yZWRNdWwoby5yZWRJU3ViKHMpLnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChhLHUpfSxjLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY2xvbmUoKSxuPXRoaXMsaT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCkscj1bXTswIT09ZS5jbXBuKDApO2UuaXVzaHJuKDEpKXIucHVzaChlLmFuZGxuKDEpKTtmb3IodmFyIG89ci5sZW5ndGgtMTtvPj0wO28tLSkwPT09cltvXT8obj1uLmRpZmZBZGQoaSx0aGlzKSxpPWkuZGJsKCkpOihpPW4uZGlmZkFkZChpLHRoaXMpLG49bi5kYmwoKSk7cmV0dXJuIGl9LGMucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxjLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcCh0LmdldFgoKSl9LGMucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpc30sYy5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oNDgpLHI9bigxMCksbz1uKDMpLHM9bigwKSxhPWkuYmFzZSx1PXIudXRpbHMuYXNzZXJ0O2Z1bmN0aW9uIGModCl7dGhpcy50d2lzdGVkPTEhPSgwfHQuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHx0LmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxhLmNhbGwodGhpcywiZWR3YXJkcyIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IG8odC5jLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5jMj10aGlzLmMucmVkU3FyKCksdGhpcy5kPW5ldyBvKHQuZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLHUoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfHQuYyl9ZnVuY3Rpb24gaCh0LGUsbixpLHIpe2EuQmFzZVBvaW50LmNhbGwodGhpcyx0LCJwcm9qZWN0aXZlIiksbnVsbD09PWUmJm51bGw9PT1uJiZudWxsPT09aT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBvKGUsMTYpLHRoaXMueT1uZXcgbyhuLDE2KSx0aGlzLno9aT9uZXcgbyhpLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9ciYmbmV3IG8ociwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYmKHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1PbmVBP3QucmVkTmVnKCk6dGhpcy5hLnJlZE11bCh0KX0sYy5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub25lQz90OnRoaXMuYy5yZWRNdWwodCl9LGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5wb2ludCh0LGUsbixpKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChuKSkscj10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwobikpLHM9aS5yZWRNdWwoci5yZWRJbnZtKCkpLGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciB1PWEuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKGUmJiF1fHwhZSYmdSkmJihhPWEucmVkTmVnKCkpLHRoaXMucG9pbnQodCxhKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWT1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9bi5yZWRTdWIodGhpcy5jMikscj1uLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5yZWRTdWIodGhpcy5hKSxzPWkucmVkTXVsKHIucmVkSW52bSgpKTtpZigwPT09cy5jbXAodGhpcy56ZXJvKSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sdCl9dmFyIGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiBhLmZyb21SZWQoKS5pc09kZCgpIT09ZSYmKGE9YS5yZWROZWcoKSksdGhpcy5wb2ludChhLHQpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4hMDt0Lm5vcm1hbGl6ZSgpO3ZhciBlPXQueC5yZWRTcXIoKSxuPXQueS5yZWRTcXIoKSxpPWUucmVkTXVsKHRoaXMuYSkucmVkQWRkKG4pLHI9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoZSkucmVkTXVsKG4pKSk7cmV0dXJuIDA9PT1pLmNtcChyKX0scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQpe3JldHVybiBoLmZyb21KU09OKHRoaXMsdCl9LGMucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBuZXcgaCh0aGlzLHQsZSxuLGkpfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBoKHQsZVswXSxlWzFdLGVbMl0pfSxoLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LGgucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhpcy55LmNtcCh0aGlzLmN1cnZlLmMpKX0saC5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKTtuPW4ucmVkSUFkZChuKTt2YXIgaT10aGlzLmN1cnZlLl9tdWxBKHQpLHI9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpLnJlZElTdWIodCkucmVkSVN1YihlKSxvPWkucmVkQWRkKGUpLHM9by5yZWRTdWIobiksYT1pLnJlZFN1YihlKSx1PXIucmVkTXVsKHMpLGM9by5yZWRNdWwoYSksaD1yLnJlZE11bChhKSxsPXMucmVkTXVsKG8pO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHUsYyxsLGgpfSxoLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciB0LGUsbixpPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKSxyPXRoaXMueC5yZWRTcXIoKSxvPXRoaXMueS5yZWRTcXIoKTtpZih0aGlzLmN1cnZlLnR3aXN0ZWQpe3ZhciBzPShjPXRoaXMuY3VydmUuX211bEEocikpLnJlZEFkZChvKTtpZih0aGlzLnpPbmUpdD1pLnJlZFN1YihyKS5yZWRTdWIobykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUudHdvKSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZFNxcigpLnJlZFN1YihzKS5yZWRTdWIocyk7ZWxzZXt2YXIgYT10aGlzLnoucmVkU3FyKCksdT1zLnJlZFN1YihhKS5yZWRJU3ViKGEpO3Q9aS5yZWRTdWIocikucmVkSVN1YihvKS5yZWRNdWwodSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZE11bCh1KX19ZWxzZXt2YXIgYz1yLnJlZEFkZChvKTthPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSx1PWMucmVkU3ViKGEpLnJlZFN1YihhKTt0PXRoaXMuY3VydmUuX211bEMoaS5yZWRJU3ViKGMpKS5yZWRNdWwodSksZT10aGlzLmN1cnZlLl9tdWxDKGMpLnJlZE11bChyLnJlZElTdWIobykpLG49Yy5yZWRNdWwodSl9cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodCxlLG4pfSxoLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0saC5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKHQueS5yZWRTdWIodC54KSksbj10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKHQueS5yZWRBZGQodC54KSksaT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bCh0LnQpLHI9dGhpcy56LnJlZE11bCh0LnoucmVkQWRkKHQueikpLG89bi5yZWRTdWIoZSkscz1yLnJlZFN1YihpKSxhPXIucmVkQWRkKGkpLHU9bi5yZWRBZGQoZSksYz1vLnJlZE11bChzKSxoPWEucmVkTXVsKHUpLGw9by5yZWRNdWwodSksZD1zLnJlZE11bChhKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChjLGgsZCxsKX0saC5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpPXRoaXMuei5yZWRNdWwodC56KSxyPWkucmVkU3FyKCksbz10aGlzLngucmVkTXVsKHQueCkscz10aGlzLnkucmVkTXVsKHQueSksYT10aGlzLmN1cnZlLmQucmVkTXVsKG8pLnJlZE11bChzKSx1PXIucmVkU3ViKGEpLGM9ci5yZWRBZGQoYSksaD10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKHQueC5yZWRBZGQodC55KSkucmVkSVN1YihvKS5yZWRJU3ViKHMpLGw9aS5yZWRNdWwodSkucmVkTXVsKGgpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KGU9aS5yZWRNdWwoYykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUuX211bEEobykpKSxuPXUucmVkTXVsKGMpKTooZT1pLnJlZE11bChjKS5yZWRNdWwocy5yZWRTdWIobykpLG49dGhpcy5jdXJ2ZS5fbXVsQyh1KS5yZWRNdWwoYykpLHRoaXMuY3VydmUucG9pbnQobCxlLG4pfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3Q6dC5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZCh0KTp0aGlzLl9wcm9qQWRkKHQpfSxoLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXModCk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyx0KTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGgucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCExKX0saC5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCEwKX0saC5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHQpLHRoaXMueT10aGlzLnkucmVkTXVsKHQpLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVkTXVsKHQpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LGgucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fDA9PT10aGlzLmdldFgoKS5jbXAodC5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKHQuZ2V0WSgpKX0saC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKDA9PT10aGlzLnguY21wKGUpKXJldHVybiEwO2Zvcih2YXIgbj10LmNsb25lKCksaT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYobi5pYWRkKHRoaXMuY3VydmUubiksbi5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihlLnJlZElBZGQoaSksMD09PXRoaXMueC5jbXAoZSkpcmV0dXJuITB9fSxoLnByb3RvdHlwZS50b1A9aC5wcm90b3R5cGUubm9ybWFsaXplLGgucHJvdG90eXBlLm1peGVkQWRkPWgucHJvdG90eXBlLmFkZH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPWUsbz1uKDcwKSxzPW4oMTApLGE9cy51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gdSh0KXsic2hvcnQiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuc2hvcnQodCk6ImVkd2FyZHMiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuZWR3YXJkcyh0KTp0aGlzLmN1cnZlPW5ldyBzLmN1cnZlLm1vbnQodCksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD10Lmhhc2gsYSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLGEodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlvbiBjKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIG49bmV3IHUoZSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59KSxufX0pfXIuUHJlc2V0Q3VydmU9dSxjKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxjKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxjKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksYygicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOm8uc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pLGMoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDpvLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KSxjKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksYygiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOm8uc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7aT1uKDIwMSl9Y2F0Y2godCl7aT12b2lkIDB9Yygic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6by5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIsbGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsaV19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnNoYTE9bigxOTYpLGUuc2hhMjI0PW4oMTk3KSxlLnNoYTI1Nj1uKDEwOCksZS5zaGEzODQ9bigxOTgpLGUuc2hhNTEyPW4oMTA5KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMzQpLG89bigxMDcpLHM9aS5yb3RsMzIsYT1pLnN1bTMyLHU9aS5zdW0zMl81LGM9by5mdF8xLGg9ci5CbG9ja0hhc2gsbD1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gZCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQpKXJldHVybiBuZXcgZDtoLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9aS5pbmhlcml0cyhkLGgpLHQuZXhwb3J0cz1kLGQuYmxvY2tTaXplPTUxMixkLm91dFNpemU9MTYwLGQuaG1hY1N0cmVuZ3RoPTgwLGQucGFkTGVuZ3RoPTY0LGQucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5XLGk9MDtpPDE2O2krKyluW2ldPXRbZStpXTtmb3IoO2k8bi5sZW5ndGg7aSsrKW5baV09cyhuW2ktM11ebltpLThdXm5baS0xNF1ebltpLTE2XSwxKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0saD10aGlzLmhbMl0sZD10aGlzLmhbM10sZj10aGlzLmhbNF07Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHA9fn4oaS8yMCksbT11KHMociw1KSxjKHAsbyxoLGQpLGYsbltpXSxsW3BdKTtmPWQsZD1oLGg9cyhvLDMwKSxvPXIscj1tfXRoaXMuaFswXT1hKHRoaXMuaFswXSxyKSx0aGlzLmhbMV09YSh0aGlzLmhbMV0sbyksdGhpcy5oWzJdPWEodGhpcy5oWzJdLGgpLHRoaXMuaFszXT1hKHRoaXMuaFszXSxkKSx0aGlzLmhbNF09YSh0aGlzLmhbNF0sZil9LGQucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P2kudG9IZXgzMih0aGlzLmgsImJpZyIpOmkuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA4KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT01MTIsby5vdXRTaXplPTIyNCxvLmhtYWNTdHJlbmd0aD0xOTIsby5wYWRMZW5ndGg9NjQsby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA5KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2MywyNDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4MDIzMSwxNzUwNjAzMDI1LDM2NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT0xMDI0LG8ub3V0U2l6ZT0zODQsby5obWFjU3RyZW5ndGg9MTkyLG8ucGFkTGVuZ3RoPTEyOCxvLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNykscj1uKDM0KSxvPWkucm90bDMyLHM9aS5zdW0zMixhPWkuc3VtMzJfMyx1PWkuc3VtMzJfNCxjPXIuQmxvY2tIYXNoO2Z1bmN0aW9uIGgoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBoKSlyZXR1cm4gbmV3IGg7Yy5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifWZ1bmN0aW9uIGwodCxlLG4saSl7cmV0dXJuIHQ8PTE1P2Vebl5pOnQ8PTMxP2Umbnx+ZSZpOnQ8PTQ3PyhlfH5uKV5pOnQ8PTYzP2UmaXxuJn5pOmVeKG58fmkpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ8PTE1PzA6dDw9MzE/MTUxODUwMDI0OTp0PD00Nz8xODU5Nzc1MzkzOnQ8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOH1mdW5jdGlvbiBmKHQpe3JldHVybiB0PD0xNT8xMzUyODI5OTI2OnQ8PTMxPzE1NDg2MDM2ODQ6dDw9NDc/MTgzNjA3MjY5MTp0PD02Mz8yMDUzOTk0MjE3OjB9aS5pbmhlcml0cyhoLGMpLGUucmlwZW1kMTYwPWgsaC5ibG9ja1NpemU9NTEyLGgub3V0U2l6ZT0xNjAsaC5obWFjU3RyZW5ndGg9MTkyLGgucGFkTGVuZ3RoPTY0LGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5oWzBdLGk9dGhpcy5oWzFdLHI9dGhpcy5oWzJdLGM9dGhpcy5oWzNdLGg9dGhpcy5oWzRdLGI9bix5PWksXz1yLHc9Yyx4PWgsTT0wO008ODA7TSsrKXt2YXIgUz1zKG8odShuLGwoTSxpLHIsYyksdFtwW01dK2VdLGQoTSkpLGdbTV0pLGgpO249aCxoPWMsYz1vKHIsMTApLHI9aSxpPVMsUz1zKG8odShiLGwoNzktTSx5LF8sdyksdFttW01dK2VdLGYoTSkpLHZbTV0pLHgpLGI9eCx4PXcsdz1vKF8sMTApLF89eSx5PVN9Uz1hKHRoaXMuaFsxXSxyLHcpLHRoaXMuaFsxXT1hKHRoaXMuaFsyXSxjLHgpLHRoaXMuaFsyXT1hKHRoaXMuaFszXSxoLGIpLHRoaXMuaFszXT1hKHRoaXMuaFs0XSxuLHkpLHRoaXMuaFs0XT1hKHRoaXMuaFswXSxpLF8pLHRoaXMuaFswXT1TfSxoLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTppLnNwbGl0MzIodGhpcy5oLCJsaXR0bGUiKX07dmFyIHA9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sbT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxnPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSx2PVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8odCxlLG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIG8pKXJldHVybiBuZXcgbyh0LGUsbik7dGhpcy5IYXNoPXQsdGhpcy5ibG9ja1NpemU9dC5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9dC5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KGkudG9BcnJheShlLG4pKX10LmV4cG9ydHM9byxvLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt0Lmxlbmd0aD50aGlzLmJsb2NrU2l6ZSYmKHQ9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh0KS5kaWdlc3QoKSkscih0Lmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgZT10Lmxlbmd0aDtlPHRoaXMuYmxvY2tTaXplO2UrKyl0LnB1c2goMCk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj01NDtmb3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpLGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUodCxlKSx0aGlzfSxvLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMjAzKSxvPW4oMTApLHM9by51dGlscy5hc3NlcnQsYT1uKDIwNCksdT1uKDIwNSk7ZnVuY3Rpb24gYyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGModCk7InN0cmluZyI9PXR5cGVvZiB0JiYocyhvLmN1cnZlcy5oYXNPd25Qcm9wZXJ0eSh0KSwiVW5rbm93biBjdXJ2ZSAiK3QpLHQ9by5jdXJ2ZXNbdF0pLHQgaW5zdGFuY2VvZiBvLmN1cnZlcy5QcmVzZXRDdXJ2ZSYmKHQ9e2N1cnZlOnR9KSx0aGlzLmN1cnZlPXQuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz10LmN1cnZlLmcsdGhpcy5nLnByZWNvbXB1dGUodC5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD10Lmhhc2h8fHQuY3VydmUuaGFzaH10LmV4cG9ydHM9YyxjLnByb3RvdHlwZS5rZXlQYWlyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYSh0aGlzLHQpfSxjLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21Qcml2YXRlKHRoaXMsdCxlKX0sYy5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21QdWJsaWModGhpcyx0LGUpfSxjLnByb3RvdHlwZS5nZW5LZXlQYWlyPWZ1bmN0aW9uKHQpe3R8fCh0PXt9KTtmb3IodmFyIGU9bmV3IHIoe2hhc2g6dGhpcy5oYXNoLHBlcnM6dC5wZXJzLHBlcnNFbmM6dC5wZXJzRW5jfHwidXRmOCIsZW50cm9weTp0LmVudHJvcHl8fG8ucmFuZCh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxlbnRyb3B5RW5jOnQuZW50cm9weSYmdC5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLG49dGhpcy5uLmJ5dGVMZW5ndGgoKSxzPXRoaXMubi5zdWIobmV3IGkoMikpOzspe3ZhciBhPW5ldyBpKGUuZ2VuZXJhdGUobikpO2lmKCEoYS5jbXAocyk+MCkpcmV0dXJuIGEuaWFkZG4oMSksdGhpcy5rZXlGcm9tUHJpdmF0ZShhKX19LGMucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbih0LGUpe3ZhciBuPTgqdC5ieXRlTGVuZ3RoKCktdGhpcy5uLmJpdExlbmd0aCgpO3JldHVybiBuPjAmJih0PXQudXNocm4obikpLCFlJiZ0LmNtcCh0aGlzLm4pPj0wP3Quc3ViKHRoaXMubik6dH0sYy5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUsbixvKXsib2JqZWN0Ij09dHlwZW9mIG4mJihvPW4sbj1udWxsKSxvfHwobz17fSksZT10aGlzLmtleUZyb21Qcml2YXRlKGUsbiksdD10aGlzLl90cnVuY2F0ZVRvTihuZXcgaSh0LDE2KSk7Zm9yKHZhciBzPXRoaXMubi5ieXRlTGVuZ3RoKCksYT1lLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIscyksYz10LnRvQXJyYXkoImJlIixzKSxoPW5ldyByKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OmEsbm9uY2U6YyxwZXJzOm8ucGVycyxwZXJzRW5jOm8ucGVyc0VuY3x8InV0ZjgifSksbD10aGlzLm4uc3ViKG5ldyBpKDEpKSxkPTA7O2QrKyl7dmFyIGY9by5rP28uayhkKTpuZXcgaShoLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChmPXRoaXMuX3RydW5jYXRlVG9OKGYsITApKS5jbXBuKDEpPD0wfHxmLmNtcChsKT49MCkpe3ZhciBwPXRoaXMuZy5tdWwoZik7aWYoIXAuaXNJbmZpbml0eSgpKXt2YXIgbT1wLmdldFgoKSxnPW0udW1vZCh0aGlzLm4pO2lmKDAhPT1nLmNtcG4oMCkpe3ZhciB2PWYuaW52bSh0aGlzLm4pLm11bChnLm11bChlLmdldFByaXZhdGUoKSkuaWFkZCh0KSk7aWYoMCE9PSh2PXYudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgYj0ocC5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09bS5jbXAoZyk/MjowKTtyZXR1cm4gby5jYW5vbmljYWwmJnYuY21wKHRoaXMubmgpPjAmJih2PXRoaXMubi5zdWIodiksYl49MSksbmV3IHUoe3I6ZyxzOnYscmVjb3ZlcnlQYXJhbTpifSl9fX19fX0sYy5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKHQsZSxuLHIpe3Q9dGhpcy5fdHJ1bmNhdGVUb04obmV3IGkodCwxNikpLG49dGhpcy5rZXlGcm9tUHVibGljKG4scik7dmFyIG89KGU9bmV3IHUoZSwiaGV4IikpLnIscz1lLnM7aWYoby5jbXBuKDEpPDB8fG8uY21wKHRoaXMubik+PTApcmV0dXJuITE7aWYocy5jbXBuKDEpPDB8fHMuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIGEsYz1zLmludm0odGhpcy5uKSxoPWMubXVsKHQpLnVtb2QodGhpcy5uKSxsPWMubXVsKG8pLnVtb2QodGhpcy5uKTtyZXR1cm4gdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrPyEoYT10aGlzLmcuam11bEFkZChoLG4uZ2V0UHVibGljKCksbCkpLmlzSW5maW5pdHkoKSYmYS5lcVhUb1Aobyk6IShhPXRoaXMuZy5tdWxBZGQoaCxuLmdldFB1YmxpYygpLGwpKS5pc0luZmluaXR5KCkmJjA9PT1hLmdldFgoKS51bW9kKHRoaXMubikuY21wKG8pfSxjLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKHQsZSxuLHIpe3MoKDMmbik9PT1uLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksZT1uZXcgdShlLHIpO3ZhciBvPXRoaXMubixhPW5ldyBpKHQpLGM9ZS5yLGg9ZS5zLGw9MSZuLGQ9bj4+MTtpZihjLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmZCl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO2M9ZD90aGlzLmN1cnZlLnBvaW50RnJvbVgoYy5hZGQodGhpcy5jdXJ2ZS5uKSxsKTp0aGlzLmN1cnZlLnBvaW50RnJvbVgoYyxsKTt2YXIgZj1lLnIuaW52bShvKSxwPW8uc3ViKGEpLm11bChmKS51bW9kKG8pLG09aC5tdWwoZikudW1vZChvKTtyZXR1cm4gdGhpcy5nLm11bEFkZChwLGMsbSl9LGMucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24odCxlLG4saSl7aWYobnVsbCE9PShlPW5ldyB1KGUsaSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIGUucmVjb3ZlcnlQYXJhbTtmb3IodmFyIHI9MDtyPDQ7cisrKXt2YXIgbzt0cnl7bz10aGlzLnJlY292ZXJQdWJLZXkodCxlLHIpfWNhdGNoKHQpe2NvbnRpbnVlfWlmKG8uZXEobikpcmV0dXJuIHJ9dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3IiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwNiksbz1uKDE0KTtmdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTt0aGlzLmhhc2g9dC5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIXQucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9dC5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZT1yLnRvQXJyYXkodC5lbnRyb3B5LHQuZW50cm9weUVuY3x8ImhleCIpLG49ci50b0FycmF5KHQubm9uY2UsdC5ub25jZUVuY3x8ImhleCIpLGk9ci50b0FycmF5KHQucGVycyx0LnBlcnNFbmN8fCJoZXgiKTtvKGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl9pbml0KGUsbixpKX10LmV4cG9ydHM9cyxzLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5jb25jYXQoZSkuY29uY2F0KG4pO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIHI9MDtyPHRoaXMuVi5sZW5ndGg7cisrKXRoaXMuS1tyXT0wLHRoaXMuVltyXT0xO3RoaXMuX3VwZGF0ZShpKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn0scy5wcm90b3R5cGUuX2htYWM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0scy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7dCYmKGU9ZS51cGRhdGUodCkpLHRoaXMuSz1lLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksdCYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKHQpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxzLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24odCxlLG4saSl7InN0cmluZyIhPXR5cGVvZiBlJiYoaT1uLG49ZSxlPW51bGwpLHQ9ci50b0FycmF5KHQsZSksbj1yLnRvQXJyYXkobixpKSxvKHQubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl91cGRhdGUodC5jb25jYXQobnx8W10pKSx0aGlzLl9yZXNlZWQ9MX0scy5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCxlLG4saSl7aWYodGhpcy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTsic3RyaW5nIiE9dHlwZW9mIGUmJihpPW4sbj1lLGU9bnVsbCksbiYmKG49ci50b0FycmF5KG4saXx8ImhleCIpLHRoaXMuX3VwZGF0ZShuKSk7Zm9yKHZhciBvPVtdO28ubGVuZ3RoPHQ7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksbz1vLmNvbmNhdCh0aGlzLlYpO3ZhciBzPW8uc2xpY2UoMCx0KTtyZXR1cm4gdGhpcy5fdXBkYXRlKG4pLHRoaXMuX3Jlc2VlZCsrLHIuZW5jb2RlKHMsZSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMykscj1uKDEwKS51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gbyh0LGUpe3RoaXMuZWM9dCx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLGUucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShlLnByaXYsZS5wcml2RW5jKSxlLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKGUucHViLGUucHViRW5jKX10LmV4cG9ydHM9byxvLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3B1YjplLHB1YkVuYzpufSl9LG8uZnJvbVByaXZhdGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3ByaXY6ZSxwcml2RW5jOm59KX0sby5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFB1YmxpYygpO3JldHVybiB0LmlzSW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06dC52YWxpZGF0ZSgpP3QubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5ICogTiAhPSBPIn06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX0sby5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoZT10LHQ9bnVsbCksdGhpcy5wdWJ8fCh0aGlzLnB1Yj10aGlzLmVjLmcubXVsKHRoaXMucHJpdikpLGU/dGhpcy5wdWIuZW5jb2RlKGUsdCk6dGhpcy5wdWJ9LG8ucHJvdG90eXBlLmdldFByaXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P3RoaXMucHJpdi50b1N0cmluZygxNiwyKTp0aGlzLnByaXZ9LG8ucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5wcml2PW5ldyBpKHQsZXx8MTYpLHRoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfSxvLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uKHQsZSl7aWYodC54fHx0LnkpcmV0dXJuIm1vbnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlP3IodC54LCJOZWVkIHggY29vcmRpbmF0ZSIpOiJzaG9ydCIhPT10aGlzLmVjLmN1cnZlLnR5cGUmJiJlZHdhcmRzIiE9PXRoaXMuZWMuY3VydmUudHlwZXx8cih0LngmJnQueSwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZSIpLHZvaWQodGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludCh0LngsdC55KSk7dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludCh0LGUpfSxvLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubXVsKHRoaXMucHJpdikuZ2V0WCgpfSxvLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5lYy5zaWduKHQsdGhpcyxlLG4pfSxvLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkodCxlLHRoaXMpfSxvLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDMpLHI9bigxMCkudXRpbHMsbz1yLmFzc2VydDtmdW5jdGlvbiBzKHQsZSl7aWYodCBpbnN0YW5jZW9mIHMpcmV0dXJuIHQ7dGhpcy5faW1wb3J0REVSKHQsZSl8fChvKHQuciYmdC5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IGkodC5yLDE2KSx0aGlzLnM9bmV3IGkodC5zLDE2KSx2b2lkIDA9PT10LnJlY292ZXJ5UGFyYW0/dGhpcy5yZWNvdmVyeVBhcmFtPW51bGw6dGhpcy5yZWNvdmVyeVBhcmFtPXQucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gYSgpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiB1KHQsZSl7dmFyIG49dFtlLnBsYWNlKytdO2lmKCEoMTI4Jm4pKXJldHVybiBuO2Zvcih2YXIgaT0xNSZuLHI9MCxvPTAscz1lLnBsYWNlO288aTtvKysscysrKXI8PD04LHJ8PXRbc107cmV0dXJuIGUucGxhY2U9cyxyfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aC0xOyF0W2VdJiYhKDEyOCZ0W2UrMV0pJiZlPG47KWUrKztyZXR1cm4gMD09PWU/dDp0LnNsaWNlKGUpfWZ1bmN0aW9uIGgodCxlKXtpZihlPDEyOCl0LnB1c2goZSk7ZWxzZXt2YXIgbj0xKyhNYXRoLmxvZyhlKS9NYXRoLkxOMj4+PjMpO2Zvcih0LnB1c2goMTI4fG4pOy0tbjspdC5wdXNoKGU+Pj4objw8MykmMjU1KTt0LnB1c2goZSl9fXQuZXhwb3J0cz1zLHMucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24odCxlKXt0PXIudG9BcnJheSh0LGUpO3ZhciBuPW5ldyBhO2lmKDQ4IT09dFtuLnBsYWNlKytdKXJldHVybiExO2lmKHUodCxuKStuLnBsYWNlIT09dC5sZW5ndGgpcmV0dXJuITE7aWYoMiE9PXRbbi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgbz11KHQsbikscz10LnNsaWNlKG4ucGxhY2UsbytuLnBsYWNlKTtpZihuLnBsYWNlKz1vLDIhPT10W24ucGxhY2UrK10pcmV0dXJuITE7dmFyIGM9dSh0LG4pO2lmKHQubGVuZ3RoIT09YytuLnBsYWNlKXJldHVybiExO3ZhciBoPXQuc2xpY2Uobi5wbGFjZSxjK24ucGxhY2UpO3JldHVybiAwPT09c1swXSYmMTI4JnNbMV0mJihzPXMuc2xpY2UoMSkpLDA9PT1oWzBdJiYxMjgmaFsxXSYmKGg9aC5zbGljZSgxKSksdGhpcy5yPW5ldyBpKHMpLHRoaXMucz1uZXcgaShoKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0scy5wcm90b3R5cGUudG9ERVI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yLnRvQXJyYXkoKSxuPXRoaXMucy50b0FycmF5KCk7Zm9yKDEyOCZlWzBdJiYoZT1bMF0uY29uY2F0KGUpKSwxMjgmblswXSYmKG49WzBdLmNvbmNhdChuKSksZT1jKGUpLG49YyhuKTshKG5bMF18fDEyOCZuWzFdKTspbj1uLnNsaWNlKDEpO3ZhciBpPVsyXTtoKGksZS5sZW5ndGgpLChpPWkuY29uY2F0KGUpKS5wdXNoKDIpLGgoaSxuLmxlbmd0aCk7dmFyIG89aS5jb25jYXQobikscz1bNDhdO3JldHVybiBoKHMsby5sZW5ndGgpLHM9cy5jb25jYXQobyksci5lbmNvZGUocyx0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwKSxvPXIudXRpbHMscz1vLmFzc2VydCxhPW8ucGFyc2VCeXRlcyx1PW4oMjA3KSxjPW4oMjA4KTtmdW5jdGlvbiBoKHQpe2lmKHMoImVkMjU1MTkiPT09dCwib25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhciIpLCEodGhpcyBpbnN0YW5jZW9mIGgpKXJldHVybiBuZXcgaCh0KTt0PXIuY3VydmVzW3RdLmN1cnZlO3RoaXMuY3VydmU9dCx0aGlzLmc9dC5nLHRoaXMuZy5wcmVjb21wdXRlKHQubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50Q2xhc3M9dC5wb2ludCgpLmNvbnN0cnVjdG9yLHRoaXMuZW5jb2RpbmdMZW5ndGg9TWF0aC5jZWlsKHQubi5iaXRMZW5ndGgoKS84KSx0aGlzLmhhc2g9aS5zaGE1MTJ9dC5leHBvcnRzPWgsaC5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUpe3Q9YSh0KTt2YXIgbj10aGlzLmtleUZyb21TZWNyZXQoZSksaT10aGlzLmhhc2hJbnQobi5tZXNzYWdlUHJlZml4KCksdCkscj10aGlzLmcubXVsKGkpLG89dGhpcy5lbmNvZGVQb2ludChyKSxzPXRoaXMuaGFzaEludChvLG4ucHViQnl0ZXMoKSx0KS5tdWwobi5wcml2KCkpLHU9aS5hZGQocykudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6cixTOnUsUmVuY29kZWQ6b30pfSxoLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlLG4pe3Q9YSh0KSxlPXRoaXMubWFrZVNpZ25hdHVyZShlKTt2YXIgaT10aGlzLmtleUZyb21QdWJsaWMobikscj10aGlzLmhhc2hJbnQoZS5SZW5jb2RlZCgpLGkucHViQnl0ZXMoKSx0KSxvPXRoaXMuZy5tdWwoZS5TKCkpO3JldHVybiBlLlIoKS5hZGQoaS5wdWIoKS5tdWwocikpLmVxKG8pfSxoLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuaGFzaCgpLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQudXBkYXRlKGFyZ3VtZW50c1tlXSk7cmV0dXJuIG8uaW50RnJvbUxFKHQuZGlnZXN0KCkpLnVtb2QodGhpcy5jdXJ2ZS5uKX0saC5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0KXtyZXR1cm4gdS5mcm9tUHVibGljKHRoaXMsdCl9LGgucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHUuZnJvbVNlY3JldCh0aGlzLHQpfSxoLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgYz90Om5ldyBjKHRoaXMsdCl9LGgucHJvdG90eXBlLmVuY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0WSgpLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gZVt0aGlzLmVuY29kaW5nTGVuZ3RoLTFdfD10LmdldFgoKS5pc09kZCgpPzEyODowLGV9LGgucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPSh0PW8ucGFyc2VCeXRlcyh0KSkubGVuZ3RoLTEsbj10LnNsaWNlKDAsZSkuY29uY2F0KC0xMjkmdFtlXSksaT0wIT0oMTI4JnRbZV0pLHI9by5pbnRGcm9tTEUobik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShyLGkpfSxoLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxoLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8uaW50RnJvbUxFKHQpfSxoLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEwKS51dGlscyxyPWkuYXNzZXJ0LG89aS5wYXJzZUJ5dGVzLHM9aS5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlvbiBhKHQsZSl7dGhpcy5lZGRzYT10LHRoaXMuX3NlY3JldD1vKGUuc2VjcmV0KSx0LmlzUG9pbnQoZS5wdWIpP3RoaXMuX3B1Yj1lLnB1Yjp0aGlzLl9wdWJCeXRlcz1vKGUucHViKX1hLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtwdWI6ZX0pfSxhLmZyb21TZWNyZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtzZWNyZXQ6ZX0pfSxhLnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxzKGEsInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSkscyhhLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSkscyhhLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGRzYSxlPXRoaXMuaGFzaCgpLG49dC5lbmNvZGluZ0xlbmd0aC0xLGk9ZS5zbGljZSgwLHQuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBpWzBdJj0yNDgsaVtuXSY9MTI3LGlbbl18PTY0LGl9KSxzKGEsInByaXYiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSkscyhhLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxzKGEsIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksYS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRzYS5zaWduKHQsdGhpcyl9LGEucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeSh0LGUsdGhpcyl9LGEucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxpLmVuY29kZSh0aGlzLnNlY3JldCgpLHQpfSxhLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZW5jb2RlKHRoaXMucHViQnl0ZXMoKSx0KX0sdC5leHBvcnRzPWF9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5hc3NlcnQscz1yLmNhY2hlZFByb3BlcnR5LGE9ci5wYXJzZUJ5dGVzO2Z1bmN0aW9uIHUodCxlKXt0aGlzLmVkZHNhPXQsIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1hKGUpKSxBcnJheS5pc0FycmF5KGUpJiYoZT17UjplLnNsaWNlKDAsdC5lbmNvZGluZ0xlbmd0aCksUzplLnNsaWNlKHQuZW5jb2RpbmdMZW5ndGgpfSksbyhlLlImJmUuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksdC5pc1BvaW50KGUuUikmJih0aGlzLl9SPWUuUiksZS5TIGluc3RhbmNlb2YgaSYmKHRoaXMuX1M9ZS5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KGUuUik/ZS5SOmUuUmVuY29kZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShlLlMpP2UuUzplLlNlbmNvZGVkfXModSwiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLHModSwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSkscyh1LCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9KSxzKHUsIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSl9KSx1LnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sdS5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4gci5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMzUpO2UuY2VydGlmaWNhdGU9bigyMjApO3ZhciByPWkuZGVmaW5lKCJSU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUV4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaW1lMSIpLmludCgpLHRoaXMua2V5KCJwcmltZTIiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQxIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MiIpLmludCgpLHRoaXMua2V5KCJjb2VmZmljaWVudCIpLmludCgpKX0pO2UuUlNBUHJpdmF0ZUtleT1yO3ZhciBvPWkuZGVmaW5lKCJSU0FQdWJsaWNLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSl9KTtlLlJTQVB1YmxpY0tleT1vO3ZhciBzPWkuZGVmaW5lKCJTdWJqZWN0UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKGEpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7ZS5QdWJsaWNLZXk9czt2YXIgYT1pLmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSx1PWkuZGVmaW5lKCJQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoYSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5Qcml2YXRlS2V5PXU7dmFyIGM9aS5kZWZpbmUoIkVuY3J5cHRlZFByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgiZGVjcnlwdCIpLnNlcSgpLm9iaih0aGlzLmtleSgia2RlIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImtkZXBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgic2FsdCIpLm9jdHN0cigpLHRoaXMua2V5KCJpdGVycyIpLmludCgpKSksdGhpcy5rZXkoImNpcGhlciIpLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnbyIpLm9iamlkKCksdGhpcy5rZXkoIml2Iikub2N0c3RyKCkpKSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5FbmNyeXB0ZWRQcml2YXRlS2V5PWM7dmFyIGg9aS5kZWZpbmUoIkRTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSx0aGlzLmtleSgicHViX2tleSIpLmludCgpLHRoaXMua2V5KCJwcml2X2tleSIpLmludCgpKX0pO2UuRFNBUHJpdmF0ZUtleT1oLGUuRFNBcGFyYW09aS5kZWZpbmUoIkRTQXBhcmFtIixmdW5jdGlvbigpe3RoaXMuaW50KCl9KTt2YXIgbD1pLmRlZmluZSgiRUNQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInByaXZhdGVLZXkiKS5vY3RzdHIoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKGQpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO2UuRUNQcml2YXRlS2V5PWw7dmFyIGQ9aS5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFtZWRDdXJ2ZTp0aGlzLm9iamlkKCl9KX0pO2Uuc2lnbmF0dXJlPWkuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIiKS5pbnQoKSx0aGlzLmtleSgicyIpLmludCgpKX0pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzNSkscj1uKDApO2Z1bmN0aW9uIG8odCxlKXt0aGlzLm5hbWU9dCx0aGlzLmJvZHk9ZSx0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319ZS5kZWZpbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8odCxlKX0sby5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXtlPW4oMjExKS5ydW5JblRoaXNDb250ZXh0KCIoZnVuY3Rpb24gIit0aGlzLm5hbWUrIihlbnRpdHkpIHtcbiAgdGhpcy5faW5pdE5hbWVkKGVudGl0eSk7XG59KSIpfWNhdGNoKHQpe2U9ZnVuY3Rpb24odCl7dGhpcy5faW5pdE5hbWVkKHQpfX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oZSl7dC5jYWxsKHRoaXMsZSl9LG5ldyBlKHRoaXMpfSxvLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD10fHwiZGVyIix0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5kZWNvZGVyc1t0XT10aGlzLl9jcmVhdGVOYW1lZChpLmRlY29kZXJzW3RdKSksdGhpcy5kZWNvZGVyc1t0XX0sby5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fZ2V0RGVjb2RlcihlKS5kZWNvZGUodCxuKX0sby5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8ImRlciIsdGhpcy5lbmNvZGVycy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuZW5jb2RlcnNbdF09dGhpcy5fY3JlYXRlTmFtZWQoaS5lbmNvZGVyc1t0XSkpLHRoaXMuZW5jb2RlcnNbdF19LG8ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZSkuZW5jb2RlKHQsbil9fSxmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaW5kZXhPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMiksT2JqZWN0X2tleXM9ZnVuY3Rpb24odCl7aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX0sZm9yRWFjaD1mdW5jdGlvbih0LGUpe2lmKHQuZm9yRWFjaClyZXR1cm4gdC5mb3JFYWNoKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWUodFtuXSxuLHQpfSxkZWZpbmVQcm9wPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl8iLHt9KSxmdW5jdGlvbih0LGUsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7d3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsdmFsdWU6bn0pfX1jYXRjaCh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3RbZV09bn19fSgpLGdsb2JhbHM9WyJBcnJheSIsIkJvb2xlYW4iLCJEYXRlIiwiRXJyb3IiLCJFdmFsRXJyb3IiLCJGdW5jdGlvbiIsIkluZmluaXR5IiwiSlNPTiIsIk1hdGgiLCJOYU4iLCJOdW1iZXIiLCJPYmplY3QiLCJSYW5nZUVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJSZWdFeHAiLCJTdHJpbmciLCJTeW50YXhFcnJvciIsIlR5cGVFcnJvciIsIlVSSUVycm9yIiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJ1bmVzY2FwZSJdO2Z1bmN0aW9uIENvbnRleHQoKXt9Q29udGV4dC5wcm90b3R5cGU9e307dmFyIFNjcmlwdD1leHBvcnRzLlNjcmlwdD1mdW5jdGlvbih0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTY3JpcHQpKXJldHVybiBuZXcgU2NyaXB0KHQpO3RoaXMuY29kZT10fTtTY3JpcHQucHJvdG90eXBlLnJ1bkluQ29udGV4dD1mdW5jdGlvbih0KXtpZighKHQgaW5zdGFuY2VvZiBDb250ZXh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJuZWVkcyBhICdjb250ZXh0JyBhcmd1bWVudC4iKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtlLnN0eWxlfHwoZS5zdHlsZT17fSksZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciBuPWUuY29udGVudFdpbmRvdyxpPW4uZXZhbCxyPW4uZXhlY1NjcmlwdDshaSYmciYmKHIuY2FsbChuLCJudWxsIiksaT1uLmV2YWwpLGZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24oZSl7bltlXT10W2VdfSksZm9yRWFjaChnbG9iYWxzLGZ1bmN0aW9uKGUpe3RbZV0mJihuW2VdPXRbZV0pfSk7dmFyIG89T2JqZWN0X2tleXMobikscz1pLmNhbGwobix0aGlzLmNvZGUpO3JldHVybiBmb3JFYWNoKE9iamVjdF9rZXlzKG4pLGZ1bmN0aW9uKGUpeyhlIGluIHR8fC0xPT09aW5kZXhPZihvLGUpKSYmKHRbZV09bltlXSl9KSxmb3JFYWNoKGdsb2JhbHMsZnVuY3Rpb24oZSl7ZSBpbiB0fHxkZWZpbmVQcm9wKHQsZSxuW2VdKX0pLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSksc30sU2NyaXB0LnByb3RvdHlwZS5ydW5JblRoaXNDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGV2YWwodGhpcy5jb2RlKX0sU2NyaXB0LnByb3RvdHlwZS5ydW5Jbk5ld0NvbnRleHQ9ZnVuY3Rpb24odCl7dmFyIGU9U2NyaXB0LmNyZWF0ZUNvbnRleHQodCksbj10aGlzLnJ1bkluQ29udGV4dChlKTtyZXR1cm4gZm9yRWFjaChPYmplY3Rfa2V5cyhlKSxmdW5jdGlvbihuKXt0W25dPWVbbl19KSxufSxmb3JFYWNoKE9iamVjdF9rZXlzKFNjcmlwdC5wcm90b3R5cGUpLGZ1bmN0aW9uKHQpe2V4cG9ydHNbdF09U2NyaXB0W3RdPWZ1bmN0aW9uKGUpe3ZhciBuPVNjcmlwdChlKTtyZXR1cm4gblt0XS5hcHBseShuLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX19KSxleHBvcnRzLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0KXtyZXR1cm4gZXhwb3J0cy5TY3JpcHQodCl9LGV4cG9ydHMuY3JlYXRlQ29udGV4dD1TY3JpcHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQ29udGV4dDtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJmZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24obil7ZVtuXT10W25dfSksZX19LGZ1bmN0aW9uKHQsZSl7dmFyIG49W10uaW5kZXhPZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpaWYodFtpXT09PWUpcmV0dXJuIGk7cmV0dXJuLTF9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKTtmdW5jdGlvbiByKHQpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczp0fHx7fSxlcnJvcnM6W119fWZ1bmN0aW9uIG8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnJldGhyb3coZSl9ZS5SZXBvcnRlcj1yLHIucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBvfSxyLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm57b2JqOnQub2JqLHBhdGhMZW46dC5wYXRoLmxlbmd0aH19LHIucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtlLm9iaj10Lm9iaixlLnBhdGg9ZS5wYXRoLnNsaWNlKDAsdC5wYXRoTGVuKX0sci5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKHQpfSxyLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7ZS5wYXRoPWUucGF0aC5zbGljZSgwLHQtMSl9LHIucHJvdG90eXBlLmxlYXZlS2V5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9yZXBvcnRlclN0YXRlO3RoaXMuZXhpdEtleSh0KSxudWxsIT09aS5vYmomJihpLm9ialtlXT1uKX0sci5wcm90b3R5cGUucGF0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbigiLyIpfSxyLnByb3RvdHlwZS5lbnRlck9iamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3JlcG9ydGVyU3RhdGUsZT10Lm9iajtyZXR1cm4gdC5vYmo9e30sZX0sci5wcm90b3R5cGUubGVhdmVPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxuPWUub2JqO3JldHVybiBlLm9iaj10LG59LHIucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5fcmVwb3J0ZXJTdGF0ZSxpPXQgaW5zdGFuY2VvZiBvO2lmKGU9aT90Om5ldyBvKG4ucGF0aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5KHQpKyJdIn0pLmpvaW4oIiIpLHQubWVzc2FnZXx8dCx0LnN0YWNrKSwhbi5vcHRpb25zLnBhcnRpYWwpdGhyb3cgZTtyZXR1cm4gaXx8bi5lcnJvcnMucHVzaChlKSxlfSxyLnByb3RvdHlwZS53cmFwUmVzdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJuIGUub3B0aW9ucy5wYXJ0aWFsP3tyZXN1bHQ6dGhpcy5pc0Vycm9yKHQpP251bGw6dCxlcnJvcnM6ZS5lcnJvcnN9OnR9LGkobyxFcnJvciksby5wcm90b3R5cGUucmV0aHJvdz1mdW5jdGlvbih0KXtpZih0aGlzLm1lc3NhZ2U9dCsiIGF0OiAiKyh0aGlzLnBhdGh8fCIoc2hhbGxvdykiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxvKSwhdGhpcy5zdGFjayl0cnl7dGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSl9Y2F0Y2godCl7dGhpcy5zdGFjaz10LnN0YWNrfXJldHVybiB0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzYpLlJlcG9ydGVyLHI9bigzNikuRW5jb2RlckJ1ZmZlcixvPW4oMzYpLkRlY29kZXJCdWZmZXIscz1uKDE0KSxhPVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0ciIsInZpZGVvc3RyIl0sdT1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KGEpO2Z1bmN0aW9uIGModCxlKXt2YXIgbj17fTt0aGlzLl9iYXNlU3RhdGU9bixuLmVuYz10LG4ucGFyZW50PWV8fG51bGwsbi5jaGlsZHJlbj1udWxsLG4udGFnPW51bGwsbi5hcmdzPW51bGwsbi5yZXZlcnNlQXJncz1udWxsLG4uY2hvaWNlPW51bGwsbi5vcHRpb25hbD0hMSxuLmFueT0hMSxuLm9iaj0hMSxuLnVzZT1udWxsLG4udXNlRGVjb2Rlcj1udWxsLG4ua2V5PW51bGwsbi5kZWZhdWx0PW51bGwsbi5leHBsaWNpdD1udWxsLG4uaW1wbGljaXQ9bnVsbCxuLmNvbnRhaW5zPW51bGwsbi5wYXJlbnR8fChuLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9dC5leHBvcnRzPWM7dmFyIGg9WyJlbmMiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInRhZyIsImFyZ3MiLCJyZXZlcnNlQXJncyIsImNob2ljZSIsIm9wdGlvbmFsIiwiYW55Iiwib2JqIiwidXNlIiwiYWx0ZXJlZFVzZSIsImtleSIsImRlZmF1bHQiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiY29udGFpbnMiXTtjLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPXt9O2guZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KTt2YXIgbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLnBhcmVudCk7cmV0dXJuIG4uX2Jhc2VTdGF0ZT1lLG59LGMucHJvdG90eXBlLl93cmFwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYmFzZVN0YXRlO3UuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzW2VdPWZ1bmN0aW9uKCl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIHQuY2hpbGRyZW4ucHVzaChuKSxuW2VdLmFwcGx5KG4sYXJndW1lbnRzKX19LHRoaXMpfSxjLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cyhudWxsPT09ZS5wYXJlbnQpLHQuY2FsbCh0aGlzKSxlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcykscy5lcXVhbChlLmNoaWxkcmVuLmxlbmd0aCwxLCJSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQiKX0sYy5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSx0aGlzKTt0PXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEodCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpfSx0aGlzKSwwIT09bi5sZW5ndGgmJihzKG51bGw9PT1lLmNoaWxkcmVuKSxlLmNoaWxkcmVuPW4sbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT10Lmxlbmd0aCYmKHMobnVsbD09PWUuYXJncyksZS5hcmdzPXQsZS5yZXZlcnNlQXJncz10Lm1hcChmdW5jdGlvbih0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fHQuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIHQ7dmFyIGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7bj09KDB8bikmJihufD0wKTt2YXIgaT10W25dO2VbaV09bn0pLGV9KSl9LFsiX3BlZWtUYWciLCJfZGVjb2RlVGFnIiwiX3VzZSIsIl9kZWNvZGVTdHIiLCJfZGVjb2RlT2JqaWQiLCJfZGVjb2RlVGltZSIsIl9kZWNvZGVOdWxsIiwiX2RlY29kZUludCIsIl9kZWNvZGVCb29sIiwiX2RlY29kZUxpc3QiLCJfZW5jb2RlQ29tcG9zaXRlIiwiX2VuY29kZVN0ciIsIl9lbmNvZGVPYmppZCIsIl9lbmNvZGVUaW1lIiwiX2VuY29kZU51bGwiLCJfZW5jb2RlSW50IiwiX2VuY29kZUJvb2wiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3Rocm93IG5ldyBFcnJvcih0KyIgbm90IGltcGxlbWVudGVkIGZvciBlbmNvZGluZzogIitlLmVuYyl9fSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gcyhudWxsPT09ZS50YWcpLGUudGFnPXQsdGhpcy5fdXNlQXJncyhuKSx0aGlzfX0pLGMucHJvdG90eXBlLnVzZT1mdW5jdGlvbih0KXtzKHQpO3ZhciBlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gcyhudWxsPT09ZS51c2UpLGUudXNlPXQsdGhpc30sYy5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LGMucHJvdG90eXBlLmRlZj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZGVmYXVsdCksZS5kZWZhdWx0PXQsZS5vcHRpb25hbD0hMCx0aGlzfSxjLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZXhwbGljaXQmJm51bGw9PT1lLmltcGxpY2l0KSxlLmV4cGxpY2l0PXQsdGhpc30sYy5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmV4cGxpY2l0JiZudWxsPT09ZS5pbXBsaWNpdCksZS5pbXBsaWNpdD10LHRoaXN9LGMucHJvdG90eXBlLm9iaj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQub2JqPSEwLDAhPT1lLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhlKSx0aGlzfSxjLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmtleSksZS5rZXk9dCx0aGlzfSxjLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxjLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmNob2ljZSksZS5jaG9pY2U9dCx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSx0aGlzfSxjLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUudXNlKSxlLmNvbnRhaW5zPXQsdGhpc30sYy5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09bi5wYXJlbnQpcmV0dXJuIHQud3JhcFJlc3VsdChuLmNoaWxkcmVuWzBdLl9kZWNvZGUodCxlKSk7dmFyIGkscj1uLmRlZmF1bHQscz0hMCxhPW51bGw7aWYobnVsbCE9PW4ua2V5JiYoYT10LmVudGVyS2V5KG4ua2V5KSksbi5vcHRpb25hbCl7dmFyIHU9bnVsbDtpZihudWxsIT09bi5leHBsaWNpdD91PW4uZXhwbGljaXQ6bnVsbCE9PW4uaW1wbGljaXQ/dT1uLmltcGxpY2l0Om51bGwhPT1uLnRhZyYmKHU9bi50YWcpLG51bGwhPT11fHxuLmFueSl7aWYocz10aGlzLl9wZWVrVGFnKHQsdSxuLmFueSksdC5pc0Vycm9yKHMpKXJldHVybiBzfWVsc2V7dmFyIGM9dC5zYXZlKCk7dHJ5e251bGw9PT1uLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKG4udGFnLHQsZSk6dGhpcy5fZGVjb2RlQ2hvaWNlKHQsZSkscz0hMH1jYXRjaCh0KXtzPSExfXQucmVzdG9yZShjKX19aWYobi5vYmomJnMmJihpPXQuZW50ZXJPYmplY3QoKSkscyl7aWYobnVsbCE9PW4uZXhwbGljaXQpe3ZhciBoPXRoaXMuX2RlY29kZVRhZyh0LG4uZXhwbGljaXQpO2lmKHQuaXNFcnJvcihoKSlyZXR1cm4gaDt0PWh9dmFyIGw9dC5vZmZzZXQ7aWYobnVsbD09PW4udXNlJiZudWxsPT09bi5jaG9pY2Upe2lmKG4uYW55KWM9dC5zYXZlKCk7dmFyIGQ9dGhpcy5fZGVjb2RlVGFnKHQsbnVsbCE9PW4uaW1wbGljaXQ/bi5pbXBsaWNpdDpuLnRhZyxuLmFueSk7aWYodC5pc0Vycm9yKGQpKXJldHVybiBkO24uYW55P3I9dC5yYXcoYyk6dD1kfWlmKGUmJmUudHJhY2smJm51bGwhPT1uLnRhZyYmZS50cmFjayh0LnBhdGgoKSxsLHQubGVuZ3RoLCJ0YWdnZWQiKSxlJiZlLnRyYWNrJiZudWxsIT09bi50YWcmJmUudHJhY2sodC5wYXRoKCksdC5vZmZzZXQsdC5sZW5ndGgsImNvbnRlbnQiKSxyPW4uYW55P3I6bnVsbD09PW4uY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMobi50YWcsdCxlKTp0aGlzLl9kZWNvZGVDaG9pY2UodCxlKSx0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYobi5hbnl8fG51bGwhPT1uLmNob2ljZXx8bnVsbD09PW4uY2hpbGRyZW58fG4uY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9kZWNvZGUodCxlKX0pLG4uY29udGFpbnMmJigib2N0c3RyIj09PW4udGFnfHwiYml0c3RyIj09PW4udGFnKSl7dmFyIGY9bmV3IG8ocik7cj10aGlzLl9nZXRVc2Uobi5jb250YWlucyx0Ll9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShmLGUpfX1yZXR1cm4gbi5vYmomJnMmJihyPXQubGVhdmVPYmplY3QoaSkpLG51bGw9PT1uLmtleXx8bnVsbD09PXImJiEwIT09cz9udWxsIT09YSYmdC5leGl0S2V5KGEpOnQubGVhdmVLZXkoYSxuLmtleSxyKSxyfSxjLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09dHx8InNldCI9PT10P251bGw6InNlcW9mIj09PXR8fCJzZXRvZiI9PT10P3RoaXMuX2RlY29kZUxpc3QoZSx0LGkuYXJnc1swXSxuKTovc3RyJC8udGVzdCh0KT90aGlzLl9kZWNvZGVTdHIoZSx0LG4pOiJvYmppZCI9PT10JiZpLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQoZSxpLmFyZ3NbMF0saS5hcmdzWzFdLG4pOiJvYmppZCI9PT10P3RoaXMuX2RlY29kZU9iamlkKGUsbnVsbCxudWxsLG4pOiJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQ/dGhpcy5fZGVjb2RlVGltZShlLHQsbik6Im51bGxfIj09PXQ/dGhpcy5fZGVjb2RlTnVsbChlLG4pOiJib29sIj09PXQ/dGhpcy5fZGVjb2RlQm9vbChlLG4pOiJvYmpEZXNjIj09PXQ/dGhpcy5fZGVjb2RlU3RyKGUsdCxuKToiaW50Ij09PXR8fCJlbnVtIj09PXQ/dGhpcy5fZGVjb2RlSW50KGUsaS5hcmdzJiZpLmFyZ3NbMF0sbik6bnVsbCE9PWkudXNlP3RoaXMuX2dldFVzZShpLnVzZSxlLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShlLG4pOmUuZXJyb3IoInVua25vd24gdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBuLnVzZURlY29kZXI9dGhpcy5fdXNlKHQsZSkscyhudWxsPT09bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUucGFyZW50KSxuLnVzZURlY29kZXI9bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF0sbi5pbXBsaWNpdCE9PW4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0JiYobi51c2VEZWNvZGVyPW4udXNlRGVjb2Rlci5jbG9uZSgpLG4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0PW4uaW1wbGljaXQpLG4udXNlRGVjb2Rlcn0sYy5wcm90b3R5cGUuX2RlY29kZUNob2ljZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZSxpPW51bGwscj0hMTtyZXR1cm4gT2JqZWN0LmtleXMobi5jaG9pY2UpLnNvbWUoZnVuY3Rpb24obyl7dmFyIHM9dC5zYXZlKCksYT1uLmNob2ljZVtvXTt0cnl7dmFyIHU9YS5fZGVjb2RlKHQsZSk7aWYodC5pc0Vycm9yKHUpKXJldHVybiExO2k9e3R5cGU6byx2YWx1ZTp1fSxyPSEwfWNhdGNoKGUpe3JldHVybiB0LnJlc3RvcmUocyksITF9cmV0dXJuITB9LHRoaXMpLHI/aTp0LmVycm9yKCJDaG9pY2Ugbm90IG1hdGNoZWQiKX0sYy5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyByKHQsdGhpcy5yZXBvcnRlcil9LGMucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09aS5kZWZhdWx0fHxpLmRlZmF1bHQhPT10KXt2YXIgcj10aGlzLl9lbmNvZGVWYWx1ZSh0LGUsbik7aWYodm9pZCAwIT09ciYmIXRoaXMuX3NraXBEZWZhdWx0KHIsZSxuKSlyZXR1cm4gcn19LGMucHJvdG90eXBlLl9lbmNvZGVWYWx1ZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1yLnBhcmVudClyZXR1cm4gci5jaGlsZHJlblswXS5fZW5jb2RlKHQsZXx8bmV3IGkpO3ZhciBvPW51bGw7aWYodGhpcy5yZXBvcnRlcj1lLHIub3B0aW9uYWwmJnZvaWQgMD09PXQpe2lmKG51bGw9PT1yLmRlZmF1bHQpcmV0dXJuO3Q9ci5kZWZhdWx0fXZhciBzPW51bGwsYT0hMTtpZihyLmFueSlvPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk7ZWxzZSBpZihyLmNob2ljZSlvPXRoaXMuX2VuY29kZUNob2ljZSh0LGUpO2Vsc2UgaWYoci5jb250YWlucylzPXRoaXMuX2dldFVzZShyLmNvbnRhaW5zLG4pLl9lbmNvZGUodCxlKSxhPSEwO2Vsc2UgaWYoci5jaGlsZHJlbilzPXIuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKG4pe2lmKCJudWxsXyI9PT1uLl9iYXNlU3RhdGUudGFnKXJldHVybiBuLl9lbmNvZGUobnVsbCxlLHQpO2lmKG51bGw9PT1uLl9iYXNlU3RhdGUua2V5KXJldHVybiBlLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO3ZhciBpPWUuZW50ZXJLZXkobi5fYmFzZVN0YXRlLmtleSk7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXJldHVybiBlLmVycm9yKCJDaGlsZCBleHBlY3RlZCwgYnV0IGlucHV0IGlzIG5vdCBvYmplY3QiKTt2YXIgcj1uLl9lbmNvZGUodFtuLl9iYXNlU3RhdGUua2V5XSxlLHQpO3JldHVybiBlLmxlYXZlS2V5KGkpLHJ9LHRoaXMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLHM9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzKTtlbHNlIGlmKCJzZXFvZiI9PT1yLnRhZ3x8InNldG9mIj09PXIudGFnKXtpZighci5hcmdzfHwxIT09ci5hcmdzLmxlbmd0aClyZXR1cm4gZS5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK3IudGFnKTtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZS5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO3ZhciB1PXRoaXMuY2xvbmUoKTt1Ll9iYXNlU3RhdGUuaW1wbGljaXQ9bnVsbCxzPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodC5tYXAoZnVuY3Rpb24obil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiB0aGlzLl9nZXRVc2UoaS5hcmdzWzBdLHQpLl9lbmNvZGUobixlKX0sdSkpfWVsc2UgbnVsbCE9PXIudXNlP289dGhpcy5fZ2V0VXNlKHIudXNlLG4pLl9lbmNvZGUodCxlKToocz10aGlzLl9lbmNvZGVQcmltaXRpdmUoci50YWcsdCksYT0hMCk7aWYoIXIuYW55JiZudWxsPT09ci5jaG9pY2Upe3ZhciBjPW51bGwhPT1yLmltcGxpY2l0P3IuaW1wbGljaXQ6ci50YWcsaD1udWxsPT09ci5pbXBsaWNpdD8idW5pdmVyc2FsIjoiY29udGV4dCI7bnVsbD09PWM/bnVsbD09PXIudXNlJiZlLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09ci51c2UmJihvPXRoaXMuX2VuY29kZUNvbXBvc2l0ZShjLGEsaCxzKSl9cmV0dXJuIG51bGwhPT1yLmV4cGxpY2l0JiYobz10aGlzLl9lbmNvZGVDb21wb3NpdGUoci5leHBsaWNpdCwhMSwiY29udGV4dCIsbykpLG99LGMucHJvdG90eXBlLl9lbmNvZGVDaG9pY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9iYXNlU3RhdGUsaT1uLmNob2ljZVt0LnR5cGVdO3JldHVybiBpfHxzKCExLHQudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKG4uY2hvaWNlKSkpLGkuX2VuY29kZSh0LnZhbHVlLGUpfSxjLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KHQpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoZSx0KTtpZigib2JqaWQiPT09dCYmbi5hcmdzKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChlLG4ucmV2ZXJzZUFyZ3NbMF0sbi5hcmdzWzFdKTtpZigib2JqaWQiPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoZSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoZSx0KTtpZigibnVsbF8iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09dHx8ImVudW0iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlSW50KGUsbi5hcmdzJiZuLnJldmVyc2VBcmdzWzBdKTtpZigiYm9vbCI9PT10KXJldHVybiB0aGlzLl9lbmNvZGVCb29sKGUpO2lmKCJvYmpEZXNjIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihlLHQpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bMC05IF0qJC8udGVzdCh0KX0sYy5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bQS1aYS16MC05ICdcKFwpXCssXC1cLlwvOj1cP10qJC8udGVzdCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExMSk7ZS50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIsMjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LGUudGFnQ2xhc3NCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZ0NsYXNzKSxlLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sZS50YWdCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuZGVyPW4oMTEyKSxpLnBlbT1uKDIxNyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDExMik7ZnVuY3Rpb24gcyh0KXtvLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKHMsbyksdC5leHBvcnRzPXMscy5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxpPWUubGFiZWwudG9VcHBlckNhc2UoKSxzPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLyxhPS0xLHU9LTEsYz0wO2M8bi5sZW5ndGg7YysrKXt2YXIgaD1uW2NdLm1hdGNoKHMpO2lmKG51bGwhPT1oJiZoWzJdPT09aSl7aWYoLTEhPT1hKXtpZigiRU5EIiE9PWhbMV0pYnJlYWs7dT1jO2JyZWFrfWlmKCJCRUdJTiIhPT1oWzFdKWJyZWFrO2E9Y319aWYoLTE9PT1hfHwtMT09PXUpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK2kpO3ZhciBsPW4uc2xpY2UoYSsxLHUpLmpvaW4oIiIpO2wucmVwbGFjZSgvW15hLXowLTlcK1wvPV0rL2dpLCIiKTt2YXIgZD1uZXcgcihsLCJiYXNlNjQiKTtyZXR1cm4gby5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxkLGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5kZXI9bigxMTMpLGkucGVtPW4oMjE5KX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDExMyk7ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKG8sciksdC5leHBvcnRzPW8sby5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXIucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsdCkudG9TdHJpbmcoImJhc2U2NCIpLGk9WyItLS0tLUJFR0lOICIrZS5sYWJlbCsiLS0tLS0iXSxvPTA7bzxuLmxlbmd0aDtvKz02NClpLnB1c2gobi5zbGljZShvLG8rNjQpKTtyZXR1cm4gaS5wdXNoKCItLS0tLUVORCAiK2UubGFiZWwrIi0tLS0tIiksaS5qb2luKCJcbiIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDM1KSxyPWkuZGVmaW5lKCJUaW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2VudGltZSgpfSl9KSxvPWkuZGVmaW5lKCJBdHRyaWJ1dGVUeXBlVmFsdWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInR5cGUiKS5vYmppZCgpLHRoaXMua2V5KCJ2YWx1ZSIpLmFueSgpKX0pLHM9aS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpKX0pLGE9aS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UocyksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSx1PWkuZGVmaW5lKCJSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lIixmdW5jdGlvbigpe3RoaXMuc2V0b2Yobyl9KSxjPWkuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKHUpfSksaD1pLmRlZmluZSgiTmFtZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7cmRuU2VxdWVuY2U6dGhpcy51c2UoYyl9KX0pLGw9aS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UociksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKHIpKX0pLGQ9aS5kZWZpbmUoIkV4dGVuc2lvbiIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiZXh0bklEIikub2JqaWQoKSx0aGlzLmtleSgiY3JpdGljYWwiKS5ib29sKCkuZGVmKCExKSx0aGlzLmtleSgiZXh0blZhbHVlIikub2N0c3RyKCkpfSksZj1pLmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKSx0aGlzLmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShzKSx0aGlzLmtleSgiaXNzdWVyIikudXNlKGgpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShsKSx0aGlzLmtleSgic3ViamVjdCIpLnVzZShoKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoYSksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKGQpLm9wdGlvbmFsKCkpfSkscD1pLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShmKSx0aGlzLmtleSgic2lnbmF0dXJlQWxnb3JpdGhtIikudXNlKHMpLHRoaXMua2V5KCJzaWduYXR1cmVWYWx1ZSIpLmJpdHN0cigpKX0pO3QuZXhwb3J0cz1wfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9eyIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xIjoiYWVzLTEyOC1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yIjoiYWVzLTEyOC1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4zIjoiYWVzLTEyOC1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40IjoiYWVzLTEyOC1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMSI6ImFlcy0xOTItZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjIiOiJhZXMtMTkyLWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIzIjoiYWVzLTE5Mi1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yNCI6ImFlcy0xOTItY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDEiOiJhZXMtMjU2LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyIjoiYWVzLTI1Ni1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MyI6ImFlcy0yNTYtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDQiOiJhZXMtMjU2LWNmYiJ9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPS9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xuXHJdK0RFSy1JbmZvOiBBRVMtKCg/OjEyOCl8KD86MTkyKXwoPzoyNTYpKS1DQkMsKFswLTlBLUhdKylbXG5ccl0rKFswLTlBLXpcblxyXCtcL1w9XSspW1xuXHJdKy9tLHI9L14tLS0tLUJFR0lOICgoPzouKiBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sbz0vXi0tLS0tQkVHSU4gKCg/Oi4qIEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxuXHJcK1wvXD1dKyktLS0tLUVORCBcMS0tLS0tJC9tLHM9big0NiksYT1uKDY3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXt2YXIgdSxjPXQudG9TdHJpbmcoKSxoPWMubWF0Y2goaSk7aWYoaCl7dmFyIGw9ImFlcyIraFsxXSxkPW5ldyBlKGhbMl0sImhleCIpLGY9bmV3IGUoaFszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLHA9cyhuLGQuc2xpY2UoMCw4KSxwYXJzZUludChoWzFdLDEwKSkua2V5LG09W10sZz1hLmNyZWF0ZURlY2lwaGVyaXYobCxwLGQpO20ucHVzaChnLnVwZGF0ZShmKSksbS5wdXNoKGcuZmluYWwoKSksdT1lLmNvbmNhdChtKX1lbHNle3ZhciB2PWMubWF0Y2gobyk7dT1uZXcgZSh2WzJdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0Iil9cmV0dXJue3RhZzpjLm1hdGNoKHIpWzFdLGRhdGE6dX19fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigxMCkuZWMsbz1uKDQ5KSxzPW4oMTE0KTtmdW5jdGlvbiBhKHQsZSl7aWYodC5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKTtpZih0LmNtcChlKT49ZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsbix1LGMsaCl7dmFyIGw9byh1KTtpZigiZWMiPT09bC50eXBlKXtpZigiZWNkc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1zW24uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIituLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKSk7dmFyIG89bmV3IHIoaSksYT1uLmRhdGEuc3ViamVjdFByaXZhdGVLZXkuZGF0YTtyZXR1cm4gby52ZXJpZnkoZSx0LGEpfSh0LG4sbCl9aWYoImRzYSI9PT1sLnR5cGUpe2lmKCJkc2EiIT09Yyl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIHI9bi5kYXRhLnAscz1uLmRhdGEucSx1PW4uZGF0YS5nLGM9bi5kYXRhLnB1Yl9rZXksaD1vLnNpZ25hdHVyZS5kZWNvZGUodCwiZGVyIiksbD1oLnMsZD1oLnI7YShsLHMpLGEoZCxzKTt2YXIgZj1pLm1vbnQocikscD1sLmludm0ocyk7cmV0dXJuIDA9PT11LnRvUmVkKGYpLnJlZFBvdyhuZXcgaShlKS5tdWwocCkubW9kKHMpKS5mcm9tUmVkKCkubXVsKGMudG9SZWQoZikucmVkUG93KGQubXVsKHApLm1vZChzKSkuZnJvbVJlZCgpKS5tb2QocikubW9kKHMpLmNtcChkKX0odCxuLGwpfWlmKCJyc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7bj1lLmNvbmNhdChbaCxuXSk7Zm9yKHZhciBkPWwubW9kdWx1cy5ieXRlTGVuZ3RoKCksZj1bMV0scD0wO24ubGVuZ3RoK2YubGVuZ3RoKzI8ZDspZi5wdXNoKDI1NSkscCsrO2YucHVzaCgwKTtmb3IodmFyIG09LTE7KyttPG4ubGVuZ3RoOylmLnB1c2goblttXSk7Zj1uZXcgZShmKTt2YXIgZz1pLm1vbnQobC5tb2R1bHVzKTt0PSh0PW5ldyBpKHQpLnRvUmVkKGcpKS5yZWRQb3cobmV3IGkobC5wdWJsaWNFeHBvbmVudCkpLHQ9bmV3IGUodC5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgdj1wPDg/MTowO2ZvcihkPU1hdGgubWluKHQubGVuZ3RoLGYubGVuZ3RoKSx0Lmxlbmd0aCE9PWYubGVuZ3RoJiYodj0xKSxtPS0xOysrbTxkOyl2fD10W21dXmZbbV07cmV0dXJuIDA9PT12fX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigxMCkscj1uKDMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModCl9O3ZhciBvPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntuYW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1lOiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6e25hbWU6InAzODQiLGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIHModCl7dGhpcy5jdXJ2ZVR5cGU9b1t0XSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOnR9KSx0aGlzLmN1cnZlPW5ldyBpLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpLHRoaXMua2V5cz12b2lkIDB9ZnVuY3Rpb24gYSh0LG4saSl7QXJyYXkuaXNBcnJheSh0KXx8KHQ9dC50b0FycmF5KCkpO3ZhciByPW5ldyBlKHQpO2lmKGkmJnIubGVuZ3RoPGkpe3ZhciBvPW5ldyBlKGktci5sZW5ndGgpO28uZmlsbCgwKSxyPWUuY29uY2F0KFtvLHJdKX1yZXR1cm4gbj9yLnRvU3RyaW5nKG4pOnJ9by5wMjI0PW8uc2VjcDIyNHIxLG8ucDI1Nj1vLnNlY3AyNTZyMT1vLnByaW1lMjU2djEsby5wMTkyPW8uc2VjcDE5MnIxPW8ucHJpbWUxOTJ2MSxvLnAzODQ9by5zZWNwMzg0cjEsby5wNTIxPW8uc2VjcDUyMXIxLHMucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkodCxlKX0scy5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbih0LG4saSl7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLGEodGhpcy5jdXJ2ZS5rZXlGcm9tUHVibGljKHQpLmdldFB1YmxpYygpLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCksaSx0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0scy5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1lLCEwKTtyZXR1cm4iaHlicmlkIj09PWUmJihuW24ubGVuZ3RoLTFdJTI/blswXT03Om5bMF09NiksYShuLHQpfSxzLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMua2V5cy5nZXRQcml2YXRlKCksdCl9LHMucHJvdG90eXBlLnNldFB1YmxpY0tleT1mdW5jdGlvbih0LG4pe3JldHVybiBuPW58fCJ1dGY4IixlLmlzQnVmZmVyKHQpfHwodD1uZXcgZSh0LG4pKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyh0KSx0aGlzfSxzLnByb3RvdHlwZS5zZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQsbil7bj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSk7dmFyIGk9bmV3IHIodCk7cmV0dXJuIGk9aS50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShpKSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXtlLnB1YmxpY0VuY3J5cHQ9bigyMjYpLGUucHJpdmF0ZURlY3J5cHQ9bigyMjcpLGUucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5wdWJsaWNFbmNyeXB0KHQsbiwhMCl9LGUucHVibGljRGVjcnlwdD1mdW5jdGlvbih0LG4pe3JldHVybiBlLnByaXZhdGVEZWNyeXB0KHQsbiwhMCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big0OSkscj1uKDI3KSxvPW4oMzEpLHM9bigxMTUpLGE9bigxMTYpLHU9bigzKSxjPW4oMTE3KSxoPW4oNjkpLGw9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgZDtkPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGYscD1pKHQpO2lmKDQ9PT1kKWY9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGk9ZS5sZW5ndGgsYz1vKCJzaGExIikudXBkYXRlKGwuYWxsb2MoMCkpLmRpZ2VzdCgpLGg9Yy5sZW5ndGgsZD0yKmg7aWYoaT5uLWQtMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgZj1sLmFsbG9jKG4taS1kLTIpLHA9bi1oLTEsbT1yKGgpLGc9YShsLmNvbmNhdChbYyxmLGwuYWxsb2MoMSwxKSxlXSxwKSxzKG0scCkpLHY9YShtLHMoZyxoKSk7cmV0dXJuIG5ldyB1KGwuY29uY2F0KFtsLmFsbG9jKDEpLHYsZ10sbikpfShwLGUpO2Vsc2UgaWYoMT09PWQpZj1mdW5jdGlvbih0LGUsbil7dmFyIGksbz1lLmxlbmd0aCxzPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYobz5zLTExKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO2k9bj9sLmFsbG9jKHMtby0zLDI1NSk6ZnVuY3Rpb24odCl7dmFyIGUsbj1sLmFsbG9jVW5zYWZlKHQpLGk9MCxvPXIoMip0KSxzPTA7Zm9yKDtpPHQ7KXM9PT1vLmxlbmd0aCYmKG89cigyKnQpLHM9MCksKGU9b1tzKytdKSYmKG5baSsrXT1lKTtyZXR1cm4gbn0ocy1vLTMpO3JldHVybiBuZXcgdShsLmNvbmNhdChbbC5mcm9tKFswLG4/MToyXSksaSxsLmFsbG9jKDEpLGVdLHMpKX0ocCxlLG4pO2Vsc2V7aWYoMyE9PWQpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKTtpZigoZj1uZXcgdShlKSkuY21wKHAubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJuIG4/aChmLHApOmMoZixwKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ5KSxyPW4oMTE1KSxvPW4oMTE2KSxzPW4oMyksYT1uKDY5KSx1PW4oMzEpLGM9bigxMTcpLGg9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbDtsPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGQsZj1pKHQpLHA9Zi5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihlLmxlbmd0aD5wfHxuZXcgcyhlKS5jbXAoZi5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtkPW4/YyhuZXcgcyhlKSxmKTphKGUsZik7dmFyIG09aC5hbGxvYyhwLWQubGVuZ3RoKTtpZihkPWguY29uY2F0KFttLGRdLHApLDQ9PT1sKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksaT11KCJzaGExIikudXBkYXRlKGguYWxsb2MoMCkpLmRpZ2VzdCgpLHM9aS5sZW5ndGg7aWYoMCE9PWVbMF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIGE9ZS5zbGljZSgxLHMrMSksYz1lLnNsaWNlKHMrMSksbD1vKGEscihjLHMpKSxkPW8oYyxyKGwsbi1zLTEpKTtpZihmdW5jdGlvbih0LGUpe3Q9aC5mcm9tKHQpLGU9aC5mcm9tKGUpO3ZhciBuPTAsaT10Lmxlbmd0aDt0Lmxlbmd0aCE9PWUubGVuZ3RoJiYobisrLGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpKTt2YXIgcj0tMTtmb3IoOysrcjxpOyluKz10W3JdXmVbcl07cmV0dXJuIG59KGksZC5zbGljZSgwLHMpKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgZj1zO2Zvcig7MD09PWRbZl07KWYrKztpZigxIT09ZFtmKytdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBkLnNsaWNlKGYpfShmLGQpO2lmKDE9PT1sKXJldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIGk9ZS5zbGljZSgwLDIpLHI9MixvPTA7Zm9yKDswIT09ZVtyKytdOylpZihyPj1lLmxlbmd0aCl7bysrO2JyZWFrfXZhciBzPWUuc2xpY2UoMixyLTEpOygiMDAwMiIhPT1pLnRvU3RyaW5nKCJoZXgiKSYmIW58fCIwMDAxIiE9PWkudG9TdHJpbmcoImhleCIpJiZuKSYmbysrO3MubGVuZ3RoPDgmJm8rKztpZihvKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBlLnNsaWNlKHIpfSgwLGQsbik7aWYoMz09PWwpcmV0dXJuIGQ7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gcigpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBvPW4oMSkscz1uKDI3KSxhPW8uQnVmZmVyLHU9by5rTWF4TGVuZ3RoLGM9dC5jcnlwdG98fHQubXNDcnlwdG8saD1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIGwodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQhPXQpdGhyb3cgbmV3IFR5cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSBudW1iZXIiKTtpZih0Pmh8fHQ8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQ+dXx8dD5lKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gZCh0LGUsbil7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0IT10KXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKHQ+aHx8dDwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQrZT5ufHx0PnUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBmKHQsZSxuLHIpe2lmKGkuYnJvd3Nlcil7dmFyIG89dC5idWZmZXIsYT1uZXcgVWludDhBcnJheShvLGUsbik7cmV0dXJuIGMuZ2V0UmFuZG9tVmFsdWVzKGEpLHI/dm9pZCBpLm5leHRUaWNrKGZ1bmN0aW9uKCl7cihudWxsLHQpfSk6dH1pZighcilyZXR1cm4gcyhuKS5jb3B5KHQsZSksdDtzKG4sZnVuY3Rpb24obixpKXtpZihuKXJldHVybiByKG4pO2kuY29weSh0LGUpLHIobnVsbCx0KX0pfWMmJmMuZ2V0UmFuZG9tVmFsdWVzfHwhaS5icm93c2VyPyhlLnJhbmRvbUZpbGw9ZnVuY3Rpb24oZSxuLGkscil7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbilyPW4sbj0wLGk9ZS5sZW5ndGg7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgaSlyPWksaT1lLmxlbmd0aC1uO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcignImNiIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtyZXR1cm4gbChuLGUubGVuZ3RoKSxkKGksbixlLmxlbmd0aCksZihlLG4saSxyKX0sZS5yYW5kb21GaWxsU3luYz1mdW5jdGlvbihlLG4saSl7dm9pZCAwPT09biYmKG49MCk7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtsKG4sZS5sZW5ndGgpLHZvaWQgMD09PWkmJihpPWUubGVuZ3RoLW4pO3JldHVybiBkKGksbixlLmxlbmd0aCksZihlLG4saSl9KTooZS5yYW5kb21GaWxsPXIsZS5yYW5kb21GaWxsU3luYz1yKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMubmFtZT10LHRoaXMuX3Rva2VuU3RydWN0dXJhbFByb3BlcnR5VD1udWxsfX0oKTtlLlRva2VuPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oODIpOyFmdW5jdGlvbih0KXt0LnV1aWQ0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KDE2KSxlPW5ldyBBcnJheSgyNTYpLG49MDtuPDE2OysrbillW25dPSIwIituLnRvU3RyaW5nKDE2KTtmb3Iobj0xNjtuPDI1NjsrK24pZVtuXT1uLnRvU3RyaW5nKDE2KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaS5SYW5kb20uZ2V0UmFuZG9tVmFsdWVzKHQpLHRbNl09NjR8MTUmdFs2XSx0WzhdPTEyOHw2MyZ0WzhdLGVbdFswXV0rZVt0WzFdXStlW3RbMl1dK2VbdFszXV0rIi0iK2VbdFs0XV0rZVt0WzVdXSsiLSIrZVt0WzZdXStlW3RbN11dKyItIitlW3RbOF1dK2VbdFs5XV0rIi0iK2VbdFsxMF1dK2VbdFsxMV1dK2VbdFsxMl1dK2VbdFsxM11dK2VbdFsxNF1dK2VbdFsxNV1dfX0oKX0oZS5VVUlEfHwoZS5VVUlEPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMykscj1uKDM4KTt0LmV4cG9ydHM9ZnVuY3Rpb24gdChlLG4sbyxzLGEpe3JldHVybiBlPT09bnx8KG51bGw9PWV8fG51bGw9PW58fCFyKGUpJiYhcihuKT9lIT1lJiZuIT1uOmkoZSxuLG8scyx0LGEpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzNCkscj1uKDEyNCksbz1uKDI2OCkscz1uKDI3MiksYT1uKDI5MyksdT1uKDczKSxjPW4oMTI1KSxoPW4oMTI2KSxsPTEsZD0iW29iamVjdCBBcmd1bWVudHNdIixmPSJbb2JqZWN0IEFycmF5XSIscD0iW29iamVjdCBPYmplY3RdIixtPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGcsdixiKXt2YXIgeT11KHQpLF89dShlKSx3PXk/ZjphKHQpLHg9Xz9mOmEoZSksTT0odz13PT1kP3A6dyk9PXAsUz0oeD14PT1kP3A6eCk9PXAsRT13PT14O2lmKEUmJmModCkpe2lmKCFjKGUpKXJldHVybiExO3k9ITAsTT0hMX1pZihFJiYhTSlyZXR1cm4gYnx8KGI9bmV3IGkpLHl8fGgodCk/cih0LGUsbixnLHYsYik6byh0LGUsdyxuLGcsdixiKTtpZighKG4mbCkpe3ZhciBBPU0mJm0uY2FsbCh0LCJfX3dyYXBwZWRfXyIpLEM9UyYmbS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoQXx8Qyl7dmFyIGs9QT90LnZhbHVlKCk6dCxPPUM/ZS52YWx1ZSgpOmU7cmV0dXJuIGJ8fChiPW5ldyBpKSx2KGssTyxuLGcsYil9fXJldHVybiEhRSYmKGJ8fChiPW5ldyBpKSxzKHQsZSxuLGcsdixiKSl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCkscj1uKDI0MCksbz1uKDI0MSkscz1uKDI0MiksYT1uKDI0MyksdT1uKDI0NCk7ZnVuY3Rpb24gYyh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBpKHQpO3RoaXMuc2l6ZT1lLnNpemV9Yy5wcm90b3R5cGUuY2xlYXI9cixjLnByb3RvdHlwZS5kZWxldGU9byxjLnByb3RvdHlwZS5nZXQ9cyxjLnByb3RvdHlwZS5oYXM9YSxjLnByb3RvdHlwZS5zZXQ9dSx0LmV4cG9ydHM9Y30sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpLHI9QXJyYXkucHJvdG90eXBlLnNwbGljZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4hKG48MHx8KG49PWUubGVuZ3RoLTE/ZS5wb3AoKTpyLmNhbGwoZSxuLDEpLC0tdGhpcy5zaXplLDApKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4gbjwwP3ZvaWQgMDplW25dWzFdfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLl9fZGF0YV9fLHQpPi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19kYXRhX18scj1pKG4sdCk7cmV0dXJuIHI8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltyXVsxXT1lLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1uZXcgaSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTApLHI9big3MSksbz1uKDEyMykscz0yMDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgaSl7dmFyIGE9bi5fX2RhdGFfXztpZighcnx8YS5sZW5ndGg8cy0xKXJldHVybiBhLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgbyhhKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMTkpLHI9bigyNDgpLG89bigxMjEpLHM9bigxMjIpLGE9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sdT1GdW5jdGlvbi5wcm90b3R5cGUsYz1PYmplY3QucHJvdG90eXBlLGg9dS50b1N0cmluZyxsPWMuaGFzT3duUHJvcGVydHksZD1SZWdFeHAoIl4iK2guY2FsbChsKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISghbyh0KXx8cih0KSkmJihpKHQpP2Q6YSkudGVzdChzKHQpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPU9iamVjdC5wcm90b3R5cGUsbz1yLmhhc093blByb3BlcnR5LHM9ci50b1N0cmluZyxhPWk/aS50b1N0cmluZ1RhZzp2b2lkIDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW8uY2FsbCh0LGEpLG49dFthXTt0cnl7dFthXT12b2lkIDA7dmFyIGk9ITB9Y2F0Y2godCl7fXZhciByPXMuY2FsbCh0KTtyZXR1cm4gaSYmKGU/dFthXT1uOmRlbGV0ZSB0W2FdKSxyfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9bigyNDkpLG89KGk9L1teLl0rJC8uZXhlYyhyJiZyLmtleXMmJnIua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK2k6IiI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhbyYmbyBpbiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTkpWyJfX2NvcmUtanNfc2hhcmVkX18iXTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1Mikscj1uKDUwKSxvPW4oNzEpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGksbWFwOm5ldyhvfHxyKSxzdHJpbmc6bmV3IGl9fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjUzKSxyPW4oMjU0KSxvPW4oMjU1KSxzPW4oMjU2KSxhPW4oMjU3KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUyKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWk/aShudWxsKTp7fSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTIpLHI9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihpKXt2YXIgbj1lW3RdO3JldHVybiBuPT09cj92b2lkIDA6bn1yZXR1cm4gby5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiBpP3ZvaWQgMCE9PWVbdF06ci5jYWxsKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsblt0XT1pJiZ2b2lkIDA9PT1lP3I6ZSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09ZXx8Im51bWJlciI9PWV8fCJzeW1ib2wiPT1lfHwiYm9vbGVhbiI9PWU/Il9fcHJvdG9fXyIhPT10Om51bGw9PT10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQpLmdldCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0KS5oYXModCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0aGlzLHQpLHI9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1yPzA6MSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTIzKSxyPW4oMjY0KSxvPW4oMjY1KTtmdW5jdGlvbiBzKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBpOysrZTxuOyl0aGlzLmFkZCh0W2VdKX1zLnByb3RvdHlwZS5hZGQ9cy5wcm90b3R5cGUucHVzaD1yLHMucHJvdG90eXBlLmhhcz1vLHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUpe3ZhciBuPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsbiksdGhpc319LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzKGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNzIpLHI9bigyNjkpLG89bigxMTgpLHM9bigxMjQpLGE9bigyNzApLHU9bigyNzEpLGM9MSxoPTIsbD0iW29iamVjdCBCb29sZWFuXSIsZD0iW29iamVjdCBEYXRlXSIsZj0iW29iamVjdCBFcnJvcl0iLHA9IltvYmplY3QgTWFwXSIsbT0iW29iamVjdCBOdW1iZXJdIixnPSJbb2JqZWN0IFJlZ0V4cF0iLHY9IltvYmplY3QgU2V0XSIsYj0iW29iamVjdCBTdHJpbmddIix5PSJbb2JqZWN0IFN5bWJvbF0iLF89IltvYmplY3QgQXJyYXlCdWZmZXJdIix3PSJbb2JqZWN0IERhdGFWaWV3XSIseD1pP2kucHJvdG90eXBlOnZvaWQgMCxNPXg/eC52YWx1ZU9mOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSx4LFMsRSl7c3dpdGNoKG4pe2Nhc2UgdzppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgXzpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhUyhuZXcgcih0KSxuZXcgcihlKSkpO2Nhc2UgbDpjYXNlIGQ6Y2FzZSBtOnJldHVybiBvKCt0LCtlKTtjYXNlIGY6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIGc6Y2FzZSBiOnJldHVybiB0PT1lKyIiO2Nhc2UgcDp2YXIgQT1hO2Nhc2Ugdjp2YXIgQz1pJmM7aWYoQXx8KEE9dSksdC5zaXplIT1lLnNpemUmJiFDKXJldHVybiExO3ZhciBrPUUuZ2V0KHQpO2lmKGspcmV0dXJuIGs9PWU7aXw9aCxFLnNldCh0LGUpO3ZhciBPPXMoQSh0KSxBKGUpLGkseCxTLEUpO3JldHVybiBFLmRlbGV0ZSh0KSxPO2Nhc2UgeTppZihNKXJldHVybiBNLmNhbGwodCk9PU0uY2FsbChlKX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDE5KS5VaW50OEFycmF5O3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LGkpe25bKytlXT1baSx0XX0pLG59fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtuWysrZV09dH0pLG59fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNzMpLHI9MSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHMsYSx1KXt2YXIgYz1uJnIsaD1pKHQpLGw9aC5sZW5ndGg7aWYobCE9aShlKS5sZW5ndGgmJiFjKXJldHVybiExO2Zvcih2YXIgZD1sO2QtLTspe3ZhciBmPWhbZF07aWYoIShjP2YgaW4gZTpvLmNhbGwoZSxmKSkpcmV0dXJuITF9dmFyIHA9dS5nZXQodCk7aWYocCYmdS5nZXQoZSkpcmV0dXJuIHA9PWU7dmFyIG09ITA7dS5zZXQodCxlKSx1LnNldChlLHQpO2Zvcih2YXIgZz1jOysrZDxsOyl7dmFyIHY9dFtmPWhbZF1dLGI9ZVtmXTtpZihzKXZhciB5PWM/cyhiLHYsZixlLHQsdSk6cyh2LGIsZix0LGUsdSk7aWYoISh2b2lkIDA9PT15P3Y9PT1ifHxhKHYsYixuLHMsdSk6eSkpe209ITE7YnJlYWt9Z3x8KGc9ImNvbnN0cnVjdG9yIj09Zil9aWYobSYmIWcpe3ZhciBfPXQuY29uc3RydWN0b3Isdz1lLmNvbnN0cnVjdG9yO18hPXcmJiJjb25zdHJ1Y3RvciJpbiB0JiYiY29uc3RydWN0b3IiaW4gZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgXyYmXyBpbnN0YW5jZW9mIF8mJiJmdW5jdGlvbiI9PXR5cGVvZiB3JiZ3IGluc3RhbmNlb2YgdykmJihtPSExKX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSksbX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NCkscj1uKDI3Niksbz1uKDI3OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsbyxyKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NSkscj1uKDczKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBvPWUodCk7cmV0dXJuIHIodCk/bzppKG8sbih0KSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPWUubGVuZ3RoLHI9dC5sZW5ndGg7KytuPGk7KXRbcituXT1lW25dO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjc3KSxyPW4oMjc4KSxvPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUscz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGE9cz9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksaShzKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBvLmNhbGwodCxlKX0pKX06cjt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGgscj0wLG89W107KytuPGk7KXt2YXIgcz10W25dO2UocyxuLHQpJiYob1tyKytdPXMpfXJldHVybiBvfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MCkscj1uKDI4OSksbz1uKDI5Mik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpP2kodCk6cih0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MSkscj1uKDI4Miksbz1uKDczKSxzPW4oMTI1KSxhPW4oMjg1KSx1PW4oMTI2KSxjPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49byh0KSxoPSFuJiZyKHQpLGw9IW4mJiFoJiZzKHQpLGQ9IW4mJiFoJiYhbCYmdSh0KSxmPW58fGh8fGx8fGQscD1mP2kodC5sZW5ndGgsU3RyaW5nKTpbXSxtPXAubGVuZ3RoO2Zvcih2YXIgZyBpbiB0KSFlJiYhYy5jYWxsKHQsZyl8fGYmJigibGVuZ3RoIj09Z3x8bCYmKCJvZmZzZXQiPT1nfHwicGFyZW50Ij09Zyl8fGQmJigiYnVmZmVyIj09Z3x8ImJ5dGVMZW5ndGgiPT1nfHwiYnl0ZU9mZnNldCI9PWcpfHxhKGcsbSkpfHxwLnB1c2goZyk7cmV0dXJuIHB9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPUFycmF5KHQpOysrbjx0OylpW25dPWUobik7cmV0dXJuIGl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODMpLHI9bigzOCksbz1PYmplY3QucHJvdG90eXBlLHM9by5oYXNPd25Qcm9wZXJ0eSxhPW8ucHJvcGVydHlJc0VudW1lcmFibGUsdT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/aTpmdW5jdGlvbih0KXtyZXR1cm4gcih0KSYmcy5jYWxsKHQsImNhbGxlZSIpJiYhYS5jYWxsKHQsImNhbGxlZSIpfTt0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigzOCksbz0iW29iamVjdCBBcmd1bWVudHNdIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIodCkmJmkodCk9PW99fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiExfX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxLGk9L14oPzowfFsxLTldXGQqKSQvO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXR5cGVvZiB0O3JldHVybiEhKGU9bnVsbD09ZT9uOmUpJiYoIm51bWJlciI9PXJ8fCJzeW1ib2wiIT1yJiZpLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTI3KSxvPW4oMzgpLHM9e307c1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09c1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09c1siW29iamVjdCBJbnQ4QXJyYXldIl09c1siW29iamVjdCBJbnQxNkFycmF5XSJdPXNbIltvYmplY3QgSW50MzJBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09c1siW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXNbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsc1siW29iamVjdCBBcmd1bWVudHNdIl09c1siW29iamVjdCBBcnJheV0iXT1zWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPXNbIltvYmplY3QgQm9vbGVhbl0iXT1zWyJbb2JqZWN0IERhdGFWaWV3XSJdPXNbIltvYmplY3QgRGF0ZV0iXT1zWyJbb2JqZWN0IEVycm9yXSJdPXNbIltvYmplY3QgRnVuY3Rpb25dIl09c1siW29iamVjdCBNYXBdIl09c1siW29iamVjdCBOdW1iZXJdIl09c1siW29iamVjdCBPYmplY3RdIl09c1siW29iamVjdCBSZWdFeHBdIl09c1siW29iamVjdCBTZXRdIl09c1siW29iamVjdCBTdHJpbmddIl09c1siW29iamVjdCBXZWFrTWFwXSJdPSExLHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbyh0KSYmcih0Lmxlbmd0aCkmJiEhc1tpKHQpXX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKX19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTIwKSxyPWUmJiFlLm5vZGVUeXBlJiZlLG89ciYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiYhdC5ub2RlVHlwZSYmdCxzPW8mJm8uZXhwb3J0cz09PXImJmkucHJvY2VzcyxhPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW8mJm8ucmVxdWlyZSYmby5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fHMmJnMuYmluZGluZyYmcy5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKTt0LmV4cG9ydHM9YX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5MCkscj1uKDI5MSksbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4gcih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gT2JqZWN0KHQpKW8uY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9fSxmdW5jdGlvbih0LGUpe3ZhciBuPU9iamVjdC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvdG90eXBlfHxuKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEyOCkoT2JqZWN0LmtleXMsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTE5KSxyPW4oMTI3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnIodC5sZW5ndGgpJiYhaSh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5NCkscj1uKDcxKSxvPW4oMjk1KSxzPW4oMjk2KSxhPW4oMjk3KSx1PW4oMzcpLGM9bigxMjIpLGg9YyhpKSxsPWMociksZD1jKG8pLGY9YyhzKSxwPWMoYSksbT11OyhpJiYiW29iamVjdCBEYXRhVmlld10iIT1tKG5ldyBpKG5ldyBBcnJheUJ1ZmZlcigxKSkpfHxyJiYiW29iamVjdCBNYXBdIiE9bShuZXcgcil8fG8mJiJbb2JqZWN0IFByb21pc2VdIiE9bShvLnJlc29sdmUoKSl8fHMmJiJbb2JqZWN0IFNldF0iIT1tKG5ldyBzKXx8YSYmIltvYmplY3QgV2Vha01hcF0iIT1tKG5ldyBhKSkmJihtPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCksbj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxpPW4/YyhuKToiIjtpZihpKXN3aXRjaChpKXtjYXNlIGg6cmV0dXJuIltvYmplY3QgRGF0YVZpZXddIjtjYXNlIGw6cmV0dXJuIltvYmplY3QgTWFwXSI7Y2FzZSBkOnJldHVybiJbb2JqZWN0IFByb21pc2VdIjtjYXNlIGY6cmV0dXJuIltvYmplY3QgU2V0XSI7Y2FzZSBwOnJldHVybiJbb2JqZWN0IFdlYWtNYXBdIn1yZXR1cm4gZX0pLHQuZXhwb3J0cz1tfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIkRhdGFWaWV3Iik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5KShuKDE5KSwiUHJvbWlzZSIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIlNldCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIldlYWtNYXAiKTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigyOTkpLG89bigzOCkscz0iW29iamVjdCBPYmplY3RdIixhPUZ1bmN0aW9uLnByb3RvdHlwZSx1PU9iamVjdC5wcm90b3R5cGUsYz1hLnRvU3RyaW5nLGg9dS5oYXNPd25Qcm9wZXJ0eSxsPWMuY2FsbChPYmplY3QpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbyh0KXx8aSh0KSE9cylyZXR1cm4hMTt2YXIgZT1yKHQpO2lmKG51bGw9PT1lKXJldHVybiEwO3ZhciBuPWguY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmYy5jYWxsKG4pPT1sfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTI4KShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDI1KTtlLnNldD1mdW5jdGlvbih0LGUsbil7aWYobnVsbD09dClyZXR1cm4gdGhpczt2YXIgbztpZigib2JqZWN0Ij09dHlwZW9mIHQ/KG89dCxuPWUpOihvPXt9KVt0XT1lLG58fChuPXt9KSwhdGhpcy5fdmFsaWRhdGUobyxuKSlyZXR1cm4hMTt2YXIgcz1uLnVuc2V0LGE9bi5zaWxlbnQsdT1bXSxjPXRoaXMuX2NoYW5naW5nO3RoaXMuX2NoYW5naW5nPSEwLGN8fCh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM9aSh7fSx0aGlzLmF0dHJpYnV0ZXMpLHRoaXMuY2hhbmdlZD17fSk7dmFyIGg9dGhpcy5hdHRyaWJ1dGVzLGw9dGhpcy5jaGFuZ2VkLGQ9dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzO2Zvcih2YXIgZiBpbiBvKWU9b1tmXSxyLmlzRXF1YWwoaFtmXSxlKXx8dS5wdXNoKGYpLHIuaXNFcXVhbChkW2ZdLGUpP2RlbGV0ZSBsW2ZdOmxbZl09ZSxzP2RlbGV0ZSBoW2ZdOmhbZl09ZTtpZih0aGlzLmlkPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpLCFhKXt1Lmxlbmd0aCYmKHRoaXMuX3BlbmRpbmc9bik7Zm9yKHZhciBwPTA7cDx1Lmxlbmd0aDtwKyspdGhpcy50cmlnZ2VyKCJjaGFuZ2U6Iit1W3BdLHRoaXMsaFt1W3BdXSxuKX1pZihjKXJldHVybiB0aGlzO2lmKCFhKWZvcig7dGhpcy5fcGVuZGluZzspbj10aGlzLl9wZW5kaW5nLHRoaXMuX3BlbmRpbmc9ITEsdGhpcy50cmlnZ2VyKCJjaGFuZ2UiLHRoaXMsbik7cmV0dXJuIHRoaXMuX3BlbmRpbmc9ITEsdGhpcy5fY2hhbmdpbmc9ITEsdGhpc319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTI5KSxzPUVsZW1lbnQucHJvdG90eXBlLGE9cy5tYXRjaGVzfHxzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHMubXNNYXRjaGVzU2VsZWN0b3J8fHMub01hdGNoZXNTZWxlY3Rvcnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksbj1lLmxlbmd0aDstLW4+PTAmJmUuaXRlbShuKSE9PXRoaXM7KTtyZXR1cm4gbj4tMX0sdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9yZW1vdmVFbGVtZW50PWZ1bmN0aW9uKCl7dGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdGhpcy5lbC5wYXJlbnROb2RlJiZ0aGlzLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbCl9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3RoaXMuZWw9dH0sZS5wcm90b3R5cGUuX3NldEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpZSBpbiB0aGlzLmVsP3RoaXMuZWxbZV09dFtlXTp0aGlzLmVsLnNldEF0dHJpYnV0ZShlLHRbZV0pfSxlLnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbih0LGUsbil7InN0cmluZyIhPXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdm9pZCAwPT09dGhpcy5fZG9tRXZlbnRzJiYodGhpcy5fZG9tRXZlbnRzPVtdKTt2YXIgaT10aGlzLmVsLHI9ZT9mdW5jdGlvbih0KXtmb3IodmFyIHI9dC50YXJnZXR8fHQuc3JjRWxlbWVudDtyJiZyIT09aTtyPXIucGFyZW50Tm9kZSlpZihhLmNhbGwocixlKSlyZXR1cm4gdC5kZWxlZ2F0ZVRhcmdldD1yLG4uaGFuZGxlRXZlbnQ/bi5oYW5kbGVFdmVudCh0KTpuKHQpfTpuO3JldHVybiB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIodCxyLCExKSx0aGlzLl9kb21FdmVudHMucHVzaCh7ZXZlbnROYW1lOnQsaGFuZGxlcjpyLGxpc3RlbmVyOm4sc2VsZWN0b3I6ZX0pLHJ9LGUucHJvdG90eXBlLnVuZGVsZWdhdGU9ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKWZvcih2YXIgaT10aGlzLl9kb21FdmVudHMuc2xpY2UoKSxyPWkubGVuZ3RoO3ItLTspe3ZhciBvPWlbcl07IShvLmV2ZW50TmFtZSE9PXR8fG4mJm8ubGlzdGVuZXIhPT1ufHxlJiZvLnNlbGVjdG9yIT09ZSkmJih0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoby5ldmVudE5hbWUsby5oYW5kbGVyLCExKSx0aGlzLl9kb21FdmVudHMuc3BsaWNlKHIsMSkpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS51bmRlbGVnYXRlRXZlbnRzPWZ1bmN0aW9uKCl7aWYodGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKXtmb3IodmFyIHQ9dGhpcy5fZG9tRXZlbnRzLmxlbmd0aCxlPTA7ZTx0O2UrKyl7dmFyIG49dGhpcy5fZG9tRXZlbnRzW2VdO3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLmV2ZW50TmFtZSxuLmhhbmRsZXIsITEpfXRoaXMuX2RvbUV2ZW50cy5sZW5ndGg9MH1yZXR1cm4gdGhpc30sZX0oby5WaWV3KTtlLk5hdGl2ZVZpZXc9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpLHI9KGk9aTwwP01hdGgubWF4KDAsaStvKTpNYXRoLm1pbihpLG8tMSkpPG4/aSsxKyhvLW4pOmktbisxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuK3MpJW87aWYodFthXT09PWUpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZih0W2FdPT09ZSlyZXR1cm4gYX1yZXR1cm4tMX1mdW5jdGlvbiBpKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPS0xKTt2YXIgcixvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybi0xO249bjwwP01hdGgubWF4KDAsbitvKTpNYXRoLm1pbihuLG8tMSkscj0oaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk8bj9pKzErKG8tbik6aS1uKzE7Zm9yKHZhciBzPTA7czxyOysrcyl7dmFyIGE9KG4rcyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gcih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbyh0LGUsbil7dm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49LTEpO3ZhciBpPXQubGVuZ3RoO2lmKCEoaTw9MSkpZm9yKGU9ZTwwP01hdGgubWF4KDAsZStpKTpNYXRoLm1pbihlLGktMSksbj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKTtlPG47KXt2YXIgcj10W2VdLG89dFtuXTt0W2UrK109byx0W24tLV09cn19ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKGU8MCYmKGUrPW4pLCEoZTwwfHxlPj1uKSl7Zm9yKHZhciBpPXRbZV0scj1lKzE7cjxuOysrcil0W3ItMV09dFtyXTtyZXR1cm4gdC5sZW5ndGg9bi0xLGl9fXQuZmlyc3RJbmRleE9mPWUsdC5sYXN0SW5kZXhPZj1uLHQuZmluZEZpcnN0SW5kZXg9aSx0LmZpbmRMYXN0SW5kZXg9cix0LmZpbmRGaXJzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PXImJihyPS0xKTt2YXIgbz1pKHQsZSxuLHIpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5maW5kTGFzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPS0xKSx2b2lkIDA9PT1pJiYoaT0wKTt2YXIgbz1yKHQsZSxuLGkpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5sb3dlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKTwwPyhzPWMrMSxhLT11KzEpOmE9dX1yZXR1cm4gc30sdC51cHBlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKT4wP2E9dToocz1jKzEsYS09dSsxKX1yZXR1cm4gc30sdC5tb3ZlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10Lmxlbmd0aDtpZighKGk8PTEpJiYoZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaS0xKSkhPT0obj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKSkpe2Zvcih2YXIgcj10W2VdLG89ZTxuPzE6LTEscz1lO3MhPT1uO3MrPW8pdFtzXT10W3Mrb107dFtuXT1yfX0sdC5yZXZlcnNlPW8sdC5yb3RhdGU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKCEocjw9MXx8KG49bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSkpPj0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSkpKXt2YXIgcz1pLW4rMTtpZihlPjA/ZSU9czplPDAmJihlPShlJXMrcyklcyksMCE9PWUpe3ZhciBhPW4rZTtvKHQsbixhLTEpLG8odCxhLGkpLG8odCxuLGkpfX19LHQuZmlsbD1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMCE9PXIpe3ZhciBvO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksbz0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSk8bj9pKzErKHItbik6aS1uKzE7Zm9yKHZhciBzPTA7czxvOysrcyl0WyhuK3MpJXJdPWV9fSx0Lmluc2VydD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5sZW5ndGg7ZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaSk7Zm9yKHZhciByPWk7cj5lOy0tcil0W3JdPXRbci0xXTt0W2VdPW59LHQucmVtb3ZlQXQ9cyx0LnJlbW92ZUZpcnN0T2Y9ZnVuY3Rpb24odCxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPWUodCxuLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVMYXN0T2Y9ZnVuY3Rpb24odCxlLGkscil7dm9pZCAwPT09aSYmKGk9LTEpLHZvaWQgMD09PXImJihyPTApO3ZhciBvPW4odCxlLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVBbGxPZj1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuIDA7bj1uPDA/TWF0aC5tYXgoMCxuK3IpOk1hdGgubWluKG4sci0xKSxpPWk8MD9NYXRoLm1heCgwLGkrcik6TWF0aC5taW4oaSxyLTEpO2Zvcih2YXIgbz0wLHM9MDtzPHI7KytzKW48PWkmJnM+PW4mJnM8PWkmJnRbc109PT1lP28rKzppPG4mJihzPD1pfHxzPj1uKSYmdFtzXT09PWU/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfSx0LnJlbW92ZUZpcnN0V2hlcmU9ZnVuY3Rpb24odCxlLG4scil7dmFyIG87dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBhPWkodCxlLG4scik7cmV0dXJuLTEhPT1hJiYobz1zKHQsYSkpLHtpbmRleDphLHZhbHVlOm99fSx0LnJlbW92ZUxhc3RXaGVyZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgbzt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIGE9cih0LGUsbixpKTtyZXR1cm4tMSE9PWEmJihvPXModCxhKSkse2luZGV4OmEsdmFsdWU6b319LHQucmVtb3ZlQWxsV2hlcmU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKTtmb3IodmFyIG89MCxzPTA7czxyOysrcyluPD1pJiZzPj1uJiZzPD1pJiZlKHRbc10scyk/bysrOmk8biYmKHM8PWl8fHM+PW4pJiZlKHRbc10scyk/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfX0oZS5BcnJheUV4dHx8KGUuQXJyYXlFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS5jaGFpbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gbmV3IHIoaS5pdGVyKHQubWFwKGkuaXRlcikpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2Nsb25lZD0hMSx0aGlzLl9zb3VyY2U9dCx0aGlzLl9hY3RpdmU9dm9pZCAwfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCkpO3JldHVybiBlLl9hY3RpdmU9dGhpcy5fYWN0aXZlJiZ0aGlzLl9hY3RpdmUuY2xvbmUoKSxlLl9jbG9uZWQ9ITAsdGhpcy5fY2xvbmVkPSEwLGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih2b2lkIDA9PT10aGlzLl9hY3RpdmUpe3ZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCk7aWYodm9pZCAwPT09dClyZXR1cm47dGhpcy5fYWN0aXZlPXRoaXMuX2Nsb25lZD90LmNsb25lKCk6dH12YXIgZT10aGlzLl9hY3RpdmUubmV4dCgpO3JldHVybiB2b2lkIDAhPT1lP2U6KHRoaXMuX2FjdGl2ZT12b2lkIDAsdGhpcy5uZXh0KCkpfSx0fSgpO2UuQ2hhaW5JdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpfTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHR9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXt9LHR9KCk7ZS5FbXB0eUl0ZXJhdG9yPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuZmlsdGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5fZm4sbj10aGlzLl9zb3VyY2U7dm9pZCAwIT09KHQ9bi5uZXh0KCkpOylpZihlKHQsdGhpcy5faW5kZXgrKykpcmV0dXJuIHR9LHR9KCk7ZS5GaWx0ZXJJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDE4KTtlLmZpbmQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aS5pdGVyKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoZShuLHIrKykpcmV0dXJuIG59LGUubWluPWZ1bmN0aW9uKHQsZSl7dmFyIG49aS5pdGVyKHQpLHI9bi5uZXh0KCk7aWYodm9pZCAwIT09cil7Zm9yKHZhciBvPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MCYmKG89cik7cmV0dXJuIG99fSxlLm1heD1mdW5jdGlvbih0LGUpe3ZhciBuPWkuaXRlcih0KSxyPW4ubmV4dCgpO2lmKHZvaWQgMCE9PXIpe2Zvcih2YXIgbz1yO3ZvaWQgMCE9PShyPW4ubmV4dCgpKTspZShyLG8pPjAmJihvPXIpO3JldHVybiBvfX0sZS5taW5tYXg9ZnVuY3Rpb24odCxlKXt2YXIgbj1pLml0ZXIodCkscj1uLm5leHQoKTtpZih2b2lkIDAhPT1yKXtmb3IodmFyIG89cixzPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MD9vPXI6ZShyLHMpPjAmJihzPXIpO3JldHVybltvLHNdfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UubWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9mbi5jYWxsKHZvaWQgMCx0LHRoaXMuX2luZGV4KyspfSx0fSgpO2UuTWFwSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yYW5nZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWU/bmV3IHIoMCx0LDEpOm5ldyByKHQsZSx2b2lkIDA9PT1uPzE6bil9O3ZhciBpLHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLl9pbmRleD0wLHRoaXMuX3N0YXJ0PXQsdGhpcy5fc3RvcD1lLHRoaXMuX3N0ZXA9bix0aGlzLl9sZW5ndGg9aS5yYW5nZUxlbmd0aCh0LGUsbil9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdCh0aGlzLl9zdGFydCx0aGlzLl9zdG9wLHRoaXMuX3N0ZXApO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYoISh0aGlzLl9pbmRleD49dGhpcy5fbGVuZ3RoKSlyZXR1cm4gdGhpcy5fc3RhcnQrdGhpcy5fc3RlcCp0aGlzLl9pbmRleCsrfSx0fSgpO2UuUmFuZ2VJdGVyYXRvcj1yLGZ1bmN0aW9uKHQpe3QucmFuZ2VMZW5ndGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiAwPT09bj8xLzA6dD5lJiZuPjA/MDp0PGUmJm48MD8wOk1hdGguY2VpbCgoZS10KS9uKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UucmVkdWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLG89aS5pdGVyKHQpLHM9by5uZXh0KCk7aWYodm9pZCAwPT09cyYmdm9pZCAwPT09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmFibGUgd2l0aCBubyBpbml0aWFsIHZhbHVlLiIpO2lmKHZvaWQgMD09PXMpcmV0dXJuIG47dmFyIGEsdSxjPW8ubmV4dCgpO2lmKHZvaWQgMD09PWMmJnZvaWQgMD09PW4pcmV0dXJuIHM7aWYodm9pZCAwPT09YylyZXR1cm4gZShuLHMscisrKTtmb3IoYT1lKHZvaWQgMD09PW4/czplKG4scyxyKyspLGMscisrKTt2b2lkIDAhPT0odT1vLm5leHQoKSk7KWE9ZShhLHUscisrKTtyZXR1cm4gYX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVwZWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBpKHQsZSl9LGUub25jZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkodCwxKX07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fdmFsdWU9dCx0aGlzLl9jb3VudD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3ZhbHVlLHRoaXMuX2NvdW50KX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5fY291bnQ8PTApKXJldHVybiB0aGlzLl9jb3VudC0tLHRoaXMuX3ZhbHVlfSx0fSgpO2UuUmVwZWF0SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXRybz1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5yZXRybz90LnJldHJvKCk6bmV3IGkodCl9O3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9zb3VyY2U9dCx0aGlzLl9pbmRleD10Lmxlbmd0aC0xfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlKTtyZXR1cm4gZS5faW5kZXg9dGhpcy5faW5kZXgsZX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5faW5kZXg8MHx8dGhpcy5faW5kZXg+PXRoaXMuX3NvdXJjZS5sZW5ndGgpKXJldHVybiB0aGlzLl9zb3VyY2VbdGhpcy5faW5kZXgtLV19LHR9KCk7ZS5SZXRyb0FycmF5SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50b3BvbG9naWNTb3J0PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49bmV3IFNldCxyPW5ldyBNYXA7cmV0dXJuIGkuZWFjaCh0LGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9ci5nZXQobik7aT9pLnB1c2goZSk6ci5zZXQobixbZV0pfSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7byhlKX0pLGU7ZnVuY3Rpb24gbyh0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciBpPXIuZ2V0KHQpO2kmJmkuZm9yRWFjaChvKSxlLnB1c2godCl9fX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2Uuc3RyaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fc3RlcD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5jbG9uZSgpLHRoaXMuX3N0ZXApfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCksZT10aGlzLl9zdGVwLTE7ZT4wOy0tZSl0aGlzLl9zb3VyY2UubmV4dCgpO3JldHVybiB0fSx0fSgpO2UuU3RyaWRlSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbil7dm9pZCAwPT09biYmKG49MCk7Zm9yKHZhciBpPW5ldyBBcnJheShlLmxlbmd0aCkscj0wLG89bixzPWUubGVuZ3RoO3I8czsrK3IsKytvKXtpZigtMT09PShvPXQuaW5kZXhPZihlW3JdLG8pKSlyZXR1cm4gbnVsbDtpW3JdPW99cmV0dXJuIGl9dC5maW5kSW5kaWNlcz1lLHQubWF0Y2hTdW1PZlNxdWFyZXM9ZnVuY3Rpb24odCxuLGkpe3ZvaWQgMD09PWkmJihpPTApO3ZhciByPWUodCxuLGkpO2lmKCFyKXJldHVybiBudWxsO2Zvcih2YXIgbz0wLHM9MCxhPXIubGVuZ3RoO3M8YTsrK3Mpe3ZhciB1PXJbc10taTtvKz11KnV9cmV0dXJue3Njb3JlOm8saW5kaWNlczpyfX0sdC5tYXRjaFN1bU9mRGVsdGFzPWZ1bmN0aW9uKHQsbixpKXt2b2lkIDA9PT1pJiYoaT0wKTt2YXIgcj1lKHQsbixpKTtpZighcilyZXR1cm4gbnVsbDtmb3IodmFyIG89MCxzPWktMSxhPTAsdT1yLmxlbmd0aDthPHU7KythKXt2YXIgYz1yW2FdO28rPWMtcy0xLHM9Y31yZXR1cm57c2NvcmU6byxpbmRpY2VzOnJ9fSx0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9MCxvPTAscz1lLmxlbmd0aDtyPHM7KXtmb3IodmFyIGE9ZVtyXSx1PWVbcl07KytyPHMmJmVbcl09PT11KzE7KXUrKztvPGEmJmkucHVzaCh0LnNsaWNlKG8sYSkpLGE8dSsxJiZpLnB1c2gobih0LnNsaWNlKGEsdSsxKSkpLG89dSsxfXJldHVybiBvPHQubGVuZ3RoJiZpLnB1c2godC5zbGljZShvKSksaX19KGUuU3RyaW5nRXh0fHwoZS5TdHJpbmdFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50YWtlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fY291bnQ9ZX1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9zb3VyY2UuY2xvbmUoKSx0aGlzLl9jb3VudCl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2NvdW50PD0wKSl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9jb3VudC0tLHR9fSx0fSgpO2UuVGFrZUl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuemlwPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgcih0Lm1hcChpLml0ZXIpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3NvdXJjZT10fXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xvbmUoKX0pKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkodGhpcy5fc291cmNlLmxlbmd0aCksZT0wLG49dGhpcy5fc291cmNlLmxlbmd0aDtlPG47KytlKXt2YXIgaT10aGlzLl9zb3VyY2VbZV0ubmV4dCgpO2lmKHZvaWQgMD09PWkpcmV0dXJuO3RbZV09aX1yZXR1cm4gdH0sdH0oKTtlLlppcEl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3QuYm94U2l6aW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLmJvcmRlclRvcFdpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5ib3JkZXJMZWZ0V2lkdGgpfHwwLHI9cGFyc2VGbG9hdChlLmJvcmRlclJpZ2h0V2lkdGgpfHwwLG89cGFyc2VGbG9hdChlLmJvcmRlckJvdHRvbVdpZHRoKXx8MCxzPXBhcnNlRmxvYXQoZS5wYWRkaW5nVG9wKXx8MCxhPXBhcnNlRmxvYXQoZS5wYWRkaW5nTGVmdCl8fDAsdT1wYXJzZUZsb2F0KGUucGFkZGluZ1JpZ2h0KXx8MCxjPXBhcnNlRmxvYXQoZS5wYWRkaW5nQm90dG9tKXx8MDtyZXR1cm57Ym9yZGVyVG9wOm4sYm9yZGVyTGVmdDppLGJvcmRlclJpZ2h0OnIsYm9yZGVyQm90dG9tOm8scGFkZGluZ1RvcDpzLHBhZGRpbmdMZWZ0OmEscGFkZGluZ1JpZ2h0OnUscGFkZGluZ0JvdHRvbTpjLGhvcml6b250YWxTdW06aSthK3Urcix2ZXJ0aWNhbFN1bTpuK3MrYytvfX0sdC5zaXplTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLm1pbldpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5taW5IZWlnaHQpfHwwLHI9cGFyc2VGbG9hdChlLm1heFdpZHRoKXx8MS8wLG89cGFyc2VGbG9hdChlLm1heEhlaWdodCl8fDEvMDtyZXR1cm57bWluV2lkdGg6bixtaW5IZWlnaHQ6aSxtYXhXaWR0aDpyPU1hdGgubWF4KG4sciksbWF4SGVpZ2h0Om89TWF0aC5tYXgoaSxvKX19LHQuaGl0VGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZT49aS5sZWZ0JiZlPGkucmlnaHQmJm4+PWkudG9wJiZuPGkuYm90dG9tfSx0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpLnRvcDw9bi50b3AmJmkuYm90dG9tPj1uLmJvdHRvbXx8KGkudG9wPG4udG9wJiZpLmhlaWdodDw9bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkuYm90dG9tPm4uYm90dG9tJiZpLmhlaWdodD49bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkudG9wPG4udG9wJiZpLmhlaWdodD5uLmhlaWdodD90LnNjcm9sbFRvcC09bi5ib3R0b20taS5ib3R0b206aS5ib3R0b20+bi5ib3R0b20mJmkuaGVpZ2h0PG4uaGVpZ2h0JiYodC5zY3JvbGxUb3AtPW4uYm90dG9tLWkuYm90dG9tKSl9fShlLkVsZW1lbnRFeHR8fChlLkVsZW1lbnRFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dC5JU19NQUM9ISFuYXZpZ2F0b3IucGxhdGZvcm0ubWF0Y2goL01hYy9pKSx0LklTX1dJTj0hIW5hdmlnYXRvci5wbGF0Zm9ybS5tYXRjaCgvV2luL2kpLHQuSVNfSUU9L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdC5JU19FREdFPS9FZGdlLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfShlLlBsYXRmb3JtfHwoZS5QbGF0Zm9ybT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LmNhbGN1bGF0ZVNwZWNpZmljaXR5PWZ1bmN0aW9uKHQpe2lmKHQgaW4gaS5zcGVjaWZpY2l0eUNhY2hlKXJldHVybiBpLnNwZWNpZmljaXR5Q2FjaGVbdF07dmFyIGU9aS5jYWxjdWxhdGVTaW5nbGUodCk7cmV0dXJuIGkuc3BlY2lmaWNpdHlDYWNoZVt0XT1lfSx0LmlzVmFsaWQ9ZnVuY3Rpb24odCl7aWYodCBpbiBpLnZhbGlkaXR5Q2FjaGUpcmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XTt2YXIgZT0hMDt0cnl7aS50ZXN0RWxlbS5xdWVyeVNlbGVjdG9yKHQpfWNhdGNoKHQpe2U9ITF9cmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XT1lfSx0Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5wcm90b01hdGNoRnVuYy5jYWxsKHQsZSl9fShlLlNlbGVjdG9yfHwoZS5TZWxlY3Rvcj17fSkpLGZ1bmN0aW9uKHQpe3ZhciBlO3Quc3BlY2lmaWNpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudmFsaWRpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudGVzdEVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5wcm90b01hdGNoRnVuYz0oZT1FbGVtZW50LnByb3RvdHlwZSkubWF0Y2hlc3x8ZS5tYXRjaGVzU2VsZWN0b3J8fGUubW96TWF0Y2hlc1NlbGVjdG9yfHxlLm1zTWF0Y2hlc1NlbGVjdG9yfHxlLm9NYXRjaGVzU2VsZWN0b3J8fGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxmdW5jdGlvbih0KXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KTtyZXR1cm4tMSE9PUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0aGlzKX0sdC5jYWxjdWxhdGVTaW5nbGU9ZnVuY3Rpb24odCl7dmFyIGU9MCxoPTAsbD0wO2Z1bmN0aW9uIGQoZSl7dmFyIG49dC5tYXRjaChlKTtyZXR1cm4gbnVsbCE9PW4mJih0PXQuc2xpY2UoblswXS5sZW5ndGgpLCEwKX1mb3IodD0odD10LnNwbGl0KCIsIiwxKVswXSkucmVwbGFjZShjLCIgJDEgIik7dC5sZW5ndGg+MDspaWYoZChuKSllKys7ZWxzZSBpZihkKGkpKWgrKztlbHNlIGlmKGQocikpaCsrO2Vsc2UgaWYoZChzKSlsKys7ZWxzZSBpZihkKGEpKWgrKztlbHNlIGlmKGQobykpbCsrO2Vsc2UgaWYoIWQodSkpcmV0dXJuIDA7cmV0dXJuKGU9TWF0aC5taW4oZSwyNTUpKTw8MTZ8KGg9TWF0aC5taW4oaCwyNTUpKTw8OHwobD1NYXRoLm1pbihsLDI1NSkpfTt2YXIgbj0vXiNbXlxzXCs+fiNcLlxbOl0rLyxpPS9eXC5bXlxzXCs+fiNcLlxbOl0rLyxyPS9eXFtbXlxdXStcXS8sbz0vXlteXHNcKz5+I1wuXFs6XSsvLHM9L14oOjpbXlxzXCs+fiNcLlxbOl0rfDpmaXJzdC1saW5lfDpmaXJzdC1sZXR0ZXJ8OmJlZm9yZXw6YWZ0ZXIpLyxhPS9eOlteXHNcKz5+I1wuXFs6XSsvLHU9L15bXHNcKz5+XCpdKy8sYz0vOm5vdFwoKFteXCldKylcKS9nfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX0obigzMjEpKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1uKDIpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwsdGhpcy5fbGVuZ3RoPTB9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbXB0eSIse2dldDpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fbGVuZ3RofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpcnN0P3RoaXMuX2ZpcnN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFzdD90aGlzLl9sYXN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXJzdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3ROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhc3R9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5Gb3J3YXJkVmFsdWVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0LlJldHJvVmFsdWVJdGVyYXRvcih0aGlzLl9sYXN0KX0sdC5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuRm9yd2FyZE5vZGVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvTm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuUmV0cm9Ob2RlSXRlcmF0b3IodGhpcy5fbGFzdCl9LHQucHJvdG90eXBlLmFkZEZpcnN0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBpLkxpbmtlZExpc3ROb2RlKHRoaXMsdCk7cmV0dXJuIHRoaXMuX2ZpcnN0PyhlLm5leHQ9dGhpcy5fZmlyc3QsdGhpcy5fZmlyc3QucHJldj1lLHRoaXMuX2ZpcnN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuYWRkTGFzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpO3JldHVybiB0aGlzLl9sYXN0PyhlLnByZXY9dGhpcy5fbGFzdCx0aGlzLl9sYXN0Lm5leHQ9ZSx0aGlzLl9sYXN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fGU9PT10aGlzLl9maXJzdClyZXR1cm4gdGhpcy5hZGRGaXJzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIucHJldjtyZXR1cm4gbi5uZXh0PXIsbi5wcmV2PW8sci5wcmV2PW4sby5uZXh0PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24odCxlKXtpZighZXx8ZT09PXRoaXMuX2xhc3QpcmV0dXJuIHRoaXMuYWRkTGFzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIubmV4dDtyZXR1cm4gbi5uZXh0PW8sbi5wcmV2PXIsci5uZXh0PW4sby5wcmV2PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUucmVtb3ZlRmlyc3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9maXJzdDtpZih0KXJldHVybiB0PT09dGhpcy5fbGFzdD8odGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwpOih0aGlzLl9maXJzdD10Lm5leHQsdGhpcy5fZmlyc3QucHJldj1udWxsKSx0Lmxpc3Q9bnVsbCx0Lm5leHQ9bnVsbCx0LnByZXY9bnVsbCx0aGlzLl9sZW5ndGgtLSx0LnZhbHVlfSx0LnByb3RvdHlwZS5yZW1vdmVMYXN0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbGFzdDtpZih0KXJldHVybiB0PT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKToodGhpcy5fbGFzdD10LnByZXYsdGhpcy5fbGFzdC5uZXh0PW51bGwpLHQubGlzdD1udWxsLHQubmV4dD1udWxsLHQucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tLHQudmFsdWV9LHQucHJvdG90eXBlLnJlbW92ZU5vZGU9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgaS5MaW5rZWRMaXN0Tm9kZSl8fHQubGlzdCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJOb2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgZT10O2U9PT10aGlzLl9maXJzdCYmZT09PXRoaXMuX2xhc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKTplPT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PWUubmV4dCx0aGlzLl9maXJzdC5wcmV2PW51bGwpOmU9PT10aGlzLl9sYXN0Pyh0aGlzLl9sYXN0PWUucHJldix0aGlzLl9sYXN0Lm5leHQ9bnVsbCk6KGUubmV4dC5wcmV2PWUucHJldixlLnByZXYubmV4dD1lLm5leHQpLGUubGlzdD1udWxsLGUubmV4dD1udWxsLGUucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9maXJzdDt0Oyl7dmFyIGU9dC5uZXh0O3QubGlzdD1udWxsLHQucHJldj1udWxsLHQubmV4dD1udWxsLHQ9ZX10aGlzLl9maXJzdD1udWxsLHRoaXMuX2xhc3Q9bnVsbCx0aGlzLl9sZW5ndGg9MH0sdH0oKTtlLkxpbmtlZExpc3Q9byxmdW5jdGlvbih0KXt0LmZyb209ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHQ7cmV0dXJuIHIuZWFjaChlLGZ1bmN0aW9uKHQpe24uYWRkTGFzdCh0KX0pLG59O3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQubmV4dCx0LnZhbHVlfX0sdH0oKTt0LkZvcndhcmRWYWx1ZUl0ZXJhdG9yPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5wcmV2LHQudmFsdWV9fSx0fSgpO3QuUmV0cm9WYWx1ZUl0ZXJhdG9yPW47dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5uZXh0LHR9fSx0fSgpO3QuRm9yd2FyZE5vZGVJdGVyYXRvcj1pO3ZhciBvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQucHJldix0fX0sdH0oKTt0LlJldHJvTm9kZUl0ZXJhdG9yPW99KG89ZS5MaW5rZWRMaXN0fHwoZS5MaW5rZWRMaXN0PXt9KSksZS5MaW5rZWRMaXN0PW8sZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt0aGlzLmxpc3Q9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXY9bnVsbCx0aGlzLmxpc3Q9dCx0aGlzLnZhbHVlPWV9fSgpO3QuTGlua2VkTGlzdE5vZGU9ZX0oaXx8KGk9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDc2KSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLHtsYXlvdXQ6by5jcmVhdGVMYXlvdXQoZSl9KXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1Cb3hQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRpcmVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5kaXJlY3Rpb259LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5kaXJlY3Rpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5hZGRDbGFzcygicC1Cb3hQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLUJveFBhbmVsLWNoaWxkIil9LGV9KG4oNTQpLlBhbmVsKTtlLkJveFBhbmVsPWEsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtzLkJveExheW91dC5zZXRTdHJldGNoKHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTaXplQmFzaXModCl9LHQuc2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQsZSl7cy5Cb3hMYXlvdXQuc2V0U2l6ZUJhc2lzKHQsZSl9fShhPWUuQm94UGFuZWx8fChlLkJveFBhbmVsPXt9KSksZS5Cb3hQYW5lbD1hLGZ1bmN0aW9uKHQpe3QuY3JlYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmxheW91dHx8bmV3IHMuQm94TGF5b3V0KHQpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzLGE9bigyKSx1PW4oMjYpLGM9bigxMzApLGg9big5KSxsPW4oNTUpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIGk9dC5jYWxsKHRoaXMse25vZGU6cy5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gaS5fYWN0aXZlSW5kZXg9LTEsaS5faXRlbXM9W10saS5fcmVzdWx0cz1udWxsLGkuYWRkQ2xhc3MoInAtQ29tbWFuZFBhbGV0dGUiKSxpLnNldEZsYWcoZC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaS5jb21tYW5kcy5jb21tYW5kQ2hhbmdlZC5jb25uZWN0KGkuX29uR2VuZXJpY0NoYW5nZSxpKSxpLmNvbW1hbmRzLmtleUJpbmRpbmdDaGFuZ2VkLmNvbm5lY3QoaS5fb25HZW5lcmljQ2hhbmdlLGkpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcmVzdWx0cz1udWxsLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzZWFyY2hOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLXNlYXJjaCIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaW5wdXROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLWlucHV0IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpdGVtcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pdGVtc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXMuY3JlYXRlSXRlbSh0aGlzLmNvbW1hbmRzLHQpO3JldHVybiB0aGlzLl9pdGVtcy5wdXNoKGUpLHRoaXMucmVmcmVzaCgpLGV9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW09ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVJdGVtQXQodGhpcy5faXRlbXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW1BdD1mdW5jdGlvbih0KXthLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnJlZnJlc2goKX0sZS5wcm90b3R5cGUuY2xlYXJJdGVtcz1mdW5jdGlvbigpezAhPT10aGlzLl9pdGVtcy5sZW5ndGgmJih0aGlzLl9pdGVtcy5sZW5ndGg9MCx0aGlzLnJlZnJlc2goKSl9LGUucHJvdG90eXBlLnJlZnJlc2g9ZnVuY3Rpb24oKXt0aGlzLl9yZXN1bHRzPW51bGwsdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJjbGljayI6dGhpcy5fZXZ0Q2xpY2sodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiaW5wdXQiOnRoaXMucmVmcmVzaCgpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6dGhpcy5fdG9nZ2xlRm9jdXNlZCgpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcywhMCksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpZih0aGlzLmlzQXR0YWNoZWQpe3ZhciBlPXRoaXMuaW5wdXROb2RlO2UuZm9jdXMoKSxlLnNlbGVjdCgpfX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXROb2RlLnZhbHVlLG49dGhpcy5jb250ZW50Tm9kZSxpPXRoaXMuX3Jlc3VsdHM7aWYoaXx8KGk9dGhpcy5fcmVzdWx0cz1zLnNlYXJjaCh0aGlzLl9pdGVtcyxlKSx0aGlzLl9hY3RpdmVJbmRleD1lP2EuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoaSxzLmNhbkFjdGl2YXRlKTotMSksZXx8MCE9PWkubGVuZ3RoKWlmKGUmJjA9PT1pLmxlbmd0aCl7dmFyIHI9dGhpcy5yZW5kZXJlci5yZW5kZXJFbXB0eU1lc3NhZ2Uoe3F1ZXJ5OmV9KTtsLlZpcnR1YWxET00ucmVuZGVyKHIsbil9ZWxzZXtmb3IodmFyIG89dGhpcy5yZW5kZXJlcix1PXRoaXMuX2FjdGl2ZUluZGV4LGM9bmV3IEFycmF5KGkubGVuZ3RoKSxkPTAsZj1pLmxlbmd0aDtkPGY7KytkKXt2YXIgcD1pW2RdO2lmKCJoZWFkZXIiPT09cC50eXBlKXt2YXIgbT1wLmluZGljZXMsZz1wLmNhdGVnb3J5O2NbZF09by5yZW5kZXJIZWFkZXIoe2NhdGVnb3J5OmcsaW5kaWNlczptfSl9ZWxzZXt2YXIgdj1wLml0ZW0sYj0obT1wLmluZGljZXMsZD09PXUpO2NbZF09by5yZW5kZXJJdGVtKHtpdGVtOnYsaW5kaWNlczptLGFjdGl2ZTpifSl9fWlmKGwuVmlydHVhbERPTS5yZW5kZXIoYyxuKSx1PDB8fHU+PWkubGVuZ3RoKW4uc2Nyb2xsVG9wPTA7ZWxzZXt2YXIgeT1uLmNoaWxkcmVuW3VdO2guRWxlbWVudEV4dC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKG4seSl9fWVsc2UgbC5WaXJ0dWFsRE9NLnJlbmRlcihudWxsLG4pfSxlLnByb3RvdHlwZS5fZXZ0Q2xpY2s9ZnVuY3Rpb24odCl7aWYoMD09PXQuYnV0dG9uKXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7LTEhPT1lJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fZXhlY3V0ZShlKSl9fSxlLnByb3RvdHlwZS5fZXZ0S2V5RG93bj1mdW5jdGlvbih0KXtpZighKHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQubWV0YUtleXx8dC5zaGlmdEtleSkpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSAxMzp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9leGVjdXRlKHRoaXMuX2FjdGl2ZUluZGV4KTticmVhaztjYXNlIDM4OnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2FjdGl2YXRlUHJldmlvdXNJdGVtKCk7YnJlYWs7Y2FzZSA0MDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9hY3RpdmF0ZU5leHRJdGVtKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVOZXh0SXRlbT1mdW5jdGlvbigpe2lmKHRoaXMuX3Jlc3VsdHMmJjAhPT10aGlzLl9yZXN1bHRzLmxlbmd0aCl7dmFyIHQ9dGhpcy5fYWN0aXZlSW5kZXgsZT10aGlzLl9yZXN1bHRzLmxlbmd0aCxuPXQ8ZS0xP3QrMTowLGk9MD09PW4/ZS0xOm4tMTt0aGlzLl9hY3RpdmVJbmRleD1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuX3Jlc3VsdHMscy5jYW5BY3RpdmF0ZSxuLGkpLHRoaXMudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVQcmV2aW91c0l0ZW09ZnVuY3Rpb24oKXtpZih0aGlzLl9yZXN1bHRzJiYwIT09dGhpcy5fcmVzdWx0cy5sZW5ndGgpe3ZhciB0PXRoaXMuX2FjdGl2ZUluZGV4LGU9dGhpcy5fcmVzdWx0cy5sZW5ndGgsbj10PD0wP2UtMTp0LTEsaT1uPT09ZS0xPzA6bisxO3RoaXMuX2FjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9yZXN1bHRzLHMuY2FuQWN0aXZhdGUsbixpKSx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVzdWx0cyl7dmFyIGU9dGhpcy5fcmVzdWx0c1t0XTtpZihlKXtpZigiaGVhZGVyIj09PWUudHlwZSl7dmFyIG49dGhpcy5pbnB1dE5vZGU7cmV0dXJuIG4udmFsdWU9ZS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKyIgIixuLmZvY3VzKCksdm9pZCB0aGlzLnJlZnJlc2goKX1lLml0ZW0uaXNFbmFibGVkJiYodGhpcy5jb21tYW5kcy5leGVjdXRlKGUuaXRlbS5jb21tYW5kLGUuaXRlbS5hcmdzKSx0aGlzLmlucHV0Tm9kZS52YWx1ZT0iIix0aGlzLnJlZnJlc2goKSl9fX0sZS5wcm90b3R5cGUuX3RvZ2dsZUZvY3VzZWQ9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5pbnB1dE5vZGU7dGhpcy50b2dnbGVDbGFzcygicC1tb2QtZm9jdXNlZCIsdCl9LGUucHJvdG90eXBlLl9vbkdlbmVyaWNDaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sZX0oZC5XaWRnZXQpO2UuQ29tbWFuZFBhbGV0dGU9ZixmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckhlYWRlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEhlYWRlcih0KTtyZXR1cm4gbC5oLmxpKHtjbGFzc05hbWU6InAtQ29tbWFuZFBhbGV0dGUtaGVhZGVyIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJdGVtQ2xhc3ModCksbj10aGlzLmNyZWF0ZUl0ZW1EYXRhc2V0KHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZTplLGRhdGFzZXQ6bn0sdGhpcy5yZW5kZXJJdGVtSWNvbih0KSx0aGlzLnJlbmRlckl0ZW1Db250ZW50KHQpLHRoaXMucmVuZGVySXRlbVNob3J0Y3V0KHQpKX0sdC5wcm90b3R5cGUucmVuZGVyRW1wdHlNZXNzYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0RW1wdHlNZXNzYWdlKHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1lbXB0eU1lc3NhZ2UifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZTplfSx0Lml0ZW0uaWNvbkxhYmVsKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNvbnRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtQ29udGVudCJ9LHRoaXMucmVuZGVySXRlbUxhYmVsKHQpLHRoaXMucmVuZGVySXRlbUNhcHRpb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJdGVtTGFiZWw9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtTGFiZWwodCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNhcHRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtQ2FwdGlvbih0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1DYXB0aW9uIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEl0ZW1TaG9ydGN1dCh0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1TaG9ydGN1dCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtQ29tbWFuZFBhbGV0dGUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpO3ZhciBuPXQuaXRlbS5jbGFzc05hbWU7cmV0dXJuIG4mJihlKz0iICIrbiksZX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbURhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8oe30sdC5pdGVtLmRhdGFzZXQse2NvbW1hbmQ6dC5pdGVtLmNvbW1hbmR9KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLUNvbW1hbmRQYWxldHRlLWl0ZW1JY29uIixuPXQuaXRlbS5pY29uQ2xhc3M7cmV0dXJuIG4/ZSsiICIrbjplfSx0LnByb3RvdHlwZS5mb3JtYXRIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kaWNlcyYmMCE9PXQuaW5kaWNlcy5sZW5ndGg/YS5TdHJpbmdFeHQuaGlnaGxpZ2h0KHQuY2F0ZWdvcnksdC5pbmRpY2VzLGwuaC5tYXJrKTp0LmNhdGVnb3J5fSx0LnByb3RvdHlwZS5mb3JtYXRFbXB0eU1lc3NhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIk5vIGNvbW1hbmRzIGZvdW5kIHRoYXQgbWF0Y2ggJyIrdC5xdWVyeSsiJyJ9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10Lml0ZW0ua2V5QmluZGluZztyZXR1cm4gZT9lLmtleXMubWFwKHMuZm9ybWF0S2V5c3Ryb2tlKS5qb2luKCIsICIpOm51bGx9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1MYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRpY2VzJiYwIT09dC5pbmRpY2VzLmxlbmd0aD9hLlN0cmluZ0V4dC5oaWdobGlnaHQodC5pdGVtLmxhYmVsLHQuaW5kaWNlcyxsLmgubWFyayk6dC5pdGVtLmxhYmVsfSx0LnByb3RvdHlwZS5mb3JtYXRJdGVtQ2FwdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVtLmNhcHRpb259LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlfShmPWUuQ29tbWFuZFBhbGV0dGV8fChlLkNvbW1hbmRQYWxldHRlPXt9KSksZS5Db21tYW5kUGFsZXR0ZT1mLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtmb3IodmFyIG49dC5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpLGk9bisiICIrdC5sYWJlbC50b0xvd2VyQ2FzZSgpLHI9MS8wLG89bnVsbCxzPS9cYlx3L2c7Oyl7dmFyIHU9cy5leGVjKGkpO2lmKCF1KWJyZWFrO3ZhciBjPWEuU3RyaW5nRXh0Lm1hdGNoU3VtT2ZEZWx0YXMoaSxlLHUuaW5kZXgpO2lmKCFjKWJyZWFrO2MmJmMuc2NvcmU8PXImJihyPWMuc2NvcmUsbz1jLmluZGljZXMpfWlmKCFvfHxyPT09MS8wKXJldHVybiBudWxsO2Zvcih2YXIgaD1uLmxlbmd0aCsxLGw9YS5BcnJheUV4dC5sb3dlckJvdW5kKG8saCxmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxkPW8uc2xpY2UoMCxsKSxmPW8uc2xpY2UobCkscD0wLG09Zi5sZW5ndGg7cDxtOysrcClmW3BdLT1oO3JldHVybiAwPT09ZC5sZW5ndGg/e21hdGNoVHlwZTowLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpmLHNjb3JlOnIsaXRlbTp0fTowPT09Zi5sZW5ndGg/e21hdGNoVHlwZToxLGNhdGVnb3J5SW5kaWNlczpkLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOnIsaXRlbTp0fTp7bWF0Y2hUeXBlOjIsY2F0ZWdvcnlJbmRpY2VzOmQsbGFiZWxJbmRpY2VzOmYsc2NvcmU6cixpdGVtOnR9fWZ1bmN0aW9uIG4odCxlKXt2YXIgbj10Lm1hdGNoVHlwZS1lLm1hdGNoVHlwZTtpZigwIT09bilyZXR1cm4gbjt2YXIgaT10LnNjb3JlLWUuc2NvcmU7aWYoMCE9PWkpcmV0dXJuIGk7dmFyIHI9MCxvPTA7c3dpdGNoKHQubWF0Y2hUeXBlKXtjYXNlIDA6cj10LmxhYmVsSW5kaWNlc1swXSxvPWUubGFiZWxJbmRpY2VzWzBdO2JyZWFrO2Nhc2UgMTpjYXNlIDI6cj10LmNhdGVnb3J5SW5kaWNlc1swXSxvPWUuY2F0ZWdvcnlJbmRpY2VzWzBdfWlmKHIhPT1vKXJldHVybiByLW87dmFyIHM9dC5pdGVtLmNhdGVnb3J5LmxvY2FsZUNvbXBhcmUoZS5pdGVtLmNhdGVnb3J5KTtpZigwIT09cylyZXR1cm4gczt2YXIgYT10Lml0ZW0ucmFuayx1PWUuaXRlbS5yYW5rO3JldHVybiBhIT09dT9hPHU/LTE6MTp0Lml0ZW0ubGFiZWwubG9jYWxlQ29tcGFyZShlLml0ZW0ubGFiZWwpfXQuY3JlYXRlTm9kZT1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1zZWFyY2giLG4uY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLXdyYXBwZXIiLGkuY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLWlucHV0IixyLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IixpLnNwZWxsY2hlY2s9ITEsbi5hcHBlbmRDaGlsZChpKSxlLmFwcGVuZENoaWxkKG4pLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChyKSx0fSx0LmNyZWF0ZUl0ZW09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGkodCxlKX0sdC5mb3JtYXRLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj1jLkNvbW1hbmRSZWdpc3RyeS5wYXJzZUtleXN0cm9rZSh0KTtyZXR1cm4gaC5QbGF0Zm9ybS5JU19NQUM/KG4uY3RybCYmKGUrPSLijIMgIiksbi5hbHQmJihlKz0i4oylICIpLG4uc2hpZnQmJihlKz0i4oenICIpLG4uY21kJiYoZSs9IuKMmCAiKSk6KG4uY3RybCYmKGUrPSJDdHJsKyIpLG4uYWx0JiYoZSs9IkFsdCsiKSxuLnNoaWZ0JiYoZSs9IlNoaWZ0KyIpKSxlK24ua2V5fSx0LnNlYXJjaD1mdW5jdGlvbih0LGkpe3ZhciByPWZ1bmN0aW9uKHQsbil7bj1uLnJlcGxhY2UoL1xzKy9nLCIiKS50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aDtyPG87KytyKXt2YXIgcz10W3JdO2lmKHMuaXNWaXNpYmxlKWlmKG4pe3ZhciBhPWUocyxuKTthJiYocy5pc0VuYWJsZWR8fChhLnNjb3JlKz0xZTMpLGkucHVzaChhKSl9ZWxzZSBpLnB1c2goe21hdGNoVHlwZTozLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOjAsaXRlbTpzfSl9cmV0dXJuIGl9KHQsaSk7cmV0dXJuIHIuc29ydChuKSxmdW5jdGlvbih0KXt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2EuQXJyYXlFeHQuZmlsbChlLCExKTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZighZVtpXSl7dmFyIG89dFtpXSxzPW8uaXRlbSx1PW8uY2F0ZWdvcnlJbmRpY2VzLGM9cy5jYXRlZ29yeTtuLnB1c2goe3R5cGU6ImhlYWRlciIsY2F0ZWdvcnk6YyxpbmRpY2VzOnV9KTtmb3IodmFyIGg9aTtoPHI7KytoKWlmKCFlW2hdKXt2YXIgbD10W2hdLGQ9bC5pdGVtLGY9bC5sYWJlbEluZGljZXM7ZC5jYXRlZ29yeT09PWMmJihuLnB1c2goe3R5cGU6Iml0ZW0iLGl0ZW06ZCxpbmRpY2VzOmZ9KSxlW2hdPSEwKX19cmV0dXJuIG59KHIpfSx0LmNhbkFjdGl2YXRlPWZ1bmN0aW9uKHQpe3JldHVybiJpdGVtIj09PXQudHlwZSYmdC5pdGVtLmlzRW5hYmxlZH07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fY29tbWFuZHM9dCx0aGlzLmNhdGVnb3J5PWUuY2F0ZWdvcnkudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIiksdGhpcy5jb21tYW5kPWUuY29tbWFuZCx0aGlzLmFyZ3M9ZS5hcmdzfHx1LkpTT05FeHQuZW1wdHlPYmplY3QsdGhpcy5yYW5rPXZvaWQgMCE9PWUucmFuaz9lLnJhbms6MS8wfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmljb25DbGFzcyh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb25MYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pY29uTGFiZWwodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5kYXRhc2V0KHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmlzRW5hYmxlZCh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pc1RvZ2dsZWQodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuaXNWaXNpYmxlKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwia2V5QmluZGluZyIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tbWFuZCxlPXRoaXMuYXJncztyZXR1cm4gYS5BcnJheUV4dC5maW5kTGFzdFZhbHVlKHRoaXMuX2NvbW1hbmRzLmtleUJpbmRpbmdzLGZ1bmN0aW9uKG4pe3JldHVybiBuLmNvbW1hbmQ9PT10JiZ1LkpTT05FeHQuZGVlcEVxdWFsKG4uYXJncyxlKX0pfHxudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHR9KCl9KHN8fChzPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHIsbz1uKDIpLHM9big3OCksYT1uKDkpLHU9bigxMzEpLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2lkVGljaz0wLHRoaXMuX2l0ZW1zPVtdLHRoaXMubWVudT1uZXcgdS5NZW51KHQpfXJldHVybiB0LnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1yLmNyZWF0ZUl0ZW0odCx0aGlzLl9pZFRpY2srKyk7cmV0dXJuIHRoaXMuX2l0ZW1zLnB1c2gobiksbmV3IHMuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7by5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGUuX2l0ZW1zLG4pfSl9LHQucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLm1lbnUuY2xlYXJJdGVtcygpLDA9PT10aGlzLl9pdGVtcy5sZW5ndGgpcmV0dXJuITE7dmFyIG49ci5tYXRjaEl0ZW1zKHRoaXMuX2l0ZW1zLHQpO3JldHVybiEoIW58fDA9PT1uLmxlbmd0aCkmJihvLmVhY2gobixmdW5jdGlvbih0KXtlLm1lbnUuYWRkSXRlbSh0KX0pLHRoaXMubWVudS5vcGVuKHQuY2xpZW50WCx0LmNsaWVudFkpLCEwKX0sdH0oKTtlLkNvbnRleHRNZW51PWMsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3ZhciBuPWEuU2VsZWN0b3IuY2FsY3VsYXRlU3BlY2lmaWNpdHkodC5zZWxlY3RvciksaT1hLlNlbGVjdG9yLmNhbGN1bGF0ZVNwZWNpZmljaXR5KGUuc2VsZWN0b3IpO2lmKG4hPT1pKXJldHVybiBpLW47dmFyIHI9dC5yYW5rLG89ZS5yYW5rO3JldHVybiByIT09bz9yPG8/LTE6MTp0LmlkLWUuaWR9dC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7aWYoLTEhPT10LmluZGV4T2YoIiwiKSl0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIGNhbm5vdCBjb250YWluIGNvbW1hczogIit0KTtpZighYS5TZWxlY3Rvci5pc1ZhbGlkKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZWxlY3RvcjogIit0KTtyZXR1cm4gdH0odC5zZWxlY3Rvcikscj12b2lkIDAhPT10LnJhbms/dC5yYW5rOjEvMDtyZXR1cm4gaSh7fSx0LHtzZWxlY3RvcjpuLHJhbms6cixpZDplfSl9LHQubWF0Y2hJdGVtcz1mdW5jdGlvbih0LG4pe3ZhciBpPW4udGFyZ2V0O2lmKCFpKXJldHVybiBudWxsO3ZhciByPW4uY3VycmVudFRhcmdldDtpZighcilyZXR1cm4gbnVsbDtpZighKHIuY29udGFpbnMoaSl8fChpPWRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQobi5jbGllbnRYLG4uY2xpZW50WSkpJiZyLmNvbnRhaW5zKGkpKSlyZXR1cm4gbnVsbDtmb3IodmFyIG89W10scz10LnNsaWNlKCk7bnVsbCE9PWk7KXtmb3IodmFyIHU9W10sYz0wLGg9cy5sZW5ndGg7YzxoOysrYyl7dmFyIGw9c1tjXTtsJiZhLlNlbGVjdG9yLm1hdGNoZXMoaSxsLnNlbGVjdG9yKSYmKHUucHVzaChsKSxzW2NdPW51bGwpfWlmKDAhPT11Lmxlbmd0aCYmKHUuc29ydChlKSxvLnB1c2guYXBwbHkobyx1KSksaT09PXIpYnJlYWs7aT1pLnBhcmVudEVsZW1lbnR9cmV0dXJuIG99fShyfHwocj17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDI2KSx1PW4oOSksYz1uKDU2KSxoPW4oNSksbD1uKDMwKSxkPW4oMTEpLGY9bigxMzIpLHA9big4MCksbT1uKDcpLGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO2kuX2RyYWc9bnVsbCxpLl9wcmVzc0RhdGE9bnVsbCxpLl9sYXlvdXRNb2RpZmllZD1uZXcgZC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1Eb2NrUGFuZWwiKSxpLl9tb2RlPW4ubW9kZXx8Im11bHRpcGxlLWRvY3VtZW50IixpLl9yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLmRhdGFzZXQubW9kZT1pLl9tb2RlO3ZhciByPXtjcmVhdGVUYWJCYXI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5fY3JlYXRlVGFiQmFyKCl9LGNyZWF0ZUhhbmRsZTpmdW5jdGlvbigpe3JldHVybiBpLl9jcmVhdGVIYW5kbGUoKX19O3JldHVybiBpLmxheW91dD1uZXcgZi5Eb2NrTGF5b3V0KHtyZW5kZXJlcjpyLHNwYWNpbmc6bi5zcGFjaW5nfSksaS5vdmVybGF5PW4ub3ZlcmxheXx8bmV3IGUuT3ZlcmxheSxpLm5vZGUuYXBwZW5kQ2hpbGQoaS5vdmVybGF5Lm5vZGUpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5vdmVybGF5LmhpZGUoMCksdGhpcy5fZHJhZyYmdGhpcy5fZHJhZy5kaXNwb3NlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImxheW91dE1vZGlmaWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dE1vZGlmaWVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmVuZGVyZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVuZGVyZXJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5zcGFjaW5nPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl9tb2RlIT09dCl7dGhpcy5fbW9kZT10LHRoaXMuZGF0YXNldC5tb2RlPXQ7dmFyIGU9dGhpcy5sYXlvdXQ7c3dpdGNoKHQpe2Nhc2UibXVsdGlwbGUtZG9jdW1lbnQiOnMuZWFjaChlLnRhYkJhcnMoKSxmdW5jdGlvbih0KXt0LnNob3coKX0pO2JyZWFrO2Nhc2Uic2luZ2xlLWRvY3VtZW50IjplLnJlc3RvcmVMYXlvdXQoby5jcmVhdGVTaW5nbGVEb2N1bWVudENvbmZpZyh0aGlzKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImlzRW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuaXNFbXB0eX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LndpZGdldHMoKX0sZS5wcm90b3R5cGUuc2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNlbGVjdGVkV2lkZ2V0cygpfSxlLnByb3RvdHlwZS50YWJCYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnRhYkJhcnMoKX0sZS5wcm90b3R5cGUuaGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzKCl9LGUucHJvdG90eXBlLnNlbGVjdFdpZGdldD1mdW5jdGlvbih0KXt2YXIgZT1zLmZpbmQodGhpcy50YWJCYXJzKCksZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnRpdGxlcy5pbmRleE9mKHQudGl0bGUpfSk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgZG9jayBwYW5lbC4iKTtlLmN1cnJlbnRUaXRsZT10LnRpdGxlfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnNlbGVjdFdpZGdldCh0KSx0LmFjdGl2YXRlKCl9LGUucHJvdG90eXBlLnNhdmVMYXlvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc2F2ZUxheW91dCgpfSxlLnByb3RvdHlwZS5yZXN0b3JlTGF5b3V0PWZ1bmN0aW9uKHQpe3RoaXMuX21vZGU9Im11bHRpcGxlLWRvY3VtZW50Iix0aGlzLmxheW91dC5yZXN0b3JlTGF5b3V0KHQpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksInNpbmdsZS1kb2N1bWVudCI9PT10aGlzLl9tb2RlP3RoaXMubGF5b3V0LmFkZFdpZGdldCh0KTp0aGlzLmxheW91dC5hZGRXaWRnZXQodCxlKSxoLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsby5MYXlvdXRNb2RpZmllZCl9LGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpeyJsYXlvdXQtbW9kaWZpZWQiPT09ZS50eXBlP3RoaXMuX2xheW91dE1vZGlmaWVkLmVtaXQodm9pZCAwKTp0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UicC1kcmFnZW50ZXIiOnRoaXMuX2V2dERyYWdFbnRlcih0KTticmVhaztjYXNlInAtZHJhZ2xlYXZlIjp0aGlzLl9ldnREcmFnTGVhdmUodCk7YnJlYWs7Y2FzZSJwLWRyYWdvdmVyIjp0aGlzLl9ldnREcmFnT3Zlcih0KTticmVhaztjYXNlInAtZHJvcCI6dGhpcy5fZXZ0RHJvcCh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2Uia2V5ZG93biI6dGhpcy5fZXZ0S2V5RG93bih0KTticmVhaztjYXNlImNvbnRleHRtZW51Ijp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJwLWRyYWdlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJhZ2xlYXZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigicC1kcmFnb3ZlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJvcCIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInAtZHJhZ2VudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcmFnbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwLWRyYWdvdmVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcm9wIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZEFkZGVkPWZ1bmN0aW9uKHQpe28uaXNHZW5lcmF0ZWRUYWJCYXJQcm9wZXJ0eS5nZXQodC5jaGlsZCl8fHQuY2hpbGQuYWRkQ2xhc3MoInAtRG9ja1BhbmVsLXdpZGdldCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXtvLmlzR2VuZXJhdGVkVGFiQmFyUHJvcGVydHkuZ2V0KHQuY2hpbGQpfHwodC5jaGlsZC5yZW1vdmVDbGFzcygicC1Eb2NrUGFuZWwtd2lkZ2V0IiksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dERyYWdFbnRlcj1mdW5jdGlvbih0KXt0Lm1pbWVEYXRhLmhhc0RhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ0xlYXZlPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiZ0aGlzLm5vZGUuY29udGFpbnMoZSl8fHRoaXMub3ZlcmxheS5oaWRlKDApfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ092ZXI9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksImludmFsaWQiPT09dGhpcy5fc2hvd092ZXJsYXkodC5jbGllbnRYLHQuY2xpZW50WSk/dC5kcm9wQWN0aW9uPSJub25lIjp0LmRyb3BBY3Rpb249dC5wcm9wb3NlZEFjdGlvbn0sZS5wcm90b3R5cGUuX2V2dERyb3A9ZnVuY3Rpb24odCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vdmVybGF5LmhpZGUoMCksIm5vbmUiIT09dC5wcm9wb3NlZEFjdGlvbil7dmFyIGU9dC5jbGllbnRYLG49dC5jbGllbnRZLGk9by5maW5kRHJvcFRhcmdldCh0aGlzLGUsbikscj1pLnpvbmUscz1pLnRhcmdldDtpZigiaW52YWxpZCIhPT1yKXt2YXIgYT10Lm1pbWVEYXRhLmdldERhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXt2YXIgdT1hKCk7aWYodSBpbnN0YW5jZW9mIG0uV2lkZ2V0KWlmKHUuY29udGFpbnModGhpcykpdC5kcm9wQWN0aW9uPSJub25lIjtlbHNle3ZhciBjPXM/by5nZXREcm9wUmVmKHMudGFiQmFyKTpudWxsO3N3aXRjaChyKXtjYXNlInJvb3QtYWxsIjp0aGlzLmFkZFdpZGdldCh1KTticmVhaztjYXNlInJvb3QtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AifSk7YnJlYWs7Y2FzZSJyb290LWxlZnQiOnRoaXMuYWRkV2lkZ2V0KHUse21vZGU6InNwbGl0LWxlZnQifSk7YnJlYWs7Y2FzZSJyb290LXJpZ2h0Ijp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1yaWdodCJ9KTticmVhaztjYXNlInJvb3QtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20ifSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYWxsIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJ0YWItYWZ0ZXIiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtbGVmdCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtbGVmdCIscmVmOmN9KTticmVhaztjYXNlIndpZGdldC1yaWdodCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtcmlnaHQiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20iLHJlZjpjfSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dC5kcm9wQWN0aW9uPXQucHJvcG9zZWRBY3Rpb24sdGhpcy5hY3RpdmF0ZVdpZGdldCh1KX1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9ZWxzZSB0LmRyb3BBY3Rpb249Im5vbmUifWVsc2UgdC5kcm9wQWN0aW9uPSJub25lIn1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiYodGhpcy5fcmVsZWFzZU1vdXNlKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49dC50YXJnZXQsaT1zLmZpbmQoZS5oYW5kbGVzKCksZnVuY3Rpb24odCl7cmV0dXJuIHQuY29udGFpbnMobil9KTtpZihpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLXIubGVmdCxhPXQuY2xpZW50WS1yLnRvcCx1PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpLGg9Yy5EcmFnLm92ZXJyaWRlQ3Vyc29yKHUuY3Vyc29yKTt0aGlzLl9wcmVzc0RhdGE9e2hhbmRsZTppLGRlbHRhWDpvLGRlbHRhWTphLG92ZXJyaWRlOmh9fX19LGUucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcHJlc3NEYXRhKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZT10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LmNsaWVudFgtZS5sZWZ0LXRoaXMuX3ByZXNzRGF0YS5kZWx0YVgsaT10LmNsaWVudFktZS50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhWTt0aGlzLmxheW91dC5tb3ZlSGFuZGxlKHRoaXMuX3ByZXNzRGF0YS5oYW5kbGUsbixpKX19LGUucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpezA9PT10LmJ1dHRvbiYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3JlbGVhc2VNb3VzZSgpLGguTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodGhpcyxvLkxheW91dE1vZGlmaWVkKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZS5wcm90b3R5cGUuX3Nob3dPdmVybGF5PWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHMsYT1vLmZpbmREcm9wVGFyZ2V0KHRoaXMsdCxlKSxjPWEuem9uZSxoPWEudGFyZ2V0O2lmKCJpbnZhbGlkIj09PWMpcmV0dXJuIHRoaXMub3ZlcmxheS5oaWRlKDEwMCksYzt2YXIgbD11LkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMubm9kZSksZD10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7c3dpdGNoKGMpe2Nhc2Uicm9vdC1hbGwiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uicm9vdC10b3AiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9ZC5oZWlnaHQqby5HT0xERU5fUkFUSU87YnJlYWs7Y2FzZSJyb290LWxlZnQiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWQud2lkdGgqby5HT0xERU5fUkFUSU8scz1sLnBhZGRpbmdCb3R0b207YnJlYWs7Y2FzZSJyb290LXJpZ2h0IjpuPWwucGFkZGluZ1RvcCxpPWQud2lkdGgqby5HT0xERU5fUkFUSU8scj1sLnBhZGRpbmdSaWdodCxzPWwucGFkZGluZ0JvdHRvbTticmVhaztjYXNlInJvb3QtYm90dG9tIjpuPWQuaGVpZ2h0Km8uR09MREVOX1JBVElPLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uid2lkZ2V0LWFsbCI6bj1oLnRvcCxpPWgubGVmdCxyPWgucmlnaHQscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC10b3AiOm49aC50b3AsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b20raC5oZWlnaHQvMjticmVhaztjYXNlIndpZGdldC1sZWZ0IjpuPWgudG9wLGk9aC5sZWZ0LHI9aC5yaWdodCtoLndpZHRoLzIscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC1yaWdodCI6bj1oLnRvcCxpPWgubGVmdCtoLndpZHRoLzIscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjpuPWgudG9wK2guaGVpZ2h0LzIsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJuIHRoaXMub3ZlcmxheS5zaG93KHt0b3A6bixsZWZ0OmkscmlnaHQ6cixib3R0b206c30pLGN9LGUucHJvdG90eXBlLl9jcmVhdGVUYWJCYXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gby5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5LnNldCh0LCEwKSwic2luZ2xlLWRvY3VtZW50Ij09PXRoaXMuX21vZGUmJnQuaGlkZSgpLHQudGFic01vdmFibGU9ITAsdC5hbGxvd0Rlc2VsZWN0PSExLHQucmVtb3ZlQmVoYXZpb3I9InNlbGVjdC1wcmV2aW91cy10YWIiLHQuaW5zZXJ0QmVoYXZpb3I9InNlbGVjdC10YWItaWYtbmVlZGVkIix0LnRhYk1vdmVkLmNvbm5lY3QodGhpcy5fb25UYWJNb3ZlZCx0aGlzKSx0LmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25DdXJyZW50Q2hhbmdlZCx0aGlzKSx0LnRhYkNsb3NlUmVxdWVzdGVkLmNvbm5lY3QodGhpcy5fb25UYWJDbG9zZVJlcXVlc3RlZCx0aGlzKSx0LnRhYkRldGFjaFJlcXVlc3RlZC5jb25uZWN0KHRoaXMuX29uVGFiRGV0YWNoUmVxdWVzdGVkLHRoaXMpLHQudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLHRoaXMpLHR9LGUucHJvdG90eXBlLl9jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3JlYXRlSGFuZGxlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKCl7aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25DdXJyZW50Q2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNUaXRsZSxpPWUuY3VycmVudFRpdGxlO24mJm4ub3duZXIuaGlkZSgpLGkmJmkub3duZXIuc2hvdygpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYkRldGFjaFJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYoIXRoaXMuX2RyYWcpe3QucmVsZWFzZU1vdXNlKCk7dmFyIGk9ZS50aXRsZSxyPWUudGFiLG89ZS5jbGllbnRYLHM9ZS5jbGllbnRZLHU9bmV3IGEuTWltZURhdGE7dS5zZXREYXRhKCJhcHBsaWNhdGlvbi92bmQucGhvc3Bob3Iud2lkZ2V0LWZhY3RvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub3duZXJ9KTt2YXIgaD1yLmNsb25lTm9kZSghMCk7dGhpcy5fZHJhZz1uZXcgYy5EcmFnKHttaW1lRGF0YTp1LGRyYWdJbWFnZTpoLHByb3Bvc2VkQWN0aW9uOiJtb3ZlIixzdXBwb3J0ZWRBY3Rpb25zOiJtb3ZlIn0pLHIuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik7dGhpcy5fZHJhZy5zdGFydChvLHMpLnRoZW4oZnVuY3Rpb24oKXtuLl9kcmFnPW51bGwsci5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfX0sZX0obS5XaWRnZXQpO2UuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fdGltZXI9LTEsdGhpcy5faGlkZGVuPSEwLHRoaXMubm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1Eb2NrUGFuZWwtb3ZlcmxheSIpLHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm5vZGUuc3R5bGU7ZS50b3A9dC50b3ArInB4IixlLmxlZnQ9dC5sZWZ0KyJweCIsZS5yaWdodD10LnJpZ2h0KyJweCIsZS5ib3R0b209dC5ib3R0b20rInB4IixjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVyPS0xLHRoaXMuX2hpZGRlbiYmKHRoaXMuX2hpZGRlbj0hMSx0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtaGlkZGVuIikpfSx0LnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX2hpZGRlbilyZXR1cm4gdDw9MD8oY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj0tMSx0aGlzLl9oaWRkZW49ITAsdm9pZCB0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIikpOnZvaWQoLTE9PT10aGlzLl90aW1lciYmKHRoaXMuX3RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl90aW1lcj0tMSxlLl9oaWRkZW49ITAsZS5ub2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpfSx0KSkpfSx0fSgpO3QuT3ZlcmxheT1lO3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHAuVGFiQmFyO3JldHVybiB0LmFkZENsYXNzKCJwLURvY2tQYW5lbC10YWJCYXIiKSx0fSx0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtRG9ja1BhbmVsLWhhbmRsZSIsdH0sdH0oKTt0LlJlbmRlcmVyPW4sdC5kZWZhdWx0UmVuZGVyZXI9bmV3IG59KGc9ZS5Eb2NrUGFuZWx8fChlLkRvY2tQYW5lbD17fSkpLGUuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dC5HT0xERU5fUkFUSU89LjYxOCx0LkVER0VfU0laRT00MCx0LkxheW91dE1vZGlmaWVkPW5ldyBoLkNvbmZsYXRhYmxlTWVzc2FnZSgibGF5b3V0LW1vZGlmaWVkIiksdC5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5PW5ldyBsLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6ImlzR2VuZXJhdGVkVGFiQmFyIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19KSx0LmNyZWF0ZVNpbmdsZURvY3VtZW50Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKHQuaXNFbXB0eSlyZXR1cm57bWFpbjpudWxsfTt2YXIgZT1zLnRvQXJyYXkodC53aWRnZXRzKCkpLG49dC5zZWxlY3RlZFdpZGdldHMoKS5uZXh0KCksaT1uP2UuaW5kZXhPZihuKTotMTtyZXR1cm57bWFpbjp7dHlwZToidGFiLWFyZWEiLHdpZGdldHM6ZSxjdXJyZW50SW5kZXg6aX19fSx0LmZpbmREcm9wVGFyZ2V0PWZ1bmN0aW9uKGUsbixpKXtpZighdS5FbGVtZW50RXh0LmhpdFRlc3QoZS5ub2RlLG4saSkpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTt2YXIgcj1lLmxheW91dDtpZihyLmlzRW1wdHkpcmV0dXJue3pvbmU6InJvb3QtYWxsIix0YXJnZXQ6bnVsbH07aWYoIm11bHRpcGxlLWRvY3VtZW50Ij09PWUubW9kZSl7dmFyIG89ZS5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9bi1vLmxlZnQrMSxhPWktby50b3ArMSxjPW8ucmlnaHQtbixoPW8uYm90dG9tLWksbD1NYXRoLm1pbihzLGEsYyxoKTtpZihsPD10LkVER0VfU0laRSl7dmFyIGQ7c3dpdGNoKGwpe2Nhc2UgczpkPSJyb290LWxlZnQiO2JyZWFrO2Nhc2UgYTpkPSJyb290LXRvcCI7YnJlYWs7Y2FzZSBjOmQ9InJvb3QtcmlnaHQiO2JyZWFrO2Nhc2UgaDpkPSJyb290LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6ZCx0YXJnZXQ6bnVsbH19fXZhciBmPXIuaGl0VGVzdFRhYkFyZWFzKG4saSk7aWYoIWYpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTtpZigic2luZ2xlLWRvY3VtZW50Ij09PWUubW9kZSlyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3ZhciBwLG09Zi54LWYubGVmdCsxLGc9Zi55LWYudG9wKzEsdj1mLmxlZnQrZi53aWR0aC1mLngsYj1mLnRvcCtmLmhlaWdodC1mLnkseT1NYXRoLnJvdW5kKGYud2lkdGgvMyksXz1NYXRoLnJvdW5kKGYuaGVpZ2h0LzMpO2lmKG0+eSYmdj55JiZnPl8mJmI+XylyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3N3aXRjaChtLz15LGcvPV8sdi89eSxiLz1fLE1hdGgubWluKG0sZyx2LGIpKXtjYXNlIG06cD0id2lkZ2V0LWxlZnQiO2JyZWFrO2Nhc2UgZzpwPSJ3aWRnZXQtdG9wIjticmVhaztjYXNlIHY6cD0id2lkZ2V0LXJpZ2h0IjticmVhaztjYXNlIGI6cD0id2lkZ2V0LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6cCx0YXJnZXQ6Zn19LHQuZ2V0RHJvcFJlZj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXQudGl0bGVzLmxlbmd0aD9udWxsOnQuY3VycmVudFRpdGxlP3QuY3VycmVudFRpdGxlLm93bmVyOnQudGl0bGVzW3QudGl0bGVzLmxlbmd0aC0xXS5vd25lcn19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMikscj1uKDExKSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX2NvdW50ZXI9MCx0aGlzLl93aWRnZXRzPVtdLHRoaXMuX2FjdGl2ZVdpZGdldD1udWxsLHRoaXMuX2N1cnJlbnRXaWRnZXQ9bnVsbCx0aGlzLl9udW1iZXJzPW5ldyBNYXAsdGhpcy5fbm9kZXM9bmV3IE1hcCx0aGlzLl9hY3RpdmVDaGFuZ2VkPW5ldyByLlNpZ25hbCh0aGlzKSx0aGlzLl9jdXJyZW50Q2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyl9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2NvdW50ZXI8MHx8KHRoaXMuX2NvdW50ZXI9LTEsci5TaWduYWwuY2xlYXJEYXRhKHRoaXMpLGkuZWFjaCh0aGlzLl93aWRnZXRzLGZ1bmN0aW9uKGUpe2Uubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdCwhMCksZS5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHQsITApfSksdGhpcy5fYWN0aXZlV2lkZ2V0PW51bGwsdGhpcy5fY3VycmVudFdpZGdldD1udWxsLHRoaXMuX25vZGVzLmNsZWFyKCksdGhpcy5fbnVtYmVycy5jbGVhcigpLHRoaXMuX3dpZGdldHMubGVuZ3RoPTApfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImN1cnJlbnRDaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiYWN0aXZlQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNEaXNwb3NlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3VudGVyPDB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRXaWRnZXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJhY3RpdmVXaWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlV2lkZ2V0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZvY3VzTnVtYmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX251bWJlcnMuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1lPy0xOmV9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbnVtYmVycy5oYXModCl9LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZighdGhpcy5fbnVtYmVycy5oYXModCkpe3ZhciBlPXQubm9kZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxuPWU/dGhpcy5fY291bnRlcisrOi0xO3RoaXMuX3dpZGdldHMucHVzaCh0KSx0aGlzLl9udW1iZXJzLnNldCh0LG4pLHRoaXMuX25vZGVzLnNldCh0Lm5vZGUsdCksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLCEwKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcywhMCksdC5kaXNwb3NlZC5jb25uZWN0KHRoaXMuX29uV2lkZ2V0RGlzcG9zZWQsdGhpcyksZSYmdGhpcy5fc2V0V2lkZ2V0cyh0LHQpfX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fbnVtYmVycy5oYXModCkmJih0LmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25XaWRnZXREaXNwb3NlZCx0aGlzKSx0Lm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHQubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKSxpLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YodGhpcy5fd2lkZ2V0cyx0KSx0aGlzLl9ub2Rlcy5kZWxldGUodC5ub2RlKSx0aGlzLl9udW1iZXJzLmRlbGV0ZSh0KSx0aGlzLl9jdXJyZW50V2lkZ2V0PT09dCkpe3ZhciBuPWkuZmlsdGVyKHRoaXMuX3dpZGdldHMsZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1lLl9udW1iZXJzLmdldCh0KX0pLHI9aS5tYXgobixmdW5jdGlvbih0LG4pe3JldHVybiBlLl9udW1iZXJzLmdldCh0KS1lLl9udW1iZXJzLmdldChuKX0pfHxudWxsO3RoaXMuX3NldFdpZGdldHMocixudWxsKX19LHQucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiZm9jdXMiOnRoaXMuX2V2dEZvY3VzKHQpO2JyZWFrO2Nhc2UiYmx1ciI6dGhpcy5fZXZ0Qmx1cih0KX19LHQucHJvdG90eXBlLl9zZXRXaWRnZXRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudFdpZGdldDt0aGlzLl9jdXJyZW50V2lkZ2V0PXQ7dmFyIGk9dGhpcy5fYWN0aXZlV2lkZ2V0O3RoaXMuX2FjdGl2ZVdpZGdldD1lLG4hPT10JiZ0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTpuLG5ld1ZhbHVlOnR9KSxpIT09ZSYmdGhpcy5fYWN0aXZlQ2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTppLG5ld1ZhbHVlOmV9KX0sdC5wcm90b3R5cGUuX2V2dEZvY3VzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX25vZGVzLmdldCh0LmN1cnJlbnRUYXJnZXQpO2UhPT10aGlzLl9jdXJyZW50V2lkZ2V0JiZ0aGlzLl9udW1iZXJzLnNldChlLHRoaXMuX2NvdW50ZXIrKyksdGhpcy5fc2V0V2lkZ2V0cyhlLGUpfSx0LnByb3RvdHlwZS5fZXZ0Qmx1cj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub2Rlcy5nZXQodC5jdXJyZW50VGFyZ2V0KSxuPXQucmVsYXRlZFRhcmdldDtuJiYoZS5ub2RlLmNvbnRhaW5zKG4pfHxpLmZpbmQodGhpcy5fd2lkZ2V0cyxmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlLmNvbnRhaW5zKG4pfSkpfHx0aGlzLl9zZXRXaWRnZXRzKHRoaXMuX2N1cnJlbnRXaWRnZXQsbnVsbCl9LHQucHJvdG90eXBlLl9vbldpZGdldERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlKHQpfSx0fSgpO2UuRm9jdXNUcmFja2VyPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9kaXJ0eT0hMSxuLl9yb3dTcGFjaW5nPTQsbi5fY29sdW1uU3BhY2luZz00LG4uX2l0ZW1zPVtdLG4uX3Jvd1N0YXJ0cz1bXSxuLl9jb2x1bW5TdGFydHM9W10sbi5fcm93U2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fY29sdW1uU2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fYm94PW51bGwsdm9pZCAwIT09ZS5yb3dDb3VudCYmby5yZWFsbG9jU2l6ZXJzKG4uX3Jvd1NpemVycyxlLnJvd0NvdW50KSx2b2lkIDAhPT1lLmNvbHVtbkNvdW50JiZvLnJlYWxsb2NTaXplcnMobi5fY29sdW1uU2l6ZXJzLGUuY29sdW1uQ291bnQpLHZvaWQgMCE9PWUucm93U3BhY2luZyYmKG4uX3Jvd1NwYWNpbmc9by5jbGFtcFZhbHVlKGUucm93U3BhY2luZykpLHZvaWQgMCE9PWUuY29sdW1uU3BhY2luZyYmKG4uX2NvbHVtblNwYWNpbmc9by5jbGFtcFZhbHVlKGUuY29sdW1uU3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3ZhciBlPXQud2lkZ2V0O3QuZGlzcG9zZSgpLGUuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcm93U3RhcnRzLmxlbmd0aD0wLHRoaXMuX3Jvd1NpemVycy5sZW5ndGg9MCx0aGlzLl9jb2x1bW5TdGFydHMubGVuZ3RoPTAsdGhpcy5fY29sdW1uU2l6ZXJzLmxlbmd0aD0wLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dDb3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb3dTaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMucm93Q291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fcm93U2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2x1bW5Db3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuY29sdW1uQ291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fY29sdW1uU2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dTcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvd1NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBWYWx1ZSh0KSx0aGlzLl9yb3dTcGFjaW5nIT09dCYmKHRoaXMuX3Jvd1NwYWNpbmc9dCx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuZml0KCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29sdW1uU3BhY2luZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TcGFjaW5nfSxzZXQ6ZnVuY3Rpb24odCl7dD1vLmNsYW1wVmFsdWUodCksdGhpcy5fY29sdW1uU3BhY2luZyE9PXQmJih0aGlzLl9jb2x1bW5TcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yb3dTdHJldGNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Jvd1NpemVyc1t0XTtyZXR1cm4gZT9lLnN0cmV0Y2g6LTF9LGUucHJvdG90eXBlLnNldFJvd1N0cmV0Y2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9yb3dTaXplcnNbdF07biYmKGU9by5jbGFtcFZhbHVlKGUpLG4uc3RyZXRjaCE9PWUmJihuLnN0cmV0Y2g9ZSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZS5wcm90b3R5cGUuY29sdW1uU3RyZXRjaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb2x1bW5TaXplcnNbdF07cmV0dXJuIGU/ZS5zdHJldGNoOi0xfSxlLnByb3RvdHlwZS5zZXRDb2x1bW5TdHJldGNoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY29sdW1uU2l6ZXJzW3RdO24mJihlPW8uY2xhbXBWYWx1ZShlKSxuLnN0cmV0Y2ghPT1lJiYobi5zdHJldGNoPWUsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gcy5tYXAodGhpcy5faXRlbXMsZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkZ2V0fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXstMT09PXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUud2lkZ2V0PT09dH0pJiYodGhpcy5faXRlbXMucHVzaChuZXcgbC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudCYmdGhpcy5hdHRhY2hXaWRnZXQodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7dmFyIGU9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLl9pdGVtcyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSk7aWYoLTE9PT1lKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLGUpO3RoaXMucGFyZW50JiZ0aGlzLmRldGFjaFdpZGdldCh0KSxuLmRpc3Bvc2UoKX19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsZC5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxkLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKHQubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49dGhpcy5yb3dDb3VudDt0PG47Kyt0KXRoaXMuX3Jvd1NpemVyc1t0XS5taW5TaXplPTA7Zm9yKHQ9MCxuPXRoaXMuY29sdW1uQ291bnQ7dDxuOysrdCl0aGlzLl9jb2x1bW5TaXplcnNbdF0ubWluU2l6ZT0wO3ZhciBpPXRoaXMuX2l0ZW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5pc0hpZGRlbn0pO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KWlbdF0uZml0KCk7dmFyIHI9dGhpcy5yb3dDb3VudC0xLHM9dGhpcy5jb2x1bW5Db3VudC0xO2kuc29ydChvLnJvd1NwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXt2YXIgYz1pW3RdLGg9ZS5nZXRDZWxsQ29uZmlnKGMud2lkZ2V0KSxsPU1hdGgubWluKGgucm93LHIpLGY9TWF0aC5taW4oaC5yb3craC5yb3dTcGFuLTEscik7by5kaXN0cmlidXRlTWluKHRoaXMuX3Jvd1NpemVycyxsLGYsYy5taW5IZWlnaHQpfWkuc29ydChvLmNvbHVtblNwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXtjPWlbdF0saD1lLmdldENlbGxDb25maWcoYy53aWRnZXQpO3ZhciBwPU1hdGgubWluKGguY29sdW1uLHMpLG09TWF0aC5taW4oaC5jb2x1bW4raC5jb2x1bW5TcGFuLTEscyk7by5kaXN0cmlidXRlTWluKHRoaXMuX2NvbHVtblNpemVycyxwLG0sYy5taW5XaWR0aCl9aWYoInNldC1uby1jb25zdHJhaW50IiE9PXRoaXMuZml0UG9saWN5KXt2YXIgZz1yKnRoaXMuX3Jvd1NwYWNpbmcsdj1zKnRoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKHQ9MCxuPXRoaXMucm93Q291bnQ7dDxuOysrdClnKz10aGlzLl9yb3dTaXplcnNbdF0ubWluU2l6ZTtmb3IodD0wLG49dGhpcy5jb2x1bW5Db3VudDt0PG47Kyt0KXYrPXRoaXMuX2NvbHVtblNpemVyc1t0XS5taW5TaXplO3ZhciBiPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3YrPWIuaG9yaXpvbnRhbFN1bSxnKz1iLnZlcnRpY2FsU3VtO3ZhciB5PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7eS5taW5XaWR0aD12KyJweCIseS5taW5IZWlnaHQ9ZysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGQuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX1lbHNlIHUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5wYXJlbnQsZC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpfSxlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQsbil7dGhpcy5fZGlydHk9ITEsdDwwJiYodD10aGlzLnBhcmVudC5ub2RlLm9mZnNldFdpZHRoKSxuPDAmJihuPXRoaXMucGFyZW50Lm5vZGUub2Zmc2V0SGVpZ2h0KSx0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIGk9dGhpcy5fYm94LnBhZGRpbmdUb3Ascj10aGlzLl9ib3gucGFkZGluZ0xlZnQsbz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLHM9bi10aGlzLl9ib3gudmVydGljYWxTdW0sdT10aGlzLnJvd0NvdW50LTEsYz10aGlzLmNvbHVtbkNvdW50LTEsbD11KnRoaXMuX3Jvd1NwYWNpbmcsZD1jKnRoaXMuX2NvbHVtblNwYWNpbmc7aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9yb3dTaXplcnMsTWF0aC5tYXgoMCxzLWwpKSxoLkJveEVuZ2luZS5jYWxjKHRoaXMuX2NvbHVtblNpemVycyxNYXRoLm1heCgwLG8tZCkpO2Zvcih2YXIgZj0wLHA9aSxtPXRoaXMucm93Q291bnQ7ZjxtOysrZil0aGlzLl9yb3dTdGFydHNbZl09cCxwKz10aGlzLl9yb3dTaXplcnNbZl0uc2l6ZSt0aGlzLl9yb3dTcGFjaW5nO2ZvcihmPTAscD1yLG09dGhpcy5jb2x1bW5Db3VudDtmPG07KytmKXRoaXMuX2NvbHVtblN0YXJ0c1tmXT1wLHArPXRoaXMuX2NvbHVtblNpemVyc1tmXS5zaXplK3RoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKGY9MCxtPXRoaXMuX2l0ZW1zLmxlbmd0aDtmPG07KytmKXt2YXIgZz10aGlzLl9pdGVtc1tmXTtpZighZy5pc0hpZGRlbil7dmFyIHY9ZS5nZXRDZWxsQ29uZmlnKGcud2lkZ2V0KSxiPU1hdGgubWluKHYucm93LHUpLHk9TWF0aC5taW4odi5jb2x1bW4sYyksXz1NYXRoLm1pbih2LnJvdyt2LnJvd1NwYW4tMSx1KSx3PU1hdGgubWluKHYuY29sdW1uK3YuY29sdW1uU3Bhbi0xLGMpLHg9dGhpcy5fY29sdW1uU3RhcnRzW3ldLE09dGhpcy5fcm93U3RhcnRzW2JdLFM9dGhpcy5fY29sdW1uU3RhcnRzW3ddK3RoaXMuX2NvbHVtblNpemVyc1t3XS5zaXplLXgsRT10aGlzLl9yb3dTdGFydHNbX10rdGhpcy5fcm93U2l6ZXJzW19dLnNpemUtTTtnLnVwZGF0ZSh4LE0sUyxFKX19fSxlfShsLkxheW91dCk7ZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5nZXRDZWxsQ29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNlbGxDb25maWdQcm9wZXJ0eS5nZXQodCl9LHQuc2V0Q2VsbENvbmZpZz1mdW5jdGlvbih0LGUpe28uY2VsbENvbmZpZ1Byb3BlcnR5LnNldCh0LG8ubm9ybWFsaXplQ29uZmlnKGUpKX19KGY9ZS5HcmlkTGF5b3V0fHwoZS5HcmlkTGF5b3V0PXt9KSksZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5jZWxsQ29uZmlnUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToiY2VsbENvbmZpZyIsY3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJue3JvdzowLGNvbHVtbjowLHJvd1NwYW46MSxjb2x1bW5TcGFuOjF9fSxjaGFuZ2VkOmZ1bmN0aW9uKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBmJiZ0LnBhcmVudC5maXQoKX19KSx0Lm5vcm1hbGl6ZUNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm57cm93Ok1hdGgubWF4KDAsTWF0aC5mbG9vcih0LnJvd3x8MCkpLGNvbHVtbjpNYXRoLm1heCgwLE1hdGguZmxvb3IodC5jb2x1bW58fDApKSxyb3dTcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LnJvd1NwYW58fDApKSxjb2x1bW5TcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LmNvbHVtblNwYW58fDApKX19LHQuY2xhbXBWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5yb3dTcGFuQ21wPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5jZWxsQ29uZmlnUHJvcGVydHkuZ2V0KGUud2lkZ2V0KSxyPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChuLndpZGdldCk7cmV0dXJuIGkucm93U3Bhbi1yLnJvd1NwYW59LHQuY29sdW1uU3BhbkNtcD1mdW5jdGlvbihlLG4pe3ZhciBpPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChlLndpZGdldCkscj10LmNlbGxDb25maWdQcm9wZXJ0eS5nZXQobi53aWRnZXQpO3JldHVybiBpLmNvbHVtblNwYW4tci5jb2x1bW5TcGFufSx0LnJlYWxsb2NTaXplcnM9ZnVuY3Rpb24odCxlKXtmb3IoZT1NYXRoLm1heCgxLE1hdGguZmxvb3IoZSkpO3QubGVuZ3RoPGU7KXQucHVzaChuZXcgaC5Cb3hTaXplcik7dC5sZW5ndGg8ZSYmKHQubGVuZ3RoPWUpfSx0LmRpc3RyaWJ1dGVNaW49ZnVuY3Rpb24odCxlLG4saSl7aWYoIShuPGUpKWlmKGUhPT1uKXtmb3IodmFyIHI9MCxvPWU7bzw9bjsrK28pcis9dFtvXS5taW5TaXplO2lmKCEocj49aSkpe3ZhciBzPShpLXIpLyhuLWUrMSk7Zm9yKG89ZTtvPD1uOysrbyl0W29dLm1pblNpemUrPXN9fWVsc2V7dmFyIGE9dFtlXTthLm1pblNpemU9TWF0aC5tYXgoYS5taW5TaXplLGkpfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDc5KSxjPW4oNSksaD1uKDU1KSxsPW4oNyksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgaT10LmNhbGwodGhpcyx7bm9kZTpvLmNyZWF0ZU5vZGUoKX0pfHx0aGlzO3JldHVybiBpLl9hY3RpdmVJbmRleD0tMSxpLl9tZW51cz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFkZENsYXNzKCJwLU1lbnVCYXIiKSxpLnNldEZsYWcobC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5fbWVudXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImNoaWxkTWVudSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jaGlsZE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51QmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZU1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX21lbnVzLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX21lbnVzLmxlbmd0aCkmJih0PS0xKSx0aGlzLl9hY3RpdmVJbmRleCE9PXQmJih0aGlzLl9hY3RpdmVJbmRleD10LHRoaXMudXBkYXRlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibWVudXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUub3BlbkFjdGl2ZU1lbnU9ZnVuY3Rpb24oKXstMSE9PXRoaXMuX2FjdGl2ZUluZGV4JiYodGhpcy5fb3BlbkNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudSYmKHRoaXMuX2NoaWxkTWVudS5hY3RpdmVJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnUuYWN0aXZhdGVOZXh0SXRlbSgpKSl9LGUucHJvdG90eXBlLmFkZE1lbnU9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRNZW51KHRoaXMuX21lbnVzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0TWVudT1mdW5jdGlvbih0LGUpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIG49dGhpcy5fbWVudXMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl9tZW51cy5sZW5ndGgpKTtpZigtMT09PW4pcmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX21lbnVzLGksZSksZS5hZGRDbGFzcygicC1NZW51QmFyLW1lbnUiKSxlLmFib3V0VG9DbG9zZS5jb25uZWN0KHRoaXMuX29uTWVudUFib3V0VG9DbG9zZSx0aGlzKSxlLm1lbnVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vbk1lbnVNZW51UmVxdWVzdGVkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHZvaWQgdGhpcy51cGRhdGUoKTtpPT09dGhpcy5fbWVudXMubGVuZ3RoJiZpLS0sbiE9PWkmJihzLkFycmF5RXh0Lm1vdmUodGhpcy5fbWVudXMsbixpKSx0aGlzLnVwZGF0ZSgpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudT1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZU1lbnVBdCh0aGlzLl9tZW51cy5pbmRleE9mKHQpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudUF0PWZ1bmN0aW9uKHQpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIGU9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9tZW51cyx0KTtlJiYoZS5hYm91dFRvQ2xvc2UuZGlzY29ubmVjdCh0aGlzLl9vbk1lbnVBYm91dFRvQ2xvc2UsdGhpcyksZS5tZW51UmVxdWVzdGVkLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51TWVudVJlcXVlc3RlZCx0aGlzKSxlLnRpdGxlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlLnJlbW92ZUNsYXNzKCJwLU1lbnVCYXItbWVudSIpLHRoaXMudXBkYXRlKCkpfSxlLnByb3RvdHlwZS5jbGVhck1lbnVzPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuX21lbnVzLmxlbmd0aCl7dGhpcy5fY2xvc2VDaGlsZE1lbnUoKTtmb3IodmFyIHQ9MCxlPXRoaXMuX21lbnVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO24uYWJvdXRUb0Nsb3NlLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51QWJvdXRUb0Nsb3NlLHRoaXMpLG4ubWVudVJlcXVlc3RlZC5kaXNjb25uZWN0KHRoaXMuX29uTWVudU1lbnVSZXF1ZXN0ZWQsdGhpcyksbi50aXRsZS5jaGFuZ2VkLmRpc2Nvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksbi5yZW1vdmVDbGFzcygicC1NZW51QmFyLW1lbnUiKX10aGlzLl9tZW51cy5sZW5ndGg9MCx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNlbGVhdmUiOnRoaXMuX2V2dE1vdXNlTGVhdmUodCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMpLHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLm9uQWN0aXZhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5ub2RlLmZvY3VzKCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fbWVudXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5fYWN0aXZlSW5kZXgscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10udGl0bGUsdT1vPT09aTtyW29dPW4ucmVuZGVySXRlbSh7dGl0bGU6YSxhY3RpdmU6dX0pfWguVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGU9dC5rZXlDb2RlO2lmKDEzIT09ZSYmMzghPT1lJiY0MCE9PWUpe2lmKDI3PT09ZSlyZXR1cm4gdGhpcy5fY2xvc2VDaGlsZE1lbnUoKSx0aGlzLmFjdGl2ZUluZGV4PS0xLHZvaWQgdGhpcy5ub2RlLmJsdXIoKTtpZigzNyE9PWUpaWYoMzkhPT1lKXt2YXIgbj11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKG4pe3ZhciBpPXRoaXMuX2FjdGl2ZUluZGV4KzEscj1vLmZpbmRNbmVtb25pYyh0aGlzLl9tZW51cyxuLGkpOy0xPT09ci5pbmRleHx8ci5tdWx0aXBsZT8tMSE9PXIuaW5kZXg/dGhpcy5hY3RpdmVJbmRleD1yLmluZGV4Oi0xIT09ci5hdXRvJiYodGhpcy5hY3RpdmVJbmRleD1yLmF1dG8pOih0aGlzLmFjdGl2ZUluZGV4PXIuaW5kZXgsdGhpcy5vcGVuQWN0aXZlTWVudSgpKX19ZWxzZXtzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9cz09PWEtMT8wOnMrMX1lbHNle3ZhciBzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9MD09PXM/YS0xOnMtMX19ZWxzZSB0aGlzLm9wZW5BY3RpdmVNZW51KCl9LGUucHJvdG90eXBlLl9ldnRNb3VzZURvd249ZnVuY3Rpb24odCl7aWYoYS5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5ub2RlLHQuY2xpZW50WCx0LmNsaWVudFkpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pOy0xIT09ZT8wPT09dC5idXR0b24mJih0aGlzLl9jaGlsZE1lbnU/KHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5hY3RpdmVJbmRleD1lKToodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX29wZW5DaGlsZE1lbnUoKSkpOnRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2UhPT10aGlzLl9hY3RpdmVJbmRleCYmKC0xPT09ZSYmdGhpcy5fY2hpbGRNZW51fHwodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX2NoaWxkTWVudSYmdGhpcy5fb3BlbkNoaWxkTWVudSgpKSl9LGUucHJvdG90eXBlLl9ldnRNb3VzZUxlYXZlPWZ1bmN0aW9uKHQpe3RoaXMuX2NoaWxkTWVudXx8KHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb3BlbkNoaWxkTWVudT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0aXZlTWVudTtpZih0KXt2YXIgZT10aGlzLl9jaGlsZE1lbnU7aWYoZSE9PXQpe3RoaXMuX2NoaWxkTWVudT10LGU/ZS5jbG9zZSgpOih0aGlzLmFkZENsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApKSxjLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMsbC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW5bdGhpcy5fYWN0aXZlSW5kZXhdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5sZWZ0LHI9bi5ib3R0b207dC5vcGVuKGkscix7Zm9yY2VYOiEwLGZvcmNlWTohMH0pfX1lbHNlIHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLl9jbG9zZUNoaWxkTWVudT1mdW5jdGlvbigpe2lmKHRoaXMuX2NoaWxkTWVudSl7dGhpcy5yZW1vdmVDbGFzcygicC1tb2QtYWN0aXZlIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKTt2YXIgdD10aGlzLl9jaGlsZE1lbnU7dGhpcy5fY2hpbGRNZW51PW51bGwsdC5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTF9fSxlLnByb3RvdHlwZS5fb25NZW51QWJvdXRUb0Nsb3NlPWZ1bmN0aW9uKHQpe3Q9PT10aGlzLl9jaGlsZE1lbnUmJih0aGlzLnJlbW92ZUNsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApLHRoaXMuX2NoaWxkTWVudT1udWxsLHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb25NZW51TWVudVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2lmKHQ9PT10aGlzLl9jaGlsZE1lbnUpe3ZhciBuPXRoaXMuX2FjdGl2ZUluZGV4LGk9dGhpcy5fbWVudXMubGVuZ3RoO3N3aXRjaChlKXtjYXNlIm5leHQiOnRoaXMuYWN0aXZlSW5kZXg9bj09PWktMT8wOm4rMTticmVhaztjYXNlInByZXZpb3VzIjp0aGlzLmFjdGl2ZUluZGV4PTA9PT1uP2ktMTpuLTF9dGhpcy5vcGVuQWN0aXZlTWVudSgpfX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGUoKX0sZX0obC5XaWRnZXQpO2UuTWVudUJhcj1kLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySXRlbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUl0ZW1DbGFzcyh0KSxuPXRoaXMuY3JlYXRlSXRlbURhdGFzZXQodCk7cmV0dXJuIGguaC5saSh7Y2xhc3NOYW1lOmUsZGF0YXNldDpufSx0aGlzLnJlbmRlckljb24odCksdGhpcy5yZW5kZXJMYWJlbCh0KSl9LHQucHJvdG90eXBlLnJlbmRlckljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZTplfSx0LnRpdGxlLmljb25MYWJlbCl9LHQucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0TGFiZWwodCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1MYWJlbCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtIjtyZXR1cm4gdC50aXRsZS5jbGFzc05hbWUmJihlKz0iICIrdC50aXRsZS5jbGFzc05hbWUpLHQuYWN0aXZlJiYoZSs9IiBwLW1vZC1hY3RpdmUiKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdC50aXRsZS5kYXRhc2V0fSx0LnByb3RvdHlwZS5jcmVhdGVJY29uQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtSWNvbiIsbj10LnRpdGxlLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUsbj1lLmxhYmVsLGk9ZS5tbmVtb25pYztpZihpPDB8fGk+PW4ubGVuZ3RoKXJldHVybiBuO3ZhciByPW4uc2xpY2UoMCxpKSxvPW4uc2xpY2UoaSsxKSxzPW5baV07cmV0dXJuW3IsaC5oLnNwYW4oe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1NbmVtb25pYyJ9LHMpLG9dfSx0fSgpO3QuUmVuZGVyZXI9ZSx0LmRlZmF1bHRSZW5kZXJlcj1uZXcgZX0oZD1lLk1lbnVCYXJ8fChlLk1lbnVCYXI9e30pKSxlLk1lbnVCYXI9ZCxmdW5jdGlvbih0KXt0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLU1lbnVCYXItY29udGVudCIsdC5hcHBlbmRDaGlsZChlKSx0LnRhYkluZGV4PS0xLHR9LHQuZmluZE1uZW1vbmljPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9LTEscj0tMSxvPSExLHM9ZS50b1VwcGVyQ2FzZSgpLGE9MCx1PXQubGVuZ3RoO2E8dTsrK2Epe3ZhciBjPShhK24pJXUsaD10W2NdLnRpdGxlO2lmKDAhPT1oLmxhYmVsLmxlbmd0aCl7dmFyIGw9aC5tbmVtb25pYztsPj0wJiZsPGgubGFiZWwubGVuZ3RoP2gubGFiZWxbbF0udG9VcHBlckNhc2UoKT09PXMmJigtMT09PWk/aT1jOm89ITApOi0xPT09ciYmaC5sYWJlbFswXS50b1VwcGVyQ2FzZSgpPT09cyYmKHI9Yyl9fXJldHVybntpbmRleDppLG11bHRpcGxlOm8sYXV0bzpyfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNTYpLHU9bigxMSksYz1uKDcpLGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dC5jYWxsKHRoaXMse25vZGU6by5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gbi5fb25SZXBlYXQ9ZnVuY3Rpb24oKXtpZihuLl9yZXBlYXRUaW1lcj0tMSxuLl9wcmVzc0RhdGEpe3ZhciB0PW4uX3ByZXNzRGF0YS5wYXJ0O2lmKCJ0aHVtYiIhPT10KXtuLl9yZXBlYXRUaW1lcj1zZXRUaW1lb3V0KG4uX29uUmVwZWF0LDIwKTt2YXIgZT1uLl9wcmVzc0RhdGEubW91c2VYLGk9bi5fcHJlc3NEYXRhLm1vdXNlWTtpZigiZGVjcmVtZW50IiE9PXQpaWYoImluY3JlbWVudCIhPT10KXtpZigidHJhY2siPT09dCl7aWYoIXMuRWxlbWVudEV4dC5oaXRUZXN0KG4udHJhY2tOb2RlLGUsaSkpcmV0dXJuO3ZhciByPW4udGh1bWJOb2RlO2lmKHMuRWxlbWVudEV4dC5oaXRUZXN0KHIsZSxpKSlyZXR1cm47dmFyIG89ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPXZvaWQgMDtyZXR1cm4gYT0iaG9yaXpvbnRhbCI9PT1uLl9vcmllbnRhdGlvbj9lPG8ubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50IjppPG8udG9wPyJkZWNyZW1lbnQiOiJpbmNyZW1lbnQiLHZvaWQgbi5fcGFnZVJlcXVlc3RlZC5lbWl0KGEpfX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmluY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJpbmNyZW1lbnQiKX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmRlY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJkZWNyZW1lbnQiKX19fX0sbi5fdmFsdWU9MCxuLl9wYWdlPTEwLG4uX21heGltdW09MTAwLG4uX3JlcGVhdFRpbWVyPS0xLG4uX3ByZXNzRGF0YT1udWxsLG4uX3RodW1iTW92ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3N0ZXBSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3BhZ2VSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU2Nyb2xsQmFyIiksbi5zZXRGbGFnKGMuV2lkZ2V0LkZsYWcuRGlzYWxsb3dMYXlvdXQpLG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb258fCJ2ZXJ0aWNhbCIsbi5kYXRhc2V0Lm9yaWVudGF0aW9uPW4uX29yaWVudGF0aW9uLHZvaWQgMCE9PWUubWF4aW11bSYmKG4uX21heGltdW09TWF0aC5tYXgoMCxlLm1heGltdW0pKSx2b2lkIDAhPT1lLnBhZ2UmJihuLl9wYWdlPU1hdGgubWF4KDAsZS5wYWdlKSksdm9pZCAwIT09ZS52YWx1ZSYmKG4uX3ZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oZS52YWx1ZSxuLl9tYXhpbXVtKSkpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRodW1iTW92ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGh1bWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0ZXBSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RlcFJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInBhZ2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGFnZVJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dD1NYXRoLm1heCgwLE1hdGgubWluKHQsdGhpcy5fbWF4aW11bSkpLHRoaXMuX3ZhbHVlIT09dCYmKHRoaXMuX3ZhbHVlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWdlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhZ2V9LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fcGFnZSE9PXQmJih0aGlzLl9wYWdlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtYXhpbXVtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heGltdW19LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fbWF4aW11bSE9PXQmJih0aGlzLl9tYXhpbXVtPXQsdGhpcy5fdmFsdWU9TWF0aC5taW4odGhpcy5fdmFsdWUsdCksdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJkZWNyZW1lbnROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci1idXR0b24iKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImluY3JlbWVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtU2Nyb2xsQmFyLWJ1dHRvbiIpWzFdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidHJhY2tOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10cmFjayIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGh1bWJOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10aHVtYiIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPTEwMCp0aGlzLl92YWx1ZS90aGlzLl9tYXhpbXVtLG49MTAwKnRoaXMuX3BhZ2UvKHRoaXMuX3BhZ2UrdGhpcy5fbWF4aW11bSk7ZT1NYXRoLm1heCgwLE1hdGgubWluKGUsMTAwKSksbj1NYXRoLm1heCgwLE1hdGgubWluKG4sMTAwKSk7dmFyIGk9dGhpcy50aHVtYk5vZGUuc3R5bGU7Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/KGkudG9wPSIiLGkuaGVpZ2h0PSIiLGkubGVmdD1lKyIlIixpLndpZHRoPW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIistZSsiJSwgMCUpIik6KGkubGVmdD0iIixpLndpZHRoPSIiLGkudG9wPWUrIiUiLGkuaGVpZ2h0PW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCUsICIrLWUrIiUpIil9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlKXt2YXIgZT10aGlzLl9wcmVzc0RhdGE/dGhpcy5fcHJlc3NEYXRhLnZhbHVlOi0xO3RoaXMuX3JlbGVhc2VNb3VzZSgpLC0xIT09ZSYmdGhpcy5fbW92ZVRodW1iKGUpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24mJiF0aGlzLl9wcmVzc0RhdGEpe3ZhciBlPW8uZmluZFBhcnQodGhpcyx0LnRhcmdldCk7aWYoZSl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIG49YS5EcmFnLm92ZXJyaWRlQ3Vyc29yKCJkZWZhdWx0Iik7aWYodGhpcy5fcHJlc3NEYXRhPXtwYXJ0OmUsb3ZlcnJpZGU6bixkZWx0YTotMSx2YWx1ZTotMSxtb3VzZVg6dC5jbGllbnRYLG1vdXNlWTp0LmNsaWVudFl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLCJ0aHVtYiI9PT1lKXt2YXIgaT10aGlzLnRodW1iTm9kZSxyPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WC1yLmxlZnQ6dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WS1yLnRvcCxpLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHZvaWQodGhpcy5fcHJlc3NEYXRhLnZhbHVlPXRoaXMuX3ZhbHVlKX1pZigidHJhY2siPT09ZSl7cj10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgcz12b2lkIDA7cmV0dXJuIHM9Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dC5jbGllbnRYPHIubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50Ijp0LmNsaWVudFk8ci50b3A/ImRlY3JlbWVudCI6ImluY3JlbWVudCIsdGhpcy5fcmVwZWF0VGltZXI9c2V0VGltZW91dCh0aGlzLl9vblJlcGVhdCwzNTApLHZvaWQgdGhpcy5fcGFnZVJlcXVlc3RlZC5lbWl0KHMpfXJldHVybiJkZWNyZW1lbnQiPT09ZT8odGhpcy5kZWNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiZGVjcmVtZW50IikpOiJpbmNyZW1lbnQiPT09ZT8odGhpcy5pbmNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiaW5jcmVtZW50IikpOnZvaWQgMH19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX3ByZXNzRGF0YSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVg9dC5jbGllbnRYLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVk9dC5jbGllbnRZLCJ0aHVtYiI9PT10aGlzLl9wcmVzc0RhdGEucGFydCkpe3ZhciBlLG4saT10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMudHJhY2tOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyJob3Jpem9udGFsIj09PXRoaXMuX29yaWVudGF0aW9uPyhlPXQuY2xpZW50WC1yLmxlZnQtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci53aWR0aC1pLndpZHRoKTooZT10LmNsaWVudFktci50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci5oZWlnaHQtaS5oZWlnaHQpO3ZhciBvPTA9PT1uPzA6ZSp0aGlzLl9tYXhpbXVtL247dGhpcy5fbW92ZVRodW1iKG8pfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fcmVsZWFzZU1vdXNlKCkpfSxlLnByb3RvdHlwZS5fcmVsZWFzZU1vdXNlPWZ1bmN0aW9uKCl7dGhpcy5fcHJlc3NEYXRhJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3JlcGVhdFRpbWVyKSx0aGlzLl9yZXBlYXRUaW1lcj0tMSx0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHRoaXMudGh1bWJOb2RlLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWFjdGl2ZSIpLHRoaXMuZGVjcmVtZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1hY3RpdmUiKSx0aGlzLmluY3JlbWVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS5fbW92ZVRodW1iPWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX21heGltdW0pKSx0aGlzLl92YWx1ZSE9PXQmJih0aGlzLl92YWx1ZT10LHRoaXMudXBkYXRlKCksdGhpcy5fdGh1bWJNb3ZlZC5lbWl0KHQpKX0sZX0oYy5XaWRnZXQpO2UuU2Nyb2xsQmFyPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsbi5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsZS5kYXRhc2V0LmFjdGlvbj0iZGVjcmVtZW50IixuLmRhdGFzZXQuYWN0aW9uPSJpbmNyZW1lbnQiLGkuY2xhc3NOYW1lPSJwLVNjcm9sbEJhci10cmFjayIsci5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLXRodW1iIixpLmFwcGVuZENoaWxkKHIpLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChpKSx0LmFwcGVuZENoaWxkKG4pLHR9LHQuZmluZFBhcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50aHVtYk5vZGUuY29udGFpbnMoZSk/InRodW1iIjp0LnRyYWNrTm9kZS5jb250YWlucyhlKT8idHJhY2siOnQuZGVjcmVtZW50Tm9kZS5jb250YWlucyhlKT8iZGVjcmVtZW50Ijp0LmluY3JlbWVudE5vZGUuY29udGFpbnMoZSk/ImluY3JlbWVudCI6bnVsbH19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMikscz1uKDUpLGE9bigyMiksdT1uKDcpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0PW51bGwsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZih0aGlzLl93aWRnZXQpe3ZhciBlPXRoaXMuX3dpZGdldDt0aGlzLl93aWRnZXQ9bnVsbCxlLmRpc3Bvc2UoKX10LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldCE9PXQmJih0aGlzLl93aWRnZXQmJnRoaXMuX3dpZGdldC5kaXNwb3NlKCksdGhpcy5fd2lkZ2V0PXQsdGhpcy5wYXJlbnQmJnQmJnRoaXMuYXR0YWNoV2lkZ2V0KHQpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldD9vLm9uY2UodGhpcy5fd2lkZ2V0KTpvLmVtcHR5KCl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLl93aWRnZXQ9PT10JiYodGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5wYXJlbnQmJnRoaXMuZGV0YWNoV2lkZ2V0KHQpKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQpe2UuYXR0YWNoV2lkZ2V0KHQpfSl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCx1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKX0sZX0oYS5MYXlvdXQpO2UuU2luZ2xldG9uTGF5b3V0PWN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNTYpLHU9big1NCksYz1uKDEzMyksaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3ByZXNzRGF0YT1udWxsLG4uYWRkQ2xhc3MoInAtU3BsaXRQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0Lm9yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQub3JpZW50YXRpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInJlbmRlcmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnJlbmRlcmVyfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaGFuZGxlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbGF0aXZlU2l6ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVsYXRpdmVTaXplcygpfSxlLnByb3RvdHlwZS5zZXRSZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNldFJlbGF0aXZlU2l6ZXModCl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVNwbGl0UGFuZWwtY2hpbGQiKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZFJlbW92ZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5yZW1vdmVDbGFzcygicC1TcGxpdFBhbmVsLWNoaWxkIiksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChlLmhhbmRsZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7aWYoLTEhPT1uKXt2YXIgaTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1lLmhhbmRsZXNbbl0sbz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2k9Imhvcml6b250YWwiPT09ZS5vcmllbnRhdGlvbj90LmNsaWVudFgtby5sZWZ0OnQuY2xpZW50WS1vLnRvcDt2YXIgdT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKSxjPWEuRHJhZy5vdmVycmlkZUN1cnNvcih1LmN1cnNvcik7dGhpcy5fcHJlc3NEYXRhPXtpbmRleDpuLGRlbHRhOmksb3ZlcnJpZGU6Y319fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbj10aGlzLmxheW91dCxpPXRoaXMubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPSJob3Jpem9udGFsIj09PW4ub3JpZW50YXRpb24/dC5jbGllbnRYLWkubGVmdC10aGlzLl9wcmVzc0RhdGEuZGVsdGE6dC5jbGllbnRZLWkudG9wLXRoaXMuX3ByZXNzRGF0YS5kZWx0YSxuLm1vdmVIYW5kbGUodGhpcy5fcHJlc3NEYXRhLmluZGV4LGUpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VVcD1mdW5jdGlvbih0KXswPT09dC5idXR0b24mJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9yZWxlYXNlTW91c2UoKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZX0odS5QYW5lbCk7ZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtU3BsaXRQYW5lbC1oYW5kbGUiLHR9LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlLHQuZ2V0U3RyZXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gYy5TcGxpdExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtjLlNwbGl0TGF5b3V0LnNldFN0cmV0Y2godCxlKX19KGg9ZS5TcGxpdFBhbmVsfHwoZS5TcGxpdFBhbmVsPXt9KSksZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVMYXlvdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGF5b3V0fHxuZXcgYy5TcGxpdExheW91dCh7cmVuZGVyZXI6dC5yZW5kZXJlcnx8aC5kZWZhdWx0UmVuZGVyZXIsb3JpZW50YXRpb246dC5vcmllbnRhdGlvbixhbGlnbm1lbnQ6dC5hbGlnbm1lbnQsc3BhY2luZzp0LnNwYWNpbmd9KX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNSksdT1uKDExKSxjPW4oNzYpLGg9bigxMzUpLGw9big4MCksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgbC5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi5zdGFja2VkUGFuZWw9bmV3IGguU3RhY2tlZFBhbmVsLG4uc3RhY2tlZFBhbmVsLmFkZENsYXNzKCJwLVRhYlBhbmVsLXN0YWNrZWRQYW5lbCIpLG4udGFiQmFyLnRhYk1vdmVkLmNvbm5lY3Qobi5fb25UYWJNb3ZlZCxuKSxuLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KG4uX29uQ3VycmVudENoYW5nZWQsbiksbi50YWJCYXIudGFiQ2xvc2VSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkNsb3NlUmVxdWVzdGVkLG4pLG4udGFiQmFyLnRhYkFjdGl2YXRlUmVxdWVzdGVkLmNvbm5lY3Qobi5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZCxuKSxuLnN0YWNrZWRQYW5lbC53aWRnZXRSZW1vdmVkLmNvbm5lY3Qobi5fb25XaWRnZXRSZW1vdmVkLG4pLG4uX3RhYlBsYWNlbWVudD1lLnRhYlBsYWNlbWVudHx8InRvcCI7dmFyIGk9by5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50KG4uX3RhYlBsYWNlbWVudCkscj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudChuLl90YWJQbGFjZW1lbnQpO24udGFiQmFyLm9yaWVudGF0aW9uPXIsbi50YWJCYXIuZGF0YXNldC5wbGFjZW1lbnQ9bi5fdGFiUGxhY2VtZW50O3ZhciBzPW5ldyBjLkJveExheW91dCh7ZGlyZWN0aW9uOmksc3BhY2luZzowfSk7cmV0dXJuIGMuQm94TGF5b3V0LnNldFN0cmV0Y2gobi50YWJCYXIsMCksYy5Cb3hMYXlvdXQuc2V0U3RyZXRjaChuLnN0YWNrZWRQYW5lbCwxKSxzLmFkZFdpZGdldChuLnRhYkJhcikscy5hZGRXaWRnZXQobi5zdGFja2VkUGFuZWwpLG4ubGF5b3V0PXMsbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWJCYXIuY3VycmVudEluZGV4fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIuY3VycmVudEluZGV4PXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50YWJCYXIuY3VycmVudFRpdGxlO3JldHVybiB0P3Qub3duZXI6bnVsbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRUaXRsZT10P3QudGl0bGU6bnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYnNNb3ZhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQmFyLnRhYnNNb3ZhYmxlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIudGFic01vdmFibGU9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYlBsYWNlbWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJQbGFjZW1lbnR9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl90YWJQbGFjZW1lbnQhPT10KXt0aGlzLl90YWJQbGFjZW1lbnQ9dDt2YXIgZT1vLmRpcmVjdGlvbkZyb21QbGFjZW1lbnQodCksbj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudCh0KTt0aGlzLnRhYkJhci5vcmllbnRhdGlvbj1uLHRoaXMudGFiQmFyLmRhdGFzZXQucGxhY2VtZW50PXQsdGhpcy5sYXlvdXQuZGlyZWN0aW9uPWV9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YWNrZWRQYW5lbC53aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLmluc2VydFdpZGdldCh0aGlzLndpZGdldHMubGVuZ3RoLHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXtlIT09dGhpcy5jdXJyZW50V2lkZ2V0JiZlLmhpZGUoKSx0aGlzLnN0YWNrZWRQYW5lbC5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxvPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1vP28ub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwocy5QbGF0Zm9ybS5JU19FREdFfHxzLlBsYXRmb3JtLklTX0lFKSYmYS5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdGFja2VkUGFuZWwuaW5zZXJ0V2lkZ2V0KGUudG9JbmRleCxlLnRpdGxlLm93bmVyKX0sZS5wcm90b3R5cGUuX29uV2lkZ2V0UmVtb3ZlZD1mdW5jdGlvbih0LGUpe3RoaXMudGFiQmFyLnJlbW92ZVRhYihlLnRpdGxlKX0sZX0obig3KS5XaWRnZXQpO2UuVGFiUGFuZWw9ZCxmdW5jdGlvbih0KXt0Lm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudD1mdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0sdC5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuW3RdfTt2YXIgZT17dG9wOiJob3Jpem9udGFsIixsZWZ0OiJ2ZXJ0aWNhbCIscmlnaHQ6InZlcnRpY2FsIixib3R0b206Imhvcml6b250YWwifSxuPXt0b3A6InRvcC10by1ib3R0b20iLGxlZnQ6ImxlZnQtdG8tcmlnaHQiLHJpZ2h0OiJyaWdodC10by1sZWZ0Iixib3R0b206ImJvdHRvbS10by10b3AifX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyNSkscz1uKDc1KSxhPXthbGlnbl9jb250ZW50Om51bGwsYWxpZ25faXRlbXM6bnVsbCxhbGlnbl9zZWxmOm51bGwsYm9yZGVyOm51bGwsYm90dG9tOm51bGwsZGlzcGxheTpudWxsLGZsZXg6bnVsbCxmbGV4X2Zsb3c6bnVsbCxoZWlnaHQ6bnVsbCxqdXN0aWZ5X2NvbnRlbnQ6bnVsbCxsZWZ0Om51bGwsbWFyZ2luOm51bGwsbWF4X2hlaWdodDpudWxsLG1heF93aWR0aDpudWxsLG1pbl9oZWlnaHQ6bnVsbCxtaW5fd2lkdGg6bnVsbCxvdmVyZmxvdzpudWxsLG92ZXJmbG93X3g6bnVsbCxvdmVyZmxvd195Om51bGwsb3JkZXI6bnVsbCxwYWRkaW5nOm51bGwscmlnaHQ6bnVsbCx0b3A6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCxncmlkX2F1dG9fY29sdW1uczpudWxsLGdyaWRfYXV0b19mbG93Om51bGwsZ3JpZF9hdXRvX3Jvd3M6bnVsbCxncmlkX2dhcDpudWxsLGdyaWRfdGVtcGxhdGVfcm93czpudWxsLGdyaWRfdGVtcGxhdGVfY29sdW1uczpudWxsLGdyaWRfdGVtcGxhdGVfYXJlYXM6bnVsbCxncmlkX3JvdzpudWxsLGdyaWRfY29sdW1uOm51bGwsZ3JpZF9hcmVhOm51bGx9LHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGF5b3V0TW9kZWwiLF92aWV3X25hbWU6IkxheW91dFZpZXcifSxhKX0sZX0ocy5XaWRnZXRNb2RlbCk7ZS5MYXlvdXRNb2RlbD11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0aGlzLl90cmFpdE5hbWVzPVtdLHQucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpO2Zvcih2YXIgbj0wLGk9T2JqZWN0LmtleXMoYSk7bjxpLmxlbmd0aDtuKyspe3ZhciByPWlbbl07dGhpcy5yZWdpc3RlclRyYWl0KHIpfX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSksdGhpcy5oYW5kbGVDaGFuZ2UodCx0aGlzLm1vZGVsLmdldCh0KSl9LGUucHJvdG90eXBlLmNzc19uYW1lPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL18vZywiLSIpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm9wdGlvbnMucGFyZW50O24/bnVsbD09PWU/bi5lbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLmNzc19uYW1lKHQpKTpuLmVsLnN0eWxlW3RoaXMuY3NzX25hbWUodCldPWU6Y29uc29sZS53YXJuKCJTdHlsZSBub3QgYXBwbGllZCBiZWNhdXNlIGEgcGFyZW50IHZpZXcgZG9lcyBub3QgZXhpc3QiKX0sZS5wcm90b3R5cGUudW5sYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5vcHRpb25zLnBhcmVudDt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7ZT9lLmVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQuY3NzX25hbWUobikpOmNvbnNvbGUud2FybigiU3R5bGUgbm90IHJlbW92ZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LHRoaXMpfSxlfShzLldpZGdldFZpZXcpO2UuTGF5b3V0Vmlldz1jfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDI1KSxzPW4oNzUpLGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIG8uYXNzaWduKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJTdHlsZU1vZGVsIixfdmlld19uYW1lOiJTdHlsZVZpZXcifSxPYmplY3Qua2V5cyhlLnN0eWxlUHJvcGVydGllcykucmVkdWNlKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbbl09ZS5zdHlsZVByb3BlcnRpZXNbbl0uZGVmYXVsdCx0fSx7fSkpfSxlLnN0eWxlUHJvcGVydGllcz17fSxlfShzLldpZGdldE1vZGVsKTtlLlN0eWxlTW9kZWw9YTt2YXIgdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dGhpcy5fdHJhaXROYW1lcz1bXSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKTtmb3IodmFyIG49dGhpcy5tb2RlbC5jb25zdHJ1Y3RvcixpPTAscj1PYmplY3Qua2V5cyhuLnN0eWxlUHJvcGVydGllcyk7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dGhpcy5yZWdpc3RlclRyYWl0KG8pfXRoaXMuc3R5bGUoKX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSl9LGUucHJvdG90eXBlLmhhbmRsZUNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMub3B0aW9ucy5wYXJlbnQ7aWYobil7dmFyIGk9dGhpcy5tb2RlbC5jb25zdHJ1Y3Rvci5zdHlsZVByb3BlcnRpZXMscj1pW3RdLmF0dHJpYnV0ZSxvPWlbdF0uc2VsZWN0b3Iscz1vP24uZWwucXVlcnlTZWxlY3RvckFsbChvKTpbbi5lbF07aWYobnVsbD09PWUpZm9yKHZhciBhPTA7YSE9PXMubGVuZ3RoOysrYSlzW2FdLnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpO2Vsc2UgZm9yKGE9MDthIT09cy5sZW5ndGg7KythKXNbYV0uc3R5bGVbcl09ZX1lbHNlIGNvbnNvbGUud2FybigiU3R5bGUgbm90IGFwcGxpZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LGUucHJvdG90eXBlLnN0eWxlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT10aGlzLl90cmFpdE5hbWVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO3RoaXMuaGFuZGxlQ2hhbmdlKG4sdGhpcy5tb2RlbC5nZXQobikpfX0sZS5wcm90b3R5cGUudW5zdHlsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5wYXJlbnQsZT10aGlzLm1vZGVsLmNvbnN0cnVjdG9yLnN0eWxlUHJvcGVydGllczt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7aWYodClmb3IodmFyIGk9ZVtuXS5hdHRyaWJ1dGUscj1lW25dLnNlbGVjdG9yLG89cj90LmVsLnF1ZXJ5U2VsZWN0b3JBbGwocik6W3QuZWxdLHM9MDtzIT09by5sZW5ndGg7KytzKW9bc10uc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk7ZWxzZSBjb25zb2xlLndhcm4oIlN0eWxlIG5vdCByZW1vdmVkIGJlY2F1c2UgYSBwYXJlbnQgdmlldyBkb2VzIG5vdCBleGlzdCIpfSx0aGlzKX0sZX0ocy5XaWRnZXRWaWV3KTtlLlN0eWxlVmlldz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0scj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMudGFyZ2V0cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY29tbXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtlcm5lbD1udWxsLHRoaXMuanNTZXJ2aWNlc0tlcm5lbD1udWxsLHRoaXMuaW5pdF9rZXJuZWwodCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRfa2VybmVsPWZ1bmN0aW9uKHQpe3RoaXMua2VybmVsPXQsdGhpcy5qc1NlcnZpY2VzS2VybmVsPXR9LHQucHJvdG90eXBlLm5ld19jb21tPWZ1bmN0aW9uKHQsZSxvLHMsYSx1KXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxjO3JldHVybiByKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxQcm9taXNlLnJlc29sdmUodGhpcy5qc1NlcnZpY2VzS2VybmVsLmNvbm5lY3RUb0NvbW0odCxhKSldO2Nhc2UgMTpyZXR1cm4gaT1yLnNlbnQoKSxjPW5ldyBuKGkpLHRoaXMucmVnaXN0ZXJfY29tbShjKSxjLm9wZW4oZSxvLHMsdSksWzIsY119fSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxyPXRoaXMuanNTZXJ2aWNlc0tlcm5lbC5yZWdpc3RlckNvbW1UYXJnZXQodCxmdW5jdGlvbih0LHIpe3ZhciBvPW5ldyBuKHQpO2kucmVnaXN0ZXJfY29tbShvKTt0cnl7cmV0dXJuIGUobyxyKX1jYXRjaCh0KXtvLmNsb3NlKCksY29uc29sZS5lcnJvcih0KSxjb25zb2xlLmVycm9yKG5ldyBFcnJvcigiRXhjZXB0aW9uIG9wZW5pbmcgbmV3IGNvbW0iKSl9fSk7dGhpcy50YXJnZXRzW3RdPXJ9LHQucHJvdG90eXBlLnVucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy50YXJnZXRzW3RdLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50YXJnZXRzW3RdfSx0LnByb3RvdHlwZS5yZWdpc3Rlcl9jb21tPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbW1zW3QuY29tbV9pZF09UHJvbWlzZS5yZXNvbHZlKHQpLHQua2VybmVsPXRoaXMua2VybmVsLHQuY29tbV9pZH0sdH0oKTt0LkNvbW1NYW5hZ2VyPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuanNTZXJ2aWNlc0NvbW09bnVsbCx0aGlzLmpzU2VydmljZXNDb21tPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY29tbV9pZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmpzU2VydmljZXNDb21tLmNvbW1JZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInRhcmdldF9uYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuanNTZXJ2aWNlc0NvbW0udGFyZ2V0TmFtZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMuanNTZXJ2aWNlc0NvbW0ub3Blbih0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5zZW5kKHQsbixpKTtyZXR1cm4gdGhpcy5faG9va3VwQ2FsbGJhY2tzKHIsZSksci5tc2cuaGVhZGVyLm1zZ19pZH0sdC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5jbG9zZSh0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLm9uX21zZz1mdW5jdGlvbih0KXt0aGlzLmpzU2VydmljZXNDb21tLm9uTXNnPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUub25fY2xvc2U9ZnVuY3Rpb24odCl7dGhpcy5qc1NlcnZpY2VzQ29tbS5vbkNsb3NlPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUuX2hvb2t1cENhbGxiYWNrcz1mdW5jdGlvbih0LGUpe2UmJih0Lm9uUmVwbHk9ZnVuY3Rpb24odCl7ZS5zaGVsbCYmZS5zaGVsbC5yZXBseSYmZS5zaGVsbC5yZXBseSh0KX0sdC5vblN0ZGluPWZ1bmN0aW9uKHQpe2UuaW5wdXQmJmUuaW5wdXQodCl9LHQub25JT1B1Yj1mdW5jdGlvbih0KXtpZihlLmlvcHViKWlmKGUuaW9wdWIuc3RhdHVzJiYic3RhdHVzIj09PXQuaGVhZGVyLm1zZ190eXBlKWUuaW9wdWIuc3RhdHVzKHQpO2Vsc2UgaWYoZS5pb3B1Yi5jbGVhcl9vdXRwdXQmJiJjbGVhcl9vdXRwdXQiPT09dC5oZWFkZXIubXNnX3R5cGUpZS5pb3B1Yi5jbGVhcl9vdXRwdXQodCk7ZWxzZSBpZihlLmlvcHViLm91dHB1dClzd2l0Y2godC5oZWFkZXIubXNnX3R5cGUpe2Nhc2UiZGlzcGxheV9kYXRhIjpjYXNlImV4ZWN1dGVfcmVzdWx0IjplLmlvcHViLm91dHB1dCh0KX19KX0sdH0oKTt0LkNvbW09bn0odC5zZXJ2aWNlc3x8KHQuc2VydmljZXM9e30pKX0oZS5zaGltc3x8KGUuc2hpbXM9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLmluaXRpYWxpemUodCxlLG4pfXJldHVybiB0LnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9oYW5kbGVyX2NvbnRleHQ9bnx8dGhpcyx0aGlzLl9tb2RlbHM9W10sdGhpcy52aWV3cz1bXSx0aGlzLl9jcmVhdGVfdmlldz10LHRoaXMuX3JlbW92ZV92aWV3PWV8fGZ1bmN0aW9uKHQpe3QucmVtb3ZlKCl9fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9bnx8dGhpcy5fcmVtb3ZlX3ZpZXcsbz1lfHx0aGlzLl9jcmVhdGVfdmlldztpPWl8fHRoaXMuX2hhbmRsZXJfY29udGV4dDtmb3IodmFyIHM9MDtzPHQubGVuZ3RoJiYhKHM+PXRoaXMuX21vZGVscy5sZW5ndGh8fHRbc10hPT10aGlzLl9tb2RlbHNbc10pO3MrKyk7Zm9yKHZhciBhPXMsdT10aGlzLnZpZXdzLnNwbGljZShhLHRoaXMudmlld3MubGVuZ3RoLWEpLGM9MDtjPHUubGVuZ3RoO2MrKyl1W2NdLnRoZW4oZnVuY3Rpb24odCl7ci5jYWxsKGksdCl9KTtmb3IoO3M8dC5sZW5ndGg7cysrKXRoaXMudmlld3MucHVzaChQcm9taXNlLnJlc29sdmUoby5jYWxsKGksdFtzXSxzKSkpO3JldHVybiB0aGlzLl9tb2RlbHM9dC5zbGljZSgpLFByb21pc2UuYWxsKHRoaXMudmlld3MpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBQcm9taXNlLmFsbCh0aGlzLnZpZXdzKS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5fcmVtb3ZlX3ZpZXcuY2FsbCh0Ll9oYW5kbGVyX2NvbnRleHQsZSl9KSx0LnZpZXdzPVtdLHQuX21vZGVscz1bXX0pfSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52aWV3cz1udWxsLHRoaXMuX21vZGVscz1udWxsfSx0fSgpO2UuVmlld0xpc3Q9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyNik7ZS5JSnVweXRlcldpZGdldFJlZ2lzdHJ5PW5ldyBpLlRva2VuKCJqdXB5dGVyLmV4dGVuc2lvbnMuanVweXRlcldpZGdldFJlZ2lzdHJ5Iil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE2KSksaShuKDU3KSksaShuKDMzOSkpLGkobigzNDApKSxpKG4oMzQxKSksaShuKDEzNikpLGkobigzNDIpKSxpKG4oMzQzKSksaShuKDM0NCkpLGkobigzNDUpKSxpKG4oMzQ2KSksaShuKDEzNykpLGkobigzNTEpKSxpKG4oMzUyKSksaShuKDM1MykpLGkobigzNTQpKSxpKG4oMzU4KSksaShuKDIzKSksZS52ZXJzaW9uPW4oMzU5KS52ZXJzaW9ufSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7dGFyZ2V0OnZvaWQgMCxzb3VyY2U6dm9pZCAwLF9tb2RlbF9uYW1lOiJEaXJlY3Rpb25hbExpbmtNb2RlbCJ9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlIix0aGlzLnVwZGF0ZUJpbmRpbmdzLHRoaXMpLHRoaXMudXBkYXRlQmluZGluZ3MoKX0sZS5wcm90b3R5cGUudXBkYXRlVmFsdWU9ZnVuY3Rpb24odCxlLG4saSl7aWYoIXRoaXMuX3VwZGF0aW5nKXt0aGlzLl91cGRhdGluZz0hMDt0cnl7biYmKG4uc2V0KGksdC5nZXQoZSkpLG4uc2F2ZV9jaGFuZ2VzKCkpfWZpbmFsbHl7dGhpcy5fdXBkYXRpbmc9ITF9fX0sZS5wcm90b3R5cGUudXBkYXRlQmluZGluZ3M9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpczt0aGlzLmNsZWFudXAoKSx0PXRoaXMuZ2V0KCJzb3VyY2UiKXx8W251bGwsbnVsbF0sdGhpcy5zb3VyY2VNb2RlbD10WzBdLHRoaXMuc291cmNlQXR0cj10WzFdLGU9dGhpcy5nZXQoInRhcmdldCIpfHxbbnVsbCxudWxsXSx0aGlzLnRhcmdldE1vZGVsPWVbMF0sdGhpcy50YXJnZXRBdHRyPWVbMV0sdGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMubGlzdGVuVG8odGhpcy5zb3VyY2VNb2RlbCwiY2hhbmdlOiIrdGhpcy5zb3VyY2VBdHRyLGZ1bmN0aW9uKCl7bi51cGRhdGVWYWx1ZShuLnNvdXJjZU1vZGVsLG4uc291cmNlQXR0cixuLnRhcmdldE1vZGVsLG4udGFyZ2V0QXR0cil9KSx0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuc291cmNlTW9kZWwsdGhpcy5zb3VyY2VBdHRyLHRoaXMudGFyZ2V0TW9kZWwsdGhpcy50YXJnZXRBdHRyKSx0aGlzLmxpc3RlblRvT25jZSh0aGlzLnNvdXJjZU1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvT25jZSh0aGlzLnRhcmdldE1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApfSxlLnByb3RvdHlwZS5jbGVhbnVwPWZ1bmN0aW9uKCl7dGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMuc3RvcExpc3RlbmluZyh0aGlzLnNvdXJjZU1vZGVsLCJjaGFuZ2U6Iit0aGlzLnNvdXJjZUF0dHIsbnVsbCksdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMuc291cmNlTW9kZWwsImRlc3Ryb3kiLG51bGwpKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy50YXJnZXRNb2RlbCwiZGVzdHJveSIsbnVsbCl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVXaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dGFyZ2V0OntkZXNlcmlhbGl6ZTpzLnVucGFja19tb2RlbHN9LHNvdXJjZTp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZVdpZGdldE1vZGVsKTtlLkRpcmVjdGlvbmFsTGlua01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGlua01vZGVsIn0pfSxlLnByb3RvdHlwZS51cGRhdGVCaW5kaW5ncz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUudXBkYXRlQmluZGluZ3MuY2FsbCh0aGlzKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixmdW5jdGlvbigpe2UudXBkYXRlVmFsdWUoZS50YXJnZXRNb2RlbCxlLnRhcmdldEF0dHIsZS5zb3VyY2VNb2RlbCxlLnNvdXJjZUF0dHIpfSl9LGUucHJvdG90eXBlLmNsZWFudXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5jbGVhbnVwLmNhbGwodGhpcyksdGhpcy50YXJnZXRNb2RlbCYmdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixudWxsKX0sZX0oYyk7ZS5MaW5rTW9kZWw9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigxMikscz1uKDIzKSxhPW4oOCksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTohMSxkaXNhYmxlZDohMSxfbW9kZWxfbmFtZToiQm9vbE1vZGVsIn0pfSxlfShvLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLkJvb2xNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7aW5kZW50OiEwLF92aWV3X25hbWU6IkNoZWNrYm94VmlldyIsX21vZGVsX25hbWU6IkNoZWNrYm94TW9kZWwifSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuQ2hlY2tib3hNb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWNoZWNrYm94IiksdGhpcy5sYWJlbC5pbm5lckhUTUw9IiYjODIwMzsiLHRoaXMuY2hlY2tib3hMYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpLHRoaXMuY2hlY2tib3hMYWJlbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwtYmFzaWMiKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuY2hlY2tib3hMYWJlbCksdGhpcy5jaGVja2JveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuY2hlY2tib3guc2V0QXR0cmlidXRlKCJ0eXBlIiwiY2hlY2tib3giKSx0aGlzLmNoZWNrYm94TGFiZWwuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveCksdGhpcy5kZXNjcmlwdGlvblNwYW49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuY2hlY2tib3hMYWJlbC5hcHBlbmRDaGlsZCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6aW5kZW50Iix0aGlzLnVwZGF0ZUluZGVudCksdGhpcy51cGRhdGUoKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCksdGhpcy51cGRhdGVJbmRlbnQoKX0sZS5wcm90b3R5cGUudXBkYXRlRGVzY3JpcHRpb249ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLmNoZWNrYm94TGFiZWwpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpO3RoaXMuZGVzY3JpcHRpb25TcGFuLmlubmVySFRNTD10LHRoaXMudHlwZXNldCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5kZXNjcmlwdGlvblNwYW4udGl0bGU9dCx0aGlzLmNoZWNrYm94LnRpdGxlPXR9fSxlLnByb3RvdHlwZS51cGRhdGVJbmRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZW50Iik7dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PXQ/IiI6Im5vbmUifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9ImNoZWNrYm94Il0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgidmFsdWUiKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLCF0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNoZWNrYm94LmNoZWNrZWQ9dGhpcy5tb2RlbC5nZXQoInZhbHVlIiksdm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PXRoaXN8fCh0aGlzLmNoZWNrYm94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuQ2hlY2tib3hWaWV3PWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUb2dnbGVCdXR0b25WaWV3IixfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uTW9kZWwiLHRvb2x0aXA6IiIsaWNvbjoiIixidXR0b25fc3R5bGU6IiJ9KX0sZX0oYyk7ZS5Ub2dnbGVCdXR0b25Nb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiIpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJ1dHRvbl9zdHlsZSIsdGhpcy51cGRhdGVfYnV0dG9uX3N0eWxlKSx0aGlzLnNldF9idXR0b25fc3R5bGUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGVfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS5zZXRfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy5zZXRfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5tb2RlbC5nZXQoInZhbHVlIik/dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtYWN0aXZlIik6dGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIiksdm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt0aGlzLmVsLmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLHRoaXMuZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdGhpcy5tb2RlbC5nZXQoInRvb2x0aXAiKSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksaT10aGlzLm1vZGVsLmdldCgiaWNvbiIpO2lmKDA9PT1uLnRyaW0oKS5sZW5ndGgmJjA9PT1pLnRyaW0oKS5sZW5ndGgpdGhpcy5lbC5pbm5lckhUTUw9IiZuYnNwOyI7ZWxzZXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLGkudHJpbSgpLmxlbmd0aCl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3RoaXMuZWwuYXBwZW5kQ2hpbGQociksci5jbGFzc0xpc3QuYWRkKCJmYSIpLHIuY2xhc3NMaXN0LmFkZCgiZmEtIitpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57Y2xpY2s6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5tb2RlbC5zZXQoInZhbHVlIiwhZSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJidXR0b24ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUuY2xhc3NfbWFwPXtwcmltYXJ5OlsibW9kLXByaW1hcnkiXSxzdWNjZXNzOlsibW9kLXN1Y2Nlc3MiXSxpbmZvOlsibW9kLWluZm8iXSx3YXJuaW5nOlsibW9kLXdhcm5pbmciXSxkYW5nZXI6WyJtb2QtZGFuZ2VyIl19LGV9KGEuRE9NV2lkZ2V0Vmlldyk7ZS5Ub2dnbGVCdXR0b25WaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtyZWFkb3V0OiJJbnZhbGlkIixfdmlld19uYW1lOiJWYWxpZFZpZXciLF9tb2RlbF9uYW1lOiJWYWxpZE1vZGVsIn0pfSxlfShjKTtlLlZhbGlkTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdmFsaWQiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTt0aGlzLmVsLmFwcGVuZENoaWxkKGUpLHRoaXMucmVhZG91dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC12YWxpZC1yZWFkb3V0IiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC1yZWFkb3V0IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgibW9kLXZhbGlkIiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtaW52YWxpZCIpLHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgicmVhZG91dCIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpP3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgibW9kLXZhbGlkIik6dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtaW52YWxpZCIpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5WYWxpZFZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMTIpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQnV0dG9uU3R5bGVNb2RlbCIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsX21vZGVsX21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OfSl9LGUuc3R5bGVQcm9wZXJ0aWVzPXtidXR0b25fY29sb3I6e3NlbGVjdG9yOiIiLGF0dHJpYnV0ZToiYmFja2dyb3VuZC1jb2xvciIsZGVmYXVsdDpudWxsfSxmb250X3dlaWdodDp7c2VsZWN0b3I6IiIsYXR0cmlidXRlOiJmb250LXdlaWdodCIsZGVmYXVsdDoiIn19LGV9KG8uU3R5bGVNb2RlbCk7ZS5CdXR0b25TdHlsZU1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtkZXNjcmlwdGlvbjoiIix0b29sdGlwOiIiLGRpc2FibGVkOiExLGljb246IiIsYnV0dG9uX3N0eWxlOiIiLF92aWV3X25hbWU6IkJ1dHRvblZpZXciLF9tb2RlbF9uYW1lOiJCdXR0b25Nb2RlbCIsc3R5bGU6bnVsbH0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5CdXR0b25Nb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtYnV0dG9uIiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9uX3N0eWxlIix0aGlzLnVwZGF0ZV9idXR0b25fc3R5bGUpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIiksdGhpcy5lbC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLm1vZGVsLmdldCgidG9vbHRpcCIpKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSxuPXRoaXMubW9kZWwuZ2V0KCJpY29uIik7aWYoZS5sZW5ndGh8fG4ubGVuZ3RoKXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLG4ubGVuZ3RoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aS5jbGFzc0xpc3QuYWRkKCJmYSIpLGkuY2xhc3NMaXN0LmFkZCgiZmEtIituKSwwPT09ZS5sZW5ndGgmJmkuY2xhc3NMaXN0LmFkZCgiY2VudGVyIiksdGhpcy5lbC5hcHBlbmRDaGlsZChpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZV9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLnNldF9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLmV2ZW50cz1mdW5jdGlvbigpe3JldHVybntjbGljazoiX2hhbmRsZV9jbGljayJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NsaWNrPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmQoe2V2ZW50OiJjbGljayJ9KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJ1dHRvbiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5jbGFzc19tYXA9e3ByaW1hcnk6WyJtb2QtcHJpbWFyeSJdLHN1Y2Nlc3M6WyJtb2Qtc3VjY2VzcyJdLGluZm86WyJtb2QtaW5mbyJdLHdhcm5pbmc6WyJtb2Qtd2FybmluZyJdLGRhbmdlcjpbIm1vZC1kYW5nZXIiXX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLkJ1dHRvblZpZXc9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJJbWFnZU1vZGVsIixfdmlld19uYW1lOiJJbWFnZVZpZXciLGZvcm1hdDoicG5nIix3aWR0aDoiIixoZWlnaHQ6IiIsdmFsdWU6bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigwKSl9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHt2YWx1ZTp7c2VyaWFsaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEYXRhVmlldyh0LmJ1ZmZlci5zbGljZSgwKSl9fX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkltYWdlTW9kZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtaW1hZ2UiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKSxpPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO2lmKCJ1cmwiIT09bil7dmFyIHI9bmV3IEJsb2IoW2ldLHt0eXBlOiJpbWFnZS8iK3RoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKX0pO2U9VVJMLmNyZWF0ZU9iamVjdFVSTChyKX1lbHNlIGU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShpLmJ1ZmZlcik7dmFyIG89dGhpcy5lbC5zcmM7dGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyk7dmFyIHM9dGhpcy5tb2RlbC5nZXQoIndpZHRoIik7dm9pZCAwIT09cyYmcy5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgid2lkdGgiLHMpOnRoaXMuZWwucmVtb3ZlQXR0cmlidXRlKCJ3aWR0aCIpO3ZhciBhPXRoaXMubW9kZWwuZ2V0KCJoZWlnaHQiKTtyZXR1cm4gdm9pZCAwIT09YSYmYS5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixhKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgiaGVpZ2h0IiksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuZWwuc3JjJiZVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMuZWwuc3JjKSx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImltZyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkltYWdlVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlZpZGVvTW9kZWwiLF92aWV3X25hbWU6IlZpZGVvVmlldyIsZm9ybWF0OiJtcDQiLHdpZHRoOiIiLGhlaWdodDoiIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5WaWRlb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWltYWdlIiksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIGUsbj10aGlzLm1vZGVsLmdldCgiZm9ybWF0IiksaT10aGlzLm1vZGVsLmdldCgidmFsdWUiKTtpZigidXJsIiE9PW4pe3ZhciByPW5ldyBCbG9iKFtpXSx7dHlwZToidmlkZW8vIit0aGlzLm1vZGVsLmdldCgiZm9ybWF0Iil9KTtlPVVSTC5jcmVhdGVPYmplY3RVUkwocil9ZWxzZSBlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKS5kZWNvZGUoaS5idWZmZXIpO3ZhciBvPXRoaXMuZWwuc3JjO3RoaXMuZWwuc3JjPWUsbyYmInN0cmluZyIhPXR5cGVvZiBvJiZVUkwucmV2b2tlT2JqZWN0VVJMKG8pO3ZhciBzPXRoaXMubW9kZWwuZ2V0KCJ3aWR0aCIpO3ZvaWQgMCE9PXMmJnMubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoIndpZHRoIixzKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgid2lkdGgiKTt2YXIgYT10aGlzLm1vZGVsLmdldCgiaGVpZ2h0Iik7cmV0dXJuIHZvaWQgMCE9PWEmJmEubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYSk6dGhpcy5lbC5yZW1vdmVBdHRyaWJ1dGUoImhlaWdodCIpLHRoaXMuZWwubG9vcD10aGlzLm1vZGVsLmdldCgibG9vcCIpLHRoaXMuZWwuYXV0b3BsYXk9dGhpcy5tb2RlbC5nZXQoImF1dG9wbGF5IiksdGhpcy5lbC5jb250cm9scz10aGlzLm1vZGVsLmdldCgiY29udHJvbHMiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5lbC5zcmMmJlVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5lbC5zcmMpLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhZ05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4idmlkZW8ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5WaWRlb1ZpZXc9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJBdWRpb01vZGVsIixfdmlld19uYW1lOiJBdWRpb1ZpZXciLGZvcm1hdDoibXAzIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5BdWRpb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpLGk9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7aWYoInVybCIhPT1uKXt2YXIgcj1uZXcgQmxvYihbaV0se3R5cGU6ImF1ZGlvLyIrdGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpfSk7ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHIpfWVsc2UgZT1uZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKGkuYnVmZmVyKTt2YXIgbz10aGlzLmVsLnNyYztyZXR1cm4gdGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyksdGhpcy5lbC5sb29wPXRoaXMubW9kZWwuZ2V0KCJsb29wIiksdGhpcy5lbC5hdXRvcGxheT10aGlzLm1vZGVsLmdldCgiYXV0b3BsYXkiKSx0aGlzLmVsLmNvbnRyb2xzPXRoaXMubW9kZWwuZ2V0KCJjb250cm9scyIpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmVsLnNyYyYmVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmVsLnNyYyksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJhdWRpbyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkF1ZGlvVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oMjMpLGE9bigxNiksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZToiYmxhY2siLGNvbmNpc2U6ITEsX21vZGVsX25hbWU6IkNvbG9yUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkNvbG9yUGlja2VyVmlldyJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5Db2xvclBpY2tlck1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29sb3JwaWNrZXIiKSx0aGlzLl9jb2xvcl9jb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29sb3JfY29udGFpbmVyLmNsYXNzTmFtZT0id2lkZ2V0LWlubGluZS1oYm94IHdpZGdldC1jb2xvcnBpY2tlci1pbnB1dCIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLl9jb2xvcl9jb250YWluZXIpLHRoaXMuX3RleHRib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLl90ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQiKSx0aGlzLl90ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLl9jb2xvcl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dGJveCksdGhpcy5fdGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLl9jb2xvcnBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2NvbG9ycGlja2VyLnNldEF0dHJpYnV0ZSgidHlwZSIsImNvbG9yIiksdGhpcy5fY29sb3JfY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbG9ycGlja2VyKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTp2YWx1ZSIsdGhpcy5fdXBkYXRlX3ZhbHVlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjb25jaXNlIix0aGlzLl91cGRhdGVfY29uY2lzZSksdGhpcy5fdXBkYXRlX2NvbmNpc2UoKSx0aGlzLl91cGRhdGVfdmFsdWUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuX3RleHRib3guZGlzYWJsZWQ9bix0aGlzLl9jb2xvcnBpY2tlci5kaXNhYmxlZD1ufXJldHVybiB0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueydjaGFuZ2UgW3R5cGU9ImNvbG9yIl0nOiJfcGlja2VyX2NoYW5nZSIsJ2NoYW5nZSBbdHlwZT0idGV4dCJdJzoiX3RleHRfY2hhbmdlIn19LGUucHJvdG90eXBlLl91cGRhdGVfdmFsdWU9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5fY29sb3JwaWNrZXIudmFsdWU9bFsodD1uKS50b0xvd2VyQ2FzZSgpXXx8KDc9PT0oZT10KS5sZW5ndGg/ZToiIyIrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMikrZS5jaGFyQXQoMikrZS5jaGFyQXQoMykrZS5jaGFyQXQoMykpLHRoaXMuX3RleHRib3gudmFsdWU9bn0sZS5wcm90b3R5cGUuX3VwZGF0ZV9jb25jaXNlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5nZXQoImNvbmNpc2UiKT8odGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJjb25jaXNlIiksdGhpcy5fdGV4dGJveC5zdHlsZS5kaXNwbGF5PSJub25lIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgiY29uY2lzZSIpLHRoaXMuX3RleHRib3guc3R5bGUuZGlzcGxheT0iIil9LGUucHJvdG90eXBlLl9waWNrZXJfY2hhbmdlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9jb2xvcnBpY2tlci52YWx1ZSksdGhpcy50b3VjaCgpfSxlLnByb3RvdHlwZS5fdGV4dF9jaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl92YWxpZGF0ZV9jb2xvcih0aGlzLl90ZXh0Ym94LnZhbHVlLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQpLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUuX3ZhbGlkYXRlX2NvbG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWF0Y2goLyNbYS1mQS1GMC05XXszfSg/OlthLWZBLUYwLTldezN9KT8kLyl8fGxbdC50b0xvd2VyQ2FzZSgpXT90OmV9LGV9KHMuRGVzY3JpcHRpb25WaWV3KTtlLkNvbG9yUGlja2VyVmlldz1oO3ZhciBsPXthbGljZWJsdWU6IiNmMGY4ZmYiLGFudGlxdWV3aGl0ZToiI2ZhZWJkNyIsYXF1YToiIzAwZmZmZiIsYXF1YW1hcmluZToiIzdmZmZkNCIsYXp1cmU6IiNmMGZmZmYiLGJlaWdlOiIjZjVmNWRjIixiaXNxdWU6IiNmZmU0YzQiLGJsYWNrOiIjMDAwMDAwIixibGFuY2hlZGFsbW9uZDoiI2ZmZWJjZCIsYmx1ZToiIzAwMDBmZiIsYmx1ZXZpb2xldDoiIzhhMmJlMiIsYnJvd246IiNhNTJhMmEiLGJ1cmx5d29vZDoiI2RlYjg4NyIsY2FkZXRibHVlOiIjNWY5ZWEwIixjaGFydHJldXNlOiIjN2ZmZjAwIixjaG9jb2xhdGU6IiNkMjY5MWUiLGNvcmFsOiIjZmY3ZjUwIixjb3JuZmxvd2VyYmx1ZToiIzY0OTVlZCIsY29ybnNpbGs6IiNmZmY4ZGMiLGNyaW1zb246IiNkYzE0M2MiLGN5YW46IiMwMGZmZmYiLGRhcmtibHVlOiIjMDAwMDhiIixkYXJrY3lhbjoiIzAwOGI4YiIsZGFya2dvbGRlbnJvZDoiI2I4ODYwYiIsZGFya2dyYXk6IiNhOWE5YTkiLGRhcmtncmV5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLGRhcmtraGFraToiI2JkYjc2YiIsZGFya21hZ2VudGE6IiM4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiIjNTU2YjJmIixkYXJrb3JhbmdlOiIjZmY4YzAwIixkYXJrb3JjaGlkOiIjOTkzMmNjIixkYXJrcmVkOiIjOGIwMDAwIixkYXJrc2FsbW9uOiIjZTk5NjdhIixkYXJrc2VhZ3JlZW46IiM4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IiM0ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IiMyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IiMyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IiMwMGNlZDEiLGRhcmt2aW9sZXQ6IiM5NDAwZDMiLGRlZXBwaW5rOiIjZmYxNDkzIixkZWVwc2t5Ymx1ZToiIzAwYmZmZiIsZGltZ3JheToiIzY5Njk2OSIsZGltZ3JleToiIzY5Njk2OSIsZG9kZ2VyYmx1ZToiIzFlOTBmZiIsZmlyZWJyaWNrOiIjYjIyMjIyIixmbG9yYWx3aGl0ZToiI2ZmZmFmMCIsZm9yZXN0Z3JlZW46IiMyMjhiMjIiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdhaW5zYm9ybzoiI2RjZGNkYyIsZ2hvc3R3aGl0ZToiI2Y4ZjhmZiIsZ29sZDoiI2ZmZDcwMCIsZ29sZGVucm9kOiIjZGFhNTIwIixncmF5OiIjODA4MDgwIixncmV5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsZ3JlZW55ZWxsb3c6IiNhZGZmMmYiLGhvbmV5ZGV3OiIjZjBmZmYwIixob3RwaW5rOiIjZmY2OWI0IixpbmRpYW5yZWQ6IiNjZDVjNWMiLGluZGlnbzoiIzRiMDA4MiIsaXZvcnk6IiNmZmZmZjAiLGtoYWtpOiIjZjBlNjhjIixsYXZlbmRlcjoiI2U2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiI2ZmZjBmNSIsbGF3bmdyZWVuOiIjN2NmYzAwIixsZW1vbmNoaWZmb246IiNmZmZhY2QiLGxpZ2h0Ymx1ZToiI2FkZDhlNiIsbGlnaHRjb3JhbDoiI2YwODA4MCIsbGlnaHRjeWFuOiIjZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI2ZhZmFkMiIsbGlnaHRncmVlbjoiIzkwZWU5MCIsbGlnaHRncmF5OiIjZDNkM2QzIixsaWdodGdyZXk6IiNkM2QzZDMiLGxpZ2h0cGluazoiI2ZmYjZjMSIsbGlnaHRzYWxtb246IiNmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IiMyMGIyYWEiLGxpZ2h0c2t5Ymx1ZToiIzg3Y2VmYSIsbGlnaHRzbGF0ZWdyYXk6IiM3Nzg4OTkiLGxpZ2h0c2xhdGVncmV5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI2IwYzRkZSIsbGlnaHR5ZWxsb3c6IiNmZmZmZTAiLGxpbWU6IiMwMGZmMDAiLGxpbWVncmVlbjoiIzMyY2QzMiIsbGluZW46IiNmYWYwZTYiLG1hZ2VudGE6IiNmZjAwZmYiLG1hcm9vbjoiIzgwMDAwMCIsbWVkaXVtYXF1YW1hcmluZToiIzY2Y2RhYSIsbWVkaXVtYmx1ZToiIzAwMDBjZCIsbWVkaXVtb3JjaGlkOiIjYmE1NWQzIixtZWRpdW1wdXJwbGU6IiM5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIjM2NiMzcxIixtZWRpdW1zbGF0ZWJsdWU6IiM3YjY4ZWUiLG1lZGl1bXNwcmluZ2dyZWVuOiIjMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IiM0OGQxY2MiLG1lZGl1bXZpb2xldHJlZDoiI2M3MTU4NSIsbWlkbmlnaHRibHVlOiIjMTkxOTcwIixtaW50Y3JlYW06IiNmNWZmZmEiLG1pc3R5cm9zZToiI2ZmZTRlMSIsbW9jY2FzaW46IiNmZmU0YjUiLG5hdmFqb3doaXRlOiIjZmZkZWFkIixuYXZ5OiIjMDAwMDgwIixvbGRsYWNlOiIjZmRmNWU2IixvbGl2ZToiIzgwODAwMCIsb2xpdmVkcmFiOiIjNmI4ZTIzIixvcmFuZ2U6IiNmZmE1MDAiLG9yYW5nZXJlZDoiI2ZmNDUwMCIsb3JjaGlkOiIjZGE3MGQ2IixwYWxlZ29sZGVucm9kOiIjZWVlOGFhIixwYWxlZ3JlZW46IiM5OGZiOTgiLHBhbGV0dXJxdW9pc2U6IiNhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6IiNkYjcwOTMiLHBhcGF5YXdoaXA6IiNmZmVmZDUiLHBlYWNocHVmZjoiI2ZmZGFiOSIscGVydToiI2NkODUzZiIscGluazoiI2ZmYzBjYiIscGx1bToiI2RkYTBkZCIscG93ZGVyYmx1ZToiI2IwZTBlNiIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHJvc3licm93bjoiI2JjOGY4ZiIscm95YWxibHVlOiIjNDE2OWUxIixzYWRkbGVicm93bjoiIzhiNDUxMyIsc2FsbW9uOiIjZmE4MDcyIixzYW5keWJyb3duOiIjZjRhNDYwIixzZWFncmVlbjoiIzJlOGI1NyIsc2Vhc2hlbGw6IiNmZmY1ZWUiLHNpZW5uYToiI2EwNTIyZCIsc2lsdmVyOiIjYzBjMGMwIixza3libHVlOiIjODdjZWViIixzbGF0ZWJsdWU6IiM2YTVhY2QiLHNsYXRlZ3JheToiIzcwODA5MCIsc2xhdGVncmV5OiIjNzA4MDkwIixzbm93OiIjZmZmYWZhIixzcHJpbmdncmVlbjoiIzAwZmY3ZiIsc3RlZWxibHVlOiIjNDY4MmI0Iix0YW46IiNkMmI0OGMiLHRlYWw6IiMwMDgwODAiLHRoaXN0bGU6IiNkOGJmZDgiLHRvbWF0bzoiI2ZmNjM0NyIsdHVycXVvaXNlOiIjNDBlMGQwIix2aW9sZXQ6IiNlZTgyZWUiLHdoZWF0OiIjZjVkZWIzIix3aGl0ZToiI2ZmZmZmZiIsd2hpdGVzbW9rZToiI2Y1ZjVmNSIseWVsbG93OiIjZmZmZjAwIix5ZWxsb3dncmVlbjoiIzlhY2QzMiJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9bigyMyksYT1uKDEyKSx1PW4oMTYpLGM9big2KTtmdW5jdGlvbiBoKHQpe3JldHVybiBudWxsPT09dD9udWxsOnt5ZWFyOnQuZ2V0VVRDRnVsbFllYXIoKSxtb250aDp0LmdldFVUQ01vbnRoKCksZGF0ZTp0LmdldFVUQ0RhdGUoKX19ZnVuY3Rpb24gbCh0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgRGF0ZTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnllYXIsdC5tb250aCx0LmRhdGUpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCksZX1lLnNlcmlhbGl6ZV9kYXRlPWgsZS5kZXNlcmlhbGl6ZV9kYXRlPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTpudWxsLF9tb2RlbF9uYW1lOiJEYXRlUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkRhdGVQaWNrZXJWaWV3In0pfSxlLnNlcmlhbGl6ZXJzPW8oe30sYS5Db3JlRGVzY3JpcHRpb25Nb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpoLGRlc2VyaWFsaXplOmx9fSksZX0oYS5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5EYXRlUGlja2VyTW9kZWw9ZDt2YXIgZj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1kYXRlcGlja2VyIiksdGhpcy5fZGF0ZXBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZGF0ZSIpLHRoaXMuX2RhdGVwaWNrZXIuaWQ9dGhpcy5sYWJlbC5odG1sRm9yPXUudXVpZCgpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5fZGF0ZXBpY2tlciksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6dmFsdWUiLHRoaXMuX3VwZGF0ZV92YWx1ZSksdGhpcy5fdXBkYXRlX3ZhbHVlKCksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLnVwZGF0ZWRfdmlldz09dGhpc3x8KHRoaXMuX2RhdGVwaWNrZXIuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NoYW5nZSBbdHlwZT0iZGF0ZSJdJzoiX3BpY2tlcl9jaGFuZ2UifX0sZS5wcm90b3R5cGUuX3VwZGF0ZV92YWx1ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX2RhdGVwaWNrZXIudmFsdWVBc0RhdGU9dH0sZS5wcm90b3R5cGUuX3BpY2tlcl9jaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLl9kYXRlcGlja2VyLnZhbGlkaXR5LmJhZElucHV0fHwodGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9kYXRlcGlja2VyLnZhbHVlQXNEYXRlKSx0aGlzLnRvdWNoKCkpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5EYXRlUGlja2VyVmlldz1mfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFNsaWRlciAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbigzNDgpLG4oMzUwKSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3JldHVybiB0LndpZGdldCgidWkuc2xpZGVyIix0LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEyLjEiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsbixpPXRoaXMub3B0aW9ucyxyPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLG89W107Zm9yKG49aS52YWx1ZXMmJmkudmFsdWVzLmxlbmd0aHx8MSxyLmxlbmd0aD5uJiYoci5zbGljZShuKS5yZW1vdmUoKSxyPXIuc2xpY2UoMCxuKSksZT1yLmxlbmd0aDtlPG47ZSsrKW8ucHVzaCgiPHNwYW4gdGFiaW5kZXg9JzAnPjwvc3Bhbj4iKTt0aGlzLmhhbmRsZXM9ci5hZGQodChvLmpvaW4oIiIpKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZXMsInVpLXNsaWRlci1oYW5kbGUiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3QodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsZSkuYXR0cigidGFiSW5kZXgiLDApfSl9LF9jcmVhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztlLnJhbmdlPyghMD09PWUucmFuZ2UmJihlLnZhbHVlcz9lLnZhbHVlcy5sZW5ndGgmJjIhPT1lLnZhbHVlcy5sZW5ndGg/ZS52YWx1ZXM9W2UudmFsdWVzWzBdLGUudmFsdWVzWzBdXTp0LmlzQXJyYXkoZS52YWx1ZXMpJiYoZS52YWx1ZXM9ZS52YWx1ZXMuc2xpY2UoMCkpOmUudmFsdWVzPVt0aGlzLl92YWx1ZU1pbigpLHRoaXMuX3ZhbHVlTWluKCldKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLmxlbmd0aD8odGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiksdGhpcy5yYW5nZS5jc3Moe2xlZnQ6IiIsYm90dG9tOiIifSkpOih0aGlzLnJhbmdlPXQoIjxkaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UiKSksIm1pbiIhPT1lLnJhbmdlJiYibWF4IiE9PWUucmFuZ2V8fHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS0iK2UucmFuZ2UpKToodGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLnJhbmdlPW51bGwpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLl9vZmYodGhpcy5oYW5kbGVzKSx0aGlzLl9vbih0aGlzLmhhbmRsZXMsdGhpcy5faGFuZGxlRXZlbnRzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oYW5kbGVzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oYW5kbGVzKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihlKXt2YXIgbixpLHIsbyxzLGEsdSxjPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxuPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShuKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPU1hdGguYWJzKGktYy52YWx1ZXMoZSkpOyhyPm58fHI9PT1uJiYoZT09PWMuX2xhc3RDaGFuZ2VkVmFsdWV8fGMudmFsdWVzKGUpPT09aC5taW4pKSYmKHI9bixvPXQodGhpcykscz1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxzKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1zLHRoaXMuX2FkZENsYXNzKG8sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksby50cmlnZ2VyKCJmb2N1cyIpLGE9by5vZmZzZXQoKSx1PSF0KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PXU/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC1hLmxlZnQtby53aWR0aCgpLzIsdG9wOmUucGFnZVktYS50b3Atby5oZWlnaHQoKS8yLShwYXJzZUludChvLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChvLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChvLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLHMsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCwhMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQpe3ZhciBlPXt4OnQucGFnZVgseTp0LnBhZ2VZfSxuPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShlKTtyZXR1cm4gdGhpcy5fc2xpZGUodCx0aGlzLl9oYW5kbGVJbmRleCxuKSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKHQsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZSh0LHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMSwhMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG87cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8oZT10aGlzLmVsZW1lbnRTaXplLndpZHRoLG49dC54LXRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApKTooZT10aGlzLmVsZW1lbnRTaXplLmhlaWdodCxuPXQueS10aGlzLmVsZW1lbnRPZmZzZXQudG9wLSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCkpLChpPW4vZSk+MSYmKGk9MSksaTwwJiYoaT0wKSwidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmKGk9MS1pKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSxvPXRoaXMuX3ZhbHVlTWluKCkraSpyLHRoaXMuX3RyaW1BbGlnblZhbHVlKG8pfSxfdWlIYXNoOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSxoYW5kbGVJbmRleDp0LHZhbHVlOnZvaWQgMCE9PWU/ZTp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYoaS52YWx1ZT12b2lkIDAhPT1lP2U6dGhpcy52YWx1ZXModCksaS52YWx1ZXM9bnx8dGhpcy52YWx1ZXMoKSksaX0sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX3NsaWRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMudmFsdWUoKSxvPXRoaXMudmFsdWVzKCk7dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKGk9dGhpcy52YWx1ZXMoZT8wOjEpLHI9dGhpcy52YWx1ZXMoZSksMj09PXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKG49MD09PWU/TWF0aC5taW4oaSxuKTpNYXRoLm1heChpLG4pKSxvW2VdPW4pLG4hPT1yJiYhMSE9PXRoaXMuX3RyaWdnZXIoInNsaWRlIix0LHRoaXMuX3VpSGFzaChlLG4sbykpJiYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhlLG4pOnRoaXMudmFsdWUobikpfSxfc3RvcDpmdW5jdGlvbih0LGUpe3RoaXMuX3RyaWdnZXIoInN0b3AiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX2NoYW5nZTpmdW5jdGlvbih0LGUpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9ZSx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQsdGhpcy5fdWlIYXNoKGUpKSl9LHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCwwKSk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKGUsbil7dmFyIGkscixvO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1tlXT10aGlzLl90cmltQWxpZ25WYWx1ZShuKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLGUpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl92YWx1ZXMoKTtpZighdC5pc0FycmF5KGFyZ3VtZW50c1swXSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHI9YXJndW1lbnRzWzBdLG89MDtvPGkubGVuZ3RoO28rPTEpaVtvXT10aGlzLl90cmltQWxpZ25WYWx1ZShyW29dKSx0aGlzLl9jaGFuZ2UobnVsbCxvKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHI9MDtzd2l0Y2goInJhbmdlIj09PWUmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoIm1pbiI9PT1uPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1uJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSx0LmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihyPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSx0aGlzLl9zdXBlcihlLG4pLGUpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5fcmVtb3ZlQ2xhc3MoInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNhbCIpLl9hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5vcHRpb25zLnJhbmdlJiZ0aGlzLl9yZWZyZXNoUmFuZ2UobiksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1uPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxpPXItMTtpPj0wO2ktLSl0aGlzLl9jaGFuZ2UobnVsbCxpKTt0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2Uic3RlcCI6Y2FzZSJtaW4iOmNhc2UibWF4Ijp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJyYW5nZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX19LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbih0KXt0aGlzLl9zdXBlcih0KSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISF0KX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlO3JldHVybiB0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpfSxfdmFsdWVzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbdF0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3Iobj10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8bi5sZW5ndGg7aSs9MSluW2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKG5baV0pO3JldHVybiBufXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24odCl7aWYodDw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZih0Pj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciBlPXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxuPSh0LXRoaXMuX3ZhbHVlTWluKCkpJWUsaT10LW47cmV0dXJuIDIqTWF0aC5hYnMobik+PWUmJihpKz1uPjA/ZTotZSkscGFyc2VGbG9hdChpLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLm1heCxlPXRoaXMuX3ZhbHVlTWluKCksbj10aGlzLm9wdGlvbnMuc3RlcCxpPU1hdGgucm91bmQoKHQtZSkvbikqbjsodD1pK2UpPnRoaXMub3B0aW9ucy5tYXgmJih0LT1uKSx0aGlzLm1heD1wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpfSxfcHJlY2lzaW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLnN0ZXApO3JldHVybiBudWxsIT09dGhpcy5vcHRpb25zLm1pbiYmKHQ9TWF0aC5tYXgodCx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSkpLHR9LF9wcmVjaXNpb25PZjpmdW5jdGlvbih0KXt2YXIgZT10LnRvU3RyaW5nKCksbj1lLmluZGV4T2YoIi4iKTtyZXR1cm4tMT09PW4/MDplLmxlbmd0aC1uLTF9LF92YWx1ZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMubWlufSxfdmFsdWVNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXh9LF9yZWZyZXNoUmFuZ2U6ZnVuY3Rpb24odCl7InZlcnRpY2FsIj09PXQmJnRoaXMucmFuZ2UuY3NzKHt3aWR0aDoiIixsZWZ0OiIifSksImhvcml6b250YWwiPT09dCYmdGhpcy5yYW5nZS5jc3Moe2hlaWdodDoiIixib3R0b206IiJ9KX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciBlLG4saSxyLG8scz10aGlzLm9wdGlvbnMucmFuZ2UsYT10aGlzLm9wdGlvbnMsdT10aGlzLGM9IXRoaXMuX2FuaW1hdGVPZmYmJmEuYW5pbWF0ZSxoPXt9O3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oaSl7bj0odS52YWx1ZXMoaSktdS5fdmFsdWVNaW4oKSkvKHUuX3ZhbHVlTWF4KCktdS5fdmFsdWVNaW4oKSkqMTAwLGhbImhvcml6b250YWwiPT09dS5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPW4rIiUiLHQodGhpcykuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksITA9PT11Lm9wdGlvbnMucmFuZ2UmJigiaG9yaXpvbnRhbCI9PT11Lm9yaWVudGF0aW9uPygwPT09aSYmdS5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtsZWZ0Om4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6bi1lKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOmEuYW5pbWF0ZX0pKTooMD09PWkmJnUucmFuZ2Uuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXSh7Ym90dG9tOm4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0Om4tZSsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjphLmFuaW1hdGV9KSkpLGU9bn0pOihpPXRoaXMudmFsdWUoKSxyPXRoaXMuX3ZhbHVlTWluKCksbz10aGlzLl92YWx1ZU1heCgpLG49byE9PXI/KGktcikvKG8tcikqMTAwOjAsaFsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09bisiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtjPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOm4rIiUifSxhLmFuaW1hdGUpLCJtYXgiPT09cyYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDoxMDAtbisiJSJ9LGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6bisiJSJ9LGEuYW5pbWF0ZSksIm1heCI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLW4rIiUifSxhLmFuaW1hdGUpKX0sX2hhbmRsZUV2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgbixpLHIsbz10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTpjYXNlIHQudWkua2V5Q29kZS5FTkQ6Y2FzZSB0LnVpLmtleUNvZGUuUEFHRV9VUDpjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046Y2FzZSB0LnVpLmtleUNvZGUuVVA6Y2FzZSB0LnVpLmtleUNvZGUuUklHSFQ6Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITAsdGhpcy5fYWRkQ2xhc3ModChlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIiksITE9PT10aGlzLl9zdGFydChlLG8pKSlyZXR1cm59c3dpdGNoKHI9dGhpcy5vcHRpb25zLnN0ZXAsbj1pPXRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy52YWx1ZXMobyk6dGhpcy52YWx1ZSgpLGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTppPXRoaXMuX3ZhbHVlTWluKCk7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRU5EOmk9dGhpcy5fdmFsdWVNYXgoKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX1VQOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUobisodGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046aT10aGlzLl90cmltQWxpZ25WYWx1ZShuLSh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdC51aS5rZXlDb2RlLlVQOmNhc2UgdC51aS5rZXlDb2RlLlJJR0hUOmlmKG49PT10aGlzLl92YWx1ZU1heCgpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4rcik7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKG49PT10aGlzLl92YWx1ZU1pbigpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4tcil9dGhpcy5fc2xpZGUoZSxvLGkpfSxrZXl1cDpmdW5jdGlvbihlKXt2YXIgbj10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7dGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fc3RvcChlLG4pLHRoaXMuX2NoYW5nZShlLG4pLHRoaXMuX3JlbW92ZUNsYXNzKHQoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpKX19fSl9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG87Ci8qIQogKiBqUXVlcnkgVUkgTW91c2UgMS4xMi4xCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20KICoKICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqL3I9W24oMTUpLG4oMzQ5KSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiB0KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXtlPSExfSksdC53aWRnZXQoInVpLm1vdXNlIix7dmVyc2lvbjoiMS4xMi4xIixvcHRpb25zOntjYW5jZWw6ImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmVsZW1lbnQub24oIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbih0KXtyZXR1cm4gZS5fbW91c2VEb3duKHQpfSkub24oImNsaWNrLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKG4pe2lmKCEwPT09dC5kYXRhKG4udGFyZ2V0LGUud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikpcmV0dXJuIHQucmVtb3ZlRGF0YShuLnRhcmdldCxlLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLG4uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksITF9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQub2ZmKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbihuKXtpZighZSl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAobiksdGhpcy5fbW91c2VEb3duRXZlbnQ9bjt2YXIgaT10aGlzLHI9MT09PW4ud2hpY2gsbz0hKCJzdHJpbmciIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IW4udGFyZ2V0Lm5vZGVOYW1lKSYmdChuLnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIShyJiYhbyYmdGhpcy5fbW91c2VDYXB0dXJlKG4pJiYodGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQobikmJnRoaXMuX21vdXNlRGVsYXlNZXQobikmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KG4pLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyhuLnByZXZlbnREZWZhdWx0KCksMCk6KCEwPT09dC5kYXRhKG4udGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnQucmVtb3ZlRGF0YShuLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tb3VzZU1vdmUodCl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbW91c2VVcCh0KX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLG4ucHJldmVudERlZmF1bHQoKSxlPSEwLDApKSl9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHQudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24obil7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLG4udGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ0LmRhdGEobi50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AobikpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGU9ITEsbi5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtdC5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktdC5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbztyPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkuaWU9ISEvbXNpZSBbXHcuXSsvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbzsKLyohCiAqIGpRdWVyeSBVSSBLZXljb2RlIDEuMTIuMQogKiBodHRwOi8vanF1ZXJ5dWkuY29tCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKi9yPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9fSk/aS5hcHBseShlLHIpOmkpfHwodC5leHBvcnRzPW8pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oNiksYT1uKDEzNyksdT1uKDEzOSksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdE1vZGVsIix2YWx1ZTowfSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuRmxvYXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkJvdW5kZWRGbG9hdE1vZGVsIixtYXg6MTAwLG1pbjowfSl9LGV9KGMpO2UuQm91bmRlZEZsb2F0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJGbG9hdFNsaWRlclZpZXciLHN0ZXA6MSxvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsX3JhbmdlOiExLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6Ii4yZiIsc2xpZGVyX2NvbG9yOm51bGwsY29udGludW91c191cGRhdGU6ITAsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdFNsaWRlck1vZGVsPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRmxvYXRMb2dTbGlkZXJNb2RlbCIsX3ZpZXdfbmFtZToiRmxvYXRMb2dTbGlkZXJWaWV3IixzdGVwOi4xLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixfcmFuZ2U6ITEscmVhZG91dDohMCxyZWFkb3V0X2Zvcm1hdDoiLjNnIixzbGlkZXJfY29sb3I6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMCxkaXNhYmxlZDohMSxiYXNlOjEwLHZhbHVlOjEsbWluOjAsbWF4OjR9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdExvZ1NsaWRlck1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkZsb2F0UmFuZ2VTbGlkZXJNb2RlbD1mO3ZhciBwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5JbnRTbGlkZXJWaWV3KTtlLkZsb2F0U2xpZGVyVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxpPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxyPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG89dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxzPU1hdGgubG9nKHIpL01hdGgubG9nKG8pO3M+aT9zPWk6czxuJiYocz1uKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIscyksdGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyhyKSx0aGlzLm1vZGVsLmdldCgidmFsdWUiKSE9PXImJih0aGlzLm1vZGVsLnNldCgidmFsdWUiLHIse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKX0sZS5wcm90b3R5cGUudmFsdWVUb1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLm1vZGVsLnJlYWRvdXRfZm9ybWF0dGVyKSh0KX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyc2VfdmFsdWUodCl9LGUucHJvdG90eXBlLmhhbmRsZVRleHRDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0cmluZ1RvVmFsdWUodGhpcy5yZWFkb3V0LnRleHRDb250ZW50KSxlPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxpPXRoaXMubW9kZWwuZ2V0KCJiYXNlIik7aXNOYU4odCk/dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSk6KHQ9TWF0aC5tYXgoTWF0aC5taW4odCxNYXRoLnBvdyhpLG4pKSxNYXRoLnBvdyhpLGUpKSkhPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKT8odGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0KSx0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKTp0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcoaSksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsaSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5CYXNlSW50U2xpZGVyVmlldyk7ZS5GbG9hdExvZ1NsaWRlclZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl9wYXJzZV92YWx1ZT1wYXJzZUZsb2F0LGUuX3JhbmdlX3JlZ2V4PS9eXHMqKFsrLV0/KD86XGQqXC4/XGQrfFxkK1wuKSg/OltlRV1bLTpdP1xkKyk/KVxzKlstOuKAk11ccyooWystXT8oPzpcZCpcLj9cZCt8XGQrXC4pKD86W2VFXVsrLV0/XGQrKT8pLyxlfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlfShhLkludFJhbmdlU2xpZGVyVmlldyk7ZS5GbG9hdFJhbmdlU2xpZGVyVmlldz1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMX0pfSxlfShjKTtlLkZsb2F0VGV4dE1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQm91bmRlZEZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMSxzdGVwOi4xfSl9LGV9KGgpO2UuQm91bmRlZEZsb2F0VGV4dE1vZGVsPWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VGbG9hdCxlLl9kZWZhdWx0X3N0ZXA9ImFueSIsZX1yZXR1cm4gcihlLHQpLGV9KGEuSW50VGV4dFZpZXcpO2UuRmxvYXRUZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0oaCk7ZS5GbG9hdFByb2dyZXNzTW9kZWw9X30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9big4KSx1PW4oNiksYz1uKDE2KSxoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvbnRyb2xsZXJCdXR0b25Nb2RlbCIsX3ZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZhbHVlOjAscHJlc3NlZDohMX0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyQnV0dG9uTW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29udHJvbGxlci1idXR0b24iKSx0aGlzLnN1cHBvcnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdXBwb3J0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5zdXBwb3J0LnN0eWxlLm1hcmdpbj0iMXB4Iix0aGlzLnN1cHBvcnQuc3R5bGUud2lkdGg9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnN1cHBvcnQpLHRoaXMuYmFyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYmFyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5iYXIuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5iYWNrZ3JvdW5kPSJncmF5Iix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5sYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmxhYmVsLnRleHRDb250ZW50PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpLHRoaXMubGFiZWwuc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5sYWJlbCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYmFyLnN0eWxlLmhlaWdodD0xMDAqdGhpcy5tb2RlbC5nZXQoInZhbHVlIikrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckJ1dHRvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyQXhpc1ZpZXciLHZhbHVlOjB9KX0sZX0ocy5Db3JlRE9NV2lkZ2V0TW9kZWwpO2UuQ29udHJvbGxlckF4aXNNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyLWF4aXMiKSx0aGlzLmVsLnN0eWxlLndpZHRoPSIxNnB4Iix0aGlzLmVsLnN0eWxlLnBhZGRpbmc9IjRweCIsdGhpcy5zdXBwb3J0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc3VwcG9ydC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHRoaXMuc3VwcG9ydC5zdHlsZS5tYXJnaW49IjFweCIsdGhpcy5zdXBwb3J0LnN0eWxlLndpZHRoPSI0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjY0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5idWxsZXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idWxsZXQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmJ1bGxldC5zdHlsZS5tYXJnaW49Ii00cHgiLHRoaXMuYnVsbGV0LnN0eWxlLndpZHRoPSIxMHB4Iix0aGlzLmJ1bGxldC5zdHlsZS5oZWlnaHQ9IjEwcHgiLHRoaXMuYnVsbGV0LnN0eWxlLmJhY2tncm91bmQ9ImdyYXkiLHRoaXMubGFiZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSx0aGlzLmxhYmVsLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5idWxsZXQpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdXBwb3J0KSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYnVsbGV0LnN0eWxlLnRvcD01MCoodGhpcy5tb2RlbC5nZXQoInZhbHVlIikrMSkrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckF4aXNWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29udHJvbGxlck1vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyVmlldyIsaW5kZXg6MCxuYW1lOiIiLG1hcHBpbmc6IiIsY29ubmVjdGVkOiExLHRpbWVzdGFtcDowLGJ1dHRvbnM6W10sYXhlczpbXX0pfSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUsbil7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSxuKSx2b2lkIDA9PT1uYXZpZ2F0b3IuZ2V0R2FtZXBhZHM/KHRoaXMucmVhZG91dD0iVGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZ2FtZXBhZHMuIixjb25zb2xlLmVycm9yKHRoaXMucmVhZG91dCkpOih0aGlzLnJlYWRvdXQ9IkNvbm5lY3QgZ2FtZXBhZCBhbmQgcHJlc3MgYW55IGJ1dHRvbi4iLHRoaXMuZ2V0KCJjb25uZWN0ZWQiKT90aGlzLnVwZGF0ZV9sb29wKCk6dGhpcy53YWl0X2xvb3AoKSl9LGUucHJvdG90eXBlLndhaXRfbG9vcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0KCJpbmRleCIpLGU9bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07aWYoZSl7dmFyIG49dGhpczt0aGlzLnNldHVwKGUpLnRoZW4oZnVuY3Rpb24odCl7bi5zZXQodCksbi5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4udXBkYXRlX2xvb3AuYmluZChuKSl9KX1lbHNlIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy53YWl0X2xvb3AuYmluZCh0aGlzKSl9LGUucHJvdG90eXBlLnNldHVwPWZ1bmN0aW9uKHQpe3RoaXMuc2V0KHtuYW1lOnQuaWQsbWFwcGluZzp0Lm1hcHBpbmcsY29ubmVjdGVkOnQuY29ubmVjdGVkLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH0pO3ZhciBlPXRoaXM7cmV0dXJuIGMucmVzb2x2ZVByb21pc2VzRGljdCh7YnV0dG9uczpQcm9taXNlLmFsbCh0LmJ1dHRvbnMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9idXR0b25fbW9kZWwobil9KSksYXhlczpQcm9taXNlLmFsbCh0LmF4ZXMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9heGlzX21vZGVsKG4pfSkpfSl9LGUucHJvdG90eXBlLnVwZGF0ZV9sb29wPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXQoImluZGV4IiksZT10aGlzLmdldCgibmFtZSIpLG49bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07biYmdD09PW4uaW5kZXgmJmU9PT1uLmlkPyh0aGlzLnNldCh7dGltZXN0YW1wOm4udGltZXN0YW1wLGNvbm5lY3RlZDpuLmNvbm5lY3RlZH0pLHRoaXMuc2F2ZV9jaGFuZ2VzKCksdGhpcy5nZXQoImJ1dHRvbnMiKS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dC5zZXQoe3ZhbHVlOm4uYnV0dG9uc1tlXS52YWx1ZSxwcmVzc2VkOm4uYnV0dG9uc1tlXS5wcmVzc2VkfSksdC5zYXZlX2NoYW5nZXMoKX0pLHRoaXMuZ2V0KCJheGVzIikuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Quc2V0KCJ2YWx1ZSIsbi5heGVzW2VdKSx0LnNhdmVfY2hhbmdlcygpfSksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZV9sb29wLmJpbmQodGhpcykpKTp0aGlzLnJlc2V0X2dhbWVwYWQoKX0sZS5wcm90b3R5cGUucmVzZXRfZ2FtZXBhZD1mdW5jdGlvbigpe3RoaXMuZ2V0KCJidXR0b25zIikuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsb3NlKCl9KSx0aGlzLmdldCgiYXhlcyIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbG9zZSgpfSksdGhpcy5zZXQoe25hbWU6IiIsbWFwcGluZzoiIixjb25uZWN0ZWQ6ITEsdGltZXN0YW1wOjAsYnV0dG9uczpbXSxheGVzOltdfSksdGhpcy5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMud2FpdF9sb29wLmJpbmQodGhpcykpfSxlLnByb3RvdHlwZS5fY3JlYXRlX2J1dHRvbl9tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQnV0dG9uTW9kZWwiLG1vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsbW9kZWxfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl9tb2RlbF9tb2R1bGVfdmVyc2lvbiIpLHZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2aWV3X21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImRlc2NyaXB0aW9uIix0KSxlfSl9LGUucHJvdG90eXBlLl9jcmVhdGVfYXhpc19tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixtb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLG1vZGVsX21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSx2aWV3X25hbWU6IkNvbnRyb2xsZXJBeGlzVmlldyIsdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLHZpZXdfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl92aWV3X21vZHVsZV92ZXJzaW9uIil9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgiZGVzY3JpcHRpb24iLHQpLGV9KX0sZS5zZXJpYWxpemVycz1vKHt9LHMuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtidXR0b25zOntkZXNlcmlhbGl6ZTphLnVucGFja19tb2RlbHN9LGF4ZXM6e2Rlc2VyaWFsaXplOmEudW5wYWNrX21vZGVsc319KSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5idXR0b25fdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYnV0dG9uLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9ucyIsZnVuY3Rpb24odCxlKXt0aGlzLmJ1dHRvbl92aWV3cy51cGRhdGUoZSl9KSx0aGlzLmF4aXNfdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYXhpcyxudWxsLHRoaXMpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmF4ZXMiLGZ1bmN0aW9uKHQsZSl7dGhpcy5heGlzX3ZpZXdzLnVwZGF0ZShlKX0pLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOm5hbWUiLHRoaXMudXBkYXRlX2xhYmVsKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyIiksdGhpcy5ib3g9dGhpcy5lbCx0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMuYXhpc19ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5heGlzX2JveC5zdHlsZS5kaXNwbGF5PSJmbGV4Iix0aGlzLmJveC5hcHBlbmRDaGlsZCh0aGlzLmF4aXNfYm94KSx0aGlzLmJ1dHRvbl9ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idXR0b25fYm94LnN0eWxlLmRpc3BsYXk9ImZsZXgiLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMuYnV0dG9uX2JveCksdGhpcy5idXR0b25fdmlld3MudXBkYXRlKHRoaXMubW9kZWwuZ2V0KCJidXR0b25zIikpLHRoaXMuYXhpc192aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImF4ZXMiKSksdGhpcy51cGRhdGVfbGFiZWwoKX0sZS5wcm90b3R5cGUudXBkYXRlX2xhYmVsPWZ1bmN0aW9uKCl7dGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgibmFtZSIpfHx0aGlzLm1vZGVsLnJlYWRvdXR9LGUucHJvdG90eXBlLmFkZF9idXR0b249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmJ1dHRvbl9ib3guYXBwZW5kQ2hpbGQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJ1dHRvbl9ib3gucmVwbGFjZUNoaWxkKHQuZWwsbiksZS5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe3QudHJpZ2dlcigiZGlzcGxheWVkIixlKX0pLHR9KS5jYXRjaChjLnJlamVjdCgiQ291bGQgbm90IGFkZCBidXR0b24gdmlldyIsITApKX0sZS5wcm90b3R5cGUuYWRkX2F4aXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmF4aXNfYm94LmFwcGVuZENoaWxkKG4pLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5heGlzX2JveC5yZXBsYWNlQ2hpbGQodC5lbCxuKSxlLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7dC50cmlnZ2VyKCJkaXNwbGF5ZWQiLGUpfSksdH0pLmNhdGNoKGMucmVqZWN0KCJDb3VsZCBub3QgYWRkIGF4aXMgdmlldyIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyksdGhpcy5idXR0b25fdmlld3MucmVtb3ZlKCksdGhpcy5heGlzX3ZpZXdzLnJlbW92ZSgpfSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlclZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDE2KSxjPW4oNiksaD1uKDE2KSxsPW4oMTUpO3ZhciBkPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uTW9kZWwiLGluZGV4OiIiLF9vcHRpb25zX2xhYmVsczpbXSxkaXNhYmxlZDohMX0pfSxlfShzLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLlNlbGVjdGlvbk1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJEcm9wZG93bk1vZGVsIixfdmlld19uYW1lOiJEcm9wZG93blZpZXciLGJ1dHRvbl9zdHlsZToiIn0pfSxlfShkKTtlLkRyb3Bkb3duTW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfb3B0aW9uc19sYWJlbHMiLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3VwZGF0ZU9wdGlvbnMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtZHJvcGRvd24iKSx0aGlzLmxpc3Rib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksdGhpcy5saXN0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj11LnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGlzdGJveCksdGhpcy5fdXBkYXRlT3B0aW9ucygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTtyZXR1cm4gdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9bnVsbD09PWU/LTE6ZSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsLTE9PT10aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD9udWxsOnRoaXMubGlzdGJveC5zZWxlY3RlZEluZGV4KSx0aGlzLnRvdWNoKCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkRyb3Bkb3duVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0TW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdFZpZXciLHJvd3M6NX0pfSxlfShkKTtlLlNlbGVjdE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X29wdGlvbnNfbGFiZWxzIixmdW5jdGlvbigpe3JldHVybiBuLl91cGRhdGVPcHRpb25zKCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTppbmRleCIsZnVuY3Rpb24odCxlLGkpe3JldHVybiBuLnVwZGF0ZVNlbGVjdGlvbihpKX0pLHRoaXMubGlzdGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdCIpLHRoaXMubGlzdGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9dS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxpc3Rib3gpLHRoaXMuX3VwZGF0ZU9wdGlvbnMoKSx0aGlzLnVwZGF0ZSgpLHRoaXMudXBkYXRlU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpLHRoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgicm93cyIpO251bGw9PT1lJiYoZT0iIiksdGhpcy5saXN0Ym94LnNldEF0dHJpYnV0ZSgic2l6ZSIsZSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10JiYodD17fSksdC51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD1udWxsPT09ZT8tMTplfX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXgse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3RWaWV3PWc7dmFyIHY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJSYWRpb0J1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiUmFkaW9CdXR0b25zVmlldyIsdG9vbHRpcHM6W10saWNvbnM6W10sYnV0dG9uX3N0eWxlOiIifSl9LGV9KGQpO2UuUmFkaW9CdXR0b25zTW9kZWw9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpbyIpLHRoaXMuY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpby1ib3giKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxyPWMucGx1Y2sodGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0icmFkaW8iXScpLCJ2YWx1ZSIpLG89aS5sZW5ndGghPXIubGVuZ3RoO2lmKCFvKWZvcih2YXIgcz0wLGE9aS5sZW5ndGg7czxhOysrcylpZihyW3NdIT09aVtzXSl7bz0hMDticmVha31yZXR1cm4hb3x8dm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PT10aGlzfHwodGhpcy5jb250YWluZXIudGV4dENvbnRlbnQ9IiIsaS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTtpLnRleHRDb250ZW50PXQsbi5jb250YWluZXIuYXBwZW5kQ2hpbGQoaSk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksci52YWx1ZT1lLnRvU3RyaW5nKCksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSksaS5hcHBlbmRDaGlsZChyKX0pKSxpLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgaT0naW5wdXRbZGF0YS12YWx1ZT0iJytlbmNvZGVVUklDb21wb25lbnQodCkrJyJdJyxyPW4uY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoaSk7aWYoci5sZW5ndGg+MCl7dmFyIG89clswXTtvLmNoZWNrZWQ9bi5tb2RlbC5nZXQoImluZGV4Iik9PT1lLG8uZGlzYWJsZWQ9bi5tb2RlbC5nZXQoImRpc2FibGVkIil9fSksc2V0VGltZW91dCh0aGlzLmFkanVzdFBhZGRpbmcsMCx0aGlzKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5hZGp1c3RQYWRkaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQuZWwpLG49cGFyc2VJbnQoZS5tYXJnaW5Ub3ApK3BhcnNlSW50KGUubWFyZ2luQm90dG9tKSxpPXQubGFiZWwub2Zmc2V0SGVpZ2h0K24scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LmNvbnRhaW5lciksbz1wYXJzZUludChyLm1hcmdpbkJvdHRvbSkscz0odC5lbC5vZmZzZXRIZWlnaHQrbi1vKSVpLGE9MD09cz8wOmktczt0LmNvbnRhaW5lci5zdHlsZS5tYXJnaW5Cb3R0b209YSsicHgifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9InJhZGlvIl0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5zZXQoImluZGV4IixwYXJzZUludCh0LnRhcmdldC52YWx1ZSkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5SYWRpb0J1dHRvbnNWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtidXR0b25fd2lkdGg6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToid2lkdGgiLGRlZmF1bHQ6bnVsbH0sZm9udF93ZWlnaHQ6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToiZm9udC13ZWlnaHQiLGRlZmF1bHQ6IiJ9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWw9eTt2YXIgXz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRvZ2dsZUJ1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiVG9nZ2xlQnV0dG9uc1ZpZXcifSl9LGV9KGQpO2UuVG9nZ2xlQnV0dG9uc01vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3RoaXMuX2Nzc19zdGF0ZT17fSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpidXR0b25fc3R5bGUiLHRoaXMudXBkYXRlX2J1dHRvbl9zdHlsZSl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10b2dnbGUtYnV0dG9ucyIpLHRoaXMuYnV0dG9uZ3JvdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1dHRvbmdyb3VwKSx0aGlzLnVwZGF0ZSgpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24obil7Zm9yKHZhciBpPXRoaXMscj10aGlzLm1vZGVsLmdldCgiX29wdGlvbnNfbGFiZWxzIiksbz10aGlzLm1vZGVsLmdldCgiaWNvbnMiKXx8W10scz10aGlzLm1vZGVsLnByZXZpb3VzKCJpY29ucyIpfHxbXSxhPWUuY2xhc3NNYXBbdGhpcy5tb2RlbC5wcmV2aW91cygiYnV0dG9uX3N0eWxlIildfHwiIix1PWkubW9kZWwuZ2V0KCJ0b29sdGlwcyIpfHxbXSxsPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLGQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxmPWMucGx1Y2soZCwidmFsdWUiKSxwPSExLG09MCxnPXIubGVuZ3RoO208ZzsrK20paWYoZlttXSE9PXJbbV18fG9bbV0hPT1zW21dKXtwPSEwO2JyZWFrfXJldHVybiFwfHx2b2lkIDAhPT1uJiZuLnVwZGF0ZWRfdmlldz09PXRoaXN8fCh0aGlzLmJ1dHRvbmdyb3VwLnRleHRDb250ZW50PSIiLHIuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuO249MD09PXQudHJpbSgpLmxlbmd0aCYmKCFvW2VdfHwwPT09b1tlXS50cmltKCkubGVuZ3RoKT8iJm5ic3A7IjpoLmVzY2FwZV9odG1sKHQpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO29bZV0mJihyLmNsYXNzTmFtZT0iZmEgZmEtIitvW2VdKSxzLnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpLHMuY2xhc3NOYW1lPSJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiBqdXB5dGVyLWJ1dHRvbiIsYSYmcy5jbGFzc0xpc3QuYWRkKGEpLHMuaW5uZXJIVE1MPW4scy5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSkscy5zZXRBdHRyaWJ1dGUoInZhbHVlIixlLnRvU3RyaW5nKCkpLHMuYXBwZW5kQ2hpbGQocikscy5kaXNhYmxlZD1sLHVbZV0mJnMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdVtlXSksaS51cGRhdGVfc3R5bGVfdHJhaXRzKHMpLGkuYnV0dG9uZ3JvdXAuYXBwZW5kQ2hpbGQocyl9KSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49J1tkYXRhLXZhbHVlPSInK2VuY29kZVVSSUNvbXBvbmVudCh0KSsnIl0nLHI9aS5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yKG4pO2kubW9kZWwuZ2V0KCJpbmRleCIpPT09ZT9yLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTpyLmNsYXNzTGlzdC5yZW1vdmUoIm1vZC1hY3RpdmUiKX0pLHRoaXMuc3R5bGVQcm9taXNlLnRoZW4oZnVuY3Rpb24odCl7dCYmdC5zdHlsZSgpfSksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxuKX0sZS5wcm90b3R5cGUudXBkYXRlX3N0eWxlX3RyYWl0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fY3NzX3N0YXRlKWlmKHRoaXMuX2Nzc19zdGF0ZS5oYXNPd25Qcm9wZXJ0eShlKSlpZigibWFyZ2luIj09PWUpdGhpcy5idXR0b25ncm91cC5zdHlsZVtlXT10aGlzLl9jc3Nfc3RhdGVbZV07ZWxzZSBpZigid2lkdGgiIT09ZSlpZih0KXQuc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdO2Vsc2V7dmFyIG49dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKTtuLmxlbmd0aCYmKG5bMF0uc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdKX19LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc01hcCwiYnV0dG9uX3N0eWxlIix0W25dKX0sZS5wcm90b3R5cGUuc2V0X2J1dHRvbl9zdHlsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1dHRvbmdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzTWFwLCJidXR0b25fc3R5bGUiLHRbbl0pfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNsaWNrIGJ1dHRvbiI6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgiaW5kZXgiLHBhcnNlSW50KHQudGFyZ2V0LnZhbHVlKSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCksdGhpcy5zZW5kKHtldmVudDoiY2xpY2sifSl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLlRvZ2dsZUJ1dHRvbnNWaWV3PXcsZnVuY3Rpb24odCl7dC5jbGFzc01hcD17cHJpbWFyeTpbIm1vZC1wcmltYXJ5Il0sc3VjY2VzczpbIm1vZC1zdWNjZXNzIl0saW5mbzpbIm1vZC1pbmZvIl0sd2FybmluZzpbIm1vZC13YXJuaW5nIl0sZGFuZ2VyOlsibW9kLWRhbmdlciJdfX0odz1lLlRvZ2dsZUJ1dHRvbnNWaWV3fHwoZS5Ub2dnbGVCdXR0b25zVmlldz17fSkpLGUuVG9nZ2xlQnV0dG9uc1ZpZXc9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShkKTtlLlNlbGVjdGlvblNsaWRlck1vZGVsPXg7dmFyIE09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1sKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpzbGlkZXJfY29sb3IiLGZ1bmN0aW9uKHQsbil7ZS4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLG4pfSksdGhpcy4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLHRoaXMubW9kZWwuZ2V0KCJzbGlkZXJfY29sb3IiKSksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWV8fGUudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLmxlbmd0aC0xO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInN0ZXAiLDEpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1heCIsbiksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwibWluIiwwKTt2YXIgaT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsMCksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwib3JpZW50YXRpb24iLGkpO3ZhciByPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsImRpc2FibGVkIixyKSx0aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPXI/ImZhbHNlIjoidHJ1ZSIsInZlcnRpY2FsIj09PWk/KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWhzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtdmJveCIpKToodGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtdnNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJyZWFkb3V0Iik7dGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9bz8iIjoibm9uZSIsdGhpcy51cGRhdGVTZWxlY3Rpb24oKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsdCksdGhpcy51cGRhdGVSZWFkb3V0KHQpfSxlLnByb3RvdHlwZS51cGRhdGVSZWFkb3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKVt0XTt0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9ZX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWUpLHRoaXMubW9kZWwuZ2V0KCJjb250aW51b3VzX3VwZGF0ZSIpJiZ0aGlzLmhhbmRsZVNsaWRlckNoYW5nZWQodCxlKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3Rpb25TbGlkZXJWaWV3PU07dmFyIFM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJNdWx0aXBsZVNlbGVjdGlvbk1vZGVsIn0pfSxlfShkKTtlLk11bHRpcGxlU2VsZWN0aW9uTW9kZWw9Uzt2YXIgRT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdE11bHRpcGxlTW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdE11bHRpcGxlVmlldyIscm93czpudWxsfSl9LGV9KFMpO2UuU2VsZWN0TXVsdGlwbGVNb2RlbD1FO3ZhciBBPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3Rib3gubXVsdGlwbGU9ITB9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdC1tdWx0aXBsZSIpfSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHQudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoImluZGV4Iil8fFtdLG49dGhpcy5saXN0Ym94Lm9wdGlvbnM7dGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9LTEsZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF0uc2VsZWN0ZWQ9ITB9KX19LGUucHJvdG90eXBlLl9oYW5kbGVfY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHRoaXMubGlzdGJveC5zZWxlY3RlZE9wdGlvbnN8fFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4fSk7dGhpcy5tb2RlbC5zZXQoImluZGV4Iix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oZyk7ZS5TZWxlY3RNdWx0aXBsZVZpZXc9QTt2YXIgQz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShTKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyTW9kZWw9Qzt2YXIgaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInJhbmdlIiwhMCl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJpbmRleCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsdC5zbGljZSgpKSx0aGlzLnVwZGF0ZVJlYWRvdXQodCl9LGUucHJvdG90eXBlLnVwZGF0ZVJlYWRvdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLG49ZVt0WzBdXSxpPWVbdFsxXV07dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PW4rIi0iK2l9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlcyksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWVzKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWVzLnNsaWNlKCkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShNKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyVmlldz1rfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDgpLHM9bigxMzYpLGE9bigzNTUpLHU9bigzNTYpLGM9bigzOSksaD1uKDIpLGw9big1KSxkPW4oNiksZj1uKDE2KSxwPW4oMTUpLG09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uQ29udGFpbmVyTW9kZWwiLHNlbGVjdGVkX2luZGV4OjAsX3RpdGxlczp7fX0pfSxlfShzLkJveE1vZGVsKTtlLlNlbGVjdGlvbkNvbnRhaW5lck1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQWNjb3JkaW9uTW9kZWwiLF92aWV3X25hbWU6IkFjY29yZGlvblZpZXcifSl9LGV9KG0pO2UuQWNjb3JkaW9uTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlLmNhbGwodGhpcyxlKSx0aGlzLl92aWV3LnByb2Nlc3NQaG9zcGhvck1lc3NhZ2UoZSl9LGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfSh1LkFjY29yZGlvbik7ZS5KdXB5dGVyUGhvc3Bob3JBY2NvcmRpb25XaWRnZXQ9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IHYoe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBvLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX3ZpZXcsdGhpcy5yZW1vdmVfY2hpbGRfdmlldyx0aGlzKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjaGlsZHJlbiIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVDaGlsZHJlbigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2VsZWN0ZWRfaW5kZXgiLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfdGl0bGVzIixmdW5jdGlvbigpe3JldHVybiBuLnVwZGF0ZV90aXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpO3ZhciBuPXRoaXMucFdpZGdldDtuLmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSxuLmFkZENsYXNzKCJ3aWRnZXQtYWNjb3JkaW9uIiksbi5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLG4uc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChmdW5jdGlvbih0KXtlLnVwZGF0aW5nQ2hpbGRyZW58fChlLm1vZGVsLnNldCgic2VsZWN0ZWRfaW5kZXgiLG4uc2VsZWN0aW9uLmluZGV4KSxlLnRvdWNoKCkpfSksdGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLHRoaXMudXBkYXRlX3RpdGxlcygpLHRoaXMudXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9LGUucHJvdG90eXBlLnVwZGF0ZUNoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGluZ0NoaWxkcmVuPSEwLHRoaXMucFdpZGdldC5zZWxlY3Rpb24uaW5kZXg9bnVsbCx0aGlzLmNoaWxkcmVuX3ZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy51cGRhdGVfc2VsZWN0ZWRfaW5kZXgoKSx0aGlzLnVwZGF0aW5nQ2hpbGRyZW49ITF9LGUucHJvdG90eXBlLnVwZGF0ZV90aXRsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5wV2lkZ2V0LmNvbGxhcHNlV2lkZ2V0cyxlPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIiksbj0wO248dC5sZW5ndGg7bisrKXZvaWQgMCE9PWVbbl0mJih0W25dLndpZGdldC50aXRsZS5sYWJlbD1lW25dKX0sZS5wcm90b3R5cGUudXBkYXRlX3NlbGVjdGVkX2luZGV4PWZ1bmN0aW9uKCl7dGhpcy5wV2lkZ2V0LnNlbGVjdGlvbi5pbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKX0sZS5wcm90b3R5cGUucmVtb3ZlX2NoaWxkX3ZpZXc9ZnVuY3Rpb24odCl7dGhpcy5wV2lkZ2V0LnJlbW92ZVdpZGdldCh0LnBXaWRnZXQpLHQucmVtb3ZlKCl9LGUucHJvdG90eXBlLmFkZF9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5wV2lkZ2V0LGk9bmV3IGMuV2lkZ2V0O3JldHVybiBpLnRpdGxlLmxhYmVsPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIilbZV18fCIiLG4uYWRkV2lkZ2V0KGkpLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnBXaWRnZXQ7cmV0dXJuIGUudGl0bGUubGFiZWw9aS50aXRsZS5sYWJlbCxuLmNvbGxhcHNlV2lkZ2V0c1tuLmluZGV4T2YoaSldLndpZGdldD1lLGkuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cz1udWxsLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxlfShvLkRPTVdpZGdldFZpZXcpO2UuQWNjb3JkaW9uVmlldz1iO3ZhciB5PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRhYk1vZGVsIixfdmlld19uYW1lOiJUYWJWaWV3In0pfSxlfShtKTtlLlRhYk1vZGVsPXk7dmFyIF89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLGwuTWVzc2FnZUxvb3AuaW5zdGFsbE1lc3NhZ2VIb29rKG4udGFiQ29udGVudHMsZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpLCEwfSksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfShhLlRhYlBhbmVsKTtlLkp1cHl0ZXJQaG9zcGhvclRhYlBhbmVsV2lkZ2V0PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS51cGRhdGluZ1RhYnM9ITEsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IF8oe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuVmlld3M9bmV3IG8uVmlld0xpc3QodGhpcy5hZGRDaGlsZFZpZXcsZnVuY3Rpb24odCl7dC5yZW1vdmUoKX0sdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlVGFicygpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3RpdGxlcyIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVUaXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT10aGlzLnBXaWRnZXQ7ZS5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksZS5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLGUuYWRkQ2xhc3MoIndpZGdldC10YWIiKSxlLnRhYnNNb3ZhYmxlPSEwLGUudGFiQmFyLmluc2VydEJlaGF2aW9yPSJub25lIixlLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGFiQ2hhbmdlZCx0aGlzKSxlLnRhYkJhci50YWJNb3ZlZC5jb25uZWN0KHRoaXMuX29uVGFiTW92ZWQsdGhpcyksZS50YWJCYXIuYWRkQ2xhc3MoIndpZGdldC10YWItYmFyIiksZS50YWJDb250ZW50cy5hZGRDbGFzcygid2lkZ2V0LXRhYi1jb250ZW50cyIpLGUudGFiQmFyLnRhYnNNb3ZhYmxlPSExLHRoaXMudXBkYXRlVGFicygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZVRhYnM9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0aW5nVGFicz0hMCx0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PW51bGwsdGhpcy5jaGlsZHJlblZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy5wV2lkZ2V0LmN1cnJlbnRJbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKSx0aGlzLnVwZGF0aW5nVGFicz0hMX0sZS5wcm90b3R5cGUuYWRkQ2hpbGRWaWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl90aXRsZXMiKVtlXXx8IiIsaT10aGlzLnBXaWRnZXQscj1uZXcgYy5XaWRnZXQ7cmV0dXJuIHIudGl0bGUubGFiZWw9bixpLmFkZFdpZGdldChyKSx0aGlzLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9dC5wV2lkZ2V0O2UudGl0bGUubGFiZWw9ci50aXRsZS5sYWJlbCxlLnRpdGxlLmNsb3NhYmxlPSExO3ZhciBuPWguQXJyYXlFeHQuZmlyc3RJbmRleE9mKGkud2lkZ2V0cyxyKTtyZXR1cm4gaS5pbnNlcnRXaWRnZXQobisxLGUpLHIuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlU2VsZWN0ZWRJbmRleCgpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS51cGRhdGVUaXRsZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3RpdGxlcyIpfHx7fTtoLmVhY2godGhpcy5wV2lkZ2V0LndpZGdldHMsZnVuY3Rpb24oZSxuKXtlLnRpdGxlLmxhYmVsPXRbbl18fCIifSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGVkSW5kZXg9ZnVuY3Rpb24oKXt0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PXRoaXMubW9kZWwuZ2V0KCJzZWxlY3RlZF9pbmRleCIpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmNoaWxkcmVuVmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX29uVGFiQ2hhbmdlZD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLnVwZGF0aW5nVGFicyl7dmFyIG49ZS5jdXJyZW50SW5kZXg7dGhpcy5tb2RlbC5zZXQoInNlbGVjdGVkX2luZGV4IiwtMT09PW4/bnVsbDpuKSx0aGlzLnRvdWNoKCl9fSxlLnByb3RvdHlwZS5fb25UYWJNb3ZlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJjaGlsZHJlbiIpLnNsaWNlKCk7aC5BcnJheUV4dC5tb3ZlKG4sZS5mcm9tSW5kZXgsZS50b0luZGV4KSx0aGlzLm1vZGVsLnNldCgiY2hpbGRyZW4iLG4pLHRoaXMudG91Y2goKX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLlRhYlZpZXc9d30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big1KSxzPW4oMTEpLGE9big5KSx1PW4oMzkpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0UmVtb3ZlZD1uZXcgcy5TaWduYWwoZSksZX1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRSZW1vdmVkPWZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0odS5QYW5lbCk7ZS5FdmVudGVkUGFuZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgdS5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi50YWJDb250ZW50cz1uZXcgYyxuLnRhYkNvbnRlbnRzLmFkZENsYXNzKCJwLVRhYlBhbmVsLXRhYkNvbnRlbnRzIiksbi50YWJCYXIudGFiTW92ZWQuY29ubmVjdChuLl9vblRhYk1vdmVkLG4pLG4udGFiQmFyLmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3Qobi5fb25DdXJyZW50Q2hhbmdlZCxuKSxuLnRhYkJhci50YWJDbG9zZVJlcXVlc3RlZC5jb25uZWN0KG4uX29uVGFiQ2xvc2VSZXF1ZXN0ZWQsbiksbi50YWJCYXIudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLG4pLG4udGFiQ29udGVudHMud2lkZ2V0UmVtb3ZlZC5jb25uZWN0KG4uX29uV2lkZ2V0UmVtb3ZlZCxuKTt2YXIgaT1uZXcgdS5QYW5lbExheW91dDtyZXR1cm4gaS5hZGRXaWRnZXQobi50YWJCYXIpLGkuYWRkV2lkZ2V0KG4udGFiQ29udGVudHMpLG4ubGF5b3V0PWksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRhYkJhci5jdXJyZW50SW5kZXg7cmV0dXJuLTE9PT10P251bGw6dH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRJbmRleD1udWxsPT09dD8tMTp0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFdpZGdldCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD90Lm93bmVyOm51bGx9LHNldDpmdW5jdGlvbih0KXt0aGlzLnRhYkJhci5jdXJyZW50VGl0bGU9dD90LnRpdGxlOm51bGx9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJzTW92YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhYkJhci50YWJzTW92YWJsZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLnRhYnNNb3ZhYmxlPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQ29udGVudHMud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy53aWRnZXRzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0PWZ1bmN0aW9uKHQsZSl7ZSE9PXRoaXMuY3VycmVudFdpZGdldCYmZS5oaWRlKCksdGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxzPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1zP3Mub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwoYS5QbGF0Zm9ybS5JU19FREdFfHxhLlBsYXRmb3JtLklTX0lFKSYmby5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQoZS50b0luZGV4LGUudGl0bGUub3duZXIpfSxlLnByb3RvdHlwZS5fb25XaWRnZXRSZW1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJCYXIucmVtb3ZlVGFiKGUudGl0bGUpfSxlfSh1LldpZGdldCk7ZS5UYWJQYW5lbD1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9bigxMSksYT1uKDM5KSx1PW4oMzU3KSxjPSJwLUNvbGxhcHNlIixoPSJwLUNvbGxhcHNlLWhlYWRlciIsbD0icC1Db2xsYXBzZS1jb250ZW50cyIsZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO24uX2NvbGxhcHNlQ2hhbmdlZD1uZXcgcy5TaWduYWwobiksbi5hZGRDbGFzcyhjKSxuLl9oZWFkZXI9bmV3IGEuV2lkZ2V0LG4uX2hlYWRlci5hZGRDbGFzcyhoKSxuLl9oZWFkZXIubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbiksbi5fY29udGVudD1uZXcgYS5QYW5lbCxuLl9jb250ZW50LmFkZENsYXNzKGwpO3ZhciBpPW5ldyBhLlBhbmVsTGF5b3V0O3JldHVybiBuLmxheW91dD1pLGkuYWRkV2lkZ2V0KG4uX2hlYWRlciksaS5hZGRXaWRnZXQobi5fY29udGVudCksZS53aWRnZXQmJihuLndpZGdldD1lLndpZGdldCksbi5jb2xsYXBzZWQ9ITEsbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5faGVhZGVyPW51bGwsdGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5fY29udGVudD1udWxsKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2lkZ2V0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fd2lkZ2V0O2UmJihlLmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25DaGlsZERpc3Bvc2VkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLGUucGFyZW50PW51bGwpLHRoaXMuX3dpZGdldD10LHQuZGlzcG9zZWQuY29ubmVjdCh0aGlzLl9vbkNoaWxkRGlzcG9zZWQsdGhpcyksdC50aXRsZS5jaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksdGhpcy5fb25UaXRsZUNoYW5nZWQodC50aXRsZSksdGhpcy5fY29udGVudC5hZGRXaWRnZXQodCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuX2NvbGxhcHNlZCYmKHQ/dGhpcy5fY29sbGFwc2UoKTp0aGlzLl91bmNvbGxhcHNlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZUNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMCx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LmhpZGUoKSx0aGlzLnJlbW92ZUNsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5fdW5jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMSx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LnNob3coKSx0aGlzLmFkZENsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNsaWNrIjp0aGlzLl9ldnRDbGljayh0KX19LGUucHJvdG90eXBlLl9ldnRDbGljaz1mdW5jdGlvbih0KXt0aGlzLnRvZ2dsZSgpfSxlLnByb3RvdHlwZS5fb25UaXRsZUNoYW5nZWQ9ZnVuY3Rpb24odCl7dGhpcy5faGVhZGVyLm5vZGUudGV4dENvbnRlbnQ9dGhpcy5fd2lkZ2V0LnRpdGxlLmxhYmVsfSxlLnByb3RvdHlwZS5fb25DaGlsZERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMuZGlzcG9zZSgpfSxlfShhLldpZGdldCk7ZS5Db2xsYXBzZT1kO3ZhciBmPSJwLUFjY29yZGlvbiIscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9zZWxlY3Rpb249bmV3IHUuU2VsZWN0aW9uKG4ud2lkZ2V0cyksbi5fc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChuLl9vblNlbGVjdGlvbkNoYW5nZWQsbiksbi5hZGRDbGFzcyhmKSxufXJldHVybiByKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZVdpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNlbGVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWxlY3Rpb259LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gby5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLmNvbGxhcHNlV2lkZ2V0cyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl93cmFwV2lkZ2V0KGUpO3JldHVybiBuLmNvbGxhcHNlZD0hMCx0LnByb3RvdHlwZS5hZGRXaWRnZXQuY2FsbCh0aGlzLG4pLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQodGhpcy53aWRnZXRzLmxlbmd0aC0xLG4pLG59LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbihlLG4pe3ZhciBpPXRoaXMuX3dyYXBXaWRnZXQobik7aS5jb2xsYXBzZWQ9ITAsdC5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0LmNhbGwodGhpcyxlLGkpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQoZSxpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5kZXhPZih0KTtpZihlPj0wKXt2YXIgbj10aGlzLmNvbGxhcHNlV2lkZ2V0c1tlXTt0LnBhcmVudD1udWxsLG4uZGlzcG9zZSgpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JSZW1vdmUoZSxudWxsKX19LGUucHJvdG90eXBlLl93cmFwV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBkKHt3aWRnZXQ6dH0pO3JldHVybiBlLmFkZENsYXNzKCJwLUFjY29yZGlvbi1jaGlsZCIpLGUuY29sbGFwc2VDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25Db2xsYXBzZUNoYW5nZSx0aGlzKSxlfSxlLnByb3RvdHlwZS5fb25Db2xsYXBzZUNoYW5nZT1mdW5jdGlvbih0KXt0LmNvbGxhcHNlZD90aGlzLl9zZWxlY3Rpb24udmFsdWU9PT10JiZ0LmNvbGxhcHNlZCYmKHRoaXMuX3NlbGVjdGlvbi52YWx1ZT1udWxsKTp0aGlzLl9zZWxlY3Rpb24udmFsdWU9dH0sZS5wcm90b3R5cGUuX29uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNWYWx1ZSxpPWUuY3VycmVudFZhbHVlO24mJihuLmNvbGxhcHNlZD0hMCxuLnJlbW92ZUNsYXNzKCJwLUFjY29yZGlvbi1jaGlsZC1hY3RpdmUiKSksaSYmKGkuY29sbGFwc2VkPSExLGkuYWRkQ2xhc3MoInAtQWNjb3JkaW9uLWNoaWxkLWFjdGl2ZSIpKX0sZX0oYS5QYW5lbCk7ZS5BY2NvcmRpb249cH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oMTEpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX2FycmF5PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyksdGhpcy5fYXJyYXk9dCx0aGlzLl9pbnNlcnRCZWhhdmlvcj1lLmluc2VydEJlaGF2aW9yfHwic2VsZWN0LWl0ZW0taWYtbmVlZGVkIix0aGlzLl9yZW1vdmVCZWhhdmlvcj1lLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LWl0ZW0tYWZ0ZXIifXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInNlbGVjdGlvbkNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JTZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleCxuPXRoaXMudmFsdWU7aWYodD09PWUpe3RoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMuX3ByZXZpb3VzVmFsdWU9bnVsbCxuIT09aSYmdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OmUscHJldmlvdXNWYWx1ZTpuLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTppfSl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbmRleD1udWxsPT09dD9udWxsOmkuQXJyYXlFeHQuZmlyc3RJbmRleE9mKHRoaXMuX2FycmF5LHQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faW5kZXh9LHNldDpmdW5jdGlvbih0KXt2YXIgZTtpZihudWxsIT09dD8oKGU9TWF0aC5mbG9vcih0KSk8MHx8ZT49dGhpcy5fYXJyYXkubGVuZ3RoKSYmKGU9bnVsbCk6ZT1udWxsLHRoaXMuX2luZGV4IT09ZSl7dmFyIG49dGhpcy5faW5kZXgsaT10aGlzLl92YWx1ZTt0aGlzLl9pbmRleD1lLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSx0aGlzLl9wcmV2aW91c1ZhbHVlPWksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNWYWx1ZTppLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImluc2VydEJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2VydEJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faW5zZXJ0QmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInJlbW92ZUJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlQmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl92YWx1ZSxpPXRoaXMuX2luZGV4LHI9dGhpcy5faW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC1pdGVtIj09PXJ8fCJzZWxlY3QtaXRlbS1pZi1uZWVkZWQiPT09ciYmbnVsbD09PWkpcmV0dXJuIHRoaXMuX2luZGV4PXQsdGhpcy5fdmFsdWU9ZSx0aGlzLl9wcmV2aW91c1ZhbHVlPW4sdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6aSxwcmV2aW91c1ZhbHVlOm4sY3VycmVudEluZGV4OnQsY3VycmVudFZhbHVlOmV9KTtpPj10JiZ0aGlzLl9pbmRleCsrfSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JNb3ZlPWZ1bmN0aW9uKHQsZSl7dGhpcy5faW5kZXg9PT10P3RoaXMuX2luZGV4PWU6dGhpcy5faW5kZXg8dCYmdGhpcy5faW5kZXg+PWU/dGhpcy5faW5kZXgrKzp0aGlzLl9pbmRleD50JiZ0aGlzLl9pbmRleDw9ZSYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleCxlPXRoaXMuX3ZhbHVlO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsbnVsbCE9PXQmJnRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVmFsdWU6ZSxjdXJyZW50SW5kZXg6dGhpcy5faW5kZXgsY3VycmVudFZhbHVlOnRoaXMuX3ZhbHVlfSl9LHQucHJvdG90eXBlLmFkanVzdFNlbGVjdGlvbkZvclJlbW92ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2luZGV4LGk9dGhpcy5fcmVtb3ZlQmVoYXZpb3I7aWYobj09PXQpe2lmKDA9PT10aGlzLl9hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1ZhbHVlOmUsY3VycmVudEluZGV4OnRoaXMuX2luZGV4LGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pO2lmKCJzZWxlY3QtaXRlbS1hZnRlciI9PT1pKXJldHVybiB0aGlzLl9pbmRleD1NYXRoLm1pbih0LHRoaXMuX2FycmF5Lmxlbmd0aC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LWl0ZW0tYmVmb3JlIj09PWkpcmV0dXJuIHRoaXMuX2luZGV4PU1hdGgubWF4KDAsdC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LXByZXZpb3VzLWl0ZW0iPT09aSlyZXR1cm4gdGhpcy5fcHJldmlvdXNWYWx1ZT90aGlzLnZhbHVlPXRoaXMuX3ByZXZpb3VzVmFsdWU6KHRoaXMuX2luZGV4PU1hdGgubWluKHQsdGhpcy5fYXJyYXkubGVuZ3RoLTEpLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy52YWx1ZX0pO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KX1lbHNlIG4+dCYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGVkVmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleDt0aGlzLl92YWx1ZT1udWxsIT09dD90aGlzLl9hcnJheVt0XTpudWxsfSx0fSgpO2UuU2VsZWN0aW9uPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTIpLHM9bigyMyksYT1uKDE2KSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse3ZhbHVlOiIiLGRpc2FibGVkOiExLHBsYWNlaG9sZGVyOiLigIsiLF9tb2RlbF9uYW1lOiJTdHJpbmdNb2RlbCJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5TdHJpbmdNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiSFRNTFZpZXciLF9tb2RlbF9uYW1lOiJIVE1MTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbCIpLHRoaXMuY29udGVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWwtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTFZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IkhUTUxNYXRoVmlldyIsX21vZGVsX25hbWU6IkhUTUxNYXRoTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1hdGhNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWxtYXRoIiksdGhpcy5jb250ZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuY29udGVudC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbG1hdGgtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLnR5cGVzZXQodGhpcy5jb250ZW50KSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTE1hdGhWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJMYWJlbFZpZXciLF9tb2RlbF9uYW1lOiJMYWJlbE1vZGVsIn0pfSxlfShjKTtlLkxhYmVsTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlc2V0KHRoaXMuZWwsdGhpcy5tb2RlbC5nZXQoInZhbHVlIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5MYWJlbFZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlRleHRhcmVhVmlldyIsX21vZGVsX25hbWU6IlRleHRhcmVhTW9kZWwiLHJvd3M6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShjKTtlLlRleHRhcmVhTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0YXJlYSIpLHRoaXMudGV4dGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLHRoaXMudGV4dGJveC5zZXRBdHRyaWJ1dGUoInJvd3MiLCI1IiksdGhpcy50ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMudGV4dGJveCksdGhpcy51cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpwbGFjZWhvbGRlciIsZnVuY3Rpb24odCxlLG4pe3RoaXMudXBkYXRlX3BsYWNlaG9sZGVyKGUpfSksdGhpcy51cGRhdGVfcGxhY2Vob2xkZXIoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYWNlaG9sZGVyPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5tb2RlbC5nZXQoInBsYWNlaG9sZGVyIiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQudG9TdHJpbmcoKSl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9dGhpcyl7dGhpcy50ZXh0Ym94LnZhbHVlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJyb3dzIik7bnVsbD09PW4mJihuPSIiKSx0aGlzLnRleHRib3guc2V0QXR0cmlidXRlKCJyb3dzIixuKSx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IHRleHRhcmVhIjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgdGV4dGFyZWEiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQudGFyZ2V0LnZhbHVlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuVGV4dGFyZWFWaWV3PXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUZXh0VmlldyIsX21vZGVsX25hbWU6IlRleHRNb2RlbCIsY29udGludW91c191cGRhdGU6ITB9KX0sZX0oYyk7ZS5UZXh0TW9kZWw9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLmlucHV0VHlwZT0idGV4dCIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsdGhpcy5pbnB1dFR5cGUpLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9YS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6cGxhY2Vob2xkZXIiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnVwZGF0ZV9wbGFjZWhvbGRlcihlKX0pLHRoaXMudXBkYXRlX3BsYWNlaG9sZGVyKCl9LGUucHJvdG90eXBlLnVwZGF0ZV9wbGFjZWhvbGRlcj1mdW5jdGlvbih0KXt0fHwodD10aGlzLm1vZGVsLmdldCgicGxhY2Vob2xkZXIiKSksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJmUudXBkYXRlZF92aWV3PT10aGlzfHwodGhpcy50ZXh0Ym94LnZhbHVlIT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSYmKHRoaXMudGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSksdGhpcy50ZXh0Ym94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueyJrZXlkb3duIGlucHV0IjoiaGFuZGxlS2V5RG93biIsImtleXByZXNzIGlucHV0IjoiaGFuZGxlS2V5cHJlc3MiLCJpbnB1dCBpbnB1dCI6ImhhbmRsZUNoYW5naW5nIiwiY2hhbmdlIGlucHV0IjoiaGFuZGxlQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS5oYW5kbGVLZXlEb3duPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LGUucHJvdG90eXBlLmhhbmRsZUtleXByZXNzPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksMTM9PXQua2V5Q29kZSYmdGhpcy5zZW5kKHtldmVudDoic3VibWl0In0pfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2luZz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLmdldCgiY29udGludW91c191cGRhdGUiKSYmdGhpcy5oYW5kbGVDaGFuZ2VkKHQpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdC50YXJnZXQudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5UZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiUGFzc3dvcmRWaWV3IixfbW9kZWxfbmFtZToiUGFzc3dvcmRNb2RlbCJ9KX0sZX0oYik7ZS5QYXNzd29yZE1vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5pbnB1dFR5cGU9InBhc3N3b3JkIixlfXJldHVybiByKGUsdCksZX0oeSk7ZS5QYXNzd29yZFZpZXc9d30sZnVuY3Rpb24odCl7dC5leHBvcnRzPXtuYW1lOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2ZXJzaW9uOiIxLjQuMiIsZGVzY3JpcHRpb246Ikp1cHl0ZXIgaW50ZXJhY3RpdmUgd2lkZ2V0cyIsYXV0aG9yOiJQcm9qZWN0IEp1cHl0ZXIiLGxpY2Vuc2U6IkJTRC0zLUNsYXVzZSIsbWFpbjoibGliL2luZGV4LmpzIix0eXBpbmdzOiJsaWIvaW5kZXguZC50cyIscmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6Imh0dHBzOi8vZ2l0aHViLmNvbS9qdXB5dGVyLXdpZGdldHMvaXB5d2lkZ2V0cy5naXQifSxmaWxlczpbImxpYi8qKi8qLmQudHMiLCJsaWIvKiovKi5qcyIsImNzcy8qLmNzcyIsImRpc3QvIl0sc2NyaXB0czp7ImNsZWFuOnNyYyI6InJpbXJhZiBsaWIiLGNsZWFuOiJucG0gcnVuIGNsZWFuOnNyYyIsImJ1aWxkOnRlc3QiOiJ0c2MgLS1wcm9qZWN0IHRlc3Qvc3JjICYmIHdlYnBhY2sgLS1jb25maWcgdGVzdC93ZWJwYWNrLmNvbmYuanMiLCJidWlsZDpzcmMiOiJ0c2MgLS1wcm9qZWN0IHNyYyIsImJ1aWxkOmNzcyI6InBvc3Rjc3MgLS11c2UgcG9zdGNzcy1pbXBvcnQgLS11c2UgcG9zdGNzcy1jc3NuZXh0IC1vIGNzcy93aWRnZXRzLmJ1aWx0LmNzcyBjc3Mvd2lkZ2V0cy5jc3MiLGJ1aWxkOiJucG0gcnVuIGJ1aWxkOnNyYyAmJiBucG0gcnVuIGJ1aWxkOmNzcyIsbGludDoidHNsaW50IC0tcHJvamVjdCB0c2xpbnQuanNvbiAtLWZvcm1hdCBzdHlsaXNoIix0ZXN0OiJucG0gcnVuIHRlc3Q6dW5pdCIsInRlc3Q6Y292ZXJhZ2UiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYgd2VicGFjayAtLWNvbmZpZyB0ZXN0L3dlYnBhY2stY292LmNvbmYuanMgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS1jb3YuY29uZi5qcyIsInRlc3Q6dW5pdCI6Im5wbSBydW4gdGVzdDp1bml0OmZpcmVmb3ggJiYgbnBtIHJ1biB0ZXN0OnVuaXQ6Y2hyb21lIiwidGVzdDp1bml0OmRlZmF1bHQiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS5jb25mLmpzIC0tbG9nLWxldmVsIGRlYnVnIiwidGVzdDp1bml0OmZpcmVmb3giOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9RmlyZWZveCIsInRlc3Q6dW5pdDpjaHJvbWUiOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9Q2hyb21lIiwidGVzdDp1bml0OmllIjoibnBtIHJ1biB0ZXN0OnVuaXQ6ZGVmYXVsdCAtLSAtLWJyb3dzZXJzPUlFIixwcmVwdWJsaXNoOiJucG0gcnVuIGNsZWFuICYmIG5wbSBydW4gYnVpbGQifSxkZXZEZXBlbmRlbmNpZXM6eyJAanVweXRlcmxhYi9zZXJ2aWNlcyI6Il4yLjAuMCB8fCBeMy4wLjAiLCJAdHlwZXMvZXhwZWN0LmpzIjoiXjAuMy4yOSIsIkB0eXBlcy9tYXRoamF4IjoiMC4wLjMxIiwiQHR5cGVzL21vY2hhIjoiXjIuMi40MSIsIkB0eXBlcy9ub2RlIjoiXjguMC4xIixjaGFpOiJeNC4wLjAiLCJjc3MtbG9hZGVyIjoiXjAuMjguNCIsImV4cGVjdC5qcyI6Il4wLjMuMSIsImZpbGUtbG9hZGVyIjoiXjAuMTEuMiIsImlzdGFuYnVsLWluc3RydW1lbnRlci1sb2FkZXIiOiJeMi4wLjAiLCJqc29uLWxvYWRlciI6Il4wLjUuNCIsa2FybWE6Il4xLjYuMCIsImthcm1hLWNocm9tZS1sYXVuY2hlciI6Il4yLjAuMCIsImthcm1hLWNvdmVyYWdlIjoiXjEuMC4wIiwia2FybWEtZmlyZWZveC1sYXVuY2hlciI6Il4xLjAuMSIsImthcm1hLWllLWxhdW5jaGVyIjoiXjEuMC4wIiwia2FybWEtbW9jaGEiOiJeMS4zLjAiLCJrYXJtYS1tb2NoYS1yZXBvcnRlciI6Il4yLjIuMyIsImthcm1hLXdlYnBhY2siOiJeMi4wLjMiLG1vY2hhOiJeMy4zLjAiLCJucG0tcnVuLWFsbCI6Il4xLjUuMSIsInBvc3Rjc3MtY2xpIjoiXjQuMS4wIiwicG9zdGNzcy1jc3NuZXh0IjoiXjMuMC4yIiwicG9zdGNzcy1pbXBvcnQiOiJeMTAuMC4wIiwicG9zdGNzcy1sb2FkZXIiOiJeMi4wLjYiLHJpbXJhZjoiXjIuNi4xIixzaW5vbjoiXjIuMS4wIiwic2lub24tY2hhaSI6Il4yLjExLjAiLCJzdHlsZS1sb2FkZXIiOiJeMC4xOC4xIix0c2xpbnQ6Il41LjguMCIsdHlwZXNjcmlwdDoifjIuOS4yIiwidXJsLWxvYWRlciI6Il4wLjUuOSIsd2VicGFjazoiXjMuNS41In0sZGVwZW5kZW5jaWVzOnsiQGp1cHl0ZXItd2lkZ2V0cy9iYXNlIjoiXjEuMi4yIiwiQHBob3NwaG9yL2FsZ29yaXRobSI6Il4xLjEuMCIsIkBwaG9zcGhvci9kb211dGlscyI6Il4xLjEuMCIsIkBwaG9zcGhvci9tZXNzYWdpbmciOiJeMS4yLjEiLCJAcGhvc3Bob3Ivc2lnbmFsaW5nIjoiXjEuMi4wIiwiQHBob3NwaG9yL3dpZGdldHMiOiJeMS4zLjAiLCJkMy1mb3JtYXQiOiJeMS4zLjAiLGpxdWVyeToiXjMuMS4xIiwianF1ZXJ5LXVpIjoiXjEuMTIuMSIsdW5kZXJzY29yZToiXjEuOC4zIn0sZ2l0SGVhZDoiN2ZkMTVjMDZmMGE2MTEzOGVhYzQ0YWMzNGQwMTQ4YmU2N2IzYWQ2ZiIsX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AanVweXRlci13aWRnZXRzL2NvbnRyb2xzLy0vY29udHJvbHMtMS40LjIudGd6IixfaW50ZWdyaXR5OiJzaGE1MTItd2o5Nk5UMW1ONCs3enpMMzRoTkhNTFlkYkRzSG0yVVh4a1FKcjdVb2xlUytVMnp6Z3ZSU2tCNmlqRDl0aTI1ZjlDWCtQblhUZU9RN2lSSEdQOERCaHc9PSIsX2Zyb206IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHNAMS40LjIifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9KG4oMzYxKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpO2UuT1VUUFVUX1dJREdFVF9WRVJTSU9OPSIxLjAuMCI7dmFyIGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIobix0KSxuLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJPdXRwdXRNb2RlbCIsX3ZpZXdfbmFtZToiT3V0cHV0VmlldyIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF92aWV3X21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTixfdmlld19tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTn0pfSxufShzLkRPTVdpZGdldE1vZGVsKTtlLk91dHB1dE1vZGVsPWE7dmFyIHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShzLkRPTVdpZGdldFZpZXcpO2UuT3V0cHV0Vmlldz11fV0pLmRlZmF1bHQpOw==", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "OK" + }, + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "ok": true, + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "status": 200, + "status_text": "OK" + } + }, + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "cell_type": "code", + "source": [ + "sn = SigmoidNeuron()\n", + "sn.fit(X, Y, 1, 0.25, True)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "98d31c008399492b9db8e2ed24b9d975", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "s8wnKQbqKI5D", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def plot_sn(X, Y, sn, ax):\n", + " X1 = np.linspace(-10, 10, 100)\n", + " X2 = np.linspace(-10, 10, 100)\n", + " XX1, XX2 = np.meshgrid(X1, X2)\n", + " YY = np.zeros(XX1.shape)\n", + " for i in range(X2.size):\n", + " for j in range(X1.size):\n", + " val = np.asarray([X1[j], X2[i]])\n", + " YY[i, j] = sn.sigmoid(sn.perceptron(val))\n", + " ax.contourf(XX1, XX2, YY, cmap=my_cmap, alpha=0.6)\n", + " ax.scatter(X[:,0], X[:,1],c=Y, cmap=my_cmap)\n", + " ax.plot()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "-1HOTL-IIBnW", + "colab_type": "code", + "outputId": "04c21875-2307-421d-d302-e0544097b7d0", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.min.js": { + "data": "IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dfShleHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIG4oaSl7aWYoZVtpXSlyZXR1cm4gZVtpXS5leHBvcnRzO3ZhciByPWVbaV09e2k6aSxsOiExLGV4cG9ydHM6e319O3JldHVybiB0W2ldLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLG4pLHIubD0hMCxyLmV4cG9ydHN9cmV0dXJuIG4ubT10LG4uYz1lLG4uZD1mdW5jdGlvbih0LGUsaSl7bi5vKHQsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2VudW1lcmFibGU6ITAsZ2V0Oml9KX0sbi5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbih0LGUpe2lmKDEmZSYmKHQ9bih0KSksOCZlKXJldHVybiB0O2lmKDQmZSYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIoaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJiJzdHJpbmciIT10eXBlb2YgdClmb3IodmFyIHIgaW4gdCluLmQoaSxyLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfS5iaW5kKG51bGwscikpO3JldHVybiBpfSxuLm49ZnVuY3Rpb24odCl7dmFyIGU9dCYmdC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gdH07cmV0dXJuIG4uZChlLCJhIixlKSxlfSxuLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LG4ucD0iIixuKG4ucz0xNDApfShbZnVuY3Rpb24odCxlKXsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT90LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTp0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNCkscj1pLkJ1ZmZlcjtmdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dfWZ1bmN0aW9uIHModCxlLG4pe3JldHVybiByKHQsZSxuKX1yLmZyb20mJnIuYWxsb2MmJnIuYWxsb2NVbnNhZmUmJnIuYWxsb2NVbnNhZmVTbG93P3QuZXhwb3J0cz1pOihvKGksZSksZS5CdWZmZXI9cyksbyhyLHMpLHMuZnJvbT1mdW5jdGlvbih0LGUsbil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIHIodCxlLG4pfSxzLmFsbG9jPWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpPXIodCk7cmV0dXJuIHZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiBuP2kuZmlsbChlLG4pOmkuZmlsbChlKTppLmZpbGwoMCksaX0scy5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByKHQpfSxzLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpLlNsb3dCdWZmZXIodCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMDIpKSxpKG4oMzAzKSksaShuKDMwNCkpLGkobigzMDUpKSxpKG4oMzA2KSksaShuKDE4KSksaShuKDMwNykpLGkobigzMDgpKSxpKG4oMzA5KSksaShuKDMxMCkpLGkobigzMTEpKSxpKG4oMzEyKSksaShuKDMxMykpLGkobigzMTQpKSxpKG4oMzE1KSksaShuKDMxNikpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gcih0LGUpe3Quc3VwZXJfPWU7dmFyIG49ZnVuY3Rpb24oKXt9O24ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gbyh0LGUsbil7aWYoby5pc0JOKHQpKXJldHVybiB0O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT10JiYoImxlIiE9PWUmJiJiZSIhPT1lfHwobj1lLGU9MTApLHRoaXMuX2luaXQodHx8MCxlfHwxMCxufHwiYmUiKSl9dmFyIHM7Im9iamVjdCI9PXR5cGVvZiB0P3QuZXhwb3J0cz1vOmUuQk49byxvLkJOPW8sby53b3JkU2l6ZT0yNjt0cnl7cz1uKDE4MikuQnVmZmVyfWNhdGNoKHQpe31mdW5jdGlvbiBhKHQsZSxuKXtmb3IodmFyIGk9MCxyPU1hdGgubWluKHQubGVuZ3RoLG4pLG89ZTtvPHI7bysrKXt2YXIgcz10LmNoYXJDb2RlQXQobyktNDg7aTw8PTQsaXw9cz49NDkmJnM8PTU0P3MtNDkrMTA6cz49MTcmJnM8PTIyP3MtMTcrMTA6MTUmc31yZXR1cm4gaX1mdW5jdGlvbiB1KHQsZSxuLGkpe2Zvcih2YXIgcj0wLG89TWF0aC5taW4odC5sZW5ndGgsbikscz1lO3M8bztzKyspe3ZhciBhPXQuY2hhckNvZGVBdChzKS00ODtyKj1pLHIrPWE+PTQ5P2EtNDkrMTA6YT49MTc/YS0xNysxMDphfXJldHVybiByfW8uaXNCTj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG98fG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuY29uc3RydWN0b3Iud29yZFNpemU9PT1vLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHQud29yZHMpfSxvLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKT4wP3Q6ZX0sby5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jbXAoZSk8MD90OmV9LG8ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodCxlLG4pO2lmKCJvYmplY3QiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHQsZSxuKTsiaGV4Ij09PWUmJihlPTE2KSxpKGU9PT0oMHxlKSYmZT49MiYmZTw9MzYpO3ZhciByPTA7Ii0iPT09KHQ9dC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJnIrKywxNj09PWU/dGhpcy5fcGFyc2VIZXgodCxyKTp0aGlzLl9wYXJzZUJhc2UodCxlLHIpLCItIj09PXRbMF0mJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKSwibGUiPT09biYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUsbil9LG8ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHQsZSxuKXt0PDAmJih0aGlzLm5lZ2F0aXZlPTEsdD0tdCksdDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdF0sdGhpcy5sZW5ndGg9MSk6dDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihpKHQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxuKX0sby5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih0LGUsbil7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKSx0Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh0Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT0wO3ZhciBvLHMsYT0wO2lmKCJiZSI9PT1uKWZvcihyPXQubGVuZ3RoLTEsbz0wO3I+PTA7ci09MylzPXRbcl18dFtyLTFdPDw4fHRbci0yXTw8MTYsdGhpcy53b3Jkc1tvXXw9czw8YSY2NzEwODg2Myx0aGlzLndvcmRzW28rMV09cz4+PjI2LWEmNjcxMDg4NjMsKGErPTI0KT49MjYmJihhLT0yNixvKyspO2Vsc2UgaWYoImxlIj09PW4pZm9yKHI9MCxvPTA7cjx0Lmxlbmd0aDtyKz0zKXM9dFtyXXx0W3IrMV08PDh8dFtyKzJdPDwxNix0aGlzLndvcmRzW29dfD1zPDxhJjY3MTA4ODYzLHRoaXMud29yZHNbbysxXT1zPj4+MjYtYSY2NzEwODg2MywoYSs9MjQpPj0yNiYmKGEtPTI2LG8rKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT0wO3ZhciBpLHIsbz0wO2ZvcihuPXQubGVuZ3RoLTYsaT0wO24+PWU7bi09NilyPWEodCxuLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMsKG8rPTI0KT49MjYmJihvLT0yNixpKyspO24rNiE9PWUmJihyPWEodCxlLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUsbil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIGk9MCxyPTE7cjw9NjcxMDg4NjM7cio9ZSlpKys7aS0tLHI9ci9lfDA7Zm9yKHZhciBvPXQubGVuZ3RoLW4scz1vJWksYT1NYXRoLm1pbihvLG8tcykrbixjPTAsaD1uO2g8YTtoKz1pKWM9dSh0LGgsaCtpLGUpLHRoaXMuaW11bG4ociksdGhpcy53b3Jkc1swXStjPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWM6dGhpcy5faWFkZG4oYyk7aWYoMCE9PXMpe3ZhciBsPTE7Zm9yKGM9dSh0LGgsdC5sZW5ndGgsZSksaD0wO2g8cztoKyspbCo9ZTt0aGlzLmltdWxuKGwpLHRoaXMud29yZHNbMF0rYzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1jOnRoaXMuX2lhZGRuKGMpfX0sby5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sby5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LG8ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sby5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LG8ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIGM9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0saD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxsPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIGQodCxlLG4pe24ubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlO3ZhciBpPXQubGVuZ3RoK2UubGVuZ3RofDA7bi5sZW5ndGg9aSxpPWktMXwwO3ZhciByPTB8dC53b3Jkc1swXSxvPTB8ZS53b3Jkc1swXSxzPXIqbyxhPTY3MTA4ODYzJnMsdT1zLzY3MTA4ODY0fDA7bi53b3Jkc1swXT1hO2Zvcih2YXIgYz0xO2M8aTtjKyspe2Zvcih2YXIgaD11Pj4+MjYsbD02NzEwODg2MyZ1LGQ9TWF0aC5taW4oYyxlLmxlbmd0aC0xKSxmPU1hdGgubWF4KDAsYy10Lmxlbmd0aCsxKTtmPD1kO2YrKyl7dmFyIHA9Yy1mfDA7aCs9KHM9KHI9MHx0LndvcmRzW3BdKSoobz0wfGUud29yZHNbZl0pK2wpLzY3MTA4ODY0fDAsbD02NzEwODg2MyZzfW4ud29yZHNbY109MHxsLHU9MHxofXJldHVybiAwIT09dT9uLndvcmRzW2NdPTB8dTpuLmxlbmd0aC0tLG4uc3RyaXAoKX1vLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKGU9MHxlfHwxLDE2PT09KHQ9dHx8MTApfHwiaGV4Ij09PXQpe249IiI7Zm9yKHZhciByPTAsbz0wLHM9MDtzPHRoaXMubGVuZ3RoO3MrKyl7dmFyIGE9dGhpcy53b3Jkc1tzXSx1PSgxNjc3NzIxNSYoYTw8cnxvKSkudG9TdHJpbmcoMTYpO249MCE9PShvPWE+Pj4yNC1yJjE2Nzc3MjE1KXx8cyE9PXRoaXMubGVuZ3RoLTE/Y1s2LXUubGVuZ3RoXSt1K246dStuLChyKz0yKT49MjYmJihyLT0yNixzLS0pfWZvcigwIT09byYmKG49by50b1N0cmluZygxNikrbik7bi5sZW5ndGglZSE9MDspbj0iMCIrbjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuPSItIituKSxufWlmKHQ9PT0oMHx0KSYmdD49MiYmdDw9MzYpe3ZhciBkPWhbdF0sZj1sW3RdO249IiI7dmFyIHA9dGhpcy5jbG9uZSgpO2ZvcihwLm5lZ2F0aXZlPTA7IXAuaXNaZXJvKCk7KXt2YXIgbT1wLm1vZG4oZikudG9TdHJpbmcodCk7bj0ocD1wLmlkaXZuKGYpKS5pc1plcm8oKT9tK246Y1tkLW0ubGVuZ3RoXSttK259Zm9yKHRoaXMuaXNaZXJvKCkmJihuPSIwIituKTtuLmxlbmd0aCVlIT0wOyluPSIwIituO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG49Ii0iK24pLG59aSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxvLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD90Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJmkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy10OnR9LG8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sby5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaSh2b2lkIDAhPT1zKSx0aGlzLnRvQXJyYXlMaWtlKHMsdCxlKX0sby5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHQsZSl9LG8ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmJ5dGVMZW5ndGgoKSxvPW58fE1hdGgubWF4KDEscik7aShyPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksaShvPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgcyxhLHU9ImxlIj09PWUsYz1uZXcgdChvKSxoPXRoaXMuY2xvbmUoKTtpZih1KXtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW2FdPXM7Zm9yKDthPG87YSsrKWNbYV09MH1lbHNle2ZvcihhPTA7YTxvLXI7YSsrKWNbYV09MDtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW28tYS0xXT1zfXJldHVybiBjfSxNYXRoLmNsejMyP28ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7cmV0dXJuIDMyLU1hdGguY2x6MzIodCl9Om8ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7dmFyIGU9dCxuPTA7cmV0dXJuIGU+PTQwOTYmJihuKz0xMyxlPj4+PTEzKSxlPj02NCYmKG4rPTcsZT4+Pj03KSxlPj04JiYobis9NCxlPj4+PTQpLGU+PTImJihuKz0yLGU+Pj49MiksbitlfSxvLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIDI2O3ZhciBlPXQsbj0wO3JldHVybiAwPT0oODE5MSZlKSYmKG4rPTEzLGU+Pj49MTMpLDA9PSgxMjcmZSkmJihuKz03LGU+Pj49NyksMD09KDE1JmUpJiYobis9NCxlPj4+PTQpLDA9PSgzJmUpJiYobis9MixlPj4+PTIpLDA9PSgxJmUpJiZuKyssbn0sby5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSxlPXRoaXMuX2NvdW50Qml0cyh0KTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK2V9LG8ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciBuPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbZV0pO2lmKHQrPW4sMjYhPT1uKWJyZWFrfXJldHVybiB0fSxvLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxvLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4odCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50ZXN0bih0LTEpP3RoaXMubm90bih0KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sby5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LG8ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LG8ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXx0LndvcmRzW2VdO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHQpfSxvLnByb3RvdHlwZS5vcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih0KTp0LmNsb25lKCkuaW9yKHRoaXMpfSxvLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHQpOnQuY2xvbmUoKS5pdW9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPXRoaXMud29yZHNbbl0mdC53b3Jkc1tuXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1YW5kKHQpfSxvLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxvLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQodCk6dC5jbG9uZSgpLml1YW5kKHRoaXMpfSxvLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhlPXRoaXMsbj10KTooZT10LG49dGhpcyk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT1lLndvcmRzW2ldXm4ud29yZHNbaV07aWYodGhpcyE9PWUpZm9yKDtpPGUubGVuZ3RoO2krKyl0aGlzLndvcmRzW2ldPWUud29yZHNbaV07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih0KX0sby5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0sby5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHQpOnQuY2xvbmUoKS5pdXhvcih0aGlzKX0sby5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPTB8TWF0aC5jZWlsKHQvMjYpLG49dCUyNjt0aGlzLl9leHBhbmQoZSksbj4wJiZlLS07Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLndvcmRzW3JdPTY3MTA4ODYzJn50aGlzLndvcmRzW3JdO3JldHVybiBuPjAmJih0aGlzLndvcmRzW3JdPX50aGlzLndvcmRzW3JdJjY3MTA4ODYzPj4yNi1uKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sby5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgbj10LzI2fDAscj10JTI2O3JldHVybiB0aGlzLl9leHBhbmQobisxKSx0aGlzLndvcmRzW25dPWU/dGhpcy53b3Jkc1tuXXwxPDxyOnRoaXMud29yZHNbbl0mfigxPDxyKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLGU9dGhpcy5pc3ViKHQpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIHQubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD50Lmxlbmd0aD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgcj0wLG89MDtvPGkubGVuZ3RoO28rKyllPSgwfG4ud29yZHNbb10pKygwfGkud29yZHNbb10pK3IsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlLHI9ZT4+PjI2O2Zvcig7MCE9PXImJm88bi5sZW5ndGg7bysrKWU9KDB8bi53b3Jkc1tvXSkrcix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmUscj1lPj4+MjY7aWYodGhpcy5sZW5ndGg9bi5sZW5ndGgsMCE9PXIpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09cix0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobiE9PXRoaXMpZm9yKDtvPG4ubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPW4ud29yZHNbb107cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gMCE9PXQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0Lm5lZ2F0aXZlPTAsZT10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLGUpOjA9PT10Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGU9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGUpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxvLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lm5lZ2F0aXZlKXt0Lm5lZ2F0aXZlPTA7dmFyIGU9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbixpLHI9dGhpcy5jbXAodCk7aWYoMD09PXIpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3I+MD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgbz0wLHM9MDtzPGkubGVuZ3RoO3MrKylvPShlPSgwfG4ud29yZHNbc10pLSgwfGkud29yZHNbc10pK28pPj4yNix0aGlzLndvcmRzW3NdPTY3MTA4ODYzJmU7Zm9yKDswIT09byYmczxuLmxlbmd0aDtzKyspbz0oZT0oMHxuLndvcmRzW3NdKStvKT4+MjYsdGhpcy53b3Jkc1tzXT02NzEwODg2MyZlO2lmKDA9PT1vJiZzPG4ubGVuZ3RoJiZuIT09dGhpcylmb3IoO3M8bi5sZW5ndGg7cysrKXRoaXMud29yZHNbc109bi53b3Jkc1tzXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgscyksbiE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0KX07dmFyIGY9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzPXQud29yZHMsYT1lLndvcmRzLHU9bi53b3JkcyxjPTAsaD0wfHNbMF0sbD04MTkxJmgsZD1oPj4+MTMsZj0wfHNbMV0scD04MTkxJmYsbT1mPj4+MTMsZz0wfHNbMl0sdj04MTkxJmcsYj1nPj4+MTMseT0wfHNbM10sXz04MTkxJnksdz15Pj4+MTMseD0wfHNbNF0sTT04MTkxJngsUz14Pj4+MTMsRT0wfHNbNV0sQT04MTkxJkUsQz1FPj4+MTMsaz0wfHNbNl0sTz04MTkxJmssUD1rPj4+MTMsVD0wfHNbN10saj04MTkxJlQsST1UPj4+MTMsTD0wfHNbOF0sQj04MTkxJkwsRD1MPj4+MTMsUj0wfHNbOV0sej04MTkxJlIsTj1SPj4+MTMsVz0wfGFbMF0scT04MTkxJlcsSD1XPj4+MTMsRj0wfGFbMV0sVj04MTkxJkYsVT1GPj4+MTMsSz0wfGFbMl0sWT04MTkxJkssWD1LPj4+MTMsJD0wfGFbM10sRz04MTkxJiQsSj0kPj4+MTMsWj0wfGFbNF0sUT04MTkxJlosdHQ9Wj4+PjEzLGV0PTB8YVs1XSxudD04MTkxJmV0LGl0PWV0Pj4+MTMscnQ9MHxhWzZdLG90PTgxOTEmcnQsc3Q9cnQ+Pj4xMyxhdD0wfGFbN10sdXQ9ODE5MSZhdCxjdD1hdD4+PjEzLGh0PTB8YVs4XSxsdD04MTkxJmh0LGR0PWh0Pj4+MTMsZnQ9MHxhWzldLHB0PTgxOTEmZnQsbXQ9ZnQ+Pj4xMztuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD0xOTt2YXIgZ3Q9KGMrKGk9TWF0aC5pbXVsKGwscSkpfDApKygoODE5MSYocj0ocj1NYXRoLmltdWwobCxIKSkrTWF0aC5pbXVsKGQscSl8MCkpPDwxMyl8MDtjPSgobz1NYXRoLmltdWwoZCxIKSkrKHI+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHAscSkscj0ocj1NYXRoLmltdWwocCxIKSkrTWF0aC5pbXVsKG0scSl8MCxvPU1hdGguaW11bChtLEgpO3ZhciB2dD0oYysoaT1pK01hdGguaW11bChsLFYpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLFUpfDApK01hdGguaW11bChkLFYpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxVKXwwKSsocj4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsaT1NYXRoLmltdWwodixxKSxyPShyPU1hdGguaW11bCh2LEgpKStNYXRoLmltdWwoYixxKXwwLG89TWF0aC5pbXVsKGIsSCksaT1pK01hdGguaW11bChwLFYpfDAscj0ocj1yK01hdGguaW11bChwLFUpfDApK01hdGguaW11bChtLFYpfDAsbz1vK01hdGguaW11bChtLFUpfDA7dmFyIGJ0PShjKyhpPWkrTWF0aC5pbXVsKGwsWSl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsWCl8MCkrTWF0aC5pbXVsKGQsWSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChkLFgpfDApKyhyPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxpPU1hdGguaW11bChfLHEpLHI9KHI9TWF0aC5pbXVsKF8sSCkpK01hdGguaW11bCh3LHEpfDAsbz1NYXRoLmltdWwodyxIKSxpPWkrTWF0aC5pbXVsKHYsVil8MCxyPShyPXIrTWF0aC5pbXVsKHYsVSl8MCkrTWF0aC5pbXVsKGIsVil8MCxvPW8rTWF0aC5pbXVsKGIsVSl8MCxpPWkrTWF0aC5pbXVsKHAsWSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsWCl8MCkrTWF0aC5pbXVsKG0sWSl8MCxvPW8rTWF0aC5pbXVsKG0sWCl8MDt2YXIgeXQ9KGMrKGk9aStNYXRoLmltdWwobCxHKXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxKKXwwKStNYXRoLmltdWwoZCxHKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsSil8MCkrKHI+Pj4xMyl8MCkrKHl0Pj4+MjYpfDAseXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE0scSkscj0ocj1NYXRoLmltdWwoTSxIKSkrTWF0aC5pbXVsKFMscSl8MCxvPU1hdGguaW11bChTLEgpLGk9aStNYXRoLmltdWwoXyxWKXwwLHI9KHI9citNYXRoLmltdWwoXyxVKXwwKStNYXRoLmltdWwodyxWKXwwLG89bytNYXRoLmltdWwodyxVKXwwLGk9aStNYXRoLmltdWwodixZKXwwLHI9KHI9citNYXRoLmltdWwodixYKXwwKStNYXRoLmltdWwoYixZKXwwLG89bytNYXRoLmltdWwoYixYKXwwLGk9aStNYXRoLmltdWwocCxHKXwwLHI9KHI9citNYXRoLmltdWwocCxKKXwwKStNYXRoLmltdWwobSxHKXwwLG89bytNYXRoLmltdWwobSxKKXwwO3ZhciBfdD0oYysoaT1pK01hdGguaW11bChsLFEpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLHR0KXwwKStNYXRoLmltdWwoZCxRKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsdHQpfDApKyhyPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxpPU1hdGguaW11bChBLHEpLHI9KHI9TWF0aC5pbXVsKEEsSCkpK01hdGguaW11bChDLHEpfDAsbz1NYXRoLmltdWwoQyxIKSxpPWkrTWF0aC5pbXVsKE0sVil8MCxyPShyPXIrTWF0aC5pbXVsKE0sVSl8MCkrTWF0aC5pbXVsKFMsVil8MCxvPW8rTWF0aC5pbXVsKFMsVSl8MCxpPWkrTWF0aC5pbXVsKF8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKF8sWCl8MCkrTWF0aC5pbXVsKHcsWSl8MCxvPW8rTWF0aC5pbXVsKHcsWCl8MCxpPWkrTWF0aC5pbXVsKHYsRyl8MCxyPShyPXIrTWF0aC5pbXVsKHYsSil8MCkrTWF0aC5pbXVsKGIsRyl8MCxvPW8rTWF0aC5pbXVsKGIsSil8MCxpPWkrTWF0aC5pbXVsKHAsUSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsdHQpfDApK01hdGguaW11bChtLFEpfDAsbz1vK01hdGguaW11bChtLHR0KXwwO3ZhciB3dD0oYysoaT1pK01hdGguaW11bChsLG50KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxpdCl8MCkrTWF0aC5pbXVsKGQsbnQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxpdCl8MCkrKHI+Pj4xMyl8MCkrKHd0Pj4+MjYpfDAsd3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE8scSkscj0ocj1NYXRoLmltdWwoTyxIKSkrTWF0aC5pbXVsKFAscSl8MCxvPU1hdGguaW11bChQLEgpLGk9aStNYXRoLmltdWwoQSxWKXwwLHI9KHI9citNYXRoLmltdWwoQSxVKXwwKStNYXRoLmltdWwoQyxWKXwwLG89bytNYXRoLmltdWwoQyxVKXwwLGk9aStNYXRoLmltdWwoTSxZKXwwLHI9KHI9citNYXRoLmltdWwoTSxYKXwwKStNYXRoLmltdWwoUyxZKXwwLG89bytNYXRoLmltdWwoUyxYKXwwLGk9aStNYXRoLmltdWwoXyxHKXwwLHI9KHI9citNYXRoLmltdWwoXyxKKXwwKStNYXRoLmltdWwodyxHKXwwLG89bytNYXRoLmltdWwodyxKKXwwLGk9aStNYXRoLmltdWwodixRKXwwLHI9KHI9citNYXRoLmltdWwodix0dCl8MCkrTWF0aC5pbXVsKGIsUSl8MCxvPW8rTWF0aC5pbXVsKGIsdHQpfDAsaT1pK01hdGguaW11bChwLG50KXwwLHI9KHI9citNYXRoLmltdWwocCxpdCl8MCkrTWF0aC5pbXVsKG0sbnQpfDAsbz1vK01hdGguaW11bChtLGl0KXwwO3ZhciB4dD0oYysoaT1pK01hdGguaW11bChsLG90KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxzdCl8MCkrTWF0aC5pbXVsKGQsb3QpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxzdCl8MCkrKHI+Pj4xMyl8MCkrKHh0Pj4+MjYpfDAseHQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKGoscSkscj0ocj1NYXRoLmltdWwoaixIKSkrTWF0aC5pbXVsKEkscSl8MCxvPU1hdGguaW11bChJLEgpLGk9aStNYXRoLmltdWwoTyxWKXwwLHI9KHI9citNYXRoLmltdWwoTyxVKXwwKStNYXRoLmltdWwoUCxWKXwwLG89bytNYXRoLmltdWwoUCxVKXwwLGk9aStNYXRoLmltdWwoQSxZKXwwLHI9KHI9citNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQyxZKXwwLG89bytNYXRoLmltdWwoQyxYKXwwLGk9aStNYXRoLmltdWwoTSxHKXwwLHI9KHI9citNYXRoLmltdWwoTSxKKXwwKStNYXRoLmltdWwoUyxHKXwwLG89bytNYXRoLmltdWwoUyxKKXwwLGk9aStNYXRoLmltdWwoXyxRKXwwLHI9KHI9citNYXRoLmltdWwoXyx0dCl8MCkrTWF0aC5pbXVsKHcsUSl8MCxvPW8rTWF0aC5pbXVsKHcsdHQpfDAsaT1pK01hdGguaW11bCh2LG50KXwwLHI9KHI9citNYXRoLmltdWwodixpdCl8MCkrTWF0aC5pbXVsKGIsbnQpfDAsbz1vK01hdGguaW11bChiLGl0KXwwLGk9aStNYXRoLmltdWwocCxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKHAsc3QpfDApK01hdGguaW11bChtLG90KXwwLG89bytNYXRoLmltdWwobSxzdCl8MDt2YXIgTXQ9KGMrKGk9aStNYXRoLmltdWwobCx1dCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsY3QpfDApK01hdGguaW11bChkLHV0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsY3QpfDApKyhyPj4+MTMpfDApKyhNdD4+PjI2KXwwLE10Jj02NzEwODg2MyxpPU1hdGguaW11bChCLHEpLHI9KHI9TWF0aC5pbXVsKEIsSCkpK01hdGguaW11bChELHEpfDAsbz1NYXRoLmltdWwoRCxIKSxpPWkrTWF0aC5pbXVsKGosVil8MCxyPShyPXIrTWF0aC5pbXVsKGosVSl8MCkrTWF0aC5pbXVsKEksVil8MCxvPW8rTWF0aC5pbXVsKEksVSl8MCxpPWkrTWF0aC5pbXVsKE8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKE8sWCl8MCkrTWF0aC5pbXVsKFAsWSl8MCxvPW8rTWF0aC5pbXVsKFAsWCl8MCxpPWkrTWF0aC5pbXVsKEEsRyl8MCxyPShyPXIrTWF0aC5pbXVsKEEsSil8MCkrTWF0aC5pbXVsKEMsRyl8MCxvPW8rTWF0aC5pbXVsKEMsSil8MCxpPWkrTWF0aC5pbXVsKE0sUSl8MCxyPShyPXIrTWF0aC5pbXVsKE0sdHQpfDApK01hdGguaW11bChTLFEpfDAsbz1vK01hdGguaW11bChTLHR0KXwwLGk9aStNYXRoLmltdWwoXyxudCl8MCxyPShyPXIrTWF0aC5pbXVsKF8saXQpfDApK01hdGguaW11bCh3LG50KXwwLG89bytNYXRoLmltdWwodyxpdCl8MCxpPWkrTWF0aC5pbXVsKHYsb3QpfDAscj0ocj1yK01hdGguaW11bCh2LHN0KXwwKStNYXRoLmltdWwoYixvdCl8MCxvPW8rTWF0aC5pbXVsKGIsc3QpfDAsaT1pK01hdGguaW11bChwLHV0KXwwLHI9KHI9citNYXRoLmltdWwocCxjdCl8MCkrTWF0aC5pbXVsKG0sdXQpfDAsbz1vK01hdGguaW11bChtLGN0KXwwO3ZhciBTdD0oYysoaT1pK01hdGguaW11bChsLGx0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxkdCl8MCkrTWF0aC5pbXVsKGQsbHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxkdCl8MCkrKHI+Pj4xMyl8MCkrKFN0Pj4+MjYpfDAsU3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHoscSkscj0ocj1NYXRoLmltdWwoeixIKSkrTWF0aC5pbXVsKE4scSl8MCxvPU1hdGguaW11bChOLEgpLGk9aStNYXRoLmltdWwoQixWKXwwLHI9KHI9citNYXRoLmltdWwoQixVKXwwKStNYXRoLmltdWwoRCxWKXwwLG89bytNYXRoLmltdWwoRCxVKXwwLGk9aStNYXRoLmltdWwoaixZKXwwLHI9KHI9citNYXRoLmltdWwoaixYKXwwKStNYXRoLmltdWwoSSxZKXwwLG89bytNYXRoLmltdWwoSSxYKXwwLGk9aStNYXRoLmltdWwoTyxHKXwwLHI9KHI9citNYXRoLmltdWwoTyxKKXwwKStNYXRoLmltdWwoUCxHKXwwLG89bytNYXRoLmltdWwoUCxKKXwwLGk9aStNYXRoLmltdWwoQSxRKXwwLHI9KHI9citNYXRoLmltdWwoQSx0dCl8MCkrTWF0aC5pbXVsKEMsUSl8MCxvPW8rTWF0aC5pbXVsKEMsdHQpfDAsaT1pK01hdGguaW11bChNLG50KXwwLHI9KHI9citNYXRoLmltdWwoTSxpdCl8MCkrTWF0aC5pbXVsKFMsbnQpfDAsbz1vK01hdGguaW11bChTLGl0KXwwLGk9aStNYXRoLmltdWwoXyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKF8sc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxpPWkrTWF0aC5pbXVsKHYsdXQpfDAscj0ocj1yK01hdGguaW11bCh2LGN0KXwwKStNYXRoLmltdWwoYix1dCl8MCxvPW8rTWF0aC5pbXVsKGIsY3QpfDAsaT1pK01hdGguaW11bChwLGx0KXwwLHI9KHI9citNYXRoLmltdWwocCxkdCl8MCkrTWF0aC5pbXVsKG0sbHQpfDAsbz1vK01hdGguaW11bChtLGR0KXwwO3ZhciBFdD0oYysoaT1pK01hdGguaW11bChsLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxtdCl8MCkrTWF0aC5pbXVsKGQscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxtdCl8MCkrKHI+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosVikscj0ocj1NYXRoLmltdWwoeixVKSkrTWF0aC5pbXVsKE4sVil8MCxvPU1hdGguaW11bChOLFUpLGk9aStNYXRoLmltdWwoQixZKXwwLHI9KHI9citNYXRoLmltdWwoQixYKXwwKStNYXRoLmltdWwoRCxZKXwwLG89bytNYXRoLmltdWwoRCxYKXwwLGk9aStNYXRoLmltdWwoaixHKXwwLHI9KHI9citNYXRoLmltdWwoaixKKXwwKStNYXRoLmltdWwoSSxHKXwwLG89bytNYXRoLmltdWwoSSxKKXwwLGk9aStNYXRoLmltdWwoTyxRKXwwLHI9KHI9citNYXRoLmltdWwoTyx0dCl8MCkrTWF0aC5pbXVsKFAsUSl8MCxvPW8rTWF0aC5pbXVsKFAsdHQpfDAsaT1pK01hdGguaW11bChBLG50KXwwLHI9KHI9citNYXRoLmltdWwoQSxpdCl8MCkrTWF0aC5pbXVsKEMsbnQpfDAsbz1vK01hdGguaW11bChDLGl0KXwwLGk9aStNYXRoLmltdWwoTSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE0sc3QpfDApK01hdGguaW11bChTLG90KXwwLG89bytNYXRoLmltdWwoUyxzdCl8MCxpPWkrTWF0aC5pbXVsKF8sdXQpfDAscj0ocj1yK01hdGguaW11bChfLGN0KXwwKStNYXRoLmltdWwodyx1dCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDAsaT1pK01hdGguaW11bCh2LGx0KXwwLHI9KHI9citNYXRoLmltdWwodixkdCl8MCkrTWF0aC5pbXVsKGIsbHQpfDAsbz1vK01hdGguaW11bChiLGR0KXwwO3ZhciBBdD0oYysoaT1pK01hdGguaW11bChwLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwocCxtdCl8MCkrTWF0aC5pbXVsKG0scHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwobSxtdCl8MCkrKHI+Pj4xMyl8MCkrKEF0Pj4+MjYpfDAsQXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosWSkscj0ocj1NYXRoLmltdWwoeixYKSkrTWF0aC5pbXVsKE4sWSl8MCxvPU1hdGguaW11bChOLFgpLGk9aStNYXRoLmltdWwoQixHKXwwLHI9KHI9citNYXRoLmltdWwoQixKKXwwKStNYXRoLmltdWwoRCxHKXwwLG89bytNYXRoLmltdWwoRCxKKXwwLGk9aStNYXRoLmltdWwoaixRKXwwLHI9KHI9citNYXRoLmltdWwoaix0dCl8MCkrTWF0aC5pbXVsKEksUSl8MCxvPW8rTWF0aC5pbXVsKEksdHQpfDAsaT1pK01hdGguaW11bChPLG50KXwwLHI9KHI9citNYXRoLmltdWwoTyxpdCl8MCkrTWF0aC5pbXVsKFAsbnQpfDAsbz1vK01hdGguaW11bChQLGl0KXwwLGk9aStNYXRoLmltdWwoQSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKEEsc3QpfDApK01hdGguaW11bChDLG90KXwwLG89bytNYXRoLmltdWwoQyxzdCl8MCxpPWkrTWF0aC5pbXVsKE0sdXQpfDAscj0ocj1yK01hdGguaW11bChNLGN0KXwwKStNYXRoLmltdWwoUyx1dCl8MCxvPW8rTWF0aC5pbXVsKFMsY3QpfDAsaT1pK01hdGguaW11bChfLGx0KXwwLHI9KHI9citNYXRoLmltdWwoXyxkdCl8MCkrTWF0aC5pbXVsKHcsbHQpfDAsbz1vK01hdGguaW11bCh3LGR0KXwwO3ZhciBDdD0oYysoaT1pK01hdGguaW11bCh2LHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwodixtdCl8MCkrTWF0aC5pbXVsKGIscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoYixtdCl8MCkrKHI+Pj4xMyl8MCkrKEN0Pj4+MjYpfDAsQ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosRykscj0ocj1NYXRoLmltdWwoeixKKSkrTWF0aC5pbXVsKE4sRyl8MCxvPU1hdGguaW11bChOLEopLGk9aStNYXRoLmltdWwoQixRKXwwLHI9KHI9citNYXRoLmltdWwoQix0dCl8MCkrTWF0aC5pbXVsKEQsUSl8MCxvPW8rTWF0aC5pbXVsKEQsdHQpfDAsaT1pK01hdGguaW11bChqLG50KXwwLHI9KHI9citNYXRoLmltdWwoaixpdCl8MCkrTWF0aC5pbXVsKEksbnQpfDAsbz1vK01hdGguaW11bChJLGl0KXwwLGk9aStNYXRoLmltdWwoTyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sc3QpfDApK01hdGguaW11bChQLG90KXwwLG89bytNYXRoLmltdWwoUCxzdCl8MCxpPWkrTWF0aC5pbXVsKEEsdXQpfDAscj0ocj1yK01hdGguaW11bChBLGN0KXwwKStNYXRoLmltdWwoQyx1dCl8MCxvPW8rTWF0aC5pbXVsKEMsY3QpfDAsaT1pK01hdGguaW11bChNLGx0KXwwLHI9KHI9citNYXRoLmltdWwoTSxkdCl8MCkrTWF0aC5pbXVsKFMsbHQpfDAsbz1vK01hdGguaW11bChTLGR0KXwwO3ZhciBrdD0oYysoaT1pK01hdGguaW11bChfLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoXyxtdCl8MCkrTWF0aC5pbXVsKHcscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwodyxtdCl8MCkrKHI+Pj4xMyl8MCkrKGt0Pj4+MjYpfDAsa3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosUSkscj0ocj1NYXRoLmltdWwoeix0dCkpK01hdGguaW11bChOLFEpfDAsbz1NYXRoLmltdWwoTix0dCksaT1pK01hdGguaW11bChCLG50KXwwLHI9KHI9citNYXRoLmltdWwoQixpdCl8MCkrTWF0aC5pbXVsKEQsbnQpfDAsbz1vK01hdGguaW11bChELGl0KXwwLGk9aStNYXRoLmltdWwoaixvdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosc3QpfDApK01hdGguaW11bChJLG90KXwwLG89bytNYXRoLmltdWwoSSxzdCl8MCxpPWkrTWF0aC5pbXVsKE8sdXQpfDAscj0ocj1yK01hdGguaW11bChPLGN0KXwwKStNYXRoLmltdWwoUCx1dCl8MCxvPW8rTWF0aC5pbXVsKFAsY3QpfDAsaT1pK01hdGguaW11bChBLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQSxkdCl8MCkrTWF0aC5pbXVsKEMsbHQpfDAsbz1vK01hdGguaW11bChDLGR0KXwwO3ZhciBPdD0oYysoaT1pK01hdGguaW11bChNLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoTSxtdCl8MCkrTWF0aC5pbXVsKFMscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoUyxtdCl8MCkrKHI+Pj4xMyl8MCkrKE90Pj4+MjYpfDAsT3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbnQpLHI9KHI9TWF0aC5pbXVsKHosaXQpKStNYXRoLmltdWwoTixudCl8MCxvPU1hdGguaW11bChOLGl0KSxpPWkrTWF0aC5pbXVsKEIsb3QpfDAscj0ocj1yK01hdGguaW11bChCLHN0KXwwKStNYXRoLmltdWwoRCxvdCl8MCxvPW8rTWF0aC5pbXVsKEQsc3QpfDAsaT1pK01hdGguaW11bChqLHV0KXwwLHI9KHI9citNYXRoLmltdWwoaixjdCl8MCkrTWF0aC5pbXVsKEksdXQpfDAsbz1vK01hdGguaW11bChJLGN0KXwwLGk9aStNYXRoLmltdWwoTyxsdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sZHQpfDApK01hdGguaW11bChQLGx0KXwwLG89bytNYXRoLmltdWwoUCxkdCl8MDt2YXIgUHQ9KGMrKGk9aStNYXRoLmltdWwoQSxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEEsbXQpfDApK01hdGguaW11bChDLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEMsbXQpfDApKyhyPj4+MTMpfDApKyhQdD4+PjI2KXwwLFB0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LG90KSxyPShyPU1hdGguaW11bCh6LHN0KSkrTWF0aC5pbXVsKE4sb3QpfDAsbz1NYXRoLmltdWwoTixzdCksaT1pK01hdGguaW11bChCLHV0KXwwLHI9KHI9citNYXRoLmltdWwoQixjdCl8MCkrTWF0aC5pbXVsKEQsdXQpfDAsbz1vK01hdGguaW11bChELGN0KXwwLGk9aStNYXRoLmltdWwoaixsdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosZHQpfDApK01hdGguaW11bChJLGx0KXwwLG89bytNYXRoLmltdWwoSSxkdCl8MDt2YXIgVHQ9KGMrKGk9aStNYXRoLmltdWwoTyxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKE8sbXQpfDApK01hdGguaW11bChQLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFAsbXQpfDApKyhyPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LHV0KSxyPShyPU1hdGguaW11bCh6LGN0KSkrTWF0aC5pbXVsKE4sdXQpfDAsbz1NYXRoLmltdWwoTixjdCksaT1pK01hdGguaW11bChCLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQixkdCl8MCkrTWF0aC5pbXVsKEQsbHQpfDAsbz1vK01hdGguaW11bChELGR0KXwwO3ZhciBqdD0oYysoaT1pK01hdGguaW11bChqLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoaixtdCl8MCkrTWF0aC5pbXVsKEkscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoSSxtdCl8MCkrKHI+Pj4xMyl8MCkrKGp0Pj4+MjYpfDAsanQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbHQpLHI9KHI9TWF0aC5pbXVsKHosZHQpKStNYXRoLmltdWwoTixsdCl8MCxvPU1hdGguaW11bChOLGR0KTt2YXIgSXQ9KGMrKGk9aStNYXRoLmltdWwoQixwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEIsbXQpfDApK01hdGguaW11bChELHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEQsbXQpfDApKyhyPj4+MTMpfDApKyhJdD4+PjI2KXwwLEl0Jj02NzEwODg2Mzt2YXIgTHQ9KGMrKGk9TWF0aC5pbXVsKHoscHQpKXwwKSsoKDgxOTEmKHI9KHI9TWF0aC5pbXVsKHosbXQpKStNYXRoLmltdWwoTixwdCl8MCkpPDwxMyl8MDtyZXR1cm4gYz0oKG89TWF0aC5pbXVsKE4sbXQpKSsocj4+PjEzKXwwKSsoTHQ+Pj4yNil8MCxMdCY9NjcxMDg4NjMsdVswXT1ndCx1WzFdPXZ0LHVbMl09YnQsdVszXT15dCx1WzRdPV90LHVbNV09d3QsdVs2XT14dCx1WzddPU10LHVbOF09U3QsdVs5XT1FdCx1WzEwXT1BdCx1WzExXT1DdCx1WzEyXT1rdCx1WzEzXT1PdCx1WzE0XT1QdCx1WzE1XT1UdCx1WzE2XT1qdCx1WzE3XT1JdCx1WzE4XT1MdCwwIT09YyYmKHVbMTldPWMsbi5sZW5ndGgrKyksbn07ZnVuY3Rpb24gcCh0LGUsbil7cmV0dXJuKG5ldyBtKS5tdWxwKHQsZSxuKX1mdW5jdGlvbiBtKHQsZSl7dGhpcy54PXQsdGhpcy55PWV9TWF0aC5pbXVsfHwoZj1kKSxvLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubGVuZ3RoK3QubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXQubGVuZ3RoP2YodGhpcyx0LGUpOm48NjM/ZCh0aGlzLHQsZSk6bjwxMDI0P2Z1bmN0aW9uKHQsZSxuKXtuLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aDtmb3IodmFyIGk9MCxyPTAsbz0wO288bi5sZW5ndGgtMTtvKyspe3ZhciBzPXI7cj0wO2Zvcih2YXIgYT02NzEwODg2MyZpLHU9TWF0aC5taW4obyxlLmxlbmd0aC0xKSxjPU1hdGgubWF4KDAsby10Lmxlbmd0aCsxKTtjPD11O2MrKyl7dmFyIGg9by1jLGw9KDB8dC53b3Jkc1toXSkqKDB8ZS53b3Jkc1tjXSksZD02NzEwODg2MyZsO2E9NjcxMDg4NjMmKGQ9ZCthfDApLHIrPShzPShzPXMrKGwvNjcxMDg4NjR8MCl8MCkrKGQ+Pj4yNil8MCk+Pj4yNixzJj02NzEwODg2M31uLndvcmRzW29dPWEsaT1zLHM9cn1yZXR1cm4gMCE9PWk/bi53b3Jkc1tvXT1pOm4ubGVuZ3RoLS0sbi5zdHJpcCgpfSh0aGlzLHQsZSk6cCh0aGlzLHQsZSl9LG0ucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxuPW8ucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxpPTA7aTx0O2krKyllW2ldPXRoaXMucmV2QmluKGksbix0KTtyZXR1cm4gZX0sbS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHQsZSxuKXtpZigwPT09dHx8dD09PW4tMSlyZXR1cm4gdDtmb3IodmFyIGk9MCxyPTA7cjxlO3IrKylpfD0oMSZ0KTw8ZS1yLTEsdD4+PTE7cmV0dXJuIGl9LG0ucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxlLG4saSxyLG8pe2Zvcih2YXIgcz0wO3M8bztzKyspaVtzXT1lW3Rbc11dLHJbc109blt0W3NdXX0sbS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLnBlcm11dGUobyx0LGUsbixpLHIpO2Zvcih2YXIgcz0xO3M8cjtzPDw9MSlmb3IodmFyIGE9czw8MSx1PU1hdGguY29zKDIqTWF0aC5QSS9hKSxjPU1hdGguc2luKDIqTWF0aC5QSS9hKSxoPTA7aDxyO2grPWEpZm9yKHZhciBsPXUsZD1jLGY9MDtmPHM7ZisrKXt2YXIgcD1uW2grZl0sbT1pW2grZl0sZz1uW2grZitzXSx2PWlbaCtmK3NdLGI9bCpnLWQqdjt2PWwqditkKmcsZz1iLG5baCtmXT1wK2csaVtoK2ZdPW0rdixuW2grZitzXT1wLWcsaVtoK2Yrc109bS12LGYhPT1hJiYoYj11KmwtYypkLGQ9dSpkK2MqbCxsPWIpfX0sbS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24odCxlKXt2YXIgbj0xfE1hdGgubWF4KGUsdCksaT0xJm4scj0wO2ZvcihuPW4vMnwwO247bj4+Pj0xKXIrKztyZXR1cm4gMTw8cisxK2l9LG0ucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUsbil7aWYoIShuPD0xKSlmb3IodmFyIGk9MDtpPG4vMjtpKyspe3ZhciByPXRbaV07dFtpXT10W24taS0xXSx0W24taS0xXT1yLHI9ZVtpXSxlW2ldPS1lW24taS0xXSxlW24taS0xXT0tcn19LG0ucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9MDtpPGUvMjtpKyspe3ZhciByPTgxOTIqTWF0aC5yb3VuZCh0WzIqaSsxXS9lKStNYXRoLnJvdW5kKHRbMippXS9lKStuO3RbaV09NjcxMDg4NjMmcixuPXI8NjcxMDg4NjQ/MDpyLzY3MTA4ODY0fDB9cmV0dXJuIHR9LG0ucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24odCxlLG4scil7Zm9yKHZhciBvPTAscz0wO3M8ZTtzKyspbys9MHx0W3NdLG5bMipzXT04MTkxJm8sbz4+Pj0xMyxuWzIqcysxXT04MTkxJm8sbz4+Pj0xMztmb3Iocz0yKmU7czxyOysrcyluW3NdPTA7aSgwPT09byksaSgwPT0oLTgxOTImbykpfSxtLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT0wO3JldHVybiBlfSxtLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsZS5sZW5ndGgpLHI9dGhpcy5tYWtlUkJUKGkpLG89dGhpcy5zdHViKGkpLHM9bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpLGM9bmV3IEFycmF5KGkpLGg9bmV3IEFycmF5KGkpLGw9bmV3IEFycmF5KGkpLGQ9bi53b3JkcztkLmxlbmd0aD1pLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHMsaSksdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYyxpKSx0aGlzLnRyYW5zZm9ybShzLG8sYSx1LGksciksdGhpcy50cmFuc2Zvcm0oYyxvLGgsbCxpLHIpO2Zvcih2YXIgZj0wO2Y8aTtmKyspe3ZhciBwPWFbZl0qaFtmXS11W2ZdKmxbZl07dVtmXT1hW2ZdKmxbZl0rdVtmXSpoW2ZdLGFbZl09cH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoYSx1LGkpLHRoaXMudHJhbnNmb3JtKGEsdSxkLG8saSxyKSx0aGlzLmNvbmp1Z2F0ZShkLG8saSksdGhpcy5ub3JtYWxpemUxM2IoZCxpKSxuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aCxuLnN0cmlwKCl9LG8ucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0sby5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHAodGhpcyx0LGUpfSxvLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odCx0aGlzKX0sby5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCk7Zm9yKHZhciBlPTAsbj0wO248dGhpcy5sZW5ndGg7bisrKXt2YXIgcj0oMHx0aGlzLndvcmRzW25dKSp0LG89KDY3MTA4ODYzJnIpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9ci82NzEwODg2NHwwLGUrPW8+Pj4yNix0aGlzLndvcmRzW25dPTY3MTA4ODYzJm99cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tuXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0LmJpdExlbmd0aCgpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPW4vMjZ8MCxyPW4lMjY7ZVtuXT0odC53b3Jkc1tpXSYxPDxyKT4+PnJ9cmV0dXJuIGV9KHQpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciBuPXRoaXMsaT0wO2k8ZS5sZW5ndGgmJjA9PT1lW2ldO2krKyxuPW4uc3FyKCkpO2lmKCsraTxlLmxlbmd0aClmb3IodmFyIHI9bi5zcXIoKTtpPGUubGVuZ3RoO2krKyxyPXIuc3FyKCkpMCE9PWVbaV0mJihuPW4ubXVsKHIpKTtyZXR1cm4gbn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHQpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZSxuPXQlMjYscj0odC1uKS8yNixvPTY3MTA4ODYzPj4+MjYtbjw8MjYtbjtpZigwIT09bil7dmFyIHM9MDtmb3IoZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgYT10aGlzLndvcmRzW2VdJm8sdT0oMHx0aGlzLndvcmRzW2VdKS1hPDxuO3RoaXMud29yZHNbZV09dXxzLHM9YT4+PjI2LW59cyYmKHRoaXMud29yZHNbZV09cyx0aGlzLmxlbmd0aCsrKX1pZigwIT09cil7Zm9yKGU9dGhpcy5sZW5ndGgtMTtlPj0wO2UtLSl0aGlzLndvcmRzW2Urcl09dGhpcy53b3Jkc1tlXTtmb3IoZT0wO2U8cjtlKyspdGhpcy53b3Jkc1tlXT0wO3RoaXMubGVuZ3RoKz1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih0KX0sby5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCkscj1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PW47aWYoci09cyxyPU1hdGgubWF4KDAsciksdSl7Zm9yKHZhciBjPTA7YzxzO2MrKyl1LndvcmRzW2NdPXRoaXMud29yZHNbY107dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxjPTA7Yzx0aGlzLmxlbmd0aDtjKyspdGhpcy53b3Jkc1tjXT10aGlzLndvcmRzW2Mrc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgaD0wO2ZvcihjPXRoaXMubGVuZ3RoLTE7Yz49MCYmKDAhPT1ofHxjPj1yKTtjLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1tjXTt0aGlzLndvcmRzW2NdPWg8PDI2LW98bD4+Pm8saD1sJmF9cmV0dXJuIHUmJjAhPT1oJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1oKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHQsZSxuKX0sby5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHQpfSxvLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih0KX0sby5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHQpfSxvLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih0KX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYsbj0odC1lKS8yNixyPTE8PGU7cmV0dXJuISh0aGlzLmxlbmd0aDw9bikmJiEhKHRoaXMud29yZHNbbl0mcil9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2O2lmKGkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uKXJldHVybiB0aGlzO2lmKDAhPT1lJiZuKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obix0aGlzLmxlbmd0aCksMCE9PWUpe3ZhciByPTY3MTA4ODYzXjY3MTA4ODYzPj4+ZTw8ZTt0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHQpfSxvLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwP3RoaXMuaXN1Ym4oLXQpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8dD8odGhpcy53b3Jkc1swXT10LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHQpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odCl7dGhpcy53b3Jkc1swXSs9dDtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPj02NzEwODg2NDtlKyspdGhpcy53b3Jkc1tlXS09NjcxMDg4NjQsZT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tlKzFdPTE6dGhpcy53b3Jkc1tlKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGUrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odCl7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwKXJldHVybiB0aGlzLmlhZGRuKC10KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09dCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV08MDtlKyspdGhpcy53b3Jkc1tlXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tlKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLHM9dC5sZW5ndGgrbjt0aGlzLl9leHBhbmQocyk7dmFyIGE9MDtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXtvPSgwfHRoaXMud29yZHNbcituXSkrYTt2YXIgdT0oMHx0LndvcmRzW3JdKSplO2E9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbcituXT02NzEwODg2MyZvfWZvcig7cjx0aGlzLmxlbmd0aC1uO3IrKylhPShvPSgwfHRoaXMud29yZHNbcituXSkrYSk+PjI2LHRoaXMud29yZHNbcituXT02NzEwODg2MyZvO2lmKDA9PT1hKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKGkoLTE9PT1hKSxhPTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKWE9KG89LSgwfHRoaXMud29yZHNbcl0pK2EpPj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHQsZSl7dmFyIG49KHRoaXMubGVuZ3RoLHQubGVuZ3RoKSxpPXRoaXMuY2xvbmUoKSxyPXQscz0wfHIud29yZHNbci5sZW5ndGgtMV07MCE9PShuPTI2LXRoaXMuX2NvdW50Qml0cyhzKSkmJihyPXIudXNobG4obiksaS5pdXNobG4obikscz0wfHIud29yZHNbci5sZW5ndGgtMV0pO3ZhciBhLHU9aS5sZW5ndGgtci5sZW5ndGg7aWYoIm1vZCIhPT1lKXsoYT1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxhLndvcmRzPW5ldyBBcnJheShhLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYS53b3Jkc1tjXT0wfXZhciBoPWkuY2xvbmUoKS5faXNobG5zdWJtdWwociwxLHUpOzA9PT1oLm5lZ2F0aXZlJiYoaT1oLGEmJihhLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgZD02NzEwODg2NCooMHxpLndvcmRzW3IubGVuZ3RoK2xdKSsoMHxpLndvcmRzW3IubGVuZ3RoK2wtMV0pO2ZvcihkPU1hdGgubWluKGQvc3wwLDY3MTA4ODYzKSxpLl9pc2hsbnN1Ym11bChyLGQsbCk7MCE9PWkubmVnYXRpdmU7KWQtLSxpLm5lZ2F0aXZlPTAsaS5faXNobG5zdWJtdWwociwxLGwpLGkuaXNaZXJvKCl8fChpLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1kKX1yZXR1cm4gYSYmYS5zdHJpcCgpLGkuc3RyaXAoKSwiZGl2IiE9PWUmJjAhPT1uJiZpLml1c2hybihuKSx7ZGl2OmF8fG51bGwsbW9kOml9fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpKCF0LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmU/KGE9dGhpcy5uZWcoKS5kaXZtb2QodCxlKSwibW9kIiE9PWUmJihyPWEuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihzPWEubW9kLm5lZygpLG4mJjAhPT1zLm5lZ2F0aXZlJiZzLmlhZGQodCkpLHtkaXY6cixtb2Q6c30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZT8oYT10aGlzLmRpdm1vZCh0Lm5lZygpLGUpLCJtb2QiIT09ZSYmKHI9YS5kaXYubmVnKCkpLHtkaXY6cixtb2Q6YS5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKT8oYT10aGlzLm5lZygpLmRpdm1vZCh0Lm5lZygpLGUpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksbiYmMCE9PXMubmVnYXRpdmUmJnMuaXN1Yih0KSkse2RpdjphLmRpdixtb2Q6c30pOnQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh0KTwwP3tkaXY6bmV3IG8oMCksbW9kOnRoaXN9OjE9PT10Lmxlbmd0aD8iZGl2Ij09PWU/e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ZT97ZGl2Om51bGwsbW9kOm5ldyBvKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHQsZSk7dmFyIHIscyxhfSxvLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sby5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LG8ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sby5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kaXZtb2QodCk7aWYoZS5tb2QuaXNaZXJvKCkpcmV0dXJuIGUuZGl2O3ZhciBuPTAhPT1lLmRpdi5uZWdhdGl2ZT9lLm1vZC5pc3ViKHQpOmUubW9kLGk9dC51c2hybigxKSxyPXQuYW5kbG4oMSksbz1uLmNtcChpKTtyZXR1cm4gbzwwfHwxPT09ciYmMD09PW8/ZS5kaXY6MCE9PWUuZGl2Lm5lZ2F0aXZlP2UuZGl2LmlzdWJuKDEpOmUuZGl2LmlhZGRuKDEpfSxvLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0oMTw8MjYpJXQsbj0wLHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSluPShlKm4rKDB8dGhpcy53b3Jkc1tyXSkpJXQ7cmV0dXJuIG59LG8ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIHI9KDB8dGhpcy53b3Jkc1tuXSkrNjcxMDg4NjQqZTt0aGlzLndvcmRzW25dPXIvdHwwLGU9ciV0fXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0KX0sby5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlKSxpKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLG49dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIHI9bmV3IG8oMSkscz1uZXcgbygwKSxhPW5ldyBvKDApLHU9bmV3IG8oMSksYz0wO2UuaXNFdmVuKCkmJm4uaXNFdmVuKCk7KWUuaXVzaHJuKDEpLG4uaXVzaHJuKDEpLCsrYztmb3IodmFyIGg9bi5jbG9uZSgpLGw9ZS5jbG9uZSgpOyFlLmlzWmVybygpOyl7Zm9yKHZhciBkPTAsZj0xOzA9PShlLndvcmRzWzBdJmYpJiZkPDI2OysrZCxmPDw9MSk7aWYoZD4wKWZvcihlLml1c2hybihkKTtkLS0gPjA7KShyLmlzT2RkKCl8fHMuaXNPZGQoKSkmJihyLmlhZGQoaCkscy5pc3ViKGwpKSxyLml1c2hybigxKSxzLml1c2hybigxKTtmb3IodmFyIHA9MCxtPTE7MD09KG4ud29yZHNbMF0mbSkmJnA8MjY7KytwLG08PD0xKTtpZihwPjApZm9yKG4uaXVzaHJuKHApO3AtLSA+MDspKGEuaXNPZGQoKXx8dS5pc09kZCgpKSYmKGEuaWFkZChoKSx1LmlzdWIobCkpLGEuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobiksci5pc3ViKGEpLHMuaXN1Yih1KSk6KG4uaXN1YihlKSxhLmlzdWIociksdS5pc3ViKHMpKX1yZXR1cm57YTphLGI6dSxnY2Q6bi5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24odCl7aSgwPT09dC5uZWdhdGl2ZSksaSghdC5pc1plcm8oKSk7dmFyIGU9dGhpcyxuPXQuY2xvbmUoKTtlPTAhPT1lLm5lZ2F0aXZlP2UudW1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciByLHM9bmV3IG8oMSksYT1uZXcgbygwKSx1PW4uY2xvbmUoKTtlLmNtcG4oMSk+MCYmbi5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxoPTE7MD09KGUud29yZHNbMF0maCkmJmM8MjY7KytjLGg8PD0xKTtpZihjPjApZm9yKGUuaXVzaHJuKGMpO2MtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7Zm9yKHZhciBsPTAsZD0xOzA9PShuLndvcmRzWzBdJmQpJiZsPDI2OysrbCxkPDw9MSk7aWYobD4wKWZvcihuLml1c2hybihsKTtsLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobikscy5pc3ViKGEpKToobi5pc3ViKGUpLGEuaXN1YihzKSl9cmV0dXJuKHI9MD09PWUuY21wbigxKT9zOmEpLmNtcG4oMCk8MCYmci5pYWRkKHQpLHJ9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIGU9dGhpcy5jbG9uZSgpLG49dC5jbG9uZSgpO2UubmVnYXRpdmU9MCxuLm5lZ2F0aXZlPTA7Zm9yKHZhciBpPTA7ZS5pc0V2ZW4oKSYmbi5pc0V2ZW4oKTtpKyspZS5pdXNocm4oMSksbi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO2Zvcig7bi5pc0V2ZW4oKTspbi5pdXNocm4oMSk7dmFyIHI9ZS5jbXAobik7aWYocjwwKXt2YXIgbz1lO2U9bixuPW99ZWxzZSBpZigwPT09cnx8MD09PW4uY21wbigxKSlicmVhaztlLmlzdWIobil9cmV0dXJuIG4uaXVzaGxuKGkpfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVnY2QodCkuYS51bW9kKHQpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ0fSxvLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2LHI9MTw8ZTtpZih0aGlzLmxlbmd0aDw9bilyZXR1cm4gdGhpcy5fZXhwYW5kKG4rMSksdGhpcy53b3Jkc1tuXXw9cix0aGlzO2Zvcih2YXIgbz1yLHM9bjswIT09byYmczx0aGlzLmxlbmd0aDtzKyspe3ZhciBhPTB8dGhpcy53b3Jkc1tzXTtvPShhKz1vKT4+PjI2LGEmPTY3MTA4ODYzLHRoaXMud29yZHNbc109YX1yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW3NdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24odCl7dmFyIGUsbj10PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFuKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZuKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKWU9MTtlbHNle24mJih0PS10KSxpKHQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciByPTB8dGhpcy53b3Jkc1swXTtlPXI9PT10PzA6cjx0Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIDE7dmFyIGU9dGhpcy51Y21wKHQpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lOmV9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+dC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBlPTAsbj10aGlzLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT0wfHRoaXMud29yZHNbbl0scj0wfHQud29yZHNbbl07aWYoaSE9PXIpe2k8cj9lPS0xOmk+ciYmKGU9MSk7YnJlYWt9fXJldHVybiBlfSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcG4odCl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dGhpcy5jbXAodCl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXBuKHQpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuY21wKHQpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wbih0KX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmNtcCh0KX0sby5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB4KHQpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxpKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdih0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgbyhlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gYigpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiB5KCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gdygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiB4KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9by5fcHJpbWUodCk7dGhpcy5tPWUucCx0aGlzLnByaW1lPWV9ZWxzZSBpKHQuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTSh0KXt4LmNhbGwodGhpcyx0KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBvKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXYucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHR9LHYucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odCl7dmFyIGUsbj10O2Rve3RoaXMuc3BsaXQobix0aGlzLnRtcCksZT0obj0obj10aGlzLmltdWxLKG4pKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZT50aGlzLm4pO3ZhciBpPWU8dGhpcy5uPy0xOm4udWNtcCh0aGlzLnApO3JldHVybiAwPT09aT8obi53b3Jkc1swXT0wLG4ubGVuZ3RoPTEpOmk+MD9uLmlzdWIodGhpcy5wKTpuLnN0cmlwKCksbn0sdi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXt0Lml1c2hybih0aGlzLm4sMCxlKX0sdi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfSxyKGIsdiksYi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49TWF0aC5taW4odC5sZW5ndGgsOSksaT0wO2k8bjtpKyspZS53b3Jkc1tpXT10LndvcmRzW2ldO2lmKGUubGVuZ3RoPW4sdC5sZW5ndGg8PTkpcmV0dXJuIHQud29yZHNbMF09MCx2b2lkKHQubGVuZ3RoPTEpO3ZhciByPXQud29yZHNbOV07Zm9yKGUud29yZHNbZS5sZW5ndGgrK109NDE5NDMwMyZyLGk9MTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPTB8dC53b3Jkc1tpXTt0LndvcmRzW2ktMTBdPSg0MTk0MzAzJm8pPDw0fHI+Pj4yMixyPW99cj4+Pj0yMix0LndvcmRzW2ktMTBdPXIsMD09PXImJnQubGVuZ3RoPjEwP3QubGVuZ3RoLT0xMDp0Lmxlbmd0aC09OX0sYi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7dC53b3Jkc1t0Lmxlbmd0aF09MCx0LndvcmRzW3QubGVuZ3RoKzFdPTAsdC5sZW5ndGgrPTI7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT0wfHQud29yZHNbbl07ZSs9OTc3KmksdC53b3Jkc1tuXT02NzEwODg2MyZlLGU9NjQqaSsoZS82NzEwODg2NHwwKX1yZXR1cm4gMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJih0Lmxlbmd0aC0tLDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aC0tKSx0fSxyKHksdikscihfLHYpLHIodyx2KSx3LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPTE5KigwfHQud29yZHNbbl0pK2Uscj02NzEwODg2MyZpO2k+Pj49MjYsdC53b3Jkc1tuXT1yLGU9aX1yZXR1cm4gMCE9PWUmJih0LndvcmRzW3QubGVuZ3RoKytdPWUpLHR9LG8uX3ByaW1lPWZ1bmN0aW9uKHQpe2lmKGdbdF0pcmV0dXJuIGdbdF07dmFyIGU7aWYoImsyNTYiPT09dCllPW5ldyBiO2Vsc2UgaWYoInAyMjQiPT09dCllPW5ldyB5O2Vsc2UgaWYoInAxOTIiPT09dCllPW5ldyBfO2Vsc2V7aWYoInAyNTUxOSIhPT10KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3QpO2U9bmV3IHd9cmV0dXJuIGdbdF09ZSxlfSx4LnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxlKXtpKDA9PSh0Lm5lZ2F0aXZlfGUubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQmJnQucmVkPT09ZS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UodCkuX2ZvcmNlUmVkKHRoaXMpOnQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlzWmVybygpP3QuY2xvbmUoKTp0aGlzLm0uc3ViKHQpLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuYWRkKGUpO3JldHVybiBuLmNtcCh0aGlzLm0pPj0wJiZuLmlzdWIodGhpcy5tKSxuLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LmlhZGQoZSk7cmV0dXJuIG4uY21wKHRoaXMubSk+PTAmJm4uaXN1Yih0aGlzLm0pLG59LHgucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LnN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG4uX2ZvcmNlUmVkKHRoaXMpfSx4LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuaXN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG59LHgucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnVzaGxuKGUpKX0seC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQuaW11bChlKSl9LHgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQubXVsKGUpKX0seC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbXVsKHQsdC5jbG9uZSgpKX0seC5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSx4LnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT10aGlzLm0uYW5kbG4oMyk7aWYoaShlJTI9PTEpLDM9PT1lKXt2YXIgbj10aGlzLm0uYWRkKG5ldyBvKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHQsbil9Zm9yKHZhciByPXRoaXMubS5zdWJuKDEpLHM9MDshci5pc1plcm8oKSYmMD09PXIuYW5kbG4oMSk7KXMrKyxyLml1c2hybigxKTtpKCFyLmlzWmVybygpKTt2YXIgYT1uZXcgbygxKS50b1JlZCh0aGlzKSx1PWEucmVkTmVnKCksYz10aGlzLm0uc3VibigxKS5pdXNocm4oMSksaD10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKGg9bmV3IG8oMipoKmgpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhoLGMpLmNtcCh1KTspaC5yZWRJQWRkKHUpO2Zvcih2YXIgbD10aGlzLnBvdyhoLHIpLGQ9dGhpcy5wb3codCxyLmFkZG4oMSkuaXVzaHJuKDEpKSxmPXRoaXMucG93KHQscikscD1zOzAhPT1mLmNtcChhKTspe2Zvcih2YXIgbT1mLGc9MDswIT09bS5jbXAoYSk7ZysrKW09bS5yZWRTcXIoKTtpKGc8cCk7dmFyIHY9dGhpcy5wb3cobCxuZXcgbygxKS5pdXNobG4ocC1nLTEpKTtkPWQucmVkTXVsKHYpLGw9di5yZWRTcXIoKSxmPWYucmVkTXVsKGwpLHA9Z31yZXR1cm4gZH0seC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXt2YXIgZT10Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ZS5uZWdhdGl2ZT8oZS5uZWdhdGl2ZT0wLHRoaXMuaW1vZChlKS5yZWROZWcoKSk6dGhpcy5pbW9kKGUpfSx4LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCxlKXtpZihlLmlzWmVybygpKXJldHVybiBuZXcgbygxKS50b1JlZCh0aGlzKTtpZigwPT09ZS5jbXBuKDEpKXJldHVybiB0LmNsb25lKCk7dmFyIG49bmV3IEFycmF5KDE2KTtuWzBdPW5ldyBvKDEpLnRvUmVkKHRoaXMpLG5bMV09dDtmb3IodmFyIGk9MjtpPG4ubGVuZ3RoO2krKyluW2ldPXRoaXMubXVsKG5baS0xXSx0KTt2YXIgcj1uWzBdLHM9MCxhPTAsdT1lLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09dSYmKHU9MjYpLGk9ZS5sZW5ndGgtMTtpPj0wO2ktLSl7Zm9yKHZhciBjPWUud29yZHNbaV0saD11LTE7aD49MDtoLS0pe3ZhciBsPWM+PmgmMTtyIT09blswXSYmKHI9dGhpcy5zcXIocikpLDAhPT1sfHwwIT09cz8oczw8PTEsc3w9bCwoND09PSsrYXx8MD09PWkmJjA9PT1oKSYmKHI9dGhpcy5tdWwocixuW3NdKSxhPTAscz0wKSk6YT0wfXU9MjZ9cmV0dXJuIHJ9LHgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXt2YXIgZT10LnVtb2QodGhpcy5tKTtyZXR1cm4gZT09PXQ/ZS5jbG9uZSgpOmV9LHgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvbmUoKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxvLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBNKHQpfSxyKE0seCksTS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC51c2hsbih0aGlzLnNoaWZ0KSl9LE0ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW1vZCh0Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gdC53b3Jkc1swXT0wLHQubGVuZ3RoPTEsdDt2YXIgbj10LmltdWwoZSksaT1uLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxyPW4uaXN1YihpKS5pdXNocm4odGhpcy5zaGlmdCksbz1yO3JldHVybiByLmNtcCh0aGlzLm0pPj0wP289ci5pc3ViKHRoaXMubSk6ci5jbXBuKDApPDAmJihvPXIuaWFkZCh0aGlzLm0pKSxvLl9mb3JjZVJlZCh0aGlzKX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gbmV3IG8oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuPXQubXVsKGUpLGk9bi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscj1uLmlzdWIoaSkuaXVzaHJuKHRoaXMuc2hpZnQpLHM9cjtyZXR1cm4gci5jbXAodGhpcy5tKT49MD9zPXIuaXN1Yih0aGlzLm0pOnIuY21wbigwKTwwJiYocz1yLmlhZGQodGhpcy5tKSkscy5fZm9yY2VSZWQodGhpcyl9LE0ucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW1vZCh0Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0odCx0aGlzKX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpewovKiEKICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwp2YXIgaT1uKDgxKSxyPW4oMTQ2KSxvPW4oODMpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdS5UWVBFRF9BUlJBWV9TVVBQT1JUPzIxNDc0ODM2NDc6MTA3Mzc0MTgyM31mdW5jdGlvbiBhKHQsZSl7aWYocygpPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoIik7cmV0dXJuIHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odD1uZXcgVWludDhBcnJheShlKSkuX19wcm90b19fPXUucHJvdG90eXBlOihudWxsPT09dCYmKHQ9bmV3IHUoZSkpLHQubGVuZ3RoPWUpLHR9ZnVuY3Rpb24gdSh0LGUsbil7aWYoISh1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fHRoaXMgaW5zdGFuY2VvZiB1KSlyZXR1cm4gbmV3IHUodCxlLG4pO2lmKCJudW1iZXIiPT10eXBlb2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gbCh0aGlzLHQpfXJldHVybiBjKHRoaXMsdCxlLG4pfWZ1bmN0aW9uIGModCxlLG4saSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZnVuY3Rpb24odCxlLG4saSl7aWYoZS5ieXRlTGVuZ3RoLG48MHx8ZS5ieXRlTGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidvZmZzZXQnIGlzIG91dCBvZiBib3VuZHMiKTtpZihlLmJ5dGVMZW5ndGg8bisoaXx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHMiKTtlPXZvaWQgMD09PW4mJnZvaWQgMD09PWk/bmV3IFVpbnQ4QXJyYXkoZSk6dm9pZCAwPT09aT9uZXcgVWludDhBcnJheShlLG4pOm5ldyBVaW50OEFycmF5KGUsbixpKTt1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHQ9ZSkuX19wcm90b19fPXUucHJvdG90eXBlOnQ9ZCh0LGUpO3JldHVybiB0fSh0LGUsbixpKToic3RyaW5nIj09dHlwZW9mIGU/ZnVuY3Rpb24odCxlLG4peyJzdHJpbmciPT10eXBlb2YgbiYmIiIhPT1ufHwobj0idXRmOCIpO2lmKCF1LmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcignImVuY29kaW5nIiBtdXN0IGJlIGEgdmFsaWQgc3RyaW5nIGVuY29kaW5nJyk7dmFyIGk9MHxwKGUsbikscj0odD1hKHQsaSkpLndyaXRlKGUsbik7ciE9PWkmJih0PXQuc2xpY2UoMCxyKSk7cmV0dXJuIHR9KHQsZSxuKTpmdW5jdGlvbih0LGUpe2lmKHUuaXNCdWZmZXIoZSkpe3ZhciBuPTB8ZihlLmxlbmd0aCk7cmV0dXJuIDA9PT0odD1hKHQsbikpLmxlbmd0aD90OihlLmNvcHkodCwwLDAsbiksdCl9aWYoZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8Imxlbmd0aCJpbiBlKXJldHVybiJudW1iZXIiIT10eXBlb2YgZS5sZW5ndGh8fChpPWUubGVuZ3RoKSE9aT9hKHQsMCk6ZCh0LGUpO2lmKCJCdWZmZXIiPT09ZS50eXBlJiZvKGUuZGF0YSkpcmV0dXJuIGQodCxlLmRhdGEpfXZhciBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4iKX0odCxlKX1mdW5jdGlvbiBoKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJyl9ZnVuY3Rpb24gbCh0LGUpe2lmKGgoZSksdD1hKHQsZTwwPzA6MHxmKGUpKSwhdS5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgbj0wO248ZTsrK24pdFtuXT0wO3JldHVybiB0fWZ1bmN0aW9uIGQodCxlKXt2YXIgbj1lLmxlbmd0aDwwPzA6MHxmKGUubGVuZ3RoKTt0PWEodCxuKTtmb3IodmFyIGk9MDtpPG47aSs9MSl0W2ldPTI1NSZlW2ldO3JldHVybiB0fWZ1bmN0aW9uIGYodCl7aWYodD49cygpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitzKCkudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHx0fWZ1bmN0aW9uIHAodCxlKXtpZih1LmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3JiYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKXJldHVybiB0LmJ5dGVMZW5ndGg7InN0cmluZyIhPXR5cGVvZiB0JiYodD0iIit0KTt2YXIgbj10Lmxlbmd0aDtpZigwPT09bilyZXR1cm4gMDtmb3IodmFyIGk9ITE7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2Ugdm9pZCAwOnJldHVybiBXKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqbjtjYXNlImhleCI6cmV0dXJuIG4+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gcSh0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBXKHQpLmxlbmd0aDtlPSgiIitlKS50b0xvd2VyQ2FzZSgpLGk9ITB9fWZ1bmN0aW9uIG0odCxlLG4pe3ZhciBpPXRbZV07dFtlXT10W25dLHRbbl09aX1mdW5jdGlvbiBnKHQsZSxuLGkscil7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1uLG49MCk6bj4yMTQ3NDgzNjQ3P249MjE0NzQ4MzY0NzpuPC0yMTQ3NDgzNjQ4JiYobj0tMjE0NzQ4MzY0OCksbj0rbixpc05hTihuKSYmKG49cj8wOnQubGVuZ3RoLTEpLG48MCYmKG49dC5sZW5ndGgrbiksbj49dC5sZW5ndGgpe2lmKHIpcmV0dXJuLTE7bj10Lmxlbmd0aC0xfWVsc2UgaWYobjwwKXtpZighcilyZXR1cm4tMTtuPTB9aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT11LmZyb20oZSxpKSksdS5pc0J1ZmZlcihlKSlyZXR1cm4gMD09PWUubGVuZ3RoPy0xOnYodCxlLG4saSxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGUmPTI1NSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP3I/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQsZSxuKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHQsZSxuKTp2KHQsW2VdLG4saSxyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiB2KHQsZSxuLGkscil7dmFyIG8scz0xLGE9dC5sZW5ndGgsdT1lLmxlbmd0aDtpZih2b2lkIDAhPT1pJiYoInVjczIiPT09KGk9U3RyaW5nKGkpLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09aXx8InV0ZjE2bGUiPT09aXx8InV0Zi0xNmxlIj09PWkpKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO3M9MixhLz0yLHUvPTIsbi89Mn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDE9PT1zP3RbZV06dC5yZWFkVUludDE2QkUoZSpzKX1pZihyKXt2YXIgaD0tMTtmb3Iobz1uO288YTtvKyspaWYoYyh0LG8pPT09YyhlLC0xPT09aD8wOm8taCkpe2lmKC0xPT09aCYmKGg9byksby1oKzE9PT11KXJldHVybiBoKnN9ZWxzZS0xIT09aCYmKG8tPW8taCksaD0tMX1lbHNlIGZvcihuK3U+YSYmKG49YS11KSxvPW47bz49MDtvLS0pe2Zvcih2YXIgbD0hMCxkPTA7ZDx1O2QrKylpZihjKHQsbytkKSE9PWMoZSxkKSl7bD0hMTticmVha31pZihsKXJldHVybiBvfXJldHVybi0xfWZ1bmN0aW9uIGIodCxlLG4saSl7bj1OdW1iZXIobil8fDA7dmFyIHI9dC5sZW5ndGgtbjtpPyhpPU51bWJlcihpKSk+ciYmKGk9cik6aT1yO3ZhciBvPWUubGVuZ3RoO2lmKG8lMiE9MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTtpPm8vMiYmKGk9by8yKTtmb3IodmFyIHM9MDtzPGk7KytzKXt2YXIgYT1wYXJzZUludChlLnN1YnN0cigyKnMsMiksMTYpO2lmKGlzTmFOKGEpKXJldHVybiBzO3RbbitzXT1hfXJldHVybiBzfWZ1bmN0aW9uIHkodCxlLG4saSl7cmV0dXJuIEgoVyhlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBfKHQsZSxuLGkpe3JldHVybiBIKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDsrK24pZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQobikpO3JldHVybiBlfShlKSx0LG4saSl9ZnVuY3Rpb24gdyh0LGUsbixpKXtyZXR1cm4gXyh0LGUsbixpKX1mdW5jdGlvbiB4KHQsZSxuLGkpe3JldHVybiBIKHEoZSksdCxuLGkpfWZ1bmN0aW9uIE0odCxlLG4saSl7cmV0dXJuIEgoZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyLG89W10scz0wO3M8dC5sZW5ndGgmJiEoKGUtPTIpPDApOysrcyluPXQuY2hhckNvZGVBdChzKSxpPW4+Pjgscj1uJTI1NixvLnB1c2gociksby5wdXNoKGkpO3JldHVybiBvfShlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBTKHQsZSxuKXtyZXR1cm4gMD09PWUmJm49PT10Lmxlbmd0aD9pLmZyb21CeXRlQXJyYXkodCk6aS5mcm9tQnl0ZUFycmF5KHQuc2xpY2UoZSxuKSl9ZnVuY3Rpb24gRSh0LGUsbil7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIGk9W10scj1lO3I8bjspe3ZhciBvLHMsYSx1LGM9dFtyXSxoPW51bGwsbD1jPjIzOT80OmM+MjIzPzM6Yz4xOTE/MjoxO2lmKHIrbDw9bilzd2l0Y2gobCl7Y2FzZSAxOmM8MTI4JiYoaD1jKTticmVhaztjYXNlIDI6MTI4PT0oMTkyJihvPXRbcisxXSkpJiYodT0oMzEmYyk8PDZ8NjMmbyk+MTI3JiYoaD11KTticmVhaztjYXNlIDM6bz10W3IrMV0scz10W3IrMl0sMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJih1PSgxNSZjKTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjIwNDcmJih1PDU1Mjk2fHx1PjU3MzQzKSYmKGg9dSk7YnJlYWs7Y2FzZSA0Om89dFtyKzFdLHM9dFtyKzJdLGE9dFtyKzNdLDEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYxMjg9PSgxOTImYSkmJih1PSgxNSZjKTw8MTh8KDYzJm8pPDwxMnwoNjMmcyk8PDZ8NjMmYSk+NjU1MzUmJnU8MTExNDExMiYmKGg9dSl9bnVsbD09PWg/KGg9NjU1MzMsbD0xKTpoPjY1NTM1JiYoaC09NjU1MzYsaS5wdXNoKGg+Pj4xMCYxMDIzfDU1Mjk2KSxoPTU2MzIwfDEwMjMmaCksaS5wdXNoKGgpLHIrPWx9cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8PUEpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQpO3ZhciBuPSIiLGk9MDtmb3IoO2k8ZTspbis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdC5zbGljZShpLGkrPUEpKTtyZXR1cm4gbn0oaSl9ZS5CdWZmZXI9dSxlLlNsb3dCdWZmZXI9ZnVuY3Rpb24odCl7K3QhPXQmJih0PTApO3JldHVybiB1LmFsbG9jKCt0KX0sZS5JTlNQRUNUX01BWF9CWVRFUz01MCx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ9dm9pZCAwIT09dC5UWVBFRF9BUlJBWV9TVVBQT1JUP3QuVFlQRURfQVJSQVlfU1VQUE9SVDpmdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PXQuZm9vKCkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YmFycmF5JiYwPT09dC5zdWJhcnJheSgxLDEpLmJ5dGVMZW5ndGh9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGUua01heExlbmd0aD1zKCksdS5wb29sU2l6ZT04MTkyLHUuX2F1Z21lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19fPXUucHJvdG90eXBlLHR9LHUuZnJvbT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMobnVsbCx0LGUsbil9LHUuVFlQRURfQVJSQVlfU1VQUE9SVCYmKHUucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSx1Ll9fcHJvdG9fXz1VaW50OEFycmF5LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuc3BlY2llcyYmdVtTeW1ib2wuc3BlY2llc109PT11JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodSxTeW1ib2wuc3BlY2llcyx7dmFsdWU6bnVsbCxjb25maWd1cmFibGU6ITB9KSksdS5hbGxvYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBoKGUpLGU8PTA/YSh0LGUpOnZvaWQgMCE9PW4/InN0cmluZyI9PXR5cGVvZiBpP2EodCxlKS5maWxsKG4saSk6YSh0LGUpLmZpbGwobik6YSh0LGUpfShudWxsLHQsZSxuKX0sdS5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX0sdS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7aWYoIXUuaXNCdWZmZXIodCl8fCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZih0PT09ZSlyZXR1cm4gMDtmb3IodmFyIG49dC5sZW5ndGgsaT1lLmxlbmd0aCxyPTAsbz1NYXRoLm1pbihuLGkpO3I8bzsrK3IpaWYodFtyXSE9PWVbcl0pe249dFtyXSxpPWVbcl07YnJlYWt9cmV0dXJuIG48aT8tMTppPG4/MTowfSx1LmlzRW5jb2Rpbmc9ZnVuY3Rpb24odCl7c3dpdGNoKFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHUuY29uY2F0PWZ1bmN0aW9uKHQsZSl7aWYoIW8odCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdS5hbGxvYygwKTt2YXIgbjtpZih2b2lkIDA9PT1lKWZvcihlPTAsbj0wO248dC5sZW5ndGg7KytuKWUrPXRbbl0ubGVuZ3RoO3ZhciBpPXUuYWxsb2NVbnNhZmUoZSkscj0wO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBzPXRbbl07aWYoIXUuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO3MuY29weShpLHIpLHIrPXMubGVuZ3RofXJldHVybiBpfSx1LmJ5dGVMZW5ndGg9cCx1LnByb3RvdHlwZS5faXNCdWZmZXI9ITAsdS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz0yKW0odGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9NCltKHRoaXMsZSxlKzMpLG0odGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz04KW0odGhpcyxlLGUrNyksbSh0aGlzLGUrMSxlKzYpLG0odGhpcyxlKzIsZSs1KSxtKHRoaXMsZSszLGUrNCk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9MHx0aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/RSh0aGlzLDAsdCk6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPSExO2lmKCh2b2lkIDA9PT1lfHxlPDApJiYoZT0wKSxlPnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1ufHxuPnRoaXMubGVuZ3RoKSYmKG49dGhpcy5sZW5ndGgpLG48PTApcmV0dXJuIiI7aWYoKG4+Pj49MCk8PShlPj4+PTApKXJldHVybiIiO2Zvcih0fHwodD0idXRmOCIpOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gTyh0aGlzLGUsbik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gRSh0aGlzLGUsbik7Y2FzZSJhc2NpaSI6cmV0dXJuIEModGhpcyxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGsodGhpcyxlLG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUyh0aGlzLGUsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBQKHRoaXMsZSxuKTtkZWZhdWx0OmlmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGk9ITB9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10fHwwPT09dS5jb21wYXJlKHRoaXMsdCl9LHUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixuPWUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJih0PXRoaXMudG9TdHJpbmcoImhleCIsMCxuKS5tYXRjaCgvLnsyfS9nKS5qb2luKCIgIiksdGhpcy5sZW5ndGg+biYmKHQrPSIgLi4uICIpKSwiPEJ1ZmZlciAiK3QrIj4ifSx1LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXQ/dC5sZW5ndGg6MCksdm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9dGhpcy5sZW5ndGgpLGU8MHx8bj50Lmxlbmd0aHx8aTwwfHxyPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihpPj1yJiZlPj1uKXJldHVybiAwO2lmKGk+PXIpcmV0dXJuLTE7aWYoZT49bilyZXR1cm4gMTtpZih0aGlzPT09dClyZXR1cm4gMDtmb3IodmFyIG89KHI+Pj49MCktKGk+Pj49MCkscz0obj4+Pj0wKS0oZT4+Pj0wKSxhPU1hdGgubWluKG8scyksYz10aGlzLnNsaWNlKGksciksaD10LnNsaWNlKGUsbiksbD0wO2w8YTsrK2wpaWYoY1tsXSE9PWhbbF0pe289Y1tsXSxzPWhbbF07YnJlYWt9cmV0dXJuIG88cz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLG4pfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZyh0aGlzLHQsZSxuLCEwKX0sdS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBnKHRoaXMsdCxlLG4sITEpfSx1LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixpKXtpZih2b2lkIDA9PT1lKWk9InV0ZjgiLG49dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09biYmInN0cmluZyI9PXR5cGVvZiBlKWk9ZSxuPXRoaXMubGVuZ3RoLGU9MDtlbHNle2lmKCFpc0Zpbml0ZShlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7ZXw9MCxpc0Zpbml0ZShuKT8obnw9MCx2b2lkIDA9PT1pJiYoaT0idXRmOCIpKTooaT1uLG49dm9pZCAwKX12YXIgcj10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1ufHxuPnIpJiYobj1yKSx0Lmxlbmd0aD4wJiYobjwwfHxlPDApfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2l8fChpPSJ1dGY4Iik7Zm9yKHZhciBvPSExOzspc3dpdGNoKGkpe2Nhc2UiaGV4IjpyZXR1cm4gYih0aGlzLHQsZSxuKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB5KHRoaXMsdCxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBfKHRoaXMsdCxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHcodGhpcyx0LGUsbik7Y2FzZSJiYXNlNjQiOnJldHVybiB4KHRoaXMsdCxlLG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gTSh0aGlzLHQsZSxuKTtkZWZhdWx0OmlmKG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitpKTtpPSgiIitpKS50b0xvd2VyQ2FzZSgpLG89ITB9fSx1LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBBPTQwOTY7ZnVuY3Rpb24gQyh0LGUsbil7dmFyIGk9IiI7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIHI9ZTtyPG47KytyKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIGsodCxlLG4pe3ZhciBpPSIiO249TWF0aC5taW4odC5sZW5ndGgsbik7Zm9yKHZhciByPWU7cjxuOysrcilpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIE8odCxlLG4pe3ZhciBpPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFufHxuPDB8fG4+aSkmJihuPWkpO2Zvcih2YXIgcj0iIixvPWU7bzxuOysrbylyKz1OKHRbb10pO3JldHVybiByfWZ1bmN0aW9uIFAodCxlLG4pe2Zvcih2YXIgaT10LnNsaWNlKGUsbikscj0iIixvPTA7bzxpLmxlbmd0aDtvKz0yKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaVtvXSsyNTYqaVtvKzFdKTtyZXR1cm4gcn1mdW5jdGlvbiBUKHQsZSxuKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBqKHQsZSxuLGkscixvKXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5yfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKG4raT50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUsbixpKXtlPDAmJihlPTY1NTM1K2UrMSk7Zm9yKHZhciByPTAsbz1NYXRoLm1pbih0Lmxlbmd0aC1uLDIpO3I8bzsrK3IpdFtuK3JdPShlJjI1NTw8OCooaT9yOjEtcikpPj4+OCooaT9yOjEtcil9ZnVuY3Rpb24gTCh0LGUsbixpKXtlPDAmJihlPTQyOTQ5NjcyOTUrZSsxKTtmb3IodmFyIHI9MCxvPU1hdGgubWluKHQubGVuZ3RoLW4sNCk7cjxvOysrcil0W24rcl09ZT4+PjgqKGk/cjozLXIpJjI1NX1mdW5jdGlvbiBCKHQsZSxuLGkscixvKXtpZihuK2k+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKG48MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRCh0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDQpLHIud3JpdGUodCxlLG4saSwyMyw0KSxuKzR9ZnVuY3Rpb24gUih0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDgpLHIud3JpdGUodCxlLG4saSw1Miw4KSxuKzh9dS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMubGVuZ3RoO2lmKCh0PX5+dCk8MD8odCs9aSk8MCYmKHQ9MCk6dD5pJiYodD1pKSwoZT12b2lkIDA9PT1lP2k6fn5lKTwwPyhlKz1pKTwwJiYoZT0wKTplPmkmJihlPWkpLGU8dCYmKGU9dCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUKShuPXRoaXMuc3ViYXJyYXkodCxlKSkuX19wcm90b19fPXUucHJvdG90eXBlO2Vsc2V7dmFyIHI9ZS10O249bmV3IHUocix2b2lkIDApO2Zvcih2YXIgbz0wO288cjsrK28pbltvXT10aGlzW28rdF19cmV0dXJuIG59LHUucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLG4pe3R8PTAsZXw9MCxufHxUKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPXRoaXNbdF0scj0xLG89MDsrK288ZSYmKHIqPTI1Nik7KWkrPXRoaXNbdCtvXSpyO3JldHVybiBpfSx1LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3QrLS1lXSxyPTE7ZT4wJiYocio9MjU2KTspaSs9dGhpc1t0Ky0tZV0qcjtyZXR1cm4gaX0sdS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx1LnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDh8dGhpc1t0KzFdfSx1LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3RdLHI9MSxvPTA7KytvPGUmJihyKj0yNTYpOylpKz10aGlzW3Qrb10qcjtyZXR1cm4gaT49KHIqPTEyOCkmJihpLT1NYXRoLnBvdygyLDgqZSkpLGl9LHUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0LGUsbil7dHw9MCxlfD0wLG58fFQodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIGk9ZSxyPTEsbz10aGlzW3QrLS1pXTtpPjAmJihyKj0yNTYpOylvKz10aGlzW3QrLS1pXSpyO3JldHVybiBvPj0ocio9MTI4KSYmKG8tPU1hdGgucG93KDIsOCplKSksb30sdS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe2V8fFQodCwyLHRoaXMubGVuZ3RoKTt2YXIgbj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmbj80Mjk0OTAxNzYwfG46bn0sdS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXtlfHxUKHQsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LHUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LHUucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDIzLDQpfSx1LnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksci5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw4LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDUyLDgpfSx1LnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDgsdGhpcy5sZW5ndGgpLHIucmVhZCh0aGlzLHQsITEsNTIsOCl9LHUucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxuLGkpeyh0PSt0LGV8PTAsbnw9MCxpKXx8aih0aGlzLHQsZSxuLE1hdGgucG93KDIsOCpuKS0xLDApO3ZhciByPTEsbz0wO2Zvcih0aGlzW2VdPTI1NSZ0OysrbzxuJiYocio9MjU2KTspdGhpc1tlK29dPXQvciYyNTU7cmV0dXJuIGUrbn0sdS5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odCxlLG4saSl7KHQ9K3QsZXw9MCxufD0wLGkpfHxqKHRoaXMsdCxlLG4sTWF0aC5wb3coMiw4Km4pLTEsMCk7dmFyIHI9bi0xLG89MTtmb3IodGhpc1tlK3JdPTI1NSZ0Oy0tcj49MCYmKG8qPTI1Nik7KXRoaXNbZStyXT10L28mMjU1O3JldHVybiBlK259LHUucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDI1NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHRoaXNbZV09MjU1JnQsZSsxfSx1LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsMiw2NTUzNSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwyLDY1NTM1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQpOkkodGhpcyx0LGUsITEpLGUrMn0sdS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCk6TCh0aGlzLHQsZSwhMCksZSs0fSx1LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0KTpMKHRoaXMsdCxlLCExKSxlKzR9LHUucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odCxlLG4saSl7aWYodD0rdCxlfD0wLCFpKXt2YXIgcj1NYXRoLnBvdygyLDgqbi0xKTtqKHRoaXMsdCxlLG4sci0xLC1yKX12YXIgbz0wLHM9MSxhPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytvPG4mJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28tMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9K3QsZXw9MCwhaSl7dmFyIHI9TWF0aC5wb3coMiw4Km4tMSk7aih0aGlzLHQsZSxuLHItMSwtcil9dmFyIG89bi0xLHM9MSxhPTA7Zm9yKHRoaXNbZStvXT0yNTUmdDstLW8+PTAmJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28rMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDEyNywtMTI4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0KTpJKHRoaXMsdCxlLCExKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQpOkwodGhpcyx0LGUsITApLGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0PDAmJih0PTQyOTQ5NjcyOTUrdCsxKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCk6TCh0aGlzLHQsZSwhMSksZSs0fSx1LnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCEwLG4pfSx1LnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCExLG4pfSx1LnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUih0aGlzLHQsZSwhMCxuKX0sdS5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIFIodGhpcyx0LGUsITEsbil9LHUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlLG4saSl7aWYobnx8KG49MCksaXx8MD09PWl8fChpPXRoaXMubGVuZ3RoKSxlPj10Lmxlbmd0aCYmKGU9dC5sZW5ndGgpLGV8fChlPTApLGk+MCYmaTxuJiYoaT1uKSxpPT09bilyZXR1cm4gMDtpZigwPT09dC5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihuPDB8fG4+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoaTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO2k+dGhpcy5sZW5ndGgmJihpPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPGktbiYmKGk9dC5sZW5ndGgtZStuKTt2YXIgcixvPWktbjtpZih0aGlzPT09dCYmbjxlJiZlPGkpZm9yKHI9by0xO3I+PTA7LS1yKXRbcitlXT10aGlzW3Irbl07ZWxzZSBpZihvPDFlM3x8IXUuVFlQRURfQVJSQVlfU1VQUE9SVClmb3Iocj0wO3I8bzsrK3IpdFtyK2VdPXRoaXNbcituXTtlbHNlIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHQsdGhpcy5zdWJhcnJheShuLG4rbyksZSk7cmV0dXJuIG99LHUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLG4saSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KGk9ZSxlPTAsbj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiBuJiYoaT1uLG49dGhpcy5sZW5ndGgpLDE9PT10Lmxlbmd0aCl7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3I8MjU2JiYodD1yKX1pZih2b2lkIDAhPT1pJiYic3RyaW5nIiE9dHlwZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmIXUuaXNFbmNvZGluZyhpKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2kpfWVsc2UibnVtYmVyIj09dHlwZW9mIHQmJih0Jj0yNTUpO2lmKGU8MHx8dGhpcy5sZW5ndGg8ZXx8dGhpcy5sZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobjw9ZSlyZXR1cm4gdGhpczt2YXIgbztpZihlPj4+PTAsbj12b2lkIDA9PT1uP3RoaXMubGVuZ3RoOm4+Pj4wLHR8fCh0PTApLCJudW1iZXIiPT10eXBlb2YgdClmb3Iobz1lO288bjsrK28pdGhpc1tvXT10O2Vsc2V7dmFyIHM9dS5pc0J1ZmZlcih0KT90OlcobmV3IHUodCxpKS50b1N0cmluZygpKSxhPXMubGVuZ3RoO2ZvcihvPTA7bzxuLWU7KytvKXRoaXNbbytlXT1zW28lYV19cmV0dXJuIHRoaXN9O3ZhciB6PS9bXitcLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIE4odCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFcodCxlKXt2YXIgbjtlPWV8fDEvMDtmb3IodmFyIGk9dC5sZW5ndGgscj1udWxsLG89W10scz0wO3M8aTsrK3Mpe2lmKChuPXQuY2hhckNvZGVBdChzKSk+NTUyOTUmJm48NTczNDQpe2lmKCFyKXtpZihuPjU2MzE5KXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYocysxPT09aSl7KGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfXI9bjtjb250aW51ZX1pZihuPDU2MzIwKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSkscj1uO2NvbnRpbnVlfW49NjU1MzYrKHItNTUyOTY8PDEwfG4tNTYzMjApfWVsc2UgciYmKGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKHI9bnVsbCxuPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigoZS09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKG48MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztvLnB1c2gobj4+MTh8MjQwLG4+PjEyJjYzfDEyOCxuPj42JjYzfDEyOCw2MyZufDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIHEodCl7cmV0dXJuIGkudG9CeXRlQXJyYXkoZnVuY3Rpb24odCl7aWYoKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0odCkucmVwbGFjZSh6LCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT0wOyl0Kz0iPSI7cmV0dXJuIHR9KHQpKX1mdW5jdGlvbiBIKHQsZSxuLGkpe2Zvcih2YXIgcj0wO3I8aSYmIShyK24+PWUubGVuZ3RofHxyPj10Lmxlbmd0aCk7KytyKWVbcituXT10W3JdO3JldHVybiByfX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7dmFyIHIsbz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1yKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMiksYT1uKDMyMCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy50eXBlPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNDb25mbGF0YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiExfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNvbmZsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiExfSx0fSgpO2UuTWVzc2FnZT11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBvKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0NvbmZsYXRhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY29uZmxhdGU9ZnVuY3Rpb24odCl7cmV0dXJuITB9LGV9KHUpO2UuQ29uZmxhdGFibGVNZXNzYWdlPWMsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPW8uZ2V0KHQpO24mJjAhPT1uLmxlbmd0aD9zLmV2ZXJ5KHMucmV0cm8obiksZnVuY3Rpb24obil7cmV0dXJuIW58fGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0hMDt0cnl7aT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGUsbik6dC5tZXNzYWdlSG9vayhlLG4pfWNhdGNoKHQpe2ModCl9cmV0dXJuIGl9KG4sdCxlKX0pJiZwKHQsZSk6cCh0LGUpfWUuc2VuZE1lc3NhZ2U9bixlLnBvc3RNZXNzYWdlPWZ1bmN0aW9uKHQsZSl7ZS5pc0NvbmZsYXRhYmxlJiZzLnNvbWUocixmdW5jdGlvbihuKXtyZXR1cm4gbi5oYW5kbGVyPT09dCYmISFuLm1zZyYmbi5tc2cudHlwZT09PWUudHlwZSYmISFuLm1zZy5pc0NvbmZsYXRhYmxlJiZuLm1zZy5jb25mbGF0ZShlKX0pfHxtKHQsZSl9LGUuaW5zdGFsbE1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7biYmLTEhPT1uLmluZGV4T2YoZSl8fChuP24ucHVzaChlKTpvLnNldCh0LFtlXSkpfSxlLnJlbW92ZU1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7aWYobil7dmFyIGk9bi5pbmRleE9mKGUpOy0xIT09aSYmKG5baV09bnVsbCx2KG4pKX19LGUuY2xlYXJEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPW8uZ2V0KHQpO2UmJmUubGVuZ3RoPjAmJihzLkFycmF5RXh0LmZpbGwoZSxudWxsKSx2KGUpKSxzLmVhY2gocixmdW5jdGlvbihlKXtlLmhhbmRsZXI9PT10JiYoZS5oYW5kbGVyPW51bGwsZS5tc2c9bnVsbCl9KX0sZS5mbHVzaD1mdW5jdGlvbigpe2x8fDA9PT1ofHwoZihoKSxsPSEwLGcoKSxsPSExKX0sZS5nZXRFeGNlcHRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGUuc2V0RXhjZXB0aW9uSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1jO3JldHVybiBjPXQsZX07dmFyIHI9bmV3IGEuTGlua2VkTGlzdCxvPW5ldyBXZWFrTWFwLHU9bmV3IFNldCxjPWZ1bmN0aW9uKHQpe2NvbnNvbGUuZXJyb3IodCl9LGg9MCxsPSExLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6dCxmPSJmdW5jdGlvbiI9PXR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZT9jYW5jZWxBbmltYXRpb25GcmFtZTppO2Z1bmN0aW9uIHAodCxlKXt0cnl7dC5wcm9jZXNzTWVzc2FnZShlKX1jYXRjaCh0KXtjKHQpfX1mdW5jdGlvbiBtKHQsZSl7ci5hZGRMYXN0KHtoYW5kbGVyOnQsbXNnOmV9KSwwPT09aCYmKGg9ZChnKSl9ZnVuY3Rpb24gZygpe2lmKGg9MCwhci5pc0VtcHR5KXt2YXIgdD17aGFuZGxlcjpudWxsLG1zZzpudWxsfTtmb3Ioci5hZGRMYXN0KHQpOzspe3ZhciBlPXIucmVtb3ZlRmlyc3QoKTtpZihlPT09dClyZXR1cm47ZS5oYW5kbGVyJiZlLm1zZyYmbihlLmhhbmRsZXIsZS5tc2cpfX19ZnVuY3Rpb24gdih0KXswPT09dS5zaXplJiZkKGIpLHUuYWRkKHQpfWZ1bmN0aW9uIGIoKXt1LmZvckVhY2goeSksdS5jbGVhcigpfWZ1bmN0aW9uIHkodCl7cy5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LF8pfWZ1bmN0aW9uIF8odCl7cmV0dXJuIG51bGw9PT10fX0oZS5NZXNzYWdlTG9vcHx8KGUuTWVzc2FnZUxvb3A9e30pKX0pLmNhbGwodGhpcyxuKDQ0KS5zZXRJbW1lZGlhdGUsbig0NCkuY2xlYXJJbW1lZGlhdGUpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsbil7dmFyIGk7IWZ1bmN0aW9uKCl7dmFyIHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmJiZzZWxmfHwib2JqZWN0Ij09dHlwZW9mIHQmJnQuZ2xvYmFsPT09dCYmdHx8dGhpc3x8e30sbz1yLl8scz1BcnJheS5wcm90b3R5cGUsYT1PYmplY3QucHJvdG90eXBlLHU9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2w/U3ltYm9sLnByb3RvdHlwZTpudWxsLGM9cy5wdXNoLGg9cy5zbGljZSxsPWEudG9TdHJpbmcsZD1hLmhhc093blByb3BlcnR5LGY9QXJyYXkuaXNBcnJheSxwPU9iamVjdC5rZXlzLG09T2JqZWN0LmNyZWF0ZSxnPWZ1bmN0aW9uKCl7fSx2PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygdj90OnRoaXMgaW5zdGFuY2VvZiB2P3ZvaWQodGhpcy5fd3JhcHBlZD10KTpuZXcgdih0KX07ZS5ub2RlVHlwZT9yLl89djooIW4ubm9kZVR5cGUmJm4uZXhwb3J0cyYmKGU9bi5leHBvcnRzPXYpLGUuXz12KSx2LlZFUlNJT049IjEuOS4xIjt2YXIgYix5PWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1lKXJldHVybiB0O3N3aXRjaChudWxsPT1uPzM6bil7Y2FzZSAxOnJldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiB0LmNhbGwoZSxuLGkscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24obixpLHIsbyl7cmV0dXJuIHQuY2FsbChlLG4saSxyLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fSxfPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdi5pdGVyYXRlZSE9PWI/di5pdGVyYXRlZSh0LGUpOm51bGw9PXQ/di5pZGVudGl0eTp2LmlzRnVuY3Rpb24odCk/eSh0LGUsbik6di5pc09iamVjdCh0KSYmIXYuaXNBcnJheSh0KT92Lm1hdGNoZXIodCk6di5wcm9wZXJ0eSh0KX07di5pdGVyYXRlZT1iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF8odCxlLDEvMCl9O3ZhciB3PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9bnVsbD09ZT90Lmxlbmd0aC0xOitlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPU1hdGgubWF4KGFyZ3VtZW50cy5sZW5ndGgtZSwwKSxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09YXJndW1lbnRzW3IrZV07c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHRoaXMsaSk7Y2FzZSAxOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0saSk7Y2FzZSAyOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdLGkpfXZhciBvPUFycmF5KGUrMSk7Zm9yKHI9MDtyPGU7cisrKW9bcl09YXJndW1lbnRzW3JdO3JldHVybiBvW2VdPWksdC5hcHBseSh0aGlzLG8pfX0seD1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm57fTtpZihtKXJldHVybiBtKHQpO2cucHJvdG90eXBlPXQ7dmFyIGU9bmV3IGc7cmV0dXJuIGcucHJvdG90eXBlPW51bGwsZX0sTT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxTPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJmQuY2FsbCh0LGUpfSxFPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXtpZihudWxsPT10KXJldHVybjt0PXRbZVtpXV19cmV0dXJuIG4/dDp2b2lkIDB9LEE9TWF0aC5wb3coMiw1MyktMSxDPU0oImxlbmd0aCIpLGs9ZnVuY3Rpb24odCl7dmFyIGU9Qyh0KTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJmU8PUF9O3YuZWFjaD12LmZvckVhY2g9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7aWYoZT15KGUsbiksayh0KSlmb3IoaT0wLHI9dC5sZW5ndGg7aTxyO2krKyllKHRbaV0saSx0KTtlbHNle3ZhciBvPXYua2V5cyh0KTtmb3IoaT0wLHI9by5sZW5ndGg7aTxyO2krKyllKHRbb1tpXV0sb1tpXSx0KX1yZXR1cm4gdH0sdi5tYXA9di5jb2xsZWN0PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz1BcnJheShyKSxzPTA7czxyO3MrKyl7dmFyIGE9aT9pW3NdOnM7b1tzXT1lKHRbYV0sYSx0KX1yZXR1cm4gb307dmFyIE89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+PTM7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPSFrKGUpJiZ2LmtleXMoZSkscz0ob3x8ZSkubGVuZ3RoLGE9dD4wPzA6cy0xO2ZvcihyfHwoaT1lW28/b1thXTphXSxhKz10KTthPj0wJiZhPHM7YSs9dCl7dmFyIHU9bz9vW2FdOmE7aT1uKGksZVt1XSx1LGUpfXJldHVybiBpfShlLHkobixyLDQpLGksbyl9fTt2LnJlZHVjZT12LmZvbGRsPXYuaW5qZWN0PU8oMSksdi5yZWR1Y2VSaWdodD12LmZvbGRyPU8oLTEpLHYuZmluZD12LmRldGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9KGsodCk/di5maW5kSW5kZXg6di5maW5kS2V5KSh0LGUsbik7aWYodm9pZCAwIT09aSYmLTEhPT1pKXJldHVybiB0W2ldfSx2LmZpbHRlcj12LnNlbGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9W107cmV0dXJuIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixyKXtlKHQsbixyKSYmaS5wdXNoKHQpfSksaX0sdi5yZWplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2LmZpbHRlcih0LHYubmVnYXRlKF8oZSkpLG4pfSx2LmV2ZXJ5PXYuYWxsPWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKCFlKHRbc10scyx0KSlyZXR1cm4hMX1yZXR1cm4hMH0sdi5zb21lPXYuYW55PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKGUodFtzXSxzLHQpKXJldHVybiEwfXJldHVybiExfSx2LmNvbnRhaW5zPXYuaW5jbHVkZXM9di5pbmNsdWRlPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksKCJudW1iZXIiIT10eXBlb2Ygbnx8aSkmJihuPTApLHYuaW5kZXhPZih0LGUsbik+PTB9LHYuaW52b2tlPXcoZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7cmV0dXJuIHYuaXNGdW5jdGlvbihlKT9yPWU6di5pc0FycmF5KGUpJiYoaT1lLnNsaWNlKDAsLTEpLGU9ZVtlLmxlbmd0aC0xXSksdi5tYXAodCxmdW5jdGlvbih0KXt2YXIgbz1yO2lmKCFvKXtpZihpJiZpLmxlbmd0aCYmKHQ9RSh0LGkpKSxudWxsPT10KXJldHVybjtvPXRbZV19cmV0dXJuIG51bGw9PW8/bzpvLmFwcGx5KHQsbil9KX0pLHYucGx1Y2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdi5tYXAodCx2LnByb3BlcnR5KGUpKX0sdi53aGVyZT1mdW5jdGlvbih0LGUpe3JldHVybiB2LmZpbHRlcih0LHYubWF0Y2hlcihlKSl9LHYuZmluZFdoZXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZmluZCh0LHYubWF0Y2hlcihlKSl9LHYubWF4PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89LTEvMCxzPS0xLzA7aWYobnVsbD09ZXx8Im51bWJlciI9PXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIHRbMF0mJm51bGwhPXQpZm9yKHZhciBhPTAsdT0odD1rKHQpP3Q6di52YWx1ZXModCkpLmxlbmd0aDthPHU7YSsrKW51bGwhPShpPXRbYV0pJiZpPm8mJihvPWkpO2Vsc2UgZT1fKGUsbiksdi5lYWNoKHQsZnVuY3Rpb24odCxuLGkpeygocj1lKHQsbixpKSk+c3x8cj09PS0xLzAmJm89PT0tMS8wKSYmKG89dCxzPXIpfSk7cmV0dXJuIG99LHYubWluPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MS8wLHM9MS8wO2lmKG51bGw9PWV8fCJudW1iZXIiPT10eXBlb2YgZSYmIm9iamVjdCIhPXR5cGVvZiB0WzBdJiZudWxsIT10KWZvcih2YXIgYT0wLHU9KHQ9ayh0KT90OnYudmFsdWVzKHQpKS5sZW5ndGg7YTx1O2ErKyludWxsIT0oaT10W2FdKSYmaTxvJiYobz1pKTtlbHNlIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixpKXsoKHI9ZSh0LG4saSkpPHN8fHI9PT0xLzAmJm89PT0xLzApJiYobz10LHM9cil9KTtyZXR1cm4gb30sdi5zaHVmZmxlPWZ1bmN0aW9uKHQpe3JldHVybiB2LnNhbXBsZSh0LDEvMCl9LHYuc2FtcGxlPWZ1bmN0aW9uKHQsZSxuKXtpZihudWxsPT1lfHxuKXJldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksdFt2LnJhbmRvbSh0Lmxlbmd0aC0xKV07dmFyIGk9ayh0KT92LmNsb25lKHQpOnYudmFsdWVzKHQpLHI9QyhpKTtlPU1hdGgubWF4KE1hdGgubWluKGUsciksMCk7Zm9yKHZhciBvPXItMSxzPTA7czxlO3MrKyl7dmFyIGE9di5yYW5kb20ocyxvKSx1PWlbc107aVtzXT1pW2FdLGlbYV09dX1yZXR1cm4gaS5zbGljZSgwLGUpfSx2LnNvcnRCeT1mdW5jdGlvbih0LGUsbil7dmFyIGk9MDtyZXR1cm4gZT1fKGUsbiksdi5wbHVjayh2Lm1hcCh0LGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57dmFsdWU6dCxpbmRleDppKyssY3JpdGVyaWE6ZSh0LG4scil9fSkuc29ydChmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JpdGVyaWEsaT1lLmNyaXRlcmlhO2lmKG4hPT1pKXtpZihuPml8fHZvaWQgMD09PW4pcmV0dXJuIDE7aWYobjxpfHx2b2lkIDA9PT1pKXJldHVybi0xfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSwidmFsdWUiKX07dmFyIFA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3ZhciBvPWU/W1tdLFtdXTp7fTtyZXR1cm4gaT1fKGksciksdi5lYWNoKG4sZnVuY3Rpb24oZSxyKXt2YXIgcz1pKGUscixuKTt0KG8sZSxzKX0pLG99fTt2Lmdyb3VwQnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0ucHVzaChlKTp0W25dPVtlXX0pLHYuaW5kZXhCeT1QKGZ1bmN0aW9uKHQsZSxuKXt0W25dPWV9KSx2LmNvdW50Qnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0rKzp0W25dPTF9KTt2YXIgVD0vW15cdWQ4MDAtXHVkZmZmXXxbXHVkODAwLVx1ZGJmZl1bXHVkYzAwLVx1ZGZmZl18W1x1ZDgwMC1cdWRmZmZdL2c7di50b0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3YuaXNBcnJheSh0KT9oLmNhbGwodCk6di5pc1N0cmluZyh0KT90Lm1hdGNoKFQpOmsodCk/di5tYXAodCx2LmlkZW50aXR5KTp2LnZhbHVlcyh0KTpbXX0sdi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PzA6ayh0KT90Lmxlbmd0aDp2LmtleXModCkubGVuZ3RofSx2LnBhcnRpdGlvbj1QKGZ1bmN0aW9uKHQsZSxuKXt0W24/MDoxXS5wdXNoKGUpfSwhMCksdi5maXJzdD12LmhlYWQ9di50YWtlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09dHx8dC5sZW5ndGg8MT9udWxsPT1lP3ZvaWQgMDpbXTpudWxsPT1lfHxuP3RbMF06di5pbml0aWFsKHQsdC5sZW5ndGgtZSl9LHYuaW5pdGlhbD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LDAsTWF0aC5tYXgoMCx0Lmxlbmd0aC0obnVsbD09ZXx8bj8xOmUpKSl9LHYubGFzdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PXR8fHQubGVuZ3RoPDE/bnVsbD09ZT92b2lkIDA6W106bnVsbD09ZXx8bj90W3QubGVuZ3RoLTFdOnYucmVzdCh0LE1hdGgubWF4KDAsdC5sZW5ndGgtZSkpfSx2LnJlc3Q9di50YWlsPXYuZHJvcD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LG51bGw9PWV8fG4/MTplKX0sdi5jb21wYWN0PWZ1bmN0aW9uKHQpe3JldHVybiB2LmZpbHRlcih0LEJvb2xlYW4pfTt2YXIgaj1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9KGk9aXx8W10pLmxlbmd0aCxvPTAscz1DKHQpO288cztvKyspe3ZhciBhPXRbb107aWYoayhhKSYmKHYuaXNBcnJheShhKXx8di5pc0FyZ3VtZW50cyhhKSkpaWYoZSlmb3IodmFyIHU9MCxjPWEubGVuZ3RoO3U8YzspaVtyKytdPWFbdSsrXTtlbHNlIGooYSxlLG4saSkscj1pLmxlbmd0aDtlbHNlIG58fChpW3IrK109YSl9cmV0dXJuIGl9O3YuZmxhdHRlbj1mdW5jdGlvbih0LGUpe3JldHVybiBqKHQsZSwhMSl9LHYud2l0aG91dD13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZGlmZmVyZW5jZSh0LGUpfSksdi51bmlxPXYudW5pcXVlPWZ1bmN0aW9uKHQsZSxuLGkpe3YuaXNCb29sZWFuKGUpfHwoaT1uLG49ZSxlPSExKSxudWxsIT1uJiYobj1fKG4saSkpO2Zvcih2YXIgcj1bXSxvPVtdLHM9MCxhPUModCk7czxhO3MrKyl7dmFyIHU9dFtzXSxjPW4/bih1LHMsdCk6dTtlJiYhbj8ocyYmbz09PWN8fHIucHVzaCh1KSxvPWMpOm4/di5jb250YWlucyhvLGMpfHwoby5wdXNoKGMpLHIucHVzaCh1KSk6di5jb250YWlucyhyLHUpfHxyLnB1c2godSl9cmV0dXJuIHJ9LHYudW5pb249dyhmdW5jdGlvbih0KXtyZXR1cm4gdi51bmlxKGoodCwhMCwhMCkpfSksdi5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49YXJndW1lbnRzLmxlbmd0aCxpPTAscj1DKHQpO2k8cjtpKyspe3ZhciBvPXRbaV07aWYoIXYuY29udGFpbnMoZSxvKSl7dmFyIHM7Zm9yKHM9MTtzPG4mJnYuY29udGFpbnMoYXJndW1lbnRzW3NdLG8pO3MrKyk7cz09PW4mJmUucHVzaChvKX19cmV0dXJuIGV9LHYuZGlmZmVyZW5jZT13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9aihlLCEwLCEwKSx2LmZpbHRlcih0LGZ1bmN0aW9uKHQpe3JldHVybiF2LmNvbnRhaW5zKGUsdCl9KX0pLHYudW56aXA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQmJnYubWF4KHQsQykubGVuZ3RofHwwLG49QXJyYXkoZSksaT0wO2k8ZTtpKyspbltpXT12LnBsdWNrKHQsaSk7cmV0dXJuIG59LHYuemlwPXcodi51bnppcCksdi5vYmplY3Q9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49e30saT0wLHI9Qyh0KTtpPHI7aSsrKWU/blt0W2ldXT1lW2ldOm5bdFtpXVswXV09dFtpXVsxXTtyZXR1cm4gbn07dmFyIEk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtuPV8obixpKTtmb3IodmFyIHI9QyhlKSxvPXQ+MD8wOnItMTtvPj0wJiZvPHI7bys9dClpZihuKGVbb10sbyxlKSlyZXR1cm4gbztyZXR1cm4tMX19O3YuZmluZEluZGV4PUkoMSksdi5maW5kTGFzdEluZGV4PUkoLTEpLHYuc29ydGVkSW5kZXg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPShuPV8obixpLDEpKShlKSxvPTAscz1DKHQpO288czspe3ZhciBhPU1hdGguZmxvb3IoKG8rcykvMik7bih0W2FdKTxyP289YSsxOnM9YX1yZXR1cm4gb307dmFyIEw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihpLHIsbyl7dmFyIHM9MCxhPUMoaSk7aWYoIm51bWJlciI9PXR5cGVvZiBvKXQ+MD9zPW8+PTA/bzpNYXRoLm1heChvK2Escyk6YT1vPj0wP01hdGgubWluKG8rMSxhKTpvK2ErMTtlbHNlIGlmKG4mJm8mJmEpcmV0dXJuIGlbbz1uKGkscildPT09cj9vOi0xO2lmKHIhPXIpcmV0dXJuKG89ZShoLmNhbGwoaSxzLGEpLHYuaXNOYU4pKT49MD9vK3M6LTE7Zm9yKG89dD4wP3M6YS0xO28+PTAmJm88YTtvKz10KWlmKGlbb109PT1yKXJldHVybiBvO3JldHVybi0xfX07di5pbmRleE9mPUwoMSx2LmZpbmRJbmRleCx2LnNvcnRlZEluZGV4KSx2Lmxhc3RJbmRleE9mPUwoLTEsdi5maW5kTGFzdEluZGV4KSx2LnJhbmdlPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1lJiYoZT10fHwwLHQ9MCksbnx8KG49ZTx0Py0xOjEpO2Zvcih2YXIgaT1NYXRoLm1heChNYXRoLmNlaWwoKGUtdCkvbiksMCkscj1BcnJheShpKSxvPTA7bzxpO28rKyx0Kz1uKXJbb109dDtyZXR1cm4gcn0sdi5jaHVuaz1mdW5jdGlvbih0LGUpe2lmKG51bGw9PWV8fGU8MSlyZXR1cm5bXTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOyluLnB1c2goaC5jYWxsKHQsaSxpKz1lKSk7cmV0dXJuIG59O3ZhciBCPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIShpIGluc3RhbmNlb2YgZSkpcmV0dXJuIHQuYXBwbHkobixyKTt2YXIgbz14KHQucHJvdG90eXBlKSxzPXQuYXBwbHkobyxyKTtyZXR1cm4gdi5pc09iamVjdChzKT9zOm99O3YuYmluZD13KGZ1bmN0aW9uKHQsZSxuKXtpZighdi5pc0Z1bmN0aW9uKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkJpbmQgbXVzdCBiZSBjYWxsZWQgb24gYSBmdW5jdGlvbiIpO3ZhciBpPXcoZnVuY3Rpb24ocil7cmV0dXJuIEIodCxpLGUsdGhpcyxuLmNvbmNhdChyKSl9KTtyZXR1cm4gaX0pLHYucGFydGlhbD13KGZ1bmN0aW9uKHQsZSl7dmFyIG49di5wYXJ0aWFsLnBsYWNlaG9sZGVyLGk9ZnVuY3Rpb24oKXtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLHM9QXJyYXkobyksYT0wO2E8bzthKyspc1thXT1lW2FdPT09bj9hcmd1bWVudHNbcisrXTplW2FdO2Zvcig7cjxhcmd1bWVudHMubGVuZ3RoOylzLnB1c2goYXJndW1lbnRzW3IrK10pO3JldHVybiBCKHQsaSx0aGlzLHRoaXMscyl9O3JldHVybiBpfSksdi5wYXJ0aWFsLnBsYWNlaG9sZGVyPXYsdi5iaW5kQWxsPXcoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT1qKGUsITEsITEpKS5sZW5ndGg7aWYobjwxKXRocm93IG5ldyBFcnJvcigiYmluZEFsbCBtdXN0IGJlIHBhc3NlZCBmdW5jdGlvbiBuYW1lcyIpO2Zvcig7bi0tOyl7dmFyIGk9ZVtuXTt0W2ldPXYuYmluZCh0W2ldLHQpfX0pLHYubWVtb2l6ZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKGkpe3ZhciByPW4uY2FjaGUsbz0iIisoZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKTtyZXR1cm4gUyhyLG8pfHwocltvXT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkscltvXX07cmV0dXJuIG4uY2FjaGU9e30sbn0sdi5kZWxheT13KGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KG51bGwsbil9LGUpfSksdi5kZWZlcj12LnBhcnRpYWwodi5kZWxheSx2LDEpLHYudGhyb3R0bGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGE9MDtufHwobj17fSk7dmFyIHU9ZnVuY3Rpb24oKXthPSExPT09bi5sZWFkaW5nPzA6di5ub3coKSxpPW51bGwscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKX0sYz1mdW5jdGlvbigpe3ZhciBjPXYubm93KCk7YXx8ITEhPT1uLmxlYWRpbmd8fChhPWMpO3ZhciBoPWUtKGMtYSk7cmV0dXJuIHI9dGhpcyxvPWFyZ3VtZW50cyxoPD0wfHxoPmU/KGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxhPWMscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKSk6aXx8ITE9PT1uLnRyYWlsaW5nfHwoaT1zZXRUaW1lb3V0KHUsaCkpLHN9O3JldHVybiBjLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxhPTAsaT1yPW89bnVsbH0sY30sdi5kZWJvdW5jZT1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvPWZ1bmN0aW9uKGUsbil7aT1udWxsLG4mJihyPXQuYXBwbHkoZSxuKSl9LHM9dyhmdW5jdGlvbihzKXtpZihpJiZjbGVhclRpbWVvdXQoaSksbil7dmFyIGE9IWk7aT1zZXRUaW1lb3V0KG8sZSksYSYmKHI9dC5hcHBseSh0aGlzLHMpKX1lbHNlIGk9di5kZWxheShvLGUsdGhpcyxzKTtyZXR1cm4gcn0pO3JldHVybiBzLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxpPW51bGx9LHN9LHYud3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiB2LnBhcnRpYWwoZSx0KX0sdi5uZWdhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdi5jb21wb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49ZSxpPXRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpO24tLTspaT10W25dLmNhbGwodGhpcyxpKTtyZXR1cm4gaX19LHYuYWZ0ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigtLXQ8MSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx2LmJlZm9yZT1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBmdW5jdGlvbigpe3JldHVybi0tdD4wJiYobj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdDw9MSYmKGU9bnVsbCksbn19LHYub25jZT12LnBhcnRpYWwodi5iZWZvcmUsMiksdi5yZXN0QXJndW1lbnRzPXc7dmFyIEQ9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxSPVsidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdLHo9ZnVuY3Rpb24odCxlKXt2YXIgbj1SLmxlbmd0aCxpPXQuY29uc3RydWN0b3Iscj12LmlzRnVuY3Rpb24oaSkmJmkucHJvdG90eXBlfHxhLG89ImNvbnN0cnVjdG9yIjtmb3IoUyh0LG8pJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyk7bi0tOykobz1SW25dKWluIHQmJnRbb10hPT1yW29dJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyl9O3Yua2V5cz1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm5bXTtpZihwKXJldHVybiBwKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KVModCxuKSYmZS5wdXNoKG4pO3JldHVybiBEJiZ6KHQsZSksZX0sdi5hbGxLZXlzPWZ1bmN0aW9uKHQpe2lmKCF2LmlzT2JqZWN0KHQpKXJldHVybltdO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gRCYmeih0LGUpLGV9LHYudmFsdWVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT12LmtleXModCksbj1lLmxlbmd0aCxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09dFtlW3JdXTtyZXR1cm4gaX0sdi5tYXBPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe2U9XyhlLG4pO2Zvcih2YXIgaT12LmtleXModCkscj1pLmxlbmd0aCxvPXt9LHM9MDtzPHI7cysrKXt2YXIgYT1pW3NdO29bYV09ZSh0W2FdLGEsdCl9cmV0dXJuIG99LHYucGFpcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXYua2V5cyh0KSxuPWUubGVuZ3RoLGk9QXJyYXkobikscj0wO3I8bjtyKyspaVtyXT1bZVtyXSx0W2Vbcl1dXTtyZXR1cm4gaX0sdi5pbnZlcnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LG49di5rZXlzKHQpLGk9MCxyPW4ubGVuZ3RoO2k8cjtpKyspZVt0W25baV1dXT1uW2ldO3JldHVybiBlfSx2LmZ1bmN0aW9ucz12Lm1ldGhvZHM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpdi5pc0Z1bmN0aW9uKHRbbl0pJiZlLnB1c2gobik7cmV0dXJuIGUuc29ydCgpfTt2YXIgTj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKGUmJihuPU9iamVjdChuKSksaTwyfHxudWxsPT1uKXJldHVybiBuO2Zvcih2YXIgcj0xO3I8aTtyKyspZm9yKHZhciBvPWFyZ3VtZW50c1tyXSxzPXQobyksYT1zLmxlbmd0aCx1PTA7dTxhO3UrKyl7dmFyIGM9c1t1XTtlJiZ2b2lkIDAhPT1uW2NdfHwobltjXT1vW2NdKX1yZXR1cm4gbn19O3YuZXh0ZW5kPU4odi5hbGxLZXlzKSx2LmV4dGVuZE93bj12LmFzc2lnbj1OKHYua2V5cyksdi5maW5kS2V5PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGkscj12LmtleXModCksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihlKHRbaT1yW29dXSxpLHQpKXJldHVybiBpfTt2YXIgVyxxLEg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluIG59O3YucGljaz13KGZ1bmN0aW9uKHQsZSl7dmFyIG49e30saT1lWzBdO2lmKG51bGw9PXQpcmV0dXJuIG47di5pc0Z1bmN0aW9uKGkpPyhlLmxlbmd0aD4xJiYoaT15KGksZVsxXSkpLGU9di5hbGxLZXlzKHQpKTooaT1ILGU9aihlLCExLCExKSx0PU9iamVjdCh0KSk7Zm9yKHZhciByPTAsbz1lLmxlbmd0aDtyPG87cisrKXt2YXIgcz1lW3JdLGE9dFtzXTtpKGEscyx0KSYmKG5bc109YSl9cmV0dXJuIG59KSx2Lm9taXQ9dyhmdW5jdGlvbih0LGUpe3ZhciBuLGk9ZVswXTtyZXR1cm4gdi5pc0Z1bmN0aW9uKGkpPyhpPXYubmVnYXRlKGkpLGUubGVuZ3RoPjEmJihuPWVbMV0pKTooZT12Lm1hcChqKGUsITEsITEpLFN0cmluZyksaT1mdW5jdGlvbih0LG4pe3JldHVybiF2LmNvbnRhaW5zKGUsbil9KSx2LnBpY2sodCxpLG4pfSksdi5kZWZhdWx0cz1OKHYuYWxsS2V5cywhMCksdi5jcmVhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj14KHQpO3JldHVybiBlJiZ2LmV4dGVuZE93bihuLGUpLG59LHYuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHYuaXNPYmplY3QodCk/di5pc0FycmF5KHQpP3Quc2xpY2UoKTp2LmV4dGVuZCh7fSx0KTp0fSx2LnRhcD1mdW5jdGlvbih0LGUpe3JldHVybiBlKHQpLHR9LHYuaXNNYXRjaD1mdW5jdGlvbih0LGUpe3ZhciBuPXYua2V5cyhlKSxpPW4ubGVuZ3RoO2lmKG51bGw9PXQpcmV0dXJuIWk7Zm9yKHZhciByPU9iamVjdCh0KSxvPTA7bzxpO28rKyl7dmFyIHM9bltvXTtpZihlW3NdIT09cltzXXx8IShzIGluIHIpKXJldHVybiExfXJldHVybiEwfSxXPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9PT1lKXJldHVybiAwIT09dHx8MS90PT0xL2U7aWYobnVsbD09dHx8bnVsbD09ZSlyZXR1cm4hMTtpZih0IT10KXJldHVybiBlIT1lO3ZhciByPXR5cGVvZiB0O3JldHVybigiZnVuY3Rpb24iPT09cnx8Im9iamVjdCI9PT1yfHwib2JqZWN0Ij09dHlwZW9mIGUpJiZxKHQsZSxuLGkpfSxxPWZ1bmN0aW9uKHQsZSxuLGkpe3QgaW5zdGFuY2VvZiB2JiYodD10Ll93cmFwcGVkKSxlIGluc3RhbmNlb2YgdiYmKGU9ZS5fd3JhcHBlZCk7dmFyIHI9bC5jYWxsKHQpO2lmKHIhPT1sLmNhbGwoZSkpcmV0dXJuITE7c3dpdGNoKHIpe2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIiIrdD09IiIrZTtjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuK3QhPSt0PytlIT0rZTowPT0rdD8xLyt0PT0xL2U6K3Q9PStlO2Nhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpyZXR1cm4rdD09K2U7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiB1LnZhbHVlT2YuY2FsbCh0KT09PXUudmFsdWVPZi5jYWxsKGUpfXZhciBvPSJbb2JqZWN0IEFycmF5XSI9PT1yO2lmKCFvKXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4hMTt2YXIgcz10LmNvbnN0cnVjdG9yLGE9ZS5jb25zdHJ1Y3RvcjtpZihzIT09YSYmISh2LmlzRnVuY3Rpb24ocykmJnMgaW5zdGFuY2VvZiBzJiZ2LmlzRnVuY3Rpb24oYSkmJmEgaW5zdGFuY2VvZiBhKSYmImNvbnN0cnVjdG9yImluIHQmJiJjb25zdHJ1Y3RvciJpbiBlKXJldHVybiExfWk9aXx8W107Zm9yKHZhciBjPShuPW58fFtdKS5sZW5ndGg7Yy0tOylpZihuW2NdPT09dClyZXR1cm4gaVtjXT09PWU7aWYobi5wdXNoKHQpLGkucHVzaChlKSxvKXtpZigoYz10Lmxlbmd0aCkhPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IoO2MtLTspaWYoIVcodFtjXSxlW2NdLG4saSkpcmV0dXJuITF9ZWxzZXt2YXIgaCxkPXYua2V5cyh0KTtpZihjPWQubGVuZ3RoLHYua2V5cyhlKS5sZW5ndGghPT1jKXJldHVybiExO2Zvcig7Yy0tOylpZihoPWRbY10sIVMoZSxoKXx8IVcodFtoXSxlW2hdLG4saSkpcmV0dXJuITF9cmV0dXJuIG4ucG9wKCksaS5wb3AoKSwhMH0sdi5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFcodCxlKX0sdi5pc0VtcHR5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwoayh0KSYmKHYuaXNBcnJheSh0KXx8di5pc1N0cmluZyh0KXx8di5pc0FyZ3VtZW50cyh0KSk/MD09PXQubGVuZ3RoOjA9PT12LmtleXModCkubGVuZ3RoKX0sdi5pc0VsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8MSE9PXQubm9kZVR5cGUpfSx2LmlzQXJyYXk9Znx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PWwuY2FsbCh0KX0sdi5pc09iamVjdD1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4iZnVuY3Rpb24iPT09ZXx8Im9iamVjdCI9PT1lJiYhIXR9LHYuZWFjaChbIkFyZ3VtZW50cyIsIkZ1bmN0aW9uIiwiU3RyaW5nIiwiTnVtYmVyIiwiRGF0ZSIsIlJlZ0V4cCIsIkVycm9yIiwiU3ltYm9sIiwiTWFwIiwiV2Vha01hcCIsIlNldCIsIldlYWtTZXQiXSxmdW5jdGlvbih0KXt2WyJpcyIrdF09ZnVuY3Rpb24oZSl7cmV0dXJuIGwuY2FsbChlKT09PSJbb2JqZWN0ICIrdCsiXSJ9fSksdi5pc0FyZ3VtZW50cyhhcmd1bWVudHMpfHwodi5pc0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gUyh0LCJjYWxsZWUiKX0pO3ZhciBGPXIuZG9jdW1lbnQmJnIuZG9jdW1lbnQuY2hpbGROb2Rlczsib2JqZWN0IiE9dHlwZW9mIEludDhBcnJheSYmImZ1bmN0aW9uIiE9dHlwZW9mIEYmJih2LmlzRnVuY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR8fCExfSksdi5pc0Zpbml0ZT1mdW5jdGlvbih0KXtyZXR1cm4hdi5pc1N5bWJvbCh0KSYmaXNGaW5pdGUodCkmJiFpc05hTihwYXJzZUZsb2F0KHQpKX0sdi5pc05hTj1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc051bWJlcih0KSYmaXNOYU4odCl9LHYuaXNCb29sZWFuPWZ1bmN0aW9uKHQpe3JldHVybiEwPT09dHx8ITE9PT10fHwiW29iamVjdCBCb29sZWFuXSI9PT1sLmNhbGwodCl9LHYuaXNOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dH0sdi5pc1VuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dH0sdi5oYXM9ZnVuY3Rpb24odCxlKXtpZighdi5pc0FycmF5KGUpKXJldHVybiBTKHQsZSk7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXt2YXIgcj1lW2ldO2lmKG51bGw9PXR8fCFkLmNhbGwodCxyKSlyZXR1cm4hMTt0PXRbcl19cmV0dXJuISFufSx2Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5fPW8sdGhpc30sdi5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sdi5jb25zdGFudD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LHYubm9vcD1mdW5jdGlvbigpe30sdi5wcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc0FycmF5KHQpP2Z1bmN0aW9uKGUpe3JldHVybiBFKGUsdCl9Ok0odCl9LHYucHJvcGVydHlPZj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNBcnJheShlKT9FKHQsZSk6dFtlXX19LHYubWF0Y2hlcj12Lm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9di5leHRlbmRPd24oe30sdCksZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNNYXRjaChlLHQpfX0sdi50aW1lcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9QXJyYXkoTWF0aC5tYXgoMCx0KSk7ZT15KGUsbiwxKTtmb3IodmFyIHI9MDtyPHQ7cisrKWlbcl09ZShyKTtyZXR1cm4gaX0sdi5yYW5kb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZSYmKGU9dCx0PTApLHQrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLXQrMSkpfSx2Lm5vdz1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07dmFyIFY9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImI3gyNzsiLCJgIjoiJiN4NjA7In0sVT12LmludmVydChWKSxLPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSxuPSIoPzoiK3Yua2V5cyh0KS5qb2luKCJ8IikrIikiLGk9UmVnRXhwKG4pLHI9UmVnRXhwKG4sImciKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8iIjoiIit0LGkudGVzdCh0KT90LnJlcGxhY2UocixlKTp0fX07di5lc2NhcGU9SyhWKSx2LnVuZXNjYXBlPUsoVSksdi5yZXN1bHQ9ZnVuY3Rpb24odCxlLG4pe3YuaXNBcnJheShlKXx8KGU9W2VdKTt2YXIgaT1lLmxlbmd0aDtpZighaSlyZXR1cm4gdi5pc0Z1bmN0aW9uKG4pP24uY2FsbCh0KTpuO2Zvcih2YXIgcj0wO3I8aTtyKyspe3ZhciBvPW51bGw9PXQ/dm9pZCAwOnRbZVtyXV07dm9pZCAwPT09byYmKG89bixyPWkpLHQ9di5pc0Z1bmN0aW9uKG8pP28uY2FsbCh0KTpvfXJldHVybiB0fTt2YXIgWT0wO3YudW5pcXVlSWQ9ZnVuY3Rpb24odCl7dmFyIGU9KytZKyIiO3JldHVybiB0P3QrZTplfSx2LnRlbXBsYXRlU2V0dGluZ3M9e2V2YWx1YXRlOi88JShbXHNcU10rPyklPi9nLGludGVycG9sYXRlOi88JT0oW1xzXFNdKz8pJT4vZyxlc2NhcGU6LzwlLShbXHNcU10rPyklPi9nfTt2YXIgWD0vKC4pXi8sJD17IiciOiInIiwiXFwiOiJcXCIsIlxyIjoiciIsIlxuIjoibiIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxHPS9cXHwnfFxyfFxufFx1MjAyOHxcdTIwMjkvZyxKPWZ1bmN0aW9uKHQpe3JldHVybiJcXCIrJFt0XX07di50ZW1wbGF0ZT1mdW5jdGlvbih0LGUsbil7IWUmJm4mJihlPW4pLGU9di5kZWZhdWx0cyh7fSxlLHYudGVtcGxhdGVTZXR0aW5ncyk7dmFyIGkscj1SZWdFeHAoWyhlLmVzY2FwZXx8WCkuc291cmNlLChlLmludGVycG9sYXRlfHxYKS5zb3VyY2UsKGUuZXZhbHVhdGV8fFgpLnNvdXJjZV0uam9pbigifCIpKyJ8JCIsImciKSxvPTAscz0iX19wKz0nIjt0LnJlcGxhY2UocixmdW5jdGlvbihlLG4saSxyLGEpe3JldHVybiBzKz10LnNsaWNlKG8sYSkucmVwbGFjZShHLEopLG89YStlLmxlbmd0aCxuP3MrPSInK1xuKChfX3Q9KCIrbisiKSk9PW51bGw/Jyc6Xy5lc2NhcGUoX190KSkrXG4nIjppP3MrPSInK1xuKChfX3Q9KCIraSsiKSk9PW51bGw/Jyc6X190KStcbiciOnImJihzKz0iJztcbiIrcisiXG5fX3ArPSciKSxlfSkscys9Iic7XG4iLGUudmFyaWFibGV8fChzPSJ3aXRoKG9ianx8e30pe1xuIitzKyJ9XG4iKSxzPSJ2YXIgX190LF9fcD0nJyxfX2o9QXJyYXkucHJvdG90eXBlLmpvaW4scHJpbnQ9ZnVuY3Rpb24oKXtfX3ArPV9fai5jYWxsKGFyZ3VtZW50cywnJyk7fTtcbiIrcysicmV0dXJuIF9fcDtcbiI7dHJ5e2k9bmV3IEZ1bmN0aW9uKGUudmFyaWFibGV8fCJvYmoiLCJfIixzKX1jYXRjaCh0KXt0aHJvdyB0LnNvdXJjZT1zLHR9dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY2FsbCh0aGlzLHQsdil9LHU9ZS52YXJpYWJsZXx8Im9iaiI7cmV0dXJuIGEuc291cmNlPSJmdW5jdGlvbigiK3UrIil7XG4iK3MrIn0iLGF9LHYuY2hhaW49ZnVuY3Rpb24odCl7dmFyIGU9dih0KTtyZXR1cm4gZS5fY2hhaW49ITAsZX07dmFyIFo9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2hhaW4/dihlKS5jaGFpbigpOmV9O3YubWl4aW49ZnVuY3Rpb24odCl7cmV0dXJuIHYuZWFjaCh2LmZ1bmN0aW9ucyh0KSxmdW5jdGlvbihlKXt2YXIgbj12W2VdPXRbZV07di5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5fd3JhcHBlZF07cmV0dXJuIGMuYXBwbHkodCxhcmd1bWVudHMpLFoodGhpcyxuLmFwcGx5KHYsdCkpfX0pLHZ9LHYubWl4aW4odiksdi5lYWNoKFsicG9wIiwicHVzaCIsInJldmVyc2UiLCJzaGlmdCIsInNvcnQiLCJzcGxpY2UiLCJ1bnNoaWZ0Il0sZnVuY3Rpb24odCl7dmFyIGU9c1t0XTt2LnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuX3dyYXBwZWQ7cmV0dXJuIGUuYXBwbHkobixhcmd1bWVudHMpLCJzaGlmdCIhPT10JiYic3BsaWNlIiE9PXR8fDAhPT1uLmxlbmd0aHx8ZGVsZXRlIG5bMF0sWih0aGlzLG4pfX0pLHYuZWFjaChbImNvbmNhdCIsImpvaW4iLCJzbGljZSJdLGZ1bmN0aW9uKHQpe3ZhciBlPXNbdF07di5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gWih0aGlzLGUuYXBwbHkodGhpcy5fd3JhcHBlZCxhcmd1bWVudHMpKX19KSx2LnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwcGVkfSx2LnByb3RvdHlwZS52YWx1ZU9mPXYucHJvdG90eXBlLnRvSlNPTj12LnByb3RvdHlwZS52YWx1ZSx2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5fd3JhcHBlZCl9LHZvaWQgMD09PShpPWZ1bmN0aW9uKCl7cmV0dXJuIHZ9LmFwcGx5KGUsW10pKXx8KG4uZXhwb3J0cz1pKX0oKX0pLmNhbGwodGhpcyxuKDEzKSxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNSksdT1uKDMwKSxjPW4oMTEpLGg9big3NyksbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2ZsYWdzPTAsdGhpcy5fbGF5b3V0PW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZGlzcG9zZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMubm9kZT1vLmNyZWF0ZU5vZGUodCksdGhpcy5hZGRDbGFzcygicC1XaWRnZXQiKX1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuaXNEaXNwb3NlZHx8KHRoaXMuc2V0RmxhZyh0LkZsYWcuSXNEaXNwb3NlZCksdGhpcy5fZGlzcG9zZWQuZW1pdCh2b2lkIDApLHRoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKSx0aGlzLl9sYXlvdXQmJih0aGlzLl9sYXlvdXQuZGlzcG9zZSgpLHRoaXMuX2xheW91dD1udWxsKSxjLlNpZ25hbC5jbGVhckRhdGEodGhpcyksYS5NZXNzYWdlTG9vcC5jbGVhckRhdGEodGhpcyksdS5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzRGlzcG9zZWQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzSGlkZGVuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzSGlkZGVuKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVmlzaWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc1Zpc2libGUpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidGl0bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby50aXRsZVByb3BlcnR5LmdldCh0aGlzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5pZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubm9kZS5pZD10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZGF0YXNldH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9wYXJlbnQhPT1lKXtpZihlJiZ0aGlzLmNvbnRhaW5zKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwYXJlbnQgd2lkZ2V0LiIpO2lmKHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXt2YXIgbj1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLXJlbW92ZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfWlmKHRoaXMuX3BhcmVudD1lLHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXtuPW5ldyB0LkNoaWxkTWVzc2FnZSgiY2hpbGQtYWRkZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfXRoaXMuaXNEaXNwb3NlZHx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLlBhcmVudENoYW5nZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxheW91dCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXlvdXR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9sYXlvdXQhPT1lKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5EaXNhbGxvd0xheW91dCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHdpZGdldCBsYXlvdXQuIik7aWYodGhpcy5fbGF5b3V0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSB3aWRnZXQgbGF5b3V0LiIpO2lmKGUucGFyZW50KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSBsYXlvdXQgcGFyZW50LiIpO3RoaXMuX2xheW91dD1lLGUucGFyZW50PXRoaXN9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dD90aGlzLl9sYXlvdXQuaXRlcigpOnMuZW1wdHkoKX0sdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQ7ZTtlPWUuX3BhcmVudClpZihlPT09dGhpcylyZXR1cm4hMDtyZXR1cm4hMX0sdC5wcm90b3R5cGUuaGFzQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5jbGFzc0xpc3QuY29udGFpbnModCl9LHQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmVDbGFzcz1mdW5jdGlvbih0KXt0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSh0KX0sdC5wcm90b3R5cGUudG9nZ2xlQ2xhc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4hMD09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpLCEwKTohMT09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QucmVtb3ZlKHQpLCExKTp0aGlzLm5vZGUuY2xhc3NMaXN0LnRvZ2dsZSh0KX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLlVwZGF0ZVJlcXVlc3QpfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24oKXthLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsdC5Nc2cuRml0UmVxdWVzdCl9LHQucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLkFjdGl2YXRlUmVxdWVzdCl9LHQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkNsb3NlUmVxdWVzdCl9LHQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0hpZGRlbikmJighdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkJlZm9yZVNob3cpLHRoaXMuY2xlYXJGbGFnKHQuRmxhZy5Jc0hpZGRlbiksdGhpcy5yZW1vdmVDbGFzcygicC1tb2QtaGlkZGVuIiksIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5BZnRlclNob3cpLHRoaXMucGFyZW50KSl7dmFyIGU9bmV3IHQuQ2hpbGRNZXNzYWdlKCJjaGlsZC1zaG93biIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50ZXN0RmxhZyh0LkZsYWcuSXNIaWRkZW4pJiYoIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5CZWZvcmVIaWRlKSx0aGlzLnNldEZsYWcodC5GbGFnLklzSGlkZGVuKSx0aGlzLmFkZENsYXNzKCJwLW1vZC1oaWRkZW4iKSwhdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkFmdGVySGlkZSksdGhpcy5wYXJlbnQpKXt2YXIgZT1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLWhpZGRlbiIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLnNldEhpZGRlbj1mdW5jdGlvbih0KXt0P3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnByb3RvdHlwZS50ZXN0RmxhZz1mdW5jdGlvbih0KXtyZXR1cm4gMCE9KHRoaXMuX2ZsYWdzJnQpfSx0LnByb3RvdHlwZS5zZXRGbGFnPWZ1bmN0aW9uKHQpe3RoaXMuX2ZsYWdzfD10fSx0LnByb3RvdHlwZS5jbGVhckZsYWc9ZnVuY3Rpb24odCl7dGhpcy5fZmxhZ3MmPX50fSx0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXtzd2l0Y2goZS50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vblJlc2l6ZShlKTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uVXBkYXRlUmVxdWVzdChlKTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uRml0UmVxdWVzdChlKTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlU2hvdyhlKTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMuc2V0RmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJTaG93KGUpO2JyZWFrO2Nhc2UiYmVmb3JlLWhpZGUiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVIaWRlKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItaGlkZSI6dGhpcy5jbGVhckZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVySGlkZShlKTticmVhaztjYXNlImJlZm9yZS1hdHRhY2giOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVBdHRhY2goZSk7YnJlYWs7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMuaXNIaWRkZW58fHRoaXMucGFyZW50JiYhdGhpcy5wYXJlbnQuaXNWaXNpYmxlfHx0aGlzLnNldEZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5zZXRGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJBdHRhY2goZSk7YnJlYWs7Y2FzZSJiZWZvcmUtZGV0YWNoIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItZGV0YWNoIjp0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNBdHRhY2hlZCksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVyRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWN0aXZhdGUtcmVxdWVzdCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFjdGl2YXRlUmVxdWVzdChlKTticmVhaztjYXNlImNsb3NlLXJlcXVlc3QiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25DbG9zZVJlcXVlc3QoZSk7YnJlYWs7Y2FzZSJjaGlsZC1hZGRlZCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkNoaWxkQWRkZWQoZSk7YnJlYWs7Y2FzZSJjaGlsZC1yZW1vdmVkIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQ2hpbGRSZW1vdmVkKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5ub3RpZnlMYXlvdXQoZSl9fSx0LnByb3RvdHlwZS5ub3RpZnlMYXlvdXQ9ZnVuY3Rpb24odCl7dGhpcy5fbGF5b3V0JiZ0aGlzLl9sYXlvdXQucHJvY2Vzc1BhcmVudE1lc3NhZ2UodCl9LHQucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25CZWZvcmVIaWRlPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25BZnRlckhpZGU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZURldGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt9LHR9KCk7ZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dFt0LklzRGlzcG9zZWQ9MV09IklzRGlzcG9zZWQiLHRbdC5Jc0F0dGFjaGVkPTJdPSJJc0F0dGFjaGVkIix0W3QuSXNIaWRkZW49NF09IklzSGlkZGVuIix0W3QuSXNWaXNpYmxlPThdPSJJc1Zpc2libGUiLHRbdC5EaXNhbGxvd0xheW91dD0xNl09IkRpc2FsbG93TGF5b3V0In0odC5GbGFnfHwodC5GbGFnPXt9KSksZnVuY3Rpb24odCl7dC5CZWZvcmVTaG93PW5ldyBhLk1lc3NhZ2UoImJlZm9yZS1zaG93IiksdC5BZnRlclNob3c9bmV3IGEuTWVzc2FnZSgiYWZ0ZXItc2hvdyIpLHQuQmVmb3JlSGlkZT1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtaGlkZSIpLHQuQWZ0ZXJIaWRlPW5ldyBhLk1lc3NhZ2UoImFmdGVyLWhpZGUiKSx0LkJlZm9yZUF0dGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtYXR0YWNoIiksdC5BZnRlckF0dGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1hdHRhY2giKSx0LkJlZm9yZURldGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtZGV0YWNoIiksdC5BZnRlckRldGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1kZXRhY2giKSx0LlBhcmVudENoYW5nZWQ9bmV3IGEuTWVzc2FnZSgicGFyZW50LWNoYW5nZWQiKSx0LlVwZGF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJ1cGRhdGUtcmVxdWVzdCIpLHQuRml0UmVxdWVzdD1uZXcgYS5Db25mbGF0YWJsZU1lc3NhZ2UoImZpdC1yZXF1ZXN0IiksdC5BY3RpdmF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJhY3RpdmF0ZS1yZXF1ZXN0IiksdC5DbG9zZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJjbG9zZS1yZXF1ZXN0Iil9KHQuTXNnfHwodC5Nc2c9e30pKTt2YXIgZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSl8fHRoaXM7cmV0dXJuIGkuY2hpbGQ9bixpfXJldHVybiByKGUsdCksZX0oYS5NZXNzYWdlKTt0LkNoaWxkTWVzc2FnZT1lO3ZhciBuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcywicmVzaXplIil8fHRoaXM7cmV0dXJuIGkud2lkdGg9ZSxpLmhlaWdodD1uLGl9cmV0dXJuIHIoZSx0KSxlfShhLk1lc3NhZ2UpO3QuUmVzaXplTWVzc2FnZT1uLGZ1bmN0aW9uKHQpe3QuVW5rbm93blNpemU9bmV3IHQoLTEsLTEpfShuPXQuUmVzaXplTWVzc2FnZXx8KHQuUmVzaXplTWVzc2FnZT17fSkpLHQuYXR0YWNoPWZ1bmN0aW9uKGUsbixpKXtpZih2b2lkIDA9PT1pJiYoaT1udWxsKSxlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBhdHRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoZS5pc0F0dGFjaGVkfHxkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGUubm9kZSkpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgYWxyZWFkeSBhdHRhY2hlZC4iKTtpZighZG9jdW1lbnQuYm9keS5jb250YWlucyhuKSl0aHJvdyBuZXcgRXJyb3IoIkhvc3QgaXMgbm90IGF0dGFjaGVkLiIpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0Lk1zZy5CZWZvcmVBdHRhY2gpLG4uaW5zZXJ0QmVmb3JlKGUubm9kZSxpKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJBdHRhY2gpfSx0LmRldGFjaD1mdW5jdGlvbihlKXtpZihlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZXRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoIWUuaXNBdHRhY2hlZHx8IWRvY3VtZW50LmJvZHkuY29udGFpbnMoZS5ub2RlKSl0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBpcyBub3QgYXR0YWNoZWQuIik7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQuTXNnLkJlZm9yZURldGFjaCksZS5ub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZS5ub2RlKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJEZXRhY2gpfX0obD1lLldpZGdldHx8KGUuV2lkZ2V0PXt9KSksZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXt0LnRpdGxlUHJvcGVydHk9bmV3IHUuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToidGl0bGUiLGNyZWF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGguVGl0bGUoe293bmVyOnR9KX19KSx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigxNDEpKSxpKG4oNzUpKSxpKG4oMzMzKSksaShuKDMzNCkpLGkobigzMzUpKSxpKG4oMzM2KSksaShuKDc0KSksaShuKDI1KSksaShuKDMzNykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMTcpKSxpKG4oMzE4KSksaShuKDMxOSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWU7aS52ZXJzaW9uPW4oMTg4KS52ZXJzaW9uLGkudXRpbHM9bigxODkpLGkucmFuZD1uKDEwNSksaS5jdXJ2ZT1uKDQ4KSxpLmN1cnZlcz1uKDE5NCksaS5lYz1uKDIwMiksaS5lZGRzYT1uKDIwNil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaSxyPW4oMiksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5zZW5kZXI9dH1yZXR1cm4gdC5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBpLmNvbm5lY3QodGhpcyx0LGUpfSx0LnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuZGlzY29ubmVjdCh0aGlzLHQsZSl9LHQucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24odCl7aS5lbWl0KHRoaXMsdCl9LHR9KCk7ZS5TaWduYWw9byxmdW5jdGlvbih0KXt0LmRpc2Nvbm5lY3RCZXR3ZWVuPWZ1bmN0aW9uKHQsZSl7aS5kaXNjb25uZWN0QmV0d2Vlbih0LGUpfSx0LmRpc2Nvbm5lY3RTZW5kZXI9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0U2VuZGVyKHQpfSx0LmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXtpLmRpc2Nvbm5lY3RSZWNlaXZlcih0KX0sdC5kaXNjb25uZWN0QWxsPWZ1bmN0aW9uKHQpe2kuZGlzY29ubmVjdEFsbCh0KX0sdC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0QWxsKHQpfSx0LmdldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5leGNlcHRpb25IYW5kbGVyfSx0LnNldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9aS5leGNlcHRpb25IYW5kbGVyO3JldHVybiBpLmV4Y2VwdGlvbkhhbmRsZXI9dCxlfX0obz1lLlNpZ25hbHx8KGUuU2lnbmFsPXt9KSksZS5TaWduYWw9byxmdW5jdGlvbihlKXtlLmV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcih0KX0sZS5jb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYob3x8KG89W10sbi5zZXQodC5zZW5kZXIsbykpLGEobyx0LGUscikpcmV0dXJuITE7dmFyIHM9cnx8ZSx1PWkuZ2V0KHMpO3V8fCh1PVtdLGkuc2V0KHMsdSkpO3ZhciBjPXtzaWduYWw6dCxzbG90OmUsdGhpc0FyZzpyfTtyZXR1cm4gby5wdXNoKGMpLHUucHVzaChjKSwhMH0sZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYoIW98fDA9PT1vLmxlbmd0aClyZXR1cm4hMTt2YXIgcz1hKG8sdCxlLHIpO2lmKCFzKXJldHVybiExO3ZhciB1PXJ8fGUsaD1pLmdldCh1KTtyZXR1cm4gcy5zaWduYWw9bnVsbCxjKG8pLGMoaCksITB9LGUuZGlzY29ubmVjdEJldHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgbz1uLmdldCh0KTtpZihvJiYwIT09by5sZW5ndGgpe3ZhciBzPWkuZ2V0KGUpO3MmJjAhPT1zLmxlbmd0aCYmKHIuZWFjaChzLGZ1bmN0aW9uKGUpe2Uuc2lnbmFsJiZlLnNpZ25hbC5zZW5kZXI9PT10JiYoZS5zaWduYWw9bnVsbCl9KSxjKG8pLGMocykpfX0sZS5kaXNjb25uZWN0U2VuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPW4uZ2V0KHQpO2UmJjAhPT1lLmxlbmd0aCYmKHIuZWFjaChlLGZ1bmN0aW9uKHQpe2lmKHQuc2lnbmFsKXt2YXIgZT10LnRoaXNBcmd8fHQuc2xvdDt0LnNpZ25hbD1udWxsLGMoaS5nZXQoZSkpfX0pLGMoZSkpfSxlLmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXt2YXIgZT1pLmdldCh0KTtlJiYwIT09ZS5sZW5ndGgmJihyLmVhY2goZSxmdW5jdGlvbih0KXtpZih0LnNpZ25hbCl7dmFyIGU9dC5zaWduYWwuc2VuZGVyO3Quc2lnbmFsPW51bGwsYyhuLmdldChlKSl9fSksYyhlKSl9LGUuZGlzY29ubmVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZT1uLmdldCh0KTtlJiZlLmxlbmd0aD4wJiYoci5lYWNoKGUsZnVuY3Rpb24odCl7dC5zaWduYWw9bnVsbH0pLGMoZSkpO3ZhciBvPWkuZ2V0KHQpO28mJm8ubGVuZ3RoPjAmJihyLmVhY2gobyxmdW5jdGlvbih0KXt0LnNpZ25hbD1udWxsfSksYyhvKSl9LGUuZW1pdD1mdW5jdGlvbih0LGUpe3ZhciBpPW4uZ2V0KHQuc2VuZGVyKTtpZihpJiYwIT09aS5sZW5ndGgpZm9yKHZhciByPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgcz1pW3JdO3Muc2lnbmFsPT09dCYmdShzLGUpfX07dmFyIG49bmV3IFdlYWtNYXAsaT1uZXcgV2Vha01hcCxvPW5ldyBTZXQscz0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZTp0O2Z1bmN0aW9uIGEodCxlLG4saSl7cmV0dXJuIHIuZmluZCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpZ25hbD09PWUmJnQuc2xvdD09PW4mJnQudGhpc0FyZz09PWl9KX1mdW5jdGlvbiB1KHQsbil7dmFyIGk9dC5zaWduYWwscj10LnNsb3Qsbz10LnRoaXNBcmc7dHJ5e3IuY2FsbChvLGkuc2VuZGVyLG4pfWNhdGNoKHQpe2UuZXhjZXB0aW9uSGFuZGxlcih0KX19ZnVuY3Rpb24gYyh0KXswPT09by5zaXplJiZzKGgpLG8uYWRkKHQpfWZ1bmN0aW9uIGgoKXtvLmZvckVhY2gobCksby5jbGVhcigpfWZ1bmN0aW9uIGwodCl7ci5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LGQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG51bGw9PT10LnNpZ25hbH19KGl8fChpPXt9KSl9KS5jYWxsKHRoaXMsbig0NCkuc2V0SW1tZWRpYXRlKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMjMpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29yZVdpZGdldE1vZGVsIixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTn0pfSxlfShvLldpZGdldE1vZGVsKTtlLkNvcmVXaWRnZXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvcmVET01XaWRnZXRNb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0oby5ET01XaWRnZXRNb2RlbCk7ZS5Db3JlRE9NV2lkZ2V0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb3JlRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0ocy5EZXNjcmlwdGlvbk1vZGVsKTtlLkNvcmVEZXNjcmlwdGlvbk1vZGVsPWx9LGZ1bmN0aW9uKHQsZSl7dmFyIG47bj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpeyJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfXQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoZXx8IkFzc2VydGlvbiBmYWlsZWQiKX10LmV4cG9ydHM9bixuLmVxdWFsPWZ1bmN0aW9uKHQsZSxuKXtpZih0IT1lKXRocm93IG5ldyBFcnJvcihufHwiQXNzZXJ0aW9uIGZhaWxlZDogIit0KyIgIT0gIitlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTsKLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KIWZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOyJvYmplY3QiPT10eXBlb2YgdC5leHBvcnRzP3QuZXhwb3J0cz1lLmRvY3VtZW50P24oZSwhMCk6ZnVuY3Rpb24odCl7aWYoIXQuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIG4odCl9Om4oZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4scil7InVzZSBzdHJpY3QiO3ZhciBvPVtdLHM9bi5kb2N1bWVudCxhPU9iamVjdC5nZXRQcm90b3R5cGVPZix1PW8uc2xpY2UsYz1vLmNvbmNhdCxoPW8ucHVzaCxsPW8uaW5kZXhPZixkPXt9LGY9ZC50b1N0cmluZyxwPWQuaGFzT3duUHJvcGVydHksbT1wLnRvU3RyaW5nLGc9bS5jYWxsKE9iamVjdCksdj17fSxiPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQubm9kZVR5cGV9LHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnQ9PT10LndpbmRvd30sXz17dHlwZTohMCxzcmM6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIHcodCxlLG4pe3ZhciBpLHI9KGU9ZXx8cykuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoci50ZXh0PXQsbilmb3IoaSBpbiBfKW5baV0mJihyW2ldPW5baV0pO2UuaGVhZC5hcHBlbmRDaGlsZChyKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIG51bGw9PXQ/dCsiIjoib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0P2RbZi5jYWxsKHQpXXx8Im9iamVjdCI6dHlwZW9mIHR9dmFyIE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IE0uZm4uaW5pdCh0LGUpfSxTPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZztmdW5jdGlvbiBFKHQpe3ZhciBlPSEhdCYmImxlbmd0aCJpbiB0JiZ0Lmxlbmd0aCxuPXgodCk7cmV0dXJuIWIodCkmJiF5KHQpJiYoImFycmF5Ij09PW58fDA9PT1lfHwibnVtYmVyIj09dHlwZW9mIGUmJmU+MCYmZS0xIGluIHQpfU0uZm49TS5wcm90b3R5cGU9e2pxdWVyeToiMy4zLjEiLGNvbnN0cnVjdG9yOk0sbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD91LmNhbGwodGhpcyk6dDwwP3RoaXNbdCt0aGlzLmxlbmd0aF06dGhpc1t0XX0scHVzaFN0YWNrOmZ1bmN0aW9uKHQpe3ZhciBlPU0ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLHQpO3JldHVybiBlLnByZXZPYmplY3Q9dGhpcyxlfSxlYWNoOmZ1bmN0aW9uKHQpe3JldHVybiBNLmVhY2godGhpcyx0KX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLm1hcCh0aGlzLGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuY2FsbChlLG4sZSl9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGgsbj0rdCsodDwwP2U6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4+PTAmJm48ZT9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6aCxzb3J0Om8uc29ydCxzcGxpY2U6by5zcGxpY2V9LE0uZXh0ZW5kPU0uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscixvLHM9YXJndW1lbnRzWzBdfHx7fSxhPTEsdT1hcmd1bWVudHMubGVuZ3RoLGM9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIHMmJihjPXMscz1hcmd1bWVudHNbYV18fHt9LGErKyksIm9iamVjdCI9PXR5cGVvZiBzfHxiKHMpfHwocz17fSksYT09PXUmJihzPXRoaXMsYS0tKTthPHU7YSsrKWlmKG51bGwhPSh0PWFyZ3VtZW50c1thXSkpZm9yKGUgaW4gdCluPXNbZV0scyE9PShpPXRbZV0pJiYoYyYmaSYmKE0uaXNQbGFpbk9iamVjdChpKXx8KHI9QXJyYXkuaXNBcnJheShpKSkpPyhyPyhyPSExLG89biYmQXJyYXkuaXNBcnJheShuKT9uOltdKTpvPW4mJk0uaXNQbGFpbk9iamVjdChuKT9uOnt9LHNbZV09TS5leHRlbmQoYyxvLGkpKTp2b2lkIDAhPT1pJiYoc1tlXT1pKSk7cmV0dXJuIHN9LE0uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy4zLjEiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKHQpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuISghdHx8IltvYmplY3QgT2JqZWN0XSIhPT1mLmNhbGwodCkpJiYoIShlPWEodCkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj1wLmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcikmJm0uY2FsbChuKT09PWcpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlO2ZvcihlIGluIHQpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24odCl7dyh0KX0sZWFjaDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MDtpZihFKHQpKWZvcihuPXQubGVuZ3RoO2k8biYmITEhPT1lLmNhbGwodFtpXSxpLHRbaV0pO2krKyk7ZWxzZSBmb3IoaSBpbiB0KWlmKCExPT09ZS5jYWxsKHRbaV0saSx0W2ldKSlicmVhaztyZXR1cm4gdH0sdHJpbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjoodCsiIikucmVwbGFjZShTLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZXx8W107cmV0dXJuIG51bGwhPXQmJihFKE9iamVjdCh0KSk/TS5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgdD9bdF06dCk6aC5jYWxsKG4sdCkpLG59LGluQXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1lPy0xOmwuY2FsbChlLHQsbil9LG1lcmdlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPStlLmxlbmd0aCxpPTAscj10Lmxlbmd0aDtpPG47aSsrKXRbcisrXT1lW2ldO3JldHVybiB0Lmxlbmd0aD1yLHR9LGdyZXA6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aCxzPSFuO3I8bztyKyspIWUodFtyXSxyKSE9PXMmJmkucHVzaCh0W3JdKTtyZXR1cm4gaX0sbWFwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MCxzPVtdO2lmKEUodCkpZm9yKGk9dC5sZW5ndGg7bzxpO28rKyludWxsIT0ocj1lKHRbb10sbyxuKSkmJnMucHVzaChyKTtlbHNlIGZvcihvIGluIHQpbnVsbCE9KHI9ZSh0W29dLG8sbikpJiZzLnB1c2gocik7cmV0dXJuIGMuYXBwbHkoW10scyl9LGd1aWQ6MSxzdXBwb3J0OnZ9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoTS5mbltTeW1ib2wuaXRlcmF0b3JdPW9bU3ltYm9sLml0ZXJhdG9yXSksTS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe2RbIltvYmplY3QgIitlKyJdIl09ZS50b0xvd2VyQ2FzZSgpfSk7dmFyIEE9Ci8qIQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4zLjMKICogaHR0cHM6Ly9zaXp6bGVqcy5jb20vCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIERhdGU6IDIwMTYtMDgtMDgKICovCmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnLHYsYix5LF89InNpenpsZSIrMSpuZXcgRGF0ZSx3PXQuZG9jdW1lbnQseD0wLE09MCxTPXN0KCksRT1zdCgpLEE9c3QoKSxDPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lJiYobD0hMCksMH0saz17fS5oYXNPd25Qcm9wZXJ0eSxPPVtdLFA9Ty5wb3AsVD1PLnB1c2gsaj1PLnB1c2gsST1PLnNsaWNlLEw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspaWYodFtuXT09PWUpcmV0dXJuIG47cmV0dXJuLTF9LEI9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixEPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixSPSIoPzpcXFxcLnxbXFx3LV18W15cMC1cXHhhMF0pKyIsej0iXFxbIitEKyIqKCIrUisiKSg/OiIrRCsiKihbKl4kfCF+XT89KSIrRCsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK1IrIikpfCkiK0QrIipcXF0iLE49IjooIitSKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18Iit6KyIpKil8LiopXFwpfCkiLFc9bmV3IFJlZ0V4cChEKyIrIiwiZyIpLHE9bmV3IFJlZ0V4cCgiXiIrRCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitEKyIrJCIsImciKSxIPW5ldyBSZWdFeHAoIl4iK0QrIiosIitEKyIqIiksRj1uZXcgUmVnRXhwKCJeIitEKyIqKFs+K35dfCIrRCsiKSIrRCsiKiIpLFY9bmV3IFJlZ0V4cCgiPSIrRCsiKihbXlxcXSdcIl0qPykiK0QrIipcXF0iLCJnIiksVT1uZXcgUmVnRXhwKE4pLEs9bmV3IFJlZ0V4cCgiXiIrUisiJCIpLFk9e0lEOm5ldyBSZWdFeHAoIl4jKCIrUisiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitSKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitSKyJ8WypdKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIreiksUFNFVURPOm5ldyBSZWdFeHAoIl4iK04pLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrRCsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrRCsiKig/OihbKy1dfCkiK0QrIiooXFxkKyl8KSkiK0QrIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitEKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK0QrIiooKD86LVxcZCk/XFxkKikiK0QrIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFg9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSwkPS9eaFxkJC9pLEc9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLEo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxaPS9bK35dLyxRPW5ldyBSZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrRCsiP3woIitEKyIpfC4pIiwiaWciKSx0dD1mdW5jdGlvbih0LGUsbil7dmFyIGk9IjB4IitlLTY1NTM2O3JldHVybiBpIT1pfHxuP2U6aTwwP1N0cmluZy5mcm9tQ2hhckNvZGUoaSs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShpPj4xMHw1NTI5NiwxMDIzJml8NTYzMjApfSxldD0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxudD1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJcMCI9PT10PyLvv70iOnQuc2xpY2UoMCwtMSkrIlxcIit0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK3R9LGl0PWZ1bmN0aW9uKCl7ZCgpfSxydD1idChmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuZGlzYWJsZWQmJigiZm9ybSJpbiB0fHwibGFiZWwiaW4gdCl9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7ai5hcHBseShPPUkuY2FsbCh3LmNoaWxkTm9kZXMpLHcuY2hpbGROb2RlcyksT1t3LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaCh0KXtqPXthcHBseTpPLmxlbmd0aD9mdW5jdGlvbih0LGUpe1QuYXBwbHkodCxJLmNhbGwoZSkpfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPTA7dFtuKytdPWVbaSsrXTspO3QubGVuZ3RoPW4tMX19fWZ1bmN0aW9uIG90KHQsZSxpLHIpe3ZhciBvLGEsYyxoLGwscCx2LGI9ZSYmZS5vd25lckRvY3VtZW50LHg9ZT9lLm5vZGVUeXBlOjk7aWYoaT1pfHxbXSwic3RyaW5nIiE9dHlwZW9mIHR8fCF0fHwxIT09eCYmOSE9PXgmJjExIT09eClyZXR1cm4gaTtpZighciYmKChlP2Uub3duZXJEb2N1bWVudHx8ZTp3KSE9PWYmJmQoZSksZT1lfHxmLG0pKXtpZigxMSE9PXgmJihsPUouZXhlYyh0KSkpaWYobz1sWzFdKXtpZig5PT09eCl7aWYoIShjPWUuZ2V0RWxlbWVudEJ5SWQobykpKXJldHVybiBpO2lmKGMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNlIGlmKGImJihjPWIuZ2V0RWxlbWVudEJ5SWQobykpJiZ5KGUsYykmJmMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNle2lmKGxbMl0pcmV0dXJuIGouYXBwbHkoaSxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpKSxpO2lmKChvPWxbM10pJiZuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gai5hcHBseShpLGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShvKSksaX1pZihuLnFzYSYmIUFbdCsiICJdJiYoIWd8fCFnLnRlc3QodCkpKXtpZigxIT09eCliPWUsdj10O2Vsc2UgaWYoIm9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2ZvcigoaD1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/aD1oLnJlcGxhY2UoZXQsbnQpOmUuc2V0QXR0cmlidXRlKCJpZCIsaD1fKSxhPShwPXModCkpLmxlbmd0aDthLS07KXBbYV09IiMiK2grIiAiK3Z0KHBbYV0pO3Y9cC5qb2luKCIsIiksYj1aLnRlc3QodCkmJm10KGUucGFyZW50Tm9kZSl8fGV9aWYodil0cnl7cmV0dXJuIGouYXBwbHkoaSxiLnF1ZXJ5U2VsZWN0b3JBbGwodikpLGl9Y2F0Y2godCl7fWZpbmFsbHl7aD09PV8mJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIHUodC5yZXBsYWNlKHEsIiQxIiksZSxpLHIpfWZ1bmN0aW9uIHN0KCl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uIGUobixyKXtyZXR1cm4gdC5wdXNoKG4rIiAiKT5pLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVt0LnNoaWZ0KCldLGVbbisiICJdPXJ9fWZ1bmN0aW9uIGF0KHQpe3JldHVybiB0W19dPSEwLHR9ZnVuY3Rpb24gdXQodCl7dmFyIGU9Zi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIXQoZSl9Y2F0Y2godCl7cmV0dXJuITF9ZmluYWxseXtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxlPW51bGx9fWZ1bmN0aW9uIGN0KHQsZSl7Zm9yKHZhciBuPXQuc3BsaXQoInwiKSxyPW4ubGVuZ3RoO3ItLTspaS5hdHRySGFuZGxlW25bcl1dPWV9ZnVuY3Rpb24gaHQodCxlKXt2YXIgbj1lJiZ0LGk9biYmMT09PXQubm9kZVR5cGUmJjE9PT1lLm5vZGVUeXBlJiZ0LnNvdXJjZUluZGV4LWUuc291cmNlSW5kZXg7aWYoaSlyZXR1cm4gaTtpZihuKWZvcig7bj1uLm5leHRTaWJsaW5nOylpZihuPT09ZSlyZXR1cm4tMTtyZXR1cm4gdD8xOi0xfWZ1bmN0aW9uIGx0KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09bnx8ImJ1dHRvbiI9PT1uKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gZnQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiJmb3JtImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/ImxhYmVsImluIGU/ImxhYmVsImluIGUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT10OmUuZGlzYWJsZWQ9PT10OmUuaXNEaXNhYmxlZD09PXR8fGUuaXNEaXNhYmxlZCE9PSF0JiZydChlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6ImxhYmVsImluIGUmJmUuZGlzYWJsZWQ9PT10fX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4gYXQoZnVuY3Rpb24oZSl7cmV0dXJuIGU9K2UsYXQoZnVuY3Rpb24obixpKXtmb3IodmFyIHIsbz10KFtdLG4ubGVuZ3RoLGUpLHM9by5sZW5ndGg7cy0tOyluW3I9b1tzXV0mJihuW3JdPSEoaVtyXT1uW3JdKSl9KX0pfWZ1bmN0aW9uIG10KHQpe3JldHVybiB0JiZ2b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZ0fWZvcihlIGluIG49b3Quc3VwcG9ydD17fSxvPW90LmlzWE1MPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJih0Lm93bmVyRG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hIWUmJiJIVE1MIiE9PWUubm9kZU5hbWV9LGQ9b3Quc2V0RG9jdW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUscixzPXQ/dC5vd25lckRvY3VtZW50fHx0Onc7cmV0dXJuIHMhPT1mJiY5PT09cy5ub2RlVHlwZSYmcy5kb2N1bWVudEVsZW1lbnQ/KHA9KGY9cykuZG9jdW1lbnRFbGVtZW50LG09IW8oZiksdyE9PWYmJihyPWYuZGVmYXVsdFZpZXcpJiZyLnRvcCE9PXImJihyLmFkZEV2ZW50TGlzdGVuZXI/ci5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGl0LCExKTpyLmF0dGFjaEV2ZW50JiZyLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsaXQpKSxuLmF0dHJpYnV0ZXM9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lPSJpIiwhdC5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksbi5nZXRFbGVtZW50c0J5VGFnTmFtZT11dChmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBlbmRDaGlsZChmLmNyZWF0ZUNvbW1lbnQoIiIpKSwhdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1HLnRlc3QoZi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxuLmdldEJ5SWQ9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHAuYXBwZW5kQ2hpbGQodCkuaWQ9XywhZi5nZXRFbGVtZW50c0J5TmFtZXx8IWYuZ2V0RWxlbWVudHNCeU5hbWUoXykubGVuZ3RofSksbi5nZXRCeUlkPyhpLmZpbHRlci5JRD1mdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoUSx0dCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiaWQiKT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbj1lLmdldEVsZW1lbnRCeUlkKHQpO3JldHVybiBuP1tuXTpbXX19KTooaS5maWx0ZXIuSUQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKFEsdHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj12b2lkIDAhPT10LmdldEF0dHJpYnV0ZU5vZGUmJnQuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbiYmbi52YWx1ZT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbixpLHIsbz1lLmdldEVsZW1lbnRCeUlkKHQpO2lmKG8pe2lmKChuPW8uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJm4udmFsdWU9PT10KXJldHVybltvXTtmb3Iocj1lLmdldEVsZW1lbnRzQnlOYW1lKHQpLGk9MDtvPXJbaSsrXTspaWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PXQpcmV0dXJuW29dfXJldHVybltdfX0pLGkuZmluZC5UQUc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk6bi5xc2E/ZS5xdWVyeVNlbGVjdG9yQWxsKHQpOnZvaWQgMH06ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9MCxvPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk7aWYoIioiPT09dCl7Zm9yKDtuPW9bcisrXTspMT09PW4ubm9kZVR5cGUmJmkucHVzaChuKTtyZXR1cm4gaX1yZXR1cm4gb30saS5maW5kLkNMQVNTPW4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJm0pcmV0dXJuIGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KX0sdj1bXSxnPVtdLChuLnFzYT1HLnRlc3QoZi5xdWVyeVNlbGVjdG9yQWxsKSkmJih1dChmdW5jdGlvbih0KXtwLmFwcGVuZENoaWxkKHQpLmlubmVySFRNTD0iPGEgaWQ9JyIrXysiJz48L2E+PHNlbGVjdCBpZD0nIitfKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLHQucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJmcucHVzaCgiWypeJF09IitEKyIqKD86Jyd8XCJcIikiKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGcucHVzaCgiXFxbIitEKyIqKD86dmFsdWV8IitCKyIpIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrXysiLV0iKS5sZW5ndGh8fGcucHVzaCgifj0iKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxnLnB1c2goIjpjaGVja2VkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrXysiKyoiKS5sZW5ndGh8fGcucHVzaCgiLiMuK1srfl0iKX0pLHV0KGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciBlPWYuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLHQuYXBwZW5kQ2hpbGQoZSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLHQucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJmcucHVzaCgibmFtZSIrRCsiKlsqXiR8IX5dPz0iKSwyIT09dC5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmZy5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLHAuYXBwZW5kQ2hpbGQodCkuZGlzYWJsZWQ9ITAsMiE9PXQucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZnLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IiksZy5wdXNoKCIsLio6Iil9KSksKG4ubWF0Y2hlc1NlbGVjdG9yPUcudGVzdChiPXAubWF0Y2hlc3x8cC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHAubW96TWF0Y2hlc1NlbGVjdG9yfHxwLm9NYXRjaGVzU2VsZWN0b3J8fHAubXNNYXRjaGVzU2VsZWN0b3IpKSYmdXQoZnVuY3Rpb24odCl7bi5kaXNjb25uZWN0ZWRNYXRjaD1iLmNhbGwodCwiKiIpLGIuY2FsbCh0LCJbcyE9JyddOngiKSx2LnB1c2goIiE9IixOKX0pLGc9Zy5sZW5ndGgmJm5ldyBSZWdFeHAoZy5qb2luKCJ8IikpLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLGU9Ry50ZXN0KHAuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9ZXx8Ry50ZXN0KHAuY29udGFpbnMpP2Z1bmN0aW9uKHQsZSl7dmFyIG49OT09PXQubm9kZVR5cGU/dC5kb2N1bWVudEVsZW1lbnQ6dCxpPWUmJmUucGFyZW50Tm9kZTtyZXR1cm4gdD09PWl8fCEoIWl8fDEhPT1pLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhpKTp0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGkpKSl9OmZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IoO2U9ZS5wYXJlbnROb2RlOylpZihlPT09dClyZXR1cm4hMDtyZXR1cm4hMX0sQz1lP2Z1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIGw9ITAsMDt2YXIgaT0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gaXx8KDEmKGk9KHQub3duZXJEb2N1bWVudHx8dCk9PT0oZS5vd25lckRvY3VtZW50fHxlKT90LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpOjEpfHwhbi5zb3J0RGV0YWNoZWQmJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk9PT1pP3Q9PT1mfHx0Lm93bmVyRG9jdW1lbnQ9PT13JiZ5KHcsdCk/LTE6ZT09PWZ8fGUub3duZXJEb2N1bWVudD09PXcmJnkodyxlKT8xOmg/TChoLHQpLUwoaCxlKTowOjQmaT8tMToxKX06ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4gbD0hMCwwO3ZhciBuLGk9MCxyPXQucGFyZW50Tm9kZSxvPWUucGFyZW50Tm9kZSxzPVt0XSxhPVtlXTtpZighcnx8IW8pcmV0dXJuIHQ9PT1mPy0xOmU9PT1mPzE6cj8tMTpvPzE6aD9MKGgsdCktTChoLGUpOjA7aWYocj09PW8pcmV0dXJuIGh0KHQsZSk7Zm9yKG49dDtuPW4ucGFyZW50Tm9kZTspcy51bnNoaWZ0KG4pO2ZvcihuPWU7bj1uLnBhcmVudE5vZGU7KWEudW5zaGlmdChuKTtmb3IoO3NbaV09PT1hW2ldOylpKys7cmV0dXJuIGk/aHQoc1tpXSxhW2ldKTpzW2ldPT09dz8tMTphW2ldPT09dz8xOjB9LGYpOmZ9LG90Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gb3QodCxudWxsLG51bGwsZSl9LG90Lm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbih0LGUpe2lmKCh0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSxlPWUucmVwbGFjZShWLCI9JyQxJ10iKSxuLm1hdGNoZXNTZWxlY3RvciYmbSYmIUFbZSsiICJdJiYoIXZ8fCF2LnRlc3QoZSkpJiYoIWd8fCFnLnRlc3QoZSkpKXRyeXt2YXIgaT1iLmNhbGwodCxlKTtpZihpfHxuLmRpc2Nvbm5lY3RlZE1hdGNofHx0LmRvY3VtZW50JiYxMSE9PXQuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGl9Y2F0Y2godCl7fXJldHVybiBvdChlLGYsbnVsbCxbdF0pLmxlbmd0aD4wfSxvdC5jb250YWlucz1mdW5jdGlvbih0LGUpe3JldHVybih0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSx5KHQsZSl9LG90LmF0dHI9ZnVuY3Rpb24odCxlKXsodC5vd25lckRvY3VtZW50fHx0KSE9PWYmJmQodCk7dmFyIHI9aS5hdHRySGFuZGxlW2UudG9Mb3dlckNhc2UoKV0sbz1yJiZrLmNhbGwoaS5hdHRySGFuZGxlLGUudG9Mb3dlckNhc2UoKSk/cih0LGUsIW0pOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09bz9vOm4uYXR0cmlidXRlc3x8IW0/dC5nZXRBdHRyaWJ1dGUoZSk6KG89dC5nZXRBdHRyaWJ1dGVOb2RlKGUpKSYmby5zcGVjaWZpZWQ/by52YWx1ZTpudWxsfSxvdC5lc2NhcGU9ZnVuY3Rpb24odCl7cmV0dXJuKHQrIiIpLnJlcGxhY2UoZXQsbnQpfSxvdC5lcnJvcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrdCl9LG90LnVuaXF1ZVNvcnQ9ZnVuY3Rpb24odCl7dmFyIGUsaT1bXSxyPTAsbz0wO2lmKGw9IW4uZGV0ZWN0RHVwbGljYXRlcyxoPSFuLnNvcnRTdGFibGUmJnQuc2xpY2UoMCksdC5zb3J0KEMpLGwpe2Zvcig7ZT10W28rK107KWU9PT10W29dJiYocj1pLnB1c2gobykpO2Zvcig7ci0tOyl0LnNwbGljZShpW3JdLDEpfXJldHVybiBoPW51bGwsdH0scj1vdC5nZXRUZXh0PWZ1bmN0aW9uKHQpe3ZhciBlLG49IiIsaT0wLG89dC5ub2RlVHlwZTtpZihvKXtpZigxPT09b3x8OT09PW98fDExPT09byl7aWYoInN0cmluZyI9PXR5cGVvZiB0LnRleHRDb250ZW50KXJldHVybiB0LnRleHRDb250ZW50O2Zvcih0PXQuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyluKz1yKHQpfWVsc2UgaWYoMz09PW98fDQ9PT1vKXJldHVybiB0Lm5vZGVWYWx1ZX1lbHNlIGZvcig7ZT10W2krK107KW4rPXIoZSk7cmV0dXJuIG59LChpPW90LnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmF0LG1hdGNoOlksYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0ucmVwbGFjZShRLHR0KSx0WzNdPSh0WzNdfHx0WzRdfHx0WzVdfHwiIikucmVwbGFjZShRLHR0KSwifj0iPT09dFsyXSYmKHRbM109IiAiK3RbM10rIiAiKSx0LnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PXRbMV0uc2xpY2UoMCwzKT8odFszXXx8b3QuZXJyb3IodFswXSksdFs0XT0rKHRbNF0/dFs1XSsodFs2XXx8MSk6MiooImV2ZW4iPT09dFszXXx8Im9kZCI9PT10WzNdKSksdFs1XT0rKHRbN10rdFs4XXx8Im9kZCI9PT10WzNdKSk6dFszXSYmb3QuZXJyb3IodFswXSksdH0sUFNFVURPOmZ1bmN0aW9uKHQpe3ZhciBlLG49IXRbNl0mJnRbMl07cmV0dXJuIFkuQ0hJTEQudGVzdCh0WzBdKT9udWxsOih0WzNdP3RbMl09dFs0XXx8dFs1XXx8IiI6biYmVS50ZXN0KG4pJiYoZT1zKG4sITApKSYmKGU9bi5pbmRleE9mKCIpIixuLmxlbmd0aC1lKS1uLmxlbmd0aCkmJih0WzBdPXRbMF0uc2xpY2UoMCxlKSx0WzJdPW4uc2xpY2UoMCxlKSksdC5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZShRLHR0KS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PXQ/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWV9fSxDTEFTUzpmdW5jdGlvbih0KXt2YXIgZT1TW3QrIiAiXTtyZXR1cm4gZXx8KGU9bmV3IFJlZ0V4cCgiKF58IitEKyIpIit0KyIoIitEKyJ8JCkiKSkmJlModCxmdW5jdGlvbih0KXtyZXR1cm4gZS50ZXN0KCJzdHJpbmciPT10eXBlb2YgdC5jbGFzc05hbWUmJnQuY2xhc3NOYW1lfHx2b2lkIDAhPT10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9b3QuYXR0cihpLHQpO3JldHVybiBudWxsPT1yPyIhPSI9PT1lOiFlfHwocis9IiIsIj0iPT09ZT9yPT09bjoiIT0iPT09ZT9yIT09bjoiXj0iPT09ZT9uJiYwPT09ci5pbmRleE9mKG4pOiIqPSI9PT1lP24mJnIuaW5kZXhPZihuKT4tMToiJD0iPT09ZT9uJiZyLnNsaWNlKC1uLmxlbmd0aCk9PT1uOiJ+PSI9PT1lPygiICIrci5yZXBsYWNlKFcsIiAiKSsiICIpLmluZGV4T2Yobik+LTE6Inw9Ij09PWUmJihyPT09bnx8ci5zbGljZSgwLG4ubGVuZ3RoKzEpPT09bisiLSIpKX19LENISUxEOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89Im50aCIhPT10LnNsaWNlKDAsMykscz0ibGFzdCIhPT10LnNsaWNlKC00KSxhPSJvZi10eXBlIj09PWU7cmV0dXJuIDE9PT1pJiYwPT09cj9mdW5jdGlvbih0KXtyZXR1cm4hIXQucGFyZW50Tm9kZX06ZnVuY3Rpb24oZSxuLHUpe3ZhciBjLGgsbCxkLGYscCxtPW8hPT1zPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsZz1lLnBhcmVudE5vZGUsdj1hJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYj0hdSYmIWEseT0hMTtpZihnKXtpZihvKXtmb3IoO207KXtmb3IoZD1lO2Q9ZFttXTspaWYoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT12OjE9PT1kLm5vZGVUeXBlKXJldHVybiExO3A9bT0ib25seSI9PT10JiYhcCYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihwPVtzP2cuZmlyc3RDaGlsZDpnLmxhc3RDaGlsZF0scyYmYil7Zm9yKHk9KGY9KGM9KGg9KGw9KGQ9ZylbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pJiZjWzJdLGQ9ZiYmZy5jaGlsZE5vZGVzW2ZdO2Q9KytmJiZkJiZkW21dfHwoeT1mPTApfHxwLnBvcCgpOylpZigxPT09ZC5ub2RlVHlwZSYmKyt5JiZkPT09ZSl7aFt0XT1beCxmLHldO2JyZWFrfX1lbHNlIGlmKGImJih5PWY9KGM9KGg9KGw9KGQ9ZSlbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pLCExPT09eSlmb3IoOyhkPSsrZiYmZCYmZFttXXx8KHk9Zj0wKXx8cC5wb3AoKSkmJigoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT12OjEhPT1kLm5vZGVUeXBlKXx8ISsreXx8KGImJigoaD0obD1kW19dfHwoZFtfXT17fSkpW2QudW5pcXVlSURdfHwobFtkLnVuaXF1ZUlEXT17fSkpW3RdPVt4LHldKSxkIT09ZSkpOyk7cmV0dXJuKHktPXIpPT09aXx8eSVpPT0wJiZ5L2k+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKHQsZSl7dmFyIG4scj1pLnBzZXVkb3NbdF18fGkuc2V0RmlsdGVyc1t0LnRvTG93ZXJDYXNlKCldfHxvdC5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK3QpO3JldHVybiByW19dP3IoZSk6ci5sZW5ndGg+MT8obj1bdCx0LCIiLGVdLGkuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eSh0LnRvTG93ZXJDYXNlKCkpP2F0KGZ1bmN0aW9uKHQsbil7Zm9yKHZhciBpLG89cih0LGUpLHM9by5sZW5ndGg7cy0tOyl0W2k9TCh0LG9bc10pXT0hKG5baV09b1tzXSl9KTpmdW5jdGlvbih0KXtyZXR1cm4gcih0LDAsbil9KTpyfX0scHNldWRvczp7bm90OmF0KGZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W10saT1hKHQucmVwbGFjZShxLCIkMSIpKTtyZXR1cm4gaVtfXT9hdChmdW5jdGlvbih0LGUsbixyKXtmb3IodmFyIG8scz1pKHQsbnVsbCxyLFtdKSxhPXQubGVuZ3RoO2EtLTspKG89c1thXSkmJih0W2FdPSEoZVthXT1vKSl9KTpmdW5jdGlvbih0LHIsbyl7cmV0dXJuIGVbMF09dCxpKGUsbnVsbCxvLG4pLGVbMF09bnVsbCwhbi5wb3AoKX19KSxoYXM6YXQoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBvdCh0LGUpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOmF0KGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZShRLHR0KSxmdW5jdGlvbihlKXtyZXR1cm4oZS50ZXh0Q29udGVudHx8ZS5pbm5lclRleHR8fHIoZSkpLmluZGV4T2YodCk+LTF9fSksbGFuZzphdChmdW5jdGlvbih0KXtyZXR1cm4gSy50ZXN0KHR8fCIiKXx8b3QuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrdCksdD10LnJlcGxhY2UoUSx0dCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgbjtkb3tpZihuPW0/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihuPW4udG9Mb3dlckNhc2UoKSk9PT10fHwwPT09bi5pbmRleE9mKHQrIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciBuPXQubG9jYXRpb24mJnQubG9jYXRpb24uaGFzaDtyZXR1cm4gbiYmbi5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1wfSxmb2N1czpmdW5jdGlvbih0KXtyZXR1cm4gdD09PWYuYWN0aXZlRWxlbWVudCYmKCFmLmhhc0ZvY3VzfHxmLmhhc0ZvY3VzKCkpJiYhISh0LnR5cGV8fHQuaHJlZnx8fnQudGFiSW5kZXgpfSxlbmFibGVkOmZ0KCExKSxkaXNhYmxlZDpmdCghMCksY2hlY2tlZDpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiEhdC5jaGVja2VkfHwib3B0aW9uIj09PWUmJiEhdC5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT10LnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbih0KXtmb3IodD10LmZpcnN0Q2hpbGQ7dDt0PXQubmV4dFNpYmxpbmcpaWYodC5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIWkucHNldWRvcy5lbXB0eSh0KX0saGVhZGVyOmZ1bmN0aW9uKHQpe3JldHVybiAkLnRlc3QodC5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBYLnRlc3QodC5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiJidXR0b24iPT09dC50eXBlfHwiYnV0dG9uIj09PWV9LHRleHQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuImlucHV0Ij09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09dC50eXBlJiYobnVsbD09KGU9dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWUudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnB0KGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpwdChmdW5jdGlvbih0LGUpe3JldHVybltlLTFdfSksZXE6cHQoZnVuY3Rpb24odCxlLG4pe3JldHVybltuPDA/bitlOm5dfSksZXZlbjpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLG9kZDpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0xO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLGx0OnB0KGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bjwwP24rZTpuOy0taT49MDspdC5wdXNoKGkpO3JldHVybiB0fSksZ3Q6cHQoZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1uPDA/bitlOm47KytpPGU7KXQucHVzaChpKTtyZXR1cm4gdH0pfX0pLnBzZXVkb3MubnRoPWkucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0paS5wc2V1ZG9zW2VdPWx0KGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0paS5wc2V1ZG9zW2VdPWR0KGUpO2Z1bmN0aW9uIGd0KCl7fWZ1bmN0aW9uIHZ0KHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGgsaT0iIjtlPG47ZSsrKWkrPXRbZV0udmFsdWU7cmV0dXJuIGl9ZnVuY3Rpb24gYnQodCxlLG4pe3ZhciBpPWUuZGlyLHI9ZS5uZXh0LG89cnx8aSxzPW4mJiJwYXJlbnROb2RlIj09PW8sYT1NKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSxuLHIpe2Zvcig7ZT1lW2ldOylpZigxPT09ZS5ub2RlVHlwZXx8cylyZXR1cm4gdChlLG4scik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsbix1KXt2YXIgYyxoLGwsZD1beCxhXTtpZih1KXtmb3IoO2U9ZVtpXTspaWYoKDE9PT1lLm5vZGVUeXBlfHxzKSYmdChlLG4sdSkpcmV0dXJuITB9ZWxzZSBmb3IoO2U9ZVtpXTspaWYoMT09PWUubm9kZVR5cGV8fHMpaWYoaD0obD1lW19dfHwoZVtfXT17fSkpW2UudW5pcXVlSURdfHwobFtlLnVuaXF1ZUlEXT17fSksciYmcj09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbaV18fGU7ZWxzZXtpZigoYz1oW29dKSYmY1swXT09PXgmJmNbMV09PT1hKXJldHVybiBkWzJdPWNbMl07aWYoaFtvXT1kLGRbMl09dChlLG4sdSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHl0KHQpe3JldHVybiB0Lmxlbmd0aD4xP2Z1bmN0aW9uKGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZighdFtyXShlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9OnRbMF19ZnVuY3Rpb24gX3QodCxlLG4saSxyKXtmb3IodmFyIG8scz1bXSxhPTAsdT10Lmxlbmd0aCxjPW51bGwhPWU7YTx1O2ErKykobz10W2FdKSYmKG4mJiFuKG8saSxyKXx8KHMucHVzaChvKSxjJiZlLnB1c2goYSkpKTtyZXR1cm4gc31mdW5jdGlvbiB3dCh0LGUsbixpLHIsbyl7cmV0dXJuIGkmJiFpW19dJiYoaT13dChpKSksciYmIXJbX10mJihyPXd0KHIsbykpLGF0KGZ1bmN0aW9uKG8scyxhLHUpe3ZhciBjLGgsbCxkPVtdLGY9W10scD1zLmxlbmd0aCxtPW98fGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9MCxyPWUubGVuZ3RoO2k8cjtpKyspb3QodCxlW2ldLG4pO3JldHVybiBufShlfHwiKiIsYS5ub2RlVHlwZT9bYV06YSxbXSksZz0hdHx8IW8mJmU/bTpfdChtLGQsdCxhLHUpLHY9bj9yfHwobz90OnB8fGkpP1tdOnM6ZztpZihuJiZuKGcsdixhLHUpLGkpZm9yKGM9X3QodixmKSxpKGMsW10sYSx1KSxoPWMubGVuZ3RoO2gtLTspKGw9Y1toXSkmJih2W2ZbaF1dPSEoZ1tmW2hdXT1sKSk7aWYobyl7aWYocnx8dCl7aWYocil7Zm9yKGM9W10saD12Lmxlbmd0aDtoLS07KShsPXZbaF0pJiZjLnB1c2goZ1toXT1sKTtyKG51bGwsdj1bXSxjLHUpfWZvcihoPXYubGVuZ3RoO2gtLTspKGw9dltoXSkmJihjPXI/TChvLGwpOmRbaF0pPi0xJiYob1tjXT0hKHNbY109bCkpfX1lbHNlIHY9X3Qodj09PXM/di5zcGxpY2UocCx2Lmxlbmd0aCk6dikscj9yKG51bGwscyx2LHUpOmouYXBwbHkocyx2KX0pfWZ1bmN0aW9uIHh0KHQpe2Zvcih2YXIgZSxuLHIsbz10Lmxlbmd0aCxzPWkucmVsYXRpdmVbdFswXS50eXBlXSxhPXN8fGkucmVsYXRpdmVbIiAiXSx1PXM/MTowLGg9YnQoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSxhLCEwKSxsPWJ0KGZ1bmN0aW9uKHQpe3JldHVybiBMKGUsdCk+LTF9LGEsITApLGQ9W2Z1bmN0aW9uKHQsbixpKXt2YXIgcj0hcyYmKGl8fG4hPT1jKXx8KChlPW4pLm5vZGVUeXBlP2godCxuLGkpOmwodCxuLGkpKTtyZXR1cm4gZT1udWxsLHJ9XTt1PG87dSsrKWlmKG49aS5yZWxhdGl2ZVt0W3VdLnR5cGVdKWQ9W2J0KHl0KGQpLG4pXTtlbHNle2lmKChuPWkuZmlsdGVyW3RbdV0udHlwZV0uYXBwbHkobnVsbCx0W3VdLm1hdGNoZXMpKVtfXSl7Zm9yKHI9Kyt1O3I8byYmIWkucmVsYXRpdmVbdFtyXS50eXBlXTtyKyspO3JldHVybiB3dCh1PjEmJnl0KGQpLHU+MSYmdnQodC5zbGljZSgwLHUtMSkuY29uY2F0KHt2YWx1ZToiICI9PT10W3UtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShxLCIkMSIpLG4sdTxyJiZ4dCh0LnNsaWNlKHUscikpLHI8byYmeHQodD10LnNsaWNlKHIpKSxyPG8mJnZ0KHQpKX1kLnB1c2gobil9cmV0dXJuIHl0KGQpfXJldHVybiBndC5wcm90b3R5cGU9aS5maWx0ZXJzPWkucHNldWRvcyxpLnNldEZpbHRlcnM9bmV3IGd0LHM9b3QudG9rZW5pemU9ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8scyxhLHUsYyxoPUVbdCsiICJdO2lmKGgpcmV0dXJuIGU/MDpoLnNsaWNlKDApO2ZvcihhPXQsdT1bXSxjPWkucHJlRmlsdGVyO2E7KXtmb3IocyBpbiBuJiYhKHI9SC5leGVjKGEpKXx8KHImJihhPWEuc2xpY2UoclswXS5sZW5ndGgpfHxhKSx1LnB1c2gobz1bXSkpLG49ITEsKHI9Ri5leGVjKGEpKSYmKG49ci5zaGlmdCgpLG8ucHVzaCh7dmFsdWU6bix0eXBlOnJbMF0ucmVwbGFjZShxLCIgIil9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKSxpLmZpbHRlcikhKHI9WVtzXS5leGVjKGEpKXx8Y1tzXSYmIShyPWNbc10ocikpfHwobj1yLnNoaWZ0KCksby5wdXNoKHt2YWx1ZTpuLHR5cGU6cyxtYXRjaGVzOnJ9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gZT9hLmxlbmd0aDphP290LmVycm9yKHQpOkUodCx1KS5zbGljZSgwKX0sYT1vdC5jb21waWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1bXSxvPVtdLGE9QVt0KyIgIl07aWYoIWEpe2ZvcihlfHwoZT1zKHQpKSxuPWUubGVuZ3RoO24tLTspKGE9eHQoZVtuXSkpW19dP3IucHVzaChhKTpvLnB1c2goYSk7KGE9QSh0LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5sZW5ndGg+MCxyPXQubGVuZ3RoPjAsbz1mdW5jdGlvbihvLHMsYSx1LGgpe3ZhciBsLHAsZyx2PTAsYj0iMCIseT1vJiZbXSxfPVtdLHc9YyxNPW98fHImJmkuZmluZC5UQUcoIioiLGgpLFM9eCs9bnVsbD09dz8xOk1hdGgucmFuZG9tKCl8fC4xLEU9TS5sZW5ndGg7Zm9yKGgmJihjPXM9PT1mfHxzfHxoKTtiIT09RSYmbnVsbCE9KGw9TVtiXSk7YisrKXtpZihyJiZsKXtmb3IocD0wLHN8fGwub3duZXJEb2N1bWVudD09PWZ8fChkKGwpLGE9IW0pO2c9dFtwKytdOylpZihnKGwsc3x8ZixhKSl7dS5wdXNoKGwpO2JyZWFrfWgmJih4PVMpfW4mJigobD0hZyYmbCkmJnYtLSxvJiZ5LnB1c2gobCkpfWlmKHYrPWIsbiYmYiE9PXYpe2ZvcihwPTA7Zz1lW3ArK107KWcoeSxfLHMsYSk7aWYobyl7aWYodj4wKWZvcig7Yi0tOyl5W2JdfHxfW2JdfHwoX1tiXT1QLmNhbGwodSkpO189X3QoXyl9ai5hcHBseSh1LF8pLGgmJiFvJiZfLmxlbmd0aD4wJiZ2K2UubGVuZ3RoPjEmJm90LnVuaXF1ZVNvcnQodSl9cmV0dXJuIGgmJih4PVMsYz13KSx5fTtyZXR1cm4gbj9hdChvKTpvfShvLHIpKSkuc2VsZWN0b3I9dH1yZXR1cm4gYX0sdT1vdC5zZWxlY3Q9ZnVuY3Rpb24odCxlLG4scil7dmFyIG8sdSxjLGgsbCxkPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LGY9IXImJnModD1kLnNlbGVjdG9yfHx0KTtpZihuPW58fFtdLDE9PT1mLmxlbmd0aCl7aWYoKHU9ZlswXT1mWzBdLnNsaWNlKDApKS5sZW5ndGg+MiYmIklEIj09PShjPXVbMF0pLnR5cGUmJjk9PT1lLm5vZGVUeXBlJiZtJiZpLnJlbGF0aXZlW3VbMV0udHlwZV0pe2lmKCEoZT0oaS5maW5kLklEKGMubWF0Y2hlc1swXS5yZXBsYWNlKFEsdHQpLGUpfHxbXSlbMF0pKXJldHVybiBuO2QmJihlPWUucGFyZW50Tm9kZSksdD10LnNsaWNlKHUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcihvPVkubmVlZHNDb250ZXh0LnRlc3QodCk/MDp1Lmxlbmd0aDtvLS0mJihjPXVbb10sIWkucmVsYXRpdmVbaD1jLnR5cGVdKTspaWYoKGw9aS5maW5kW2hdKSYmKHI9bChjLm1hdGNoZXNbMF0ucmVwbGFjZShRLHR0KSxaLnRlc3QodVswXS50eXBlKSYmbXQoZS5wYXJlbnROb2RlKXx8ZSkpKXtpZih1LnNwbGljZShvLDEpLCEodD1yLmxlbmd0aCYmdnQodSkpKXJldHVybiBqLmFwcGx5KG4sciksbjticmVha319cmV0dXJuKGR8fGEodCxmKSkocixlLCFtLG4sIWV8fFoudGVzdCh0KSYmbXQoZS5wYXJlbnROb2RlKXx8ZSksbn0sbi5zb3J0U3RhYmxlPV8uc3BsaXQoIiIpLnNvcnQoQykuam9pbigiIik9PT1fLG4uZGV0ZWN0RHVwbGljYXRlcz0hIWwsZCgpLG4uc29ydERldGFjaGVkPXV0KGZ1bmN0aW9uKHQpe3JldHVybiAxJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09dC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGN0KCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbih0LGUsbil7aWYoIW4pcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGUsInR5cGUiPT09ZS50b0xvd2VyQ2FzZSgpPzE6Mil9KSxuLmF0dHJpYnV0ZXMmJnV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGlucHV0Lz4iLHQuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT10LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGN0KCJ2YWx1ZSIsZnVuY3Rpb24odCxlLG4pe2lmKCFuJiYiaW5wdXQiPT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB0LmRlZmF1bHRWYWx1ZX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10LmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxjdChCLGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZighbilyZXR1cm4hMD09PXRbZV0/ZS50b0xvd2VyQ2FzZSgpOihpPXQuZ2V0QXR0cmlidXRlTm9kZShlKSkmJmkuc3BlY2lmaWVkP2kudmFsdWU6bnVsbH0pLG90fShuKTtNLmZpbmQ9QSxNLmV4cHI9QS5zZWxlY3RvcnMsTS5leHByWyI6Il09TS5leHByLnBzZXVkb3MsTS51bmlxdWVTb3J0PU0udW5pcXVlPUEudW5pcXVlU29ydCxNLnRleHQ9QS5nZXRUZXh0LE0uaXNYTUxEb2M9QS5pc1hNTCxNLmNvbnRhaW5zPUEuY29udGFpbnMsTS5lc2NhcGVTZWxlY3Rvcj1BLmVzY2FwZTt2YXIgQz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9dm9pZCAwIT09bjsodD10W2VdKSYmOSE9PXQubm9kZVR5cGU7KWlmKDE9PT10Lm5vZGVUeXBlKXtpZihyJiZNKHQpLmlzKG4pKWJyZWFrO2kucHVzaCh0KX1yZXR1cm4gaX0saz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXTt0O3Q9dC5uZXh0U2libGluZykxPT09dC5ub2RlVHlwZSYmdCE9PWUmJm4ucHVzaCh0KTtyZXR1cm4gbn0sTz1NLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O2Z1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZS50b0xvd2VyQ2FzZSgpfXZhciBUPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8/Pig/OjxcL1wxPnwpJC9pO2Z1bmN0aW9uIGoodCxlLG4pe3JldHVybiBiKGUpP00uZ3JlcCh0LGZ1bmN0aW9uKHQsaSl7cmV0dXJuISFlLmNhbGwodCxpLHQpIT09bn0pOmUubm9kZVR5cGU/TS5ncmVwKHQsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lIT09bn0pOiJzdHJpbmciIT10eXBlb2YgZT9NLmdyZXAodCxmdW5jdGlvbih0KXtyZXR1cm4gbC5jYWxsKGUsdCk+LTEhPT1ufSk6TS5maWx0ZXIoZSx0LG4pfU0uZmlsdGVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lWzBdO3JldHVybiBuJiYodD0iOm5vdCgiK3QrIikiKSwxPT09ZS5sZW5ndGgmJjE9PT1pLm5vZGVUeXBlP00uZmluZC5tYXRjaGVzU2VsZWN0b3IoaSx0KT9baV06W106TS5maW5kLm1hdGNoZXModCxNLmdyZXAoZSxmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubm9kZVR5cGV9KSl9LE0uZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlLG4saT10aGlzLmxlbmd0aCxyPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0aGlzLnB1c2hTdGFjayhNKHQpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihlPTA7ZTxpO2UrKylpZihNLmNvbnRhaW5zKHJbZV0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKG49dGhpcy5wdXNoU3RhY2soW10pLGU9MDtlPGk7ZSsrKU0uZmluZCh0LHJbZV0sbik7cmV0dXJuIGk+MT9NLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITEpKX0sbm90OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITApKX0saXM6ZnVuY3Rpb24odCl7cmV0dXJuISFqKHRoaXMsInN0cmluZyI9PXR5cGVvZiB0JiZPLnRlc3QodCk/TSh0KTp0fHxbXSwhMSkubGVuZ3RofX0pO3ZhciBJLEw9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoTS5mbi5pbml0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyO2lmKCF0KXJldHVybiB0aGlzO2lmKG49bnx8SSwic3RyaW5nIj09dHlwZW9mIHQpe2lmKCEoaT0iPCI9PT10WzBdJiYiPiI9PT10W3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aD49Mz9bbnVsbCx0LG51bGxdOkwuZXhlYyh0KSl8fCFpWzFdJiZlKXJldHVybiFlfHxlLmpxdWVyeT8oZXx8bikuZmluZCh0KTp0aGlzLmNvbnN0cnVjdG9yKGUpLmZpbmQodCk7aWYoaVsxXSl7aWYoZT1lIGluc3RhbmNlb2YgTT9lWzBdOmUsTS5tZXJnZSh0aGlzLE0ucGFyc2VIVE1MKGlbMV0sZSYmZS5ub2RlVHlwZT9lLm93bmVyRG9jdW1lbnR8fGU6cywhMCkpLFQudGVzdChpWzFdKSYmTS5pc1BsYWluT2JqZWN0KGUpKWZvcihpIGluIGUpYih0aGlzW2ldKT90aGlzW2ldKGVbaV0pOnRoaXMuYXR0cihpLGVbaV0pO3JldHVybiB0aGlzfXJldHVybihyPXMuZ2V0RWxlbWVudEJ5SWQoaVsyXSkpJiYodGhpc1swXT1yLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIHQubm9kZVR5cGU/KHRoaXNbMF09dCx0aGlzLmxlbmd0aD0xLHRoaXMpOmIodCk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KHQpOnQoTSk6TS5tYWtlQXJyYXkodCx0aGlzKX0pLnByb3RvdHlwZT1NLmZuLEk9TShzKTt2YXIgQj0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxEPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2Z1bmN0aW9uIFIodCxlKXtmb3IoOyh0PXRbZV0pJiYxIT09dC5ub2RlVHlwZTspO3JldHVybiB0fU0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24odCl7dmFyIGU9TSh0LHRoaXMpLG49ZS5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxuO3QrKylpZihNLmNvbnRhaW5zKHRoaXMsZVt0XSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MCxyPXRoaXMubGVuZ3RoLG89W10scz0ic3RyaW5nIiE9dHlwZW9mIHQmJk0odCk7aWYoIU8udGVzdCh0KSlmb3IoO2k8cjtpKyspZm9yKG49dGhpc1tpXTtuJiZuIT09ZTtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYocz9zLmluZGV4KG4pPi0xOjE9PT1uLm5vZGVUeXBlJiZNLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sdCkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubGVuZ3RoPjE/TS51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD8ic3RyaW5nIj09dHlwZW9mIHQ/bC5jYWxsKE0odCksdGhpc1swXSk6bC5jYWxsKHRoaXMsdC5qcXVlcnk/dFswXTp0KTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLnVuaXF1ZVNvcnQoTS5tZXJnZSh0aGlzLmdldCgpLE0odCxlKSkpKX0sYWRkQmFjazpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hZGQobnVsbD09dD90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcih0KSl9fSksTS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiYxMSE9PWUubm9kZVR5cGU/ZTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQyh0LCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gUih0LCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKHQpe3JldHVybiBSKHQsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIEModCwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIEModCwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBDKHQsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKHQpe3JldHVybiBrKCh0LnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLHQpfSxjaGlsZHJlbjpmdW5jdGlvbih0KXtyZXR1cm4gayh0LmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LCJpZnJhbWUiKT90LmNvbnRlbnREb2N1bWVudDooUCh0LCJ0ZW1wbGF0ZSIpJiYodD10LmNvbnRlbnR8fHQpLE0ubWVyZ2UoW10sdC5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24obixpKXt2YXIgcj1NLm1hcCh0aGlzLGUsbik7cmV0dXJuIlVudGlsIiE9PXQuc2xpY2UoLTUpJiYoaT1uKSxpJiYic3RyaW5nIj09dHlwZW9mIGkmJihyPU0uZmlsdGVyKGkscikpLHRoaXMubGVuZ3RoPjEmJihEW3RdfHxNLnVuaXF1ZVNvcnQociksQi50ZXN0KHQpJiZyLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2socil9fSk7dmFyIHo9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBOKHQpe3JldHVybiB0fWZ1bmN0aW9uIFcodCl7dGhyb3cgdH1mdW5jdGlvbiBxKHQsZSxuLGkpe3ZhciByO3RyeXt0JiZiKHI9dC5wcm9taXNlKT9yLmNhbGwodCkuZG9uZShlKS5mYWlsKG4pOnQmJmIocj10LnRoZW4pP3IuY2FsbCh0LGUsbik6ZS5hcHBseSh2b2lkIDAsW3RdLnNsaWNlKGkpKX1jYXRjaCh0KXtuLmFwcGx5KHZvaWQgMCxbdF0pfX1NLkNhbGxiYWNrcz1mdW5jdGlvbih0KXt0PSJzdHJpbmciPT10eXBlb2YgdD9mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gTS5lYWNoKHQubWF0Y2goeil8fFtdLGZ1bmN0aW9uKHQsbil7ZVtuXT0hMH0pLGV9KHQpOk0uZXh0ZW5kKHt9LHQpO3ZhciBlLG4saSxyLG89W10scz1bXSxhPS0xLHU9ZnVuY3Rpb24oKXtmb3Iocj1yfHx0Lm9uY2UsaT1lPSEwO3MubGVuZ3RoO2E9LTEpZm9yKG49cy5zaGlmdCgpOysrYTxvLmxlbmd0aDspITE9PT1vW2FdLmFwcGx5KG5bMF0sblsxXSkmJnQuc3RvcE9uRmFsc2UmJihhPW8ubGVuZ3RoLG49ITEpO3QubWVtb3J5fHwobj0hMSksZT0hMSxyJiYobz1uP1tdOiIiKX0sYz17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG8mJihuJiYhZSYmKGE9by5sZW5ndGgtMSxzLnB1c2gobikpLGZ1bmN0aW9uIGUobil7TS5lYWNoKG4sZnVuY3Rpb24obixpKXtiKGkpP3QudW5pcXVlJiZjLmhhcyhpKXx8by5wdXNoKGkpOmkmJmkubGVuZ3RoJiYic3RyaW5nIiE9PXgoaSkmJmUoaSl9KX0oYXJndW1lbnRzKSxuJiYhZSYmdSgpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gTS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbjsobj1NLmluQXJyYXkoZSxvLG4pKT4tMTspby5zcGxpY2UobiwxKSxuPD1hJiZhLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/TS5pbkFycmF5KHQsbyk+LTE6by5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbyYmKG89W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gcj1zPVtdLG89bj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFvfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIHI9cz1bXSxufHxlfHwobz1uPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXJ9LGZpcmVXaXRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJ8fChuPVt0LChuPW58fFtdKS5zbGljZT9uLnNsaWNlKCk6bl0scy5wdXNoKG4pLGV8fHUoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBjLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhaX19O3JldHVybiBjfSxNLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24odCl7dmFyIGU9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLE0uQ2FsbGJhY2tzKCJtZW1vcnkiKSxNLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGk9InBlbmRpbmciLHI9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBvLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHIudGhlbihudWxsLHQpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzO3JldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe00uZWFjaChlLGZ1bmN0aW9uKGUsaSl7dmFyIHI9Yih0W2lbNF1dKSYmdFtpWzRdXTtvW2lbMV1dKGZ1bmN0aW9uKCl7dmFyIHQ9ciYmci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dCYmYih0LnByb21pc2UpP3QucHJvbWlzZSgpLnByb2dyZXNzKG4ubm90aWZ5KS5kb25lKG4ucmVzb2x2ZSkuZmFpbChuLnJlamVjdCk6bltpWzBdKyJXaXRoIl0odGhpcyxyP1t0XTphcmd1bWVudHMpfSl9KSx0PW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxpLHIpe3ZhciBvPTA7ZnVuY3Rpb24gcyh0LGUsaSxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLHU9YXJndW1lbnRzLGM9ZnVuY3Rpb24oKXt2YXIgbixjO2lmKCEodDxvKSl7aWYoKG49aS5hcHBseShhLHUpKT09PWUucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO2M9biYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pJiZuLnRoZW4sYihjKT9yP2MuY2FsbChuLHMobyxlLE4scikscyhvLGUsVyxyKSk6KG8rKyxjLmNhbGwobixzKG8sZSxOLHIpLHMobyxlLFcscikscyhvLGUsTixlLm5vdGlmeVdpdGgpKSk6KGkhPT1OJiYoYT12b2lkIDAsdT1bbl0pLChyfHxlLnJlc29sdmVXaXRoKShhLHUpKX19LGg9cj9jOmZ1bmN0aW9uKCl7dHJ5e2MoKX1jYXRjaChuKXtNLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJk0uRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhuLGguc3RhY2tUcmFjZSksdCsxPj1vJiYoaSE9PVcmJihhPXZvaWQgMCx1PVtuXSksZS5yZWplY3RXaXRoKGEsdSkpfX07dD9oKCk6KE0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoaC5zdGFja1RyYWNlPU0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLG4uc2V0VGltZW91dChoKSl9fXJldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe2VbMF1bM10uYWRkKHMoMCxuLGIocik/cjpOLG4ubm90aWZ5V2l0aCkpLGVbMV1bM10uYWRkKHMoMCxuLGIodCk/dDpOKSksZVsyXVszXS5hZGQocygwLG4sYihpKT9pOlcpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dD9NLmV4dGVuZCh0LHIpOnJ9fSxvPXt9O3JldHVybiBNLmVhY2goZSxmdW5jdGlvbih0LG4pe3ZhciBzPW5bMl0sYT1uWzVdO3JbblsxXV09cy5hZGQsYSYmcy5hZGQoZnVuY3Rpb24oKXtpPWF9LGVbMy10XVsyXS5kaXNhYmxlLGVbMy10XVszXS5kaXNhYmxlLGVbMF1bMl0ubG9jayxlWzBdWzNdLmxvY2spLHMuYWRkKG5bM10uZmlyZSksb1tuWzBdXT1mdW5jdGlvbigpe3JldHVybiBvW25bMF0rIldpdGgiXSh0aGlzPT09bz92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9LG9bblswXSsiV2l0aCJdPXMuZmlyZVdpdGh9KSxyLnByb21pc2UobyksdCYmdC5jYWxsKG8sbyksb30sd2hlbjpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49ZSxpPUFycmF5KG4pLHI9dS5jYWxsKGFyZ3VtZW50cyksbz1NLkRlZmVycmVkKCkscz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7aVt0XT10aGlzLHJbdF09YXJndW1lbnRzLmxlbmd0aD4xP3UuY2FsbChhcmd1bWVudHMpOm4sLS1lfHxvLnJlc29sdmVXaXRoKGkscil9fTtpZihlPD0xJiYocSh0LG8uZG9uZShzKG4pKS5yZXNvbHZlLG8ucmVqZWN0LCFlKSwicGVuZGluZyI9PT1vLnN0YXRlKCl8fGIocltuXSYmcltuXS50aGVuKSkpcmV0dXJuIG8udGhlbigpO2Zvcig7bi0tOylxKHJbbl0scyhuKSxvLnJlamVjdCk7cmV0dXJuIG8ucHJvbWlzZSgpfX0pO3ZhciBIPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO00uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbih0LGUpe24uY29uc29sZSYmbi5jb25zb2xlLndhcm4mJnQmJkgudGVzdCh0Lm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UsdC5zdGFjayxlKX0sTS5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbih0KXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSl9O3ZhciBGPU0uRGVmZXJyZWQoKTtmdW5jdGlvbiBWKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixWKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFYpLE0ucmVhZHkoKX1NLmZuLnJlYWR5PWZ1bmN0aW9uKHQpe3JldHVybiBGLnRoZW4odCkuY2F0Y2goZnVuY3Rpb24odCl7TS5yZWFkeUV4Y2VwdGlvbih0KX0pLHRoaXN9LE0uZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKHQpeyghMD09PXQ/LS1NLnJlYWR5V2FpdDpNLmlzUmVhZHkpfHwoTS5pc1JlYWR5PSEwLCEwIT09dCYmLS1NLnJlYWR5V2FpdD4wfHxGLnJlc29sdmVXaXRoKHMsW01dKSl9fSksTS5yZWFkeS50aGVuPUYudGhlbiwiY29tcGxldGUiPT09cy5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1zLnJlYWR5U3RhdGUmJiFzLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9uLnNldFRpbWVvdXQoTS5yZWFkeSk6KHMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsViksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixWKSk7dmFyIFU9ZnVuY3Rpb24odCxlLG4saSxyLG8scyl7dmFyIGE9MCx1PXQubGVuZ3RoLGM9bnVsbD09bjtpZigib2JqZWN0Ij09PXgobikpZm9yKGEgaW4gcj0hMCxuKVUodCxlLGEsblthXSwhMCxvLHMpO2Vsc2UgaWYodm9pZCAwIT09aSYmKHI9ITAsYihpKXx8KHM9ITApLGMmJihzPyhlLmNhbGwodCxpKSxlPW51bGwpOihjPWUsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMuY2FsbChNKHQpLG4pfSkpLGUpKWZvcig7YTx1O2ErKyllKHRbYV0sbixzP2k6aS5jYWxsKHRbYV0sYSxlKHRbYV0sbikpKTtyZXR1cm4gcj90OmM/ZS5jYWxsKHQpOnU/ZSh0WzBdLG4pOm99LEs9L14tbXMtLyxZPS8tKFthLXpdKS9nO2Z1bmN0aW9uIFgodCxlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uICQodCl7cmV0dXJuIHQucmVwbGFjZShLLCJtcy0iKS5yZXBsYWNlKFksWCl9dmFyIEc9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lm5vZGVUeXBlfHw5PT09dC5ub2RlVHlwZXx8ISt0Lm5vZGVUeXBlfTtmdW5jdGlvbiBKKCl7dGhpcy5leHBhbmRvPU0uZXhwYW5kbytKLnVpZCsrfUoudWlkPTEsSi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gZXx8KGU9e30sRyh0KSYmKHQubm9kZVR5cGU/dFt0aGlzLmV4cGFuZG9dPWU6T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdGhpcy5leHBhbmRvLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pKSksZX0sc2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMuY2FjaGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJbJChlKV09bjtlbHNlIGZvcihpIGluIGUpclskKGkpXT1lW2ldO3JldHVybiByfSxnZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZT90aGlzLmNhY2hlKHQpOnRbdGhpcy5leHBhbmRvXSYmdFt0aGlzLmV4cGFuZG9dWyQoZSldfSxhY2Nlc3M6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1lfHxlJiYic3RyaW5nIj09dHlwZW9mIGUmJnZvaWQgMD09PW4/dGhpcy5nZXQodCxlKToodGhpcy5zZXQodCxlLG4pLHZvaWQgMCE9PW4/bjplKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10W3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09aSl7aWYodm9pZCAwIT09ZSl7bj0oZT1BcnJheS5pc0FycmF5KGUpP2UubWFwKCQpOihlPSQoZSkpaW4gaT9bZV06ZS5tYXRjaCh6KXx8W10pLmxlbmd0aDtmb3IoO24tLTspZGVsZXRlIGlbZVtuXV19KHZvaWQgMD09PWV8fE0uaXNFbXB0eU9iamVjdChpKSkmJih0Lm5vZGVUeXBlP3RbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIHRbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09ZSYmIU0uaXNFbXB0eU9iamVjdChlKX19O3ZhciBaPW5ldyBKLFE9bmV3IEosdHQ9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxldD0vW0EtWl0vZztmdW5jdGlvbiBudCh0LGUsbil7dmFyIGk7aWYodm9pZCAwPT09biYmMT09PXQubm9kZVR5cGUpaWYoaT0iZGF0YS0iK2UucmVwbGFjZShldCwiLSQmIikudG9Mb3dlckNhc2UoKSwic3RyaW5nIj09dHlwZW9mKG49dC5nZXRBdHRyaWJ1dGUoaSkpKXt0cnl7bj1mdW5jdGlvbih0KXtyZXR1cm4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmKCJudWxsIj09PXQ/bnVsbDp0PT09K3QrIiI/K3Q6dHQudGVzdCh0KT9KU09OLnBhcnNlKHQpOnQpfShuKX1jYXRjaCh0KXt9US5zZXQodCxlLG4pfWVsc2Ugbj12b2lkIDA7cmV0dXJuIG59TS5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24odCl7cmV0dXJuIFEuaGFzRGF0YSh0KXx8Wi5oYXNEYXRhKHQpfSxkYXRhOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUS5hY2Nlc3ModCxlLG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7US5yZW1vdmUodCxlKX0sX2RhdGE6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBaLmFjY2Vzcyh0LGUsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7Wi5yZW1vdmUodCxlKX19KSxNLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvPXRoaXNbMF0scz1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09dCl7aWYodGhpcy5sZW5ndGgmJihyPVEuZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhWi5nZXQobywiaGFzRGF0YUF0dHJzIikpKXtmb3Iobj1zLmxlbmd0aDtuLS07KXNbbl0mJjA9PT0oaT1zW25dLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihpPSQoaS5zbGljZSg1KSksbnQobyxpLHJbaV0pKTtaLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gcn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyx0KX0pOlUodGhpcyxmdW5jdGlvbihlKXt2YXIgbjtpZihvJiZ2b2lkIDA9PT1lKXJldHVybiB2b2lkIDAhPT0obj1RLmdldChvLHQpKT9uOnZvaWQgMCE9PShuPW50KG8sdCkpP246dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsdCxlKX0pfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLHQpfSl9fSksTS5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0KXJldHVybiBlPShlfHwiZngiKSsicXVldWUiLGk9Wi5nZXQodCxlKSxuJiYoIWl8fEFycmF5LmlzQXJyYXkobik/aT1aLmFjY2Vzcyh0LGUsTS5tYWtlQXJyYXkobikpOmkucHVzaChuKSksaXx8W119LGRlcXVldWU6ZnVuY3Rpb24odCxlKXtlPWV8fCJmeCI7dmFyIG49TS5xdWV1ZSh0LGUpLGk9bi5sZW5ndGgscj1uLnNoaWZ0KCksbz1NLl9xdWV1ZUhvb2tzKHQsZSk7ImlucHJvZ3Jlc3MiPT09ciYmKHI9bi5zaGlmdCgpLGktLSksciYmKCJmeCI9PT1lJiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLHIuY2FsbCh0LGZ1bmN0aW9uKCl7TS5kZXF1ZXVlKHQsZSl9LG8pKSwhaSYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZSsicXVldWVIb29rcyI7cmV0dXJuIFouZ2V0KHQsbil8fFouYWNjZXNzKHQsbix7ZW1wdHk6TS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7Wi5yZW1vdmUodCxbZSsicXVldWUiLG5dKX0pfSl9fSksTS5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iZngiLG4tLSksYXJndW1lbnRzLmxlbmd0aDxuP00ucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1lP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49TS5xdWV1ZSh0aGlzLHQsZSk7TS5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1uWzBdJiZNLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtNLmRlcXVldWUodGhpcyx0KX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXVlKHR8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT0xLHI9TS5EZWZlcnJlZCgpLG89dGhpcyxzPXRoaXMubGVuZ3RoLGE9ZnVuY3Rpb24oKXstLWl8fHIucmVzb2x2ZVdpdGgobyxbb10pfTtmb3IoInN0cmluZyIhPXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSx0PXR8fCJmeCI7cy0tOykobj1aLmdldChvW3NdLHQrInF1ZXVlSG9va3MiKSkmJm4uZW1wdHkmJihpKyssbi5lbXB0eS5hZGQoYSkpO3JldHVybiBhKCksci5wcm9taXNlKGUpfX0pO3ZhciBpdD0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSxydD1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIraXQrIikoW2EteiVdKikkIiwiaSIpLG90PVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4ibm9uZSI9PT0odD1lfHx0KS5zdHlsZS5kaXNwbGF5fHwiIj09PXQuc3R5bGUuZGlzcGxheSYmTS5jb250YWlucyh0Lm93bmVyRG9jdW1lbnQsdCkmJiJub25lIj09PU0uY3NzKHQsImRpc3BsYXkiKX0sYXQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzPXt9O2ZvcihvIGluIGUpc1tvXT10LnN0eWxlW29dLHQuc3R5bGVbb109ZVtvXTtmb3IobyBpbiByPW4uYXBwbHkodCxpfHxbXSksZSl0LnN0eWxlW29dPXNbb107cmV0dXJuIHJ9O2Z1bmN0aW9uIHV0KHQsZSxuLGkpe3ZhciByLG8scz0yMCxhPWk/ZnVuY3Rpb24oKXtyZXR1cm4gaS5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gTS5jc3ModCxlLCIiKX0sdT1hKCksYz1uJiZuWzNdfHwoTS5jc3NOdW1iZXJbZV0/IiI6InB4IiksaD0oTS5jc3NOdW1iZXJbZV18fCJweCIhPT1jJiYrdSkmJnJ0LmV4ZWMoTS5jc3ModCxlKSk7aWYoaCYmaFszXSE9PWMpe2Zvcih1Lz0yLGM9Y3x8aFszXSxoPSt1fHwxO3MtLTspTS5zdHlsZSh0LGUsaCtjKSwoMS1vKSooMS0obz1hKCkvdXx8LjUpKTw9MCYmKHM9MCksaC89bztoKj0yLE0uc3R5bGUodCxlLGgrYyksbj1ufHxbXX1yZXR1cm4gbiYmKGg9K2h8fCt1fHwwLHI9blsxXT9oKyhuWzFdKzEpKm5bMl06K25bMl0saSYmKGkudW5pdD1jLGkuc3RhcnQ9aCxpLmVuZD1yKSkscn12YXIgY3Q9e307ZnVuY3Rpb24gaHQodCl7dmFyIGUsbj10Lm93bmVyRG9jdW1lbnQsaT10Lm5vZGVOYW1lLHI9Y3RbaV07cmV0dXJuIHJ8fChlPW4uYm9keS5hcHBlbmRDaGlsZChuLmNyZWF0ZUVsZW1lbnQoaSkpLHI9TS5jc3MoZSwiZGlzcGxheSIpLGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSwibm9uZSI9PT1yJiYocj0iYmxvY2siKSxjdFtpXT1yLHIpfWZ1bmN0aW9uIGx0KHQsZSl7Zm9yKHZhciBuLGkscj1bXSxvPTAscz10Lmxlbmd0aDtvPHM7bysrKShpPXRbb10pLnN0eWxlJiYobj1pLnN0eWxlLmRpc3BsYXksZT8oIm5vbmUiPT09biYmKHJbb109Wi5nZXQoaSwiZGlzcGxheSIpfHxudWxsLHJbb118fChpLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PWkuc3R5bGUuZGlzcGxheSYmc3QoaSkmJihyW29dPWh0KGkpKSk6Im5vbmUiIT09biYmKHJbb109Im5vbmUiLFouc2V0KGksImRpc3BsYXkiLG4pKSk7Zm9yKG89MDtvPHM7bysrKW51bGwhPXJbb10mJih0W29dLnN0eWxlLmRpc3BsYXk9cltvXSk7cmV0dXJuIHR9TS5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbih0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0P3Q/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7c3QodGhpcyk/TSh0aGlzKS5zaG93KCk6TSh0aGlzKS5oaWRlKCl9KX19KTt2YXIgZHQ9L14oPzpjaGVja2JveHxyYWRpbykkL2ksZnQ9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSspL2kscHQ9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLG10PXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07ZnVuY3Rpb24gZ3QodCxlKXt2YXIgbjtyZXR1cm4gbj12b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZXx8IioiKTp2b2lkIDAhPT10LnF1ZXJ5U2VsZWN0b3JBbGw/dC5xdWVyeVNlbGVjdG9yQWxsKGV8fCIqIik6W10sdm9pZCAwPT09ZXx8ZSYmUCh0LGUpP00ubWVyZ2UoW3RdLG4pOm59ZnVuY3Rpb24gdnQodCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspWi5zZXQodFtuXSwiZ2xvYmFsRXZhbCIsIWV8fFouZ2V0KGVbbl0sImdsb2JhbEV2YWwiKSl9bXQub3B0Z3JvdXA9bXQub3B0aW9uLG10LnRib2R5PW10LnRmb290PW10LmNvbGdyb3VwPW10LmNhcHRpb249bXQudGhlYWQsbXQudGg9bXQudGQ7dmFyIGJ0LHl0LF90PS88fCYjP1x3KzsvO2Z1bmN0aW9uIHd0KHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGMsaCxsPWUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9W10sZj0wLHA9dC5sZW5ndGg7ZjxwO2YrKylpZigobz10W2ZdKXx8MD09PW8paWYoIm9iamVjdCI9PT14KG8pKU0ubWVyZ2UoZCxvLm5vZGVUeXBlP1tvXTpvKTtlbHNlIGlmKF90LnRlc3Qobykpe2ZvcihzPXN8fGwuYXBwZW5kQ2hpbGQoZS5jcmVhdGVFbGVtZW50KCJkaXYiKSksYT0oZnQuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PW10W2FdfHxtdC5fZGVmYXVsdCxzLmlubmVySFRNTD11WzFdK00uaHRtbFByZWZpbHRlcihvKSt1WzJdLGg9dVswXTtoLS07KXM9cy5sYXN0Q2hpbGQ7TS5tZXJnZShkLHMuY2hpbGROb2RlcyksKHM9bC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIGQucHVzaChlLmNyZWF0ZVRleHROb2RlKG8pKTtmb3IobC50ZXh0Q29udGVudD0iIixmPTA7bz1kW2YrK107KWlmKGkmJk0uaW5BcnJheShvLGkpPi0xKXImJnIucHVzaChvKTtlbHNlIGlmKGM9TS5jb250YWlucyhvLm93bmVyRG9jdW1lbnQsbykscz1ndChsLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxjJiZ2dChzKSxuKWZvcihoPTA7bz1zW2grK107KXB0LnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKTtyZXR1cm4gbH1idD1zLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoeXQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHl0LnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSx5dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYnQuYXBwZW5kQ2hpbGQoeXQpLHYuY2hlY2tDbG9uZT1idC5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYnQuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix2Lm5vQ2xvbmVDaGVja2VkPSEhYnQuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3ZhciB4dD1zLmRvY3VtZW50RWxlbWVudCxNdD0vXmtleS8sU3Q9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLEV0PS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBBdCgpe3JldHVybiEwfWZ1bmN0aW9uIEN0KCl7cmV0dXJuITF9ZnVuY3Rpb24ga3QoKXt0cnl7cmV0dXJuIHMuYWN0aXZlRWxlbWVudH1jYXRjaCh0KXt9fWZ1bmN0aW9uIE90KHQsZSxuLGkscixvKXt2YXIgcyxhO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7Zm9yKGEgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihpPWl8fG4sbj12b2lkIDApLGUpT3QodCxhLG4saSxlW2FdLG8pO3JldHVybiB0fWlmKG51bGw9PWkmJm51bGw9PXI/KHI9bixpPW49dm9pZCAwKTpudWxsPT1yJiYoInN0cmluZyI9PXR5cGVvZiBuPyhyPWksaT12b2lkIDApOihyPWksaT1uLG49dm9pZCAwKSksITE9PT1yKXI9Q3Q7ZWxzZSBpZighcilyZXR1cm4gdDtyZXR1cm4gMT09PW8mJihzPXIsKHI9ZnVuY3Rpb24odCl7cmV0dXJuIE0oKS5vZmYodCkscy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPXMuZ3VpZHx8KHMuZ3VpZD1NLmd1aWQrKykpLHQuZWFjaChmdW5jdGlvbigpe00uZXZlbnQuYWRkKHRoaXMsZSxyLGksbil9KX1NLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouZ2V0KHQpO2lmKGcpZm9yKG4uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixyPW8uc2VsZWN0b3IpLHImJk0uZmluZC5tYXRjaGVzU2VsZWN0b3IoeHQsciksbi5ndWlkfHwobi5ndWlkPU0uZ3VpZCsrKSwodT1nLmV2ZW50cyl8fCh1PWcuZXZlbnRzPXt9KSwocz1nLmhhbmRsZSl8fChzPWcuaGFuZGxlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1NJiZNLmV2ZW50LnRyaWdnZXJlZCE9PWUudHlwZT9NLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxjPShlPShlfHwiIikubWF0Y2goeil8fFsiIl0pLmxlbmd0aDtjLS07KWY9bT0oYT1FdC5leGVjKGVbY10pfHxbXSlbMV0scD0oYVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGYmJihsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30sZj0ocj9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8ZixsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30saD1NLmV4dGVuZCh7dHlwZTpmLG9yaWdUeXBlOm0sZGF0YTppLGhhbmRsZXI6bixndWlkOm4uZ3VpZCxzZWxlY3RvcjpyLG5lZWRzQ29udGV4dDpyJiZNLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QociksbmFtZXNwYWNlOnAuam9pbigiLiIpfSxvKSwoZD11W2ZdKXx8KChkPXVbZl09W10pLmRlbGVnYXRlQ291bnQ9MCxsLnNldHVwJiYhMSE9PWwuc2V0dXAuY2FsbCh0LGkscCxzKXx8dC5hZGRFdmVudExpc3RlbmVyJiZ0LmFkZEV2ZW50TGlzdGVuZXIoZixzKSksbC5hZGQmJihsLmFkZC5jYWxsKHQsaCksaC5oYW5kbGVyLmd1aWR8fChoLmhhbmRsZXIuZ3VpZD1uLmd1aWQpKSxyP2Quc3BsaWNlKGQuZGVsZWdhdGVDb3VudCsrLDAsaCk6ZC5wdXNoKGgpLE0uZXZlbnQuZ2xvYmFsW2ZdPSEwKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouaGFzRGF0YSh0KSYmWi5nZXQodCk7aWYoZyYmKHU9Zy5ldmVudHMpKXtmb3IoYz0oZT0oZXx8IiIpLm1hdGNoKHopfHxbIiJdKS5sZW5ndGg7Yy0tOylpZihmPW09KGE9RXQuZXhlYyhlW2NdKXx8W10pWzFdLHA9KGFbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxmKXtmb3IobD1NLmV2ZW50LnNwZWNpYWxbZl18fHt9LGQ9dVtmPShpP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxmXXx8W10sYT1hWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLHM9bz1kLmxlbmd0aDtvLS07KWg9ZFtvXSwhciYmbSE9PWgub3JpZ1R5cGV8fG4mJm4uZ3VpZCE9PWguZ3VpZHx8YSYmIWEudGVzdChoLm5hbWVzcGFjZSl8fGkmJmkhPT1oLnNlbGVjdG9yJiYoIioqIiE9PWl8fCFoLnNlbGVjdG9yKXx8KGQuc3BsaWNlKG8sMSksaC5zZWxlY3RvciYmZC5kZWxlZ2F0ZUNvdW50LS0sbC5yZW1vdmUmJmwucmVtb3ZlLmNhbGwodCxoKSk7cyYmIWQubGVuZ3RoJiYobC50ZWFyZG93biYmITEhPT1sLnRlYXJkb3duLmNhbGwodCxwLGcuaGFuZGxlKXx8TS5yZW1vdmVFdmVudCh0LGYsZy5oYW5kbGUpLGRlbGV0ZSB1W2ZdKX1lbHNlIGZvcihmIGluIHUpTS5ldmVudC5yZW1vdmUodCxmK2VbY10sbixpLCEwKTtNLmlzRW1wdHlPYmplY3QodSkmJloucmVtb3ZlKHQsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhPU0uZXZlbnQuZml4KHQpLHU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGM9KFouZ2V0KHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saD1NLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307Zm9yKHVbMF09YSxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl1W2VdPWFyZ3VtZW50c1tlXTtpZihhLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWgucHJlRGlzcGF0Y2h8fCExIT09aC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkpe2ZvcihzPU0uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsYyksZT0wOyhyPXNbZSsrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihhLmN1cnJlbnRUYXJnZXQ9ci5lbGVtLG49MDsobz1yLmhhbmRsZXJzW24rK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOylhLnJuYW1lc3BhY2UmJiFhLnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fChhLmhhbmRsZU9iaj1vLGEuZGF0YT1vLmRhdGEsdm9pZCAwIT09KGk9KChNLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoci5lbGVtLHUpKSYmITE9PT0oYS5yZXN1bHQ9aSkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBoLnBvc3REaXNwYXRjaCYmaC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGEpLGEucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbyxzLGE9W10sdT1lLmRlbGVnYXRlQ291bnQsYz10LnRhcmdldDtpZih1JiZjLm5vZGVUeXBlJiYhKCJjbGljayI9PT10LnR5cGUmJnQuYnV0dG9uPj0xKSlmb3IoO2MhPT10aGlzO2M9Yy5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1jLm5vZGVUeXBlJiYoImNsaWNrIiE9PXQudHlwZXx8ITAhPT1jLmRpc2FibGVkKSl7Zm9yKG89W10scz17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1zW3I9KGk9ZVtuXSkuc2VsZWN0b3IrIiAiXSYmKHNbcl09aS5uZWVkc0NvbnRleHQ/TShyLHRoaXMpLmluZGV4KGMpPi0xOk0uZmluZChyLHRoaXMsbnVsbCxbY10pLmxlbmd0aCksc1tyXSYmby5wdXNoKGkpO28ubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczpvfSl9cmV0dXJuIGM9dGhpcyx1PGUubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczplLnNsaWNlKHUpfSksYX0sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShNLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6YihlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRbTS5leHBhbmRvXT90Om5ldyBNLkV2ZW50KHQpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09a3QoKSYmdGhpcy5mb2N1cylyZXR1cm4gdGhpcy5mb2N1cygpLCExfSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7aWYodGhpcz09PWt0KCkmJnRoaXMuYmx1cilyZXR1cm4gdGhpcy5ibHVyKCksITF9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKCJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2smJlAodGhpcywiaW5wdXQiKSlyZXR1cm4gdGhpcy5jbGljaygpLCExfSxfZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24odCl7dm9pZCAwIT09dC5yZXN1bHQmJnQub3JpZ2luYWxFdmVudCYmKHQub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT10LnJlc3VsdCl9fX19LE0ucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24odCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9LE0uRXZlbnQ9ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBNLkV2ZW50KSlyZXR1cm4gbmV3IE0uRXZlbnQodCxlKTt0JiZ0LnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD10LHRoaXMudHlwZT10LnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9dC5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT10LmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09dC5yZXR1cm5WYWx1ZT9BdDpDdCx0aGlzLnRhcmdldD10LnRhcmdldCYmMz09PXQudGFyZ2V0Lm5vZGVUeXBlP3QudGFyZ2V0LnBhcmVudE5vZGU6dC50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PXQuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9dCxlJiZNLmV4dGVuZCh0aGlzLGUpLHRoaXMudGltZVN0YW1wPXQmJnQudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbTS5leHBhbmRvXT0hMH0sTS5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk0uRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOkN0LGlzUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1BdCx0JiYhdGhpcy5pc1NpbXVsYXRlZCYmdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sTS5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLGNoYXI6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ZnVuY3Rpb24odCl7dmFyIGU9dC5idXR0b247cmV0dXJuIG51bGw9PXQud2hpY2gmJk10LnRlc3QodC50eXBlKT9udWxsIT10LmNoYXJDb2RlP3QuY2hhckNvZGU6dC5rZXlDb2RlOiF0LndoaWNoJiZ2b2lkIDAhPT1lJiZTdC50ZXN0KHQudHlwZSk/MSZlPzE6MiZlPzM6NCZlPzI6MDp0LndoaWNofX0sTS5ldmVudC5hZGRQcm9wKSxNLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKHQsZSl7TS5ldmVudC5zcGVjaWFsW3RdPXtkZWxlZ2F0ZVR5cGU6ZSxiaW5kVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXt2YXIgbixpPXQucmVsYXRlZFRhcmdldCxyPXQuaGFuZGxlT2JqO3JldHVybiBpJiYoaT09PXRoaXN8fE0uY29udGFpbnModGhpcyxpKSl8fCh0LnR5cGU9ci5vcmlnVHlwZSxuPXIuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC50eXBlPWUpLG59fX0pLE0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gT3QodGhpcyx0LGUsbixpKX0sb25lOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBPdCh0aGlzLHQsZSxuLGksMSl9LG9mZjpmdW5jdGlvbih0LGUsbil7dmFyIGkscjtpZih0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LmhhbmRsZU9iailyZXR1cm4gaT10LmhhbmRsZU9iaixNKHQuZGVsZWdhdGVUYXJnZXQpLm9mZihpLm5hbWVzcGFjZT9pLm9yaWdUeXBlKyIuIitpLm5hbWVzcGFjZTppLm9yaWdUeXBlLGkuc2VsZWN0b3IsaS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHIgaW4gdCl0aGlzLm9mZihyLGUsdFtyXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZXx8KG49ZSxlPXZvaWQgMCksITE9PT1uJiYobj1DdCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7TS5ldmVudC5yZW1vdmUodGhpcyx0LG4sZSl9KX19KTt2YXIgUHQ9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLFR0PS88c2NyaXB0fDxzdHlsZXw8bGluay9pLGp0PS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLEl0PS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBMdCh0LGUpe3JldHVybiBQKHQsInRhYmxlIikmJlAoMTEhPT1lLm5vZGVUeXBlP2U6ZS5maXJzdENoaWxkLCJ0ciIpJiZNKHQpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHx0fWZ1bmN0aW9uIEJ0KHQpe3JldHVybiB0LnR5cGU9KG51bGwhPT10LmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrdC50eXBlLHR9ZnVuY3Rpb24gRHQodCl7cmV0dXJuInRydWUvIj09PSh0LnR5cGV8fCIiKS5zbGljZSgwLDUpP3QudHlwZT10LnR5cGUuc2xpY2UoNSk6dC5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSx0fWZ1bmN0aW9uIFJ0KHQsZSl7dmFyIG4saSxyLG8scyxhLHUsYztpZigxPT09ZS5ub2RlVHlwZSl7aWYoWi5oYXNEYXRhKHQpJiYobz1aLmFjY2Vzcyh0KSxzPVouc2V0KGUsbyksYz1vLmV2ZW50cykpZm9yKHIgaW4gZGVsZXRlIHMuaGFuZGxlLHMuZXZlbnRzPXt9LGMpZm9yKG49MCxpPWNbcl0ubGVuZ3RoO248aTtuKyspTS5ldmVudC5hZGQoZSxyLGNbcl1bbl0pO1EuaGFzRGF0YSh0KSYmKGE9US5hY2Nlc3ModCksdT1NLmV4dGVuZCh7fSxhKSxRLnNldChlLHUpKX19ZnVuY3Rpb24genQodCxlLG4saSl7ZT1jLmFwcGx5KFtdLGUpO3ZhciByLG8scyxhLHUsaCxsPTAsZD10Lmxlbmd0aCxmPWQtMSxwPWVbMF0sbT1iKHApO2lmKG18fGQ+MSYmInN0cmluZyI9PXR5cGVvZiBwJiYhdi5jaGVja0Nsb25lJiZqdC50ZXN0KHApKXJldHVybiB0LmVhY2goZnVuY3Rpb24ocil7dmFyIG89dC5lcShyKTttJiYoZVswXT1wLmNhbGwodGhpcyxyLG8uaHRtbCgpKSksenQobyxlLG4saSl9KTtpZihkJiYobz0ocj13dChlLHRbMF0ub3duZXJEb2N1bWVudCwhMSx0LGkpKS5maXJzdENoaWxkLDE9PT1yLmNoaWxkTm9kZXMubGVuZ3RoJiYocj1vKSxvfHxpKSl7Zm9yKGE9KHM9TS5tYXAoZ3Qociwic2NyaXB0IiksQnQpKS5sZW5ndGg7bDxkO2wrKyl1PXIsbCE9PWYmJih1PU0uY2xvbmUodSwhMCwhMCksYSYmTS5tZXJnZShzLGd0KHUsInNjcmlwdCIpKSksbi5jYWxsKHRbbF0sdSxsKTtpZihhKWZvcihoPXNbcy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxNLm1hcChzLER0KSxsPTA7bDxhO2wrKyl1PXNbbF0scHQudGVzdCh1LnR5cGV8fCIiKSYmIVouYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmTS5jb250YWlucyhoLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/TS5fZXZhbFVybCYmTS5fZXZhbFVybCh1LnNyYyk6dyh1LnRleHRDb250ZW50LnJlcGxhY2UoSXQsIiIpLGgsdSkpfXJldHVybiB0fWZ1bmN0aW9uIE50KHQsZSxuKXtmb3IodmFyIGkscj1lP00uZmlsdGVyKGUsdCk6dCxvPTA7bnVsbCE9KGk9cltvXSk7bysrKW58fDEhPT1pLm5vZGVUeXBlfHxNLmNsZWFuRGF0YShndChpKSksaS5wYXJlbnROb2RlJiYobiYmTS5jb250YWlucyhpLm93bmVyRG9jdW1lbnQsaSkmJnZ0KGd0KGksInNjcmlwdCIpKSxpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSkpO3JldHVybiB0fU0uZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoUHQsIjwkMT48LyQyPiIpfSxjbG9uZTpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGMsaD10LmNsb25lTm9kZSghMCksbD1NLmNvbnRhaW5zKHQub3duZXJEb2N1bWVudCx0KTtpZighKHYubm9DbG9uZUNoZWNrZWR8fDEhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGV8fE0uaXNYTUxEb2ModCkpKWZvcihzPWd0KGgpLGk9MCxyPShvPWd0KHQpKS5sZW5ndGg7aTxyO2krKylhPW9baV0sdT1zW2ldLGM9dm9pZCAwLCJpbnB1dCI9PT0oYz11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZkdC50ZXN0KGEudHlwZSk/dS5jaGVja2VkPWEuY2hlY2tlZDoiaW5wdXQiIT09YyYmInRleHRhcmVhIiE9PWN8fCh1LmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZSk7aWYoZSlpZihuKWZvcihvPW98fGd0KHQpLHM9c3x8Z3QoaCksaT0wLHI9by5sZW5ndGg7aTxyO2krKylSdChvW2ldLHNbaV0pO2Vsc2UgUnQodCxoKTtyZXR1cm4ocz1ndChoLCJzY3JpcHQiKSkubGVuZ3RoPjAmJnZ0KHMsIWwmJmd0KHQsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG4saSxyPU0uZXZlbnQuc3BlY2lhbCxvPTA7dm9pZCAwIT09KG49dFtvXSk7bysrKWlmKEcobikpe2lmKGU9bltaLmV4cGFuZG9dKXtpZihlLmV2ZW50cylmb3IoaSBpbiBlLmV2ZW50cylyW2ldP00uZXZlbnQucmVtb3ZlKG4saSk6TS5yZW1vdmVFdmVudChuLGksZS5oYW5kbGUpO25bWi5leHBhbmRvXT12b2lkIDB9bltRLmV4cGFuZG9dJiYobltRLmV4cGFuZG9dPXZvaWQgMCl9fX0pLE0uZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIE50KHRoaXMsdCwhMCl9LHJlbW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnQodGhpcyx0KX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P00udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD10KX0pfSxudWxsLHQsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB6dCh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbih0KXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8THQodGhpcyx0KS5hcHBlbmRDaGlsZCh0KX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgZT1MdCh0aGlzLHQpO2UuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtudWxsIT0odD10aGlzW2VdKTtlKyspMT09PXQubm9kZVR5cGUmJihNLmNsZWFuRGF0YShndCh0LCExKSksdC50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bnVsbCE9dCYmdCxlPW51bGw9PWU/dDplLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIE0uY2xvbmUodGhpcyx0LGUpfSl9LGh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0KXt2YXIgZT10aGlzWzBdfHx7fSxuPTAsaT10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT10JiYxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZS5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYhVHQudGVzdCh0KSYmIW10WyhmdC5leGVjKHQpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7dD1NLmh0bWxQcmVmaWx0ZXIodCk7dHJ5e2Zvcig7bjxpO24rKykxPT09KGU9dGhpc1tuXXx8e30pLm5vZGVUeXBlJiYoTS5jbGVhbkRhdGEoZ3QoZSwhMSkpLGUuaW5uZXJIVE1MPXQpO2U9MH1jYXRjaCh0KXt9fWUmJnRoaXMuZW1wdHkoKS5hcHBlbmQodCl9LG51bGwsdCxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4genQodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5wYXJlbnROb2RlO00uaW5BcnJheSh0aGlzLHQpPDAmJihNLmNsZWFuRGF0YShndCh0aGlzKSksbiYmbi5yZXBsYWNlQ2hpbGQoZSx0aGlzKSl9LHQpfX0pLE0uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKHQsZSl7TS5mblt0XT1mdW5jdGlvbih0KXtmb3IodmFyIG4saT1bXSxyPU0odCksbz1yLmxlbmd0aC0xLHM9MDtzPD1vO3MrKyluPXM9PT1vP3RoaXM6dGhpcy5jbG9uZSghMCksTShyW3NdKVtlXShuKSxoLmFwcGx5KGksbi5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGkpfX0pO3ZhciBXdD1uZXcgUmVnRXhwKCJeKCIraXQrIikoPyFweClbYS16JV0rJCIsImkiKSxxdD1mdW5jdGlvbih0KXt2YXIgZT10Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGUmJmUub3BlbmVyfHwoZT1uKSxlLmdldENvbXB1dGVkU3R5bGUodCl9LEh0PW5ldyBSZWdFeHAob3Quam9pbigifCIpLCJpIik7ZnVuY3Rpb24gRnQodCxlLG4pe3ZhciBpLHIsbyxzLGE9dC5zdHlsZTtyZXR1cm4obj1ufHxxdCh0KSkmJigiIiE9PShzPW4uZ2V0UHJvcGVydHlWYWx1ZShlKXx8bltlXSl8fE0uY29udGFpbnModC5vd25lckRvY3VtZW50LHQpfHwocz1NLnN0eWxlKHQsZSkpLCF2LnBpeGVsQm94U3R5bGVzKCkmJld0LnRlc3QocykmJkh0LnRlc3QoZSkmJihpPWEud2lkdGgscj1hLm1pbldpZHRoLG89YS5tYXhXaWR0aCxhLm1pbldpZHRoPWEubWF4V2lkdGg9YS53aWR0aD1zLHM9bi53aWR0aCxhLndpZHRoPWksYS5taW5XaWR0aD1yLGEubWF4V2lkdGg9bykpLHZvaWQgMCE9PXM/cysiIjpzfWZ1bmN0aW9uIFZ0KHQsZSl7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCF0KCkpcmV0dXJuKHRoaXMuZ2V0PWUpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX0hZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7aWYoaCl7Yy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIixoLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiLHh0LmFwcGVuZENoaWxkKGMpLmFwcGVuZENoaWxkKGgpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShoKTtpPSIxJSIhPT10LnRvcCx1PTEyPT09ZSh0Lm1hcmdpbkxlZnQpLGguc3R5bGUucmlnaHQ9IjYwJSIsYT0zNj09PWUodC5yaWdodCkscj0zNj09PWUodC53aWR0aCksaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG89MzY9PT1oLm9mZnNldFdpZHRofHwiYWJzb2x1dGUiLHh0LnJlbW92ZUNoaWxkKGMpLGg9bnVsbH19ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KHQpKX12YXIgaSxyLG8sYSx1LGM9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5zdHlsZSYmKGguc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixoLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsdi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWguc3R5bGUuYmFja2dyb3VuZENsaXAsTS5leHRlbmQodix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxhfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxpfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHV9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLG99fSkpfSgpO3ZhciBVdD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sS3Q9L14tLS8sWXQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFh0PXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifSwkdD1bIldlYmtpdCIsIk1veiIsIm1zIl0sR3Q9cy5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBKdCh0KXt2YXIgZT1NLmNzc1Byb3BzW3RdO3JldHVybiBlfHwoZT1NLmNzc1Byb3BzW3RdPWZ1bmN0aW9uKHQpe2lmKHQgaW4gR3QpcmV0dXJuIHQ7Zm9yKHZhciBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpLG49JHQubGVuZ3RoO24tLTspaWYoKHQ9JHRbbl0rZSlpbiBHdClyZXR1cm4gdH0odCl8fHQpLGV9ZnVuY3Rpb24gWnQodCxlLG4pe3ZhciBpPXJ0LmV4ZWMoZSk7cmV0dXJuIGk/TWF0aC5tYXgoMCxpWzJdLShufHwwKSkrKGlbM118fCJweCIpOmV9ZnVuY3Rpb24gUXQodCxlLG4saSxyLG8pe3ZhciBzPSJ3aWR0aCI9PT1lPzE6MCxhPTAsdT0wO2lmKG49PT0oaT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7czw0O3MrPTIpIm1hcmdpbiI9PT1uJiYodSs9TS5jc3ModCxuK290W3NdLCEwLHIpKSxpPygiY29udGVudCI9PT1uJiYodS09TS5jc3ModCwicGFkZGluZyIrb3Rbc10sITAscikpLCJtYXJnaW4iIT09biYmKHUtPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKSkpOih1Kz1NLmNzcyh0LCJwYWRkaW5nIitvdFtzXSwhMCxyKSwicGFkZGluZyIhPT1uP3UrPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKTphKz1NLmNzcyh0LCJib3JkZXIiK290W3NdKyJXaWR0aCIsITAscikpO3JldHVybiFpJiZvPj0wJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwodFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0tby11LWEtLjUpKSksdX1mdW5jdGlvbiB0ZSh0LGUsbil7dmFyIGk9cXQodCkscj1GdCh0LGUsaSksbz0iYm9yZGVyLWJveCI9PT1NLmNzcyh0LCJib3hTaXppbmciLCExLGkpLHM9bztpZihXdC50ZXN0KHIpKXtpZighbilyZXR1cm4gcjtyPSJhdXRvIn1yZXR1cm4gcz1zJiYodi5ib3hTaXppbmdSZWxpYWJsZSgpfHxyPT09dC5zdHlsZVtlXSksKCJhdXRvIj09PXJ8fCFwYXJzZUZsb2F0KHIpJiYiaW5saW5lIj09PU0uY3NzKHQsImRpc3BsYXkiLCExLGkpKSYmKHI9dFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0scz0hMCksKHI9cGFyc2VGbG9hdChyKXx8MCkrUXQodCxlLG58fChvPyJib3JkZXIiOiJjb250ZW50IikscyxpLHIpKyJweCJ9ZnVuY3Rpb24gZWUodCxlLG4saSxyKXtyZXR1cm4gbmV3IGVlLnByb3RvdHlwZS5pbml0KHQsZSxuLGkscil9TS5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj1GdCh0LCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1uPyIxIjpufX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQmJjMhPT10Lm5vZGVUeXBlJiY4IT09dC5ub2RlVHlwZSYmdC5zdHlsZSl7dmFyIHIsbyxzLGE9JChlKSx1PUt0LnRlc3QoZSksYz10LnN0eWxlO2lmKHV8fChlPUp0KGEpKSxzPU0uY3NzSG9va3NbZV18fE0uY3NzSG9va3NbYV0sdm9pZCAwPT09bilyZXR1cm4gcyYmImdldCJpbiBzJiZ2b2lkIDAhPT0ocj1zLmdldCh0LCExLGkpKT9yOmNbZV07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihyPXJ0LmV4ZWMobikpJiZyWzFdJiYobj11dCh0LGUsciksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiPT09byYmKG4rPXImJnJbM118fChNLmNzc051bWJlclthXT8iIjoicHgiKSksdi5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PWUuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoY1tlXT0iaW5oZXJpdCIpLHMmJiJzZXQiaW4gcyYmdm9pZCAwPT09KG49cy5zZXQodCxuLGkpKXx8KHU/Yy5zZXRQcm9wZXJ0eShlLG4pOmNbZV09bikpfX0sY3NzOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLG8scyxhPSQoZSk7cmV0dXJuIEt0LnRlc3QoZSl8fChlPUp0KGEpKSwocz1NLmNzc0hvb2tzW2VdfHxNLmNzc0hvb2tzW2FdKSYmImdldCJpbiBzJiYocj1zLmdldCh0LCEwLG4pKSx2b2lkIDA9PT1yJiYocj1GdCh0LGUsaSkpLCJub3JtYWwiPT09ciYmZSBpbiBYdCYmKHI9WHRbZV0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KHIpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDpyKTpyfX0pLE0uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW2VdPXtnZXQ6ZnVuY3Rpb24odCxuLGkpe2lmKG4pcmV0dXJuIVV0LnRlc3QoTS5jc3ModCwiZGlzcGxheSIpKXx8dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD90ZSh0LGUsaSk6YXQodCxZdCxmdW5jdGlvbigpe3JldHVybiB0ZSh0LGUsaSl9KX0sc2V0OmZ1bmN0aW9uKHQsbixpKXt2YXIgcixvPXF0KHQpLHM9ImJvcmRlci1ib3giPT09TS5jc3ModCwiYm94U2l6aW5nIiwhMSxvKSxhPWkmJlF0KHQsZSxpLHMsbyk7cmV0dXJuIHMmJnYuc2Nyb2xsYm94U2l6ZSgpPT09by5wb3NpdGlvbiYmKGEtPU1hdGguY2VpbCh0WyJvZmZzZXQiK2VbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpXS1wYXJzZUZsb2F0KG9bZV0pLVF0KHQsZSwiYm9yZGVyIiwhMSxvKS0uNSkpLGEmJihyPXJ0LmV4ZWMobikpJiYicHgiIT09KHJbM118fCJweCIpJiYodC5zdHlsZVtlXT1uLG49TS5jc3ModCxlKSksWnQoMCxuLGEpfX19KSxNLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VnQodi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24odCxlKXtpZihlKXJldHVybihwYXJzZUZsb2F0KEZ0KHQsIm1hcmdpbkxlZnQiKSl8fHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1hdCh0LHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksTS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW3QrZV09e2V4cGFuZDpmdW5jdGlvbihuKXtmb3IodmFyIGk9MCxyPXt9LG89InN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoIiAiKTpbbl07aTw0O2krKylyW3Qrb3RbaV0rZV09b1tpXXx8b1tpLTJdfHxvWzBdO3JldHVybiByfX0sIm1hcmdpbiIhPT10JiYoTS5jc3NIb29rc1t0K2VdLnNldD1adCl9KSxNLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXt9LHM9MDtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IoaT1xdCh0KSxyPWUubGVuZ3RoO3M8cjtzKyspb1tlW3NdXT1NLmNzcyh0LGVbc10sITEsaSk7cmV0dXJuIG99cmV0dXJuIHZvaWQgMCE9PW4/TS5zdHlsZSh0LGUsbik6TS5jc3ModCxlKX0sdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9fSksTS5Ud2Vlbj1lZSxlZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmVlLGluaXQ6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuZWxlbT10LHRoaXMucHJvcD1uLHRoaXMuZWFzaW5nPXJ8fE0uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1lLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1pLHRoaXMudW5pdD1vfHwoTS5jc3NOdW1iZXJbbl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciB0PWVlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0JiZ0LmdldD90LmdldCh0aGlzKTplZS5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24odCl7dmFyIGUsbj1lZS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWU9TS5lYXNpbmdbdGhpcy5lYXNpbmddKHQsdGhpcy5vcHRpb25zLmR1cmF0aW9uKnQsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9ZT10LHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSplK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOmVlLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGVlLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1lZS5wcm90b3R5cGUsZWUucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiAxIT09dC5lbGVtLm5vZGVUeXBlfHxudWxsIT10LmVsZW1bdC5wcm9wXSYmbnVsbD09dC5lbGVtLnN0eWxlW3QucHJvcF0/dC5lbGVtW3QucHJvcF06KGU9TS5jc3ModC5lbGVtLHQucHJvcCwiIikpJiYiYXV0byIhPT1lP2U6MH0sc2V0OmZ1bmN0aW9uKHQpe00uZnguc3RlcFt0LnByb3BdP00uZnguc3RlcFt0LnByb3BdKHQpOjEhPT10LmVsZW0ubm9kZVR5cGV8fG51bGw9PXQuZWxlbS5zdHlsZVtNLmNzc1Byb3BzW3QucHJvcF1dJiYhTS5jc3NIb29rc1t0LnByb3BdP3QuZWxlbVt0LnByb3BdPXQubm93Ok0uc3R5bGUodC5lbGVtLHQucHJvcCx0Lm5vdyt0LnVuaXQpfX19LGVlLnByb3BIb29rcy5zY3JvbGxUb3A9ZWUucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbih0KXt0LmVsZW0ubm9kZVR5cGUmJnQuZWxlbS5wYXJlbnROb2RlJiYodC5lbGVtW3QucHJvcF09dC5ub3cpfX0sTS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdH0sc3dpbmc6ZnVuY3Rpb24odCl7cmV0dXJuLjUtTWF0aC5jb3ModCpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxNLmZ4PWVlLnByb3RvdHlwZS5pbml0LE0uZnguc3RlcD17fTt2YXIgbmUsaWUscmU9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLG9lPS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gc2UoKXtpZSYmKCExPT09cy5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lP24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlKTpuLnNldFRpbWVvdXQoc2UsTS5meC5pbnRlcnZhbCksTS5meC50aWNrKCkpfWZ1bmN0aW9uIGFlKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe25lPXZvaWQgMH0pLG5lPURhdGUubm93KCl9ZnVuY3Rpb24gdWUodCxlKXt2YXIgbixpPTAscj17aGVpZ2h0OnR9O2ZvcihlPWU/MTowO2k8NDtpKz0yLWUpclsibWFyZ2luIisobj1vdFtpXSldPXJbInBhZGRpbmciK25dPXQ7cmV0dXJuIGUmJihyLm9wYWNpdHk9ci53aWR0aD10KSxyfWZ1bmN0aW9uIGNlKHQsZSxuKXtmb3IodmFyIGkscj0oaGUudHdlZW5lcnNbZV18fFtdKS5jb25jYXQoaGUudHdlZW5lcnNbIioiXSksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihpPXJbb10uY2FsbChuLGUsdCkpcmV0dXJuIGl9ZnVuY3Rpb24gaGUodCxlLG4pe3ZhciBpLHIsbz0wLHM9aGUucHJlZmlsdGVycy5sZW5ndGgsYT1NLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIHUuZWxlbX0pLHU9ZnVuY3Rpb24oKXtpZihyKXJldHVybiExO2Zvcih2YXIgZT1uZXx8YWUoKSxuPU1hdGgubWF4KDAsYy5zdGFydFRpbWUrYy5kdXJhdGlvbi1lKSxpPTEtKG4vYy5kdXJhdGlvbnx8MCksbz0wLHM9Yy50d2VlbnMubGVuZ3RoO288cztvKyspYy50d2VlbnNbb10ucnVuKGkpO3JldHVybiBhLm5vdGlmeVdpdGgodCxbYyxpLG5dKSxpPDEmJnM/bjooc3x8YS5ub3RpZnlXaXRoKHQsW2MsMSwwXSksYS5yZXNvbHZlV2l0aCh0LFtjXSksITEpfSxjPWEucHJvbWlzZSh7ZWxlbTp0LHByb3BzOk0uZXh0ZW5kKHt9LGUpLG9wdHM6TS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOk0uZWFzaW5nLl9kZWZhdWx0fSxuKSxvcmlnaW5hbFByb3BlcnRpZXM6ZSxvcmlnaW5hbE9wdGlvbnM6bixzdGFydFRpbWU6bmV8fGFlKCksZHVyYXRpb246bi5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24oZSxuKXt2YXIgaT1NLlR3ZWVuKHQsYy5vcHRzLGUsbixjLm9wdHMuc3BlY2lhbEVhc2luZ1tlXXx8Yy5vcHRzLmVhc2luZyk7cmV0dXJuIGMudHdlZW5zLnB1c2goaSksaX0sc3RvcDpmdW5jdGlvbihlKXt2YXIgbj0wLGk9ZT9jLnR3ZWVucy5sZW5ndGg6MDtpZihyKXJldHVybiB0aGlzO2ZvcihyPSEwO248aTtuKyspYy50d2VlbnNbbl0ucnVuKDEpO3JldHVybiBlPyhhLm5vdGlmeVdpdGgodCxbYywxLDBdKSxhLnJlc29sdmVXaXRoKHQsW2MsZV0pKTphLnJlamVjdFdpdGgodCxbYyxlXSksdGhpc319KSxoPWMucHJvcHM7Zm9yKCFmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM7Zm9yKG4gaW4gdClpZihyPWVbaT0kKG4pXSxvPXRbbl0sQXJyYXkuaXNBcnJheShvKSYmKHI9b1sxXSxvPXRbbl09b1swXSksbiE9PWkmJih0W2ldPW8sZGVsZXRlIHRbbl0pLChzPU0uY3NzSG9va3NbaV0pJiYiZXhwYW5kImluIHMpZm9yKG4gaW4gbz1zLmV4cGFuZChvKSxkZWxldGUgdFtpXSxvKW4gaW4gdHx8KHRbbl09b1tuXSxlW25dPXIpO2Vsc2UgZVtpXT1yfShoLGMub3B0cy5zcGVjaWFsRWFzaW5nKTtvPHM7bysrKWlmKGk9aGUucHJlZmlsdGVyc1tvXS5jYWxsKGMsdCxoLGMub3B0cykpcmV0dXJuIGIoaS5zdG9wKSYmKE0uX3F1ZXVlSG9va3MoYy5lbGVtLGMub3B0cy5xdWV1ZSkuc3RvcD1pLnN0b3AuYmluZChpKSksaTtyZXR1cm4gTS5tYXAoaCxjZSxjKSxiKGMub3B0cy5zdGFydCkmJmMub3B0cy5zdGFydC5jYWxsKHQsYyksYy5wcm9ncmVzcyhjLm9wdHMucHJvZ3Jlc3MpLmRvbmUoYy5vcHRzLmRvbmUsYy5vcHRzLmNvbXBsZXRlKS5mYWlsKGMub3B0cy5mYWlsKS5hbHdheXMoYy5vcHRzLmFsd2F5cyksTS5meC50aW1lcihNLmV4dGVuZCh1LHtlbGVtOnQsYW5pbTpjLHF1ZXVlOmMub3B0cy5xdWV1ZX0pKSxjfU0uQW5pbWF0aW9uPU0uZXh0ZW5kKGhlLHt0d2VlbmVyczp7IioiOltmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4odCxlKTtyZXR1cm4gdXQobi5lbGVtLHQscnQuZXhlYyhlKSxuKSxufV19LHR3ZWVuZXI6ZnVuY3Rpb24odCxlKXtiKHQpPyhlPXQsdD1bIioiXSk6dD10Lm1hdGNoKHopO2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7aSsrKW49dFtpXSxoZS50d2VlbmVyc1tuXT1oZS50d2VlbmVyc1tuXXx8W10saGUudHdlZW5lcnNbbl0udW5zaGlmdChlKX0scHJlZmlsdGVyczpbZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGEsdSxjLGgsbD0id2lkdGgiaW4gZXx8ImhlaWdodCJpbiBlLGQ9dGhpcyxmPXt9LHA9dC5zdHlsZSxtPXQubm9kZVR5cGUmJnN0KHQpLGc9Wi5nZXQodCwiZnhzaG93Iik7Zm9yKGkgaW4gbi5xdWV1ZXx8KG51bGw9PShzPU0uX3F1ZXVlSG9va3ModCwiZngiKSkudW5xdWV1ZWQmJihzLnVucXVldWVkPTAsYT1zLmVtcHR5LmZpcmUscy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7cy51bnF1ZXVlZHx8YSgpfSkscy51bnF1ZXVlZCsrLGQuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5hbHdheXMoZnVuY3Rpb24oKXtzLnVucXVldWVkLS0sTS5xdWV1ZSh0LCJmeCIpLmxlbmd0aHx8cy5lbXB0eS5maXJlKCl9KX0pKSxlKWlmKHI9ZVtpXSxyZS50ZXN0KHIpKXtpZihkZWxldGUgZVtpXSxvPW98fCJ0b2dnbGUiPT09cixyPT09KG0/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PXJ8fCFnfHx2b2lkIDA9PT1nW2ldKWNvbnRpbnVlO209ITB9ZltpXT1nJiZnW2ldfHxNLnN0eWxlKHQsaSl9aWYoKHU9IU0uaXNFbXB0eU9iamVjdChlKSl8fCFNLmlzRW1wdHlPYmplY3QoZikpZm9yKGkgaW4gbCYmMT09PXQubm9kZVR5cGUmJihuLm92ZXJmbG93PVtwLm92ZXJmbG93LHAub3ZlcmZsb3dYLHAub3ZlcmZsb3dZXSxudWxsPT0oYz1nJiZnLmRpc3BsYXkpJiYoYz1aLmdldCh0LCJkaXNwbGF5IikpLCJub25lIj09PShoPU0uY3NzKHQsImRpc3BsYXkiKSkmJihjP2g9YzoobHQoW3RdLCEwKSxjPXQuc3R5bGUuZGlzcGxheXx8YyxoPU0uY3NzKHQsImRpc3BsYXkiKSxsdChbdF0pKSksKCJpbmxpbmUiPT09aHx8ImlubGluZS1ibG9jayI9PT1oJiZudWxsIT1jKSYmIm5vbmUiPT09TS5jc3ModCwiZmxvYXQiKSYmKHV8fChkLmRvbmUoZnVuY3Rpb24oKXtwLmRpc3BsYXk9Y30pLG51bGw9PWMmJihoPXAuZGlzcGxheSxjPSJub25lIj09PWg/IiI6aCkpLHAuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLG4ub3ZlcmZsb3cmJihwLm92ZXJmbG93PSJoaWRkZW4iLGQuYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1uLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPW4ub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9bi5vdmVyZmxvd1syXX0pKSx1PSExLGYpdXx8KGc/ImhpZGRlbiJpbiBnJiYobT1nLmhpZGRlbik6Zz1aLmFjY2Vzcyh0LCJmeHNob3ciLHtkaXNwbGF5OmN9KSxvJiYoZy5oaWRkZW49IW0pLG0mJmx0KFt0XSwhMCksZC5kb25lKGZ1bmN0aW9uKCl7Zm9yKGkgaW4gbXx8bHQoW3RdKSxaLnJlbW92ZSh0LCJmeHNob3ciKSxmKU0uc3R5bGUodCxpLGZbaV0pfSkpLHU9Y2UobT9nW2ldOjAsaSxkKSxpIGluIGd8fChnW2ldPXUuc3RhcnQsbSYmKHUuZW5kPXUuc3RhcnQsdS5zdGFydD0wKSl9XSxwcmVmaWx0ZXI6ZnVuY3Rpb24odCxlKXtlP2hlLnByZWZpbHRlcnMudW5zaGlmdCh0KTpoZS5wcmVmaWx0ZXJzLnB1c2godCl9fSksTS5zcGVlZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dCYmIm9iamVjdCI9PXR5cGVvZiB0P00uZXh0ZW5kKHt9LHQpOntjb21wbGV0ZTpufHwhbiYmZXx8Yih0KSYmdCxkdXJhdGlvbjp0LGVhc2luZzpuJiZlfHxlJiYhYihlKSYmZX07cmV0dXJuIE0uZngub2ZmP2kuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGkuZHVyYXRpb24mJihpLmR1cmF0aW9uIGluIE0uZnguc3BlZWRzP2kuZHVyYXRpb249TS5meC5zcGVlZHNbaS5kdXJhdGlvbl06aS5kdXJhdGlvbj1NLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9aS5xdWV1ZSYmITAhPT1pLnF1ZXVlfHwoaS5xdWV1ZT0iZngiKSxpLm9sZD1pLmNvbXBsZXRlLGkuY29tcGxldGU9ZnVuY3Rpb24oKXtiKGkub2xkKSYmaS5vbGQuY2FsbCh0aGlzKSxpLnF1ZXVlJiZNLmRlcXVldWUodGhpcyxpLnF1ZXVlKX0saX0sTS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5maWx0ZXIoc3QpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6ZX0sdCxuLGkpfSxhbmltYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPU0uaXNFbXB0eU9iamVjdCh0KSxvPU0uc3BlZWQoZSxuLGkpLHM9ZnVuY3Rpb24oKXt2YXIgZT1oZSh0aGlzLE0uZXh0ZW5kKHt9LHQpLG8pOyhyfHxaLmdldCh0aGlzLCJmaW5pc2giKSkmJmUuc3RvcCghMCl9O3JldHVybiBzLmZpbmlzaD1zLHJ8fCExPT09by5xdWV1ZT90aGlzLmVhY2gocyk6dGhpcy5xdWV1ZShvLnF1ZXVlLHMpfSxzdG9wOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1mdW5jdGlvbih0KXt2YXIgZT10LnN0b3A7ZGVsZXRlIHQuc3RvcCxlKG4pfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPWUsZT10LHQ9dm9pZCAwKSxlJiYhMSE9PXQmJnRoaXMucXVldWUodHx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ITAscj1udWxsIT10JiZ0KyJxdWV1ZUhvb2tzIixvPU0udGltZXJzLHM9Wi5nZXQodGhpcyk7aWYocilzW3JdJiZzW3JdLnN0b3AmJmkoc1tyXSk7ZWxzZSBmb3IociBpbiBzKXNbcl0mJnNbcl0uc3RvcCYmb2UudGVzdChyKSYmaShzW3JdKTtmb3Iocj1vLmxlbmd0aDtyLS07KW9bcl0uZWxlbSE9PXRoaXN8fG51bGwhPXQmJm9bcl0ucXVldWUhPT10fHwob1tyXS5hbmltLnN0b3AobiksZT0hMSxvLnNwbGljZShyLDEpKTshZSYmbnx8TS5kZXF1ZXVlKHRoaXMsdCl9KX0sZmluaXNoOmZ1bmN0aW9uKHQpe3JldHVybiExIT09dCYmKHQ9dHx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUsbj1aLmdldCh0aGlzKSxpPW5bdCsicXVldWUiXSxyPW5bdCsicXVldWVIb29rcyJdLG89TS50aW1lcnMscz1pP2kubGVuZ3RoOjA7Zm9yKG4uZmluaXNoPSEwLE0ucXVldWUodGhpcyx0LFtdKSxyJiZyLnN0b3AmJnIuc3RvcC5jYWxsKHRoaXMsITApLGU9by5sZW5ndGg7ZS0tOylvW2VdLmVsZW09PT10aGlzJiZvW2VdLnF1ZXVlPT09dCYmKG9bZV0uYW5pbS5zdG9wKCEwKSxvLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8cztlKyspaVtlXSYmaVtlXS5maW5pc2gmJmlbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIG4uZmluaXNofSl9fSksTS5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbih0LGUpe3ZhciBuPU0uZm5bZV07TS5mbltlXT1mdW5jdGlvbih0LGkscil7cmV0dXJuIG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHQ/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKHVlKGUsITApLHQsaSxyKX19KSxNLmVhY2goe3NsaWRlRG93bjp1ZSgic2hvdyIpLHNsaWRlVXA6dWUoImhpZGUiKSxzbGlkZVRvZ2dsZTp1ZSgidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24odCxuLGkpe3JldHVybiB0aGlzLmFuaW1hdGUoZSx0LG4saSl9fSksTS50aW1lcnM9W10sTS5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIHQsZT0wLG49TS50aW1lcnM7Zm9yKG5lPURhdGUubm93KCk7ZTxuLmxlbmd0aDtlKyspKHQ9bltlXSkoKXx8bltlXSE9PXR8fG4uc3BsaWNlKGUtLSwxKTtuLmxlbmd0aHx8TS5meC5zdG9wKCksbmU9dm9pZCAwfSxNLmZ4LnRpbWVyPWZ1bmN0aW9uKHQpe00udGltZXJzLnB1c2godCksTS5meC5zdGFydCgpfSxNLmZ4LmludGVydmFsPTEzLE0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpZXx8KGllPSEwLHNlKCkpfSxNLmZ4LnN0b3A9ZnVuY3Rpb24oKXtpZT1udWxsfSxNLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxNLmZuLmRlbGF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9TS5meCYmTS5meC5zcGVlZHNbdF18fHQsZT1lfHwiZngiLHRoaXMucXVldWUoZSxmdW5jdGlvbihlLGkpe3ZhciByPW4uc2V0VGltZW91dChlLHQpO2kuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KHIpfX0pfSxmdW5jdGlvbigpe3ZhciB0PXMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxlPXMuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQocy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7dC50eXBlPSJjaGVja2JveCIsdi5jaGVja09uPSIiIT09dC52YWx1ZSx2Lm9wdFNlbGVjdGVkPWUuc2VsZWN0ZWQsKHQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS52YWx1ZT0idCIsdC50eXBlPSJyYWRpbyIsdi5yYWRpb1ZhbHVlPSJ0Ij09PXQudmFsdWV9KCk7dmFyIGxlLGRlPU0uZXhwci5hdHRySGFuZGxlO00uZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLmF0dHIsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00ucmVtb3ZlQXR0cih0aGlzLHQpfSl9fSksTS5leHRlbmQoe2F0dHI6ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbz10Lm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuIHZvaWQgMD09PXQuZ2V0QXR0cmlidXRlP00ucHJvcCh0LGUsbik6KDE9PT1vJiZNLmlzWE1MRG9jKHQpfHwocj1NLmF0dHJIb29rc1tlLnRvTG93ZXJDYXNlKCldfHwoTS5leHByLm1hdGNoLmJvb2wudGVzdChlKT9sZTp2b2lkIDApKSx2b2lkIDAhPT1uP251bGw9PT1uP3ZvaWQgTS5yZW1vdmVBdHRyKHQsZSk6ciYmInNldCJpbiByJiZ2b2lkIDAhPT0oaT1yLnNldCh0LG4sZSkpP2k6KHQuc2V0QXR0cmlidXRlKGUsbisiIiksbik6ciYmImdldCJpbiByJiZudWxsIT09KGk9ci5nZXQodCxlKSk/aTpudWxsPT0oaT1NLmZpbmQuYXR0cih0LGUpKT92b2lkIDA6aSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKHQsZSl7aWYoIXYucmFkaW9WYWx1ZSYmInJhZGlvIj09PWUmJlAodCwiaW5wdXQiKSl7dmFyIG49dC52YWx1ZTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoInR5cGUiLGUpLG4mJih0LnZhbHVlPW4pLGV9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCxlKXt2YXIgbixpPTAscj1lJiZlLm1hdGNoKHopO2lmKHImJjE9PT10Lm5vZGVUeXBlKWZvcig7bj1yW2krK107KXQucmVtb3ZlQXR0cmlidXRlKG4pfX0pLGxlPXtzZXQ6ZnVuY3Rpb24odCxlLG4pe3JldHVybiExPT09ZT9NLnJlbW92ZUF0dHIodCxuKTp0LnNldEF0dHJpYnV0ZShuLG4pLG59fSxNLmVhY2goTS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKC9cdysvZyksZnVuY3Rpb24odCxlKXt2YXIgbj1kZVtlXXx8TS5maW5kLmF0dHI7ZGVbZV09ZnVuY3Rpb24odCxlLGkpe3ZhciByLG8scz1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGl8fChvPWRlW3NdLGRlW3NdPXIscj1udWxsIT1uKHQsZSxpKT9zOm51bGwsZGVbc109bykscn19KTt2YXIgZmU9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxwZT0vXig/OmF8YXJlYSkkL2k7ZnVuY3Rpb24gbWUodCl7cmV0dXJuKHQubWF0Y2goeil8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIHQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gdmUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDoic3RyaW5nIj09dHlwZW9mIHQmJnQubWF0Y2goeil8fFtdfU0uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLnByb3AsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW00ucHJvcEZpeFt0XXx8dF19KX19KSxNLmV4dGVuZCh7cHJvcDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXQubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm4gMT09PW8mJk0uaXNYTUxEb2ModCl8fChlPU0ucHJvcEZpeFtlXXx8ZSxyPU0ucHJvcEhvb2tzW2VdKSx2b2lkIDAhPT1uP3ImJiJzZXQiaW4gciYmdm9pZCAwIT09KGk9ci5zZXQodCxuLGUpKT9pOnRbZV09bjpyJiYiZ2V0ImluIHImJm51bGwhPT0oaT1yLmdldCh0LGUpKT9pOnRbZV19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ0YWJpbmRleCIpO3JldHVybiBlP3BhcnNlSW50KGUsMTApOmZlLnRlc3QodC5ub2RlTmFtZSl8fHBlLnRlc3QodC5ub2RlTmFtZSkmJnQuaHJlZj8wOi0xfX19LHByb3BGaXg6e2ZvcjoiaHRtbEZvciIsY2xhc3M6ImNsYXNzTmFtZSJ9fSksdi5vcHRTZWxlY3RlZHx8KE0ucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudE5vZGU7ZSYmKGUuc2VsZWN0ZWRJbmRleCxlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxNLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe00ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxNLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpLHIsbyxzLGEsdT0wO2lmKGIodCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtNKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ2UodGhpcykpKX0pO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylpLmluZGV4T2YoIiAiK28rIiAiKTwwJiYoaSs9bysiICIpO3IhPT0oYT1tZShpKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIsYSl9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHU9MDtpZihiKHQpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7TSh0aGlzKS5yZW1vdmVDbGFzcyh0LmNhbGwodGhpcyxlLGdlKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylmb3IoO2kuaW5kZXhPZigiICIrbysiICIpPi0xOylpPWkucmVwbGFjZSgiICIrbysiICIsIiAiKTtyIT09KGE9bWUoaSkpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGEpfXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPXR5cGVvZiB0LGk9InN0cmluZyI9PT1ufHxBcnJheS5pc0FycmF5KHQpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGUmJmk/ZT90aGlzLmFkZENsYXNzKHQpOnRoaXMucmVtb3ZlQ2xhc3ModCk6Yih0KT90aGlzLmVhY2goZnVuY3Rpb24obil7TSh0aGlzKS50b2dnbGVDbGFzcyh0LmNhbGwodGhpcyxuLGdlKHRoaXMpLGUpLGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUscixvLHM7aWYoaSlmb3Iocj0wLG89TSh0aGlzKSxzPXZlKHQpO2U9c1tyKytdOylvLmhhc0NsYXNzKGUpP28ucmVtb3ZlQ2xhc3MoZSk6by5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PXQmJiJib29sZWFuIiE9PW58fCgoZT1nZSh0aGlzKSkmJlouc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09dD8iIjpaLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpPTA7Zm9yKGU9IiAiK3QrIiAiO249dGhpc1tpKytdOylpZigxPT09bi5ub2RlVHlwZSYmKCIgIittZShnZShuKSkrIiAiKS5pbmRleE9mKGUpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBiZT0vXHIvZztNLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Yih0KSx0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIHI7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0ocj1pP3QuY2FsbCh0aGlzLG4sTSh0aGlzKS52YWwoKSk6dCk/cj0iIjoibnVtYmVyIj09dHlwZW9mIHI/cis9IiI6QXJyYXkuaXNBcnJheShyKSYmKHI9TS5tYXAocixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjp0KyIifSkpLChlPU0udmFsSG9va3NbdGhpcy50eXBlXXx8TS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBlJiZ2b2lkIDAhPT1lLnNldCh0aGlzLHIsInZhbHVlIil8fCh0aGlzLnZhbHVlPXIpKX0pKTpyPyhlPU0udmFsSG9va3Nbci50eXBlXXx8TS52YWxIb29rc1tyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmImdldCJpbiBlJiZ2b2lkIDAhPT0obj1lLmdldChyLCJ2YWx1ZSIpKT9uOiJzdHJpbmciPT10eXBlb2Yobj1yLnZhbHVlKT9uLnJlcGxhY2UoYmUsIiIpOm51bGw9PW4/IiI6bjp2b2lkIDB9fSksTS5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ2YWx1ZSIpO3JldHVybiBudWxsIT1lP2U6bWUoTS50ZXh0KHQpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXQub3B0aW9ucyxvPXQuc2VsZWN0ZWRJbmRleCxzPSJzZWxlY3Qtb25lIj09PXQudHlwZSxhPXM/bnVsbDpbXSx1PXM/bysxOnIubGVuZ3RoO2ZvcihpPW88MD91OnM/bzowO2k8dTtpKyspaWYoKChuPXJbaV0pLnNlbGVjdGVkfHxpPT09bykmJiFuLmRpc2FibGVkJiYoIW4ucGFyZW50Tm9kZS5kaXNhYmxlZHx8IVAobi5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoZT1NKG4pLnZhbCgpLHMpcmV0dXJuIGU7YS5wdXNoKGUpfXJldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyPXQub3B0aW9ucyxvPU0ubWFrZUFycmF5KGUpLHM9ci5sZW5ndGg7cy0tOykoKGk9cltzXSkuc2VsZWN0ZWQ9TS5pbkFycmF5KE0udmFsSG9va3Mub3B0aW9uLmdldChpKSxvKT4tMSkmJihuPSEwKTtyZXR1cm4gbnx8KHQuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLE0uZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe00udmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQuY2hlY2tlZD1NLmluQXJyYXkoTSh0KS52YWwoKSxlKT4tMX19LHYuY2hlY2tPbnx8KE0udmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjp0LnZhbHVlfSl9KSx2LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBuO3ZhciB5ZT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sX2U9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX07TS5leHRlbmQoTS5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbih0LGUsaSxyKXt2YXIgbyxhLHUsYyxoLGwsZCxmLG09W2l8fHNdLGc9cC5jYWxsKHQsInR5cGUiKT90LnR5cGU6dCx2PXAuY2FsbCh0LCJuYW1lc3BhY2UiKT90Lm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGE9Zj11PWk9aXx8cywzIT09aS5ub2RlVHlwZSYmOCE9PWkubm9kZVR5cGUmJiF5ZS50ZXN0KGcrTS5ldmVudC50cmlnZ2VyZWQpJiYoZy5pbmRleE9mKCIuIik+LTEmJih2PWcuc3BsaXQoIi4iKSxnPXYuc2hpZnQoKSx2LnNvcnQoKSksaD1nLmluZGV4T2YoIjoiKTwwJiYib24iK2csKHQ9dFtNLmV4cGFuZG9dP3Q6bmV3IE0uRXZlbnQoZywib2JqZWN0Ij09dHlwZW9mIHQmJnQpKS5pc1RyaWdnZXI9cj8yOjMsdC5uYW1lc3BhY2U9di5qb2luKCIuIiksdC5ybmFtZXNwYWNlPXQubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Yuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCx0LnJlc3VsdD12b2lkIDAsdC50YXJnZXR8fCh0LnRhcmdldD1pKSxlPW51bGw9PWU/W3RdOk0ubWFrZUFycmF5KGUsW3RdKSxkPU0uZXZlbnQuc3BlY2lhbFtnXXx8e30scnx8IWQudHJpZ2dlcnx8ITEhPT1kLnRyaWdnZXIuYXBwbHkoaSxlKSkpe2lmKCFyJiYhZC5ub0J1YmJsZSYmIXkoaSkpe2ZvcihjPWQuZGVsZWdhdGVUeXBlfHxnLHllLnRlc3QoYytnKXx8KGE9YS5wYXJlbnROb2RlKTthO2E9YS5wYXJlbnROb2RlKW0ucHVzaChhKSx1PWE7dT09PShpLm93bmVyRG9jdW1lbnR8fHMpJiZtLnB1c2godS5kZWZhdWx0Vmlld3x8dS5wYXJlbnRXaW5kb3d8fG4pfWZvcihvPTA7KGE9bVtvKytdKSYmIXQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZj1hLHQudHlwZT1vPjE/YzpkLmJpbmRUeXBlfHxnLChsPShaLmdldChhLCJldmVudHMiKXx8e30pW3QudHlwZV0mJlouZ2V0KGEsImhhbmRsZSIpKSYmbC5hcHBseShhLGUpLChsPWgmJmFbaF0pJiZsLmFwcGx5JiZHKGEpJiYodC5yZXN1bHQ9bC5hcHBseShhLGUpLCExPT09dC5yZXN1bHQmJnQucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIHQudHlwZT1nLHJ8fHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fGQuX2RlZmF1bHQmJiExIT09ZC5fZGVmYXVsdC5hcHBseShtLnBvcCgpLGUpfHwhRyhpKXx8aCYmYihpW2ddKSYmIXkoaSkmJigodT1pW2hdKSYmKGlbaF09bnVsbCksTS5ldmVudC50cmlnZ2VyZWQ9Zyx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihnLF9lKSxpW2ddKCksdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZyxfZSksTS5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLHUmJihpW2hdPXUpKSx0LnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1NLmV4dGVuZChuZXcgTS5FdmVudCxuLHt0eXBlOnQsaXNTaW11bGF0ZWQ6ITB9KTtNLmV2ZW50LnRyaWdnZXIoaSxudWxsLGUpfX0pLE0uZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00uZXZlbnQudHJpZ2dlcih0LGUsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIE0uZXZlbnQudHJpZ2dlcih0LGUsbiwhMCl9fSksdi5mb2N1c2lufHxNLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7TS5ldmVudC5zaW11bGF0ZShlLHQudGFyZ2V0LE0uZXZlbnQuZml4KHQpKX07TS5ldmVudC5zcGVjaWFsW2VdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBpPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxyPVouYWNjZXNzKGksZSk7cnx8aS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMCksWi5hY2Nlc3MoaSxlLChyfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMscj1aLmFjY2VzcyhpLGUpLTE7cj9aLmFjY2VzcyhpLGUscik6KGkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sITApLFoucmVtb3ZlKGksZSkpfX19KTt2YXIgd2U9bi5sb2NhdGlvbix4ZT1EYXRlLm5vdygpLE1lPS9cPy87TS5wYXJzZVhNTD1mdW5jdGlvbih0KXt2YXIgZTtpZighdHx8InN0cmluZyIhPXR5cGVvZiB0KXJldHVybiBudWxsO3RyeXtlPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyh0LCJ0ZXh0L3htbCIpfWNhdGNoKHQpe2U9dm9pZCAwfXJldHVybiBlJiYhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyc2VyZXJyb3IiKS5sZW5ndGh8fE0uZXJyb3IoIkludmFsaWQgWE1MOiAiK3QpLGV9O3ZhciBTZT0vXFtcXSQvLEVlPS9ccj9cbi9nLEFlPS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxDZT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZnVuY3Rpb24ga2UodCxlLG4saSl7dmFyIHI7aWYoQXJyYXkuaXNBcnJheShlKSlNLmVhY2goZSxmdW5jdGlvbihlLHIpe258fFNlLnRlc3QodCk/aSh0LHIpOmtlKHQrIlsiKygib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPXI/ZToiIikrIl0iLHIsbixpKX0pO2Vsc2UgaWYobnx8Im9iamVjdCIhPT14KGUpKWkodCxlKTtlbHNlIGZvcihyIGluIGUpa2UodCsiWyIrcisiXSIsZVtyXSxuLGkpfU0ucGFyYW09ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1iKGUpP2UoKTplO2lbaS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudCh0KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PW4/IiI6bil9O2lmKEFycmF5LmlzQXJyYXkodCl8fHQuanF1ZXJ5JiYhTS5pc1BsYWluT2JqZWN0KHQpKU0uZWFjaCh0LGZ1bmN0aW9uKCl7cih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIHQpa2Uobix0W25dLGUscik7cmV0dXJuIGkuam9pbigiJiIpfSxNLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIE0ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgdD1NLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gdD9NLm1ha2VBcnJheSh0KTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFNKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmQ2UudGVzdCh0aGlzLm5vZGVOYW1lKSYmIUFlLnRlc3QodCkmJih0aGlzLmNoZWNrZWR8fCFkdC50ZXN0KHQpKX0pLm1hcChmdW5jdGlvbih0LGUpe3ZhciBuPU0odGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP00ubWFwKG4sZnVuY3Rpb24odCl7cmV0dXJue25hbWU6ZS5uYW1lLHZhbHVlOnQucmVwbGFjZShFZSwiXHJcbiIpfX0pOntuYW1lOmUubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRWUsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgT2U9LyUyMC9nLFBlPS8jLiokLyxUZT0vKFs/Jl0pXz1bXiZdKi8samU9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxJZT0vXig/OkdFVHxIRUFEKSQvLExlPS9eXC9cLy8sQmU9e30sRGU9e30sUmU9IiovIi5jb25jYXQoIioiKSx6ZT1zLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBOZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXsic3RyaW5nIiE9dHlwZW9mIGUmJihuPWUsZT0iKiIpO3ZhciBpLHI9MCxvPWUudG9Mb3dlckNhc2UoKS5tYXRjaCh6KXx8W107aWYoYihuKSlmb3IoO2k9b1tyKytdOykiKyI9PT1pWzBdPyhpPWkuc2xpY2UoMSl8fCIqIiwodFtpXT10W2ldfHxbXSkudW5zaGlmdChuKSk6KHRbaV09dFtpXXx8W10pLnB1c2gobil9fWZ1bmN0aW9uIFdlKHQsZSxuLGkpe3ZhciByPXt9LG89dD09PURlO2Z1bmN0aW9uIHMoYSl7dmFyIHU7cmV0dXJuIHJbYV09ITAsTS5lYWNoKHRbYV18fFtdLGZ1bmN0aW9uKHQsYSl7dmFyIGM9YShlLG4saSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBjfHxvfHxyW2NdP28/ISh1PWMpOnZvaWQgMDooZS5kYXRhVHlwZXMudW5zaGlmdChjKSxzKGMpLCExKX0pLHV9cmV0dXJuIHMoZS5kYXRhVHlwZXNbMF0pfHwhclsiKiJdJiZzKCIqIil9ZnVuY3Rpb24gcWUodCxlKXt2YXIgbixpLHI9TS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIGUpdm9pZCAwIT09ZVtuXSYmKChyW25dP3Q6aXx8KGk9e30pKVtuXT1lW25dKTtyZXR1cm4gaSYmTS5leHRlbmQoITAsdCxpKSx0fXplLmhyZWY9d2UuaHJlZixNLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6d2UuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdCh3ZS5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSZSx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6TS5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/cWUocWUodCxNLmFqYXhTZXR0aW5ncyksZSk6cWUoTS5hamF4U2V0dGluZ3MsdCl9LGFqYXhQcmVmaWx0ZXI6TmUoQmUpLGFqYXhUcmFuc3BvcnQ6TmUoRGUpLGFqYXg6ZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIHQmJihlPXQsdD12b2lkIDApLGU9ZXx8e307dmFyIGkscixvLGEsdSxjLGgsbCxkLGYscD1NLmFqYXhTZXR1cCh7fSxlKSxtPXAuY29udGV4dHx8cCxnPXAuY29udGV4dCYmKG0ubm9kZVR5cGV8fG0uanF1ZXJ5KT9NKG0pOk0uZXZlbnQsdj1NLkRlZmVycmVkKCksYj1NLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx5PXAuc3RhdHVzQ29kZXx8e30sXz17fSx3PXt9LHg9ImNhbmNlbGVkIixTPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24odCl7dmFyIGU7aWYoaCl7aWYoIWEpZm9yKGE9e307ZT1qZS5leGVjKG8pOylhW2VbMV0udG9Mb3dlckNhc2UoKV09ZVsyXTtlPWFbdC50b0xvd2VyQ2FzZSgpXX1yZXR1cm4gbnVsbD09ZT9udWxsOmV9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBoP286bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1oJiYodD13W3QudG9Mb3dlckNhc2UoKV09d1t0LnRvTG93ZXJDYXNlKCldfHx0LF9bdF09ZSksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09aCYmKHAubWltZVR5cGU9dCksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbih0KXt2YXIgZTtpZih0KWlmKGgpUy5hbHdheXModFtTLnN0YXR1c10pO2Vsc2UgZm9yKGUgaW4gdCl5W2VdPVt5W2VdLHRbZV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbih0KXt2YXIgZT10fHx4O3JldHVybiBpJiZpLmFib3J0KGUpLEUoMCxlKSx0aGlzfX07aWYodi5wcm9taXNlKFMpLHAudXJsPSgodHx8cC51cmx8fHdlLmhyZWYpKyIiKS5yZXBsYWNlKExlLHdlLnByb3RvY29sKyIvLyIpLHAudHlwZT1lLm1ldGhvZHx8ZS50eXBlfHxwLm1ldGhvZHx8cC50eXBlLHAuZGF0YVR5cGVzPShwLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goeil8fFsiIl0sbnVsbD09cC5jcm9zc0RvbWFpbil7Yz1zLmNyZWF0ZUVsZW1lbnQoImEiKTt0cnl7Yy5ocmVmPXAudXJsLGMuaHJlZj1jLmhyZWYscC5jcm9zc0RvbWFpbj16ZS5wcm90b2NvbCsiLy8iK3plLmhvc3QhPWMucHJvdG9jb2wrIi8vIitjLmhvc3R9Y2F0Y2godCl7cC5jcm9zc0RvbWFpbj0hMH19aWYocC5kYXRhJiZwLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIHAuZGF0YSYmKHAuZGF0YT1NLnBhcmFtKHAuZGF0YSxwLnRyYWRpdGlvbmFsKSksV2UoQmUscCxlLFMpLGgpcmV0dXJuIFM7Zm9yKGQgaW4obD1NLmV2ZW50JiZwLmdsb2JhbCkmJjA9PU0uYWN0aXZlKysmJk0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IikscC50eXBlPXAudHlwZS50b1VwcGVyQ2FzZSgpLHAuaGFzQ29udGVudD0hSWUudGVzdChwLnR5cGUpLHI9cC51cmwucmVwbGFjZShQZSwiIikscC5oYXNDb250ZW50P3AuZGF0YSYmcC5wcm9jZXNzRGF0YSYmMD09PShwLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihwLmRhdGE9cC5kYXRhLnJlcGxhY2UoT2UsIisiKSk6KGY9cC51cmwuc2xpY2Uoci5sZW5ndGgpLHAuZGF0YSYmKHAucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2YgcC5kYXRhKSYmKHIrPShNZS50ZXN0KHIpPyImIjoiPyIpK3AuZGF0YSxkZWxldGUgcC5kYXRhKSwhMT09PXAuY2FjaGUmJihyPXIucmVwbGFjZShUZSwiJDEiKSxmPShNZS50ZXN0KHIpPyImIjoiPyIpKyJfPSIreGUrKytmKSxwLnVybD1yK2YpLHAuaWZNb2RpZmllZCYmKE0ubGFzdE1vZGlmaWVkW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixNLmxhc3RNb2RpZmllZFtyXSksTS5ldGFnW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLE0uZXRhZ1tyXSkpLChwLmRhdGEmJnAuaGFzQ29udGVudCYmITEhPT1wLmNvbnRlbnRUeXBlfHxlLmNvbnRlbnRUeXBlKSYmUy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHAuY29udGVudFR5cGUpLFMuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixwLmRhdGFUeXBlc1swXSYmcC5hY2NlcHRzW3AuZGF0YVR5cGVzWzBdXT9wLmFjY2VwdHNbcC5kYXRhVHlwZXNbMF1dKygiKiIhPT1wLmRhdGFUeXBlc1swXT8iLCAiK1JlKyI7IHE9MC4wMSI6IiIpOnAuYWNjZXB0c1siKiJdKSxwLmhlYWRlcnMpUy5zZXRSZXF1ZXN0SGVhZGVyKGQscC5oZWFkZXJzW2RdKTtpZihwLmJlZm9yZVNlbmQmJighMT09PXAuYmVmb3JlU2VuZC5jYWxsKG0sUyxwKXx8aCkpcmV0dXJuIFMuYWJvcnQoKTtpZih4PSJhYm9ydCIsYi5hZGQocC5jb21wbGV0ZSksUy5kb25lKHAuc3VjY2VzcyksUy5mYWlsKHAuZXJyb3IpLGk9V2UoRGUscCxlLFMpKXtpZihTLnJlYWR5U3RhdGU9MSxsJiZnLnRyaWdnZXIoImFqYXhTZW5kIixbUyxwXSksaClyZXR1cm4gUztwLmFzeW5jJiZwLnRpbWVvdXQ+MCYmKHU9bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uy5hYm9ydCgidGltZW91dCIpfSxwLnRpbWVvdXQpKTt0cnl7aD0hMSxpLnNlbmQoXyxFKX1jYXRjaCh0KXtpZihoKXRocm93IHQ7RSgtMSx0KX19ZWxzZSBFKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBFKHQsZSxzLGEpe3ZhciBjLGQsZixfLHcseD1lO2h8fChoPSEwLHUmJm4uY2xlYXJUaW1lb3V0KHUpLGk9dm9pZCAwLG89YXx8IiIsUy5yZWFkeVN0YXRlPXQ+MD80OjAsYz10Pj0yMDAmJnQ8MzAwfHwzMDQ9PT10LHMmJihfPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkscixvLHMsYT10LmNvbnRlbnRzLHU9dC5kYXRhVHlwZXM7IioiPT09dVswXTspdS5zaGlmdCgpLHZvaWQgMD09PWkmJihpPXQubWltZVR5cGV8fGUuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihpKWZvcihyIGluIGEpaWYoYVtyXSYmYVtyXS50ZXN0KGkpKXt1LnVuc2hpZnQocik7YnJlYWt9aWYodVswXWluIG4pbz11WzBdO2Vsc2V7Zm9yKHIgaW4gbil7aWYoIXVbMF18fHQuY29udmVydGVyc1tyKyIgIit1WzBdXSl7bz1yO2JyZWFrfXN8fChzPXIpfW89b3x8c31pZihvKXJldHVybiBvIT09dVswXSYmdS51bnNoaWZ0KG8pLG5bb119KHAsUyxzKSksXz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcixvLHMsYSx1LGM9e30saD10LmRhdGFUeXBlcy5zbGljZSgpO2lmKGhbMV0pZm9yKHMgaW4gdC5jb252ZXJ0ZXJzKWNbcy50b0xvd2VyQ2FzZSgpXT10LmNvbnZlcnRlcnNbc107Zm9yKG89aC5zaGlmdCgpO287KWlmKHQucmVzcG9uc2VGaWVsZHNbb10mJihuW3QucmVzcG9uc2VGaWVsZHNbb11dPWUpLCF1JiZpJiZ0LmRhdGFGaWx0ZXImJihlPXQuZGF0YUZpbHRlcihlLHQuZGF0YVR5cGUpKSx1PW8sbz1oLnNoaWZ0KCkpaWYoIioiPT09bylvPXU7ZWxzZSBpZigiKiIhPT11JiZ1IT09byl7aWYoIShzPWNbdSsiICIrb118fGNbIiogIitvXSkpZm9yKHIgaW4gYylpZigoYT1yLnNwbGl0KCIgIikpWzFdPT09byYmKHM9Y1t1KyIgIithWzBdXXx8Y1siKiAiK2FbMF1dKSl7ITA9PT1zP3M9Y1tyXTohMCE9PWNbcl0mJihvPWFbMF0saC51bnNoaWZ0KGFbMV0pKTticmVha31pZighMCE9PXMpaWYocyYmdC50aHJvd3MpZT1zKGUpO2Vsc2UgdHJ5e2U9cyhlKX1jYXRjaCh0KXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpzP3Q6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK3UrIiB0byAiK299fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6ZX19KHAsXyxTLGMpLGM/KHAuaWZNb2RpZmllZCYmKCh3PVMuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSkmJihNLmxhc3RNb2RpZmllZFtyXT13KSwodz1TLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoTS5ldGFnW3JdPXcpKSwyMDQ9PT10fHwiSEVBRCI9PT1wLnR5cGU/eD0ibm9jb250ZW50IjozMDQ9PT10P3g9Im5vdG1vZGlmaWVkIjooeD1fLnN0YXRlLGQ9Xy5kYXRhLGM9IShmPV8uZXJyb3IpKSk6KGY9eCwhdCYmeHx8KHg9ImVycm9yIix0PDAmJih0PTApKSksUy5zdGF0dXM9dCxTLnN0YXR1c1RleHQ9KGV8fHgpKyIiLGM/di5yZXNvbHZlV2l0aChtLFtkLHgsU10pOnYucmVqZWN0V2l0aChtLFtTLHgsZl0pLFMuc3RhdHVzQ29kZSh5KSx5PXZvaWQgMCxsJiZnLnRyaWdnZXIoYz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFtTLHAsYz9kOmZdKSxiLmZpcmVXaXRoKG0sW1MseF0pLGwmJihnLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW1MscF0pLC0tTS5hY3RpdmV8fE0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiBTfSxnZXRKU09OOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTS5nZXQodCxlLG4sImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE0uZ2V0KHQsdm9pZCAwLGUsInNjcmlwdCIpfX0pLE0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbih0LGUpe01bZV09ZnVuY3Rpb24odCxuLGkscil7cmV0dXJuIGIobikmJihyPXJ8fGksaT1uLG49dm9pZCAwKSxNLmFqYXgoTS5leHRlbmQoe3VybDp0LHR5cGU6ZSxkYXRhVHlwZTpyLGRhdGE6bixzdWNjZXNzOml9LE0uaXNQbGFpbk9iamVjdCh0KSYmdCkpfX0pLE0uX2V2YWxVcmw9ZnVuY3Rpb24odCl7cmV0dXJuIE0uYWpheCh7dXJsOnQsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsdGhyb3dzOiEwfSl9LE0uZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzWzBdJiYoYih0KSYmKHQ9dC5jYWxsKHRoaXNbMF0pKSxlPU0odCx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmUuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGUubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXM7dC5maXJzdEVsZW1lbnRDaGlsZDspdD10LmZpcnN0RWxlbWVudENoaWxkO3JldHVybiB0fSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe00odGhpcykud3JhcElubmVyKHQuY2FsbCh0aGlzLGUpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPU0odGhpcyksbj1lLmNvbnRlbnRzKCk7bi5sZW5ndGg/bi53cmFwQWxsKHQpOmUuYXBwZW5kKHQpfSl9LHdyYXA6ZnVuY3Rpb24odCl7dmFyIGU9Yih0KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe00odGhpcykud3JhcEFsbChlP3QuY2FsbCh0aGlzLG4pOnQpfSl9LHVud3JhcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnQodCkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe00odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSksTS5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKHQpe3JldHVybiFNLmV4cHIucHNldWRvcy52aXNpYmxlKHQpfSxNLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQub2Zmc2V0V2lkdGh8fHQub2Zmc2V0SGVpZ2h0fHx0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0sTS5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaCh0KXt9fTt2YXIgSGU9ezA6MjAwLDEyMjM6MjA0fSxGZT1NLmFqYXhTZXR0aW5ncy54aHIoKTt2LmNvcnM9ISFGZSYmIndpdGhDcmVkZW50aWFscyJpbiBGZSx2LmFqYXg9RmU9ISFGZSxNLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24odCl7dmFyIGUsaTtpZih2LmNvcnN8fEZlJiYhdC5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihyLG8pe3ZhciBzLGE9dC54aHIoKTtpZihhLm9wZW4odC50eXBlLHQudXJsLHQuYXN5bmMsdC51c2VybmFtZSx0LnBhc3N3b3JkKSx0LnhockZpZWxkcylmb3IocyBpbiB0LnhockZpZWxkcylhW3NdPXQueGhyRmllbGRzW3NdO2ZvcihzIGluIHQubWltZVR5cGUmJmEub3ZlcnJpZGVNaW1lVHlwZSYmYS5vdmVycmlkZU1pbWVUeXBlKHQubWltZVR5cGUpLHQuY3Jvc3NEb21haW58fHJbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KHJbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKSxyKWEuc2V0UmVxdWVzdEhlYWRlcihzLHJbc10pO2U9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZSYmKGU9aT1hLm9ubG9hZD1hLm9uZXJyb3I9YS5vbmFib3J0PWEub250aW1lb3V0PWEub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsImFib3J0Ij09PXQ/YS5hYm9ydCgpOiJlcnJvciI9PT10PyJudW1iZXIiIT10eXBlb2YgYS5zdGF0dXM/bygwLCJlcnJvciIpOm8oYS5zdGF0dXMsYS5zdGF0dXNUZXh0KTpvKEhlW2Euc3RhdHVzXXx8YS5zdGF0dXMsYS5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShhLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBhLnJlc3BvbnNlVGV4dD97YmluYXJ5OmEucmVzcG9uc2V9Ont0ZXh0OmEucmVzcG9uc2VUZXh0fSxhLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fSxhLm9ubG9hZD1lKCksaT1hLm9uZXJyb3I9YS5vbnRpbWVvdXQ9ZSgiZXJyb3IiKSx2b2lkIDAhPT1hLm9uYWJvcnQ/YS5vbmFib3J0PWk6YS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09YS5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlJiZpKCl9KX0sZT1lKCJhYm9ydCIpO3RyeXthLnNlbmQodC5oYXNDb250ZW50JiZ0LmRhdGF8fG51bGwpfWNhdGNoKHQpe2lmKGUpdGhyb3cgdH19LGFib3J0OmZ1bmN0aW9uKCl7ZSYmZSgpfX19KSxNLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24odCl7dC5jcm9zc0RvbWFpbiYmKHQuY29udGVudHMuc2NyaXB0PSExKX0pLE0uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKHQpe3JldHVybiBNLmdsb2JhbEV2YWwodCksdH19fSksTS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQuY2FjaGUmJih0LmNhY2hlPSExKSx0LmNyb3NzRG9tYWluJiYodC50eXBlPSJHRVQiKX0pLE0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbih0KXt2YXIgZSxuO2lmKHQuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oaSxyKXtlPU0oIjxzY3JpcHQ+IikucHJvcCh7Y2hhcnNldDp0LnNjcmlwdENoYXJzZXQsc3JjOnQudXJsfSkub24oImxvYWQgZXJyb3IiLG49ZnVuY3Rpb24odCl7ZS5yZW1vdmUoKSxuPW51bGwsdCYmcigiZXJyb3IiPT09dC50eXBlPzQwNDoyMDAsdC50eXBlKX0pLHMuaGVhZC5hcHBlbmRDaGlsZChlWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtuJiZuKCl9fX0pO3ZhciBWZSxVZT1bXSxLZT0vKD0pXD8oPz0mfCQpfFw/XD8vO00uYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdD1VZS5wb3AoKXx8TS5leHBhbmRvKyJfIit4ZSsrO3JldHVybiB0aGlzW3RdPSEwLHR9fSksTS5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbih0LGUsaSl7dmFyIHIsbyxzLGE9ITEhPT10Lmpzb25wJiYoS2UudGVzdCh0LnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiB0LmRhdGEmJjA9PT0odC5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZLZS50ZXN0KHQuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PXQuZGF0YVR5cGVzWzBdKXJldHVybiByPXQuanNvbnBDYWxsYmFjaz1iKHQuanNvbnBDYWxsYmFjayk/dC5qc29ucENhbGxiYWNrKCk6dC5qc29ucENhbGxiYWNrLGE/dFthXT10W2FdLnJlcGxhY2UoS2UsIiQxIityKTohMSE9PXQuanNvbnAmJih0LnVybCs9KE1lLnRlc3QodC51cmwpPyImIjoiPyIpK3QuanNvbnArIj0iK3IpLHQuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBzfHxNLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLHNbMF19LHQuZGF0YVR5cGVzWzBdPSJqc29uIixvPW5bcl0sbltyXT1mdW5jdGlvbigpe3M9YXJndW1lbnRzfSxpLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PW8/TShuKS5yZW1vdmVQcm9wKHIpOm5bcl09byx0W3JdJiYodC5qc29ucENhbGxiYWNrPWUuanNvbnBDYWxsYmFjayxVZS5wdXNoKHIpKSxzJiZiKG8pJiZvKHNbMF0pLHM9bz12b2lkIDB9KSwic2NyaXB0In0pLHYuY3JlYXRlSFRNTERvY3VtZW50PSgoVmU9cy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1WZS5jaGlsZE5vZGVzLmxlbmd0aCksTS5wYXJzZUhUTUw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgdD9bXTooImJvb2xlYW4iPT10eXBlb2YgZSYmKG49ZSxlPSExKSxlfHwodi5jcmVhdGVIVE1MRG9jdW1lbnQ/KChpPShlPXMuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPXMubG9jYXRpb24uaHJlZixlLmhlYWQuYXBwZW5kQ2hpbGQoaSkpOmU9cyksbz0hbiYmW10sKHI9VC5leGVjKHQpKT9bZS5jcmVhdGVFbGVtZW50KHJbMV0pXToocj13dChbdF0sZSxvKSxvJiZvLmxlbmd0aCYmTShvKS5yZW1vdmUoKSxNLm1lcmdlKFtdLHIuY2hpbGROb2RlcykpKTt2YXIgaSxyLG99LE0uZm4ubG9hZD1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHM9dGhpcyxhPXQuaW5kZXhPZigiICIpO3JldHVybiBhPi0xJiYoaT1tZSh0LnNsaWNlKGEpKSx0PXQuc2xpY2UoMCxhKSksYihlKT8obj1lLGU9dm9pZCAwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJihyPSJQT1NUIikscy5sZW5ndGg+MCYmTS5hamF4KHt1cmw6dCx0eXBlOnJ8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmV9KS5kb25lKGZ1bmN0aW9uKHQpe289YXJndW1lbnRzLHMuaHRtbChpP00oIjxkaXY+IikuYXBwZW5kKE0ucGFyc2VIVE1MKHQpKS5maW5kKGkpOnQpfSkuYWx3YXlzKG4mJmZ1bmN0aW9uKHQsZSl7cy5lYWNoKGZ1bmN0aW9uKCl7bi5hcHBseSh0aGlzLG98fFt0LnJlc3BvbnNlVGV4dCxlLHRdKX0pfSksdGhpc30sTS5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24odCxlKXtNLmZuW2VdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9uKGUsdCl9fSksTS5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIE0uZ3JlcChNLnRpbWVycyxmdW5jdGlvbihlKXtyZXR1cm4gdD09PWUuZWxlbX0pLmxlbmd0aH0sTS5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGM9TS5jc3ModCwicG9zaXRpb24iKSxoPU0odCksbD17fTsic3RhdGljIj09PWMmJih0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLGE9aC5vZmZzZXQoKSxvPU0uY3NzKHQsInRvcCIpLHU9TS5jc3ModCwibGVmdCIpLCgiYWJzb2x1dGUiPT09Y3x8ImZpeGVkIj09PWMpJiYobyt1KS5pbmRleE9mKCJhdXRvIik+LTE/KHM9KGk9aC5wb3NpdGlvbigpKS50b3Ascj1pLmxlZnQpOihzPXBhcnNlRmxvYXQobyl8fDAscj1wYXJzZUZsb2F0KHUpfHwwKSxiKGUpJiYoZT1lLmNhbGwodCxuLE0uZXh0ZW5kKHt9LGEpKSksbnVsbCE9ZS50b3AmJihsLnRvcD1lLnRvcC1hLnRvcCtzKSxudWxsIT1lLmxlZnQmJihsLmxlZnQ9ZS5sZWZ0LWEubGVmdCtyKSwidXNpbmciaW4gZT9lLnVzaW5nLmNhbGwodCxsKTpoLmNzcyhsKX19LE0uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24odCl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihlKXtNLm9mZnNldC5zZXRPZmZzZXQodGhpcyx0LGUpfSk7dmFyIGUsbixpPXRoaXNbMF07cmV0dXJuIGk/aS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49aS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6ZS50b3Arbi5wYWdlWU9mZnNldCxsZWZ0OmUubGVmdCtuLnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH06dm9pZCAwfSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciB0LGUsbixpPXRoaXNbMF0scj17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09TS5jc3MoaSwicG9zaXRpb24iKSllPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZWxzZXtmb3IoZT10aGlzLm9mZnNldCgpLG49aS5vd25lckRvY3VtZW50LHQ9aS5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3QmJih0PT09bi5ib2R5fHx0PT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PU0uY3NzKHQsInBvc2l0aW9uIik7KXQ9dC5wYXJlbnROb2RlO3QmJnQhPT1pJiYxPT09dC5ub2RlVHlwZSYmKChyPU0odCkub2Zmc2V0KCkpLnRvcCs9TS5jc3ModCwiYm9yZGVyVG9wV2lkdGgiLCEwKSxyLmxlZnQrPU0uY3NzKHQsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLXIudG9wLU0uY3NzKGksIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LXIubGVmdC1NLmNzcyhpLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMub2Zmc2V0UGFyZW50O3QmJiJzdGF0aWMiPT09TS5jc3ModCwicG9zaXRpb24iKTspdD10Lm9mZnNldFBhcmVudDtyZXR1cm4gdHx8eHR9KX19KSxNLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24odCxlKXt2YXIgbj0icGFnZVlPZmZzZXQiPT09ZTtNLmZuW3RdPWZ1bmN0aW9uKGkpe3JldHVybiBVKHRoaXMsZnVuY3Rpb24odCxpLHIpe3ZhciBvO2lmKHkodCk/bz10Ojk9PT10Lm5vZGVUeXBlJiYobz10LmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1yKXJldHVybiBvP29bZV06dFtpXTtvP28uc2Nyb2xsVG8obj9vLnBhZ2VYT2Zmc2V0OnIsbj9yOm8ucGFnZVlPZmZzZXQpOnRbaV09cn0sdCxpLGFyZ3VtZW50cy5sZW5ndGgpfX0pLE0uZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbih0LGUpe00uY3NzSG9va3NbZV09VnQodi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKHQsbil7aWYobilyZXR1cm4gbj1GdCh0LGUpLFd0LnRlc3Qobik/TSh0KS5wb3NpdGlvbigpW2VdKyJweCI6bn0pfSksTS5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmVhY2goe3BhZGRpbmc6ImlubmVyIit0LGNvbnRlbnQ6ZSwiIjoib3V0ZXIiK3R9LGZ1bmN0aW9uKG4saSl7TS5mbltpXT1mdW5jdGlvbihyLG8pe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgmJihufHwiYm9vbGVhbiIhPXR5cGVvZiByKSxhPW58fCghMD09PXJ8fCEwPT09bz8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFUodGhpcyxmdW5jdGlvbihlLG4scil7dmFyIG87cmV0dXJuIHkoZSk/MD09PWkuaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrdF06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrdF06OT09PWUubm9kZVR5cGU/KG89ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK3RdLG9bInNjcm9sbCIrdF0sZS5ib2R5WyJvZmZzZXQiK3RdLG9bIm9mZnNldCIrdF0sb1siY2xpZW50Iit0XSkpOnZvaWQgMD09PXI/TS5jc3MoZSxuLGEpOk0uc3R5bGUoZSxuLHIsYSl9LGUscz9yOnZvaWQgMCxzKX19KX0pLE0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe00uZm5bZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oZSxudWxsLHQsbik6dGhpcy50cmlnZ2VyKGUpfX0pLE0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIodCkubW91c2VsZWF2ZShlfHx0KX19KSxNLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMub24odCxudWxsLGUsbil9LHVuYmluZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm9mZih0LG51bGwsZSl9LGRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0aGlzLm9uKGUsdCxuLGkpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYodCwiKioiKTp0aGlzLm9mZihlLHR8fCIqKiIsbil9fSksTS5wcm94eT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscjtpZigic3RyaW5nIj09dHlwZW9mIGUmJihuPXRbZV0sZT10LHQ9biksYih0KSlyZXR1cm4gaT11LmNhbGwoYXJndW1lbnRzLDIpLChyPWZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZXx8dGhpcyxpLmNvbmNhdCh1LmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD10Lmd1aWQ9dC5ndWlkfHxNLmd1aWQrKyxyfSxNLmhvbGRSZWFkeT1mdW5jdGlvbih0KXt0P00ucmVhZHlXYWl0Kys6TS5yZWFkeSghMCl9LE0uaXNBcnJheT1BcnJheS5pc0FycmF5LE0ucGFyc2VKU09OPUpTT04ucGFyc2UsTS5ub2RlTmFtZT1QLE0uaXNGdW5jdGlvbj1iLE0uaXNXaW5kb3c9eSxNLmNhbWVsQ2FzZT0kLE0udHlwZT14LE0ubm93PURhdGUubm93LE0uaXNOdW1lcmljPWZ1bmN0aW9uKHQpe3ZhciBlPU0udHlwZSh0KTtyZXR1cm4oIm51bWJlciI9PT1lfHwic3RyaW5nIj09PWUpJiYhaXNOYU4odC1wYXJzZUZsb2F0KHQpKX0sdm9pZCAwPT09KGk9ZnVuY3Rpb24oKXtyZXR1cm4gTX0uYXBwbHkoZSxbXSkpfHwodC5leHBvcnRzPWkpO3ZhciBZZT1uLmpRdWVyeSxYZT1uLiQ7cmV0dXJuIE0ubm9Db25mbGljdD1mdW5jdGlvbih0KXtyZXR1cm4gbi4kPT09TSYmKG4uJD1YZSksdCYmbi5qUXVlcnk9PT1NJiYobi5qUXVlcnk9WWUpLE19LHJ8fChuLmpRdWVyeT1uLiQ9TSksTX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDgpO2UudXVpZD1pLnV1aWQsZS5XcmFwcGVkRXJyb3I9aS5XcmFwcGVkRXJyb3IsZS5yZXNvbHZlUHJvbWlzZXNEaWN0PWkucmVzb2x2ZVByb21pc2VzRGljdDt2YXIgcj1uKDgpO2UucmVqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW5ldyByLldyYXBwZWRFcnJvcih0LG4pO3JldHVybiBlJiZjb25zb2xlLmVycm9yKGkpLFByb21pc2UucmVqZWN0KGkpfX0sZS50eXBlc2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwIT09ZSYmKHQudGV4dENvbnRlbnQ9ZSksdm9pZCAwIT09d2luZG93Lk1hdGhKYXgmJk1hdGhKYXguSHViLlF1ZXVlKFsiVHlwZXNldCIsTWF0aEpheC5IdWIsdF0pfSxlLmVzY2FwZV9odG1sPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnRleHRDb250ZW50PXQsZS5pbm5lckhUTUx9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKTtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIDU1Mjk2PT0oNjQ1MTImdC5jaGFyQ29kZUF0KGUpKSYmKCEoZTwwfHxlKzE+PXQubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZ0LmNoYXJDb2RlQXQoZSsxKSkpfWZ1bmN0aW9uIHModCl7cmV0dXJuKHQ+Pj4yNHx0Pj4+OCY2NTI4MHx0PDw4JjE2NzExNjgwfCgyNTUmdCk8PDI0KT4+PjB9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoPyIwIit0OnR9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gNz09PXQubGVuZ3RoPyIwIit0OjY9PT10Lmxlbmd0aD8iMDAiK3Q6NT09PXQubGVuZ3RoPyIwMDAiK3Q6ND09PXQubGVuZ3RoPyIwMDAwIit0OjM9PT10Lmxlbmd0aD8iMDAwMDAiK3Q6Mj09PXQubGVuZ3RoPyIwMDAwMDAiK3Q6MT09PXQubGVuZ3RoPyIwMDAwMDAwIit0OnR9ZS5pbmhlcml0cz1yLGUudG9BcnJheT1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQuc2xpY2UoKTtpZighdClyZXR1cm5bXTt2YXIgbj1bXTtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYoZSl7aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLHI9MDtyPHQubGVuZ3RoO3IrPTIpbi5wdXNoKHBhcnNlSW50KHRbcl0rdFtyKzFdLDE2KSl9ZWxzZSBmb3IodmFyIGk9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBzPXQuY2hhckNvZGVBdChyKTtzPDEyOD9uW2krK109czpzPDIwNDg/KG5baSsrXT1zPj42fDE5MixuW2krK109NjMmc3wxMjgpOm8odCxyKT8ocz02NTUzNisoKDEwMjMmcyk8PDEwKSsoMTAyMyZ0LmNoYXJDb2RlQXQoKytyKSksbltpKytdPXM+PjE4fDI0MCxuW2krK109cz4+MTImNjN8MTI4LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpOihuW2krK109cz4+MTJ8MjI0LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpfWVsc2UgZm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluW3JdPTB8dFtyXTtyZXR1cm4gbn0sZS50b0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dC5sZW5ndGg7bisrKWUrPWEodFtuXS50b1N0cmluZygxNikpO3JldHVybiBlfSxlLmh0b25sPXMsZS50b0hleDMyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dFtpXTsibGl0dGxlIj09PWUmJihyPXMocikpLG4rPXUoci50b1N0cmluZygxNikpfXJldHVybiBufSxlLnplcm8yPWEsZS56ZXJvOD11LGUuam9pbjMyPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPW4tZTtpKG8lND09MCk7Zm9yKHZhciBzPW5ldyBBcnJheShvLzQpLGE9MCx1PWU7YTxzLmxlbmd0aDthKyssdSs9NCl7dmFyIGM7Yz0iYmlnIj09PXI/dFt1XTw8MjR8dFt1KzFdPDwxNnx0W3UrMl08PDh8dFt1KzNdOnRbdSszXTw8MjR8dFt1KzJdPDwxNnx0W3UrMV08PDh8dFt1XSxzW2FdPWM+Pj4wfXJldHVybiBzfSxlLnNwbGl0MzI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49bmV3IEFycmF5KDQqdC5sZW5ndGgpLGk9MCxyPTA7aTx0Lmxlbmd0aDtpKysscis9NCl7dmFyIG89dFtpXTsiYmlnIj09PWU/KG5bcl09bz4+PjI0LG5bcisxXT1vPj4+MTYmMjU1LG5bcisyXT1vPj4+OCYyNTUsbltyKzNdPTI1NSZvKToobltyKzNdPW8+Pj4yNCxuW3IrMl09bz4+PjE2JjI1NSxuW3IrMV09bz4+PjgmMjU1LG5bcl09MjU1Jm8pfXJldHVybiBufSxlLnJvdHIzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfSxlLnJvdGwzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfSxlLnN1bTMyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZT4+PjB9LGUuc3VtMzJfMz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrZStuPj4+MH0sZS5zdW0zMl80PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0K2UrbitpPj4+MH0sZS5zdW0zMl81PWZ1bmN0aW9uKHQsZSxuLGkscil7cmV0dXJuIHQrZStuK2krcj4+PjB9LGUuc3VtNjQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dFtlXSxvPWkrdFtlKzFdPj4+MCxzPShvPGk/MTowKStuK3I7dFtlXT1zPj4+MCx0W2UrMV09b30sZS5zdW02NF9oaT1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4oZStpPj4+MDxlPzE6MCkrdCtuPj4+MH0sZS5zdW02NF9sbz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZStpPj4+MH0sZS5zdW02NF80X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSl7dmFyIHU9MCxjPWU7cmV0dXJuIHUrPShjPWMraT4+PjApPGU/MTowLHUrPShjPWMrbz4+PjApPG8/MTowLHQrbityK3MrKHUrPShjPWMrYT4+PjApPGE/MTowKT4+PjB9LGUuc3VtNjRfNF9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEpe3JldHVybiBlK2krbythPj4+MH0sZS5zdW02NF81X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSx1LGMpe3ZhciBoPTAsbD1lO3JldHVybiBoKz0obD1sK2k+Pj4wKTxlPzE6MCxoKz0obD1sK28+Pj4wKTxvPzE6MCxoKz0obD1sK2E+Pj4wKTxhPzE6MCx0K24rcitzK3UrKGgrPShsPWwrYz4+PjApPGM/MTowKT4+PjB9LGUuc3VtNjRfNV9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEsdSxjKXtyZXR1cm4gZStpK28rYStjPj4+MH0sZS5yb3RyNjRfaGk9ZnVuY3Rpb24odCxlLG4pe3JldHVybihlPDwzMi1ufHQ+Pj5uKT4+PjB9LGUucm90cjY0X2xvPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4odDw8MzItbnxlPj4+bik+Pj4wfSxlLnNocjY0X2hpPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD4+Pm59LGUuc2hyNjRfbG89ZnVuY3Rpb24odCxlLG4pe3JldHVybih0PDwzMi1ufGU+Pj5uKT4+PjB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuaXRlcj90Lml0ZXIoKTpuZXcgcih0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pdGVyPWksZS5lYWNoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9MCxvPWkodCk7dm9pZCAwIT09KG49by5uZXh0KCkpOylpZighMT09PWUobixyKyspKXJldHVybn0sZS5ldmVyeT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyPTAsbz1pKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoIWUobixyKyspKXJldHVybiExO3JldHVybiEwfSxlLnNvbWU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aSh0KTt2b2lkIDAhPT0obj1vLm5leHQoKSk7KWlmKGUobixyKyspKXJldHVybiEwO3JldHVybiExfSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MCxyPVtdLG89aSh0KTt2b2lkIDAhPT0oZT1vLm5leHQoKSk7KXJbbisrXT1lO3JldHVybiByfTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBlPW5ldyB0KHRoaXMuX3NvdXJjZSk7cmV0dXJuIGUuX2luZGV4PXRoaXMuX2luZGV4LGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2luZGV4Pj10aGlzLl9zb3VyY2UubGVuZ3RoKSlyZXR1cm4gdGhpcy5fc291cmNlW3RoaXMuX2luZGV4KytdfSx0fSgpO2UuQXJyYXlJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMjApLHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixvPWl8fHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7dC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyPXQuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gYSh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2k9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXtpPXN9fSgpO3ZhciB1LGM9W10saD0hMSxsPS0xO2Z1bmN0aW9uIGQoKXtoJiZ1JiYoaD0hMSx1Lmxlbmd0aD9jPXUuY29uY2F0KGMpOmw9LTEsYy5sZW5ndGgmJmYoKSl9ZnVuY3Rpb24gZigpe2lmKCFoKXt2YXIgdD1hKGQpO2g9ITA7Zm9yKHZhciBlPWMubGVuZ3RoO2U7KXtmb3IodT1jLGM9W107KytsPGU7KXUmJnVbbF0ucnVuKCk7bD0tMSxlPWMubGVuZ3RofXU9bnVsbCxoPSExLGZ1bmN0aW9uKHQpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoaT09PXN8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2kodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gaS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIHAodCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBtKCl7fXIubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtjLnB1c2gobmV3IHAodCxlKSksMSE9PWMubGVuZ3RofHxofHxhKGYpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxyLnRpdGxlPSJicm93c2VyIixyLmJyb3dzZXI9ITAsci5lbnY9e30sci5hcmd2PVtdLHIudmVyc2lvbj0iIixyLnZlcnNpb25zPXt9LHIub249bSxyLmFkZExpc3RlbmVyPW0sci5vbmNlPW0sci5vZmY9bSxyLnJlbW92ZUxpc3RlbmVyPW0sci5yZW1vdmVBbGxMaXN0ZW5lcnM9bSxyLmVtaXQ9bSxyLnByZXBlbmRMaXN0ZW5lcj1tLHIucHJlcGVuZE9uY2VMaXN0ZW5lcj1tLHIubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxyLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxyLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sci5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxyLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm0sbz1uKDYzKS5TdHJpbmdEZWNvZGVyO2Z1bmN0aW9uIHModCl7ci5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiB0LHRoaXMuaGFzaE1vZGU/dGhpc1t0XT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1uKDApKHMscikscy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIHQmJih0PWkuZnJvbSh0LGUpKTt2YXIgcj10aGlzLl91cGRhdGUodCk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczoobiYmKHI9dGhpcy5fdG9TdHJpbmcocixuKSkscil9LHMucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKCl7fSxzLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LHMucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0scy5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxzLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaTt0cnl7dGhpcy5oYXNoTW9kZT90aGlzLl91cGRhdGUodCk6dGhpcy5wdXNoKHRoaXMuX3VwZGF0ZSh0KSl9Y2F0Y2godCl7aT10fWZpbmFsbHl7bihpKX19LHMucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbih0KXt2YXIgZTt0cnl7dGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKX1jYXRjaCh0KXtlPXR9dChlKX0scy5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2ZpbmFsKCl8fGkuYWxsb2MoMCk7cmV0dXJuIHQmJihlPXRoaXMuX3RvU3RyaW5nKGUsdCwhMCkpLGV9LHMucHJvdG90eXBlLl90b1N0cmluZz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5fZGVjb2Rlcnx8KHRoaXMuX2RlY29kZXI9bmV3IG8oZSksdGhpcy5fZW5jb2Rpbmc9ZSksdGhpcy5fZW5jb2RpbmchPT1lKXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc3dpdGNoIGVuY29kaW5ncyIpO3ZhciBpPXRoaXMuX2RlY29kZXIud3JpdGUodCk7cmV0dXJuIG4mJihpKz10aGlzLl9kZWNvZGVyLmVuZCgpKSxpfSx0LmV4cG9ydHM9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oOSksbz1uKDUpLHM9bigzMCksYT1uKDExKSx1PW4oNyksYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2Rpc3Bvc2VkPSExLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuX2ZpdFBvbGljeT10LmZpdFBvbGljeXx8InNldC1taW4tc2l6ZSJ9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9kaXNwb3NlZD0hMCxhLlNpZ25hbC5jbGVhckRhdGEodGhpcykscy5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3BhcmVudCE9PXQpe2lmKHRoaXMuX3BhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjaGFuZ2UgcGFyZW50IHdpZGdldC4iKTtpZih0LmxheW91dCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHBhcmVudCB3aWRnZXQuIik7dGhpcy5fcGFyZW50PXQsdGhpcy5pbml0KCl9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZml0UG9saWN5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpdFBvbGljeX0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpdFBvbGljeSE9PXQmJih0aGlzLl9maXRQb2xpY3k9dCx0aGlzLl9wYXJlbnQpKXt2YXIgZT10aGlzLl9wYXJlbnQubm9kZS5zdHlsZTtlLm1pbldpZHRoPSIiLGUubWluSGVpZ2h0PSIiLGUubWF4V2lkdGg9IiIsZS5tYXhIZWlnaHQ9IiIsdGhpcy5fcGFyZW50LmZpdCgpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5wcm9jZXNzUGFyZW50TWVzc2FnZT1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5vblJlc2l6ZSh0KTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm9uVXBkYXRlUmVxdWVzdCh0KTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm9uRml0UmVxdWVzdCh0KTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm9uQmVmb3JlU2hvdyh0KTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMub25BZnRlclNob3codCk7YnJlYWs7Y2FzZSJiZWZvcmUtaGlkZSI6dGhpcy5vbkJlZm9yZUhpZGUodCk7YnJlYWs7Y2FzZSJhZnRlci1oaWRlIjp0aGlzLm9uQWZ0ZXJIaWRlKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWF0dGFjaCI6dGhpcy5vbkJlZm9yZUF0dGFjaCh0KTticmVhaztjYXNlImFmdGVyLWF0dGFjaCI6dGhpcy5vbkFmdGVyQXR0YWNoKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWRldGFjaCI6dGhpcy5vbkJlZm9yZURldGFjaCh0KTticmVhaztjYXNlImFmdGVyLWRldGFjaCI6dGhpcy5vbkFmdGVyRGV0YWNoKHQpO2JyZWFrO2Nhc2UiY2hpbGQtcmVtb3ZlZCI6dGhpcy5vbkNoaWxkUmVtb3ZlZCh0KTticmVhaztjYXNlImNoaWxkLXNob3duIjp0aGlzLm9uQ2hpbGRTaG93bih0KTticmVhaztjYXNlImNoaWxkLWhpZGRlbiI6dGhpcy5vbkNoaWxkSGlkZGVuKHQpfX0sdC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5wYXJlbnQ9dC5wYXJlbnR9KX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24odCl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9LHQucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpLmVhY2godGhpcyxmdW5jdGlvbih0KXtvLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KX0sdC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQmVmb3JlRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkFmdGVyRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZUhpZGU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJIaWRlPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldCh0LmNoaWxkKX0sdC5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt9LHR9KCk7ZS5MYXlvdXQ9YyxmdW5jdGlvbih0KXt0LmdldEhvcml6b250YWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGguaG9yaXpvbnRhbEFsaWdubWVudFByb3BlcnR5LmdldCh0KX0sdC5zZXRIb3Jpem9udGFsQWxpZ25tZW50PWZ1bmN0aW9uKHQsZSl7aC5ob3Jpem9udGFsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGgudmVydGljYWxBbGlnbm1lbnRQcm9wZXJ0eS5nZXQodCl9LHQuc2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCxlKXtoLnZlcnRpY2FsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9fShjPWUuTGF5b3V0fHwoZS5MYXlvdXQ9e30pKSxlLkxheW91dD1jO3ZhciBoLGw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3RvcD1OYU4sdGhpcy5fbGVmdD1OYU4sdGhpcy5fd2lkdGg9TmFOLHRoaXMuX2hlaWdodD1OYU4sdGhpcy5fbWluV2lkdGg9MCx0aGlzLl9taW5IZWlnaHQ9MCx0aGlzLl9tYXhXaWR0aD0xLzAsdGhpcy5fbWF4SGVpZ2h0PTEvMCx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLndpZGdldD10LHRoaXMud2lkZ2V0Lm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaXNwb3NlZCl7dGhpcy5fZGlzcG9zZWQ9ITA7dmFyIHQ9dGhpcy53aWRnZXQubm9kZS5zdHlsZTt0LnBvc2l0aW9uPSIiLHQudG9wPSIiLHQubGVmdD0iIix0LndpZHRoPSIiLHQuaGVpZ2h0PSIifX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtaW5XaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5XaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1pbkhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5IZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtYXhXaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhXaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1heEhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhIZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNIaWRkZW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNIaWRkZW59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNWaXNpYmxlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndpZGdldC5pc0F0dGFjaGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZpdD1mdW5jdGlvbigpe3ZhciB0PXIuRWxlbWVudEV4dC5zaXplTGltaXRzKHRoaXMud2lkZ2V0Lm5vZGUpO3RoaXMuX21pbldpZHRoPXQubWluV2lkdGgsdGhpcy5fbWluSGVpZ2h0PXQubWluSGVpZ2h0LHRoaXMuX21heFdpZHRoPXQubWF4V2lkdGgsdGhpcy5fbWF4SGVpZ2h0PXQubWF4SGVpZ2h0fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9TWF0aC5tYXgodGhpcy5fbWluV2lkdGgsTWF0aC5taW4obix0aGlzLl9tYXhXaWR0aCkpLHM9TWF0aC5tYXgodGhpcy5fbWluSGVpZ2h0LE1hdGgubWluKGksdGhpcy5fbWF4SGVpZ2h0KSk7aWYocjxuKXN3aXRjaChjLmdldEhvcml6b250YWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlImxlZnQiOmJyZWFrO2Nhc2UiY2VudGVyIjp0Kz0obi1yKS8yO2JyZWFrO2Nhc2UicmlnaHQiOnQrPW4tcjticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1pZihzPGkpc3dpdGNoKGMuZ2V0VmVydGljYWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlInRvcCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmUrPShpLXMpLzI7YnJlYWs7Y2FzZSJib3R0b20iOmUrPWktczticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgYT0hMSxoPXRoaXMud2lkZ2V0Lm5vZGUuc3R5bGU7aWYodGhpcy5fdG9wIT09ZSYmKHRoaXMuX3RvcD1lLGgudG9wPWUrInB4IiksdGhpcy5fbGVmdCE9PXQmJih0aGlzLl9sZWZ0PXQsaC5sZWZ0PXQrInB4IiksdGhpcy5fd2lkdGghPT1yJiYoYT0hMCx0aGlzLl93aWR0aD1yLGgud2lkdGg9cisicHgiKSx0aGlzLl9oZWlnaHQhPT1zJiYoYT0hMCx0aGlzLl9oZWlnaHQ9cyxoLmhlaWdodD1zKyJweCIpLGEpe3ZhciBsPW5ldyB1LldpZGdldC5SZXNpemVNZXNzYWdlKHIscyk7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLndpZGdldCxsKX19LHR9KCk7ZS5MYXlvdXRJdGVtPWwsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0LnBhcmVudCYmdC5wYXJlbnQubGF5b3V0JiZ0LnBhcmVudC51cGRhdGUoKX10Lmhvcml6b250YWxBbGlnbm1lbnRQcm9wZXJ0eT1uZXcgcy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJob3Jpem9udGFsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4iY2VudGVyIn0sY2hhbmdlZDplfSksdC52ZXJ0aWNhbEFsaWdubWVudFByb3BlcnR5PW5ldyBzLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6InZlcnRpY2FsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4idG9wIn0sY2hhbmdlZDplfSl9KGh8fChoPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpLGE9bigxNiksdT1uKDU3KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25TdHlsZU1vZGVsIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246dS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZS5zdHlsZVByb3BlcnRpZXM9e2Rlc2NyaXB0aW9uX3dpZHRoOntzZWxlY3RvcjoiLndpZGdldC1sYWJlbCIsYXR0cmlidXRlOiJ3aWR0aCIsZGVmYXVsdDpudWxsfX0sZX0ocy5TdHlsZU1vZGVsKTtlLkRlc2NyaXB0aW9uU3R5bGVNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbmFtZToiRGVzY3JpcHRpb25WaWV3Iixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOnUuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjp1LkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixkZXNjcmlwdGlvbjoiIixkZXNjcmlwdGlvbl90b29sdGlwOm51bGx9KX0sZX0ocy5ET01XaWRnZXRNb2RlbCk7ZS5EZXNjcmlwdGlvbk1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxhYmVsKSx0aGlzLmxhYmVsLmNsYXNzTmFtZT0id2lkZ2V0LWxhYmVsIix0aGlzLmxhYmVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmRlc2NyaXB0aW9uIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpkZXNjcmlwdGlvbl90b29sdGlwIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCl9LGUucHJvdG90eXBlLnR5cGVzZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEudHlwZXNldCh0LGUpfSl9LGUucHJvdG90eXBlLnVwZGF0ZURlc2NyaXB0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb25fdG9vbHRpcCIpO251bGw9PT1lJiYoZT10KSwwPT09dC5sZW5ndGg/dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSJub25lIjoodGhpcy5sYWJlbC5pbm5lckhUTUw9dCx0aGlzLnR5cGVzZXQodGhpcy5sYWJlbCksdGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmxhYmVsLnRpdGxlPWV9LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5EZXNjcmlwdGlvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGV9KGgpO2UuTGFiZWxlZERPTVdpZGdldE1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkxhYmVsZWRET01XaWRnZXRWaWV3PWZ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0Mykscj1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKG4pO3JldHVybiBlfTt0LmV4cG9ydHM9bDt2YXIgbz1uKDMyKTtvLmluaGVyaXRzPW4oMCk7dmFyIHM9big4NSksYT1uKDYyKTtvLmluaGVyaXRzKGwscyk7Zm9yKHZhciB1PXIoYS5wcm90b3R5cGUpLGM9MDtjPHUubGVuZ3RoO2MrKyl7dmFyIGg9dVtjXTtsLnByb3RvdHlwZVtoXXx8KGwucHJvdG90eXBlW2hdPWEucHJvdG90eXBlW2hdKX1mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbCh0KTtzLmNhbGwodGhpcyx0KSxhLmNhbGwodGhpcyx0KSx0JiYhMT09PXQucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSx0JiYhMT09PXQud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsdCYmITE9PT10LmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEpLHRoaXMub25jZSgiZW5kIixkKX1mdW5jdGlvbiBkKCl7dGhpcy5hbGxvd0hhbGZPcGVufHx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxpLm5leHRUaWNrKGYsdGhpcyl9ZnVuY3Rpb24gZih0KXt0LmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQpfSxzZXQ6ZnVuY3Rpb24odCl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXQsdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSksbC5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odCxlKXt0aGlzLnB1c2gobnVsbCksdGhpcy5lbmQoKSxpLm5leHRUaWNrKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4MSksYT1uKDI2KSx1PW4oMjMxKSxjPW4oMjk4KTtlLmRpZmZlcmVuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1lLmluZGV4T2YodCl9KX0sZS5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUodCxlKX0sZS5hc3NpZ249T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgaSBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpJiYodFtpXT1uW2ldKX1yZXR1cm4gdH0sZS51dWlkPWZ1bmN0aW9uKCl7cmV0dXJuIGEuVVVJRC51dWlkNCgpfTt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4saSl7dmFyIHI9dC5jYWxsKHRoaXMsbil8fHRoaXM7cmV0dXJuIGNvbnNvbGUud2FybigiV3JhcHBlZEVycm9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQhIiksci5lcnJvcl9zdGFjaz1pIGluc3RhbmNlb2YgZT9pLmVycm9yX3N0YWNrOltpXSxyLmVycm9yX3N0YWNrLnB1c2gocikscn1yZXR1cm4gcihlLHQpLGV9KEVycm9yKTtlLldyYXBwZWRFcnJvcj1oLGUucmVzb2x2ZVByb21pc2VzRGljdD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyh0KSxuPVtdO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7bi5wdXNoKHRbZV0pfSksUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbihuKXt0PXt9O2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXRbZVtpXV09bltpXTtyZXR1cm4gdH0pfSxlLnJlamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aHJvdyBlJiZjb25zb2xlLmVycm9yKG5ldyBFcnJvcih0KSksbn19LGUucHV0X2J1ZmZlcnM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXtmb3IodmFyIHI9ZVtpXSxvPXQscz0wO3M8ci5sZW5ndGgtMTtzKyspbz1vW3Jbc11dO29bcltyLmxlbmd0aC0xXV09bltpXX19LGUucmVtb3ZlX2J1ZmZlcnM9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1bXTtyZXR1cm57c3RhdGU6ZnVuY3Rpb24gdChpLHIpe2lmKGkudG9KU09OJiYoaT1pLnRvSlNPTigpKSxBcnJheS5pc0FycmF5KGkpKWZvcih2YXIgcz0hMSxhPTA7YTxpLmxlbmd0aDthKyspKGg9aVthXSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9aS5zbGljZSgpLHM9ITApLGUucHVzaChBcnJheUJ1ZmZlci5pc1ZpZXcoaCk/aC5idWZmZXI6aCksbi5wdXNoKHIuY29uY2F0KFthXSkpLGlbYV09bnVsbCk6KGw9dChoLHIuY29uY2F0KFthXSkpKSE9PWgmJihzfHwoaT1pLnNsaWNlKCkscz0hMCksaVthXT1sKSk7ZWxzZSBpZihjKGkpKWZvcih2YXIgdSBpbiBpKXt2YXIgaCxsO3M9ITEsaS5oYXNPd25Qcm9wZXJ0eSh1KSYmKGg9aVt1XSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9byh7fSxpKSxzPSEwKSxlLnB1c2goQXJyYXlCdWZmZXIuaXNWaWV3KGgpP2guYnVmZmVyOmgpLG4ucHVzaChyLmNvbmNhdChbdV0pKSxkZWxldGUgaVt1XSk6KGw9dChoLHIuY29uY2F0KFt1XSkpKSE9PWgmJihzfHwoaT1vKHt9LGkpLHM9ITApLGlbdV09bCkpfXJldHVybiBpfSh0LFtdKSxidWZmZXJzOmUsYnVmZmVyX3BhdGhzOm59fTt2YXIgbD1bIjAwIiwiMDEiLCIwMiIsIjAzIiwiMDQiLCIwNSIsIjA2IiwiMDciLCIwOCIsIjA5IiwiMEEiLCIwQiIsIjBDIiwiMEQiLCIwRSIsIjBGIiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyIsIjE4IiwiMTkiLCIxQSIsIjFCIiwiMUMiLCIxRCIsIjFFIiwiMUYiLCIyMCIsIjIxIiwiMjIiLCIyMyIsIjI0IiwiMjUiLCIyNiIsIjI3IiwiMjgiLCIyOSIsIjJBIiwiMkIiLCIyQyIsIjJEIiwiMkUiLCIyRiIsIjMwIiwiMzEiLCIzMiIsIjMzIiwiMzQiLCIzNSIsIjM2IiwiMzciLCIzOCIsIjM5IiwiM0EiLCIzQiIsIjNDIiwiM0QiLCIzRSIsIjNGIiwiNDAiLCI0MSIsIjQyIiwiNDMiLCI0NCIsIjQ1IiwiNDYiLCI0NyIsIjQ4IiwiNDkiLCI0QSIsIjRCIiwiNEMiLCI0RCIsIjRFIiwiNEYiLCI1MCIsIjUxIiwiNTIiLCI1MyIsIjU0IiwiNTUiLCI1NiIsIjU3IiwiNTgiLCI1OSIsIjVBIiwiNUIiLCI1QyIsIjVEIiwiNUUiLCI1RiIsIjYwIiwiNjEiLCI2MiIsIjYzIiwiNjQiLCI2NSIsIjY2IiwiNjciLCI2OCIsIjY5IiwiNkEiLCI2QiIsIjZDIiwiNkQiLCI2RSIsIjZGIiwiNzAiLCI3MSIsIjcyIiwiNzMiLCI3NCIsIjc1IiwiNzYiLCI3NyIsIjc4IiwiNzkiLCI3QSIsIjdCIiwiN0MiLCI3RCIsIjdFIiwiN0YiLCI4MCIsIjgxIiwiODIiLCI4MyIsIjg0IiwiODUiLCI4NiIsIjg3IiwiODgiLCI4OSIsIjhBIiwiOEIiLCI4QyIsIjhEIiwiOEUiLCI4RiIsIjkwIiwiOTEiLCI5MiIsIjkzIiwiOTQiLCI5NSIsIjk2IiwiOTciLCI5OCIsIjk5IiwiOUEiLCI5QiIsIjlDIiwiOUQiLCI5RSIsIjlGIiwiQTAiLCJBMSIsIkEyIiwiQTMiLCJBNCIsIkE1IiwiQTYiLCJBNyIsIkE4IiwiQTkiLCJBQSIsIkFCIiwiQUMiLCJBRCIsIkFFIiwiQUYiLCJCMCIsIkIxIiwiQjIiLCJCMyIsIkI0IiwiQjUiLCJCNiIsIkI3IiwiQjgiLCJCOSIsIkJBIiwiQkIiLCJCQyIsIkJEIiwiQkUiLCJCRiIsIkMwIiwiQzEiLCJDMiIsIkMzIiwiQzQiLCJDNSIsIkM2IiwiQzciLCJDOCIsIkM5IiwiQ0EiLCJDQiIsIkNDIiwiQ0QiLCJDRSIsIkNGIiwiRDAiLCJEMSIsIkQyIiwiRDMiLCJENCIsIkQ1IiwiRDYiLCJENyIsIkQ4IiwiRDkiLCJEQSIsIkRCIiwiREMiLCJERCIsIkRFIiwiREYiLCJFMCIsIkUxIiwiRTIiLCJFMyIsIkU0IiwiRTUiLCJFNiIsIkU3IiwiRTgiLCJFOSIsIkVBIiwiRUIiLCJFQyIsIkVEIiwiRUUiLCJFRiIsIkYwIiwiRjEiLCJGMiIsIkYzIiwiRjQiLCJGNSIsIkY2IiwiRjciLCJGOCIsIkY5IiwiRkEiLCJGQiIsIkZDIiwiRkQiLCJGRSIsIkZGIl07ZS5idWZmZXJUb0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCksbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspbi5wdXNoKGxbZVtpXV0pO3JldHVybiBuLmpvaW4oIiIpfSxlLmhleFRvQnVmZmVyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aC8yKSxuPTA7bjx0Lmxlbmd0aDtuKz0yKWVbbi8yXT1wYXJzZUludCh0LnNsaWNlKG4sbisyKSwxNik7cmV0dXJuIGUuYnVmZmVyfSxlLmJ1ZmZlclRvQmFzZTY0PWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb21CeXRlQXJyYXkobmV3IFVpbnQ4QXJyYXkodCkpfSxlLmJhc2U2NFRvQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBzLnRvQnl0ZUFycmF5KHQpLmJ1ZmZlcn19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE0MikpLGkobigxNDMpKSxpKG4oMTQ0KSksaShuKDgyKSksaShuKDIyOSkpLGkobigyMzApKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpKXt2YXIgcj1uKDEpLkJ1ZmZlcixvPWUuY3J5cHRvfHxlLm1zQ3J5cHRvO28mJm8uZ2V0UmFuZG9tVmFsdWVzP3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe2lmKHQ+NjU1MzYpdGhyb3cgbmV3IEVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIHM9bmV3IGUuVWludDhBcnJheSh0KTt0PjAmJm8uZ2V0UmFuZG9tVmFsdWVzKHMpO3ZhciBhPXIuZnJvbShzLmJ1ZmZlcik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXtuKG51bGwsYSl9KTtyZXR1cm4gYX06dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSl7dGhpcy5fYmxvY2s9aS5hbGxvYyh0KSx0aGlzLl9maW5hbFNpemU9ZSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9sZW49MH1yLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09dHlwZW9mIHQmJihlPWV8fCJ1dGY4Iix0PWkuZnJvbSh0LGUpKTtmb3IodmFyIG49dGhpcy5fYmxvY2sscj10aGlzLl9ibG9ja1NpemUsbz10Lmxlbmd0aCxzPXRoaXMuX2xlbixhPTA7YTxvOyl7Zm9yKHZhciB1PXMlcixjPU1hdGgubWluKG8tYSxyLXUpLGg9MDtoPGM7aCsrKW5bdStoXT10W2EraF07YSs9Yywocys9Yyklcj09MCYmdGhpcy5fdXBkYXRlKG4pfXJldHVybiB0aGlzLl9sZW4rPW8sdGhpc30sci5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxlKzEpLGU+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIG49OCp0aGlzLl9sZW47aWYobjw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKG4sdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIGk9KDQyOTQ5NjcyOTUmbik+Pj4wLHI9KG4taSkvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHIsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoaSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgbz10aGlzLl9oYXNoKCk7cmV0dXJuIHQ/by50b1N0cmluZyh0KTpvfSxyLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI0NSkscj1uKDI1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0LGUpO3JldHVybiBpKG4pP246dm9pZCAwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fcGlkPWkubmV4dFBJRCgpLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5fY3JlYXRlPXQuY3JlYXRlLHRoaXMuX2NvZXJjZT10LmNvZXJjZXx8bnVsbCx0aGlzLl9jb21wYXJlPXQuY29tcGFyZXx8bnVsbCx0aGlzLl9jaGFuZ2VkPXQuY2hhbmdlZHx8bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPWkuZW5zdXJlTWFwKHQpO3JldHVybiB0aGlzLl9waWQgaW4gZT9lW3RoaXMuX3BpZF06ZVt0aGlzLl9waWRdPXRoaXMuX2NyZWF0ZVZhbHVlKHQpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWkuZW5zdXJlTWFwKHQpO249dGhpcy5fcGlkIGluIHI/clt0aGlzLl9waWRdOnJbdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgbz10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsbixyW3RoaXMuX3BpZF09byl9LHQucHJvdG90eXBlLmNvZXJjZT1mdW5jdGlvbih0KXt2YXIgZSxuPWkuZW5zdXJlTWFwKHQpO2U9dGhpcy5fcGlkIGluIG4/blt0aGlzLl9waWRdOm5bdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgcj10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsZSxuW3RoaXMuX3BpZF09cil9LHQucHJvdG90eXBlLl9jcmVhdGVWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLl9jcmVhdGUpKHQpfSx0LnByb3RvdHlwZS5fY29lcmNlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb2VyY2U7cmV0dXJuIG4/bih0LGUpOmV9LHQucHJvdG90eXBlLl9jb21wYXJlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb21wYXJlO3JldHVybiBuP24odCxlKTp0PT09ZX0sdC5wcm90b3R5cGUuX21heWJlTm90aWZ5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9jaGFuZ2VkO2kmJiF0aGlzLl9jb21wYXJlVmFsdWUoZSxuKSYmaSh0LGUsbil9LHR9KCk7ZS5BdHRhY2hlZFByb3BlcnR5PXIsZnVuY3Rpb24odCl7dC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5vd25lckRhdGEuZGVsZXRlKHQpfX0ocj1lLkF0dGFjaGVkUHJvcGVydHl8fChlLkF0dGFjaGVkUHJvcGVydHk9e30pKSxlLkF0dGFjaGVkUHJvcGVydHk9cixmdW5jdGlvbih0KXt2YXIgZTt0Lm93bmVyRGF0YT1uZXcgV2Vha01hcCx0Lm5leHRQSUQ9KGU9MCxmdW5jdGlvbigpe3JldHVybiJwaWQtIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMikrIi0iK2UrK30pLHQuZW5zdXJlTWFwPWZ1bmN0aW9uKGUpe3ZhciBuPXQub3duZXJEYXRhLmdldChlKTtyZXR1cm4gbnx8KG49T2JqZWN0LmNyZWF0ZShudWxsKSx0Lm93bmVyRGF0YS5zZXQoZSxuKSxuKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oNTgpLG89big2NCkscz1uKDY1KSxhPW4oMjEpO2Z1bmN0aW9uIHUodCl7YS5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9dH1pKHUsYSksdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sdS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibWQ1Ij09PSh0PXQudG9Mb3dlckNhc2UoKSk/bmV3IHI6InJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/bmV3IG86bmV3IHUocyh0KSl9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1lLmlzQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheSh0KToiW29iamVjdCBBcnJheV0iPT09bih0KX0sZS5pc0Jvb2xlYW49ZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH0sZS5pc051bGw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fSxlLmlzTnVsbE9yVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fSxlLmlzTnVtYmVyPWZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdH0sZS5pc1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9LGUuaXNTeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fSxlLmlzVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10fSxlLmlzUmVnRXhwPWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09bih0KX0sZS5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fSxlLmlzRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1uKHQpfSxlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09PW4odCl8fHQgaW5zdGFuY2VvZiBFcnJvcn0sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxlLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8dm9pZCAwPT09dH0sZS5pc0J1ZmZlcj10LmlzQnVmZmVyfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLHI9bmV3IGUoaSksbz0wO288aTsrK28pcltvXT10W29dXm5bb107cmV0dXJuIHJ9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8oKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfWUuQmxvY2tIYXNoPW8sby5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYodD1pLnRvQXJyYXkodCxlKSx0aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nPXRoaXMucGVuZGluZy5jb25jYXQodCk6dGhpcy5wZW5kaW5nPXQsdGhpcy5wZW5kaW5nVG90YWwrPXQubGVuZ3RoLHRoaXMucGVuZGluZy5sZW5ndGg+PXRoaXMuX2RlbHRhOCl7dmFyIG49KHQ9dGhpcy5wZW5kaW5nKS5sZW5ndGgldGhpcy5fZGVsdGE4O3RoaXMucGVuZGluZz10LnNsaWNlKHQubGVuZ3RoLW4sdC5sZW5ndGgpLDA9PT10aGlzLnBlbmRpbmcubGVuZ3RoJiYodGhpcy5wZW5kaW5nPW51bGwpLHQ9aS5qb2luMzIodCwwLHQubGVuZ3RoLW4sdGhpcy5lbmRpYW4pO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cis9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUodCxyLHIrdGhpcy5fZGVsdGEzMil9cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGUodGhpcy5fcGFkKCkpLHIobnVsbD09PXRoaXMucGVuZGluZyksdGhpcy5fZGlnZXN0KHQpfSxvLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wZW5kaW5nVG90YWwsZT10aGlzLl9kZWx0YTgsbj1lLSh0K3RoaXMucGFkTGVuZ3RoKSVlLGk9bmV3IEFycmF5KG4rdGhpcy5wYWRMZW5ndGgpO2lbMF09MTI4O2Zvcih2YXIgcj0xO3I8bjtyKyspaVtyXT0wO2lmKHQ8PD0zLCJiaWciPT09dGhpcy5lbmRpYW4pe2Zvcih2YXIgbz04O288dGhpcy5wYWRMZW5ndGg7bysrKWlbcisrXT0wO2lbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+OCYyNTUsaVtyKytdPTI1NSZ0fWVsc2UgZm9yKGlbcisrXT0yNTUmdCxpW3IrK109dD4+PjgmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLG89ODtvPHRoaXMucGFkTGVuZ3RoO28rKylpW3IrK109MDtyZXR1cm4gaX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuYmlnbnVtPW4oMyksaS5kZWZpbmU9bigyMTApLmRlZmluZSxpLmJhc2U9bigzNiksaS5jb25zdGFudHM9bigxMTEpLGkuZGVjb2RlcnM9bigyMTYpLGkuZW5jb2RlcnM9bigyMTgpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLlJlcG9ydGVyPW4oMjEzKS5SZXBvcnRlcixpLkRlY29kZXJCdWZmZXI9bigxMTApLkRlY29kZXJCdWZmZXIsaS5FbmNvZGVyQnVmZmVyPW4oMTEwKS5FbmNvZGVyQnVmZmVyLGkuTm9kZT1uKDIxNCl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPW4oMjQ2KSxvPW4oMjQ3KSxzPSJbb2JqZWN0IE51bGxdIixhPSJbb2JqZWN0IFVuZGVmaW5lZF0iLHU9aT9pLnRvU3RyaW5nVGFnOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9hOnM6dSYmdSBpbiBPYmplY3QodCk/cih0KTpvKHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDQwKSksaShuKDc2KSksaShuKDMyMikpLGkobigzMjMpKSxpKG4oMzI0KSksaShuKDEzMikpLGkobigzMjUpKSxpKG4oMzI2KSksaShuKDMyNykpLGkobigyMikpLGkobigxMzEpKSxpKG4oMzI4KSksaShuKDU0KSksaShuKDQxKSksaShuKDMyOSkpLGkobigzMzApKSxpKG4oMTMzKSksaShuKDMzMSkpLGkobigxMzQpKSxpKG4oMTM1KSksaShuKDgwKSksaShuKDMzMikpLGkobig3NykpLGkobig3KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zaXplSGludD0wLHRoaXMubWluU2l6ZT0wLHRoaXMubWF4U2l6ZT0xLzAsdGhpcy5zdHJldGNoPTEsdGhpcy5zaXplPTAsdGhpcy5kb25lPSExfX0oKTtlLkJveFNpemVyPWksZnVuY3Rpb24odCl7dC5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5sZW5ndGg7aWYoMD09PW4pcmV0dXJuIGU7Zm9yKHZhciBpPTAscj0wLG89MCxzPTAsYT0wLHU9MDt1PG47Kyt1KXt2YXIgYz0odj10W3VdKS5taW5TaXplLGg9di5tYXhTaXplLGw9di5zaXplSGludDt2LmRvbmU9ITEsdi5zaXplPU1hdGgubWF4KGMsTWF0aC5taW4obCxoKSksbys9di5zaXplLGkrPWMscis9aCx2LnN0cmV0Y2g+MCYmKHMrPXYuc3RyZXRjaCxhKyspfWlmKGU9PT1vKXJldHVybiAwO2lmKGU8PWkpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWluU2l6ZTtyZXR1cm4gZS1pfWlmKGU+PXIpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWF4U2l6ZTtyZXR1cm4gZS1yfXZhciBkPW47aWYoZTxvKXtmb3IodmFyIGY9by1lO2E+MCYmZj4uMDE7KXt2YXIgcD1mLG09cztmb3IodT0wO3U8bjsrK3UpaWYoISh2PXRbdV0pLmRvbmUmJjAhPT12LnN0cmV0Y2gpe3ZhciBnPXYuc3RyZXRjaCpwL207di5zaXplLWc8PXYubWluU2l6ZT8oZi09di5zaXplLXYubWluU2l6ZSxzLT12LnN0cmV0Y2gsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tLGEtLSk6KGYtPWcsdi5zaXplLT1nKX19Zm9yKDtkPjAmJmY+LjAxOylmb3IoZz1mL2QsdT0wO3U8bjsrK3UpKHY9dFt1XSkuZG9uZXx8KHYuc2l6ZS1nPD12Lm1pblNpemU/KGYtPXYuc2l6ZS12Lm1pblNpemUsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tKTooZi09Zyx2LnNpemUtPWcpKX1lbHNle2ZvcihmPWUtbzthPjAmJmY+LjAxOylmb3IocD1mLG09cyx1PTA7dTxuOysrdSkodj10W3VdKS5kb25lfHwwPT09di5zdHJldGNofHwoZz12LnN0cmV0Y2gqcC9tLHYuc2l6ZStnPj12Lm1heFNpemU/KGYtPXYubWF4U2l6ZS12LnNpemUscy09di5zdHJldGNoLHYuc2l6ZT12Lm1heFNpemUsdi5kb25lPSEwLGQtLSxhLS0pOihmLT1nLHYuc2l6ZSs9ZykpO2Zvcig7ZD4wJiZmPi4wMTspZm9yKGc9Zi9kLHU9MDt1PG47Kyt1KXt2YXIgdjsodj10W3VdKS5kb25lfHwodi5zaXplK2c+PXYubWF4U2l6ZT8oZi09di5tYXhTaXplLXYuc2l6ZSx2LnNpemU9di5tYXhTaXplLHYuZG9uZT0hMCxkLS0pOihmLT1nLHYuc2l6ZSs9ZykpfX1yZXR1cm4gMH0sdC5hZGp1c3Q9ZnVuY3Rpb24odCxlLG4pezAhPT10Lmxlbmd0aCYmMCE9PW4mJihuPjA/ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9MDtyPD1lOysrcil7dmFyIG89dFtyXTtpKz1vLm1heFNpemUtby5zaXplfWZvcih2YXIgcz0wLHI9ZSsxLGE9dC5sZW5ndGg7cjxhOysrcil7dmFyIG89dFtyXTtzKz1vLnNpemUtby5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxzKSxyPWU7cj49MCYmdT4wOy0tcil7dmFyIG89dFtyXSxjPW8ubWF4U2l6ZS1vLnNpemU7Yz49dT8oby5zaXplSGludD1vLnNpemUrdSx1PTApOihvLnNpemVIaW50PW8uc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZSsxLGE9dC5sZW5ndGg7cjxhJiZoPjA7KytyKXt2YXIgbz10W3JdLGM9by5zaXplLW8ubWluU2l6ZTtjPj1oPyhvLnNpemVIaW50PW8uc2l6ZS1oLGg9MCk6KG8uc2l6ZUhpbnQ9by5zaXplLWMsaC09Yyl9fSh0LGUsbik6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9ZSsxLG89dC5sZW5ndGg7cjxvOysrcil7dmFyIHM9dFtyXTtpKz1zLm1heFNpemUtcy5zaXplfWZvcih2YXIgYT0wLHI9MDtyPD1lOysrcil7dmFyIHM9dFtyXTthKz1zLnNpemUtcy5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxhKSxyPWUrMSxvPXQubGVuZ3RoO3I8byYmdT4wOysrcil7dmFyIHM9dFtyXSxjPXMubWF4U2l6ZS1zLnNpemU7Yz49dT8ocy5zaXplSGludD1zLnNpemUrdSx1PTApOihzLnNpemVIaW50PXMuc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZTtyPj0wJiZoPjA7LS1yKXt2YXIgcz10W3JdLGM9cy5zaXplLXMubWluU2l6ZTtjPj1oPyhzLnNpemVIaW50PXMuc2l6ZS1oLGg9MCk6KHMuc2l6ZUhpbnQ9cy5zaXplLWMsaC09Yyl9fSh0LGUsLW4pKX19KGUuQm94RW5naW5lfHwoZS5Cb3hFbmdpbmU9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyKSxzPW4oNSksYT1uKDIyKSx1PW4oNyksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl93aWRnZXRzPVtdLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl93aWRnZXRzLmxlbmd0aD4wOyl0aGlzLl93aWRnZXRzLnBvcCgpLmRpc3Bvc2UoKTt0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gby5pdGVyKHRoaXMuX3dpZGdldHMpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy5fd2lkZ2V0cy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbih0LGUpe2UucGFyZW50PXRoaXMucGFyZW50O3ZhciBuPXRoaXMuX3dpZGdldHMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl93aWRnZXRzLmxlbmd0aCkpO2lmKC0xPT09bilyZXR1cm4gby5BcnJheUV4dC5pbnNlcnQodGhpcy5fd2lkZ2V0cyxpLGUpLHZvaWQodGhpcy5wYXJlbnQmJnRoaXMuYXR0YWNoV2lkZ2V0KGksZSkpO2k9PT10aGlzLl93aWRnZXRzLmxlbmd0aCYmaS0tLG4hPT1pJiYoby5BcnJheUV4dC5tb3ZlKHRoaXMuX3dpZGdldHMsbixpKSx0aGlzLnBhcmVudCYmdGhpcy5tb3ZlV2lkZ2V0KG4saSxlKSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldEF0KHRoaXMuX3dpZGdldHMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldEF0PWZ1bmN0aW9uKHQpe3ZhciBlPW8uQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fd2lkZ2V0cyx0KTtlJiZ0aGlzLnBhcmVudCYmdGhpcy5kZXRhY2hXaWRnZXQodCxlKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQsbil7ZS5hdHRhY2hXaWRnZXQobix0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnBhcmVudC5ub2RlLmNoaWxkcmVuW3RdO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmluc2VydEJlZm9yZShlLm5vZGUsbiksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHUuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKG4ubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShuLHUuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCk7dmFyIGk9dGhpcy5wYXJlbnQubm9kZS5jaGlsZHJlbltlXTt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKG4sdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5pbnNlcnRCZWZvcmUobi5ub2RlLGkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdS5XaWRnZXQuTXNnLkJlZm9yZURldGFjaCksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQWZ0ZXJEZXRhY2gpfSxlfShhLkxheW91dCk7ZS5QYW5lbExheW91dD1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvO3I9W24oMTUpXSx2b2lkIDA9PT0obz0iZnVuY3Rpb24iPT10eXBlb2YoaT1mdW5jdGlvbih0KXtyZXR1cm4gdC51aT10LnVpfHx7fSx0LnVpLnZlcnNpb249IjEuMTIuMSJ9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUpeyFlLnZlcnNpb258fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjAuIil8fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjEuIikmJjAhPT1lLnZlcnNpb24uaW5kZXhPZigidjEuOC4iKT90LmV4cG9ydHM9e25leHRUaWNrOmZ1bmN0aW9uKHQsbixpLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYWxsYmFjayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7dmFyIG8scyxhPWFyZ3VtZW50cy5sZW5ndGg7c3dpdGNoKGEpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIGUubmV4dFRpY2sodCk7Y2FzZSAyOnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbil9KTtjYXNlIDM6cmV0dXJuIGUubmV4dFRpY2soZnVuY3Rpb24oKXt0LmNhbGwobnVsbCxuLGkpfSk7Y2FzZSA0OnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbixpLHIpfSk7ZGVmYXVsdDpmb3Iobz1uZXcgQXJyYXkoYS0xKSxzPTA7czxvLmxlbmd0aDspb1tzKytdPWFyZ3VtZW50c1tzXTtyZXR1cm4gZS5uZXh0VGljayhmdW5jdGlvbigpe3QuYXBwbHkobnVsbCxvKX0pfX19OnQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0KXt2YXIgaT12b2lkIDAhPT10JiZ0fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHdpbmRvdyxyPUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTtmdW5jdGlvbiBvKHQsZSl7dGhpcy5faWQ9dCx0aGlzLl9jbGVhckZuPWV9ZS5zZXRUaW1lb3V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRUaW1lb3V0LGksYXJndW1lbnRzKSxjbGVhclRpbWVvdXQpfSxlLnNldEludGVydmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRJbnRlcnZhbCxpLGFyZ3VtZW50cyksY2xlYXJJbnRlcnZhbCl9LGUuY2xlYXJUaW1lb3V0PWUuY2xlYXJJbnRlcnZhbD1mdW5jdGlvbih0KXt0JiZ0LmNsb3NlKCl9LG8ucHJvdG90eXBlLnVucmVmPW8ucHJvdG90eXBlLnJlZj1mdW5jdGlvbigpe30sby5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckZuLmNhbGwoaSx0aGlzLl9pZCl9LGUuZW5yb2xsPWZ1bmN0aW9uKHQsZSl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PWV9LGUudW5lbnJvbGw9ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PS0xfSxlLl91bnJlZkFjdGl2ZT1lLmFjdGl2ZT1mdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCk7dmFyIGU9dC5faWRsZVRpbWVvdXQ7ZT49MCYmKHQuX2lkbGVUaW1lb3V0SWQ9c2V0VGltZW91dChmdW5jdGlvbigpe3QuX29uVGltZW91dCYmdC5fb25UaW1lb3V0KCl9LGUpKX0sbigxNTApLGUuc2V0SW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5zZXRJbW1lZGlhdGV8fHZvaWQgMCE9PXQmJnQuc2V0SW1tZWRpYXRlfHx0aGlzJiZ0aGlzLnNldEltbWVkaWF0ZSxlLmNsZWFySW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jbGVhckltbWVkaWF0ZXx8dm9pZCAwIT09dCYmdC5jbGVhckltbWVkaWF0ZXx8dGhpcyYmdGhpcy5jbGVhckltbWVkaWF0ZX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQpe2kuaXNCdWZmZXIodCl8fCh0PWkuZnJvbSh0KSk7Zm9yKHZhciBlPXQubGVuZ3RoLzR8MCxuPW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXQucmVhZFVJbnQzMkJFKDQqcik7cmV0dXJuIG59ZnVuY3Rpb24gbyh0KXtmb3IoOzA8dC5sZW5ndGg7dCsrKXRbMF09MH1mdW5jdGlvbiBzKHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGM9blswXSxoPW5bMV0sbD1uWzJdLGQ9blszXSxmPXRbMF1eZVswXSxwPXRbMV1eZVsxXSxtPXRbMl1eZVsyXSxnPXRbM11eZVszXSx2PTQsYj0xO2I8cjtiKyspbz1jW2Y+Pj4yNF1eaFtwPj4+MTYmMjU1XV5sW20+Pj44JjI1NV1eZFsyNTUmZ11eZVt2KytdLHM9Y1twPj4+MjRdXmhbbT4+PjE2JjI1NV1ebFtnPj4+OCYyNTVdXmRbMjU1JmZdXmVbdisrXSxhPWNbbT4+PjI0XV5oW2c+Pj4xNiYyNTVdXmxbZj4+PjgmMjU1XV5kWzI1NSZwXV5lW3YrK10sdT1jW2c+Pj4yNF1eaFtmPj4+MTYmMjU1XV5sW3A+Pj44JjI1NV1eZFsyNTUmbV1eZVt2KytdLGY9byxwPXMsbT1hLGc9dTtyZXR1cm4gbz0oaVtmPj4+MjRdPDwyNHxpW3A+Pj4xNiYyNTVdPDwxNnxpW20+Pj44JjI1NV08PDh8aVsyNTUmZ10pXmVbdisrXSxzPShpW3A+Pj4yNF08PDI0fGlbbT4+PjE2JjI1NV08PDE2fGlbZz4+PjgmMjU1XTw8OHxpWzI1NSZmXSleZVt2KytdLGE9KGlbbT4+PjI0XTw8MjR8aVtnPj4+MTYmMjU1XTw8MTZ8aVtmPj4+OCYyNTVdPDw4fGlbMjU1JnBdKV5lW3YrK10sdT0oaVtnPj4+MjRdPDwyNHxpW2Y+Pj4xNiYyNTVdPDwxNnxpW3A+Pj44JjI1NV08PDh8aVsyNTUmbV0pXmVbdisrXSxbbz4+Pj0wLHM+Pj49MCxhPj4+PTAsdT4+Pj0wXX12YXIgYT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMjU2KSxlPTA7ZTwyNTY7ZSsrKXRbZV09ZTwxMjg/ZTw8MTplPDwxXjI4Mztmb3IodmFyIG49W10saT1bXSxyPVtbXSxbXSxbXSxbXV0sbz1bW10sW10sW10sW11dLHM9MCxhPTAsdT0wO3U8MjU2OysrdSl7dmFyIGM9YV5hPDwxXmE8PDJeYTw8M15hPDw0O2M9Yz4+PjheMjU1JmNeOTksbltzXT1jLGlbY109czt2YXIgaD10W3NdLGw9dFtoXSxkPXRbbF0sZj0yNTcqdFtjXV4xNjg0MzAwOCpjO3JbMF1bc109Zjw8MjR8Zj4+PjgsclsxXVtzXT1mPDwxNnxmPj4+MTYsclsyXVtzXT1mPDw4fGY+Pj4yNCxyWzNdW3NdPWYsZj0xNjg0MzAwOSpkXjY1NTM3KmxeMjU3KmheMTY4NDMwMDgqcyxvWzBdW2NdPWY8PDI0fGY+Pj44LG9bMV1bY109Zjw8MTZ8Zj4+PjE2LG9bMl1bY109Zjw8OHxmPj4+MjQsb1szXVtjXT1mLDA9PT1zP3M9YT0xOihzPWhedFt0W3RbZF5oXV1dLGFePXRbdFthXV0pfXJldHVybntTQk9YOm4sSU5WX1NCT1g6aSxTVUJfTUlYOnIsSU5WX1NVQl9NSVg6b319KCk7ZnVuY3Rpb24gYyh0KXt0aGlzLl9rZXk9cih0KSx0aGlzLl9yZXNldCgpfWMuYmxvY2tTaXplPTE2LGMua2V5U2l6ZT0zMixjLnByb3RvdHlwZS5ibG9ja1NpemU9Yy5ibG9ja1NpemUsYy5wcm90b3R5cGUua2V5U2l6ZT1jLmtleVNpemUsYy5wcm90b3R5cGUuX3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQubGVuZ3RoLG49ZSs2LGk9NCoobisxKSxyPVtdLG89MDtvPGU7bysrKXJbb109dFtvXTtmb3Iobz1lO288aTtvKyspe3ZhciBzPXJbby0xXTtvJWU9PTA/KHM9czw8OHxzPj4+MjQscz11LlNCT1hbcz4+PjI0XTw8MjR8dS5TQk9YW3M+Pj4xNiYyNTVdPDwxNnx1LlNCT1hbcz4+PjgmMjU1XTw8OHx1LlNCT1hbMjU1JnNdLHNePWFbby9lfDBdPDwyNCk6ZT42JiZvJWU9PTQmJihzPXUuU0JPWFtzPj4+MjRdPDwyNHx1LlNCT1hbcz4+PjE2JjI1NV08PDE2fHUuU0JPWFtzPj4+OCYyNTVdPDw4fHUuU0JPWFsyNTUmc10pLHJbb109cltvLWVdXnN9Zm9yKHZhciBjPVtdLGg9MDtoPGk7aCsrKXt2YXIgbD1pLWgsZD1yW2wtKGglND8wOjQpXTtjW2hdPWg8NHx8bDw9ND9kOnUuSU5WX1NVQl9NSVhbMF1bdS5TQk9YW2Q+Pj4yNF1dXnUuSU5WX1NVQl9NSVhbMV1bdS5TQk9YW2Q+Pj4xNiYyNTVdXV51LklOVl9TVUJfTUlYWzJdW3UuU0JPWFtkPj4+OCYyNTVdXV51LklOVl9TVUJfTUlYWzNdW3UuU0JPWFsyNTUmZF1dfXRoaXMuX25Sb3VuZHM9bix0aGlzLl9rZXlTY2hlZHVsZT1yLHRoaXMuX2ludktleVNjaGVkdWxlPWN9LGMucHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jhdz1mdW5jdGlvbih0KXtyZXR1cm4gcyh0PXIodCksdGhpcy5fa2V5U2NoZWR1bGUsdS5TVUJfTUlYLHUuU0JPWCx0aGlzLl9uUm91bmRzKX0sYy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KHQpLG49aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG4ud3JpdGVVSW50MzJCRShlWzBdLDApLG4ud3JpdGVVSW50MzJCRShlWzFdLDQpLG4ud3JpdGVVSW50MzJCRShlWzJdLDgpLG4ud3JpdGVVSW50MzJCRShlWzNdLDEyKSxufSxjLnByb3RvdHlwZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9cih0KSlbMV07dFsxXT10WzNdLHRbM109ZTt2YXIgbj1zKHQsdGhpcy5faW52S2V5U2NoZWR1bGUsdS5JTlZfU1VCX01JWCx1LklOVl9TQk9YLHRoaXMuX25Sb3VuZHMpLG89aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG8ud3JpdGVVSW50MzJCRShuWzBdLDApLG8ud3JpdGVVSW50MzJCRShuWzNdLDQpLG8ud3JpdGVVSW50MzJCRShuWzJdLDgpLG8ud3JpdGVVSW50MzJCRShuWzFdLDEyKSxvfSxjLnByb3RvdHlwZS5zY3J1Yj1mdW5jdGlvbigpe28odGhpcy5fa2V5U2NoZWR1bGUpLG8odGhpcy5faW52S2V5U2NoZWR1bGUpLG8odGhpcy5fa2V5KX0sdC5leHBvcnRzLkFFUz1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbyl7aWYoaS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsImJpbmFyeSIpKSxlJiYoaS5pc0J1ZmZlcihlKXx8KGU9aS5mcm9tKGUsImJpbmFyeSIpKSw4IT09ZS5sZW5ndGgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBzPW4vOCxhPWkuYWxsb2MocyksdT1pLmFsbG9jKG98fDApLGM9aS5hbGxvYygwKTtzPjB8fG8+MDspe3ZhciBoPW5ldyByO2gudXBkYXRlKGMpLGgudXBkYXRlKHQpLGUmJmgudXBkYXRlKGUpLGM9aC5kaWdlc3QoKTt2YXIgbD0wO2lmKHM+MCl7dmFyIGQ9YS5sZW5ndGgtcztsPU1hdGgubWluKHMsYy5sZW5ndGgpLGMuY29weShhLGQsMCxsKSxzLT1sfWlmKGw8Yy5sZW5ndGgmJm8+MCl7dmFyIGY9dS5sZW5ndGgtbyxwPU1hdGgubWluKG8sYy5sZW5ndGgtbCk7Yy5jb3B5KHUsZixsLGwrcCksby09cH19cmV0dXJuIGMuZmlsbCgwKSx7a2V5OmEsaXY6dX19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC53ZWJwYWNrUG9seWZpbGx8fCh0LmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sdC5wYXRocz1bXSx0LmNoaWxkcmVufHwodC5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Lml9fSksdC53ZWJwYWNrUG9seWZpbGw9MSksdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtpLmJhc2U9bigxOTApLGkuc2hvcnQ9bigxOTEpLGkubW9udD1uKDE5MiksaS5lZHdhcmRzPW4oMTkzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDIwOSkscj1uKDIyMSksbz1uKDIyMikscz1uKDY3KSxhPW4oOTQpO2Z1bmN0aW9uIHUodCl7dmFyIG47Im9iamVjdCIhPXR5cGVvZiB0fHxlLmlzQnVmZmVyKHQpfHwobj10LnBhc3NwaHJhc2UsdD10LmtleSksInN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgZSh0KSk7dmFyIHUsYyxoPW8odCxuKSxsPWgudGFnLGQ9aC5kYXRhO3N3aXRjaChsKXtjYXNlIkNFUlRJRklDQVRFIjpjPWkuY2VydGlmaWNhdGUuZGVjb2RlKGQsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKGN8fChjPWkuUHVibGljS2V5LmRlY29kZShkLCJkZXIiKSksdT1jLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGMuc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gYy5zdWJqZWN0UHJpdmF0ZUtleT1jLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixkYXRhOmN9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBjLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5cGU6ImRzYSIsZGF0YTpjLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK3UpfXRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgdHlwZSAiK2wpO2Nhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpkPWZ1bmN0aW9uKHQsbil7dmFyIGk9dC5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsbz1wYXJzZUludCh0LmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCksdT1yW3QuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxjPXQuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLml2LGg9dC5zdWJqZWN0UHJpdmF0ZUtleSxsPXBhcnNlSW50KHUuc3BsaXQoIi0iKVsxXSwxMCkvOCxkPWEucGJrZGYyU3luYyhuLGksbyxsKSxmPXMuY3JlYXRlRGVjaXBoZXJpdih1LGQsYykscD1bXTtyZXR1cm4gcC5wdXNoKGYudXBkYXRlKGgpKSxwLnB1c2goZi5maW5hbCgpKSxlLmNvbmNhdChwKX0oZD1pLkVuY3J5cHRlZFByaXZhdGVLZXkuZGVjb2RlKGQsImRlciIpLG4pO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaCh1PShjPWkuUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Yy5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTppLkVDUHJpdmF0ZUtleS5kZWNvZGUoYy5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIGMuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6Yy5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIit1KX10aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitsKTtjYXNlIlJTQSBQVUJMSUMgS0VZIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGQsImRlciIpO2Nhc2UiUlNBIFBSSVZBVEUgS0VZIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShkLCJkZXIiKTtjYXNlIkRTQSBQUklWQVRFIEtFWSI6cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOmkuRFNBUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIil9O2Nhc2UiRUMgUFJJVkFURSBLRVkiOnJldHVybntjdXJ2ZTooZD1pLkVDUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLnBhcmFtZXRlcnMudmFsdWUscHJpdmF0ZUtleTpkLnByaXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrbCl9fXQuZXhwb3J0cz11LHUuc2lnbmF0dXJlPWkuc2lnbmF0dXJlfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjM1KSxyPW4oMjM2KSxvPW4oMjM3KSxzPW4oMjM4KSxhPW4oMjM5KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExOCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoaSh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjkpKE9iamVjdCwiY3JlYXRlIik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fX2RhdGFfXztyZXR1cm4gaShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDQxKSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1QYW5lbCIpLG4ubGF5b3V0PW8uY3JlYXRlTGF5b3V0KGUpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIndpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuYWRkV2lkZ2V0KHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dC5pbnNlcnRXaWRnZXQodCxlKX0sZX0obig3KS5XaWRnZXQpO2UuUGFuZWw9YSxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyBzLlBhbmVsTGF5b3V0fX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMudHlwZT0idGV4dCIsdGhpcy5jb250ZW50PXR9fSgpO2UuVmlydHVhbFRleHQ9cjt2YXIgbyxzPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnR5cGU9ImVsZW1lbnQiLHRoaXMudGFnPXQsdGhpcy5hdHRycz1lLHRoaXMuY2hpbGRyZW49bn19KCk7ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9e30sbj1bXSxpPTEsbz1hcmd1bWVudHMubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPWFyZ3VtZW50c1tpXTsic3RyaW5nIj09dHlwZW9mIGE/bi5wdXNoKG5ldyByKGEpKTphIGluc3RhbmNlb2Ygcj9uLnB1c2goYSk6YSBpbnN0YW5jZW9mIHM/bi5wdXNoKGEpOmEgaW5zdGFuY2VvZiBBcnJheT91KG4sYSk6MT09PWkmJmEmJiJvYmplY3QiPT10eXBlb2YgYSYmKGU9YSl9cmV0dXJuIG5ldyBzKHQsZSxuKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bisrKXt2YXIgbz1pW25dOyJzdHJpbmciPT10eXBlb2Ygbz90LnB1c2gobmV3IHIobykpOm8gaW5zdGFuY2VvZiByP3QucHVzaChvKTpvIGluc3RhbmNlb2YgcyYmdC5wdXNoKG8pfX19ZS5WaXJ0dWFsRWxlbWVudD1zLGUuaD1hLGZ1bmN0aW9uKHQpe3QuYT10LmJpbmQodm9pZCAwLCJhIiksdC5hYmJyPXQuYmluZCh2b2lkIDAsImFiYnIiKSx0LmFkZHJlc3M9dC5iaW5kKHZvaWQgMCwiYWRkcmVzcyIpLHQuYXJlYT10LmJpbmQodm9pZCAwLCJhcmVhIiksdC5hcnRpY2xlPXQuYmluZCh2b2lkIDAsImFydGljbGUiKSx0LmFzaWRlPXQuYmluZCh2b2lkIDAsImFzaWRlIiksdC5hdWRpbz10LmJpbmQodm9pZCAwLCJhdWRpbyIpLHQuYj10LmJpbmQodm9pZCAwLCJiIiksdC5iZGk9dC5iaW5kKHZvaWQgMCwiYmRpIiksdC5iZG89dC5iaW5kKHZvaWQgMCwiYmRvIiksdC5ibG9ja3F1b3RlPXQuYmluZCh2b2lkIDAsImJsb2NrcXVvdGUiKSx0LmJyPXQuYmluZCh2b2lkIDAsImJyIiksdC5idXR0b249dC5iaW5kKHZvaWQgMCwiYnV0dG9uIiksdC5jYW52YXM9dC5iaW5kKHZvaWQgMCwiY2FudmFzIiksdC5jYXB0aW9uPXQuYmluZCh2b2lkIDAsImNhcHRpb24iKSx0LmNpdGU9dC5iaW5kKHZvaWQgMCwiY2l0ZSIpLHQuY29kZT10LmJpbmQodm9pZCAwLCJjb2RlIiksdC5jb2w9dC5iaW5kKHZvaWQgMCwiY29sIiksdC5jb2xncm91cD10LmJpbmQodm9pZCAwLCJjb2xncm91cCIpLHQuZGF0YT10LmJpbmQodm9pZCAwLCJkYXRhIiksdC5kYXRhbGlzdD10LmJpbmQodm9pZCAwLCJkYXRhbGlzdCIpLHQuZGQ9dC5iaW5kKHZvaWQgMCwiZGQiKSx0LmRlbD10LmJpbmQodm9pZCAwLCJkZWwiKSx0LmRmbj10LmJpbmQodm9pZCAwLCJkZm4iKSx0LmRpdj10LmJpbmQodm9pZCAwLCJkaXYiKSx0LmRsPXQuYmluZCh2b2lkIDAsImRsIiksdC5kdD10LmJpbmQodm9pZCAwLCJkdCIpLHQuZW09dC5iaW5kKHZvaWQgMCwiZW0iKSx0LmVtYmVkPXQuYmluZCh2b2lkIDAsImVtYmVkIiksdC5maWVsZHNldD10LmJpbmQodm9pZCAwLCJmaWVsZHNldCIpLHQuZmlnY2FwdGlvbj10LmJpbmQodm9pZCAwLCJmaWdjYXB0aW9uIiksdC5maWd1cmU9dC5iaW5kKHZvaWQgMCwiZmlndXJlIiksdC5mb290ZXI9dC5iaW5kKHZvaWQgMCwiZm9vdGVyIiksdC5mb3JtPXQuYmluZCh2b2lkIDAsImZvcm0iKSx0LmgxPXQuYmluZCh2b2lkIDAsImgxIiksdC5oMj10LmJpbmQodm9pZCAwLCJoMiIpLHQuaDM9dC5iaW5kKHZvaWQgMCwiaDMiKSx0Lmg0PXQuYmluZCh2b2lkIDAsImg0IiksdC5oNT10LmJpbmQodm9pZCAwLCJoNSIpLHQuaDY9dC5iaW5kKHZvaWQgMCwiaDYiKSx0LmhlYWRlcj10LmJpbmQodm9pZCAwLCJoZWFkZXIiKSx0LmhyPXQuYmluZCh2b2lkIDAsImhyIiksdC5pPXQuYmluZCh2b2lkIDAsImkiKSx0LmlmcmFtZT10LmJpbmQodm9pZCAwLCJpZnJhbWUiKSx0LmltZz10LmJpbmQodm9pZCAwLCJpbWciKSx0LmlucHV0PXQuYmluZCh2b2lkIDAsImlucHV0IiksdC5pbnM9dC5iaW5kKHZvaWQgMCwiaW5zIiksdC5rYmQ9dC5iaW5kKHZvaWQgMCwia2JkIiksdC5sYWJlbD10LmJpbmQodm9pZCAwLCJsYWJlbCIpLHQubGVnZW5kPXQuYmluZCh2b2lkIDAsImxlZ2VuZCIpLHQubGk9dC5iaW5kKHZvaWQgMCwibGkiKSx0Lm1haW49dC5iaW5kKHZvaWQgMCwibWFpbiIpLHQubWFwPXQuYmluZCh2b2lkIDAsIm1hcCIpLHQubWFyaz10LmJpbmQodm9pZCAwLCJtYXJrIiksdC5tZXRlcj10LmJpbmQodm9pZCAwLCJtZXRlciIpLHQubmF2PXQuYmluZCh2b2lkIDAsIm5hdiIpLHQubm9zY3JpcHQ9dC5iaW5kKHZvaWQgMCwibm9zY3JpcHQiKSx0Lm9iamVjdD10LmJpbmQodm9pZCAwLCJvYmplY3QiKSx0Lm9sPXQuYmluZCh2b2lkIDAsIm9sIiksdC5vcHRncm91cD10LmJpbmQodm9pZCAwLCJvcHRncm91cCIpLHQub3B0aW9uPXQuYmluZCh2b2lkIDAsIm9wdGlvbiIpLHQub3V0cHV0PXQuYmluZCh2b2lkIDAsIm91dHB1dCIpLHQucD10LmJpbmQodm9pZCAwLCJwIiksdC5wYXJhbT10LmJpbmQodm9pZCAwLCJwYXJhbSIpLHQucHJlPXQuYmluZCh2b2lkIDAsInByZSIpLHQucHJvZ3Jlc3M9dC5iaW5kKHZvaWQgMCwicHJvZ3Jlc3MiKSx0LnE9dC5iaW5kKHZvaWQgMCwicSIpLHQucnA9dC5iaW5kKHZvaWQgMCwicnAiKSx0LnJ0PXQuYmluZCh2b2lkIDAsInJ0IiksdC5ydWJ5PXQuYmluZCh2b2lkIDAsInJ1YnkiKSx0LnM9dC5iaW5kKHZvaWQgMCwicyIpLHQuc2FtcD10LmJpbmQodm9pZCAwLCJzYW1wIiksdC5zZWN0aW9uPXQuYmluZCh2b2lkIDAsInNlY3Rpb24iKSx0LnNlbGVjdD10LmJpbmQodm9pZCAwLCJzZWxlY3QiKSx0LnNtYWxsPXQuYmluZCh2b2lkIDAsInNtYWxsIiksdC5zb3VyY2U9dC5iaW5kKHZvaWQgMCwic291cmNlIiksdC5zcGFuPXQuYmluZCh2b2lkIDAsInNwYW4iKSx0LnN0cm9uZz10LmJpbmQodm9pZCAwLCJzdHJvbmciKSx0LnN1Yj10LmJpbmQodm9pZCAwLCJzdWIiKSx0LnN1bW1hcnk9dC5iaW5kKHZvaWQgMCwic3VtbWFyeSIpLHQuc3VwPXQuYmluZCh2b2lkIDAsInN1cCIpLHQudGFibGU9dC5iaW5kKHZvaWQgMCwidGFibGUiKSx0LnRib2R5PXQuYmluZCh2b2lkIDAsInRib2R5IiksdC50ZD10LmJpbmQodm9pZCAwLCJ0ZCIpLHQudGV4dGFyZWE9dC5iaW5kKHZvaWQgMCwidGV4dGFyZWEiKSx0LnRmb290PXQuYmluZCh2b2lkIDAsInRmb290IiksdC50aD10LmJpbmQodm9pZCAwLCJ0aCIpLHQudGhlYWQ9dC5iaW5kKHZvaWQgMCwidGhlYWQiKSx0LnRpbWU9dC5iaW5kKHZvaWQgMCwidGltZSIpLHQudGl0bGU9dC5iaW5kKHZvaWQgMCwidGl0bGUiKSx0LnRyPXQuYmluZCh2b2lkIDAsInRyIiksdC50cmFjaz10LmJpbmQodm9pZCAwLCJ0cmFjayIpLHQudT10LmJpbmQodm9pZCAwLCJ1IiksdC51bD10LmJpbmQodm9pZCAwLCJ1bCIpLHQudmFyXz10LmJpbmQodm9pZCAwLCJ2YXIiKSx0LnZpZGVvPXQuYmluZCh2b2lkIDAsInZpZGVvIiksdC53YnI9dC5iaW5kKHZvaWQgMCwid2JyIil9KGE9ZS5ofHwoZS5oPXt9KSksZnVuY3Rpb24odCl7dC5yZWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZURPTU5vZGUodCl9LHQucmVuZGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5ob3N0TWFwLmdldChlKXx8W10saT1vLmFzQ29udGVudEFycmF5KHQpO28uaG9zdE1hcC5zZXQoZSxpKSxvLnVwZGF0ZUNvbnRlbnQoZSxuLGkpfX0oZS5WaXJ0dWFsRE9NfHwoZS5WaXJ0dWFsRE9NPXt9KSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtpZigidGV4dCI9PT10LnR5cGUpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQuY29udGVudCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LnRhZyk7IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpIGluIGUpaSBpbiBufHwoIm9uIj09PWkuc3Vic3RyKDAsMik/dFtpXT1lW2ldOnQuc2V0QXR0cmlidXRlKGksZVtpXSkpO3ZvaWQgMCE9PWUuY2xhc3NOYW1lJiZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGUuY2xhc3NOYW1lKTt2b2lkIDAhPT1lLmh0bWxGb3ImJnQuc2V0QXR0cmlidXRlKCJmb3IiLGUuaHRtbEZvcik7ZS5kYXRhc2V0JiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXQuc2V0QXR0cmlidXRlKCJkYXRhLSIrbixlW25dKX0odCxlLmRhdGFzZXQpO2Uuc3R5bGUmJmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10LnN0eWxlO2ZvcihuIGluIGUpaVtuXT1lW25dfSh0LGUuc3R5bGUpfShpLHQuYXR0cnMpO2Zvcih2YXIgcj0wLG89dC5jaGlsZHJlbi5sZW5ndGg7cjxvOysrcilpLmFwcGVuZENoaWxkKGUodC5jaGlsZHJlbltyXSkpO3JldHVybiBpfXQuaG9zdE1hcD1uZXcgV2Vha01hcCx0LmFzQ29udGVudEFycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3QgaW5zdGFuY2VvZiBBcnJheT90Olt0XTpbXX0sdC5jcmVhdGVET01Ob2RlPWUsdC51cGRhdGVDb250ZW50PWZ1bmN0aW9uIHQobixvLHMpe2lmKG8hPT1zKXtmb3IodmFyIGE9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5maXJzdENoaWxkLGk9T2JqZWN0LmNyZWF0ZShudWxsKSxyPTAsbz1lO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdOyJlbGVtZW50Ij09PXMudHlwZSYmcy5hdHRycy5rZXkmJihpW3MuYXR0cnMua2V5XT17dk5vZGU6cyxlbGVtZW50Om59KSxuPW4ubmV4dFNpYmxpbmd9cmV0dXJuIGl9KG4sbyksdT1vLnNsaWNlKCksYz1uLmZpcnN0Q2hpbGQsaD1zLmxlbmd0aCxsPTA7bDxoOysrbClpZihsPj11Lmxlbmd0aCluLmFwcGVuZENoaWxkKGUoc1tsXSkpO2Vsc2V7dmFyIGQ9dVtsXSxmPXNbbF07aWYoZCE9PWYpaWYoInRleHQiIT09ZC50eXBlfHwidGV4dCIhPT1mLnR5cGUpaWYoInRleHQiIT09ZC50eXBlJiYidGV4dCIhPT1mLnR5cGUpe3ZhciBwPWYuYXR0cnMua2V5O2lmKHAmJnAgaW4gYSl7dmFyIG09YVtwXTttLnZOb2RlIT09ZCYmKGkuQXJyYXlFeHQubW92ZSh1LHUuaW5kZXhPZihtLnZOb2RlLGwrMSksbCksbi5pbnNlcnRCZWZvcmUobS5lbGVtZW50LGMpLGQ9bS52Tm9kZSxjPW0uZWxlbWVudCl9aWYoZCE9PWYpe3ZhciBnPWQuYXR0cnMua2V5O2cmJmchPT1wPyhpLkFycmF5RXh0Lmluc2VydCh1LGwsZiksbi5pbnNlcnRCZWZvcmUoZShmKSxjKSk6ZC50YWc9PT1mLnRhZz8ocihjLGQuYXR0cnMsZi5hdHRycyksdChjLGQuY2hpbGRyZW4sZi5jaGlsZHJlbiksYz1jLm5leHRTaWJsaW5nKTooaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYykpfWVsc2UgYz1jLm5leHRTaWJsaW5nfWVsc2UgaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYyk7ZWxzZSBjLnRleHRDb250ZW50PWYuY29udGVudCxjPWMubmV4dFNpYmxpbmc7ZWxzZSBjPWMubmV4dFNpYmxpbmd9Zm9yKGw9dS5sZW5ndGgtaDtsPjA7LS1sKW4ucmVtb3ZlQ2hpbGQobi5sYXN0Q2hpbGQpfX07dmFyIG49e2tleTohMCxjbGFzc05hbWU6ITAsaHRtbEZvcjohMCxkYXRhc2V0OiEwLHN0eWxlOiEwfTtmdW5jdGlvbiByKHQsZSxpKXtpZihlIT09aSl7dmFyIHI7Zm9yKHIgaW4gZSlyIGluIG58fHIgaW4gaXx8KCJvbiI9PT1yLnN1YnN0cigwLDIpP3Rbcl09bnVsbDp0LnJlbW92ZUF0dHJpYnV0ZShyKSk7Zm9yKHIgaW4gaSlyIGluIG58fGVbcl09PT1pW3JdfHwoIm9uIj09PXIuc3Vic3RyKDAsMik/dFtyXT1pW3JdOnQuc2V0QXR0cmlidXRlKHIsaVtyXSkpO2UuY2xhc3NOYW1lIT09aS5jbGFzc05hbWUmJih2b2lkIDAhPT1pLmNsYXNzTmFtZT90LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGkuY2xhc3NOYW1lKTp0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSksZS5odG1sRm9yIT09aS5odG1sRm9yJiYodm9pZCAwIT09aS5odG1sRm9yP3Quc2V0QXR0cmlidXRlKCJmb3IiLGkuaHRtbEZvcik6dC5yZW1vdmVBdHRyaWJ1dGUoImZvciIpKSxlLmRhdGFzZXQhPT1pLmRhdGFzZXQmJmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gZSlpIGluIG58fHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLSIraSk7Zm9yKHZhciByIGluIG4pZVtyXSE9PW5bcl0mJnQuc2V0QXR0cmlidXRlKCJkYXRhLSIrcixuW3JdKX0odCxlLmRhdGFzZXR8fHt9LGkuZGF0YXNldHx8e30pLGUuc3R5bGUhPT1pLnN0eWxlJiZmdW5jdGlvbih0LGUsbil7dmFyIGkscj10LnN0eWxlO2ZvcihpIGluIGUpaSBpbiBufHwocltpXT0iIik7Zm9yKGkgaW4gbillW2ldIT09bltpXSYmKHJbaV09bltpXSl9KHQsZS5zdHlsZXx8e30saS5zdHlsZXx8e30pfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9big3OCksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLl9vblNjcm9sbEZyYW1lPWZ1bmN0aW9uKCl7aWYoZS5fc2Nyb2xsVGFyZ2V0KXt2YXIgdD1lLl9zY3JvbGxUYXJnZXQsbj10LmVsZW1lbnQscj10LmVkZ2Usbz10LmRpc3RhbmNlLHM9aS5TQ1JPTExfRURHRV9TSVpFLW8sYT1NYXRoLnBvdyhzL2kuU0NST0xMX0VER0VfU0laRSwyKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZChhKmkuU0NST0xMX0VER0VfU0laRSkpO3N3aXRjaChyKXtjYXNlInRvcCI6bi5zY3JvbGxUb3AtPXU7YnJlYWs7Y2FzZSJsZWZ0IjpuLnNjcm9sbExlZnQtPXU7YnJlYWs7Y2FzZSJyaWdodCI6bi5zY3JvbGxMZWZ0Kz11O2JyZWFrO2Nhc2UiYm90dG9tIjpuLnNjcm9sbFRvcCs9dX1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZS5fb25TY3JvbGxGcmFtZSl9fSx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9kcm9wQWN0aW9uPSJub25lIix0aGlzLl9vdmVycmlkZT1udWxsLHRoaXMuX2N1cnJlbnRUYXJnZXQ9bnVsbCx0aGlzLl9jdXJyZW50RWxlbWVudD1udWxsLHRoaXMuX3Byb21pc2U9bnVsbCx0aGlzLl9zY3JvbGxUYXJnZXQ9bnVsbCx0aGlzLl9yZXNvbHZlPW51bGwsdGhpcy5taW1lRGF0YT10Lm1pbWVEYXRhLHRoaXMuZHJhZ0ltYWdlPXQuZHJhZ0ltYWdlfHxudWxsLHRoaXMucHJvcG9zZWRBY3Rpb249dC5wcm9wb3NlZEFjdGlvbnx8ImNvcHkiLHRoaXMuc3VwcG9ydGVkQWN0aW9ucz10LnN1cHBvcnRlZEFjdGlvbnN8fCJhbGwiLHRoaXMuc291cmNlPXQuc291cmNlfHxudWxsfXJldHVybiB0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rpc3Bvc2VkKXtpZih0aGlzLl9kaXNwb3NlZD0hMCx0aGlzLl9jdXJyZW50VGFyZ2V0KXt2YXIgdD1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNldXAiLC0xLC0xKTtpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCxudWxsLHQpfXRoaXMuX2ZpbmFsaXplKCJub25lIil9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHRoaXMuX2Rpc3Bvc2VkKXJldHVybiBQcm9taXNlLnJlc29sdmUoIm5vbmUiKTtpZih0aGlzLl9wcm9taXNlKXJldHVybiB0aGlzLl9wcm9taXNlO3RoaXMuX2FkZExpc3RlbmVycygpLHRoaXMuX2F0dGFjaERyYWdJbWFnZSh0LGUpLHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLl9yZXNvbHZlPXR9KTt2YXIgcj1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNlbW92ZSIsdCxlKTtyZXR1cm4gZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChyKSx0aGlzLl9wcm9taXNlfSx0LnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7ZGVmYXVsdDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHQucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fdXBkYXRlQ3VycmVudFRhcmdldCh0KSx0aGlzLl91cGRhdGVEcmFnU2Nyb2xsKHQpLHRoaXMuX21vdmVEcmFnSW1hZ2UodC5jbGllbnRYLHQuY2xpZW50WSl9LHQucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDA9PT10LmJ1dHRvbilpZih0aGlzLl91cGRhdGVDdXJyZW50VGFyZ2V0KHQpLHRoaXMuX2N1cnJlbnRUYXJnZXQpe2lmKCJub25lIj09PXRoaXMuX2Ryb3BBY3Rpb24pcmV0dXJuIGkuZGlzcGF0Y2hEcmFnTGVhdmUodGhpcyx0aGlzLl9jdXJyZW50VGFyZ2V0LG51bGwsdCksdm9pZCB0aGlzLl9maW5hbGl6ZSgibm9uZSIpO3ZhciBlPWkuZGlzcGF0Y2hEcm9wKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCx0KTt0aGlzLl9maW5hbGl6ZShlKX1lbHNlIHRoaXMuX2ZpbmFsaXplKCJub25lIil9LHQucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLmRpc3Bvc2UoKX0sdC5wcm90b3R5cGUuX2FkZExpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3JlbW92ZUxpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3VwZGF0ZURyYWdTY3JvbGw9ZnVuY3Rpb24odCl7dmFyIGU9aS5maW5kU2Nyb2xsVGFyZ2V0KHQpOyh0aGlzLl9zY3JvbGxUYXJnZXR8fGUpJiYodGhpcy5fc2Nyb2xsVGFyZ2V0fHxzZXRUaW1lb3V0KHRoaXMuX29uU2Nyb2xsRnJhbWUsNTAwKSx0aGlzLl9zY3JvbGxUYXJnZXQ9ZSl9LHQucHJvdG90eXBlLl91cGRhdGVDdXJyZW50VGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2N1cnJlbnRUYXJnZXQsbj10aGlzLl9jdXJyZW50VGFyZ2V0LHI9dGhpcy5fY3VycmVudEVsZW1lbnQsbz1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHQuY2xpZW50WCx0LmNsaWVudFkpO3RoaXMuX2N1cnJlbnRFbGVtZW50PW8sbyE9PXImJm8hPT1uJiZpLmRpc3BhdGNoRHJhZ0V4aXQodGhpcyxuLG8sdCksbyE9PXImJm8hPT1uJiYobj1pLmRpc3BhdGNoRHJhZ0VudGVyKHRoaXMsbyxuLHQpKSxuIT09ZSYmKHRoaXMuX2N1cnJlbnRUYXJnZXQ9bixpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsZSxuLHQpKTt2YXIgcz1pLmRpc3BhdGNoRHJhZ092ZXIodGhpcyxuLHQpO3RoaXMuX3NldERyb3BBY3Rpb24ocyl9LHQucHJvdG90eXBlLl9hdHRhY2hEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dGhpcy5kcmFnSW1hZ2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtZHJhZy1pbWFnZSIpO3ZhciBuPXRoaXMuZHJhZ0ltYWdlLnN0eWxlO24ucG9pbnRlckV2ZW50cz0ibm9uZSIsbi5wb3NpdGlvbj0iZml4ZWQiLG4udG9wPWUrInB4IixuLmxlZnQ9dCsicHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kcmFnSW1hZ2UpfX0sdC5wcm90b3R5cGUuX21vdmVEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dmFyIG49dGhpcy5kcmFnSW1hZ2Uuc3R5bGU7bi50b3A9ZSsicHgiLG4ubGVmdD10KyJweCJ9fSx0LnByb3RvdHlwZS5fZGV0YWNoRHJhZ0ltYWdlPWZ1bmN0aW9uKCl7aWYodGhpcy5kcmFnSW1hZ2Upe3ZhciB0PXRoaXMuZHJhZ0ltYWdlLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzLmRyYWdJbWFnZSl9fSx0LnByb3RvdHlwZS5fc2V0RHJvcEFjdGlvbj1mdW5jdGlvbihlKXtpZihlPWkudmFsaWRhdGVBY3Rpb24oZSx0aGlzLnN1cHBvcnRlZEFjdGlvbnMpLCF0aGlzLl9vdmVycmlkZXx8dGhpcy5fZHJvcEFjdGlvbiE9PWUpc3dpdGNoKGUpe2Nhc2Uibm9uZSI6dGhpcy5fZHJvcEFjdGlvbj1lLHRoaXMuX292ZXJyaWRlPXQub3ZlcnJpZGVDdXJzb3IoIm5vLWRyb3AiKTticmVhaztjYXNlImNvcHkiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJjb3B5Iik7YnJlYWs7Y2FzZSJsaW5rIjp0aGlzLl9kcm9wQWN0aW9uPWUsdGhpcy5fb3ZlcnJpZGU9dC5vdmVycmlkZUN1cnNvcigiYWxpYXMiKTticmVhaztjYXNlIm1vdmUiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJtb3ZlIil9fSx0LnByb3RvdHlwZS5fZmluYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVzb2x2ZTt0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl9kZXRhY2hEcmFnSW1hZ2UoKSx0aGlzLl9vdmVycmlkZSYmKHRoaXMuX292ZXJyaWRlLmRpc3Bvc2UoKSx0aGlzLl9vdmVycmlkZT1udWxsKSx0aGlzLm1pbWVEYXRhLmNsZWFyKCksdGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5fZHJvcEFjdGlvbj0ibm9uZSIsdGhpcy5fY3VycmVudFRhcmdldD1udWxsLHRoaXMuX2N1cnJlbnRFbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsVGFyZ2V0PW51bGwsdGhpcy5fcHJvbWlzZT1udWxsLHRoaXMuX3Jlc29sdmU9bnVsbCxlJiZlKHQpfSx0fSgpO2UuRHJhZz1vLGZ1bmN0aW9uKHQpe3Qub3ZlcnJpZGVDdXJzb3I9ZnVuY3Rpb24odCl7dmFyIG49KytlO3JldHVybiBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj10LGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgicC1tb2Qtb3ZlcnJpZGUtY3Vyc29yIiksbmV3IHIuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7bj09PWUmJihkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLW92ZXJyaWRlLWN1cnNvciIpKX0pfTt2YXIgZT0wfShvPWUuRHJhZ3x8KGUuRHJhZz17fSkpLGUuRHJhZz1vLGZ1bmN0aW9uKHQpe3QuU0NST0xMX0VER0VfU0laRT0yMCx0LnZhbGlkYXRlQWN0aW9uPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIGVbdF0mbltpXT90OiJub25lIn0sdC5jcmVhdGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO3JldHVybiBpLmluaXRNb3VzZUV2ZW50KHQsITAsITAsd2luZG93LDAsMCwwLGUsbiwhMSwhMSwhMSwhMSwwLG51bGwpLGl9LHQuZmluZFNjcm9sbFRhcmdldD1mdW5jdGlvbihlKXtmb3IodmFyIG49ZS5jbGllbnRYLGk9ZS5jbGllbnRZLHI9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChuLGkpO3I7cj1yLnBhcmVudEVsZW1lbnQpaWYoci5oYXNBdHRyaWJ1dGUoImRhdGEtcC1kcmFnc2Nyb2xsIikpe3ZhciBvPTAscz0wO3I9PT1kb2N1bWVudC5ib2R5JiYobz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQpO3ZhciBhPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1hLnRvcCtzLGM9YS5sZWZ0K28saD1jK2Eud2lkdGgsbD11K2EuaGVpZ2h0O2lmKCEobjxjfHxuPj1ofHxpPHV8fGk+PWwpKXt2YXIgZD1uLWMrMSxmPWktdSsxLHA9aC1uLG09bC1pLGc9TWF0aC5taW4oZCxmLHAsbSk7aWYoIShnPnQuU0NST0xMX0VER0VfU0laRSkpe3ZhciB2PXZvaWQgMDtzd2l0Y2goZyl7Y2FzZSBtOnY9ImJvdHRvbSI7YnJlYWs7Y2FzZSBmOnY9InRvcCI7YnJlYWs7Y2FzZSBwOnY9InJpZ2h0IjticmVhaztjYXNlIGQ6dj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dmFyIGI9ci5zY3JvbGxXaWR0aC1yLmNsaWVudFdpZHRoLHk9ci5zY3JvbGxIZWlnaHQtci5jbGllbnRIZWlnaHQsXz12b2lkIDA7c3dpdGNoKHYpe2Nhc2UidG9wIjpfPXk+MCYmci5zY3JvbGxUb3A+MDticmVhaztjYXNlImxlZnQiOl89Yj4wJiZyLnNjcm9sbExlZnQ+MDticmVhaztjYXNlInJpZ2h0IjpfPWI+MCYmci5zY3JvbGxMZWZ0PGI7YnJlYWs7Y2FzZSJib3R0b20iOl89eT4wJiZyLnNjcm9sbFRvcDx5O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWlmKF8pcmV0dXJue2VsZW1lbnQ6cixlZGdlOnYsZGlzdGFuY2U6Z319fX1yZXR1cm4gbnVsbH0sdC5kaXNwYXRjaERyYWdFbnRlcj1mdW5jdGlvbih0LGUsbixyKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgbz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pO3JldHVybiBlLmRpc3BhdGNoRXZlbnQobyk/ZT09PWRvY3VtZW50LmJvZHk/bjoobz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pLGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChvKSxkb2N1bWVudC5ib2R5KTplfSx0LmRpc3BhdGNoRHJhZ0V4aXQ9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnZXhpdCIsdCxyLG4pO2UuZGlzcGF0Y2hFdmVudChvKX19LHQuZGlzcGF0Y2hEcmFnTGVhdmU9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnbGVhdmUiLHQscixuKTtlLmRpc3BhdGNoRXZlbnQobyl9fSx0LmRpc3BhdGNoRHJhZ092ZXI9ZnVuY3Rpb24odCxlLG4pe2lmKCFlKXJldHVybiJub25lIjt2YXIgcj1pKCJwLWRyYWdvdmVyIix0LG4sbnVsbCk7cmV0dXJuIGUuZGlzcGF0Y2hFdmVudChyKT8ibm9uZSI6ci5kcm9wQWN0aW9ufSx0LmRpc3BhdGNoRHJvcD1mdW5jdGlvbih0LGUsbil7aWYoIWUpcmV0dXJuIm5vbmUiO3ZhciByPWkoInAtZHJvcCIsdCxuLG51bGwpO3JldHVybiBlLmRpc3BhdGNoRXZlbnQocik/Im5vbmUiOnIuZHJvcEFjdGlvbn07dmFyIGU9e25vbmU6MCxjb3B5OjEsbGluazoyLG1vdmU6NH0sbj17bm9uZTplLm5vbmUsY29weTplLmNvcHksbGluazplLmxpbmssbW92ZTplLm1vdmUsImNvcHktbGluayI6ZS5jb3B5fGUubGluaywiY29weS1tb3ZlIjplLmNvcHl8ZS5tb3ZlLCJsaW5rLW1vdmUiOmUubGlua3xlLm1vdmUsYWxsOmUuY29weXxlLmxpbmt8ZS5tb3ZlfTtmdW5jdGlvbiBpKHQsZSxuLGkpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7cmV0dXJuIHIuaW5pdE1vdXNlRXZlbnQodCwhMCwhMCx3aW5kb3csMCxuLnNjcmVlblgsbi5zY3JlZW5ZLG4uY2xpZW50WCxuLmNsaWVudFksbi5jdHJsS2V5LG4uYWx0S2V5LG4uc2hpZnRLZXksbi5tZXRhS2V5LG4uYnV0dG9uLGkpLHIuZHJvcEFjdGlvbj0ibm9uZSIsci5taW1lRGF0YT1lLm1pbWVEYXRhLHIucHJvcG9zZWRBY3Rpb249ZS5wcm9wb3NlZEFjdGlvbixyLnN1cHBvcnRlZEFjdGlvbnM9ZS5zdXBwb3J0ZWRBY3Rpb25zLHIuc291cmNlPWUuc291cmNlLHJ9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTj0iMS40LjAifSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMCkscj1uKDg0KSxvPW4oMSkuQnVmZmVyLHM9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBhKCl7ci5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1mdW5jdGlvbiBjKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKGUmbnx+ZSZpKStyK298MCxzKStlfDB9ZnVuY3Rpb24gaCh0LGUsbixpLHIsbyxzKXtyZXR1cm4gdSh0KyhlJml8biZ+aSkrcitvfDAscykrZXwwfWZ1bmN0aW9uIGwodCxlLG4saSxyLG8scyl7cmV0dXJuIHUodCsoZV5uXmkpK3Irb3wwLHMpK2V8MH1mdW5jdGlvbiBkKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKG5eKGV8fmkpKStyK298MCxzKStlfDB9aShhLHIpLGEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9cyxlPTA7ZTwxNjsrK2UpdFtlXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KmUpO3ZhciBuPXRoaXMuX2EsaT10aGlzLl9iLHI9dGhpcy5fYyxvPXRoaXMuX2Q7bj1jKG4saSxyLG8sdFswXSwzNjE0MDkwMzYwLDcpLG89YyhvLG4saSxyLHRbMV0sMzkwNTQwMjcxMCwxMikscj1jKHIsbyxuLGksdFsyXSw2MDYxMDU4MTksMTcpLGk9YyhpLHIsbyxuLHRbM10sMzI1MDQ0MTk2NiwyMiksbj1jKG4saSxyLG8sdFs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLG4saSxyLHRbNV0sMTIwMDA4MDQyNiwxMikscj1jKHIsbyxuLGksdFs2XSwyODIxNzM1OTU1LDE3KSxpPWMoaSxyLG8sbix0WzddLDQyNDkyNjEzMTMsMjIpLG49YyhuLGkscixvLHRbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxuLGkscix0WzldLDIzMzY1NTI4NzksMTIpLHI9YyhyLG8sbixpLHRbMTBdLDQyOTQ5MjUyMzMsMTcpLGk9YyhpLHIsbyxuLHRbMTFdLDIzMDQ1NjMxMzQsMjIpLG49YyhuLGkscixvLHRbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8sbixpLHIsdFsxM10sNDI1NDYyNjE5NSwxMikscj1jKHIsbyxuLGksdFsxNF0sMjc5Mjk2NTAwNiwxNyksbj1oKG4saT1jKGkscixvLG4sdFsxNV0sMTIzNjUzNTMyOSwyMikscixvLHRbMV0sNDEyOTE3MDc4Niw1KSxvPWgobyxuLGkscix0WzZdLDMyMjU0NjU2NjQsOSkscj1oKHIsbyxuLGksdFsxMV0sNjQzNzE3NzEzLDE0KSxpPWgoaSxyLG8sbix0WzBdLDM5MjEwNjk5OTQsMjApLG49aChuLGkscixvLHRbNV0sMzU5MzQwODYwNSw1KSxvPWgobyxuLGkscix0WzEwXSwzODAxNjA4Myw5KSxyPWgocixvLG4saSx0WzE1XSwzNjM0NDg4OTYxLDE0KSxpPWgoaSxyLG8sbix0WzRdLDM4ODk0Mjk0NDgsMjApLG49aChuLGkscixvLHRbOV0sNTY4NDQ2NDM4LDUpLG89aChvLG4saSxyLHRbMTRdLDMyNzUxNjM2MDYsOSkscj1oKHIsbyxuLGksdFszXSw0MTA3NjAzMzM1LDE0KSxpPWgoaSxyLG8sbix0WzhdLDExNjM1MzE1MDEsMjApLG49aChuLGkscixvLHRbMTNdLDI4NTAyODU4MjksNSksbz1oKG8sbixpLHIsdFsyXSw0MjQzNTYzNTEyLDkpLHI9aChyLG8sbixpLHRbN10sMTczNTMyODQ3MywxNCksbj1sKG4saT1oKGkscixvLG4sdFsxMl0sMjM2ODM1OTU2MiwyMCkscixvLHRbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxuLGkscix0WzhdLDIyNzIzOTI4MzMsMTEpLHI9bChyLG8sbixpLHRbMTFdLDE4MzkwMzA1NjIsMTYpLGk9bChpLHIsbyxuLHRbMTRdLDQyNTk2NTc3NDAsMjMpLG49bChuLGkscixvLHRbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxuLGkscix0WzRdLDEyNzI4OTMzNTMsMTEpLHI9bChyLG8sbixpLHRbN10sNDEzOTQ2OTY2NCwxNiksaT1sKGkscixvLG4sdFsxMF0sMzIwMDIzNjY1NiwyMyksbj1sKG4saSxyLG8sdFsxM10sNjgxMjc5MTc0LDQpLG89bChvLG4saSxyLHRbMF0sMzkzNjQzMDA3NCwxMSkscj1sKHIsbyxuLGksdFszXSwzNTcyNDQ1MzE3LDE2KSxpPWwoaSxyLG8sbix0WzZdLDc2MDI5MTg5LDIzKSxuPWwobixpLHIsbyx0WzldLDM2NTQ2MDI4MDksNCksbz1sKG8sbixpLHIsdFsxMl0sMzg3MzE1MTQ2MSwxMSkscj1sKHIsbyxuLGksdFsxNV0sNTMwNzQyNTIwLDE2KSxuPWQobixpPWwoaSxyLG8sbix0WzJdLDMyOTk2Mjg2NDUsMjMpLHIsbyx0WzBdLDQwOTYzMzY0NTIsNiksbz1kKG8sbixpLHIsdFs3XSwxMTI2ODkxNDE1LDEwKSxyPWQocixvLG4saSx0WzE0XSwyODc4NjEyMzkxLDE1KSxpPWQoaSxyLG8sbix0WzVdLDQyMzc1MzMyNDEsMjEpLG49ZChuLGkscixvLHRbMTJdLDE3MDA0ODU1NzEsNiksbz1kKG8sbixpLHIsdFszXSwyMzk5OTgwNjkwLDEwKSxyPWQocixvLG4saSx0WzEwXSw0MjkzOTE1NzczLDE1KSxpPWQoaSxyLG8sbix0WzFdLDIyNDAwNDQ0OTcsMjEpLG49ZChuLGkscixvLHRbOF0sMTg3MzMxMzM1OSw2KSxvPWQobyxuLGkscix0WzE1XSw0MjY0MzU1NTUyLDEwKSxyPWQocixvLG4saSx0WzZdLDI3MzQ3Njg5MTYsMTUpLGk9ZChpLHIsbyxuLHRbMTNdLDEzMDkxNTE2NDksMjEpLG49ZChuLGkscixvLHRbNF0sNDE0OTQ0NDIyNiw2KSxvPWQobyxuLGkscix0WzExXSwzMTc0NzU2OTE3LDEwKSxyPWQocixvLG4saSx0WzJdLDcxODc4NzI1OSwxNSksaT1kKGkscixvLG4sdFs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErbnwwLHRoaXMuX2I9dGhpcy5fYitpfDAsdGhpcy5fYz10aGlzLl9jK3J8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxhLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIHQ9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIHQud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksdC53cml0ZUludDMyTEUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLHR9LHQuZXhwb3J0cz1hfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPXI7dmFyIGk9big2MCkuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIHIoKXtpLmNhbGwodGhpcyl9bigwKShyLGkpLHIuUmVhZGFibGU9big2MSksci5Xcml0YWJsZT1uKDE1Myksci5EdXBsZXg9bigxNTQpLHIuVHJhbnNmb3JtPW4oMTU1KSxyLlBhc3NUaHJvdWdoPW4oMTU2KSxyLlN0cmVhbT1yLHIucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoZSl7dC53cml0YWJsZSYmITE9PT10LndyaXRlKGUpJiZuLnBhdXNlJiZuLnBhdXNlKCl9ZnVuY3Rpb24gbygpe24ucmVhZGFibGUmJm4ucmVzdW1lJiZuLnJlc3VtZSgpfW4ub24oImRhdGEiLHIpLHQub24oImRyYWluIixvKSx0Ll9pc1N0ZGlvfHxlJiYhMT09PWUuZW5kfHwobi5vbigiZW5kIixhKSxuLm9uKCJjbG9zZSIsdSkpO3ZhciBzPSExO2Z1bmN0aW9uIGEoKXtzfHwocz0hMCx0LmVuZCgpKX1mdW5jdGlvbiB1KCl7c3x8KHM9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVzdHJveSYmdC5kZXN0cm95KCkpfWZ1bmN0aW9uIGModCl7aWYoaCgpLDA9PT1pLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyB0fWZ1bmN0aW9uIGgoKXtuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixyKSx0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIixhKSxuLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksbi5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxuLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGgpLG4ucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixoKSx0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsaCl9cmV0dXJuIG4ub24oImVycm9yIixjKSx0Lm9uKCJlcnJvciIsYyksbi5vbigiZW5kIixoKSxuLm9uKCJjbG9zZSIsaCksdC5vbigiY2xvc2UiLGgpLHQuZW1pdCgicGlwZSIsbiksdH19LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuX2V2ZW50cz10aGlzLl9ldmVudHN8fHt9LHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH1mdW5jdGlvbiBpKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBvKHQpe3JldHVybiB2b2lkIDA9PT10fXQuZXhwb3J0cz1uLG4uRXZlbnRFbWl0dGVyPW4sbi5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsbi5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDAsbi5kZWZhdWx0TWF4TGlzdGVuZXJzPTEwLG4ucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8aXNOYU4odCkpdGhyb3cgVHlwZUVycm9yKCJuIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt2YXIgZSxuLHMsYSx1LGM7aWYodGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSwiZXJyb3IiPT09dCYmKCF0aGlzLl9ldmVudHMuZXJyb3J8fHIodGhpcy5fZXZlbnRzLmVycm9yKSYmIXRoaXMuX2V2ZW50cy5lcnJvci5sZW5ndGgpKXtpZigoZT1hcmd1bWVudHNbMV0paW5zdGFuY2VvZiBFcnJvcil0aHJvdyBlO3ZhciBoPW5ldyBFcnJvcignVW5jYXVnaHQsIHVuc3BlY2lmaWVkICJlcnJvciIgZXZlbnQuICgnK2UrIikiKTt0aHJvdyBoLmNvbnRleHQ9ZSxofWlmKG8obj10aGlzLl9ldmVudHNbdF0pKXJldHVybiExO2lmKGkobikpc3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTpuLmNhbGwodGhpcyk7YnJlYWs7Y2FzZSAyOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSk7YnJlYWs7Y2FzZSAzOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pO2JyZWFrO2RlZmF1bHQ6YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbi5hcHBseSh0aGlzLGEpfWVsc2UgaWYocihuKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscz0oYz1uLnNsaWNlKCkpLmxlbmd0aCx1PTA7dTxzO3UrKyljW3VdLmFwcGx5KHRoaXMsYSk7cmV0dXJuITB9LG4ucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHM7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4gdGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSx0aGlzLl9ldmVudHMubmV3TGlzdGVuZXImJnRoaXMuZW1pdCgibmV3TGlzdGVuZXIiLHQsaShlLmxpc3RlbmVyKT9lLmxpc3RlbmVyOmUpLHRoaXMuX2V2ZW50c1t0XT9yKHRoaXMuX2V2ZW50c1t0XSk/dGhpcy5fZXZlbnRzW3RdLnB1c2goZSk6dGhpcy5fZXZlbnRzW3RdPVt0aGlzLl9ldmVudHNbdF0sZV06dGhpcy5fZXZlbnRzW3RdPWUscih0aGlzLl9ldmVudHNbdF0pJiYhdGhpcy5fZXZlbnRzW3RdLndhcm5lZCYmKHM9byh0aGlzLl9tYXhMaXN0ZW5lcnMpP24uZGVmYXVsdE1heExpc3RlbmVyczp0aGlzLl9tYXhMaXN0ZW5lcnMpJiZzPjAmJnRoaXMuX2V2ZW50c1t0XS5sZW5ndGg+cyYmKHRoaXMuX2V2ZW50c1t0XS53YXJuZWQ9ITAsY29uc29sZS5lcnJvcigiKG5vZGUpIHdhcm5pbmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4iLHRoaXMuX2V2ZW50c1t0XS5sZW5ndGgpLCJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLnRyYWNlJiZjb25zb2xlLnRyYWNlKCkpLHRoaXN9LG4ucHJvdG90eXBlLm9uPW4ucHJvdG90eXBlLmFkZExpc3RlbmVyLG4ucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odCxlKXtpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBuPSExO2Z1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUxpc3RlbmVyKHQsciksbnx8KG49ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXJldHVybiByLmxpc3RlbmVyPWUsdGhpcy5vbih0LHIpLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxzLGE7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtpZighdGhpcy5fZXZlbnRzfHwhdGhpcy5fZXZlbnRzW3RdKXJldHVybiB0aGlzO2lmKHM9KG49dGhpcy5fZXZlbnRzW3RdKS5sZW5ndGgsbz0tMSxuPT09ZXx8aShuLmxpc3RlbmVyKSYmbi5saXN0ZW5lcj09PWUpZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsZSk7ZWxzZSBpZihyKG4pKXtmb3IoYT1zO2EtLSA+MDspaWYoblthXT09PWV8fG5bYV0ubGlzdGVuZXImJm5bYV0ubGlzdGVuZXI9PT1lKXtvPWE7YnJlYWt9aWYobzwwKXJldHVybiB0aGlzOzE9PT1uLmxlbmd0aD8obi5sZW5ndGg9MCxkZWxldGUgdGhpcy5fZXZlbnRzW3RdKTpuLnNwbGljZShvLDEpLHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxlKX1yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLG47aWYoIXRoaXMuX2V2ZW50cylyZXR1cm4gdGhpcztpZighdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9ldmVudHM9e306dGhpcy5fZXZlbnRzW3RdJiZkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe2ZvcihlIGluIHRoaXMuX2V2ZW50cykicmVtb3ZlTGlzdGVuZXIiIT09ZSYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoZSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz17fSx0aGlzfWlmKGkobj10aGlzLl9ldmVudHNbdF0pKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxuKTtlbHNlIGlmKG4pZm9yKDtuLmxlbmd0aDspdGhpcy5yZW1vdmVMaXN0ZW5lcih0LG5bbi5sZW5ndGgtMV0pO3JldHVybiBkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHNbdF0/aSh0aGlzLl9ldmVudHNbdF0pP1t0aGlzLl9ldmVudHNbdF1dOnRoaXMuX2V2ZW50c1t0XS5zbGljZSgpOltdfSxuLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2V2ZW50cyl7dmFyIGU9dGhpcy5fZXZlbnRzW3RdO2lmKGkoZSkpcmV0dXJuIDE7aWYoZSlyZXR1cm4gZS5sZW5ndGh9cmV0dXJuIDB9LG4ubGlzdGVuZXJDb3VudD1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxpc3RlbmVyQ291bnQoZSl9fSxmdW5jdGlvbih0LGUsbil7KGU9dC5leHBvcnRzPW4oODUpKS5TdHJlYW09ZSxlLlJlYWRhYmxlPWUsZS5Xcml0YWJsZT1uKDYyKSxlLkR1cGxleD1uKDI0KSxlLlRyYW5zZm9ybT1uKDg4KSxlLlBhc3NUaHJvdWdoPW4oMTUyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpLHIpe3ZhciBvPW4oNDMpO2Z1bmN0aW9uIHModCl7dmFyIGU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuZW50cnk7dC5lbnRyeT1udWxsO2Zvcig7aTspe3ZhciByPWkuY2FsbGJhY2s7ZS5wZW5kaW5nY2ItLSxyKG4pLGk9aS5uZXh0fWUuY29ya2VkUmVxdWVzdHNGcmVlP2UuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9dDplLmNvcmtlZFJlcXVlc3RzRnJlZT10fShlLHQpfX10LmV4cG9ydHM9Yjt2YXIgYSx1PSFlLmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YoZS52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP2k6by5uZXh0VGljaztiLldyaXRhYmxlU3RhdGU9djt2YXIgYz1uKDMyKTtjLmluaGVyaXRzPW4oMCk7dmFyIGg9e2RlcHJlY2F0ZTpuKDE1MSl9LGw9big4NiksZD1uKDEpLkJ1ZmZlcixmPXIuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBwLG09big4Nyk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KHQsZSl7YT1hfHxuKDI0KSx0PXR8fHt9O3ZhciBpPWUgaW5zdGFuY2VvZiBhO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLGM9dC53cml0YWJsZUhpZ2hXYXRlck1hcmssaD10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKGN8fDA9PT1jKT9jOmgsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PXQuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe3ZhciBuPXQuX3dyaXRhYmxlU3RhdGUsaT1uLnN5bmMscj1uLndyaXRlY2I7aWYoZnVuY3Rpb24odCl7dC53cml0aW5nPSExLHQud3JpdGVjYj1udWxsLHQubGVuZ3RoLT10LndyaXRlbGVuLHQud3JpdGVsZW49MH0obiksZSkhZnVuY3Rpb24odCxlLG4saSxyKXstLWUucGVuZGluZ2NiLG4/KG8ubmV4dFRpY2socixpKSxvLm5leHRUaWNrKFMsdCxlKSx0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx0LmVtaXQoImVycm9yIixpKSk6KHIoaSksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdC5lbWl0KCJlcnJvciIsaSksUyh0LGUpKX0odCxuLGksZSxyKTtlbHNle3ZhciBzPXgobik7c3x8bi5jb3JrZWR8fG4uYnVmZmVyUHJvY2Vzc2luZ3x8IW4uYnVmZmVyZWRSZXF1ZXN0fHx3KHQsbiksaT91KF8sdCxuLHMscik6Xyh0LG4scyxyKX19KGUsdCl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IHModGhpcyl9ZnVuY3Rpb24gYih0KXtpZihhPWF8fG4oMjQpLCEocC5jYWxsKGIsdGhpcyl8fHRoaXMgaW5zdGFuY2VvZiBhKSlyZXR1cm4gbmV3IGIodCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgdih0LHRoaXMpLHRoaXMud3JpdGFibGU9ITAsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LndyaXRlJiYodGhpcy5fd3JpdGU9dC53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIHQud3JpdGV2JiYodGhpcy5fd3JpdGV2PXQud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmZpbmFsJiYodGhpcy5fZmluYWw9dC5maW5hbCkpLGwuY2FsbCh0aGlzKX1mdW5jdGlvbiB5KHQsZSxuLGkscixvLHMpe2Uud3JpdGVsZW49aSxlLndyaXRlY2I9cyxlLndyaXRpbmc9ITAsZS5zeW5jPSEwLG4/dC5fd3JpdGV2KHIsZS5vbndyaXRlKTp0Ll93cml0ZShyLG8sZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gXyh0LGUsbixpKXtufHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0saSgpLFModCxlKX1mdW5jdGlvbiB3KHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciBuPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmbiYmbi5uZXh0KXt2YXIgaT1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LHI9bmV3IEFycmF5KGkpLG89ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1uO2Zvcih2YXIgYT0wLHU9ITA7bjspclthXT1uLG4uaXNCdWZ8fCh1PSExKSxuPW4ubmV4dCxhKz0xO3IuYWxsQnVmZmVycz11LHkodCxlLCEwLGUubGVuZ3RoLHIsIiIsby5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBzKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7bjspe3ZhciBjPW4uY2h1bmssaD1uLmVuY29kaW5nLGw9bi5jYWxsYmFjaztpZih5KHQsZSwhMSxlLm9iamVjdE1vZGU/MTpjLmxlbmd0aCxjLGgsbCksbj1uLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09biYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1uLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiB4KHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJiYhdC53cml0aW5nfWZ1bmN0aW9uIE0odCxlKXt0Ll9maW5hbChmdW5jdGlvbihuKXtlLnBlbmRpbmdjYi0tLG4mJnQuZW1pdCgiZXJyb3IiLG4pLGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSxTKHQsZSl9KX1mdW5jdGlvbiBTKHQsZSl7dmFyIG49eChlKTtyZXR1cm4gbiYmKCFmdW5jdGlvbih0LGUpe2UucHJlZmluaXNoZWR8fGUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iPT10eXBlb2YgdC5fZmluYWw/KGUucGVuZGluZ2NiKyssZS5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKE0sdCxlKSk6KGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSkpfSh0LGUpLDA9PT1lLnBlbmRpbmdjYiYmKGUuZmluaXNoZWQ9ITAsdC5lbWl0KCJmaW5pc2giKSkpLG59Yy5pbmhlcml0cyhiLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1ZmZlcmVkUmVxdWVzdCxlPVtdO3Q7KWUucHVzaCh0KSx0PXQubmV4dDtyZXR1cm4gZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6aC5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2godCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8ocD1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYixTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiEhcC5jYWxsKHRoaXMsdCl8fHRoaXM9PT1iJiYodCYmdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIHYpfX0pKTpwPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpc30sYi5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpKX0sYi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9dGhpcy5fd3JpdGFibGVTdGF0ZSxzPSExLGE9IXIub2JqZWN0TW9kZSYmKGk9dCxkLmlzQnVmZmVyKGkpfHxpIGluc3RhbmNlb2YgZik7cmV0dXJuIGEmJiFkLmlzQnVmZmVyKHQpJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZC5mcm9tKHQpfSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihuPWUsZT1udWxsKSxhP2U9ImJ1ZmZlciI6ZXx8KGU9ci5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1nKSxyLmVuZGVkP2Z1bmN0aW9uKHQsZSl7dmFyIG49bmV3IEVycm9yKCJ3cml0ZSBhZnRlciBlbmQiKTt0LmVtaXQoImVycm9yIixuKSxvLm5leHRUaWNrKGUsbil9KHRoaXMsbik6KGF8fGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPSEwLHM9ITE7cmV0dXJuIG51bGw9PT1uP3M9bmV3IFR5cGVFcnJvcigiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iKToic3RyaW5nIj09dHlwZW9mIG58fHZvaWQgMD09PW58fGUub2JqZWN0TW9kZXx8KHM9bmV3IFR5cGVFcnJvcigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpKSxzJiYodC5lbWl0KCJlcnJvciIscyksby5uZXh0VGljayhpLHMpLHI9ITEpLHJ9KHRoaXMscix0LG4pKSYmKHIucGVuZGluZ2NiKysscz1mdW5jdGlvbih0LGUsbixpLHIsbyl7aWYoIW4pe3ZhciBzPWZ1bmN0aW9uKHQsZSxuKXt0Lm9iamVjdE1vZGV8fCExPT09dC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGV8fChlPWQuZnJvbShlLG4pKTtyZXR1cm4gZX0oZSxpLHIpO2khPT1zJiYobj0hMCxyPSJidWZmZXIiLGk9cyl9dmFyIGE9ZS5vYmplY3RNb2RlPzE6aS5sZW5ndGg7ZS5sZW5ndGgrPWE7dmFyIHU9ZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrO3V8fChlLm5lZWREcmFpbj0hMCk7aWYoZS53cml0aW5nfHxlLmNvcmtlZCl7dmFyIGM9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O2UubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6aSxlbmNvZGluZzpyLGlzQnVmOm4sY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDplLmJ1ZmZlcmVkUmVxdWVzdD1lLmxhc3RCdWZmZXJlZFJlcXVlc3QsZS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIHkodCxlLCExLGEsaSxyLG8pO3JldHVybiB1fSh0aGlzLHIsYSx0LGUsbikpLHN9LGIucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxiLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93cml0YWJsZVN0YXRlO3QuY29ya2VkJiYodC5jb3JrZWQtLSx0LndyaXRpbmd8fHQuY29ya2VkfHx0LmZpbmlzaGVkfHx0LmJ1ZmZlclByb2Nlc3Npbmd8fCF0LmJ1ZmZlcmVkUmVxdWVzdHx8dyh0aGlzLHQpKX0sYi5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKCh0KyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9dCx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxiLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe24obmV3IEVycm9yKCJfd3JpdGUoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LGIucHJvdG90eXBlLl93cml0ZXY9bnVsbCxiLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGU7ImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx0PW51bGwsZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLG51bGwhPXQmJnRoaXMud3JpdGUodCxlKSxpLmNvcmtlZCYmKGkuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksaS5lbmRpbmd8fGkuZmluaXNoZWR8fGZ1bmN0aW9uKHQsZSxuKXtlLmVuZGluZz0hMCxTKHQsZSksbiYmKGUuZmluaXNoZWQ/by5uZXh0VGljayhuKTp0Lm9uY2UoImZpbmlzaCIsbikpO2UuZW5kZWQ9ITAsdC53cml0YWJsZT0hMX0odGhpcyxpLG4pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD10KX19KSxiLnByb3RvdHlwZS5kZXN0cm95PW0uZGVzdHJveSxiLnByb3RvdHlwZS5fdW5kZXN0cm95PW0udW5kZXN0cm95LGIucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dGhpcy5lbmQoKSxlKHQpfX0pLmNhbGwodGhpcyxuKDIwKSxuKDQ0KS5zZXRJbW1lZGlhdGUsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXtzd2l0Y2goKHQ9IiIrdCkmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBvKHQpe3ZhciBlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiJ1dGY4Ijtmb3IodmFyIGU7Oylzd2l0Y2godCl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGU9ITB9fSh0KTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihpLmlzRW5jb2Rpbmc9PT1yfHwhcih0KSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3JldHVybiBlfHx0fSh0KSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1hLGU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWgsdGhpcy5lbmQ9bCxlPTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1kLHZvaWQodGhpcy5lbmQ9Zil9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1pLmFsbG9jVW5zYWZlKGUpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQ8PTEyNz8wOnQ+PjU9PTY/Mjp0Pj40PT0xND8zOnQ+PjM9PTMwPzQ6dD4+Nj09Mj8tMTotMn1mdW5jdGlvbiBhKHQpe3ZhciBlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsbj1mdW5jdGlvbih0LGUsbil7aWYoMTI4IT0oMTkyJmVbMF0pKXJldHVybiB0Lmxhc3ROZWVkPTAsIu+/vSI7aWYodC5sYXN0TmVlZD4xJiZlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZVsxXSkpcmV0dXJuIHQubGFzdE5lZWQ9MSwi77+9IjtpZih0Lmxhc3ROZWVkPjImJmUubGVuZ3RoPjImJjEyOCE9KDE5MiZlWzJdKSlyZXR1cm4gdC5sYXN0TmVlZD0yLCLvv70ifX0odGhpcyx0KTtyZXR1cm4gdm9pZCAwIT09bj9uOnRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoPyh0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToodC5jb3B5KHRoaXMubGFzdENoYXIsZSwwLHQubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXQubGVuZ3RoKSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT0wKXt2YXIgbj10LnRvU3RyaW5nKCJ1dGYxNmxlIixlKTtpZihuKXt2YXIgaT1uLmNoYXJDb2RlQXQobi5sZW5ndGgtMSk7aWYoaT49NTUyOTYmJmk8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdLG4uc2xpY2UoMCwtMSl9cmV0dXJuIG59cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXSx0LnRvU3RyaW5nKCJ1dGYxNmxlIixlLHQubGVuZ3RoLTEpfWZ1bmN0aW9uIGModCl7dmFyIGU9dCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgbj10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAsbil9cmV0dXJuIGV9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuPSh0Lmxlbmd0aC1lKSUzO3JldHVybiAwPT09bj90LnRvU3RyaW5nKCJiYXNlNjQiLGUpOih0aGlzLmxhc3ROZWVkPTMtbix0aGlzLmxhc3RUb3RhbD0zLDE9PT1uP3RoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXSksdC50b1N0cmluZygiYmFzZTY0IixlLHQubGVuZ3RoLW4pKX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTplfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIn1lLlN0cmluZ0RlY29kZXI9byxvLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIiI7dmFyIGUsbjtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZT10aGlzLmZpbGxMYXN0KHQpKSlyZXR1cm4iIjtuPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2Ugbj0wO3JldHVybiBuPHQubGVuZ3RoP2U/ZSt0aGlzLnRleHQodCxuKTp0aGlzLnRleHQodCxuKTplfHwiIn0sby5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSsi77+9IjplfSxvLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWUubGVuZ3RoLTE7aWYoaTxuKXJldHVybiAwO3ZhciByPXMoZVtpXSk7aWYocj49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTEpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTIpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYoMj09PXI/cj0wOnQubGFzdE5lZWQ9ci0zKSxyO3JldHVybiAwfSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoInV0ZjgiLGUpO3RoaXMubGFzdFRvdGFsPW47dmFyIGk9dC5sZW5ndGgtKG4tdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLDAsaSksdC50b1N0cmluZygidXRmOCIsZSxpKX0sby5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpcmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7dC5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHQubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT10Lmxlbmd0aH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0KS5CdWZmZXIscj1uKDApLG89big4NCkscz1uZXcgQXJyYXkoMTYpLGE9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sdT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxjPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxoPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxsPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLGQ9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gZigpe28uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWZ1bmN0aW9uIG0odCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXm5eaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGcodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJm58fmUmaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHYodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KygoZXx+bileaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGIodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJml8biZ+aSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHkodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXihufH5pKSkrbytzfDAsYSkrcnwwfXIoZixvKSxmLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMsZT0wO2U8MTY7KytlKXRbZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCplKTtmb3IodmFyIG49MHx0aGlzLl9hLGk9MHx0aGlzLl9iLHI9MHx0aGlzLl9jLG89MHx0aGlzLl9kLGY9MHx0aGlzLl9lLF89MHx0aGlzLl9hLHc9MHx0aGlzLl9iLHg9MHx0aGlzLl9jLE09MHx0aGlzLl9kLFM9MHx0aGlzLl9lLEU9MDtFPDgwO0UrPTEpe3ZhciBBLEM7RTwxNj8oQT1tKG4saSxyLG8sZix0W2FbRV1dLGxbMF0sY1tFXSksQz15KF8sdyx4LE0sUyx0W3VbRV1dLGRbMF0saFtFXSkpOkU8MzI/KEE9ZyhuLGkscixvLGYsdFthW0VdXSxsWzFdLGNbRV0pLEM9YihfLHcseCxNLFMsdFt1W0VdXSxkWzFdLGhbRV0pKTpFPDQ4PyhBPXYobixpLHIsbyxmLHRbYVtFXV0sbFsyXSxjW0VdKSxDPXYoXyx3LHgsTSxTLHRbdVtFXV0sZFsyXSxoW0VdKSk6RTw2ND8oQT1iKG4saSxyLG8sZix0W2FbRV1dLGxbM10sY1tFXSksQz1nKF8sdyx4LE0sUyx0W3VbRV1dLGRbM10saFtFXSkpOihBPXkobixpLHIsbyxmLHRbYVtFXV0sbFs0XSxjW0VdKSxDPW0oXyx3LHgsTSxTLHRbdVtFXV0sZFs0XSxoW0VdKSksbj1mLGY9byxvPXAociwxMCkscj1pLGk9QSxfPVMsUz1NLE09cCh4LDEwKSx4PXcsdz1DfXZhciBrPXRoaXMuX2IrcitNfDA7dGhpcy5fYj10aGlzLl9jK28rU3wwLHRoaXMuX2M9dGhpcy5fZCtmK198MCx0aGlzLl9kPXRoaXMuX2Urbit3fDAsdGhpcy5fZT10aGlzLl9hK2kreHwwLHRoaXMuX2E9a30sZi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciB0PWkuYWxsb2M/aS5hbGxvYygyMCk6bmV3IGkoMjApO3JldHVybiB0LndyaXRlSW50MzJMRSh0aGlzLl9hLDApLHQud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksdC53cml0ZUludDMyTEUodGhpcy5fYyw4KSx0LndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSx0fSx0LmV4cG9ydHM9Zn0sZnVuY3Rpb24odCxlLG4peyhlPXQuZXhwb3J0cz1mdW5jdGlvbih0KXt0PXQudG9Mb3dlckNhc2UoKTt2YXIgbj1lW3RdO2lmKCFuKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBufSkuc2hhPW4oMTU3KSxlLnNoYTE9bigxNTgpLGUuc2hhMjI0PW4oMTU5KSxlLnNoYTI1Nj1uKDg5KSxlLnNoYTM4ND1uKDE2MCksZS5zaGE1MTI9big5MCl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS51dGlscz1uKDE2NiksZS5DaXBoZXI9bigxNjcpLGUuREVTPW4oMTY4KSxlLkNCQz1uKDE2OSksZS5FREU9bigxNzApfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNzEpLHI9bigxNzkpLG89bigxMDApO2UuY3JlYXRlQ2lwaGVyPWUuQ2lwaGVyPWkuY3JlYXRlQ2lwaGVyLGUuY3JlYXRlQ2lwaGVyaXY9ZS5DaXBoZXJpdj1pLmNyZWF0ZUNpcGhlcml2LGUuY3JlYXRlRGVjaXBoZXI9ZS5EZWNpcGhlcj1yLmNyZWF0ZURlY2lwaGVyLGUuY3JlYXRlRGVjaXBoZXJpdj1lLkRlY2lwaGVyaXY9ci5jcmVhdGVEZWNpcGhlcml2LGUubGlzdENpcGhlcnM9ZS5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPXtFQ0I6bigxNzIpLENCQzpuKDE3MyksQ0ZCOm4oMTc0KSxDRkI4Om4oMTc1KSxDRkIxOm4oMTc2KSxPRkI6bigxNzcpLENUUjpuKDk4KSxHQ006big5OCl9LHI9bigxMDApO2Zvcih2YXIgbyBpbiByKXJbb10ubW9kdWxlPWlbcltvXS5tb2RlXTt0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigyNyk7ZnVuY3Rpb24gbyh0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlPXModCk7cmV0dXJue2JsaW5kZXI6ZS50b1JlZChpLm1vbnQodC5tb2R1bHVzKSkucmVkUG93KG5ldyBpKHQucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCksdW5ibGluZGVyOmUuaW52bSh0Lm1vZHVsdXMpfX0obiksbz1uLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGE9KGkubW9udChuLm1vZHVsdXMpLG5ldyBpKHQpLm11bChyLmJsaW5kZXIpLnVtb2Qobi5tb2R1bHVzKSksdT1hLnRvUmVkKGkubW9udChuLnByaW1lMSkpLGM9YS50b1JlZChpLm1vbnQobi5wcmltZTIpKSxoPW4uY29lZmZpY2llbnQsbD1uLnByaW1lMSxkPW4ucHJpbWUyLGY9dS5yZWRQb3cobi5leHBvbmVudDEpLHA9Yy5yZWRQb3cobi5leHBvbmVudDIpO2Y9Zi5mcm9tUmVkKCkscD1wLmZyb21SZWQoKTt2YXIgbT1mLmlzdWIocCkuaW11bChoKS51bW9kKGwpO3JldHVybiBtLmltdWwoZCkscC5pYWRkKG0pLG5ldyBlKHAuaW11bChyLnVuYmxpbmRlcikudW1vZChuLm1vZHVsdXMpLnRvQXJyYXkoITEsbykpfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksbj1uZXcgaShyKGUpKTtuLmNtcCh0Lm1vZHVsdXMpPj0wfHwhbi51bW9kKHQucHJpbWUxKXx8IW4udW1vZCh0LnByaW1lMik7KW49bmV3IGkocihlKSk7cmV0dXJuIG59dC5leHBvcnRzPW8sby5nZXRyPXN9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLnV0aWxzPW4oMTcpLGkuY29tbW9uPW4oMzQpLGkuc2hhPW4oMTk1KSxpLnJpcGVtZD1uKDE5OSksaS5obWFjPW4oMjAwKSxpLnNoYTE9aS5zaGEuc2hhMSxpLnNoYTI1Nj1pLnNoYS5zaGEyNTYsaS5zaGEyMjQ9aS5zaGEuc2hhMjI0LGkuc2hhMzg0PWkuc2hhLnNoYTM4NCxpLnNoYTUxMj1pLnNoYS5zaGE1MTIsaS5yaXBlbWQxNjA9aS5yaXBlbWQucmlwZW1kMTYwfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIk1hcCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxOSkuU3ltYm9sO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3ZhciBuPUFycmF5LmlzQXJyYXk7dC5leHBvcnRzPW59LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT049IjEuMS4wIixlLlBST1RPQ09MX1ZFUlNJT049IjIuMC4wIn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMjUpLGE9bigzMDApLHU9bigxMjkpLGM9bigxNSksaD1uKDMwMSksbD1uKDM5KSxkPW4oNSksZj1uKDc0KTtmdW5jdGlvbiBwKHQsZSl7dmFyIG47cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/KG49W10sdC5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7bi5wdXNoKHAodCxlKSl9KSxQcm9taXNlLmFsbChuKSk6dCBpbnN0YW5jZW9mIE9iamVjdD8obj17fSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGkpe25baV09cCh0W2ldLGUpfSkscy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pKToic3RyaW5nIj09dHlwZW9mIHQmJiJJUFlfTU9ERUxfIj09PXQuc2xpY2UoMCwxMCk/ZS5nZXRfbW9kZWwodC5zbGljZSgxMCx0Lmxlbmd0aCkpOlByb21pc2UucmVzb2x2ZSh0KX1lLnVucGFja19tb2RlbHM9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJue19tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX21vZGVsX25hbWU6IldpZGdldE1vZGVsIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246Zi5KVVBZVEVSX1dJREdFVFNfVkVSU0lPTixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX3ZpZXdfbmFtZTpudWxsLF92aWV3X21vZHVsZV92ZXJzaW9uOmYuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT04sX3ZpZXdfY291bnQ6bnVsbH19LGUucHJvdG90eXBlLmlzTmV3PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pLHRoaXMud2lkZ2V0X21hbmFnZXI9bi53aWRnZXRfbWFuYWdlcix0aGlzLm1vZGVsX2lkPW4ubW9kZWxfaWQ7dmFyIGk9bi5jb21tO3RoaXMudmlld3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLnN0YXRlX2NoYW5nZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5fc3RhdGVfbG9jaz1udWxsLHRoaXMuX21zZ19idWZmZXI9bnVsbCx0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1udWxsLHRoaXMuX3BlbmRpbmdfbXNncz0wLHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmY9e30saT8odGhpcy5jb21tPWksaS5vbl9jbG9zZSh0aGlzLl9oYW5kbGVfY29tbV9jbG9zZWQuYmluZCh0aGlzKSksaS5vbl9tc2codGhpcy5faGFuZGxlX2NvbW1fbXNnLmJpbmQodGhpcykpLHRoaXMuY29tbV9saXZlPSEwKTp0aGlzLmNvbW1fbGl2ZT0hMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb21tX2xpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbV9saXZlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fY29tbV9saXZlPXQsdGhpcy50cmlnZ2VyKCJjb21tX2xpdmVfdXBkYXRlIil9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwIT09dGhpcy5jb21tKXt2YXIgaT17bWV0aG9kOiJjdXN0b20iLGNvbnRlbnQ6dH07dGhpcy5jb21tLnNlbmQoaSxlLHt9LG4pfX0sZS5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD0hMSksIXRoaXMuX2Nsb3NlZCl7dGhpcy5fY2xvc2VkPSEwLHRoaXMuY29tbSYmIXQmJnRoaXMuY29tbS5jbG9zZSgpLHRoaXMuc3RvcExpc3RlbmluZygpLHRoaXMudHJpZ2dlcigiZGVzdHJveSIsdGhpcyksdGhpcy5jb21tJiZkZWxldGUgdGhpcy5jb21tO3ZhciBuPU9iamVjdC5rZXlzKHRoaXMudmlld3MpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS52aWV3c1t0XS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbW92ZSgpfSl9KTtyZXR1cm4gZGVsZXRlIHRoaXMudmlld3MsUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbigpe30pfX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX2Nsb3NlZD1mdW5jdGlvbih0KXt0aGlzLnRyaWdnZXIoImNvbW06Y2xvc2UiKSx0aGlzLmNsb3NlKCEwKX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX21zZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3N3aXRjaCh0LmNvbnRlbnQuZGF0YS5tZXRob2Qpe2Nhc2UidXBkYXRlIjpyZXR1cm4gdGhpcy5zdGF0ZV9jaGFuZ2U9dGhpcy5zdGF0ZV9jaGFuZ2UudGhlbihmdW5jdGlvbigpe3ZhciBuPXQuY29udGVudC5kYXRhLnN0YXRlLGk9dC5jb250ZW50LmRhdGEuYnVmZmVyX3BhdGhzfHxbXSxyPSh0LmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhuLGksciksZS5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUobixlLndpZGdldF9tYW5hZ2VyKX0pLnRoZW4oZnVuY3Rpb24odCl7ZS5zZXRfc3RhdGUodCl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IHByb2Nlc3MgdXBkYXRlIG1zZyBmb3IgbW9kZWwgaWQ6ICIrdGhpcy5tb2RlbF9pZCwhMCkpLHRoaXMuc3RhdGVfY2hhbmdlO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdGhpcy50cmlnZ2VyKCJtc2c6Y3VzdG9tIix0LmNvbnRlbnQuZGF0YS5jb250ZW50LHQuYnVmZmVycyksUHJvbWlzZS5yZXNvbHZlKCl9fSxlLnByb3RvdHlwZS5zZXRfc3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5fc3RhdGVfbG9jaz10O3RyeXt0aGlzLnNldCh0KX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJFcnJvciBzZXR0aW5nIHN0YXRlOiAiK3QubWVzc2FnZSl9ZmluYWxseXt0aGlzLl9zdGF0ZV9sb2NrPW51bGx9fSxlLnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdHRyaWJ1dGVzO2lmKHQpe3ZhciBuPXRoaXMuZGVmYXVsdHMsaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmNhbGwodGhpcyk6bixyPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MuaXNFcXVhbChlW3RdLGlbdF0pfHwoclt0XT1lW3RdKX0pLHJ9cmV0dXJuIG8oe30sZSl9LGUucHJvdG90eXBlLl9oYW5kbGVfc3RhdHVzPWZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXRoaXMuY29tbSYmImlkbGUiPT09dC5jb250ZW50LmV4ZWN1dGlvbl9zdGF0ZSYmKHRoaXMuX3BlbmRpbmdfbXNncy0tLG51bGwhPT10aGlzLl9tc2dfYnVmZmVyJiZ0aGlzLl9wZW5kaW5nX21zZ3M8MSYmKHRoaXMuc2VuZF9zeW5jX21lc3NhZ2UodGhpcy5fbXNnX2J1ZmZlcix0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcyksdGhpcy5fbXNnX2J1ZmZlcj1udWxsLHRoaXMuX21zZ19idWZmZXJfY2FsbGJhY2tzPW51bGwpKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndpZGdldF9tYW5hZ2VyLmNhbGxiYWNrcyh0KX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1hLnNldC5jYWxsKHRoaXMsdCxlLG4pO2lmKHZvaWQgMCE9PXRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYpe3ZhciByPXRoaXMuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e307aWYodGhpcy5fc3RhdGVfbG9jaylmb3IodmFyIG89MCx1PU9iamVjdC5rZXlzKHRoaXMuX3N0YXRlX2xvY2spO288dS5sZW5ndGg7bysrKXt2YXIgYz11W29dO3JbY109PT10aGlzLl9zdGF0ZV9sb2NrW2NdJiZkZWxldGUgcltjXX10aGlzLl9idWZmZXJlZF9zdGF0ZV9kaWZmPXMuYXNzaWduKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYscil9cmV0dXJuIGl9LGUucHJvdG90eXBlLnN5bmM9ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSx2b2lkIDA9PT10aGlzLmNvbW0pdGhyb3ciU3luY2luZyBlcnJvcjogbm8gY29tbSBjaGFubmVsIGRlZmluZWQiO3ZhciBpPSJwYXRjaCI9PT10P24uYXR0cnM6ZS5nZXRfc3RhdGUobi5kcm9wX2RlZmF1bHRzKTtpZih0aGlzLl9zdGF0ZV9sb2NrKWZvcih2YXIgcj0wLG89T2JqZWN0LmtleXModGhpcy5fc3RhdGVfbG9jayk7cjxvLmxlbmd0aDtyKyspe3ZhciBhPW9bcl07aVthXT09PXRoaXMuX3N0YXRlX2xvY2tbYV0mJmRlbGV0ZSBpW2FdfXZhciB1PXRoaXMuc2VyaWFsaXplKGkpO2lmKE9iamVjdC5rZXlzKHUpLmxlbmd0aD4wKXt2YXIgYz1uLmNhbGxiYWNrc3x8dGhpcy5jYWxsYmFja3MoKTtpZih0aGlzLl9wZW5kaW5nX21zZ3M+PTEpe3N3aXRjaCh0KXtjYXNlInBhdGNoIjp0aGlzLl9tc2dfYnVmZmVyPXMuYXNzaWduKHRoaXMuX21zZ19idWZmZXJ8fHt9LHUpO2JyZWFrO2Nhc2UidXBkYXRlIjpjYXNlImNyZWF0ZSI6dGhpcy5fbXNnX2J1ZmZlcj11O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWNvZ25pemVkIHN5bmNpbmcgbWV0aG9kIn10aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1jfWVsc2UgdGhpcy5zZW5kX3N5bmNfbWVzc2FnZShpLGMpfX0sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmNvbnN0cnVjdG9yLnNlcmlhbGl6ZXJzfHx7fSxuPTAsaT1PYmplY3Qua2V5cyh0KTtuPGkubGVuZ3RoO24rKyl7dmFyIHI9aVtuXTt0cnl7ZVtyXSYmZVtyXS5zZXJpYWxpemU/dFtyXT1lW3JdLnNlcmlhbGl6ZSh0W3JdLHRoaXMpOnRbcl09SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0W3JdKSksdFtyXSYmdFtyXS50b0pTT04mJih0W3JdPXRbcl0udG9KU09OKCkpfWNhdGNoKHQpe3Rocm93IGNvbnNvbGUuZXJyb3IoIkVycm9yIHNlcmlhbGl6aW5nIHdpZGdldCBzdGF0ZSBhdHRyaWJ1dGU6ICIsciksdH19cmV0dXJuIHR9LGUucHJvdG90eXBlLnNlbmRfc3luY19tZXNzYWdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt2b2lkIDA9PT1lJiYoZT17fSk7dHJ5e2UuaW9wdWI9ZS5pb3B1Ynx8e307dmFyIGk9ZS5pb3B1Yi5zdGF0dXM7ZS5pb3B1Yi5zdGF0dXM9ZnVuY3Rpb24odCl7bi5faGFuZGxlX3N0YXR1cyh0KSxpJiZpKHQpfTt2YXIgcj1zLnJlbW92ZV9idWZmZXJzKHQpO3RoaXMuY29tbS5zZW5kKHttZXRob2Q6InVwZGF0ZSIsc3RhdGU6ci5zdGF0ZSxidWZmZXJfcGF0aHM6ci5idWZmZXJfcGF0aHN9LGUse30sci5idWZmZXJzKSx0aGlzLl9wZW5kaW5nX21zZ3MrK31jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJDb3VsZCBub3Qgc2VuZCB3aWRnZXQgc3luYyBtZXNzYWdlIix0KX19LGUucHJvdG90eXBlLnNhdmVfY2hhbmdlcz1mdW5jdGlvbih0KXtpZih0aGlzLmNvbW1fbGl2ZSl7dmFyIGU9e3BhdGNoOiEwfTt0JiYoZS5jYWxsYmFja3M9dCksdGhpcy5zYXZlKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYsZSksdGhpcy5fYnVmZmVyZWRfc3RhdGVfZGlmZj17fX19LGUucHJvdG90eXBlLm9uX3NvbWVfY2hhbmdlPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dC5zb21lKHRoaXMuaGFzQ2hhbmdlZCx0aGlzKSYmZS5hcHBseShuLGFyZ3VtZW50cyl9LHRoaXMpfSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24odCl7cmV0dXJuIklQWV9NT0RFTF8iK3RoaXMubW9kZWxfaWR9LGUuX2Rlc2VyaWFsaXplX3N0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLnNlcmlhbGl6ZXJzO2lmKGkpZm9yKHZhciByIGluIG49e30sdClpW3JdJiZpW3JdLmRlc2VyaWFsaXplP25bcl09aVtyXS5kZXNlcmlhbGl6ZSh0W3JdLGUpOm5bcl09dFtyXTtlbHNlIG49dDtyZXR1cm4gcy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pfSxlfSh1Lk1vZGVsKTtlLldpZGdldE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfZG9tX2NsYXNzZXM6W119KX0sZS5zZXJpYWxpemVycz1vKHt9LG0uc2VyaWFsaXplcnMse2xheW91dDp7ZGVzZXJpYWxpemU6cH0sc3R5bGU6e2Rlc2VyaWFsaXplOnB9fSksZX0obSk7ZS5ET01XaWRnZXRNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuY2FsbCh0aGlzLGUpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlIixmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5rZXlzKGUubW9kZWwuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e30pOyJfdmlld19jb3VudCI9PT10WzBdJiYxPT09dC5sZW5ndGh8fGUudXBkYXRlKCl9KSx0aGlzLm9wdGlvbnM9dC5vcHRpb25zLHRoaXMub25jZSgicmVtb3ZlIixmdW5jdGlvbigpeyJudW1iZXIiPT10eXBlb2YgZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikmJihlLm1vZGVsLnNldCgiX3ZpZXdfY291bnQiLGUubW9kZWwuZ2V0KCJfdmlld19jb3VudCIpLTEpLGUubW9kZWwuc2F2ZV9jaGFuZ2VzKCkpfSksdGhpcy5vbmNlKCJkaXNwbGF5ZWQiLGZ1bmN0aW9uKCl7Im51bWJlciI9PXR5cGVvZiBlLm1vZGVsLmdldCgiX3ZpZXdfY291bnQiKSYmKGUubW9kZWwuc2V0KCJfdmlld19jb3VudCIsZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikrMSksZS5tb2RlbC5zYXZlX2NoYW5nZXMoKSl9KSx0aGlzLmRpc3BsYXllZD1uZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uub25jZSgiZGlzcGxheWVkIix0KX0pfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmNyZWF0ZV9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3JldHVybiBlPW8oe3BhcmVudDp0aGlzfSxlKSx0aGlzLm1vZGVsLndpZGdldF9tYW5hZ2VyLmNyZWF0ZV92aWV3KHQsZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgY2hpbGQgdmlldyIsITApKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuY2FsbGJhY2tzKHRoaXMpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbC5zZW5kKHQsdGhpcy5jYWxsYmFja3MoKSxlKX0sZS5wcm90b3R5cGUudG91Y2g9ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnNhdmVfY2hhbmdlcyh0aGlzLmNhbGxiYWNrcygpKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpLHRoaXMudHJpZ2dlcigicmVtb3ZlIiksdGhpc30sZX0oaC5OYXRpdmVWaWV3KTtlLldpZGdldFZpZXc9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlfShsLldpZGdldCk7ZS5KdXB5dGVyUGhvc3Bob3JXaWRnZXQ9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfZG9tX2NsYXNzZXMiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5wcmV2aW91cygiX2RvbV9jbGFzc2VzIik7bi51cGRhdGVfY2xhc3NlcyhpLGUpfSksdGhpcy5sYXlvdXRQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmxheW91dCIsZnVuY3Rpb24odCxlKXtuLnNldExheW91dChlLHQucHJldmlvdXMoImxheW91dCIpKX0pLHRoaXMuc3R5bGVQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOnN0eWxlIixmdW5jdGlvbih0LGUpe24uc2V0U3R5bGUoZSx0LnByZXZpb3VzKCJzdHlsZSIpKX0pLHRoaXMuZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtuLnVwZGF0ZV9jbGFzc2VzKFtdLG4ubW9kZWwuZ2V0KCJfZG9tX2NsYXNzZXMiKSksbi5zZXRMYXlvdXQobi5tb2RlbC5nZXQoImxheW91dCIpKSxuLnNldFN0eWxlKG4ubW9kZWwuZ2V0KCJzdHlsZSIpKX0pLHRoaXMuX2NvbW1fbGl2ZV91cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNvbW1fbGl2ZV91cGRhdGUiLGZ1bmN0aW9uKCl7bi5fY29tbV9saXZlX3VwZGF0ZSgpfSl9LGUucHJvdG90eXBlLnNldExheW91dD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dCYmKHRoaXMubGF5b3V0UHJvbWlzZT10aGlzLmxheW91dFByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5sYXlvdXQoKSxuLnN0b3BMaXN0ZW5pbmcoZS5tb2RlbCksZS5yZW1vdmUoKSksbi5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudHJpZ2dlcigiZGlzcGxheWVkIiksbi5saXN0ZW5Ubyh0Lm1vZGVsLCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZShuLnBXaWRnZXQsbC5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KSxkLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKG4ucFdpZGdldCxsLldpZGdldC5SZXNpemVNZXNzYWdlLlVua25vd25TaXplKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBMYXlvdXRWaWV3IHRvIERPTVdpZGdldFZpZXciLCEwKSl9KSl9LGUucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0JiYodGhpcy5zdHlsZVByb21pc2U9dGhpcy5zdHlsZVByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5zdHlsZSgpLG4uc3RvcExpc3RlbmluZyhlLm1vZGVsKSxlLnJlbW92ZSgpKSxuLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG4uZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC50cmlnZ2VyKCJkaXNwbGF5ZWQiKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBzdHlsZVZpZXcgdG8gRE9NV2lkZ2V0VmlldyIsITApKX0pKX0sZS5wcm90b3R5cGUudXBkYXRlX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPXRoaXMuZWwpLHMuZGlmZmVyZW5jZSh0LGUpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5yZW1vdmUodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5yZXBsYWNlKHQsIiIpKX0pLHMuZGlmZmVyZW5jZShlLHQpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5hZGQodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5jb25jYXQoIiAiLHQpKX0pfSxlLnByb3RvdHlwZS51cGRhdGVfbWFwcGVkX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMubW9kZWwucHJldmlvdXMoZSkscj10W2ldP3RbaV06W10sbz10W2k9dGhpcy5tb2RlbC5nZXQoZSldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhyLG8sbnx8dGhpcy5lbCl9LGUucHJvdG90eXBlLnNldF9tYXBwZWRfY2xhc3Nlcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5tb2RlbC5nZXQoZSkscj10W2ldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhbXSxyLG58fHRoaXMuZWwpfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdGhpcy4kZWw9dCBpbnN0YW5jZW9mIGM/dDpjKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF0sdGhpcy5wV2lkZ2V0PW5ldyBiKHtub2RlOnQsdmlldzp0aGlzfSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnByb2Nlc3NQaG9zcGhvck1lc3NhZ2U9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMudHJpZ2dlcigiZGlzcGxheWVkIil9fSxlLnByb3RvdHlwZS5fY29tbV9saXZlX3VwZGF0ZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuY29tbV9saXZlP3RoaXMucFdpZGdldC5yZW1vdmVDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpOnRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpfSxlfSh2KTtlLkRPTVdpZGdldFZpZXc9eX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDIpLGE9big5KSx1PW4oNSksYz1uKDMwKSxoPW4oNDApLGw9bigyMiksZD1uKDQxKSxmPW4oNykscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9ib3g9bnVsbCxuLl9hbGlnbm1lbnQ9InN0YXJ0IixuLl9kaXJlY3Rpb249InRvcC10by1ib3R0b20iLHZvaWQgMCE9PWUuZGlyZWN0aW9uJiYobi5fZGlyZWN0aW9uPWUuZGlyZWN0aW9uKSx2b2lkIDAhPT1lLmFsaWdubWVudCYmKG4uX2FsaWdubWVudD1lLmFsaWdubWVudCksdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3MuZWFjaCh0aGlzLl9pdGVtcyxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2JveD1udWxsLHRoaXMuX2l0ZW1zLmxlbmd0aD0wLHRoaXMuX3NpemVycy5sZW5ndGg9MCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZGlyZWN0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RpcmVjdGlvbiE9PXQmJih0aGlzLl9kaXJlY3Rpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXQsdGhpcy5wYXJlbnQuZml0KCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9hbGlnbm1lbnQhPT10JiYodGhpcy5fYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQmJih0aGlzLnBhcmVudC5kYXRhc2V0LmFsaWdubWVudD10LHRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXRoaXMuZGlyZWN0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7cy5BcnJheUV4dC5pbnNlcnQodGhpcy5faXRlbXMsdCxuZXcgbC5MYXlvdXRJdGVtKGUpKSxzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9zaXplcnMsdCxuZXcgaC5Cb3hTaXplciksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoZS5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUubW92ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7cy5BcnJheUV4dC5tb3ZlKHRoaXMuX2l0ZW1zLHQsZSkscy5BcnJheUV4dC5tb3ZlKHRoaXMuX3NpemVycyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49MCxpPXRoaXMuX2l0ZW1zLmxlbmd0aDtuPGk7KytuKXQrPSshdGhpcy5faXRlbXNbbl0uaXNIaWRkZW47dGhpcy5fZml4ZWQ9dGhpcy5fc3BhY2luZypNYXRoLm1heCgwLHQtMSk7dmFyIHI9by5pc0hvcml6b250YWwodGhpcy5fZGlyZWN0aW9uKSxzPXI/dGhpcy5fZml4ZWQ6MCxjPXI/MDp0aGlzLl9maXhlZDtmb3Iobj0wLGk9dGhpcy5faXRlbXMubGVuZ3RoO248aTsrK24pe3ZhciBoPXRoaXMuX2l0ZW1zW25dLGw9dGhpcy5fc2l6ZXJzW25dO2guaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnNpemVIaW50PWUuZ2V0U2l6ZUJhc2lzKGgud2lkZ2V0KSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxyPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW07c3dpdGNoKHRoaXMuX2RpcmVjdGlvbil7Y2FzZSJsZWZ0LXRvLXJpZ2h0IjpvPWguQm94RW5naW5lLmNhbGModGhpcy5fc2l6ZXJzLE1hdGgubWF4KDAsYy10aGlzLl9maXhlZCkpO2JyZWFrO2Nhc2UidG9wLXRvLWJvdHRvbSI6bz1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpKTticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKSksdSs9YzticmVhaztjYXNlImJvdHRvbS10by10b3AiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxsLXRoaXMuX2ZpeGVkKSkscys9bDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgZD0wLGY9MDtpZihvPjApc3dpdGNoKHRoaXMuX2FsaWdubWVudCl7Y2FzZSJzdGFydCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmQ9MCxmPW8vMjticmVhaztjYXNlImVuZCI6ZD0wLGY9bzticmVhaztjYXNlImp1c3RpZnkiOmQ9by9uLGY9MDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1mb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBwPXRoaXMuX2l0ZW1zW2ldO2lmKCFwLmlzSGlkZGVuKXt2YXIgbT10aGlzLl9zaXplcnNbaV0uc2l6ZTtzd2l0Y2godGhpcy5fZGlyZWN0aW9uKXtjYXNlImxlZnQtdG8tcmlnaHQiOnAudXBkYXRlKHUrZixzLG0rZCxsKSx1Kz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInRvcC10by1ib3R0b20iOnAudXBkYXRlKHUscytmLGMsbStkKSxzKz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOnAudXBkYXRlKHUtZi1tLWQscyxtK2QsbCksdS09bStkK3RoaXMuX3NwYWNpbmc7YnJlYWs7Y2FzZSJib3R0b20tdG8tdG9wIjpwLnVwZGF0ZSh1LHMtZi1tLWQsYyxtK2QpLHMtPW0rZCt0aGlzLl9zcGFjaW5nO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifX19fX0sZX0oZC5QYW5lbExheW91dCk7ZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LmdldFN0cmV0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIG8uc3RyZXRjaFByb3BlcnR5LmdldCh0KX0sdC5zZXRTdHJldGNoPWZ1bmN0aW9uKHQsZSl7by5zdHJldGNoUHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBvLnNpemVCYXNpc1Byb3BlcnR5LmdldCh0KX0sdC5zZXRTaXplQmFzaXM9ZnVuY3Rpb24odCxlKXtvLnNpemVCYXNpc1Byb3BlcnR5LnNldCh0LGUpfX0ocD1lLkJveExheW91dHx8KGUuQm94TGF5b3V0PXt9KSksZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBwJiZ0LnBhcmVudC5maXQoKX10LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuc2l6ZUJhc2lzUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToic2l6ZUJhc2lzIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKHQpe3JldHVybiJsZWZ0LXRvLXJpZ2h0Ij09PXR8fCJyaWdodC10by1sZWZ0Ij09PXR9LHQuY2xhbXBTcGFjaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGguZmxvb3IodCkpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMSkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fbGFiZWw9IiIsdGhpcy5fY2FwdGlvbj0iIix0aGlzLl9tbmVtb25pYz0tMSx0aGlzLl9pY29uQ2xhc3M9IiIsdGhpcy5faWNvbkxhYmVsPSIiLHRoaXMuX2NsYXNzTmFtZT0iIix0aGlzLl9jbG9zYWJsZT0hMSx0aGlzLl9jaGFuZ2VkPW5ldyBpLlNpZ25hbCh0aGlzKSx0aGlzLm93bmVyPXQub3duZXIsdm9pZCAwIT09dC5sYWJlbCYmKHRoaXMuX2xhYmVsPXQubGFiZWwpLHZvaWQgMCE9PXQubW5lbW9uaWMmJih0aGlzLl9tbmVtb25pYz10Lm1uZW1vbmljKSx2b2lkIDAhPT10Lmljb24mJih0aGlzLl9pY29uQ2xhc3M9dC5pY29uKSx2b2lkIDAhPT10Lmljb25DbGFzcyYmKHRoaXMuX2ljb25DbGFzcz10Lmljb25DbGFzcyksdm9pZCAwIT09dC5pY29uTGFiZWwmJih0aGlzLl9pY29uTGFiZWw9dC5pY29uTGFiZWwpLHZvaWQgMCE9PXQuY2FwdGlvbiYmKHRoaXMuX2NhcHRpb249dC5jYXB0aW9uKSx2b2lkIDAhPT10LmNsYXNzTmFtZSYmKHRoaXMuX2NsYXNzTmFtZT10LmNsYXNzTmFtZSksdm9pZCAwIT09dC5jbG9zYWJsZSYmKHRoaXMuX2Nsb3NhYmxlPXQuY2xvc2FibGUpLHRoaXMuX2RhdGFzZXQ9dC5kYXRhc2V0fHx7fX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJsYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYWJlbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2xhYmVsIT09dCYmKHRoaXMuX2xhYmVsPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibW5lbW9uaWMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW5lbW9uaWN9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tbmVtb25pYyE9PXQmJih0aGlzLl9tbmVtb25pYz10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LHNldDpmdW5jdGlvbih0KXt0aGlzLmljb25DbGFzcz10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ljb25DbGFzc30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2ljb25DbGFzcyE9PXQmJih0aGlzLl9pY29uQ2xhc3M9dCx0aGlzLl9jaGFuZ2VkLmVtaXQodm9pZCAwKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faWNvbkxhYmVsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faWNvbkxhYmVsIT09dCYmKHRoaXMuX2ljb25MYWJlbD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNhcHRpb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FwdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2NhcHRpb24hPT10JiYodGhpcy5fY2FwdGlvbj10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNsYXNzTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jbGFzc05hbWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbGFzc05hbWUhPT10JiYodGhpcy5fY2xhc3NOYW1lPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY2xvc2FibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xvc2FibGV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbG9zYWJsZSE9PXQmJih0aGlzLl9jbG9zYWJsZT10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImRhdGFzZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXNldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RhdGFzZXQhPT10JiYodGhpcy5fZGF0YXNldD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpO2UuVGl0bGU9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9mbj10fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5fZm59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKHRoaXMuX2ZuKXt2YXIgdD10aGlzLl9mbjt0aGlzLl9mbj1udWxsLHQoKX19LHR9KCk7ZS5EaXNwb3NhYmxlRGVsZWdhdGU9cjt2YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9pdGVtcz1uZXcgU2V0fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5faXRlbXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2l0ZW1zLmNsZWFyKCkpfSx0LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXMuaGFzKHQpfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuZGVsZXRlKHQpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX2l0ZW1zLmNsZWFyKCl9LHR9KCk7ZS5EaXNwb3NhYmxlU2V0PW8sZnVuY3Rpb24odCl7dC5mcm9tPWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyB0O3JldHVybiBpLmVhY2goZSxmdW5jdGlvbih0KXtuLmFkZCh0KX0pLG59fShvPWUuRGlzcG9zYWJsZVNldHx8KGUuRGlzcG9zYWJsZVNldD17fSkpLGUuRGlzcG9zYWJsZVNldD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEtleWJvYXJkTGF5b3V0PWZ1bmN0aW9uKCl7cmV0dXJuIGkua2V5Ym9hcmRMYXlvdXR9LGUuc2V0S2V5Ym9hcmRMYXlvdXQ9ZnVuY3Rpb24odCl7aS5rZXlib2FyZExheW91dD10fTt2YXIgaSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3RoaXMubmFtZT1lLHRoaXMuX2NvZGVzPW4sdGhpcy5fa2V5cz10LmV4dHJhY3RLZXlzKG4pfXJldHVybiB0LnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2tleXMpfSx0LnByb3RvdHlwZS5pc1ZhbGlkS2V5PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluIHRoaXMuX2tleXN9LHQucHJvdG90eXBlLmtleUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY29kZXNbdC5rZXlDb2RlXXx8IiJ9LHR9KCk7ZS5LZXljb2RlTGF5b3V0PXIsZnVuY3Rpb24odCl7dC5leHRyYWN0S2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcih2YXIgbiBpbiB0KWVbdFtuXV09ITA7cmV0dXJuIGV9fShyPWUuS2V5Y29kZUxheW91dHx8KGUuS2V5Y29kZUxheW91dD17fSkpLGUuS2V5Y29kZUxheW91dD1yLGUuRU5fVVM9bmV3IHIoImVuLXVzIix7ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEzOiJFbnRlciIsMTk6IlBhdXNlIiwyNzoiRXNjYXBlIiwzMjoiU3BhY2UiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNDg6IjAiLDQ5OiIxIiw1MDoiMiIsNTE6IjMiLDUyOiI0Iiw1MzoiNSIsNTQ6IjYiLDU1OiI3Iiw1NjoiOCIsNTc6IjkiLDU5OiI7Iiw2MToiPSIsNjU6IkEiLDY2OiJCIiw2NzoiQyIsNjg6IkQiLDY5OiJFIiw3MDoiRiIsNzE6IkciLDcyOiJIIiw3MzoiSSIsNzQ6IkoiLDc1OiJLIiw3NjoiTCIsNzc6Ik0iLDc4OiJOIiw3OToiTyIsODA6IlAiLDgxOiJRIiw4MjoiUiIsODM6IlMiLDg0OiJUIiw4NToiVSIsODY6IlYiLDg3OiJXIiw4ODoiWCIsODk6IlkiLDkwOiJaIiw5MzoiQ29udGV4dE1lbnUiLDk2OiIwIiw5NzoiMSIsOTg6IjIiLDk5OiIzIiwxMDA6IjQiLDEwMToiNSIsMTAyOiI2IiwxMDM6IjciLDEwNDoiOCIsMTA1OiI5IiwxMDY6IioiLDEwNzoiKyIsMTA5OiItIiwxMTA6Ii4iLDExMToiLyIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTczOiItIiwxODY6IjsiLDE4NzoiPSIsMTg4OiIsIiwxODk6Ii0iLDE5MDoiLiIsMTkxOiIvIiwxOTI6ImAiLDIxOToiWyIsMjIwOiJcXCIsMjIxOiJdIiwyMjI6IicifSksZnVuY3Rpb24odCl7dC5rZXlib2FyZExheW91dD1lLkVOX1VTfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1NiksYz1uKDUpLGg9bigxMSksbD1uKDU1KSxkPW4oNzcpLGY9big3KSxwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOm8uY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2N1cnJlbnRJbmRleD0tMSxpLl90aXRsZXM9W10saS5fcHJldmlvdXNUaXRsZT1udWxsLGkuX2RyYWdEYXRhPW51bGwsaS5fdGFiTW92ZWQ9bmV3IGguU2lnbmFsKGkpLGkuX2N1cnJlbnRDaGFuZ2VkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJDbG9zZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5fdGFiRGV0YWNoUmVxdWVzdGVkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJBY3RpdmF0ZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1UYWJCYXIiKSxpLnNldEZsYWcoZi5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS50YWJzTW92YWJsZT1uLnRhYnNNb3ZhYmxlfHwhMSxpLmFsbG93RGVzZWxlY3Q9bi5hbGxvd0Rlc2VsZWN0fHwhMSxpLmluc2VydEJlaGF2aW9yPW4uaW5zZXJ0QmVoYXZpb3J8fCJzZWxlY3QtdGFiLWlmLW5lZWRlZCIsaS5yZW1vdmVCZWhhdmlvcj1uLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LXRhYi1hZnRlciIsaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLl9vcmllbnRhdGlvbj1uLm9yaWVudGF0aW9ufHwiaG9yaXpvbnRhbCIsaS5kYXRhc2V0Lm9yaWVudGF0aW9uPWkuX29yaWVudGF0aW9uLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fdGl0bGVzLmxlbmd0aD0wLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJNb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYkFjdGl2YXRlUmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RhYkFjdGl2YXRlUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFiQ2xvc2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiQ2xvc2VSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJEZXRhY2hSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiRGV0YWNoUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFRpdGxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpdGxlc1t0aGlzLl9jdXJyZW50SW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdXJyZW50SW5kZXg9dD90aGlzLl90aXRsZXMuaW5kZXhPZih0KTotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImN1cnJlbnRJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50SW5kZXh9LHNldDpmdW5jdGlvbih0KXtpZigodDwwfHx0Pj10aGlzLl90aXRsZXMubGVuZ3RoKSYmKHQ9LTEpLHRoaXMuX2N1cnJlbnRJbmRleCE9PXQpe3ZhciBlPXRoaXMuX2N1cnJlbnRJbmRleCxuPXRoaXMuX3RpdGxlc1tlXXx8bnVsbCxpPXQscj10aGlzLl90aXRsZXNbaV18fG51bGw7dGhpcy5fY3VycmVudEluZGV4PWksdGhpcy5fcHJldmlvdXNUaXRsZT1uLHRoaXMudXBkYXRlKCksdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDplLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6aSxjdXJyZW50VGl0bGU6cn0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0aXRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGl0bGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29udGVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtVGFiQmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRUYWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5zZXJ0VGFiKHRoaXMuX3RpdGxlcy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFRhYj1mdW5jdGlvbih0LGUpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBuPW8uYXNUaXRsZShlKSxpPXRoaXMuX3RpdGxlcy5pbmRleE9mKG4pLHI9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX3RpdGxlcy5sZW5ndGgpKTtyZXR1cm4tMT09PWk/KHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3RpdGxlcyxyLG4pLG4uY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHRoaXMudXBkYXRlKCksdGhpcy5fYWRqdXN0Q3VycmVudEZvckluc2VydChyLG4pLG4pOihyPT09dGhpcy5fdGl0bGVzLmxlbmd0aCYmci0tLGk9PT1yP246KHMuQXJyYXlFeHQubW92ZSh0aGlzLl90aXRsZXMsaSxyKSx0aGlzLnVwZGF0ZSgpLHRoaXMuX2FkanVzdEN1cnJlbnRGb3JNb3ZlKGksciksbikpfSxlLnByb3RvdHlwZS5yZW1vdmVUYWI9ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVUYWJBdCh0aGlzLl90aXRsZXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVRhYkF0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBlPXMuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fdGl0bGVzLHQpO2UmJihlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlPT09dGhpcy5fcHJldmlvdXNUaXRsZSYmKHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCksdGhpcy51cGRhdGUoKSx0aGlzLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlKHQsZSkpfSxlLnByb3RvdHlwZS5jbGVhclRhYnM9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fdGl0bGVzLmxlbmd0aCl7dGhpcy5fcmVsZWFzZU1vdXNlKCk7Zm9yKHZhciB0PTAsZT10aGlzLl90aXRsZXM7dDxlLmxlbmd0aDt0Kyspe2VbdF0uY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpfXZhciBuPXRoaXMuY3VycmVudEluZGV4LGk9dGhpcy5jdXJyZW50VGl0bGU7dGhpcy5fY3VycmVudEluZGV4PS0xLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0aGlzLl90aXRsZXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSwtMSE9PW4mJnRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6bixwcmV2aW91c1RpdGxlOmksY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSl9fSxlLnByb3RvdHlwZS5yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJtb3VzZWRvd24iOnRoaXMuX2V2dE1vdXNlRG93bih0KTticmVhaztjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl90aXRsZXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5jdXJyZW50VGl0bGUscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10sdT1hPT09aSxjPXU/czpzLW8tMTtyW29dPW4ucmVuZGVyVGFiKHt0aXRsZTphLGN1cnJlbnQ6dSx6SW5kZXg6Y30pfWwuVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksMjc9PT10LmtleUNvZGUmJnRoaXMuX3JlbGVhc2VNb3VzZSgpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VEb3duPWZ1bmN0aW9uKHQpe2lmKCgwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbikmJiF0aGlzLl9kcmFnRGF0YSl7dmFyIGU9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixuPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoZSxmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2lmKC0xIT09biYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2RyYWdEYXRhPXt0YWI6ZVtuXSxpbmRleDpuLHByZXNzWDp0LmNsaWVudFgscHJlc3NZOnQuY2xpZW50WSx0YWJQb3M6LTEsdGFiU2l6ZTotMSx0YWJQcmVzc1BvczotMSx0YXJnZXRJbmRleDotMSx0YWJMYXlvdXQ6bnVsbCxjb250ZW50UmVjdDpudWxsLG92ZXJyaWRlOm51bGwsZHJhZ0FjdGl2ZTohMSxkcmFnQWJvcnRlZDohMSxkZXRhY2hSZXF1ZXN0ZWQ6ITF9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLDEhPT10LmJ1dHRvbikpe3ZhciBpPWVbbl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8KHRoaXMudGFic01vdmFibGUmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKSksdGhpcy5hbGxvd0Rlc2VsZWN0JiZ0aGlzLmN1cnJlbnRJbmRleD09PW4/dGhpcy5jdXJyZW50SW5kZXg9LTE6dGhpcy5jdXJyZW50SW5kZXg9biwtMSE9PXRoaXMuY3VycmVudEluZGV4JiZ0aGlzLl90YWJBY3RpdmF0ZVJlcXVlc3RlZC5lbWl0KHtpbmRleDp0aGlzLmN1cnJlbnRJbmRleCx0aXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pKX19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2RyYWdEYXRhO2lmKGUpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW47aWYoZS5kcmFnQWN0aXZlfHxvLmRyYWdFeGNlZWRlZChlLHQpKXtpZighZS5kcmFnQWN0aXZlKXt2YXIgaT1lLnRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsiaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbj8oZS50YWJQb3M9ZS50YWIub2Zmc2V0TGVmdCxlLnRhYlNpemU9aS53aWR0aCxlLnRhYlByZXNzUG9zPWUucHJlc3NYLWkubGVmdCk6KGUudGFiUG9zPWUudGFiLm9mZnNldFRvcCxlLnRhYlNpemU9aS5oZWlnaHQsZS50YWJQcmVzc1Bvcz1lLnByZXNzWS1pLnRvcCksZS50YWJMYXlvdXQ9by5zbmFwVGFiTGF5b3V0KG4sdGhpcy5fb3JpZW50YXRpb24pLGUuY29udGVudFJlY3Q9dGhpcy5jb250ZW50Tm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlLm92ZXJyaWRlPXUuRHJhZy5vdmVycmlkZUN1cnNvcigiZGVmYXVsdCIpLGUudGFiLmNsYXNzTGlzdC5hZGQoInAtbW9kLWRyYWdnaW5nIiksdGhpcy5hZGRDbGFzcygicC1tb2QtZHJhZ2dpbmciKSxlLmRyYWdBY3RpdmU9ITB9aWYoIWUuZGV0YWNoUmVxdWVzdGVkJiZvLmRldGFjaEV4Y2VlZGVkKGUsdCkpe2UuZGV0YWNoUmVxdWVzdGVkPSEwO3ZhciByPWUuaW5kZXgscz10LmNsaWVudFgsYT10LmNsaWVudFksYz1uW3JdLGg9dGhpcy5fdGl0bGVzW3JdO2lmKHRoaXMuX3RhYkRldGFjaFJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOmgsdGFiOmMsY2xpZW50WDpzLGNsaWVudFk6YX0pLGUuZHJhZ0Fib3J0ZWQpcmV0dXJufW8ubGF5b3V0VGFicyhuLGUsdCx0aGlzLl9vcmllbnRhdGlvbil9fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbil7dmFyIG49dGhpcy5fZHJhZ0RhdGE7aWYobil7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcywhMCksIW4uZHJhZ0FjdGl2ZSl7dGhpcy5fZHJhZ0RhdGE9bnVsbDt2YXIgaT10aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHI9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChpLGZ1bmN0aW9uKGUpe3JldHVybiBhLkVsZW1lbnRFeHQuaGl0VGVzdChlLHQuY2xpZW50WCx0LmNsaWVudFkpfSk7aWYociE9PW4uaW5kZXgpcmV0dXJuO3ZhciB1PXRoaXMuX3RpdGxlc1tyXTtpZighdS5jbG9zYWJsZSlyZXR1cm47aWYoMT09PXQuYnV0dG9uKXJldHVybiB2b2lkIHRoaXMuX3RhYkNsb3NlUmVxdWVzdGVkLmVtaXQoe2luZGV4OnIsdGl0bGU6dX0pO3ZhciBoPWlbcl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtyZXR1cm4gaCYmaC5jb250YWlucyh0LnRhcmdldCk/dm9pZCB0aGlzLl90YWJDbG9zZVJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOnV9KTp2b2lkIDB9aWYoMD09PXQuYnV0dG9uKXtvLmZpbmFsaXplVGFiUG9zaXRpb24obix0aGlzLl9vcmllbnRhdGlvbiksbi50YWIuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtZHJhZ2dpbmciKTt2YXIgbD1vLnBhcnNlVHJhbnNpdGlvbkR1cmF0aW9uKG4udGFiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIW4uZHJhZ0Fib3J0ZWQpe2UuX2RyYWdEYXRhPW51bGwsby5yZXNldFRhYlBvc2l0aW9ucyhlLmNvbnRlbnROb2RlLmNoaWxkcmVuLGUuX29yaWVudGF0aW9uKSxuLm92ZXJyaWRlLmRpc3Bvc2UoKSxlLnJlbW92ZUNsYXNzKCJwLW1vZC1kcmFnZ2luZyIpO3ZhciB0PW4uaW5kZXgsaT1uLnRhcmdldEluZGV4Oy0xIT09aSYmdCE9PWkmJihzLkFycmF5RXh0Lm1vdmUoZS5fdGl0bGVzLHQsaSksZS5fYWRqdXN0Q3VycmVudEZvck1vdmUodCxpKSxlLl90YWJNb3ZlZC5lbWl0KHtmcm9tSW5kZXg6dCx0b0luZGV4OmksdGl0bGU6ZS5fdGl0bGVzW2ldfSksYy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KSl9fSxsKX19fX0sZS5wcm90b3R5cGUuX3JlbGVhc2VNb3VzZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RyYWdEYXRhO3QmJih0aGlzLl9kcmFnRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHQuZHJhZ0Fib3J0ZWQ9ITAsdC5kcmFnQWN0aXZlJiYoby5yZXNldFRhYlBvc2l0aW9ucyh0aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHRoaXMuX29yaWVudGF0aW9uKSx0Lm92ZXJyaWRlLmRpc3Bvc2UoKSx0LnRhYi5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1kcmFnZ2luZyIpLHRoaXMucmVtb3ZlQ2xhc3MoInAtbW9kLWRyYWdnaW5nIikpKX0sZS5wcm90b3R5cGUuX2FkanVzdEN1cnJlbnRGb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmN1cnJlbnRUaXRsZSxpPXRoaXMuX2N1cnJlbnRJbmRleCxyPXRoaXMuaW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC10YWIiPT09cnx8InNlbGVjdC10YWItaWYtbmVlZGVkIj09PXImJi0xPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PXQsdGhpcy5fcHJldmlvdXNUaXRsZT1uLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDppLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6dCxjdXJyZW50VGl0bGU6ZX0pO2k+PXQmJnRoaXMuX2N1cnJlbnRJbmRleCsrfSxlLnByb3RvdHlwZS5fYWRqdXN0Q3VycmVudEZvck1vdmU9ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJyZW50SW5kZXg9PT10P3RoaXMuX2N1cnJlbnRJbmRleD1lOnRoaXMuX2N1cnJlbnRJbmRleDx0JiZ0aGlzLl9jdXJyZW50SW5kZXg+PWU/dGhpcy5fY3VycmVudEluZGV4Kys6dGhpcy5fY3VycmVudEluZGV4PnQmJnRoaXMuX2N1cnJlbnRJbmRleDw9ZSYmdGhpcy5fY3VycmVudEluZGV4LS19LGUucHJvdG90eXBlLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudEluZGV4LGk9dGhpcy5yZW1vdmVCZWhhdmlvcjtpZihuPT09dCl7aWYoMD09PXRoaXMuX3RpdGxlcy5sZW5ndGgpcmV0dXJuIHRoaXMuX2N1cnJlbnRJbmRleD0tMSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSk7aWYoInNlbGVjdC10YWItYWZ0ZXIiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWluKHQsdGhpcy5fdGl0bGVzLmxlbmd0aC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXRhYi1iZWZvcmUiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWF4KDAsdC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXByZXZpb3VzLXRhYiI9PT1pKXJldHVybiB0aGlzLl9wcmV2aW91c1RpdGxlPyh0aGlzLl9jdXJyZW50SW5kZXg9dGhpcy5fdGl0bGVzLmluZGV4T2YodGhpcy5fcHJldmlvdXNUaXRsZSksdGhpcy5fcHJldmlvdXNUaXRsZT1udWxsKTp0aGlzLl9jdXJyZW50SW5kZXg9TWF0aC5taW4odCx0aGlzLl90aXRsZXMubGVuZ3RoLTEpLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVGl0bGU6ZSxjdXJyZW50SW5kZXg6dGhpcy5fY3VycmVudEluZGV4LGN1cnJlbnRUaXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pO3RoaXMuX2N1cnJlbnRJbmRleD0tMSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNUaXRsZTplLGN1cnJlbnRJbmRleDotMSxjdXJyZW50VGl0bGU6bnVsbH0pfWVsc2Ugbj50JiZ0aGlzLl9jdXJyZW50SW5kZXgtLX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMudXBkYXRlKCl9LGV9KGYuV2lkZ2V0KTtlLlRhYkJhcj1wLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY2xvc2VJY29uU2VsZWN0b3I9Ii5wLVRhYkJhci10YWJDbG9zZUljb24iLHRoaXMuX3RhYklEPTAsdGhpcy5fdGFiS2V5cz1uZXcgV2Vha01hcH1yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVyVGFiPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUuY2FwdGlvbixuPXRoaXMuY3JlYXRlVGFiS2V5KHQpLGk9dGhpcy5jcmVhdGVUYWJTdHlsZSh0KSxyPXRoaXMuY3JlYXRlVGFiQ2xhc3ModCksbz10aGlzLmNyZWF0ZVRhYkRhdGFzZXQodCk7cmV0dXJuIGwuaC5saSh7a2V5Om4sY2xhc3NOYW1lOnIsdGl0bGU6ZSxzdHlsZTppLGRhdGFzZXQ6b30sdGhpcy5yZW5kZXJJY29uKHQpLHRoaXMucmVuZGVyTGFiZWwodCksdGhpcy5yZW5kZXJDbG9zZUljb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJY29uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSWNvbkNsYXNzKHQpO3JldHVybiBsLmguZGl2KHtjbGFzc05hbWU6ZX0sdC50aXRsZS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLVRhYkJhci10YWJMYWJlbCJ9LHQudGl0bGUubGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJDbG9zZUljb249ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1UYWJCYXItdGFiQ2xvc2VJY29uIn0pfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJLZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGFiS2V5cy5nZXQodC50aXRsZSk7cmV0dXJuIHZvaWQgMD09PWUmJihlPSJ0YWIta2V5LSIrdGhpcy5fdGFiSUQrKyx0aGlzLl90YWJLZXlzLnNldCh0LnRpdGxlLGUpKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJTdHlsZT1mdW5jdGlvbih0KXtyZXR1cm57ekluZGV4OiIiK3QuekluZGV4fX0sdC5wcm90b3R5cGUuY3JlYXRlVGFiQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtVGFiQmFyLXRhYiI7cmV0dXJuIHQudGl0bGUuY2xhc3NOYW1lJiYoZSs9IiAiK3QudGl0bGUuY2xhc3NOYW1lKSx0LnRpdGxlLmNsb3NhYmxlJiYoZSs9IiBwLW1vZC1jbG9zYWJsZSIpLHQuY3VycmVudCYmKGUrPSIgcC1tb2QtY3VycmVudCIpLGV9LHQucHJvdG90eXBlLmNyZWF0ZVRhYkRhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGl0bGUuZGF0YXNldH0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLVRhYkJhci10YWJJY29uIixuPXQudGl0bGUuaWNvbkNsYXNzO3JldHVybiBuP2UrIiAiK246ZX0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KHA9ZS5UYWJCYXJ8fChlLlRhYkJhcj17fSkpLGUuVGFiQmFyPXAsZnVuY3Rpb24odCl7dC5EUkFHX1RIUkVTSE9MRD01LHQuREVUQUNIX1RIUkVTSE9MRD0yMCx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLVRhYkJhci1jb250ZW50Iix0LmFwcGVuZENoaWxkKGUpLHR9LHQuYXNUaXRsZT1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGQuVGl0bGU/dDpuZXcgZC5UaXRsZSh0KX0sdC5wYXJzZVRyYW5zaXRpb25EdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gMWUzKihwYXJzZUZsb2F0KGUudHJhbnNpdGlvbkR1cmF0aW9uKXx8MCl9LHQuc25hcFRhYkxheW91dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgpLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpe3ZhciBvPXRbaV0scz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvKTtuW2ldPSJob3Jpem9udGFsIj09PWU/e3BvczpvLm9mZnNldExlZnQsc2l6ZTpvLm9mZnNldFdpZHRoLG1hcmdpbjpwYXJzZUZsb2F0KHMubWFyZ2luTGVmdCl8fDB9Ontwb3M6by5vZmZzZXRUb3Asc2l6ZTpvLm9mZnNldEhlaWdodCxtYXJnaW46cGFyc2VGbG9hdChzLm1hcmdpblRvcCl8fDB9fXJldHVybiBufSx0LmRyYWdFeGNlZWRlZD1mdW5jdGlvbihlLG4pe3ZhciBpPU1hdGguYWJzKG4uY2xpZW50WC1lLnByZXNzWCkscj1NYXRoLmFicyhuLmNsaWVudFktZS5wcmVzc1kpO3JldHVybiBpPj10LkRSQUdfVEhSRVNIT0xEfHxyPj10LkRSQUdfVEhSRVNIT0xEfSx0LmRldGFjaEV4Y2VlZGVkPWZ1bmN0aW9uKGUsbil7dmFyIGk9ZS5jb250ZW50UmVjdDtyZXR1cm4gbi5jbGllbnRYPGkubGVmdC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WD49aS5yaWdodCt0LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WTxpLnRvcC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WT49aS5ib3R0b20rdC5ERVRBQ0hfVEhSRVNIT0xEfSx0LmxheW91dFRhYnM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzLGE7Imhvcml6b250YWwiPT09aT8ocj1lLnByZXNzWCxvPW4uY2xpZW50WC1lLmNvbnRlbnRSZWN0LmxlZnQscz1uLmNsaWVudFgsYT1lLmNvbnRlbnRSZWN0LndpZHRoKToocj1lLnByZXNzWSxvPW4uY2xpZW50WS1lLmNvbnRlbnRSZWN0LnRvcCxzPW4uY2xpZW50WSxhPWUuY29udGVudFJlY3QuaGVpZ2h0KTtmb3IodmFyIHU9ZS5pbmRleCxjPW8tZS50YWJQcmVzc1BvcyxoPWMrZS50YWJTaXplLGw9MCxkPXQubGVuZ3RoO2w8ZDsrK2wpe3ZhciBmPXZvaWQgMCxwPWUudGFiTGF5b3V0W2xdLG09cC5wb3MrKHAuc2l6ZT4+MSk7aWYobDxlLmluZGV4JiZjPG0pZj1lLnRhYlNpemUrZS50YWJMYXlvdXRbbCsxXS5tYXJnaW4rInB4Iix1PU1hdGgubWluKHUsbCk7ZWxzZSBpZihsPmUuaW5kZXgmJmg+bSlmPS1lLnRhYlNpemUtcC5tYXJnaW4rInB4Iix1PU1hdGgubWF4KHUsbCk7ZWxzZSBpZihsPT09ZS5pbmRleCl7dmFyIGc9cy1yLHY9YS0oZS50YWJQb3MrZS50YWJTaXplKTtmPU1hdGgubWF4KC1lLnRhYlBvcyxNYXRoLm1pbihnLHYpKSsicHgifWVsc2UgZj0iIjsiaG9yaXpvbnRhbCI9PT1pP3RbbF0uc3R5bGUubGVmdD1mOnRbbF0uc3R5bGUudG9wPWZ9ZS50YXJnZXRJbmRleD11fSx0LmZpbmFsaXplVGFiUG9zaXRpb249ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKG49Imhvcml6b250YWwiPT09ZT90LmNvbnRlbnRSZWN0LndpZHRoOnQuY29udGVudFJlY3QuaGVpZ2h0LHQudGFyZ2V0SW5kZXg9PT10LmluZGV4KWk9MDtlbHNlIGlmKHQudGFyZ2V0SW5kZXg+dC5pbmRleClpPShyPXQudGFiTGF5b3V0W3QudGFyZ2V0SW5kZXhdKS5wb3Mrci5zaXplLXQudGFiU2l6ZS10LnRhYlBvcztlbHNle3ZhciByO2k9KHI9dC50YWJMYXlvdXRbdC50YXJnZXRJbmRleF0pLnBvcy10LnRhYlBvc312YXIgbz1uLSh0LnRhYlBvcyt0LnRhYlNpemUpLHM9TWF0aC5tYXgoLXQudGFiUG9zLE1hdGgubWluKGksbykpOyJob3Jpem9udGFsIj09PWU/dC50YWIuc3R5bGUubGVmdD1zKyJweCI6dC50YWIuc3R5bGUudG9wPXMrInB4In0sdC5yZXNldFRhYlBvc2l0aW9ucz1mdW5jdGlvbih0LGUpe3MuZWFjaCh0LGZ1bmN0aW9uKHQpeyJob3Jpem9udGFsIj09PWU/dC5zdHlsZS5sZWZ0PSIiOnQuc3R5bGUudG9wPSIifSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2UuYnl0ZUxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT1jKHQpLG49ZVswXSxpPWVbMV07cmV0dXJuIDMqKG4raSkvNC1pfSxlLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPWModCksaT1uWzBdLHM9blsxXSxhPW5ldyBvKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMyooZStuKS80LW59KDAsaSxzKSksdT0wLGg9cz4wP2ktNDppLGw9MDtsPGg7bCs9NCllPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTh8clt0LmNoYXJDb2RlQXQobCsxKV08PDEyfHJbdC5jaGFyQ29kZUF0KGwrMildPDw2fHJbdC5jaGFyQ29kZUF0KGwrMyldLGFbdSsrXT1lPj4xNiYyNTUsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZTsyPT09cyYmKGU9clt0LmNoYXJDb2RlQXQobCldPDwyfHJbdC5jaGFyQ29kZUF0KGwrMSldPj40LGFbdSsrXT0yNTUmZSk7MT09PXMmJihlPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTB8clt0LmNoYXJDb2RlQXQobCsxKV08PDR8clt0LmNoYXJDb2RlQXQobCsyKV0+PjIsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZSk7cmV0dXJuIGF9LGUuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10Lmxlbmd0aCxyPW4lMyxvPVtdLHM9MCxhPW4tcjtzPGE7cys9MTYzODMpby5wdXNoKGgodCxzLHMrMTYzODM+YT9hOnMrMTYzODMpKTsxPT09cj8oZT10W24tMV0sby5wdXNoKGlbZT4+Ml0raVtlPDw0JjYzXSsiPT0iKSk6Mj09PXImJihlPSh0W24tMl08PDgpK3Rbbi0xXSxvLnB1c2goaVtlPj4xMF0raVtlPj40JjYzXStpW2U8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIGk9W10scj1bXSxvPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LHM9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGE9MCx1PXMubGVuZ3RoO2E8dTsrK2EpaVthXT1zW2FdLHJbcy5jaGFyQ29kZUF0KGEpXT1hO2Z1bmN0aW9uIGModCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIG49dC5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1uJiYobj1lKSxbbixuPT09ZT8wOjQtbiU0XX1mdW5jdGlvbiBoKHQsZSxuKXtmb3IodmFyIHIsbyxzPVtdLGE9ZTthPG47YSs9MylyPSh0W2FdPDwxNiYxNjcxMTY4MCkrKHRbYSsxXTw8OCY2NTI4MCkrKDI1NSZ0W2ErMl0pLHMucHVzaChpWyhvPXIpPj4xOCY2M10raVtvPj4xMiY2M10raVtvPj42JjYzXStpWzYzJm9dKTtyZXR1cm4gcy5qb2luKCIiKX1yWyItIi5jaGFyQ29kZUF0KDApXT02MixyWyJfIi5jaGFyQ29kZUF0KDApXT02M30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dmFyIGU7dC5nZXRSYW5kb21WYWx1ZXM9KGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuY3J5cHRvfHx3aW5kb3cubXNDcnlwdG8pfHxuKDE0NSl8fG51bGwpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRSYW5kb21WYWx1ZXM/ZnVuY3Rpb24odCl7cmV0dXJuIGUuZ2V0UmFuZG9tVmFsdWVzKHQpfTplJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5yYW5kb21GaWxsU3luYz9mdW5jdGlvbih0KXtyZXR1cm4gZS5yYW5kb21GaWxsU3luYyh0KX06ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmFuZG9tQnl0ZXM/ZnVuY3Rpb24odCl7Zm9yKHZhciBuPWUucmFuZG9tQnl0ZXModC5sZW5ndGgpLGk9MCxyPW4ubGVuZ3RoO2k8cjsrK2kpdFtpXT1uW2ldfTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKW4lND09MCYmKGU9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpPj4+MCksdFtuXT0yNTUmZSxlPj4+PTh9fShlLlJhbmRvbXx8KGUuUmFuZG9tPXt9KSl9LGZ1bmN0aW9uKHQsZSl7dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PW4uY2FsbCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm07ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyksdGhpcy5fYmxvY2s9aS5hbGxvY1Vuc2FmZSh0KSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfW4oMCkobyxyKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1udWxsO3RyeXt0aGlzLnVwZGF0ZSh0LGUpfWNhdGNoKHQpe2k9dH1uKGkpfSxvLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKHQpe2U9dH10KGUpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZihmdW5jdGlvbih0LGUpe2lmKCFpLmlzQnVmZmVyKHQpJiYic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfSh0LCJEYXRhIiksdGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7aS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsZSkpO2Zvcih2YXIgbj10aGlzLl9ibG9jayxyPTA7dGhpcy5fYmxvY2tPZmZzZXQrdC5sZW5ndGgtcj49dGhpcy5fYmxvY2tTaXplOyl7Zm9yKHZhciBvPXRoaXMuX2Jsb2NrT2Zmc2V0O288dGhpcy5fYmxvY2tTaXplOyluW28rK109dFtyKytdO3RoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTB9Zm9yKDtyPHQubGVuZ3RoOyluW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPXRbcisrXTtmb3IodmFyIHM9MCxhPTgqdC5sZW5ndGg7YT4wOysrcyl0aGlzLl9sZW5ndGhbc10rPWEsKGE9dGhpcy5fbGVuZ3RoW3NdLzQyOTQ5NjcyOTZ8MCk+MCYmKHRoaXMuX2xlbmd0aFtzXS09NDI5NDk2NzI5NiphKTtyZXR1cm4gdGhpc30sby5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQiKX0sby5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMDt2YXIgZT10aGlzLl9kaWdlc3QoKTt2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9ibG9jay5maWxsKDApLHRoaXMuX2Jsb2NrT2Zmc2V0PTA7Zm9yKHZhciBuPTA7bjw0Oysrbil0aGlzLl9sZW5ndGhbbl09MDtyZXR1cm4gZX0sby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX2RpZ2VzdCBpcyBub3QgaW1wbGVtZW50ZWQiKX0sdC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUsaSl7dmFyIHI9big0Myk7dC5leHBvcnRzPXk7dmFyIG8scz1uKDgzKTt5LlJlYWRhYmxlU3RhdGU9YjtuKDYwKS5FdmVudEVtaXR0ZXI7dmFyIGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saXN0ZW5lcnMoZSkubGVuZ3RofSx1PW4oODYpLGM9bigxKS5CdWZmZXIsaD1lLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgbD1uKDMyKTtsLmluaGVyaXRzPW4oMCk7dmFyIGQ9bigxNDcpLGY9dm9pZCAwO2Y9ZCYmZC5kZWJ1Z2xvZz9kLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIHAsbT1uKDE0OCksZz1uKDg3KTtsLmluaGVyaXRzKHksdSk7dmFyIHY9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gYih0LGUpe3Q9dHx8e307dmFyIGk9ZSBpbnN0YW5jZW9mKG89b3x8bigyNCkpO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LnJlYWRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLHM9dC5yZWFkYWJsZUhpZ2hXYXRlck1hcmssYT10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKHN8fDA9PT1zKT9zOmEsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmJ1ZmZlcj1uZXcgbSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCx0LmVuY29kaW5nJiYocHx8KHA9big2MykuU3RyaW5nRGVjb2RlciksdGhpcy5kZWNvZGVyPW5ldyBwKHQuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyl9ZnVuY3Rpb24geSh0KXtpZihvPW98fG4oMjQpLCEodGhpcyBpbnN0YW5jZW9mIHkpKXJldHVybiBuZXcgeSh0KTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBiKHQsdGhpcyksdGhpcy5yZWFkYWJsZT0hMCx0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZCYmKHRoaXMuX3JlYWQ9dC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpKSx1LmNhbGwodGhpcyl9ZnVuY3Rpb24gXyh0LGUsbixpLHIpe3ZhciBvLHM9dC5fcmVhZGFibGVTdGF0ZTtudWxsPT09ZT8ocy5yZWFkaW5nPSExLGZ1bmN0aW9uKHQsZSl7aWYoZS5lbmRlZClyZXR1cm47aWYoZS5kZWNvZGVyKXt2YXIgbj1lLmRlY29kZXIuZW5kKCk7biYmbi5sZW5ndGgmJihlLmJ1ZmZlci5wdXNoKG4pLGUubGVuZ3RoKz1lLm9iamVjdE1vZGU/MTpuLmxlbmd0aCl9ZS5lbmRlZD0hMCxTKHQpfSh0LHMpKToocnx8KG89ZnVuY3Rpb24odCxlKXt2YXIgbjtpPWUsYy5pc0J1ZmZlcihpKXx8aSBpbnN0YW5jZW9mIGh8fCJzdHJpbmciPT10eXBlb2YgZXx8dm9pZCAwPT09ZXx8dC5vYmplY3RNb2RlfHwobj1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpO3ZhciBpO3JldHVybiBufShzLGUpKSxvP3QuZW1pdCgiZXJyb3IiLG8pOnMub2JqZWN0TW9kZXx8ZSYmZS5sZW5ndGg+MD8oInN0cmluZyI9PXR5cGVvZiBlfHxzLm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PWMucHJvdG90eXBlfHwoZT1mdW5jdGlvbih0KXtyZXR1cm4gYy5mcm9tKHQpfShlKSksaT9zLmVuZEVtaXR0ZWQ/dC5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpKTp3KHQscyxlLCEwKTpzLmVuZGVkP3QuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSk6KHMucmVhZGluZz0hMSxzLmRlY29kZXImJiFuPyhlPXMuZGVjb2Rlci53cml0ZShlKSxzLm9iamVjdE1vZGV8fDAhPT1lLmxlbmd0aD93KHQscyxlLCExKTpBKHQscykpOncodCxzLGUsITEpKSk6aXx8KHMucmVhZGluZz0hMSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hdC5lbmRlZCYmKHQubmVlZFJlYWRhYmxlfHx0Lmxlbmd0aDx0LmhpZ2hXYXRlck1hcmt8fDA9PT10Lmxlbmd0aCl9KHMpfWZ1bmN0aW9uIHcodCxlLG4saSl7ZS5mbG93aW5nJiYwPT09ZS5sZW5ndGgmJiFlLnN5bmM/KHQuZW1pdCgiZGF0YSIsbiksdC5yZWFkKDApKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoLGk/ZS5idWZmZXIudW5zaGlmdChuKTplLmJ1ZmZlci5wdXNoKG4pLGUubmVlZFJlYWRhYmxlJiZTKHQpKSxBKHQsZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHkucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSkseS5wcm90b3R5cGUuZGVzdHJveT1nLmRlc3Ryb3kseS5wcm90b3R5cGUuX3VuZGVzdHJveT1nLnVuZGVzdHJveSx5LnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe3RoaXMucHVzaChudWxsKSxlKHQpfSx5LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBpLm9iamVjdE1vZGU/bj0hMDoic3RyaW5nIj09dHlwZW9mIHQmJigoZT1lfHxpLmRlZmF1bHRFbmNvZGluZykhPT1pLmVuY29kaW5nJiYodD1jLmZyb20odCxlKSxlPSIiKSxuPSEwKSxfKHRoaXMsdCxlLCExLG4pfSx5LnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBfKHRoaXMsdCxudWxsLCEwLCExKX0seS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30seS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHB8fChwPW4oNjMpLlN0cmluZ0RlY29kZXIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1uZXcgcCh0KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXQsdGhpc307dmFyIHg9ODM4ODYwODtmdW5jdGlvbiBNKHQsZSl7cmV0dXJuIHQ8PTB8fDA9PT1lLmxlbmd0aCYmZS5lbmRlZD8wOmUub2JqZWN0TW9kZT8xOnQhPXQ/ZS5mbG93aW5nJiZlLmxlbmd0aD9lLmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoOmUubGVuZ3RoOih0PmUuaGlnaFdhdGVyTWFyayYmKGUuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gdD49eD90PXg6KHQtLSx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCx0fD10Pj4+MTYsdCsrKSx0fSh0KSksdDw9ZS5sZW5ndGg/dDplLmVuZGVkP2UubGVuZ3RoOihlLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gUyh0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2UubmVlZFJlYWRhYmxlPSExLGUuZW1pdHRlZFJlYWRhYmxlfHwoZigiZW1pdFJlYWRhYmxlIixlLmZsb3dpbmcpLGUuZW1pdHRlZFJlYWRhYmxlPSEwLGUuc3luYz9yLm5leHRUaWNrKEUsdCk6RSh0KSl9ZnVuY3Rpb24gRSh0KXtmKCJlbWl0IHJlYWRhYmxlIiksdC5lbWl0KCJyZWFkYWJsZSIpLFAodCl9ZnVuY3Rpb24gQSh0LGUpe2UucmVhZGluZ01vcmV8fChlLnJlYWRpbmdNb3JlPSEwLHIubmV4dFRpY2soQyx0LGUpKX1mdW5jdGlvbiBDKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoOyFlLnJlYWRpbmcmJiFlLmZsb3dpbmcmJiFlLmVuZGVkJiZlLmxlbmd0aDxlLmhpZ2hXYXRlck1hcmsmJihmKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHQucmVhZCgwKSxuIT09ZS5sZW5ndGgpOyluPWUubGVuZ3RoO2UucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gayh0KXtmKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSx0LnJlYWQoMCl9ZnVuY3Rpb24gTyh0LGUpe2UucmVhZGluZ3x8KGYoInJlc3VtZSByZWFkIDAiKSx0LnJlYWQoMCkpLGUucmVzdW1lU2NoZWR1bGVkPSExLGUuYXdhaXREcmFpbj0wLHQuZW1pdCgicmVzdW1lIiksUCh0KSxlLmZsb3dpbmcmJiFlLnJlYWRpbmcmJnQucmVhZCgwKX1mdW5jdGlvbiBQKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7Zm9yKGYoImZsb3ciLGUuZmxvd2luZyk7ZS5mbG93aW5nJiZudWxsIT09dC5yZWFkKCk7KTt9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDooZS5vYmplY3RNb2RlP249ZS5idWZmZXIuc2hpZnQoKTohdHx8dD49ZS5sZW5ndGg/KG49ZS5kZWNvZGVyP2UuYnVmZmVyLmpvaW4oIiIpOjE9PT1lLmJ1ZmZlci5sZW5ndGg/ZS5idWZmZXIuaGVhZC5kYXRhOmUuYnVmZmVyLmNvbmNhdChlLmxlbmd0aCksZS5idWZmZXIuY2xlYXIoKSk6bj1mdW5jdGlvbih0LGUsbil7dmFyIGk7dDxlLmhlYWQuZGF0YS5sZW5ndGg/KGk9ZS5oZWFkLmRhdGEuc2xpY2UoMCx0KSxlLmhlYWQuZGF0YT1lLmhlYWQuZGF0YS5zbGljZSh0KSk6aT10PT09ZS5oZWFkLmRhdGEubGVuZ3RoP2Uuc2hpZnQoKTpuP2Z1bmN0aW9uKHQsZSl7dmFyIG49ZS5oZWFkLGk9MSxyPW4uZGF0YTt0LT1yLmxlbmd0aDtmb3IoO249bi5uZXh0Oyl7dmFyIG89bi5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKHM9PT1vLmxlbmd0aD9yKz1vOnIrPW8uc2xpY2UoMCx0KSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsraSxuLm5leHQ/ZS5oZWFkPW4ubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9bixuLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytpfXJldHVybiBlLmxlbmd0aC09aSxyfSh0LGUpOmZ1bmN0aW9uKHQsZSl7dmFyIG49Yy5hbGxvY1Vuc2FmZSh0KSxpPWUuaGVhZCxyPTE7aS5kYXRhLmNvcHkobiksdC09aS5kYXRhLmxlbmd0aDtmb3IoO2k9aS5uZXh0Oyl7dmFyIG89aS5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKG8uY29weShuLG4ubGVuZ3RoLXQsMCxzKSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsrcixpLm5leHQ/ZS5oZWFkPWkubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9aSxpLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytyfXJldHVybiBlLmxlbmd0aC09cixufSh0LGUpO3JldHVybiBpfSh0LGUuYnVmZmVyLGUuZGVjb2Rlciksbik7dmFyIG59ZnVuY3Rpb24gaih0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2lmKGUubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCciZW5kUmVhZGFibGUoKSIgY2FsbGVkIG9uIG5vbi1lbXB0eSBzdHJlYW0nKTtlLmVuZEVtaXR0ZWR8fChlLmVuZGVkPSEwLHIubmV4dFRpY2soSSxlLHQpKX1mdW5jdGlvbiBJKHQsZSl7dC5lbmRFbWl0dGVkfHwwIT09dC5sZW5ndGh8fCh0LmVuZEVtaXR0ZWQ9ITAsZS5yZWFkYWJsZT0hMSxlLmVtaXQoImVuZCIpKX1mdW5jdGlvbiBMKHQsZSl7Zm9yKHZhciBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfXkucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24odCl7ZigicmVhZCIsdCksdD1wYXJzZUludCh0LDEwKTt2YXIgZT10aGlzLl9yZWFkYWJsZVN0YXRlLG49dDtpZigwIT09dCYmKGUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09dCYmZS5uZWVkUmVhZGFibGUmJihlLmxlbmd0aD49ZS5oaWdoV2F0ZXJNYXJrfHxlLmVuZGVkKSlyZXR1cm4gZigicmVhZDogZW1pdFJlYWRhYmxlIixlLmxlbmd0aCxlLmVuZGVkKSwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/aih0aGlzKTpTKHRoaXMpLG51bGw7aWYoMD09PSh0PU0odCxlKSkmJmUuZW5kZWQpcmV0dXJuIDA9PT1lLmxlbmd0aCYmaih0aGlzKSxudWxsO3ZhciBpLHI9ZS5uZWVkUmVhZGFibGU7cmV0dXJuIGYoIm5lZWQgcmVhZGFibGUiLHIpLCgwPT09ZS5sZW5ndGh8fGUubGVuZ3RoLXQ8ZS5oaWdoV2F0ZXJNYXJrKSYmZigibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLHI9ITApLGUuZW5kZWR8fGUucmVhZGluZz9mKCJyZWFkaW5nIG9yIGVuZGVkIixyPSExKTpyJiYoZigiZG8gcmVhZCIpLGUucmVhZGluZz0hMCxlLnN5bmM9ITAsMD09PWUubGVuZ3RoJiYoZS5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoZS5oaWdoV2F0ZXJNYXJrKSxlLnN5bmM9ITEsZS5yZWFkaW5nfHwodD1NKG4sZSkpKSxudWxsPT09KGk9dD4wP1QodCxlKTpudWxsKT8oZS5uZWVkUmVhZGFibGU9ITAsdD0wKTplLmxlbmd0aC09dCwwPT09ZS5sZW5ndGgmJihlLmVuZGVkfHwoZS5uZWVkUmVhZGFibGU9ITApLG4hPT10JiZlLmVuZGVkJiZqKHRoaXMpKSxudWxsIT09aSYmdGhpcy5lbWl0KCJkYXRhIixpKSxpfSx5LnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbih0KXt0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIl9yZWFkKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSx5LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKG8ucGlwZXNDb3VudCl7Y2FzZSAwOm8ucGlwZXM9dDticmVhaztjYXNlIDE6by5waXBlcz1bby5waXBlcyx0XTticmVhaztkZWZhdWx0Om8ucGlwZXMucHVzaCh0KX1vLnBpcGVzQ291bnQrPTEsZigicGlwZSBjb3VudD0lZCBvcHRzPSVqIixvLnBpcGVzQ291bnQsZSk7dmFyIHU9KCFlfHwhMSE9PWUuZW5kKSYmdCE9PWkuc3Rkb3V0JiZ0IT09aS5zdGRlcnI/aDp5O2Z1bmN0aW9uIGMoZSxpKXtmKCJvbnVucGlwZSIpLGU9PT1uJiZpJiYhMT09PWkuaGFzVW5waXBlZCYmKGkuaGFzVW5waXBlZD0hMCxmKCJjbGVhbnVwIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHQucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsYiksdC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGwpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSx0LnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLGMpLG4ucmVtb3ZlTGlzdGVuZXIoImVuZCIsaCksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIix5KSxuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixtKSxkPSEwLCFvLmF3YWl0RHJhaW58fHQuX3dyaXRhYmxlU3RhdGUmJiF0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbnx8bCgpKX1mdW5jdGlvbiBoKCl7Zigib25lbmQiKSx0LmVuZCgpfW8uZW5kRW1pdHRlZD9yLm5leHRUaWNrKHUpOm4ub25jZSgiZW5kIix1KSx0Lm9uKCJ1bnBpcGUiLGMpO3ZhciBsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7ZigicGlwZU9uRHJhaW4iLGUuYXdhaXREcmFpbiksZS5hd2FpdERyYWluJiZlLmF3YWl0RHJhaW4tLSwwPT09ZS5hd2FpdERyYWluJiZhKHQsImRhdGEiKSYmKGUuZmxvd2luZz0hMCxQKHQpKX19KG4pO3Qub24oImRyYWluIixsKTt2YXIgZD0hMTt2YXIgcD0hMTtmdW5jdGlvbiBtKGUpe2YoIm9uZGF0YSIpLHA9ITEsITEhPT10LndyaXRlKGUpfHxwfHwoKDE9PT1vLnBpcGVzQ291bnQmJm8ucGlwZXM9PT10fHxvLnBpcGVzQ291bnQ+MSYmLTEhPT1MKG8ucGlwZXMsdCkpJiYhZCYmKGYoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsbi5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKSxuLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKyxwPSEwKSxuLnBhdXNlKCkpfWZ1bmN0aW9uIGcoZSl7Zigib25lcnJvciIsZSkseSgpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSwwPT09YSh0LCJlcnJvciIpJiZ0LmVtaXQoImVycm9yIixlKX1mdW5jdGlvbiB2KCl7dC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixiKSx5KCl9ZnVuY3Rpb24gYigpe2YoIm9uZmluaXNoIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHkoKX1mdW5jdGlvbiB5KCl7ZigidW5waXBlIiksbi51bnBpcGUodCl9cmV0dXJuIG4ub24oImRhdGEiLG0pLGZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHQucHJlcGVuZExpc3RlbmVyKGUsbik7dC5fZXZlbnRzJiZ0Ll9ldmVudHNbZV0/cyh0Ll9ldmVudHNbZV0pP3QuX2V2ZW50c1tlXS51bnNoaWZ0KG4pOnQuX2V2ZW50c1tlXT1bbix0Ll9ldmVudHNbZV1dOnQub24oZSxuKX0odCwiZXJyb3IiLGcpLHQub25jZSgiY2xvc2UiLHYpLHQub25jZSgiZmluaXNoIixiKSx0LmVtaXQoInBpcGUiLG4pLG8uZmxvd2luZ3x8KGYoInBpcGUgcmVzdW1lIiksbi5yZXN1bWUoKSksdH0seS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj17aGFzVW5waXBlZDohMX07aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlcz90aGlzOih0fHwodD1lLnBpcGVzKSxlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExLHQmJnQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpO2lmKCF0KXt2YXIgaT1lLnBpcGVzLHI9ZS5waXBlc0NvdW50O2UucGlwZXM9bnVsbCxlLnBpcGVzQ291bnQ9MCxlLmZsb3dpbmc9ITE7Zm9yKHZhciBvPTA7bzxyO28rKylpW29dLmVtaXQoInVucGlwZSIsdGhpcyxuKTtyZXR1cm4gdGhpc312YXIgcz1MKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zP3RoaXM6KGUucGlwZXMuc3BsaWNlKHMsMSksZS5waXBlc0NvdW50LT0xLDE9PT1lLnBpcGVzQ291bnQmJihlLnBpcGVzPWUucGlwZXNbMF0pLHQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpfSx5LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3ZhciBuPXUucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LGUpO2lmKCJkYXRhIj09PXQpITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJnRoaXMucmVzdW1lKCk7ZWxzZSBpZigicmVhZGFibGUiPT09dCl7dmFyIGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtpLmVuZEVtaXR0ZWR8fGkucmVhZGFibGVMaXN0ZW5pbmd8fChpLnJlYWRhYmxlTGlzdGVuaW5nPWkubmVlZFJlYWRhYmxlPSEwLGkuZW1pdHRlZFJlYWRhYmxlPSExLGkucmVhZGluZz9pLmxlbmd0aCYmUyh0aGlzKTpyLm5leHRUaWNrKGssdGhpcykpfXJldHVybiBufSx5LnByb3RvdHlwZS5hZGRMaXN0ZW5lcj15LnByb3RvdHlwZS5vbix5LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiB0LmZsb3dpbmd8fChmKCJyZXN1bWUiKSx0LmZsb3dpbmc9ITAsZnVuY3Rpb24odCxlKXtlLnJlc3VtZVNjaGVkdWxlZHx8KGUucmVzdW1lU2NoZWR1bGVkPSEwLHIubmV4dFRpY2soTyx0LGUpKX0odGhpcyx0KSksdGhpc30seS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gZigiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoZigicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzfSx5LnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9yZWFkYWJsZVN0YXRlLGk9ITE7Zm9yKHZhciByIGluIHQub24oImVuZCIsZnVuY3Rpb24oKXtpZihmKCJ3cmFwcGVkIGVuZCIpLG4uZGVjb2RlciYmIW4uZW5kZWQpe3ZhciB0PW4uZGVjb2Rlci5lbmQoKTt0JiZ0Lmxlbmd0aCYmZS5wdXNoKHQpfWUucHVzaChudWxsKX0pLHQub24oImRhdGEiLGZ1bmN0aW9uKHIpeyhmKCJ3cmFwcGVkIGRhdGEiKSxuLmRlY29kZXImJihyPW4uZGVjb2Rlci53cml0ZShyKSksbi5vYmplY3RNb2RlJiZudWxsPT1yKXx8KG4ub2JqZWN0TW9kZXx8ciYmci5sZW5ndGgpJiYoZS5wdXNoKHIpfHwoaT0hMCx0LnBhdXNlKCkpKX0pLHQpdm9pZCAwPT09dGhpc1tyXSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbcl0mJih0aGlzW3JdPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdLmFwcGx5KHQsYXJndW1lbnRzKX19KHIpKTtmb3IodmFyIG89MDtvPHYubGVuZ3RoO28rKyl0Lm9uKHZbb10sdGhpcy5lbWl0LmJpbmQodGhpcyx2W29dKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oZSl7Zigid3JhcHBlZCBfcmVhZCIsZSksaSYmKGk9ITEsdC5yZXN1bWUoKSl9LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLHkuX2Zyb21MaXN0PVR9KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjApLkV2ZW50RW1pdHRlcn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQzKTtmdW5jdGlvbiByKHQsZSl7dC5lbWl0KCJlcnJvciIsZSl9dC5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkLHM9dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7cmV0dXJuIG98fHM/KGU/ZSh0KTohdHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fGkubmV4dFRpY2socix0aGlzLHQpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLGZ1bmN0aW9uKHQpeyFlJiZ0PyhpLm5leHRUaWNrKHIsbix0KSxuLl93cml0YWJsZVN0YXRlJiYobi5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITApKTplJiZlKHQpfSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXM7dmFyIGk9bigyNCkscj1uKDMyKTtmdW5jdGlvbiBvKHQsZSl7dmFyIG49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bi50cmFuc2Zvcm1pbmc9ITE7dmFyIGk9bi53cml0ZWNiO2lmKCFpKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIndyaXRlIGNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpKTtuLndyaXRlY2h1bms9bnVsbCxuLndyaXRlY2I9bnVsbCxudWxsIT1lJiZ0aGlzLnB1c2goZSksaSh0KTt2YXIgcj10aGlzLl9yZWFkYWJsZVN0YXRlO3IucmVhZGluZz0hMSwoci5uZWVkUmVhZGFibGV8fHIubGVuZ3RoPHIuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoci5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTtpLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06by5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT10LnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIHQuZmx1c2gmJih0aGlzLl9mbHVzaD10LmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixhKX1mdW5jdGlvbiBhKCl7dmFyIHQ9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fZmx1c2g/dGhpcy5fZmx1c2goZnVuY3Rpb24oZSxuKXt1KHQsZSxuKX0pOnUodGhpcyxudWxsLG51bGwpfWZ1bmN0aW9uIHUodCxlLG4pe2lmKGUpcmV0dXJuIHQuZW1pdCgiZXJyb3IiLGUpO2lmKG51bGwhPW4mJnQucHVzaChuKSx0Ll93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiB3cy5sZW5ndGggIT0gMCIpO2lmKHQuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiBzdGlsbCB0cmFuc2Zvcm1pbmciKTtyZXR1cm4gdC5wdXNoKG51bGwpfXIuaW5oZXJpdHM9bigwKSxyLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGkucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LHMucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLG4pe3Rocm93IG5ldyBFcnJvcigiX3RyYW5zZm9ybSgpIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxzLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKGkud3JpdGVjYj1uLGkud3JpdGVjaHVuaz10LGkud3JpdGVlbmNvZGluZz1lLCFpLnRyYW5zZm9ybWluZyl7dmFyIHI9dGhpcy5fcmVhZGFibGVTdGF0ZTsoaS5uZWVkVHJhbnNmb3JtfHxyLm5lZWRSZWFkYWJsZXx8ci5sZW5ndGg8ci5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChyLmhpZ2hXYXRlck1hcmspfX0scy5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbCE9PWUud3JpdGVjaHVuayYmZS53cml0ZWNiJiYhZS50cmFuc2Zvcm1pbmc/KGUudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShlLndyaXRlY2h1bmssZS53cml0ZWVuY29kaW5nLGUuYWZ0ZXJUcmFuc2Zvcm0pKTplLm5lZWRUcmFuc2Zvcm09ITB9LHMucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsdCxmdW5jdGlvbih0KXtlKHQpLG4uZW1pdCgiY2xvc2UiKX0pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sYT1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PWEsci5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGModCxlLG4pe3JldHVybiBuXnQmKGVebil9ZnVuY3Rpb24gaCh0LGUsbil7cmV0dXJuIHQmZXxuJih0fGUpfWZ1bmN0aW9uIGwodCl7cmV0dXJuKHQ+Pj4yfHQ8PDMwKV4odD4+PjEzfHQ8PDE5KV4odD4+PjIyfHQ8PDEwKX1mdW5jdGlvbiBkKHQpe3JldHVybih0Pj4+Nnx0PDwyNileKHQ+Pj4xMXx0PDwyMSleKHQ+Pj4yNXx0PDw3KX1mdW5jdGlvbiBmKHQpe3JldHVybih0Pj4+N3x0PDwyNSleKHQ+Pj4xOHx0PDwxNCledD4+PjN9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxwPTB8dGhpcy5fZixtPTB8dGhpcy5fZyxnPTB8dGhpcy5faCx2PTA7djwxNjsrK3Ypblt2XT10LnJlYWRJbnQzMkJFKDQqdik7Zm9yKDt2PDY0OysrdiluW3ZdPTB8KCgoZT1uW3YtMl0pPj4+MTd8ZTw8MTUpXihlPj4+MTl8ZTw8MTMpXmU+Pj4xMCkrblt2LTddK2Yoblt2LTE1XSkrblt2LTE2XTtmb3IodmFyIGI9MDtiPDY0OysrYil7dmFyIHk9ZytkKHUpK2ModSxwLG0pK3NbYl0rbltiXXwwLF89bChpKStoKGkscixvKXwwO2c9bSxtPXAscD11LHU9YSt5fDAsYT1vLG89cixyPWksaT15K198MH10aGlzLl9hPWkrdGhpcy5fYXwwLHRoaXMuX2I9cit0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPWErdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDAsdGhpcy5fZj1wK3RoaXMuX2Z8MCx0aGlzLl9nPW0rdGhpcy5fZ3wwLHRoaXMuX2g9Zyt0aGlzLl9ofDB9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9by5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIHQud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksdC53cml0ZUludDMyQkUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLHQud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gbl50JihlXm4pfWZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0JmV8biYodHxlKX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuKHQ+Pj4yOHxlPDw0KV4oZT4+PjJ8dDw8MzApXihlPj4+N3x0PDwyNSl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybih0Pj4+MTR8ZTw8MTgpXih0Pj4+MTh8ZTw8MTQpXihlPj4+OXx0PDwyMyl9ZnVuY3Rpb24gZih0LGUpe3JldHVybih0Pj4+MXxlPDwzMSleKHQ+Pj44fGU8PDI0KV50Pj4+N31mdW5jdGlvbiBwKHQsZSl7cmV0dXJuKHQ+Pj4xfGU8PDMxKV4odD4+Pjh8ZTw8MjQpXih0Pj4+N3xlPDwyNSl9ZnVuY3Rpb24gbSh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyledD4+PjZ9ZnVuY3Rpb24gZyh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyleKHQ+Pj42fGU8PDI2KX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQ+Pj4wPGU+Pj4wPzE6MH1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3csbj0wfHRoaXMuX2FoLGk9MHx0aGlzLl9iaCxyPTB8dGhpcy5fY2gsbz0wfHRoaXMuX2RoLGE9MHx0aGlzLl9laCx1PTB8dGhpcy5fZmgsYj0wfHRoaXMuX2doLHk9MHx0aGlzLl9oaCxfPTB8dGhpcy5fYWwsdz0wfHRoaXMuX2JsLHg9MHx0aGlzLl9jbCxNPTB8dGhpcy5fZGwsUz0wfHRoaXMuX2VsLEU9MHx0aGlzLl9mbCxBPTB8dGhpcy5fZ2wsQz0wfHRoaXMuX2hsLGs9MDtrPDMyO2srPTIpZVtrXT10LnJlYWRJbnQzMkJFKDQqayksZVtrKzFdPXQucmVhZEludDMyQkUoNCprKzQpO2Zvcig7azwxNjA7ays9Mil7dmFyIE89ZVtrLTMwXSxQPWVbay0zMCsxXSxUPWYoTyxQKSxqPXAoUCxPKSxJPW0oTz1lW2stNF0sUD1lW2stNCsxXSksTD1nKFAsTyksQj1lW2stMTRdLEQ9ZVtrLTE0KzFdLFI9ZVtrLTMyXSx6PWVbay0zMisxXSxOPWorRHwwLFc9VCtCK3YoTixqKXwwO1c9KFc9VytJK3YoTj1OK0x8MCxMKXwwKStSK3YoTj1OK3p8MCx6KXwwLGVba109VyxlW2srMV09Tn1mb3IodmFyIHE9MDtxPDE2MDtxKz0yKXtXPWVbcV0sTj1lW3ErMV07dmFyIEg9aChuLGksciksRj1oKF8sdyx4KSxWPWwobixfKSxVPWwoXyxuKSxLPWQoYSxTKSxZPWQoUyxhKSxYPXNbcV0sJD1zW3ErMV0sRz1jKGEsdSxiKSxKPWMoUyxFLEEpLFo9QytZfDAsUT15K0srdihaLEMpfDA7UT0oUT0oUT1RK0crdihaPVorSnwwLEopfDApK1grdihaPVorJHwwLCQpfDApK1crdihaPVorTnwwLE4pfDA7dmFyIHR0PVUrRnwwLGV0PVYrSCt2KHR0LFUpfDA7eT1iLEM9QSxiPXUsQT1FLHU9YSxFPVMsYT1vK1ErdihTPU0rWnwwLE0pfDAsbz1yLE09eCxyPWkseD13LGk9bix3PV8sbj1RK2V0K3YoXz1aK3R0fDAsWil8MH10aGlzLl9hbD10aGlzLl9hbCtffDAsdGhpcy5fYmw9dGhpcy5fYmwrd3wwLHRoaXMuX2NsPXRoaXMuX2NsK3h8MCx0aGlzLl9kbD10aGlzLl9kbCtNfDAsdGhpcy5fZWw9dGhpcy5fZWwrU3wwLHRoaXMuX2ZsPXRoaXMuX2ZsK0V8MCx0aGlzLl9nbD10aGlzLl9nbCtBfDAsdGhpcy5faGw9dGhpcy5faGwrQ3wwLHRoaXMuX2FoPXRoaXMuX2FoK24rdih0aGlzLl9hbCxfKXwwLHRoaXMuX2JoPXRoaXMuX2JoK2krdih0aGlzLl9ibCx3KXwwLHRoaXMuX2NoPXRoaXMuX2NoK3Irdih0aGlzLl9jbCx4KXwwLHRoaXMuX2RoPXRoaXMuX2RoK28rdih0aGlzLl9kbCxNKXwwLHRoaXMuX2VoPXRoaXMuX2VoK2Erdih0aGlzLl9lbCxTKXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK3Urdih0aGlzLl9mbCxFKXwwLHRoaXMuX2doPXRoaXMuX2doK2Irdih0aGlzLl9nbCxBKXwwLHRoaXMuX2hoPXRoaXMuX2hoK3krdih0aGlzLl9obCxDKXwwfSx1LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciB0PW8uYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIGUoZSxuLGkpe3Qud3JpdGVJbnQzMkJFKGUsaSksdC53cml0ZUludDMyQkUobixpKzQpfXJldHVybiBlKHRoaXMuX2FoLHRoaXMuX2FsLDApLGUodGhpcy5fYmgsdGhpcy5fYmwsOCksZSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksZSh0aGlzLl9maCx0aGlzLl9mbCw0MCksZSh0aGlzLl9naCx0aGlzLl9nbCw0OCksZSh0aGlzLl9oaCx0aGlzLl9obCw1NiksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oMTYxKSxvPW4oMjEpLHM9bigxKS5CdWZmZXIsYT1uKDkyKSx1PW4oNjQpLGM9big2NSksaD1zLmFsbG9jKDEyOCk7ZnVuY3Rpb24gbCh0LGUpe28uY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIGUmJihlPXMuZnJvbShlKSk7dmFyIG49InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0Oyh0aGlzLl9hbGc9dCx0aGlzLl9rZXk9ZSxlLmxlbmd0aD5uKT9lPSgicm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSkudXBkYXRlKGUpLmRpZ2VzdCgpOmUubGVuZ3RoPG4mJihlPXMuY29uY2F0KFtlLGhdLG4pKTtmb3IodmFyIGk9dGhpcy5faXBhZD1zLmFsbG9jVW5zYWZlKG4pLHI9dGhpcy5fb3BhZD1zLmFsbG9jVW5zYWZlKG4pLGE9MDthPG47YSsrKWlbYV09NTReZVthXSxyW2FdPTkyXmVbYV07dGhpcy5faGFzaD0icm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSx0aGlzLl9oYXNoLnVwZGF0ZShpKX1pKGwsbyksbC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sbC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IHU6Yyh0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKHQpLmRpZ2VzdCgpfSx0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4icm1kMTYwIj09PSh0PXQudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09dD9uZXcgbCgicm1kMTYwIixlKToibWQ1Ij09PXQ/bmV3IHIoYSxlKTpuZXcgbCh0LGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4obmV3IGkpLnVwZGF0ZSh0KS5kaWdlc3QoKX19LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17c2hhMjI0V2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSxzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJSU0EtU0hBMjU2Ijp7c2lnbjoiZWNkc2EvcnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LHNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uOntzaWduOiJyc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOntzaWduOiJlY2RzYS9yc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sc2hhNTEyV2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOntzaWduOiJyc2EiLGhhc2g6InNoYTEiLGlkOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7c2lnbjoiZWNkc2EiLGhhc2g6InNoYTEiLGlkOiIifSxzaGEyNTY6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSxzaGEyMjQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyMjQiLGlkOiIifSxzaGEzODQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSxzaGE1MTI6e3NpZ246ImVjZHNhIixoYXNoOiJzaGE1MTIiLGlkOiIifSwiRFNBLVNIQSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LCJEU0EtU0hBMSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LERTQTp7c2lnbjoiZHNhIixoYXNoOiJzaGExIixpZDoiIn0sIkRTQS1XSVRILVNIQTIyNCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMjI0IixpZDoiIn0sIkRTQS1TSEEyMjQiOntzaWduOiJkc2EiLGhhc2g6InNoYTIyNCIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOntzaWduOiJkc2EiLGhhc2g6InNoYTI1NiIsaWQ6IiJ9LCJEU0EtU0hBMjU2Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSwiRFNBLVNIQTM4NCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sIkRTQS1XSVRILVNIQTUxMiI6e3NpZ246ImRzYSIsaGFzaDoic2hhNTEyIixpZDoiIn0sIkRTQS1TSEE1MTIiOntzaWduOiJkc2EiLGhhc2g6InNoYTUxMiIsaWQ6IiJ9LCJEU0EtUklQRU1EMTYwIjp7c2lnbjoiZHNhIixoYXNoOiJybWQxNjAiLGlkOiIifSxyaXBlbWQxNjBXaXRoUlNBOntzaWduOiJyc2EiLGhhc2g6InJtZDE2MCIsaWQ6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7c2lnbjoicnNhIixoYXNoOiJybWQxNjAiLGlkOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSxtZDVXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJtZDUiLGlkOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifSwiUlNBLU1ENSI6e3NpZ246InJzYSIsaGFzaDoibWQ1IixpZDoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn19fSxmdW5jdGlvbih0LGUsbil7ZS5wYmtkZjI9bigxNjMpLGUucGJrZGYyU3luYz1uKDk3KX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgbj1NYXRoLnBvdygyLDMwKS0xO2Z1bmN0aW9uIGkodCxuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQmJiFlLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IobisiIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2lmKGkodCwiUGFzc3dvcmQiKSxpKGUsIlNhbHQiKSwibnVtYmVyIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihyPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihvPDB8fG8+bnx8byE9byl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG47ZS5icm93c2VyP249InV0Zi04IjpuPXBhcnNlSW50KGUudmVyc2lvbi5zcGxpdCgiLiIpWzBdLnNsaWNlKDEpLDEwKT49Nj8idXRmLTgiOiJiaW5hcnkiO3QuZXhwb3J0cz1ufSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oOTIpLHI9big2NCksbz1uKDY1KSxzPW4oOTUpLGE9big5NiksdT1uKDEpLkJ1ZmZlcixjPXUuYWxsb2MoMTI4KSxoPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gbCh0LGUsbil7dmFyIHM9ZnVuY3Rpb24odCl7cmV0dXJuInJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyByKS51cGRhdGUodCkuZGlnZXN0KCl9OiJtZDUiPT09dD9pOmZ1bmN0aW9uKGUpe3JldHVybiBvKHQpLnVwZGF0ZShlKS5kaWdlc3QoKX19KHQpLGE9InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0O2UubGVuZ3RoPmE/ZT1zKGUpOmUubGVuZ3RoPGEmJihlPXUuY29uY2F0KFtlLGNdLGEpKTtmb3IodmFyIGw9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGQ9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGY9MDtmPGE7ZisrKWxbZl09NTReZVtmXSxkW2ZdPTkyXmVbZl07dmFyIHA9dS5hbGxvY1Vuc2FmZShhK24rNCk7bC5jb3B5KHAsMCwwLGEpLHRoaXMuaXBhZDE9cCx0aGlzLmlwYWQyPWwsdGhpcy5vcGFkPWQsdGhpcy5hbGc9dCx0aGlzLmJsb2Nrc2l6ZT1hLHRoaXMuaGFzaD1zLHRoaXMuc2l6ZT1oW3RdfWwucHJvdG90eXBlLnJ1bj1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNvcHkoZSx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKGUpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGkscil7cyh0LGUsbixpKSx1LmlzQnVmZmVyKHQpfHwodD11LmZyb20odCxhKSksdS5pc0J1ZmZlcihlKXx8KGU9dS5mcm9tKGUsYSkpO3ZhciBvPW5ldyBsKHI9cnx8InNoYTEiLHQsZS5sZW5ndGgpLGM9dS5hbGxvY1Vuc2FmZShpKSxkPXUuYWxsb2NVbnNhZmUoZS5sZW5ndGgrNCk7ZS5jb3B5KGQsMCwwLGUubGVuZ3RoKTtmb3IodmFyIGY9MCxwPWhbcl0sbT1NYXRoLmNlaWwoaS9wKSxnPTE7Zzw9bTtnKyspe2Qud3JpdGVVSW50MzJCRShnLGUubGVuZ3RoKTtmb3IodmFyIHY9by5ydW4oZCxvLmlwYWQxKSxiPXYseT0xO3k8bjt5Kyspe2I9by5ydW4oYixvLmlwYWQyKTtmb3IodmFyIF89MDtfPHA7XysrKXZbX11ePWJbX119di5jb3B5KGMsZiksZis9cH1yZXR1cm4gY319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKSxyPW4oMSkuQnVmZmVyLG89big5OSk7ZnVuY3Rpb24gcyh0KXt2YXIgZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrUmF3KHQuX3ByZXYpO3JldHVybiBvKHQuX3ByZXYpLGV9ZS5lbmNyeXB0PWZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5jZWlsKGUubGVuZ3RoLzE2KSxvPXQuX2NhY2hlLmxlbmd0aDt0Ll9jYWNoZT1yLmNvbmNhdChbdC5fY2FjaGUsci5hbGxvY1Vuc2FmZSgxNipuKV0pO2Zvcih2YXIgYT0wO2E8bjthKyspe3ZhciB1PXModCksYz1vKzE2KmE7dC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzBdLGMrMCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzFdLGMrNCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzJdLGMrOCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzNdLGMrMTIpfXZhciBoPXQuX2NhY2hlLnNsaWNlKDAsZS5sZW5ndGgpO3JldHVybiB0Ll9jYWNoZT10Ll9jYWNoZS5zbGljZShlLmxlbmd0aCksaShlLGgpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dC5sZW5ndGg7bi0tOyl7aWYoMjU1IT09KGU9dC5yZWFkVUludDgobikpKXtlKyssdC53cml0ZVVJbnQ4KGUsbik7YnJlYWt9dC53cml0ZVVJbnQ4KDAsbil9fX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiYWVzLTEyOC1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTE5Mi1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jYmMiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDQkMiLHR5cGU6ImJsb2NrIn0sImFlcy0xOTItY2JjIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxMjg6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxOTI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMyNTY6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCOCIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiOCI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjgiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkI4Iix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCMSIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiMSI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjEiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkIxIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJPRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLW9mYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6Ik9GQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiT0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDVFIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWN0ciI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNUUiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ1RSIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTE5Mi1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTI1Ni1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ1KSxyPW4oMSkuQnVmZmVyLG89bigyMSkscz1uKDApLGE9bigxNzgpLHU9bigzMyksYz1uKDk5KTtmdW5jdGlvbiBoKHQsZSxuLHMpe28uY2FsbCh0aGlzKTt2YXIgdT1yLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpLkFFUyhlKTt2YXIgaD10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHUpO3RoaXMuX2doYXNoPW5ldyBhKGgpLG49ZnVuY3Rpb24odCxlLG4pe2lmKDEyPT09ZS5sZW5ndGgpcmV0dXJuIHQuX2ZpbklEPXIuY29uY2F0KFtlLHIuZnJvbShbMCwwLDAsMV0pXSksci5jb25jYXQoW2Usci5mcm9tKFswLDAsMCwyXSldKTt2YXIgaT1uZXcgYShuKSxvPWUubGVuZ3RoLHM9byUxNjtpLnVwZGF0ZShlKSxzJiYocz0xNi1zLGkudXBkYXRlKHIuYWxsb2MocywwKSkpLGkudXBkYXRlKHIuYWxsb2MoOCwwKSk7dmFyIHU9OCpvLGg9ci5hbGxvYyg4KTtoLndyaXRlVUludEJFKHUsMCw4KSxpLnVwZGF0ZShoKSx0Ll9maW5JRD1pLnN0YXRlO3ZhciBsPXIuZnJvbSh0Ll9maW5JRCk7cmV0dXJuIGMobCksbH0odGhpcyxuLGgpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9dCx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfXMoaCxvKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBlPTE2LXRoaXMuX2FsZW4lMTY7ZTwxNiYmKGU9ci5hbGxvYyhlLDApLHRoaXMuX2doYXNoLnVwZGF0ZShlKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciBuPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLHQpO3JldHVybiB0aGlzLl9kZWNyeXB0P3RoaXMuX2doYXNoLnVwZGF0ZSh0KTp0aGlzLl9naGFzaC51cGRhdGUobiksdGhpcy5fbGVuKz10Lmxlbmd0aCxufSxoLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWNyeXB0JiYhdGhpcy5fYXV0aFRhZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3ZhciB0PXUodGhpcy5fZ2hhc2guZmluYWwoOCp0aGlzLl9hbGVuLDgqdGhpcy5fbGVuKSx0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHRoaXMuX2ZpbklEKSk7aWYodGhpcy5fZGVjcnlwdCYmZnVuY3Rpb24odCxlKXt2YXIgbj0wO3QubGVuZ3RoIT09ZS5sZW5ndGgmJm4rKztmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLHI9MDtyPGk7KytyKW4rPXRbcl1eZVtyXTtyZXR1cm4gbn0odCx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9dCx0aGlzLl9jaXBoZXIuc2NydWIoKX0saC5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFyLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30saC5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbih0KXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz10fSxoLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKHQpLHRoaXMuX2FsZW4rPXQubGVuZ3RofSx0LmV4cG9ydHM9aH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNDUpLHI9bigxKS5CdWZmZXIsbz1uKDIxKTtmdW5jdGlvbiBzKHQsZSxuLHMpe28uY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IGkuQUVTKGUpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fbW9kZT10fW4oMCkocyxvKSxzLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyx0LHRoaXMuX2RlY3J5cHQpfSxzLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sdC5leHBvcnRzPXN9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3KTt0LmV4cG9ydHM9YixiLnNpbXBsZVNpZXZlPWcsYi5mZXJtYXRUZXN0PXY7dmFyIHI9bigzKSxvPW5ldyByKDI0KSxzPW5ldyhuKDEwNCkpLGE9bmV3IHIoMSksdT1uZXcgcigyKSxjPW5ldyByKDUpLGg9KG5ldyByKDE2KSxuZXcgcig4KSxuZXcgcigxMCkpLGw9bmV3IHIoMyksZD0obmV3IHIoNyksbmV3IHIoMTEpKSxmPW5ldyByKDQpLHA9KG5ldyByKDEyKSxudWxsKTtmdW5jdGlvbiBtKCl7aWYobnVsbCE9PXApcmV0dXJuIHA7dmFyIHQ9W107dFswXT0yO2Zvcih2YXIgZT0xLG49MztuPDEwNDg1NzY7bis9Mil7Zm9yKHZhciBpPU1hdGguY2VpbChNYXRoLnNxcnQobikpLHI9MDtyPGUmJnRbcl08PWkmJm4ldFtyXSE9MDtyKyspO2UhPT1yJiZ0W3JdPD1pfHwodFtlKytdPW4pfXJldHVybiBwPXQsdH1mdW5jdGlvbiBnKHQpe2Zvcih2YXIgZT1tKCksbj0wO248ZS5sZW5ndGg7bisrKWlmKDA9PT10Lm1vZG4oZVtuXSkpcmV0dXJuIDA9PT10LmNtcG4oZVtuXSk7cmV0dXJuITB9ZnVuY3Rpb24gdih0KXt2YXIgZT1yLm1vbnQodCk7cmV0dXJuIDA9PT11LnRvUmVkKGUpLnJlZFBvdyh0LnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIGIodCxlKXtpZih0PDE2KXJldHVybiBuZXcgcigyPT09ZXx8NT09PWU/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgbixwO2ZvcihlPW5ldyByKGUpOzspe2ZvcihuPW5ldyByKGkoTWF0aC5jZWlsKHQvOCkpKTtuLmJpdExlbmd0aCgpPnQ7KW4uaXNocm4oMSk7aWYobi5pc0V2ZW4oKSYmbi5pYWRkKGEpLG4udGVzdG4oMSl8fG4uaWFkZCh1KSxlLmNtcCh1KSl7aWYoIWUuY21wKGMpKWZvcig7bi5tb2QoaCkuY21wKGwpOyluLmlhZGQoZil9ZWxzZSBmb3IoO24ubW9kKG8pLmNtcChkKTspbi5pYWRkKGYpO2lmKGcocD1uLnNocm4oMSkpJiZnKG4pJiZ2KHApJiZ2KG4pJiZzLnRlc3QocCkmJnMudGVzdChuKSlyZXR1cm4gbn19fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzKSxyPW4oMTA1KTtmdW5jdGlvbiBvKHQpe3RoaXMucmFuZD10fHxuZXcgci5SYW5kfXQuZXhwb3J0cz1vLG8uY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbyh0KX0sby5wcm90b3R5cGUuX3JhbmRiZWxvdz1mdW5jdGlvbih0KXt2YXIgZT10LmJpdExlbmd0aCgpLG49TWF0aC5jZWlsKGUvOCk7ZG97dmFyIHI9bmV3IGkodGhpcy5yYW5kLmdlbmVyYXRlKG4pKX13aGlsZShyLmNtcCh0KT49MCk7cmV0dXJuIHJ9LG8ucHJvdG90eXBlLl9yYW5kcmFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnN1Yih0KTtyZXR1cm4gdC5hZGQodGhpcy5fcmFuZGJlbG93KG4pKX0sby5wcm90b3R5cGUudGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIHI9dC5iaXRMZW5ndGgoKSxvPWkubW9udCh0KSxzPW5ldyBpKDEpLnRvUmVkKG8pO2V8fChlPU1hdGgubWF4KDEsci80OHwwKSk7Zm9yKHZhciBhPXQuc3VibigxKSx1PTA7IWEudGVzdG4odSk7dSsrKTtmb3IodmFyIGM9dC5zaHJuKHUpLGg9YS50b1JlZChvKTtlPjA7ZS0tKXt2YXIgbD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMiksYSk7biYmbihsKTt2YXIgZD1sLnRvUmVkKG8pLnJlZFBvdyhjKTtpZigwIT09ZC5jbXAocykmJjAhPT1kLmNtcChoKSl7Zm9yKHZhciBmPTE7Zjx1O2YrKyl7aWYoMD09PShkPWQucmVkU3FyKCkpLmNtcChzKSlyZXR1cm4hMTtpZigwPT09ZC5jbXAoaCkpYnJlYWt9aWYoZj09PXUpcmV0dXJuITF9fXJldHVybiEwfSxvLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5iaXRMZW5ndGgoKSxyPWkubW9udCh0KSxvPW5ldyBpKDEpLnRvUmVkKHIpO2V8fChlPU1hdGgubWF4KDEsbi80OHwwKSk7Zm9yKHZhciBzPXQuc3VibigxKSxhPTA7IXMudGVzdG4oYSk7YSsrKTtmb3IodmFyIHU9dC5zaHJuKGEpLGM9cy50b1JlZChyKTtlPjA7ZS0tKXt2YXIgaD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMikscyksbD10LmdjZChoKTtpZigwIT09bC5jbXBuKDEpKXJldHVybiBsO3ZhciBkPWgudG9SZWQocikucmVkUG93KHUpO2lmKDAhPT1kLmNtcChvKSYmMCE9PWQuY21wKGMpKXtmb3IodmFyIGY9MTtmPGE7ZisrKXtpZigwPT09KGQ9ZC5yZWRTcXIoKSkuY21wKG8pKXJldHVybiBkLmZyb21SZWQoKS5zdWJuKDEpLmdjZCh0KTtpZigwPT09ZC5jbXAoYykpYnJlYWt9aWYoZj09PWEpcmV0dXJuKGQ9ZC5yZWRTcXIoKSkuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKHQpfX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtmdW5jdGlvbiByKHQpe3RoaXMucmFuZD10fWlmKHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaXx8KGk9bmV3IHIobnVsbCkpLGkuZ2VuZXJhdGUodCl9LHQuZXhwb3J0cy5SYW5kPXIsci5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhbmQodCl9LHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKHQpO2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0KSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBlfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz9yLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGUpLGV9OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP3IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKSxlfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRyeXt2YXIgbz1uKDE4Myk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIik7ci5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8ucmFuZG9tQnl0ZXModCl9fWNhdGNoKHQpe319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtmdW5jdGlvbiByKHQpe3JldHVybiAxPT09dC5sZW5ndGg/IjAiK3Q6dH1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0Lmxlbmd0aDtuKyspZSs9cih0W25dLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGV9aS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5zbGljZSgpO2lmKCF0KXJldHVybltdO3ZhciBuPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspbltpXT0wfHRbaV07cmV0dXJuIG59aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLGk9MDtpPHQubGVuZ3RoO2krPTIpbi5wdXNoKHBhcnNlSW50KHRbaV0rdFtpKzFdLDE2KSk7ZWxzZSBmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgcj10LmNoYXJDb2RlQXQoaSksbz1yPj44LHM9MjU1JnI7bz9uLnB1c2gobyxzKTpuLnB1c2gocyl9cmV0dXJuIG59LGkuemVybzI9cixpLnRvSGV4PW8saS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4iaGV4Ij09PWU/byh0KTp0fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KS5yb3RyMzI7ZnVuY3Rpb24gcih0LGUsbil7cmV0dXJuIHQmZV5+dCZufWZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiB0JmVedCZuXmUmbn1mdW5jdGlvbiBzKHQsZSxuKXtyZXR1cm4gdF5lXm59ZS5mdF8xPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiAwPT09dD9yKGUsbixpKToxPT09dHx8Mz09PXQ/cyhlLG4saSk6Mj09PXQ/byhlLG4saSk6dm9pZCAwfSxlLmNoMzI9cixlLm1hajMyPW8sZS5wMzI9cyxlLnMwXzI1Nj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LDIpXmkodCwxMyleaSh0LDIyKX0sZS5zMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCw2KV5pKHQsMTEpXmkodCwyNSl9LGUuZzBfMjU2PWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsNyleaSh0LDE4KV50Pj4+M30sZS5nMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCwxNyleaSh0LDE5KV50Pj4+MTB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDEwNykscz1uKDE0KSxhPWkuc3VtMzIsdT1pLnN1bTMyXzQsYz1pLnN1bTMyXzUsaD1vLmNoMzIsbD1vLm1hajMyLGQ9by5zMF8yNTYsZj1vLnMxXzI1NixwPW8uZzBfMjU2LG09by5nMV8yNTYsZz1yLkJsb2NrSGFzaCx2PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIGIoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBiKSlyZXR1cm4gbmV3IGI7Zy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz12LHRoaXMuVz1uZXcgQXJyYXkoNjQpfWkuaW5oZXJpdHMoYixnKSx0LmV4cG9ydHM9YixiLmJsb2NrU2l6ZT01MTIsYi5vdXRTaXplPTI1NixiLmhtYWNTdHJlbmd0aD0xOTIsYi5wYWRMZW5ndGg9NjQsYi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLlcsaT0wO2k8MTY7aSsrKW5baV09dFtlK2ldO2Zvcig7aTxuLmxlbmd0aDtpKyspbltpXT11KG0obltpLTJdKSxuW2ktN10scChuW2ktMTVdKSxuW2ktMTZdKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0sZz10aGlzLmhbMl0sdj10aGlzLmhbM10sYj10aGlzLmhbNF0seT10aGlzLmhbNV0sXz10aGlzLmhbNl0sdz10aGlzLmhbN107Zm9yKHModGhpcy5rLmxlbmd0aD09PW4ubGVuZ3RoKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciB4PWModyxmKGIpLGgoYix5LF8pLHRoaXMua1tpXSxuW2ldKSxNPWEoZChyKSxsKHIsbyxnKSk7dz1fLF89eSx5PWIsYj1hKHYseCksdj1nLGc9byxvPXIscj1hKHgsTSl9dGhpcy5oWzBdPWEodGhpcy5oWzBdLHIpLHRoaXMuaFsxXT1hKHRoaXMuaFsxXSxvKSx0aGlzLmhbMl09YSh0aGlzLmhbMl0sZyksdGhpcy5oWzNdPWEodGhpcy5oWzNdLHYpLHRoaXMuaFs0XT1hKHRoaXMuaFs0XSxiKSx0aGlzLmhbNV09YSh0aGlzLmhbNV0seSksdGhpcy5oWzZdPWEodGhpcy5oWzZdLF8pLHRoaXMuaFs3XT1hKHRoaXMuaFs3XSx3KX0sYi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDE0KSxzPWkucm90cjY0X2hpLGE9aS5yb3RyNjRfbG8sdT1pLnNocjY0X2hpLGM9aS5zaHI2NF9sbyxoPWkuc3VtNjQsbD1pLnN1bTY0X2hpLGQ9aS5zdW02NF9sbyxmPWkuc3VtNjRfNF9oaSxwPWkuc3VtNjRfNF9sbyxtPWkuc3VtNjRfNV9oaSxnPWkuc3VtNjRfNV9sbyx2PXIuQmxvY2tIYXNoLGI9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiB5KCl7aWYoISh0aGlzIGluc3RhbmNlb2YgeSkpcmV0dXJuIG5ldyB5O3YuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1iLHRoaXMuVz1uZXcgQXJyYXkoMTYwKX1mdW5jdGlvbiBfKHQsZSxuLGkscil7dmFyIG89dCZuXn50JnI7cmV0dXJuIG88MCYmKG8rPTQyOTQ5NjcyOTYpLG99ZnVuY3Rpb24gdyh0LGUsbixpLHIsbyl7dmFyIHM9ZSZpXn5lJm87cmV0dXJuIHM8MCYmKHMrPTQyOTQ5NjcyOTYpLHN9ZnVuY3Rpb24geCh0LGUsbixpLHIpe3ZhciBvPXQmbl50JnJebiZyO3JldHVybiBvPDAmJihvKz00Mjk0OTY3Mjk2KSxvfWZ1bmN0aW9uIE0odCxlLG4saSxyLG8pe3ZhciBzPWUmaV5lJm9eaSZvO3JldHVybiBzPDAmJihzKz00Mjk0OTY3Mjk2KSxzfWZ1bmN0aW9uIFModCxlKXt2YXIgbj1zKHQsZSwyOClecyhlLHQsMilecyhlLHQsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gRSh0LGUpe3ZhciBuPWEodCxlLDI4KV5hKGUsdCwyKV5hKGUsdCw3KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBBKHQsZSl7dmFyIG49cyh0LGUsMTQpXnModCxlLDE4KV5zKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBDKHQsZSl7dmFyIG49YSh0LGUsMTQpXmEodCxlLDE4KV5hKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBrKHQsZSl7dmFyIG49cyh0LGUsMSlecyh0LGUsOCledSh0LGUsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gTyh0LGUpe3ZhciBuPWEodCxlLDEpXmEodCxlLDgpXmModCxlLDcpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFAodCxlKXt2YXIgbj1zKHQsZSwxOSlecyhlLHQsMjkpXnUodCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFQodCxlKXt2YXIgbj1hKHQsZSwxOSleYShlLHQsMjkpXmModCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWkuaW5oZXJpdHMoeSx2KSx0LmV4cG9ydHM9eSx5LmJsb2NrU2l6ZT0xMDI0LHkub3V0U2l6ZT01MTIseS5obWFjU3RyZW5ndGg9MTkyLHkucGFkTGVuZ3RoPTEyOCx5LnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMuVyxpPTA7aTwzMjtpKyspbltpXT10W2UraV07Zm9yKDtpPG4ubGVuZ3RoO2krPTIpe3ZhciByPVAobltpLTRdLG5baS0zXSksbz1UKG5baS00XSxuW2ktM10pLHM9bltpLTE0XSxhPW5baS0xM10sdT1rKG5baS0zMF0sbltpLTI5XSksYz1PKG5baS0zMF0sbltpLTI5XSksaD1uW2ktMzJdLGw9bltpLTMxXTtuW2ldPWYocixvLHMsYSx1LGMsaCxsKSxuW2krMV09cChyLG8scyxhLHUsYyxoLGwpfX0seS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ByZXBhcmVCbG9jayh0LGUpO3ZhciBuPXRoaXMuVyxpPXRoaXMuaFswXSxyPXRoaXMuaFsxXSxzPXRoaXMuaFsyXSxhPXRoaXMuaFszXSx1PXRoaXMuaFs0XSxjPXRoaXMuaFs1XSxmPXRoaXMuaFs2XSxwPXRoaXMuaFs3XSx2PXRoaXMuaFs4XSxiPXRoaXMuaFs5XSx5PXRoaXMuaFsxMF0saz10aGlzLmhbMTFdLE89dGhpcy5oWzEyXSxQPXRoaXMuaFsxM10sVD10aGlzLmhbMTRdLGo9dGhpcy5oWzE1XTtvKHRoaXMuay5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciBJPTA7STxuLmxlbmd0aDtJKz0yKXt2YXIgTD1ULEI9aixEPUEodixiKSxSPUModixiKSx6PV8odixiLHksayxPKSxOPXcodixiLHksayxPLFApLFc9dGhpcy5rW0ldLHE9dGhpcy5rW0krMV0sSD1uW0ldLEY9bltJKzFdLFY9bShMLEIsRCxSLHosTixXLHEsSCxGKSxVPWcoTCxCLEQsUix6LE4sVyxxLEgsRik7TD1TKGksciksQj1FKGksciksRD14KGkscixzLGEsdSksUj1NKGkscixzLGEsdSxjKTt2YXIgSz1sKEwsQixELFIpLFk9ZChMLEIsRCxSKTtUPU8saj1QLE89eSxQPWsseT12LGs9Yix2PWwoZixwLFYsVSksYj1kKHAscCxWLFUpLGY9dSxwPWMsdT1zLGM9YSxzPWksYT1yLGk9bChWLFUsSyxZKSxyPWQoVixVLEssWSl9aCh0aGlzLmgsMCxpLHIpLGgodGhpcy5oLDIscyxhKSxoKHRoaXMuaCw0LHUsYyksaCh0aGlzLmgsNixmLHApLGgodGhpcy5oLDgsdixiKSxoKHRoaXMuaCwxMCx5LGspLGgodGhpcy5oLDEyLE8sUCksaCh0aGlzLmgsMTQsVCxqKX0seS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzYpLlJlcG9ydGVyLG89big0KS5CdWZmZXI7ZnVuY3Rpb24gcyh0LGUpe3IuY2FsbCh0aGlzLGUpLG8uaXNCdWZmZXIodCk/KHRoaXMuYmFzZT10LHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9dC5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBhKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhfHwodD1uZXcgYSh0LGUpKSx0aGlzLmxlbmd0aCs9dC5sZW5ndGgsdH0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCEoMDw9dCYmdDw9MjU1KSlyZXR1cm4gZS5lcnJvcigibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZSIpO3RoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KXRoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD1vLmJ5dGVMZW5ndGgodCk7ZWxzZXtpZighby5pc0J1ZmZlcih0KSlyZXR1cm4gZS5lcnJvcigiVW5zdXBwb3J0ZWQgdHlwZTogIit0eXBlb2YgdCk7dGhpcy52YWx1ZT10LHRoaXMubGVuZ3RoPXQubGVuZ3RofX1pKHMsciksZS5EZWNvZGVyQnVmZmVyPXMscy5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6dGhpcy5vZmZzZXQscmVwb3J0ZXI6ci5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0scy5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBlLm9mZnNldD10Lm9mZnNldCxlLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD10Lm9mZnNldCxyLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyx0LnJlcG9ydGVyKSxlfSxzLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LHMucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKHR8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0scy5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbih0LGUpe2lmKCEodGhpcy5vZmZzZXQrdDw9dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzLmVycm9yKGV8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKTt2YXIgbj1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBuLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsbi5vZmZzZXQ9dGhpcy5vZmZzZXQsbi5sZW5ndGg9dGhpcy5vZmZzZXQrdCx0aGlzLm9mZnNldCs9dCxufSxzLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZSh0P3Qub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sZS5FbmNvZGVyQnVmZmVyPWEsYS5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0LGUpe3JldHVybiB0fHwodD1uZXcgbyh0aGlzLmxlbmd0aCkpLGV8fChlPTApLDA9PT10aGlzLmxlbmd0aD90OihBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihuKXtuLmpvaW4odCxlKSxlKz1uLmxlbmd0aH0pOigibnVtYmVyIj09dHlwZW9mIHRoaXMudmFsdWU/dFtlXT10aGlzLnZhbHVlOiJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZT90LndyaXRlKHRoaXMudmFsdWUsZSk6by5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KHQsZSksZSs9dGhpcy5sZW5ndGgpLHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5fcmV2ZXJzZT1mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXsoMHxuKT09biYmKG58PTApO3ZhciBpPXRbbl07ZVtpXT1ufSksZX0saS5kZXI9bigyMTUpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzUpLG89ci5iYXNlLHM9ci5iaWdudW0sYT1yLmNvbnN0YW50cy5kZXI7ZnVuY3Rpb24gdSh0KXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZW50aXR5PXQsdGhpcy50cmVlPW5ldyBjLHRoaXMudHJlZS5faW5pdCh0LmJvZHkpfWZ1bmN0aW9uIGModCl7by5Ob2RlLmNhbGwodGhpcywiZGVyIix0KX1mdW5jdGlvbiBoKHQsZSl7dmFyIG49dC5yZWFkVUludDgoZSk7aWYodC5pc0Vycm9yKG4pKXJldHVybiBuO3ZhciBpPWEudGFnQ2xhc3Nbbj4+Nl0scj0wPT0oMzImbik7aWYoMzE9PSgzMSZuKSl7dmFyIG89bjtmb3Iobj0wOzEyOD09KDEyOCZvKTspe2lmKG89dC5yZWFkVUludDgoZSksdC5pc0Vycm9yKG8pKXJldHVybiBvO248PD03LG58PTEyNyZvfX1lbHNlIG4mPTMxO3JldHVybntjbHM6aSxwcmltaXRpdmU6cix0YWc6bix0YWdTdHI6YS50YWdbbl19fWZ1bmN0aW9uIGwodCxlLG4pe3ZhciBpPXQucmVhZFVJbnQ4KG4pO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZighZSYmMTI4PT09aSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JmkpKXJldHVybiBpO3ZhciByPTEyNyZpO2lmKHI+NClyZXR1cm4gdC5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO2k9MDtmb3IodmFyIG89MDtvPHI7bysrKXtpPDw9ODt2YXIgcz10LnJlYWRVSW50OChuKTtpZih0LmlzRXJyb3IocykpcmV0dXJuIHM7aXw9c31yZXR1cm4gaX10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIG8uRGVjb2RlckJ1ZmZlcnx8KHQ9bmV3IG8uRGVjb2RlckJ1ZmZlcih0LGUpKSx0aGlzLnRyZWUuX2RlY29kZSh0LGUpfSxpKGMsby5Ob2RlKSxjLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbih0LGUsbil7aWYodC5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIGk9dC5zYXZlKCkscj1oKHQsJ0ZhaWxlZCB0byBwZWVrIHRhZzogIicrZSsnIicpO3JldHVybiB0LmlzRXJyb3Iocik/cjoodC5yZXN0b3JlKGkpLHIudGFnPT09ZXx8ci50YWdTdHI9PT1lfHxyLnRhZ1N0cisib2YiPT09ZXx8bil9LGMucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWgodCwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrZSsnIicpO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTt2YXIgcj1sKHQsaS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK2UrJyInKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoIW4mJmkudGFnIT09ZSYmaS50YWdTdHIhPT1lJiZpLnRhZ1N0cisib2YiIT09ZSlyZXR1cm4gdC5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrZSsnIicpO2lmKGkucHJpbWl0aXZlfHxudWxsIT09cilyZXR1cm4gdC5za2lwKHIsJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytlKyciJyk7dmFyIG89dC5zYXZlKCkscz10aGlzLl9za2lwVW50aWxFbmQodCwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gdC5pc0Vycm9yKHMpP3M6KHI9dC5vZmZzZXQtby5vZmZzZXQsdC5yZXN0b3JlKG8pLHQuc2tpcChyLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrZSsnIicpKX0sYy5wcm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbih0LGUpe2Zvcig7Oyl7dmFyIG49aCh0LGUpO2lmKHQuaXNFcnJvcihuKSlyZXR1cm4gbjt2YXIgaSxyPWwodCxuLnByaW1pdGl2ZSxlKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoaT1uLnByaW1pdGl2ZXx8bnVsbCE9PXI/dC5za2lwKHIpOnRoaXMuX3NraXBVbnRpbEVuZCh0LGUpLHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZigiZW5kIj09PW4udGFnU3RyKWJyZWFrfX0sYy5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdOyF0LmlzRW1wdHkoKTspe3ZhciBvPXRoaXMuX3BlZWtUYWcodCwiZW5kIik7aWYodC5pc0Vycm9yKG8pKXJldHVybiBvO3ZhciBzPW4uZGVjb2RlKHQsImRlciIsaSk7aWYodC5pc0Vycm9yKHMpJiZvKWJyZWFrO3IucHVzaChzKX1yZXR1cm4gcn0sYy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbih0LGUpe2lmKCJiaXRzdHIiPT09ZSl7dmFyIG49dC5yZWFkVUludDgoKTtyZXR1cm4gdC5pc0Vycm9yKG4pP246e3VudXNlZDpuLGRhdGE6dC5yYXcoKX19aWYoImJtcHN0ciI9PT1lKXt2YXIgaT10LnJhdygpO2lmKGkubGVuZ3RoJTI9PTEpcmV0dXJuIHQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7Zm9yKHZhciByPSIiLG89MDtvPGkubGVuZ3RoLzI7bysrKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaS5yZWFkVUludDE2QkUoMipvKSk7cmV0dXJuIHJ9aWYoIm51bXN0ciI9PT1lKXt2YXIgcz10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihzKT9zOnQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09ZSlyZXR1cm4gdC5yYXcoKTtpZigib2JqRGVzYyI9PT1lKXJldHVybiB0LnJhdygpO2lmKCJwcmludHN0ciI9PT1lKXt2YXIgYT10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGEpP2E6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1yZXR1cm4vc3RyJC8udGVzdChlKT90LnJhdygpLnRvU3RyaW5nKCk6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrZSsiIHVuc3VwcG9ydGVkIil9LGMucHJvdG90eXBlLl9kZWNvZGVPYmppZD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHI9W10sbz0wOyF0LmlzRW1wdHkoKTspe3ZhciBzPXQucmVhZFVJbnQ4KCk7bzw8PTcsb3w9MTI3JnMsMD09KDEyOCZzKSYmKHIucHVzaChvKSxvPTApfTEyOCZzJiZyLnB1c2gobyk7dmFyIGE9clswXS80MHwwLHU9clswXSU0MDtpZihpPW4/cjpbYSx1XS5jb25jYXQoci5zbGljZSgxKSksZSl7dmFyIGM9ZVtpLmpvaW4oIiAiKV07dm9pZCAwPT09YyYmKGM9ZVtpLmpvaW4oIi4iKV0pLHZvaWQgMCE9PWMmJihpPWMpfXJldHVybiBpfSxjLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCkudG9TdHJpbmcoKTtpZigiZ2VudGltZSI9PT1lKXZhciBpPTB8bi5zbGljZSgwLDQpLHI9MHxuLnNsaWNlKDQsNiksbz0wfG4uc2xpY2UoNiw4KSxzPTB8bi5zbGljZSg4LDEwKSxhPTB8bi5zbGljZSgxMCwxMiksdT0wfG4uc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3RpbWUiIT09ZSlyZXR1cm4gdC5lcnJvcigiRGVjb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpO2k9MHxuLnNsaWNlKDAsMikscj0wfG4uc2xpY2UoMiw0KSxvPTB8bi5zbGljZSg0LDYpLHM9MHxuLnNsaWNlKDYsOCksYT0wfG4uc2xpY2UoOCwxMCksdT0wfG4uc2xpY2UoMTAsMTIpO2k9aTw3MD8yZTMraToxOTAwK2l9cmV0dXJuIERhdGUuVVRDKGksci0xLG8scyxhLHUsMCl9LGMucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxjLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbih0KXt2YXIgZT10LnJlYWRVSW50OCgpO3JldHVybiB0LmlzRXJyb3IoZSk/ZTowIT09ZX0sYy5wcm90b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCksaT1uZXcgcyhuKTtyZXR1cm4gZSYmKGk9ZVtpLnRvU3RyaW5nKDEwKV18fGkpLGl9LGMucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dChlKSksdC5fZ2V0RGVjb2RlcigiZGVyIikudHJlZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDM1KSxzPW8uYmFzZSxhPW8uY29uc3RhbnRzLmRlcjtmdW5jdGlvbiB1KHQpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5lbnRpdHk9dCx0aGlzLnRyZWU9bmV3IGMsdGhpcy50cmVlLl9pbml0KHQuYm9keSl9ZnVuY3Rpb24gYyh0KXtzLk5vZGUuY2FsbCh0aGlzLCJkZXIiLHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ8MTA/IjAiK3Q6dH10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUodCxlKS5qb2luKCl9LGkoYyxzLk5vZGUpLGMucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIG8scz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcjsic2Vxb2YiPT09dD90PSJzZXEiOiJzZXRvZiI9PT10JiYodD0ic2V0Iik7aWYoYS50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkodCkpcj1hLnRhZ0J5TmFtZVt0XTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgdHx8KDB8dCkhPT10KXJldHVybiBpLmVycm9yKCJVbmtub3duIHRhZzogIit0KTtyPXR9aWYocj49MzEpcmV0dXJuIGkuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpO2V8fChyfD0zMik7cmV0dXJuIHJ8PWEudGFnQ2xhc3NCeU5hbWVbbnx8InVuaXZlcnNhbCJdPDw2fSh0LGUsbix0aGlzLnJlcG9ydGVyKTtpZihpLmxlbmd0aDwxMjgpcmV0dXJuKG89bmV3IHIoMikpWzBdPXMsb1sxXT1pLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtvLGldKTtmb3IodmFyIHU9MSxjPWkubGVuZ3RoO2M+PTI1NjtjPj49OCl1Kys7KG89bmV3IHIoMit1KSlbMF09cyxvWzFdPTEyOHx1O2M9MSt1O2Zvcih2YXIgaD1pLmxlbmd0aDtoPjA7Yy0tLGg+Pj04KW9bY109MjU1Jmg7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW28saV0pfSxjLnByb3RvdHlwZS5fZW5jb2RlU3RyPWZ1bmN0aW9uKHQsZSl7aWYoImJpdHN0ciI9PT1lKXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfHQudW51c2VkLHQuZGF0YV0pO2lmKCJibXBzdHIiPT09ZSl7Zm9yKHZhciBuPW5ldyByKDIqdC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoO2krKyluLndyaXRlVUludDE2QkUodC5jaGFyQ29kZUF0KGkpLDIqaSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobil9cmV0dXJuIm51bXN0ciI9PT1lP3RoaXMuX2lzTnVtc3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09ZT90aGlzLl9pc1ByaW50c3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChlKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpOiJvYmpEZXNjIj09PWU/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcih0KTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitlKyIgdW5zdXBwb3J0ZWQiKX0sYy5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKHQsZSxuKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7dD1lW3RdLnNwbGl0KC9bXHNcLl0rL2cpO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt0PXQuc2xpY2UoKTtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeSh0KSk7aWYoIW4pe2lmKHRbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTt0LnNwbGljZSgwLDIsNDAqdFswXSt0WzFdKX12YXIgbz0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBzPXRbaV07Zm9yKG8rKztzPj0xMjg7cz4+PTcpbysrfXZhciBhPW5ldyByKG8pLHU9YS5sZW5ndGgtMTtmb3IoaT10Lmxlbmd0aC0xO2k+PTA7aS0tKXtzPXRbaV07Zm9yKGFbdS0tXT0xMjcmczsocz4+PTcpPjA7KWFbdS0tXT0xMjh8MTI3JnN9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoYSl9LGMucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uZXcgRGF0ZSh0KTtyZXR1cm4iZ2VudGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpKSxoKGkuZ2V0VVRDTW9udGgoKSsxKSxoKGkuZ2V0VVRDRGF0ZSgpKSxoKGkuZ2V0VVRDSG91cnMoKSksaChpLmdldFVUQ01pbnV0ZXMoKSksaChpLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKToidXRjdGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpJTEwMCksaChpLmdldFVUQ01vbnRoKCkrMSksaChpLmdldFVUQ0RhdGUoKSksaChpLmdldFVUQ0hvdXJzKCkpLGgoaS5nZXRVVENNaW51dGVzKCkpLGgoaS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpLHRoaXMuX2VuY29kZVN0cihuLCJvY3RzdHIiKX0sYy5wcm90b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGMucHJvdG90eXBlLl9lbmNvZGVJbnQ9ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlZhbHVlcyBtYXAgZG9lc24ndCBjb250YWluOiAiK0pTT04uc3RyaW5naWZ5KHQpKTt0PWVbdF19aWYoIm51bWJlciIhPXR5cGVvZiB0JiYhci5pc0J1ZmZlcih0KSl7dmFyIG49dC50b0FycmF5KCk7IXQuc2lnbiYmMTI4Jm5bMF0mJm4udW5zaGlmdCgwKSx0PW5ldyByKG4pfWlmKHIuaXNCdWZmZXIodCkpe3ZhciBpPXQubGVuZ3RoOzA9PT10Lmxlbmd0aCYmaSsrO3ZhciBvPW5ldyByKGkpO3JldHVybiB0LmNvcHkobyksMD09PXQubGVuZ3RoJiYob1swXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG8pfWlmKHQ8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpO2lmKHQ8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLHRdKTtpPTE7Zm9yKHZhciBzPXQ7cz49MjU2O3M+Pj04KWkrKztmb3Iocz0obz1uZXcgQXJyYXkoaSkpLmxlbmd0aC0xO3M+PTA7cy0tKW9bc109MjU1JnQsdD4+PTg7cmV0dXJuIDEyOCZvWzBdJiZvLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihuZXcgcihvKSl9LGMucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQ/MjU1OjApfSxjLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQoZSkpLHQuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LGMucHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5jdGlvbih0LGUsbil7dmFyIGkscj10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PXIuZGVmYXVsdClyZXR1cm4hMTt2YXIgbz10LmpvaW4oKTtpZih2b2lkIDA9PT1yLmRlZmF1bHRCdWZmZXImJihyLmRlZmF1bHRCdWZmZXI9dGhpcy5fZW5jb2RlVmFsdWUoci5kZWZhdWx0LGUsbikuam9pbigpKSxvLmxlbmd0aCE9PXIuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpcmV0dXJuITE7Zm9yKGk9MDtpPG8ubGVuZ3RoO2krKylpZihvW2ldIT09ci5kZWZhdWx0QnVmZmVyW2ldKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiMS4zLjEzMi4wLjEwIjoic2VjcDI1NmsxIiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1IjoicDUyMSJ9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzMSkscj1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiBvKHQpe3ZhciBlPXIuYWxsb2NVbnNhZmUoNCk7cmV0dXJuIGUud3JpdGVVSW50MzJCRSh0LDApLGV9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHM9ci5hbGxvYygwKSxhPTA7cy5sZW5ndGg8ZTspbj1vKGErKykscz1yLmNvbmNhdChbcyxpKCJzaGExIikudXBkYXRlKHQpLnVwZGF0ZShuKS5kaWdlc3QoKV0pO3JldHVybiBzLnNsaWNlKDAsZSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPS0xOysraTxuOyl0W2ldXj1lW2ldO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMykscj1uKDEpLkJ1ZmZlcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5mcm9tKHQudG9SZWQoaS5tb250KGUubW9kdWx1cykpLnJlZFBvdyhuZXcgaShlLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTIxKSxvPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixzPSJbb2JqZWN0IEZ1bmN0aW9uXSIsYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHU9IltvYmplY3QgUHJveHldIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpcmV0dXJuITE7dmFyIGU9aSh0KTtyZXR1cm4gZT09c3x8ZT09YXx8ZT09b3x8ZT09dX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG49Im9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLk9iamVjdD09PU9iamVjdCYmZTt0LmV4cG9ydHM9bn0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PWV8fCJmdW5jdGlvbiI9PWUpfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gbi5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1MSkscj1uKDI1OCksbz1uKDI2MCkscz1uKDI2MSksYT1uKDI2Mik7ZnVuY3Rpb24gdSh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX11LnByb3RvdHlwZS5jbGVhcj1pLHUucHJvdG90eXBlLmRlbGV0ZT1yLHUucHJvdG90eXBlLmdldD1vLHUucHJvdG90eXBlLmhhcz1zLHUucHJvdG90eXBlLnNldD1hLHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNjMpLHI9bigyNjYpLG89bigyNjcpLHM9MSxhPTI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHUsYyxoKXt2YXIgbD1uJnMsZD10Lmxlbmd0aCxmPWUubGVuZ3RoO2lmKGQhPWYmJiEobCYmZj5kKSlyZXR1cm4hMTt2YXIgcD1oLmdldCh0KTtpZihwJiZoLmdldChlKSlyZXR1cm4gcD09ZTt2YXIgbT0tMSxnPSEwLHY9biZhP25ldyBpOnZvaWQgMDtmb3IoaC5zZXQodCxlKSxoLnNldChlLHQpOysrbTxkOyl7dmFyIGI9dFttXSx5PWVbbV07aWYodSl2YXIgXz1sP3UoeSxiLG0sZSx0LGgpOnUoYix5LG0sdCxlLGgpO2lmKHZvaWQgMCE9PV8pe2lmKF8pY29udGludWU7Zz0hMTticmVha31pZih2KXtpZighcihlLGZ1bmN0aW9uKHQsZSl7aWYoIW8odixlKSYmKGI9PT10fHxjKGIsdCxuLHUsaCkpKXJldHVybiB2LnB1c2goZSl9KSl7Zz0hMTticmVha319ZWxzZSBpZihiIT09eSYmIWMoYix5LG4sdSxoKSl7Zz0hMTticmVha319cmV0dXJuIGguZGVsZXRlKHQpLGguZGVsZXRlKGUpLGd9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTkpLHI9bigyODQpLG89ZSYmIWUubm9kZVR5cGUmJmUscz1vJiYib2JqZWN0Ij09dHlwZW9mIHQmJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9cyYmcy5leHBvcnRzPT09bz9pLkJ1ZmZlcjp2b2lkIDAsdT0oYT9hLmlzQnVmZmVyOnZvaWQgMCl8fHI7dC5leHBvcnRzPXV9KS5jYWxsKHRoaXMsbig0NykodCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODYpLHI9bigyODcpLG89bigyODgpLHM9byYmby5pc1R5cGVkQXJyYXksYT1zP3Iocyk6aTt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9bn19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KGUobikpfX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oaSl7dmFyIHIsbyxzO3M9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PXNlbGYmJnNlbGZ8fCJvYmplY3QiPT10eXBlb2YgaSYmaS5nbG9iYWw9PWkmJmkscj1bbig2KSxuKDE1KSxlXSx2b2lkIDA9PT0obz1mdW5jdGlvbih0LGUsbil7cy5CYWNrYm9uZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10LkJhY2tib25lLG89QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuVkVSU0lPTj0iMS4yLjMiLGUuJD1pLGUubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0LkJhY2tib25lPXIsdGhpc30sZS5lbXVsYXRlSFRUUD0hMSxlLmVtdWxhdGVKU09OPSExO3ZhciBzPWZ1bmN0aW9uKHQsZSxpKXtuLmVhY2goZSxmdW5jdGlvbihlLHIpe25bcl0mJih0LnByb3RvdHlwZVtyXT1mdW5jdGlvbih0LGUsaSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXSh0aGlzW2ldKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbltlXSh0aGlzW2ldLHQpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIG5bZV0odGhpc1tpXSxhKHQsdGhpcykscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24odCxyLG8pe3JldHVybiBuW2VdKHRoaXNbaV0sYSh0LHRoaXMpLHIsbyl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9by5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQudW5zaGlmdCh0aGlzW2ldKSxuW2VdLmFwcGx5KG4sdCl9fX0oZSxyLGkpKX0pfSxhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbih0KT90Om4uaXNPYmplY3QodCkmJiFlLl9pc01vZGVsKHQpP3UodCk6bi5pc1N0cmluZyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQodCl9OnR9LHU9ZnVuY3Rpb24odCl7dmFyIGU9bi5tYXRjaGVzKHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0LmF0dHJpYnV0ZXMpfX0sYz1lLkV2ZW50cz17fSxoPS9ccysvLGw9ZnVuY3Rpb24odCxlLGkscixvKXt2YXIgcyxhPTA7aWYoaSYmIm9iamVjdCI9PXR5cGVvZiBpKXt2b2lkIDAhPT1yJiYiY29udGV4dCJpbiBvJiZ2b2lkIDA9PT1vLmNvbnRleHQmJihvLmNvbnRleHQ9cik7Zm9yKHM9bi5rZXlzKGkpO2E8cy5sZW5ndGg7YSsrKWU9bCh0LGUsc1thXSxpW3NbYV1dLG8pfWVsc2UgaWYoaSYmaC50ZXN0KGkpKWZvcihzPWkuc3BsaXQoaCk7YTxzLmxlbmd0aDthKyspZT10KGUsc1thXSxyLG8pO2Vsc2UgZT10KGUsaSxyLG8pO3JldHVybiBlfTtjLm9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZCh0aGlzLHQsZSxuKX07dmFyIGQ9ZnVuY3Rpb24odCxlLG4saSxyKXtpZih0Ll9ldmVudHM9bChmLHQuX2V2ZW50c3x8e30sZSxuLHtjb250ZXh0OmksY3R4OnQsbGlzdGVuaW5nOnJ9KSxyKXt2YXIgbz10Ll9saXN0ZW5lcnN8fCh0Ll9saXN0ZW5lcnM9e30pO29bci5pZF09cn1yZXR1cm4gdH07Yy5saXN0ZW5Ubz1mdW5jdGlvbih0LGUsaSl7aWYoIXQpcmV0dXJuIHRoaXM7dmFyIHI9dC5fbGlzdGVuSWR8fCh0Ll9saXN0ZW5JZD1uLnVuaXF1ZUlkKCJsIikpLG89dGhpcy5fbGlzdGVuaW5nVG98fCh0aGlzLl9saXN0ZW5pbmdUbz17fSkscz1vW3JdO2lmKCFzKXt2YXIgYT10aGlzLl9saXN0ZW5JZHx8KHRoaXMuX2xpc3RlbklkPW4udW5pcXVlSWQoImwiKSk7cz1vW3JdPXtvYmo6dCxvYmpJZDpyLGlkOmEsbGlzdGVuaW5nVG86byxjb3VudDowfX1yZXR1cm4gZCh0LGUsaSx0aGlzLHMpLHRoaXN9O3ZhciBmPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKG4pe3ZhciByPXRbZV18fCh0W2VdPVtdKSxvPWkuY29udGV4dCxzPWkuY3R4LGE9aS5saXN0ZW5pbmc7YSYmYS5jb3VudCsrLHIucHVzaCh7Y2FsbGJhY2s6bixjb250ZXh0Om8sY3R4Om98fHMsbGlzdGVuaW5nOmF9KX1yZXR1cm4gdH07Yy5vZmY9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLl9ldmVudHM/KHRoaXMuX2V2ZW50cz1sKHAsdGhpcy5fZXZlbnRzLHQsZSx7Y29udGV4dDpuLGxpc3RlbmVyczp0aGlzLl9saXN0ZW5lcnN9KSx0aGlzKTp0aGlzfSxjLnN0b3BMaXN0ZW5pbmc9ZnVuY3Rpb24odCxlLGkpe3ZhciByPXRoaXMuX2xpc3RlbmluZ1RvO2lmKCFyKXJldHVybiB0aGlzO2Zvcih2YXIgbz10P1t0Ll9saXN0ZW5JZF06bi5rZXlzKHIpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGE9cltvW3NdXTtpZighYSlicmVhazthLm9iai5vZmYoZSxpLHRoaXMpfXJldHVybiBuLmlzRW1wdHkocikmJih0aGlzLl9saXN0ZW5pbmdUbz12b2lkIDApLHRoaXN9O3ZhciBwPWZ1bmN0aW9uKHQsZSxpLHIpe2lmKHQpe3ZhciBvLHM9MCxhPXIuY29udGV4dCx1PXIubGlzdGVuZXJzO2lmKGV8fGl8fGEpe2Zvcih2YXIgYz1lP1tlXTpuLmtleXModCk7czxjLmxlbmd0aDtzKyspe2U9Y1tzXTt2YXIgaD10W2VdO2lmKCFoKWJyZWFrO2Zvcih2YXIgbD1bXSxkPTA7ZDxoLmxlbmd0aDtkKyspe3ZhciBmPWhbZF07aSYmaSE9PWYuY2FsbGJhY2smJmkhPT1mLmNhbGxiYWNrLl9jYWxsYmFja3x8YSYmYSE9PWYuY29udGV4dD9sLnB1c2goZik6KG89Zi5saXN0ZW5pbmcpJiYwPT0tLW8uY291bnQmJihkZWxldGUgdVtvLmlkXSxkZWxldGUgby5saXN0ZW5pbmdUb1tvLm9iaklkXSl9bC5sZW5ndGg/dFtlXT1sOmRlbGV0ZSB0W2VdfXJldHVybiBuLnNpemUodCk/dDp2b2lkIDB9Zm9yKHZhciBwPW4ua2V5cyh1KTtzPHAubGVuZ3RoO3MrKylvPXVbcFtzXV0sZGVsZXRlIHVbby5pZF0sZGVsZXRlIG8ubGlzdGVuaW5nVG9bby5vYmpJZF19fTtjLm9uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSx0LGUsbi5iaW5kKHRoaXMub2ZmLHRoaXMpKTtyZXR1cm4gdGhpcy5vbihyLHZvaWQgMCxpKX0sYy5saXN0ZW5Ub09uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSxlLGksbi5iaW5kKHRoaXMuc3RvcExpc3RlbmluZyx0aGlzLHQpKTtyZXR1cm4gdGhpcy5saXN0ZW5Ubyh0LHIpfTt2YXIgbT1mdW5jdGlvbih0LGUsaSxyKXtpZihpKXt2YXIgbz10W2VdPW4ub25jZShmdW5jdGlvbigpe3IoZSxvKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO28uX2NhbGxiYWNrPWl9cmV0dXJuIHR9O2MudHJpZ2dlcj1mdW5jdGlvbih0KXtpZighdGhpcy5fZXZlbnRzKXJldHVybiB0aGlzO2Zvcih2YXIgZT1NYXRoLm1heCgwLGFyZ3VtZW50cy5sZW5ndGgtMSksbj1BcnJheShlKSxpPTA7aTxlO2krKyluW2ldPWFyZ3VtZW50c1tpKzFdO3JldHVybiBsKGcsdGhpcy5fZXZlbnRzLHQsdm9pZCAwLG4pLHRoaXN9O3ZhciBnPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQpe3ZhciByPXRbZV0sbz10LmFsbDtyJiZvJiYobz1vLnNsaWNlKCkpLHImJnYocixpKSxvJiZ2KG8sW2VdLmNvbmNhdChpKSl9cmV0dXJuIHR9LHY9ZnVuY3Rpb24odCxlKXt2YXIgbixpPS0xLHI9dC5sZW5ndGgsbz1lWzBdLHM9ZVsxXSxhPWVbMl07c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCk7cmV0dXJuO2Nhc2UgMTpmb3IoOysraTxyOykobj10W2ldKS5jYWxsYmFjay5jYWxsKG4uY3R4LG8pO3JldHVybjtjYXNlIDI6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMpO3JldHVybjtjYXNlIDM6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMsYSk7cmV0dXJuO2RlZmF1bHQ6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suYXBwbHkobi5jdHgsZSk7cmV0dXJufX07Yy5iaW5kPWMub24sYy51bmJpbmQ9Yy5vZmYsbi5leHRlbmQoZSxjKTt2YXIgYj1lLk1vZGVsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dHx8e307ZXx8KGU9e30pLHRoaXMuY2lkPW4udW5pcXVlSWQodGhpcy5jaWRQcmVmaXgpLHRoaXMuYXR0cmlidXRlcz17fSxlLmNvbGxlY3Rpb24mJih0aGlzLmNvbGxlY3Rpb249ZS5jb2xsZWN0aW9uKSxlLnBhcnNlJiYoaT10aGlzLnBhcnNlKGksZSl8fHt9KSxpPW4uZGVmYXVsdHMoe30saSxuLnJlc3VsdCh0aGlzLCJkZWZhdWx0cyIpKSx0aGlzLnNldChpLGUpLHRoaXMuY2hhbmdlZD17fSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtuLmV4dGVuZChiLnByb3RvdHlwZSxjLHtjaGFuZ2VkOm51bGwsdmFsaWRhdGlvbkVycm9yOm51bGwsaWRBdHRyaWJ1dGU6ImlkIixjaWRQcmVmaXg6ImMiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9LHRvSlNPTjpmdW5jdGlvbih0KXtyZXR1cm4gbi5jbG9uZSh0aGlzLmF0dHJpYnV0ZXMpfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfSxlc2NhcGU6ZnVuY3Rpb24odCl7cmV0dXJuIG4uZXNjYXBlKHRoaXMuZ2V0KHQpKX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10aGlzLmdldCh0KX0sbWF0Y2hlczpmdW5jdGlvbih0KXtyZXR1cm4hIW4uaXRlcmF0ZWUodCx0aGlzKSh0aGlzLmF0dHJpYnV0ZXMpfSxzZXQ6ZnVuY3Rpb24odCxlLGkpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXM7dmFyIHI7aWYoIm9iamVjdCI9PXR5cGVvZiB0PyhyPXQsaT1lKToocj17fSlbdF09ZSxpfHwoaT17fSksIXRoaXMuX3ZhbGlkYXRlKHIsaSkpcmV0dXJuITE7dmFyIG89aS51bnNldCxzPWkuc2lsZW50LGE9W10sdT10aGlzLl9jaGFuZ2luZzt0aGlzLl9jaGFuZ2luZz0hMCx1fHwodGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzPW4uY2xvbmUodGhpcy5hdHRyaWJ1dGVzKSx0aGlzLmNoYW5nZWQ9e30pO3ZhciBjPXRoaXMuYXR0cmlidXRlcyxoPXRoaXMuY2hhbmdlZCxsPXRoaXMuX3ByZXZpb3VzQXR0cmlidXRlcztmb3IodmFyIGQgaW4gcillPXJbZF0sbi5pc0VxdWFsKGNbZF0sZSl8fGEucHVzaChkKSxuLmlzRXF1YWwobFtkXSxlKT9kZWxldGUgaFtkXTpoW2RdPWUsbz9kZWxldGUgY1tkXTpjW2RdPWU7aWYodGhpcy5pZD10aGlzLmdldCh0aGlzLmlkQXR0cmlidXRlKSwhcyl7YS5sZW5ndGgmJih0aGlzLl9wZW5kaW5nPWkpO2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXRoaXMudHJpZ2dlcigiY2hhbmdlOiIrYVtmXSx0aGlzLGNbYVtmXV0saSl9aWYodSlyZXR1cm4gdGhpcztpZighcylmb3IoO3RoaXMuX3BlbmRpbmc7KWk9dGhpcy5fcGVuZGluZyx0aGlzLl9wZW5kaW5nPSExLHRoaXMudHJpZ2dlcigiY2hhbmdlIix0aGlzLGkpO3JldHVybiB0aGlzLl9wZW5kaW5nPSExLHRoaXMuX2NoYW5naW5nPSExLHRoaXN9LHVuc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0KHQsdm9pZCAwLG4uZXh0ZW5kKHt9LGUse3Vuc2V0OiEwfSkpfSxjbGVhcjpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIGkgaW4gdGhpcy5hdHRyaWJ1dGVzKWVbaV09dm9pZCAwO3JldHVybiB0aGlzLnNldChlLG4uZXh0ZW5kKHt9LHQse3Vuc2V0OiEwfSkpfSxoYXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyFuLmlzRW1wdHkodGhpcy5jaGFuZ2VkKTpuLmhhcyh0aGlzLmNoYW5nZWQsdCl9LGNoYW5nZWRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiEhdGhpcy5oYXNDaGFuZ2VkKCkmJm4uY2xvbmUodGhpcy5jaGFuZ2VkKTt2YXIgZT10aGlzLl9jaGFuZ2luZz90aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM6dGhpcy5hdHRyaWJ1dGVzLGk9e307Zm9yKHZhciByIGluIHQpe3ZhciBvPXRbcl07bi5pc0VxdWFsKGVbcl0sbyl8fChpW3JdPW8pfXJldHVybiEhbi5zaXplKGkpJiZpfSxwcmV2aW91czpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmdGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzP3RoaXMuX3ByZXZpb3VzQXR0cmlidXRlc1t0XTpudWxsfSxwcmV2aW91c0F0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXMpfSxmZXRjaDpmdW5jdGlvbih0KXt0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCk7dmFyIGU9dGhpcyxpPXQuc3VjY2VzcztyZXR1cm4gdC5zdWNjZXNzPWZ1bmN0aW9uKG4pe3ZhciByPXQucGFyc2U/ZS5wYXJzZShuLHQpOm47aWYoIWUuc2V0KHIsdCkpcmV0dXJuITE7aSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS50cmlnZ2VyKCJzeW5jIixlLG4sdCl9LFIodGhpcyx0KSx0aGlzLnN5bmMoInJlYWQiLHRoaXMsdCl9LHNhdmU6ZnVuY3Rpb24odCxlLGkpe3ZhciByO251bGw9PXR8fCJvYmplY3QiPT10eXBlb2YgdD8ocj10LGk9ZSk6KHI9e30pW3RdPWU7dmFyIG89KGk9bi5leHRlbmQoe3ZhbGlkYXRlOiEwLHBhcnNlOiEwfSxpKSkud2FpdDtpZihyJiYhbyl7aWYoIXRoaXMuc2V0KHIsaSkpcmV0dXJuITF9ZWxzZSBpZighdGhpcy5fdmFsaWRhdGUocixpKSlyZXR1cm4hMTt2YXIgcz10aGlzLGE9aS5zdWNjZXNzLHU9dGhpcy5hdHRyaWJ1dGVzO2kuc3VjY2Vzcz1mdW5jdGlvbih0KXtzLmF0dHJpYnV0ZXM9dTt2YXIgZT1pLnBhcnNlP3MucGFyc2UodCxpKTp0O2lmKG8mJihlPW4uZXh0ZW5kKHt9LHIsZSkpLGUmJiFzLnNldChlLGkpKXJldHVybiExO2EmJmEuY2FsbChpLmNvbnRleHQscyx0LGkpLHMudHJpZ2dlcigic3luYyIscyx0LGkpfSxSKHRoaXMsaSksciYmbyYmKHRoaXMuYXR0cmlidXRlcz1uLmV4dGVuZCh7fSx1LHIpKTt2YXIgYz10aGlzLmlzTmV3KCk/ImNyZWF0ZSI6aS5wYXRjaD8icGF0Y2giOiJ1cGRhdGUiOyJwYXRjaCIhPT1jfHxpLmF0dHJzfHwoaS5hdHRycz1yKTt2YXIgaD10aGlzLnN5bmMoYyx0aGlzLGkpO3JldHVybiB0aGlzLmF0dHJpYnV0ZXM9dSxofSxkZXN0cm95OmZ1bmN0aW9uKHQpe3Q9dD9uLmNsb25lKHQpOnt9O3ZhciBlPXRoaXMsaT10LnN1Y2Nlc3Mscj10LndhaXQsbz1mdW5jdGlvbigpe2Uuc3RvcExpc3RlbmluZygpLGUudHJpZ2dlcigiZGVzdHJveSIsZSxlLmNvbGxlY3Rpb24sdCl9O3Quc3VjY2Vzcz1mdW5jdGlvbihuKXtyJiZvKCksaSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS5pc05ldygpfHxlLnRyaWdnZXIoInN5bmMiLGUsbix0KX07dmFyIHM9ITE7cmV0dXJuIHRoaXMuaXNOZXcoKT9uLmRlZmVyKHQuc3VjY2Vzcyk6KFIodGhpcyx0KSxzPXRoaXMuc3luYygiZGVsZXRlIix0aGlzLHQpKSxyfHxvKCksc30sdXJsOmZ1bmN0aW9uKCl7dmFyIHQ9bi5yZXN1bHQodGhpcywidXJsUm9vdCIpfHxuLnJlc3VsdCh0aGlzLmNvbGxlY3Rpb24sInVybCIpfHxEKCk7aWYodGhpcy5pc05ldygpKXJldHVybiB0O3ZhciBlPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpO3JldHVybiB0LnJlcGxhY2UoL1teXC9dJC8sIiQmLyIpK2VuY29kZVVSSUNvbXBvbmVudChlKX0scGFyc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hdHRyaWJ1dGVzKX0saXNOZXc6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXModGhpcy5pZEF0dHJpYnV0ZSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHt9LG4uZGVmYXVsdHMoe3ZhbGlkYXRlOiEwfSx0KSl9LF92YWxpZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCFlLnZhbGlkYXRlfHwhdGhpcy52YWxpZGF0ZSlyZXR1cm4hMDt0PW4uZXh0ZW5kKHt9LHRoaXMuYXR0cmlidXRlcyx0KTt2YXIgaT10aGlzLnZhbGlkYXRpb25FcnJvcj10aGlzLnZhbGlkYXRlKHQsZSl8fG51bGw7cmV0dXJuIWl8fCh0aGlzLnRyaWdnZXIoImludmFsaWQiLHRoaXMsaSxuLmV4dGVuZChlLHt2YWxpZGF0aW9uRXJyb3I6aX0pKSwhMSl9fSkscyhiLHtrZXlzOjEsdmFsdWVzOjEscGFpcnM6MSxpbnZlcnQ6MSxwaWNrOjAsb21pdDowLGNoYWluOjEsaXNFbXB0eToxfSwiYXR0cmlidXRlcyIpO3ZhciB5PWUuQ29sbGVjdGlvbj1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSxlLm1vZGVsJiYodGhpcy5tb2RlbD1lLm1vZGVsKSx2b2lkIDAhPT1lLmNvbXBhcmF0b3ImJih0aGlzLmNvbXBhcmF0b3I9ZS5jb21wYXJhdG9yKSx0aGlzLl9yZXNldCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdCYmdGhpcy5yZXNldCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKX0sXz17YWRkOiEwLHJlbW92ZTohMCxtZXJnZTohMH0sdz17YWRkOiEwLHJlbW92ZTohMX0seD1mdW5jdGlvbih0LGUsbil7bj1NYXRoLm1pbihNYXRoLm1heChuLDApLHQubGVuZ3RoKTtmb3IodmFyIGk9QXJyYXkodC5sZW5ndGgtbikscj1lLmxlbmd0aCxvPTA7bzxpLmxlbmd0aDtvKyspaVtvXT10W28rbl07Zm9yKG89MDtvPHI7bysrKXRbbytuXT1lW29dO2ZvcihvPTA7bzxpLmxlbmd0aDtvKyspdFtvK3Irbl09aVtvXX07bi5leHRlbmQoeS5wcm90b3R5cGUsYyx7bW9kZWw6Yixpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvSlNPTih0KX0pfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNldCh0LG4uZXh0ZW5kKHttZXJnZTohMX0sZSx3KSl9LHJlbW92ZTpmdW5jdGlvbih0LGUpe2U9bi5leHRlbmQoe30sZSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOm4uY2xvbmUodCk7dmFyIHI9dGhpcy5fcmVtb3ZlTW9kZWxzKHQsZSk7cmV0dXJuIWUuc2lsZW50JiZyJiZ0aGlzLnRyaWdnZXIoInVwZGF0ZSIsdGhpcyxlKSxpP3JbMF06cn0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCl7KGU9bi5kZWZhdWx0cyh7fSxlLF8pKS5wYXJzZSYmIXRoaXMuX2lzTW9kZWwodCkmJih0PXRoaXMucGFyc2UodCxlKSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOnQuc2xpY2UoKTt2YXIgcj1lLmF0O251bGwhPXImJihyPStyKSxyPDAmJihyKz10aGlzLmxlbmd0aCsxKTtmb3IodmFyIG8scz1bXSxhPVtdLHU9W10sYz17fSxoPWUuYWRkLGw9ZS5tZXJnZSxkPWUucmVtb3ZlLGY9ITEscD10aGlzLmNvbXBhcmF0b3ImJm51bGw9PXImJiExIT09ZS5zb3J0LG09bi5pc1N0cmluZyh0aGlzLmNvbXBhcmF0b3IpP3RoaXMuY29tcGFyYXRvcjpudWxsLGc9MDtnPHQubGVuZ3RoO2crKyl7bz10W2ddO3ZhciB2PXRoaXMuZ2V0KG8pO2lmKHYpe2lmKGwmJm8hPT12KXt2YXIgYj10aGlzLl9pc01vZGVsKG8pP28uYXR0cmlidXRlczpvO2UucGFyc2UmJihiPXYucGFyc2UoYixlKSksdi5zZXQoYixlKSxwJiYhZiYmKGY9di5oYXNDaGFuZ2VkKG0pKX1jW3YuY2lkXXx8KGNbdi5jaWRdPSEwLHMucHVzaCh2KSksdFtnXT12fWVsc2UgaCYmKG89dFtnXT10aGlzLl9wcmVwYXJlTW9kZWwobyxlKSkmJihhLnB1c2gobyksdGhpcy5fYWRkUmVmZXJlbmNlKG8sZSksY1tvLmNpZF09ITAscy5wdXNoKG8pKX1pZihkKXtmb3IoZz0wO2c8dGhpcy5sZW5ndGg7ZysrKW89dGhpcy5tb2RlbHNbZ10sY1tvLmNpZF18fHUucHVzaChvKTt1Lmxlbmd0aCYmdGhpcy5fcmVtb3ZlTW9kZWxzKHUsZSl9dmFyIHk9ITEsdz0hcCYmaCYmZDtpZihzLmxlbmd0aCYmdz8oeT10aGlzLmxlbmd0aCE9cy5sZW5ndGh8fG4uc29tZSh0aGlzLm1vZGVscyxmdW5jdGlvbih0LGUpe3JldHVybiB0IT09c1tlXX0pLHRoaXMubW9kZWxzLmxlbmd0aD0wLHgodGhpcy5tb2RlbHMscywwKSx0aGlzLmxlbmd0aD10aGlzLm1vZGVscy5sZW5ndGgpOmEubGVuZ3RoJiYocCYmKGY9ITApLHgodGhpcy5tb2RlbHMsYSxudWxsPT1yP3RoaXMubGVuZ3RoOnIpLHRoaXMubGVuZ3RoPXRoaXMubW9kZWxzLmxlbmd0aCksZiYmdGhpcy5zb3J0KHtzaWxlbnQ6ITB9KSwhZS5zaWxlbnQpe2ZvcihnPTA7ZzxhLmxlbmd0aDtnKyspbnVsbCE9ciYmKGUuaW5kZXg9citnKSwobz1hW2ddKS50cmlnZ2VyKCJhZGQiLG8sdGhpcyxlKTsoZnx8eSkmJnRoaXMudHJpZ2dlcigic29ydCIsdGhpcyxlKSwoYS5sZW5ndGh8fHUubGVuZ3RoKSYmdGhpcy50cmlnZ2VyKCJ1cGRhdGUiLHRoaXMsZSl9cmV0dXJuIGk/dFswXTp0fX0scmVzZXQ6ZnVuY3Rpb24odCxlKXtlPWU/bi5jbG9uZShlKTp7fTtmb3IodmFyIGk9MDtpPHRoaXMubW9kZWxzLmxlbmd0aDtpKyspdGhpcy5fcmVtb3ZlUmVmZXJlbmNlKHRoaXMubW9kZWxzW2ldLGUpO3JldHVybiBlLnByZXZpb3VzTW9kZWxzPXRoaXMubW9kZWxzLHRoaXMuX3Jlc2V0KCksdD10aGlzLmFkZCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKSxlLnNpbGVudHx8dGhpcy50cmlnZ2VyKCJyZXNldCIsdGhpcyxlKSx0fSxwdXNoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OnRoaXMubGVuZ3RofSxlKSl9LHBvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmF0KHRoaXMubGVuZ3RoLTEpO3JldHVybiB0aGlzLnJlbW92ZShlLHQpfSx1bnNoaWZ0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OjB9LGUpKX0sc2hpZnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdCgwKTtyZXR1cm4gdGhpcy5yZW1vdmUoZSx0KX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0aGlzLm1vZGVscyxhcmd1bWVudHMpfSxnZXQ6ZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dmFyIGU9dGhpcy5tb2RlbElkKHRoaXMuX2lzTW9kZWwodCk/dC5hdHRyaWJ1dGVzOnQpO3JldHVybiB0aGlzLl9ieUlkW3RdfHx0aGlzLl9ieUlkW2VdfHx0aGlzLl9ieUlkW3QuY2lkXX19LGF0OmZ1bmN0aW9uKHQpe3JldHVybiB0PDAmJih0Kz10aGlzLmxlbmd0aCksdGhpcy5tb2RlbHNbdF19LHdoZXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbZT8iZmluZCI6ImZpbHRlciJdKHQpfSxmaW5kV2hlcmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2hlcmUodCwhMCl9LHNvcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb21wYXJhdG9yO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNvcnQgYSBzZXQgd2l0aG91dCBhIGNvbXBhcmF0b3IiKTt0fHwodD17fSk7dmFyIGk9ZS5sZW5ndGg7cmV0dXJuIG4uaXNGdW5jdGlvbihlKSYmKGU9bi5iaW5kKGUsdGhpcykpLDE9PT1pfHxuLmlzU3RyaW5nKGUpP3RoaXMubW9kZWxzPXRoaXMuc29ydEJ5KGUpOnRoaXMubW9kZWxzLnNvcnQoZSksdC5zaWxlbnR8fHRoaXMudHJpZ2dlcigic29ydCIsdGhpcyx0KSx0aGlzfSxwbHVjazpmdW5jdGlvbih0KXtyZXR1cm4gbi5pbnZva2UodGhpcy5tb2RlbHMsImdldCIsdCl9LGZldGNoOmZ1bmN0aW9uKHQpe3ZhciBlPSh0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCkpLnN1Y2Nlc3MsaT10aGlzO3JldHVybiB0LnN1Y2Nlc3M9ZnVuY3Rpb24obil7dmFyIHI9dC5yZXNldD8icmVzZXQiOiJzZXQiO2lbcl0obix0KSxlJiZlLmNhbGwodC5jb250ZXh0LGksbix0KSxpLnRyaWdnZXIoInN5bmMiLGksbix0KX0sUih0aGlzLHQpLHRoaXMuc3luYygicmVhZCIsdGhpcyx0KX0sY3JlYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9KGU9ZT9uLmNsb25lKGUpOnt9KS53YWl0O2lmKCEodD10aGlzLl9wcmVwYXJlTW9kZWwodCxlKSkpcmV0dXJuITE7aXx8dGhpcy5hZGQodCxlKTt2YXIgcj10aGlzLG89ZS5zdWNjZXNzO3JldHVybiBlLnN1Y2Nlc3M9ZnVuY3Rpb24odCxlLG4pe2kmJnIuYWRkKHQsbiksbyYmby5jYWxsKG4uY29udGV4dCx0LGUsbil9LHQuc2F2ZShudWxsLGUpLHR9LHBhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubW9kZWxzLHttb2RlbDp0aGlzLm1vZGVsLGNvbXBhcmF0b3I6dGhpcy5jb21wYXJhdG9yfSl9LG1vZGVsSWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbdGhpcy5tb2RlbC5wcm90b3R5cGUuaWRBdHRyaWJ1dGV8fCJpZCJdfSxfcmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wLHRoaXMubW9kZWxzPVtdLHRoaXMuX2J5SWQ9e319LF9wcmVwYXJlTW9kZWw6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9pc01vZGVsKHQpKXJldHVybiB0LmNvbGxlY3Rpb258fCh0LmNvbGxlY3Rpb249dGhpcyksdDsoZT1lP24uY2xvbmUoZSk6e30pLmNvbGxlY3Rpb249dGhpczt2YXIgaT1uZXcgdGhpcy5tb2RlbCh0LGUpO3JldHVybiBpLnZhbGlkYXRpb25FcnJvcj8odGhpcy50cmlnZ2VyKCJpbnZhbGlkIix0aGlzLGkudmFsaWRhdGlvbkVycm9yLGUpLCExKTppfSxfcmVtb3ZlTW9kZWxzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5nZXQodFtpXSk7aWYocil7dmFyIG89dGhpcy5pbmRleE9mKHIpO3RoaXMubW9kZWxzLnNwbGljZShvLDEpLHRoaXMubGVuZ3RoLS0sZS5zaWxlbnR8fChlLmluZGV4PW8sci50cmlnZ2VyKCJyZW1vdmUiLHIsdGhpcyxlKSksbi5wdXNoKHIpLHRoaXMuX3JlbW92ZVJlZmVyZW5jZShyLGUpfX1yZXR1cm4hIW4ubGVuZ3RoJiZufSxfaXNNb2RlbDpmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGJ9LF9hZGRSZWZlcmVuY2U6ZnVuY3Rpb24odCxlKXt0aGlzLl9ieUlkW3QuY2lkXT10O3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJih0aGlzLl9ieUlkW25dPXQpLHQub24oImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfcmVtb3ZlUmVmZXJlbmNlOmZ1bmN0aW9uKHQsZSl7ZGVsZXRlIHRoaXMuX2J5SWRbdC5jaWRdO3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJmRlbGV0ZSB0aGlzLl9ieUlkW25dLHRoaXM9PT10LmNvbGxlY3Rpb24mJmRlbGV0ZSB0LmNvbGxlY3Rpb24sdC5vZmYoImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfb25Nb2RlbEV2ZW50OmZ1bmN0aW9uKHQsZSxuLGkpe2lmKCJhZGQiIT09dCYmInJlbW92ZSIhPT10fHxuPT09dGhpcyl7aWYoImRlc3Ryb3kiPT09dCYmdGhpcy5yZW1vdmUoZSxpKSwiY2hhbmdlIj09PXQpe3ZhciByPXRoaXMubW9kZWxJZChlLnByZXZpb3VzQXR0cmlidXRlcygpKSxvPXRoaXMubW9kZWxJZChlLmF0dHJpYnV0ZXMpO3IhPT1vJiYobnVsbCE9ciYmZGVsZXRlIHRoaXMuX2J5SWRbcl0sbnVsbCE9byYmKHRoaXMuX2J5SWRbb109ZSkpfXRoaXMudHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0pLHMoeSx7Zm9yRWFjaDozLGVhY2g6MyxtYXA6Myxjb2xsZWN0OjMscmVkdWNlOjQsZm9sZGw6NCxpbmplY3Q6NCxyZWR1Y2VSaWdodDo0LGZvbGRyOjQsZmluZDozLGRldGVjdDozLGZpbHRlcjozLHNlbGVjdDozLHJlamVjdDozLGV2ZXJ5OjMsYWxsOjMsc29tZTozLGFueTozLGluY2x1ZGU6MyxpbmNsdWRlczozLGNvbnRhaW5zOjMsaW52b2tlOjAsbWF4OjMsbWluOjMsdG9BcnJheToxLHNpemU6MSxmaXJzdDozLGhlYWQ6Myx0YWtlOjMsaW5pdGlhbDozLHJlc3Q6Myx0YWlsOjMsZHJvcDozLGxhc3Q6Myx3aXRob3V0OjAsZGlmZmVyZW5jZTowLGluZGV4T2Y6MyxzaHVmZmxlOjEsbGFzdEluZGV4T2Y6Myxpc0VtcHR5OjEsY2hhaW46MSxzYW1wbGU6MyxwYXJ0aXRpb246Myxncm91cEJ5OjMsY291bnRCeTozLHNvcnRCeTozLGluZGV4Qnk6M30sIm1vZGVscyIpO3ZhciBNPWUuVmlldz1mdW5jdGlvbih0KXt0aGlzLmNpZD1uLnVuaXF1ZUlkKCJ2aWV3Iiksbi5leHRlbmQodGhpcyxuLnBpY2sodCxFKSksdGhpcy5fZW5zdXJlRWxlbWVudCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9L14oXFMrKVxzKiguKikkLyxFPVsibW9kZWwiLCJjb2xsZWN0aW9uIiwiZWwiLCJpZCIsImF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJ0YWdOYW1lIiwiZXZlbnRzIl07bi5leHRlbmQoTS5wcm90b3R5cGUsYyx7dGFnTmFtZToiZGl2IiwkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLiRlbC5maW5kKHQpfSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUVsZW1lbnQoKSx0aGlzLnN0b3BMaXN0ZW5pbmcoKSx0aGlzfSxfcmVtb3ZlRWxlbWVudDpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZSgpfSxzZXRFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVuZGVsZWdhdGVFdmVudHMoKSx0aGlzLl9zZXRFbGVtZW50KHQpLHRoaXMuZGVsZWdhdGVFdmVudHMoKSx0aGlzfSxfc2V0RWxlbWVudDpmdW5jdGlvbih0KXt0aGlzLiRlbD10IGluc3RhbmNlb2YgZS4kP3Q6ZS4kKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF19LGRlbGVnYXRlRXZlbnRzOmZ1bmN0aW9uKHQpe2lmKHR8fCh0PW4ucmVzdWx0KHRoaXMsImV2ZW50cyIpKSwhdClyZXR1cm4gdGhpcztmb3IodmFyIGUgaW4gdGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdCl7dmFyIGk9dFtlXTtpZihuLmlzRnVuY3Rpb24oaSl8fChpPXRoaXNbaV0pLGkpe3ZhciByPWUubWF0Y2goUyk7dGhpcy5kZWxlZ2F0ZShyWzFdLHJbMl0sbi5iaW5kKGksdGhpcykpfX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLiRlbC5vbih0KyIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkLGUsbiksdGhpc30sdW5kZWxlZ2F0ZUV2ZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbCYmdGhpcy4kZWwub2ZmKCIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkKSx0aGlzfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy4kZWwub2ZmKHQrIi5kZWxlZ2F0ZUV2ZW50cyIrdGhpcy5jaWQsZSxuKSx0aGlzfSxfY3JlYXRlRWxlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KX0sX2Vuc3VyZUVsZW1lbnQ6ZnVuY3Rpb24oKXtpZih0aGlzLmVsKXRoaXMuc2V0RWxlbWVudChuLnJlc3VsdCh0aGlzLCJlbCIpKTtlbHNle3ZhciB0PW4uZXh0ZW5kKHt9LG4ucmVzdWx0KHRoaXMsImF0dHJpYnV0ZXMiKSk7dGhpcy5pZCYmKHQuaWQ9bi5yZXN1bHQodGhpcywiaWQiKSksdGhpcy5jbGFzc05hbWUmJih0LmNsYXNzPW4ucmVzdWx0KHRoaXMsImNsYXNzTmFtZSIpKSx0aGlzLnNldEVsZW1lbnQodGhpcy5fY3JlYXRlRWxlbWVudChuLnJlc3VsdCh0aGlzLCJ0YWdOYW1lIikpKSx0aGlzLl9zZXRBdHRyaWJ1dGVzKHQpfX0sX3NldEF0dHJpYnV0ZXM6ZnVuY3Rpb24odCl7dGhpcy4kZWwuYXR0cih0KX19KSxlLnN5bmM9ZnVuY3Rpb24odCxpLHIpe3ZhciBvPUFbdF07bi5kZWZhdWx0cyhyfHwocj17fSkse2VtdWxhdGVIVFRQOmUuZW11bGF0ZUhUVFAsZW11bGF0ZUpTT046ZS5lbXVsYXRlSlNPTn0pO3ZhciBzPXt0eXBlOm8sZGF0YVR5cGU6Impzb24ifTtpZihyLnVybHx8KHMudXJsPW4ucmVzdWx0KGksInVybCIpfHxEKCkpLG51bGwhPXIuZGF0YXx8IWl8fCJjcmVhdGUiIT09dCYmInVwZGF0ZSIhPT10JiYicGF0Y2giIT09dHx8KHMuY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24iLHMuZGF0YT1KU09OLnN0cmluZ2lmeShyLmF0dHJzfHxpLnRvSlNPTihyKSkpLHIuZW11bGF0ZUpTT04mJihzLmNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHMuZGF0YT1zLmRhdGE/e21vZGVsOnMuZGF0YX06e30pLHIuZW11bGF0ZUhUVFAmJigiUFVUIj09PW98fCJERUxFVEUiPT09b3x8IlBBVENIIj09PW8pKXtzLnR5cGU9IlBPU1QiLHIuZW11bGF0ZUpTT04mJihzLmRhdGEuX21ldGhvZD1vKTt2YXIgYT1yLmJlZm9yZVNlbmQ7ci5iZWZvcmVTZW5kPWZ1bmN0aW9uKHQpe2lmKHQuc2V0UmVxdWVzdEhlYWRlcigiWC1IVFRQLU1ldGhvZC1PdmVycmlkZSIsbyksYSlyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSJHRVQiPT09cy50eXBlfHxyLmVtdWxhdGVKU09OfHwocy5wcm9jZXNzRGF0YT0hMSk7dmFyIHU9ci5lcnJvcjtyLmVycm9yPWZ1bmN0aW9uKHQsZSxuKXtyLnRleHRTdGF0dXM9ZSxyLmVycm9yVGhyb3duPW4sdSYmdS5jYWxsKHIuY29udGV4dCx0LGUsbil9O3ZhciBjPXIueGhyPWUuYWpheChuLmV4dGVuZChzLHIpKTtyZXR1cm4gaS50cmlnZ2VyKCJyZXF1ZXN0IixpLGMsciksY307dmFyIEE9e2NyZWF0ZToiUE9TVCIsdXBkYXRlOiJQVVQiLHBhdGNoOiJQQVRDSCIsZGVsZXRlOiJERUxFVEUiLHJlYWQ6IkdFVCJ9O2UuYWpheD1mdW5jdGlvbigpe3JldHVybiBlLiQuYWpheC5hcHBseShlLiQsYXJndW1lbnRzKX07dmFyIEM9ZS5Sb3V0ZXI9ZnVuY3Rpb24odCl7dHx8KHQ9e30pLHQucm91dGVzJiYodGhpcy5yb3V0ZXM9dC5yb3V0ZXMpLHRoaXMuX2JpbmRSb3V0ZXMoKSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxrPS9cKCguKj8pXCkvZyxPPS8oXChcPyk/Olx3Ky9nLFA9L1wqXHcrL2csVD0vW1wte31cW1xdKz8uLFxcXF4kfCNcc10vZztuLmV4dGVuZChDLnByb3RvdHlwZSxjLHtpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyb3V0ZTpmdW5jdGlvbih0LGkscil7bi5pc1JlZ0V4cCh0KXx8KHQ9dGhpcy5fcm91dGVUb1JlZ0V4cCh0KSksbi5pc0Z1bmN0aW9uKGkpJiYocj1pLGk9IiIpLHJ8fChyPXRoaXNbaV0pO3ZhciBvPXRoaXM7cmV0dXJuIGUuaGlzdG9yeS5yb3V0ZSh0LGZ1bmN0aW9uKG4pe3ZhciBzPW8uX2V4dHJhY3RQYXJhbWV0ZXJzKHQsbik7ITEhPT1vLmV4ZWN1dGUocixzLGkpJiYoby50cmlnZ2VyLmFwcGx5KG8sWyJyb3V0ZToiK2ldLmNvbmNhdChzKSksby50cmlnZ2VyKCJyb3V0ZSIsaSxzKSxlLmhpc3RvcnkudHJpZ2dlcigicm91dGUiLG8saSxzKSl9KSx0aGlzfSxleGVjdXRlOmZ1bmN0aW9uKHQsZSxuKXt0JiZ0LmFwcGx5KHRoaXMsZSl9LG5hdmlnYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuaGlzdG9yeS5uYXZpZ2F0ZSh0LG4pLHRoaXN9LF9iaW5kUm91dGVzOmZ1bmN0aW9uKCl7aWYodGhpcy5yb3V0ZXMpe3RoaXMucm91dGVzPW4ucmVzdWx0KHRoaXMsInJvdXRlcyIpO2Zvcih2YXIgdCxlPW4ua2V5cyh0aGlzLnJvdXRlcyk7bnVsbCE9KHQ9ZS5wb3AoKSk7KXRoaXMucm91dGUodCx0aGlzLnJvdXRlc1t0XSl9fSxfcm91dGVUb1JlZ0V4cDpmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UoVCwiXFwkJiIpLnJlcGxhY2UoaywiKD86JDEpPyIpLnJlcGxhY2UoTyxmdW5jdGlvbih0LGUpe3JldHVybiBlP3Q6IihbXi8/XSspIn0pLnJlcGxhY2UoUCwiKFteP10qPykiKSxuZXcgUmVnRXhwKCJeIit0KyIoPzpcXD8oW1xcc1xcU10qKSk/JCIpfSxfZXh0cmFjdFBhcmFtZXRlcnM6ZnVuY3Rpb24odCxlKXt2YXIgaT10LmV4ZWMoZSkuc2xpY2UoMSk7cmV0dXJuIG4ubWFwKGksZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PWkubGVuZ3RoLTE/dHx8bnVsbDp0P2RlY29kZVVSSUNvbXBvbmVudCh0KTpudWxsfSl9fSk7dmFyIGo9ZS5IaXN0b3J5PWZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVycz1bXSx0aGlzLmNoZWNrVXJsPW4uYmluZCh0aGlzLmNoZWNrVXJsLHRoaXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYodGhpcy5sb2NhdGlvbj13aW5kb3cubG9jYXRpb24sdGhpcy5oaXN0b3J5PXdpbmRvdy5oaXN0b3J5KX0sST0vXlsjXC9dfFxzKyQvZyxMPS9eXC8rfFwvKyQvZyxCPS8jLiokLztqLnN0YXJ0ZWQ9ITEsbi5leHRlbmQoai5wcm90b3R5cGUsYyx7aW50ZXJ2YWw6NTAsYXRSb290OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9bXlwvXSQvLCIkJi8iKTtyZXR1cm4gdD09PXRoaXMucm9vdCYmIXRoaXMuZ2V0U2VhcmNoKCl9LG1hdGNoUm9vdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZGVjb2RlRnJhZ21lbnQodGhpcy5sb2NhdGlvbi5wYXRobmFtZSksZT10LnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aC0xKSsiLyI7cmV0dXJuIGU9PT10aGlzLnJvb3R9LGRlY29kZUZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUkkodC5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSl9LGdldFNlYXJjaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubG9jYXRpb24uaHJlZi5yZXBsYWNlKC8jLiovLCIiKS5tYXRjaCgvXD8uKy8pO3JldHVybiB0P3RbMF06IiJ9LGdldEhhc2g6ZnVuY3Rpb24odCl7dmFyIGU9KHR8fHRoaXMpLmxvY2F0aW9uLmhyZWYubWF0Y2goLyMoLiopJC8pO3JldHVybiBlP2VbMV06IiJ9LGdldFBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRlY29kZUZyYWdtZW50KHRoaXMubG9jYXRpb24ucGF0aG5hbWUrdGhpcy5nZXRTZWFyY2goKSkuc2xpY2UodGhpcy5yb290Lmxlbmd0aC0xKTtyZXR1cm4iLyI9PT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOnR9LGdldEZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10JiYodD10aGlzLl91c2VQdXNoU3RhdGV8fCF0aGlzLl93YW50c0hhc2hDaGFuZ2U/dGhpcy5nZXRQYXRoKCk6dGhpcy5nZXRIYXNoKCkpLHQucmVwbGFjZShJLCIiKX0sc3RhcnQ6ZnVuY3Rpb24odCl7aWYoai5zdGFydGVkKXRocm93IG5ldyBFcnJvcigiQmFja2JvbmUuaGlzdG9yeSBoYXMgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQiKTtpZihqLnN0YXJ0ZWQ9ITAsdGhpcy5vcHRpb25zPW4uZXh0ZW5kKHtyb290OiIvIn0sdGhpcy5vcHRpb25zLHQpLHRoaXMucm9vdD10aGlzLm9wdGlvbnMucm9vdCx0aGlzLl93YW50c0hhc2hDaGFuZ2U9ITEhPT10aGlzLm9wdGlvbnMuaGFzaENoYW5nZSx0aGlzLl9oYXNIYXNoQ2hhbmdlPSJvbmhhc2hjaGFuZ2UiaW4gd2luZG93JiYodm9pZCAwPT09ZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU+NyksdGhpcy5fdXNlSGFzaENoYW5nZT10aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX2hhc0hhc2hDaGFuZ2UsdGhpcy5fd2FudHNQdXNoU3RhdGU9ISF0aGlzLm9wdGlvbnMucHVzaFN0YXRlLHRoaXMuX2hhc1B1c2hTdGF0ZT0hKCF0aGlzLmhpc3Rvcnl8fCF0aGlzLmhpc3RvcnkucHVzaFN0YXRlKSx0aGlzLl91c2VQdXNoU3RhdGU9dGhpcy5fd2FudHNQdXNoU3RhdGUmJnRoaXMuX2hhc1B1c2hTdGF0ZSx0aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQoKSx0aGlzLnJvb3Q9KCIvIit0aGlzLnJvb3QrIi8iKS5yZXBsYWNlKEwsIi8iKSx0aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzUHVzaFN0YXRlKXtpZighdGhpcy5faGFzUHVzaFN0YXRlJiYhdGhpcy5hdFJvb3QoKSl7dmFyIGU9dGhpcy5yb290LnNsaWNlKDAsLTEpfHwiLyI7cmV0dXJuIHRoaXMubG9jYXRpb24ucmVwbGFjZShlKyIjIit0aGlzLmdldFBhdGgoKSksITB9dGhpcy5faGFzUHVzaFN0YXRlJiZ0aGlzLmF0Um9vdCgpJiZ0aGlzLm5hdmlnYXRlKHRoaXMuZ2V0SGFzaCgpLHtyZXBsYWNlOiEwfSl9aWYoIXRoaXMuX2hhc0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzSGFzaENoYW5nZSYmIXRoaXMuX3VzZVB1c2hTdGF0ZSl7dGhpcy5pZnJhbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksdGhpcy5pZnJhbWUuc3JjPSJqYXZhc2NyaXB0OjAiLHRoaXMuaWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaWZyYW1lLnRhYkluZGV4PS0xO3ZhciBpPWRvY3VtZW50LmJvZHkscj1pLmluc2VydEJlZm9yZSh0aGlzLmlmcmFtZSxpLmZpcnN0Q2hpbGQpLmNvbnRlbnRXaW5kb3c7ci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpLHIubG9jYXRpb24uaGFzaD0iIyIrdGhpcy5mcmFnbWVudH12YXIgbz13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXR0YWNoRXZlbnQoIm9uIit0LGUpfTtpZih0aGlzLl91c2VQdXNoU3RhdGU/bygicG9wc3RhdGUiLHRoaXMuY2hlY2tVcmwsITEpOnRoaXMuX3VzZUhhc2hDaGFuZ2UmJiF0aGlzLmlmcmFtZT9vKCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKTp0aGlzLl93YW50c0hhc2hDaGFuZ2UmJih0aGlzLl9jaGVja1VybEludGVydmFsPXNldEludGVydmFsKHRoaXMuY2hlY2tVcmwsdGhpcy5pbnRlcnZhbCkpLCF0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB0aGlzLmxvYWRVcmwoKX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyfHxmdW5jdGlvbih0LGUpe3JldHVybiBkZXRhY2hFdmVudCgib24iK3QsZSl9O3RoaXMuX3VzZVB1c2hTdGF0ZT90KCJwb3BzdGF0ZSIsdGhpcy5jaGVja1VybCwhMSk6dGhpcy5fdXNlSGFzaENoYW5nZSYmIXRoaXMuaWZyYW1lJiZ0KCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKSx0aGlzLmlmcmFtZSYmKGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5pZnJhbWUpLHRoaXMuaWZyYW1lPW51bGwpLHRoaXMuX2NoZWNrVXJsSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tVcmxJbnRlcnZhbCksai5zdGFydGVkPSExfSxyb3V0ZTpmdW5jdGlvbih0LGUpe3RoaXMuaGFuZGxlcnMudW5zaGlmdCh7cm91dGU6dCxjYWxsYmFjazplfSl9LGNoZWNrVXJsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0RnJhZ21lbnQoKTtpZihlPT09dGhpcy5mcmFnbWVudCYmdGhpcy5pZnJhbWUmJihlPXRoaXMuZ2V0SGFzaCh0aGlzLmlmcmFtZS5jb250ZW50V2luZG93KSksZT09PXRoaXMuZnJhZ21lbnQpcmV0dXJuITE7dGhpcy5pZnJhbWUmJnRoaXMubmF2aWdhdGUoZSksdGhpcy5sb2FkVXJsKCl9LGxvYWRVcmw6ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLm1hdGNoUm9vdCgpJiYodD10aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQodCksbi5zb21lKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oZSl7aWYoZS5yb3V0ZS50ZXN0KHQpKXJldHVybiBlLmNhbGxiYWNrKHQpLCEwfSkpfSxuYXZpZ2F0ZTpmdW5jdGlvbih0LGUpe2lmKCFqLnN0YXJ0ZWQpcmV0dXJuITE7ZSYmITAhPT1lfHwoZT17dHJpZ2dlcjohIWV9KSx0PXRoaXMuZ2V0RnJhZ21lbnQodHx8IiIpO3ZhciBuPXRoaXMucm9vdDsiIiE9PXQmJiI/IiE9PXQuY2hhckF0KDApfHwobj1uLnNsaWNlKDAsLTEpfHwiLyIpO3ZhciBpPW4rdDtpZih0PXRoaXMuZGVjb2RlRnJhZ21lbnQodC5yZXBsYWNlKEIsIiIpKSx0aGlzLmZyYWdtZW50IT09dCl7aWYodGhpcy5mcmFnbWVudD10LHRoaXMuX3VzZVB1c2hTdGF0ZSl0aGlzLmhpc3RvcnlbZS5yZXBsYWNlPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXSh7fSxkb2N1bWVudC50aXRsZSxpKTtlbHNle2lmKCF0aGlzLl93YW50c0hhc2hDaGFuZ2UpcmV0dXJuIHRoaXMubG9jYXRpb24uYXNzaWduKGkpO2lmKHRoaXMuX3VwZGF0ZUhhc2godGhpcy5sb2NhdGlvbix0LGUucmVwbGFjZSksdGhpcy5pZnJhbWUmJnQhPT10aGlzLmdldEhhc2godGhpcy5pZnJhbWUuY29udGVudFdpbmRvdykpe3ZhciByPXRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3c7ZS5yZXBsYWNlfHwoci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpKSx0aGlzLl91cGRhdGVIYXNoKHIubG9jYXRpb24sdCxlLnJlcGxhY2UpfX1yZXR1cm4gZS50cmlnZ2VyP3RoaXMubG9hZFVybCh0KTp2b2lkIDB9fSxfdXBkYXRlSGFzaDpmdW5jdGlvbih0LGUsbil7aWYobil7dmFyIGk9dC5ocmVmLnJlcGxhY2UoLyhqYXZhc2NyaXB0OnwjKS4qJC8sIiIpO3QucmVwbGFjZShpKyIjIitlKX1lbHNlIHQuaGFzaD0iIyIrZX19KSxlLmhpc3Rvcnk9bmV3IGosYi5leHRlbmQ9eS5leHRlbmQ9Qy5leHRlbmQ9TS5leHRlbmQ9ai5leHRlbmQ9ZnVuY3Rpb24odCxlKXt2YXIgaSxyPXRoaXM7aT10JiZuLmhhcyh0LCJjb25zdHJ1Y3RvciIpP3QuY29uc3RydWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG4uZXh0ZW5kKGkscixlKTt2YXIgbz1mdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3I9aX07cmV0dXJuIG8ucHJvdG90eXBlPXIucHJvdG90eXBlLGkucHJvdG90eXBlPW5ldyBvLHQmJm4uZXh0ZW5kKGkucHJvdG90eXBlLHQpLGkuX19zdXBlcl9fPXIucHJvdG90eXBlLGl9O3ZhciBEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdBICJ1cmwiIHByb3BlcnR5IG9yIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVkJyl9LFI9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmVycm9yO2UuZXJyb3I9ZnVuY3Rpb24oaSl7biYmbi5jYWxsKGUuY29udGV4dCx0LGksZSksdC50cmlnZ2VyKCJlcnJvciIsdCxpLGUpfX07cmV0dXJuIGV9KHMsbix0LGUpfS5hcHBseShlLHIpKXx8KHQuZXhwb3J0cz1vKX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9bigyKSxvPW4oMjYpLHM9big3OCksYT1uKDkpLHU9big3OSksYz1uKDExKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9yZXBsYXlpbmc9ITEsdGhpcy5fa2V5c3Ryb2tlcz1bXSx0aGlzLl9rZXlkb3duRXZlbnRzPVtdLHRoaXMuX2tleUJpbmRpbmdzPVtdLHRoaXMuX2V4YWN0S2V5TWF0Y2g9bnVsbCx0aGlzLl9jb21tYW5kcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2NvbW1hbmRDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKSx0aGlzLl9jb21tYW5kRXhlY3V0ZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjb21tYW5kQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNvbW1hbmRFeGVjdXRlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kRXhlY3V0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rZXlCaW5kaW5nQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImtleUJpbmRpbmdzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleUJpbmRpbmdzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmxpc3RDb21tYW5kcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jb21tYW5kcyl9LHQucHJvdG90eXBlLmhhc0NvbW1hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5fY29tbWFuZHN9LHQucHJvdG90eXBlLmFkZENvbW1hbmQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHQgaW4gdGhpcy5fY29tbWFuZHMpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgYWxyZWFkeSByZWdpc3RlcmVkLiIpO3JldHVybiB0aGlzLl9jb21tYW5kc1t0XT1pLmNyZWF0ZUNvbW1hbmQoZSksdGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtkZWxldGUgbi5fY29tbWFuZHNbdF0sbi5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJyZW1vdmVkIn0pfSl9LHQucHJvdG90eXBlLm5vdGlmeUNvbW1hbmRDaGFuZ2VkPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQmJiEodCBpbiB0aGlzLl9jb21tYW5kcykpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgaXMgbm90IHJlZ2lzdGVyZWQuIik7dGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOnQ/ImNoYW5nZWQiOiJtYW55LWNoYW5nZWQifSl9LHQucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4gbj9uLmxhYmVsLmNhbGwodm9pZCAwLGUpOiIifSx0LnByb3RvdHlwZS5tbmVtb25pYz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5tbmVtb25pYy5jYWxsKHZvaWQgMCxlKTotMX0sdC5wcm90b3R5cGUuaWNvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpLHRoaXMuaWNvbkNsYXNzKHQsZSl9LHQucHJvdG90eXBlLmljb25DbGFzcz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uQ2xhc3MuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmljb25MYWJlbD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uTGFiZWwuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNhcHRpb249ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uY2FwdGlvbi5jYWxsKHZvaWQgMCxlKToiIn0sdC5wcm90b3R5cGUudXNhZ2U9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24udXNhZ2UuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNsYXNzTmFtZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5jbGFzc05hbWUuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmRhdGFzZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uZGF0YXNldC5jYWxsKHZvaWQgMCxlKTp7fX0sdC5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4hIW4mJm4uaXNFbmFibGVkLmNhbGwodm9pZCAwLGUpfSx0LnByb3RvdHlwZS5pc1RvZ2dsZWQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiEhbiYmbi5pc1RvZ2dsZWQuY2FsbCh2b2lkIDAsZSl9LHQucHJvdG90eXBlLmlzVmlzaWJsZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuISFuJiZuLmlzVmlzaWJsZS5jYWxsKHZvaWQgMCxlKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG4saT10aGlzLl9jb21tYW5kc1t0XTtpZighaSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgbm90IHJlZ2lzdGVyZWQuIikpO3RyeXtuPWkuZXhlY3V0ZS5jYWxsKHZvaWQgMCxlKX1jYXRjaCh0KXtuPVByb21pc2UucmVqZWN0KHQpfXZhciByPVByb21pc2UucmVzb2x2ZShuKTtyZXR1cm4gdGhpcy5fY29tbWFuZEV4ZWN1dGVkLmVtaXQoe2lkOnQsYXJnczplLHJlc3VsdDpyfSkscn0sdC5wcm90b3R5cGUuYWRkS2V5QmluZGluZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49aS5jcmVhdGVLZXlCaW5kaW5nKHQpO3JldHVybiB0aGlzLl9rZXlCaW5kaW5ncy5wdXNoKG4pLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkLmVtaXQoe2JpbmRpbmc6bix0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtyLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YoZS5fa2V5QmluZGluZ3MsbiksZS5fa2V5QmluZGluZ0NoYW5nZWQuZW1pdCh7YmluZGluZzpuLHR5cGU6InJlbW92ZWQifSl9KX0sdC5wcm90b3R5cGUucHJvY2Vzc0tleWRvd25FdmVudD1mdW5jdGlvbihlKXtpZighdGhpcy5fcmVwbGF5aW5nKXt2YXIgbj10LmtleXN0cm9rZUZvcktleWRvd25FdmVudChlKTtpZighbilyZXR1cm4gdGhpcy5fcmVwbGF5S2V5ZG93bkV2ZW50cygpLHZvaWQgdGhpcy5fY2xlYXJQZW5kaW5nU3RhdGUoKTt0aGlzLl9rZXlzdHJva2VzLnB1c2gobik7dmFyIHI9aS5tYXRjaEtleUJpbmRpbmcodGhpcy5fa2V5QmluZGluZ3MsdGhpcy5fa2V5c3Ryb2tlcyxlKSxvPXIuZXhhY3Qscz1yLnBhcnRpYWw7aWYoIW8mJiFzKXJldHVybiB0aGlzLl9yZXBsYXlLZXlkb3duRXZlbnRzKCksdm9pZCB0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpO2lmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG8mJiFzKXJldHVybiB0aGlzLl9leGVjdXRlS2V5QmluZGluZyhvKSx2b2lkIHRoaXMuX2NsZWFyUGVuZGluZ1N0YXRlKCk7byYmKHRoaXMuX2V4YWN0S2V5TWF0Y2g9byksdGhpcy5fa2V5ZG93bkV2ZW50cy5wdXNoKGUpLHRoaXMuX3N0YXJ0VGltZXIoKX19LHQucHJvdG90eXBlLl9zdGFydFRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9jbGVhclRpbWVyKCksdGhpcy5fdGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb25QZW5kaW5nVGltZW91dCgpfSxpLkNIT1JEX1RJTUVPVVQpfSx0LnByb3RvdHlwZS5fY2xlYXJUaW1lcj1mdW5jdGlvbigpezAhPT10aGlzLl90aW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySUQpLHRoaXMuX3RpbWVySUQ9MCl9LHQucHJvdG90eXBlLl9yZXBsYXlLZXlkb3duRXZlbnRzPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX2tleWRvd25FdmVudHMubGVuZ3RoJiYodGhpcy5fcmVwbGF5aW5nPSEwLHRoaXMuX2tleWRvd25FdmVudHMuZm9yRWFjaChpLnJlcGxheUtleUV2ZW50KSx0aGlzLl9yZXBsYXlpbmc9ITEpfSx0LnByb3RvdHlwZS5fZXhlY3V0ZUtleUJpbmRpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO2lmKHRoaXMuaGFzQ29tbWFuZChlKSYmdGhpcy5pc0VuYWJsZWQoZSxuKSl0aGlzLmV4ZWN1dGUoZSxuKTtlbHNle3ZhciBpPXRoaXMuaGFzQ29tbWFuZChlKT8iZW5hYmxlZCI6InJlZ2lzdGVyZWQiLHI9IkNhbm5vdCBleGVjdXRlIGtleSBiaW5kaW5nICciK3Qua2V5cy5qb2luKCIsICIpKyInOiIsbz0iY29tbWFuZCAnIitlKyInIGlzIG5vdCAiK2krIi4iO2NvbnNvbGUud2FybihyKyIgIitvKX19LHQucHJvdG90eXBlLl9jbGVhclBlbmRpbmdTdGF0ZT1mdW5jdGlvbigpe3RoaXMuX2NsZWFyVGltZXIoKSx0aGlzLl9leGFjdEtleU1hdGNoPW51bGwsdGhpcy5fa2V5c3Ryb2tlcy5sZW5ndGg9MCx0aGlzLl9rZXlkb3duRXZlbnRzLmxlbmd0aD0wfSx0LnByb3RvdHlwZS5fb25QZW5kaW5nVGltZW91dD1mdW5jdGlvbigpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9leGFjdEtleU1hdGNoP3RoaXMuX2V4ZWN1dGVLZXlCaW5kaW5nKHRoaXMuX2V4YWN0S2V5TWF0Y2gpOnRoaXMuX3JlcGxheUtleWRvd25FdmVudHMoKSx0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpfSx0fSgpO2UuQ29tbWFuZFJlZ2lzdHJ5PWgsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9IiIsbj0hMSxpPSExLHI9ITEsbz0hMSxzPTAsdT10LnNwbGl0KC9ccysvKTtzPHUubGVuZ3RoO3MrKyl7dmFyIGM9dVtzXTsiQWNjZWwiPT09Yz9hLlBsYXRmb3JtLklTX01BQz9pPSEwOnI9ITA6IkFsdCI9PT1jP249ITA6IkNtZCI9PT1jP2k9ITA6IkN0cmwiPT09Yz9yPSEwOiJTaGlmdCI9PT1jP289ITA6Yy5sZW5ndGg+MCYmKGU9Yyl9cmV0dXJue2NtZDppLGN0cmw6cixhbHQ6bixzaGlmdDpvLGtleTplfX10LnBhcnNlS2V5c3Ryb2tlPWUsdC5ub3JtYWxpemVLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIG49IiIsaT1lKHQpO3JldHVybiBpLmN0cmwmJihuKz0iQ3RybCAiKSxpLmFsdCYmKG4rPSJBbHQgIiksaS5zaGlmdCYmKG4rPSJTaGlmdCAiKSxpLmNtZCYmYS5QbGF0Zm9ybS5JU19NQUMmJihuKz0iQ21kICIpLG4raS5rZXl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9ZSh0KTtyZXR1cm4gYS5QbGF0Zm9ybS5JU19NQUM/KGkuY3RybCYmKG4rPSLijIMgIiksaS5hbHQmJihuKz0i4oylICIpLGkuc2hpZnQmJihuKz0i4oenICIpLGkuY21kJiYobis9IuKMmCAiKSk6KGkuY3RybCYmKG4rPSJDdHJsKyIpLGkuYWx0JiYobis9IkFsdCsiKSxpLnNoaWZ0JiYobis9IlNoaWZ0KyIpKSxuK2kua2V5fSx0LmtleXN0cm9rZUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXt2YXIgZT11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKCFlKXJldHVybiIiO3ZhciBuPSIiO3JldHVybiB0LmN0cmxLZXkmJihuKz0iQ3RybCAiKSx0LmFsdEtleSYmKG4rPSJBbHQgIiksdC5zaGlmdEtleSYmKG4rPSJTaGlmdCAiKSx0Lm1ldGFLZXkmJmEuUGxhdGZvcm0uSVNfTUFDJiYobis9IkNtZCAiKSxuK2V9fShoPWUuQ29tbWFuZFJlZ2lzdHJ5fHwoZS5Db21tYW5kUmVnaXN0cnk9e30pKSxlLkNvbW1hbmRSZWdpc3RyeT1oLGZ1bmN0aW9uKHQpe3QuQ0hPUkRfVElNRU9VVD0xZTMsdC5jcmVhdGVDb21tYW5kPWZ1bmN0aW9uKHQpe3JldHVybntleGVjdXRlOnQuZXhlY3V0ZSxsYWJlbDp1KHQubGFiZWwsZSksbW5lbW9uaWM6dSh0Lm1uZW1vbmljLG4pLGljb25DbGFzczp1KHQuaWNvbkNsYXNzfHx0Lmljb24sZSksaWNvbkxhYmVsOnUodC5pY29uTGFiZWwsZSksY2FwdGlvbjp1KHQuY2FwdGlvbixlKSx1c2FnZTp1KHQudXNhZ2UsZSksY2xhc3NOYW1lOnUodC5jbGFzc05hbWUsZSksZGF0YXNldDp1KHQuZGF0YXNldCxzKSxpc0VuYWJsZWQ6dC5pc0VuYWJsZWR8fGksaXNUb2dnbGVkOnQuaXNUb2dnbGVkfHxyLGlzVmlzaWJsZTp0LmlzVmlzaWJsZXx8aX19LHQuY3JlYXRlS2V5QmluZGluZz1mdW5jdGlvbih0KXtyZXR1cm57a2V5czpjKHQpLHNlbGVjdG9yOmwodCksY29tbWFuZDp0LmNvbW1hbmQsYXJnczp0LmFyZ3N8fG8uSlNPTkV4dC5lbXB0eU9iamVjdH19LHQubWF0Y2hLZXlCaW5kaW5nPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bnVsbCxyPSExLG89MS8wLHM9MCx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD10W3VdLGw9ZChoLmtleXMsZSk7aWYoMCE9PWwpaWYoMiE9PWwpe3ZhciBwPWYoaC5zZWxlY3RvcixuKTtpZighKC0xPT09cHx8cD5vKSl7dmFyIG09YS5TZWxlY3Rvci5jYWxjdWxhdGVTcGVjaWZpY2l0eShoLnNlbGVjdG9yKTsoIWl8fHA8b3x8bT49cykmJihpPWgsbz1wLHM9bSl9fWVsc2Ugcnx8LTE9PT1mKGguc2VsZWN0b3Isbil8fChyPSEwKX1yZXR1cm57ZXhhY3Q6aSxwYXJ0aWFsOnJ9fSx0LnJlcGxheUtleUV2ZW50PWZ1bmN0aW9uKHQpe3QudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj10LmJ1YmJsZXN8fCEwLGk9dC5jYW5jZWxhYmxlfHwhMDtyZXR1cm4gZS5pbml0RXZlbnQodC50eXBlfHwia2V5ZG93biIsbixpKSxlLmtleT10LmtleXx8IiIsZS5rZXlDb2RlPXQua2V5Q29kZXx8MCxlLndoaWNoPXQua2V5Q29kZXx8MCxlLmN0cmxLZXk9dC5jdHJsS2V5fHwhMSxlLmFsdEtleT10LmFsdEtleXx8ITEsZS5zaGlmdEtleT10LnNoaWZ0S2V5fHwhMSxlLm1ldGFLZXk9dC5tZXRhS2V5fHwhMSxlLnZpZXc9dC52aWV3fHx3aW5kb3csZX0odCkpfTt2YXIgZT1mdW5jdGlvbigpe3JldHVybiIifSxuPWZ1bmN0aW9uKCl7cmV0dXJuLTF9LGk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0scj1mdW5jdGlvbigpe3JldHVybiExfSxzPWZ1bmN0aW9uKCl7cmV0dXJue319O2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gdm9pZCAwPT09dD9lOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gYyh0KXtyZXR1cm4oYS5QbGF0Zm9ybS5JU19XSU4/dC53aW5LZXlzfHx0LmtleXM6YS5QbGF0Zm9ybS5JU19NQUM/dC5tYWNLZXlzfHx0LmtleXM6dC5saW51eEtleXN8fHQua2V5cykubWFwKGgubm9ybWFsaXplS2V5c3Ryb2tlKX1mdW5jdGlvbiBsKHQpe2lmKC0xIT09dC5zZWxlY3Rvci5pbmRleE9mKCIsIikpdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RvciBjYW5ub3QgY29udGFpbiBjb21tYXM6ICIrdC5zZWxlY3Rvcik7aWYoIWEuU2VsZWN0b3IuaXNWYWxpZCh0LnNlbGVjdG9yKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VsZWN0b3I6ICIrdC5zZWxlY3Rvcik7cmV0dXJuIHQuc2VsZWN0b3J9ZnVuY3Rpb24gZCh0LGUpe2lmKHQubGVuZ3RoPGUubGVuZ3RoKXJldHVybiAwO2Zvcih2YXIgbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilpZih0W25dIT09ZVtuXSlyZXR1cm4gMDtyZXR1cm4gdC5sZW5ndGg+ZS5sZW5ndGg/MjoxfWZ1bmN0aW9uIGYodCxlKXtmb3IodmFyIG49ZS50YXJnZXQsaT1lLmN1cnJlbnRUYXJnZXQscj0wO251bGwhPT1uO249bi5wYXJlbnRFbGVtZW50LCsrcil7aWYoYS5TZWxlY3Rvci5tYXRjaGVzKG4sdCkpcmV0dXJuIHI7aWYobj09PWkpcmV0dXJuLTF9cmV0dXJuLTF9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHMsYT1uKDIpLHU9bigxMzApLGM9bigyNiksaD1uKDkpLGw9big3OSksZD1uKDUpLGY9bigxMSkscD1uKDU1KSxtPW4oNyksZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOnMuY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2NoaWxkSW5kZXg9LTEsaS5fYWN0aXZlSW5kZXg9LTEsaS5fb3BlblRpbWVySUQ9MCxpLl9jbG9zZVRpbWVySUQ9MCxpLl9pdGVtcz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLl9wYXJlbnRNZW51PW51bGwsaS5fYWJvdXRUb0Nsb3NlPW5ldyBmLlNpZ25hbChpKSxpLl9tZW51UmVxdWVzdGVkPW5ldyBmLlNpZ25hbChpKSxpLmFkZENsYXNzKCJwLU1lbnUiKSxpLnNldEZsYWcobS5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFib3V0VG9DbG9zZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hYm91dFRvQ2xvc2V9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtZW51UmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21lbnVSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYXJlbnRNZW51Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjaGlsZE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hpbGRNZW51fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicm9vdE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpczt0Ll9wYXJlbnRNZW51Oyl0PXQuX3BhcmVudE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsZWFmTWVudSIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzO3QuX2NoaWxkTWVudTspdD10Ll9jaGlsZE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51LWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZUl0ZW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXRlbXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX2l0ZW1zLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX2l0ZW1zLmxlbmd0aCkmJih0PS0xKSwtMT09PXR8fHMuY2FuQWN0aXZhdGUodGhpcy5faXRlbXNbdF0pfHwodD0tMSksdGhpcy5fYWN0aXZlSW5kZXghPT10JiYodGhpcy5fYWN0aXZlSW5kZXg9dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIml0ZW1zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZW1zfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFjdGl2YXRlTmV4dEl0ZW09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pdGVtcy5sZW5ndGgsZT10aGlzLl9hY3RpdmVJbmRleCxuPWU8dC0xP2UrMTowLGk9MD09PW4/dC0xOm4tMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMscy5jYW5BY3RpdmF0ZSxuLGkpfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVByZXZpb3VzSXRlbT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zLmxlbmd0aCxlPXRoaXMuX2FjdGl2ZUluZGV4LG49ZTw9MD90LTE6ZS0xLGk9bj09PXQtMT8wOm4rMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9pdGVtcyxzLmNhbkFjdGl2YXRlLG4saSl9LGUucHJvdG90eXBlLnRyaWdnZXJBY3RpdmVJdGVtPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkKXt2YXIgdD10aGlzLmFjdGl2ZUl0ZW07aWYodClpZih0aGlzLl9jYW5jZWxPcGVuVGltZXIoKSx0aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCksInN1Ym1lbnUiIT09dC50eXBlKXt0aGlzLnJvb3RNZW51LmNsb3NlKCk7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO3RoaXMuY29tbWFuZHMuaXNFbmFibGVkKGUsbik/dGhpcy5jb21tYW5kcy5leGVjdXRlKGUsbik6Y29uc29sZS5sb2coIkNvbW1hbmQgJyIrZSsiJyBpcyBkaXNhYmxlZC4iKX1lbHNlIHRoaXMuX29wZW5DaGlsZE1lbnUoITApfX0sZS5wcm90b3R5cGUuYWRkSXRlbT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnNlcnRJdGVtKHRoaXMuX2l0ZW1zLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0SXRlbT1mdW5jdGlvbih0LGUpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTE7dmFyIG49TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX2l0ZW1zLmxlbmd0aCkpLGk9cy5jcmVhdGVJdGVtKHRoaXMsZSk7cmV0dXJuIGEuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2l0ZW1zLG4saSksdGhpcy51cGRhdGUoKSxpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlSXRlbUF0KHRoaXMuX2l0ZW1zLmluZGV4T2YodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtQXQ9ZnVuY3Rpb24odCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSxhLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5jbGVhckl0ZW1zPWZ1bmN0aW9uKCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSwwIT09dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSl9LGUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSwhdGhpcy5pc0F0dGFjaGVkKXt2YXIgaT1uLmZvcmNlWHx8ITEscj1uLmZvcmNlWXx8ITE7cy5vcGVuUm9vdE1lbnUodGhpcyx0LGUsaSxyKSx0aGlzLmFjdGl2YXRlKCl9fSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZWVudGVyIjp0aGlzLl9ldnRNb3VzZUVudGVyKHQpO2JyZWFrO2Nhc2UibW91c2VsZWF2ZSI6dGhpcy5fZXZ0TW91c2VMZWF2ZSh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLmlzQXR0YWNoZWQmJnRoaXMubm9kZS5mb2N1cygpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2l0ZW1zLG49dGhpcy5yZW5kZXJlcixpPXRoaXMuX2FjdGl2ZUluZGV4LHI9cy5jb21wdXRlQ29sbGFwc2VkKGUpLG89bmV3IEFycmF5KGUubGVuZ3RoKSxhPTAsdT1lLmxlbmd0aDthPHU7KythKXt2YXIgYz1lW2FdLGg9YT09PWksbD1yW2FdO29bYV09bi5yZW5kZXJJdGVtKHtpdGVtOmMsYWN0aXZlOmgsY29sbGFwc2VkOmx9KX1wLlZpcnR1YWxET00ucmVuZGVyKG8sdGhpcy5jb250ZW50Tm9kZSl9LGUucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHRoaXMuX2NhbmNlbENsb3NlVGltZXIoKSx0aGlzLmFjdGl2ZUluZGV4PS0xO3ZhciBuPXRoaXMuX2NoaWxkTWVudTtuJiYodGhpcy5fY2hpbGRJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnU9bnVsbCxuLl9wYXJlbnRNZW51PW51bGwsbi5jbG9zZSgpKTt2YXIgaT10aGlzLl9wYXJlbnRNZW51O2kmJih0aGlzLl9wYXJlbnRNZW51PW51bGwsaS5fY2hpbGRJbmRleD0tMSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFjdGl2YXRlKCkpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fYWJvdXRUb0Nsb3NlLmVtaXQodm9pZCAwKSx0LnByb3RvdHlwZS5vbkNsb3NlUmVxdWVzdC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQua2V5Q29kZTtpZigxMyE9PWUpaWYoMjchPT1lKWlmKDM3IT09ZSlpZigzOCE9PWUpaWYoMzkhPT1lKWlmKDQwIT09ZSl7dmFyIG49bC5nZXRLZXlib2FyZExheW91dCgpLmtleUZvcktleWRvd25FdmVudCh0KTtpZihuKXt2YXIgaT10aGlzLl9hY3RpdmVJbmRleCsxLHI9cy5maW5kTW5lbW9uaWModGhpcy5faXRlbXMsbixpKTstMT09PXIuaW5kZXh8fHIubXVsdGlwbGU/LTEhPT1yLmluZGV4P3RoaXMuYWN0aXZlSW5kZXg9ci5pbmRleDotMSE9PXIuYXV0byYmKHRoaXMuYWN0aXZlSW5kZXg9ci5hdXRvKToodGhpcy5hY3RpdmVJbmRleD1yLmluZGV4LHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKSl9fWVsc2UgdGhpcy5hY3RpdmF0ZU5leHRJdGVtKCk7ZWxzZXt2YXIgbz10aGlzLmFjdGl2ZUl0ZW07byYmInN1Ym1lbnUiPT09by50eXBlP3RoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKTp0aGlzLnJvb3RNZW51Ll9tZW51UmVxdWVzdGVkLmVtaXQoIm5leHQiKX1lbHNlIHRoaXMuYWN0aXZhdGVQcmV2aW91c0l0ZW0oKTtlbHNlIHRoaXMuX3BhcmVudE1lbnU/dGhpcy5jbG9zZSgpOnRoaXMuX21lbnVSZXF1ZXN0ZWQuZW1pdCgicHJldmlvdXMiKTtlbHNlIHRoaXMuY2xvc2UoKTtlbHNlIHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy50cmlnZ2VyQWN0aXZlSXRlbSgpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGguRWxlbWVudEV4dC5oaXRUZXN0KGUsdC5jbGllbnRYLHQuY2xpZW50WSl9KTtpZihlIT09dGhpcy5fYWN0aXZlSW5kZXgpe2lmKHRoaXMuYWN0aXZlSW5kZXg9ZSwoZT10aGlzLmFjdGl2ZUluZGV4KT09PXRoaXMuX2NoaWxkSW5kZXgpcmV0dXJuIHRoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHZvaWQgdGhpcy5fY2FuY2VsQ2xvc2VUaW1lcigpOy0xIT09dGhpcy5fY2hpbGRJbmRleCYmdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCksdGhpcy5fY2FuY2VsT3BlblRpbWVyKCk7dmFyIG49dGhpcy5hY3RpdmVJdGVtO24mJiJzdWJtZW51Ij09PW4udHlwZSYmbi5zdWJtZW51JiZ0aGlzLl9zdGFydE9wZW5UaW1lcigpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRW50ZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3BhcmVudE1lbnU7ZTtlPWUuX3BhcmVudE1lbnUpZS5fY2FuY2VsT3BlblRpbWVyKCksZS5fY2FuY2VsQ2xvc2VUaW1lcigpLGUuYWN0aXZlSW5kZXg9ZS5fY2hpbGRJbmRleH0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTGVhdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FuY2VsT3BlblRpbWVyKCksdGhpcy5fY2hpbGRNZW51KXt2YXIgZT10LmNsaWVudFgsbj10LmNsaWVudFk7aC5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5fY2hpbGRNZW51Lm5vZGUsZSxuKT90aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCk6KHRoaXMuYWN0aXZlSW5kZXg9LTEsdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCkpfWVsc2UgdGhpcy5hY3RpdmVJbmRleD0tMX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXt0aGlzLl9wYXJlbnRNZW51fHwocy5oaXRUZXN0TWVudXModGhpcyx0LmNsaWVudFgsdC5jbGllbnRZKT8odC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpOnRoaXMuY2xvc2UoKSl9LGUucHJvdG90eXBlLl9vcGVuQ2hpbGRNZW51PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSExKTt2YXIgZT10aGlzLmFjdGl2ZUl0ZW07aWYoZSYmInN1Ym1lbnUiPT09ZS50eXBlJiZlLnN1Ym1lbnUpe3ZhciBuPWUuc3VibWVudTtpZihuIT09dGhpcy5fY2hpbGRNZW51KXt0aGlzLl9jbG9zZUNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudT1uLHRoaXMuX2NoaWxkSW5kZXg9dGhpcy5fYWN0aXZlSW5kZXgsbi5fcGFyZW50TWVudT10aGlzLGQuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyxtLldpZGdldC5Nc2cuVXBkYXRlUmVxdWVzdCk7dmFyIGk9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlblt0aGlzLl9hY3RpdmVJbmRleF07cy5vcGVuU3VibWVudShuLGkpLHQmJihuLmFjdGl2ZUluZGV4PS0xLG4uYWN0aXZhdGVOZXh0SXRlbSgpKSxuLmFjdGl2YXRlKCl9fWVsc2UgdGhpcy5fY2xvc2VDaGlsZE1lbnUoKX0sZS5wcm90b3R5cGUuX2Nsb3NlQ2hpbGRNZW51PWZ1bmN0aW9uKCl7dGhpcy5fY2hpbGRNZW51JiZ0aGlzLl9jaGlsZE1lbnUuY2xvc2UoKX0sZS5wcm90b3R5cGUuX3N0YXJ0T3BlblRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczswPT09dGhpcy5fb3BlblRpbWVySUQmJih0aGlzLl9vcGVuVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb3BlblRpbWVySUQ9MCx0Ll9vcGVuQ2hpbGRNZW51KCl9LHMuVElNRVJfREVMQVkpKX0sZS5wcm90b3R5cGUuX3N0YXJ0Q2xvc2VUaW1lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7MD09PXRoaXMuX2Nsb3NlVGltZXJJRCYmKHRoaXMuX2Nsb3NlVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fY2xvc2VUaW1lcklEPTAsdC5fY2xvc2VDaGlsZE1lbnUoKX0scy5USU1FUl9ERUxBWSkpfSxlLnByb3RvdHlwZS5fY2FuY2VsT3BlblRpbWVyPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX29wZW5UaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lcklEKSx0aGlzLl9vcGVuVGltZXJJRD0wKX0sZS5wcm90b3R5cGUuX2NhbmNlbENsb3NlVGltZXI9ZnVuY3Rpb24oKXswIT09dGhpcy5fY2xvc2VUaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZXJJRCksdGhpcy5fY2xvc2VUaW1lcklEPTApfSxlfShtLldpZGdldCk7ZS5NZW51PWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXJJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSXRlbUNsYXNzKHQpLG49dGhpcy5jcmVhdGVJdGVtRGF0YXNldCh0KTtyZXR1cm4gcC5oLmxpKHtjbGFzc05hbWU6ZSxkYXRhc2V0Om59LHRoaXMucmVuZGVySWNvbih0KSx0aGlzLnJlbmRlckxhYmVsKHQpLHRoaXMucmVuZGVyU2hvcnRjdXQodCksdGhpcy5yZW5kZXJTdWJtZW51KHQpKX0sdC5wcm90b3R5cGUucmVuZGVySWNvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUljb25DbGFzcyh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOmV9LHQuaXRlbS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdExhYmVsKHQpO3JldHVybiBwLmguZGl2KHtjbGFzc05hbWU6InAtTWVudS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVyU2hvcnRjdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRTaG9ydGN1dCh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbVNob3J0Y3V0In0sZSl9LHQucHJvdG90eXBlLnJlbmRlclN1Ym1lbnU9ZnVuY3Rpb24odCl7cmV0dXJuIHAuaC5kaXYoe2NsYXNzTmFtZToicC1NZW51LWl0ZW1TdWJtZW51SWNvbiJ9KX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbUNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5pdGVtLmlzVmlzaWJsZXx8KGUrPSIgcC1tb2QtaGlkZGVuIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpLHQuY29sbGFwc2VkJiYoZSs9IiBwLW1vZC1jb2xsYXBzZWQiKTt2YXIgbj10Lml0ZW0uY2xhc3NOYW1lO3JldHVybiBuJiYoZSs9IiAiK24pLGV9LHQucHJvdG90eXBlLmNyZWF0ZUl0ZW1EYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUudHlwZSxpPWUuY29tbWFuZCxyPWUuZGF0YXNldDtyZXR1cm4gbyh7fSxyLCJjb21tYW5kIj09PW4/e3R5cGU6bixjb21tYW5kOml9Ont0eXBlOm59KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbUljb24iLG49dC5pdGVtLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUubGFiZWwsaT1lLm1uZW1vbmljO2lmKGk8MHx8aT49bi5sZW5ndGgpcmV0dXJuIG47dmFyIHI9bi5zbGljZSgwLGkpLG89bi5zbGljZShpKzEpLHM9bltpXTtyZXR1cm5bcixwLmguc3Bhbih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbU1uZW1vbmljIn0scyksb119LHQucHJvdG90eXBlLmZvcm1hdFNob3J0Y3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbS5rZXlCaW5kaW5nO3JldHVybiBlP2Uua2V5cy5tYXAocy5mb3JtYXRLZXlzdHJva2UpLmpvaW4oIiwgIik6bnVsbH0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KGc9ZS5NZW51fHwoZS5NZW51PXt9KSksZS5NZW51PWcsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4ic2VwYXJhdG9yIiE9PXQudHlwZSYmdC5pc0VuYWJsZWQmJnQuaXNWaXNpYmxlfXQuVElNRVJfREVMQVk9MzAwLHQuU1VCTUVOVV9PVkVSTEFQPTMsdC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1NZW51LWNvbnRlbnQiLHQuYXBwZW5kQ2hpbGQoZSksdC50YWJJbmRleD0tMSx0fSx0LmNhbkFjdGl2YXRlPWUsdC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBuKHQuY29tbWFuZHMsZSl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dS5Db21tYW5kUmVnaXN0cnkucGFyc2VLZXlzdHJva2UodCk7cmV0dXJuIGguUGxhdGZvcm0uSVNfTUFDPyhuLmN0cmwmJihlKz0i4oyDICIpLG4uYWx0JiYoZSs9IuKMpSAiKSxuLnNoaWZ0JiYoZSs9IuKHpyAiKSxuLmNtZCYmKGUrPSLijJggIikpOihuLmN0cmwmJihlKz0iQ3RybCsiKSxuLmFsdCYmKGUrPSJBbHQrIiksbi5zaGlmdCYmKGUrPSJTaGlmdCsiKSksZStuLmtleX0sdC5oaXRUZXN0TWVudXM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10O2k7aT1pLmNoaWxkTWVudSlpZihoLkVsZW1lbnRFeHQuaGl0VGVzdChpLm5vZGUsZSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5jb21wdXRlQ29sbGFwc2VkPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7YS5BcnJheUV4dC5maWxsKGUsITEpO2Zvcih2YXIgbj0wLGk9dC5sZW5ndGg7bjxpOysrbilpZigocz10W25dKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbbl09ITB9Zm9yKHZhciByPWktMTtyPj0wOy0tcilpZigocz10W3JdKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbcl09ITB9Zm9yKHZhciBvPSExOysrbjxyOyl7dmFyIHM7KHM9dFtuXSkuaXNWaXNpYmxlJiYoInNlcGFyYXRvciIhPT1zLnR5cGU/bz0hMTpvP2Vbbl09ITA6bz0hMCl9cmV0dXJuIGV9LHQub3BlblJvb3RNZW51PWZ1bmN0aW9uKHQsZSxuLGkscil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgbz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQsYT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGM9dS0ocj9uOjApLGg9dC5ub2RlLGw9aC5zdHlsZTtsLnRvcD0iIixsLmxlZnQ9IiIsbC53aWR0aD0iIixsLmhlaWdodD0iIixsLnZpc2liaWxpdHk9ImhpZGRlbiIsbC5tYXhIZWlnaHQ9YysicHgiLG0uV2lkZ2V0LmF0dGFjaCh0LGRvY3VtZW50LmJvZHkpO3ZhciBmPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1mLndpZHRoLGc9Zi5oZWlnaHQ7IWkmJmUrcD5vK2EmJihlPW8rYS1wKSwhciYmbitnPnMrdSYmKG4+cyt1P249cyt1LWc6bi09ZyksbC50b3A9TWF0aC5tYXgoMCxuKSsicHgiLGwubGVmdD1NYXRoLm1heCgwLGUpKyJweCIsbC52aXNpYmlsaXR5PSIifSx0Lm9wZW5TdWJtZW51PWZ1bmN0aW9uKGUsbil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgaT13aW5kb3cucGFnZVhPZmZzZXQscj13aW5kb3cucGFnZVlPZmZzZXQsbz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgscz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGE9cyx1PWUubm9kZSxjPXUuc3R5bGU7Yy50b3A9IiIsYy5sZWZ0PSIiLGMud2lkdGg9IiIsYy5oZWlnaHQ9IiIsYy52aXNpYmlsaXR5PSJoaWRkZW4iLGMubWF4SGVpZ2h0PWErInB4IixtLldpZGdldC5hdHRhY2goZSxkb2N1bWVudC5ib2R5KTt2YXIgbD11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9bC53aWR0aCxwPWwuaGVpZ2h0LGc9aC5FbGVtZW50RXh0LmJveFNpemluZyhlLm5vZGUpLHY9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXYucmlnaHQtdC5TVUJNRU5VX09WRVJMQVA7YitmPmkrbyYmKGI9di5sZWZ0K3QuU1VCTUVOVV9PVkVSTEFQLWYpO3ZhciB5PXYudG9wLWcuYm9yZGVyVG9wLWcucGFkZGluZ1RvcDt5K3A+citzJiYoeT12LmJvdHRvbStnLmJvcmRlckJvdHRvbStnLnBhZGRpbmdCb3R0b20tcCksYy50b3A9TWF0aC5tYXgoMCx5KSsicHgiLGMubGVmdD1NYXRoLm1heCgwLGIpKyJweCIsYy52aXNpYmlsaXR5PSIifSx0LmZpbmRNbmVtb25pYz1mdW5jdGlvbih0LG4saSl7Zm9yKHZhciByPS0xLG89LTEscz0hMSxhPW4udG9VcHBlckNhc2UoKSx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD0odStpKSVjLGw9dFtoXTtpZihlKGwpKXt2YXIgZD1sLmxhYmVsO2lmKDAhPT1kLmxlbmd0aCl7dmFyIGY9bC5tbmVtb25pYztmPj0wJiZmPGQubGVuZ3RoP2RbZl0udG9VcHBlckNhc2UoKT09PWEmJigtMT09PXI/cj1oOnM9ITApOi0xPT09byYmZFswXS50b1VwcGVyQ2FzZSgpPT09YSYmKG89aCl9fX1yZXR1cm57aW5kZXg6cixtdWx0aXBsZTpzLGF1dG86b319O3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuX2NvbW1hbmRzPXQsdGhpcy50eXBlPWUudHlwZXx8ImNvbW1hbmQiLHRoaXMuY29tbWFuZD1lLmNvbW1hbmR8fCIiLHRoaXMuYXJncz1lLmFyZ3N8fGMuSlNPTkV4dC5lbXB0eU9iamVjdCx0aGlzLnN1Ym1lbnU9ZS5zdWJtZW51fHxudWxsfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5sYWJlbDoiIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1uZW1vbmljIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLm1uZW1vbmljKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5tbmVtb25pYzotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uQ2xhc3MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkNsYXNzKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uQ2xhc3M6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uTGFiZWw6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmNhcHRpb246IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5jbGFzc05hbWU6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJkYXRhc2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmRhdGFzZXQodGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmRhdGFzZXQ6e319LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0VuYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaXNFbmFibGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51IiE9PXRoaXMudHlwZXx8bnVsbCE9PXRoaXMuc3VibWVudX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiJjb21tYW5kIj09PXRoaXMudHlwZSYmdGhpcy5fY29tbWFuZHMuaXNUb2dnbGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNWaXNpYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmlzVmlzaWJsZSh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKToic3VibWVudSIhPT10aGlzLnR5cGV8fG51bGwhPT10aGlzLnN1Ym1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nIix7Z2V0OmZ1bmN0aW9uKCl7aWYoImNvbW1hbmQiPT09dGhpcy50eXBlKXt2YXIgdD10aGlzLmNvbW1hbmQsZT10aGlzLmFyZ3M7cmV0dXJuIGEuQXJyYXlFeHQuZmluZExhc3RWYWx1ZSh0aGlzLl9jb21tYW5kcy5rZXlCaW5kaW5ncyxmdW5jdGlvbihuKXtyZXR1cm4gbi5jb21tYW5kPT09dCYmYy5KU09ORXh0LmRlZXBFcXVhbChuLmFyZ3MsZSl9KXx8bnVsbH1yZXR1cm4gbnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpfShzfHwocz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1KSxjPW4oNDApLGg9bigyMiksbD1uKDcpLGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3NwYWNpbmc9NCxuLl9kaXJ0eT0hMSxuLl9yb290PW51bGwsbi5fYm94PW51bGwsbi5faXRlbXM9bmV3IE1hcCxuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuaXRlcigpO3RoaXMuX2l0ZW1zLmZvckVhY2goZnVuY3Rpb24odCl7dC5kaXNwb3NlKCl9KSx0aGlzLl9ib3g9bnVsbCx0aGlzLl9yb290PW51bGwsdGhpcy5faXRlbXMuY2xlYXIoKSxzLmVhY2goZSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0VtcHR5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLl9yb290fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJBbGxXaWRnZXRzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3Q/dGhpcy5fcm9vdC5pdGVyVXNlcldpZGdldHMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLnNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclNlbGVjdGVkV2lkZ2V0cygpOnMuZW1wdHkoKX0sZS5wcm90b3R5cGUudGFiQmFycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclRhYkJhcnMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLmhhbmRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJIYW5kbGVzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS5tb3ZlSGFuZGxlPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9yb290JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpKXt2YXIgaSxyPXRoaXMuX3Jvb3QuZmluZFNwbGl0Tm9kZSh0KTtpZihyKTAhPT0oaT0iaG9yaXpvbnRhbCI9PT1yLm5vZGUub3JpZW50YXRpb24/ZS10Lm9mZnNldExlZnQ6bi10Lm9mZnNldFRvcCkmJihyLm5vZGUuaG9sZFNpemVzKCksYy5Cb3hFbmdpbmUuYWRqdXN0KHIubm9kZS5zaXplcnMsci5pbmRleCxpKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpfX0sZS5wcm90b3R5cGUuc2F2ZUxheW91dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290Pyh0aGlzLl9yb290LmhvbGRBbGxTaXplcygpLHttYWluOnRoaXMuX3Jvb3QuY3JlYXRlQ29uZmlnKCl9KTp7bWFpbjpudWxsfX0sZS5wcm90b3R5cGUucmVzdG9yZUxheW91dD1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1uZXcgU2V0O2U9dC5tYWluP28ubm9ybWFsaXplQXJlYUNvbmZpZyh0Lm1haW4saSk6bnVsbDt2YXIgcj10aGlzLndpZGdldHMoKSxhPXRoaXMudGFiQmFycygpLHU9dGhpcy5oYW5kbGVzKCk7dGhpcy5fcm9vdD1udWxsLHMuZWFjaChyLGZ1bmN0aW9uKHQpe2kuaGFzKHQpfHwodC5wYXJlbnQ9bnVsbCl9KSxzLmVhY2goYSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHMuZWFjaCh1LGZ1bmN0aW9uKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QucGFyZW50PW4ucGFyZW50fSksdGhpcy5fcm9vdD1lP28ucmVhbGl6ZUFyZWFDb25maWcoZSx7Y3JlYXRlVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIG4uX2NyZWF0ZVRhYkJhcigpfSxjcmVhdGVIYW5kbGU6ZnVuY3Rpb24oKXtyZXR1cm4gbi5fY3JlYXRlSGFuZGxlKCl9fSk6bnVsbCx0aGlzLnBhcmVudCYmKGkuZm9yRWFjaChmdW5jdGlvbih0KXtuLmF0dGFjaFdpZGdldCh0KX0pLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuYWRkV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPWUucmVmfHxudWxsLGk9ZS5tb2RlfHwidGFiLWFmdGVyIixyPW51bGw7aWYodGhpcy5fcm9vdCYmbiYmKHI9dGhpcy5fcm9vdC5maW5kVGFiTm9kZShuKSksbiYmIXIpdGhyb3cgbmV3IEVycm9yKCJSZWZlcmVuY2Ugd2lkZ2V0IGlzIG5vdCBpbiB0aGUgbGF5b3V0LiIpO3N3aXRjaCh0LnBhcmVudD10aGlzLnBhcmVudCxpKXtjYXNlInRhYi1hZnRlciI6dGhpcy5faW5zZXJ0VGFiKHQsbixyLCEwKTticmVhaztjYXNlInRhYi1iZWZvcmUiOnRoaXMuX2luc2VydFRhYih0LG4sciwhMSk7YnJlYWs7Y2FzZSJzcGxpdC10b3AiOnRoaXMuX2luc2VydFNwbGl0KHQsbixyLCJ2ZXJ0aWNhbCIsITEpO2JyZWFrO2Nhc2Uic3BsaXQtbGVmdCI6dGhpcy5faW5zZXJ0U3BsaXQodCxuLHIsImhvcml6b250YWwiLCExKTticmVhaztjYXNlInNwbGl0LXJpZ2h0Ijp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwiaG9yaXpvbnRhbCIsITApO2JyZWFrO2Nhc2Uic3BsaXQtYm90dG9tIjp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwidmVydGljYWwiLCEwKX10aGlzLnBhcmVudCYmKHRoaXMuYXR0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZVdpZGdldCh0KSx0aGlzLnBhcmVudCYmKHRoaXMuZGV0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuaGl0VGVzdFRhYkFyZWFzPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX3Jvb3R8fCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmlzVmlzaWJsZSlyZXR1cm4gbnVsbDt0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIG49dGhpcy5wYXJlbnQubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQtbi5sZWZ0LXRoaXMuX2JveC5ib3JkZXJMZWZ0LHI9ZS1uLnRvcC10aGlzLl9ib3guYm9yZGVyVG9wLG89dGhpcy5fcm9vdC5oaXRUZXN0VGFiTm9kZXMoaSxyKTtpZighbylyZXR1cm4gbnVsbDt2YXIgcz1vLnRhYkJhcix1PW8udG9wLGM9by5sZWZ0LGg9by53aWR0aCxsPW8uaGVpZ2h0LGQ9dGhpcy5fYm94LmJvcmRlckxlZnQrdGhpcy5fYm94LmJvcmRlclJpZ2h0LGY9dGhpcy5fYm94LmJvcmRlclRvcCt0aGlzLl9ib3guYm9yZGVyQm90dG9tO3JldHVybnt0YWJCYXI6cyx4OmkseTpyLHRvcDp1LGxlZnQ6YyxyaWdodDpuLndpZHRoLWQtKGMraCksYm90dG9tOm4uaGVpZ2h0LWYtKHUrbCksd2lkdGg6aCxoZWlnaHQ6bH19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pLHMuZWFjaCh0aGlzLmhhbmRsZXMoKSxmdW5jdGlvbih0KXtlLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpfSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5ub2RlIT09dC5ub2RlLnBhcmVudE5vZGUmJih0aGlzLl9pdGVtcy5zZXQodCxuZXcgaC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxsLldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe2lmKHRoaXMucGFyZW50Lm5vZGU9PT10Lm5vZGUucGFyZW50Tm9kZSl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGwuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKTt2YXIgZT10aGlzLl9pdGVtcy5nZXQodCk7ZSYmKHRoaXMuX2l0ZW1zLmRlbGV0ZSh0KSxlLmRpc3Bvc2UoKSl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVTaG93LmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2guY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkU2hvd249ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRIaWRkZW49ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uUmVzaXplPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKHQud2lkdGgsdC5oZWlnaHQpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUoLTEsLTEpfSxlLnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdGhpcy5fZml0KCl9LGUucHJvdG90eXBlLl9yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fcm9vdCl7dmFyIGU9dGhpcy5fcm9vdC5maW5kVGFiTm9kZSh0KTtpZihlKWlmKGUudGFiQmFyLnRpdGxlcy5sZW5ndGg+MSllLnRhYkJhci5yZW1vdmVUYWIodC50aXRsZSk7ZWxzZSBpZihlLnRhYkJhci5kaXNwb3NlKCksdGhpcy5fcm9vdCE9PWUpe3RoaXMuX3Jvb3QuaG9sZEFsbFNpemVzKCk7dmFyIG49ZS5wYXJlbnQ7ZS5wYXJlbnQ9bnVsbDt2YXIgaT1zLkFycmF5RXh0LnJlbW92ZUZpcnN0T2Yobi5jaGlsZHJlbixlKSxyPXMuQXJyYXlFeHQucmVtb3ZlQXQobi5oYW5kbGVzLGkpO2lmKHMuQXJyYXlFeHQucmVtb3ZlQXQobi5zaXplcnMsaSksci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksbi5jaGlsZHJlbi5sZW5ndGg+MSluLnN5bmNIYW5kbGVzKCk7ZWxzZXt2YXIgYT1uLnBhcmVudDtuLnBhcmVudD1udWxsO3ZhciB1PW4uY2hpbGRyZW5bMF0sYz1uLmhhbmRsZXNbMF07aWYobi5jaGlsZHJlbi5sZW5ndGg9MCxuLmhhbmRsZXMubGVuZ3RoPTAsbi5zaXplcnMubGVuZ3RoPTAsYy5wYXJlbnROb2RlJiZjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyksdGhpcy5fcm9vdD09PW4pcmV0dXJuIHUucGFyZW50PW51bGwsdm9pZCh0aGlzLl9yb290PXUpO3ZhciBoPWEsbD1oLmNoaWxkcmVuLmluZGV4T2Yobik7aWYodSBpbnN0YW5jZW9mIG8uVGFiTGF5b3V0Tm9kZSlyZXR1cm4gdS5wYXJlbnQ9aCx2b2lkKGguY2hpbGRyZW5bbF09dSk7dmFyIGQ9cy5BcnJheUV4dC5yZW1vdmVBdChoLmhhbmRsZXMsbCk7cy5BcnJheUV4dC5yZW1vdmVBdChoLmNoaWxkcmVuLGwpLHMuQXJyYXlFeHQucmVtb3ZlQXQoaC5zaXplcnMsbCksZC5wYXJlbnROb2RlJiZkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7Zm9yKHZhciBmPTAscD11LmNoaWxkcmVuLmxlbmd0aDtmPHA7KytmKXt2YXIgbT11LmNoaWxkcmVuW2ZdLGc9dS5oYW5kbGVzW2ZdLHY9dS5zaXplcnNbZl07cy5BcnJheUV4dC5pbnNlcnQoaC5jaGlsZHJlbixsK2YsbSkscy5BcnJheUV4dC5pbnNlcnQoaC5oYW5kbGVzLGwrZixnKSxzLkFycmF5RXh0Lmluc2VydChoLnNpemVycyxsK2YsdiksbS5wYXJlbnQ9aH11LmNoaWxkcmVuLmxlbmd0aD0wLHUuaGFuZGxlcy5sZW5ndGg9MCx1LnNpemVycy5sZW5ndGg9MCx1LnBhcmVudD1udWxsLGguc3luY0hhbmRsZXMoKX19ZWxzZSB0aGlzLl9yb290PW51bGx9fSxlLnByb3RvdHlwZS5faW5zZXJ0VGFiPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQhPT1lKXtpZighdGhpcy5fcm9vdCl7dmFyIHI9bmV3IG8uVGFiTGF5b3V0Tm9kZSh0aGlzLl9jcmVhdGVUYWJCYXIoKSk7cmV0dXJuIHIudGFiQmFyLmFkZFRhYih0LnRpdGxlKSx2b2lkKHRoaXMuX3Jvb3Q9cil9dmFyIHM7bnx8KG49dGhpcy5fcm9vdC5maW5kRmlyc3RUYWJOb2RlKCkpLC0xPT09bi50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSkmJih0aGlzLl9yZW1vdmVXaWRnZXQodCksdC5oaWRlKCkpLHM9ZT9uLnRhYkJhci50aXRsZXMuaW5kZXhPZihlLnRpdGxlKTpuLnRhYkJhci5jdXJyZW50SW5kZXgsbi50YWJCYXIuaW5zZXJ0VGFiKHMrKGk/MTowKSx0LnRpdGxlKX19LGUucHJvdG90eXBlLl9pbnNlcnRTcGxpdD1mdW5jdGlvbih0LGUsbixpLHIpe2lmKHQhPT1lfHwhbnx8MSE9PW4udGFiQmFyLnRpdGxlcy5sZW5ndGgpe3RoaXMuX3JlbW92ZVdpZGdldCh0KTt2YXIgYT1uZXcgby5UYWJMYXlvdXROb2RlKHRoaXMuX2NyZWF0ZVRhYkJhcigpKTtpZihhLnRhYkJhci5hZGRUYWIodC50aXRsZSksdGhpcy5fcm9vdCl7aWYoIW58fCFuLnBhcmVudCl7dmFyIHU9dGhpcy5fc3BsaXRSb290KGkpLGM9cj91LmNoaWxkcmVuLmxlbmd0aDowO3Uubm9ybWFsaXplU2l6ZXMoKTt2YXIgaD1vLmNyZWF0ZVNpemVyKG4/MTpvLkdPTERFTl9SQVRJTyk7cmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHUuY2hpbGRyZW4sYyxhKSxzLkFycmF5RXh0Lmluc2VydCh1LnNpemVycyxjLGgpLHMuQXJyYXlFeHQuaW5zZXJ0KHUuaGFuZGxlcyxjLHRoaXMuX2NyZWF0ZUhhbmRsZSgpKSxhLnBhcmVudD11LHUubm9ybWFsaXplU2l6ZXMoKSx2b2lkIHUuc3luY0hhbmRsZXMoKX12YXIgbD1uLnBhcmVudDtpZihsLm9yaWVudGF0aW9uPT09aSl7dmFyIGQ9bC5jaGlsZHJlbi5pbmRleE9mKG4pO2wubm9ybWFsaXplU2l6ZXMoKTt2YXIgZj1sLnNpemVyc1tkXS5zaXplSGludC89MixwPWQrKHI/MTowKTtyZXR1cm4gcy5BcnJheUV4dC5pbnNlcnQobC5jaGlsZHJlbixwLGEpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuc2l6ZXJzLHAsby5jcmVhdGVTaXplcihmKSkscy5BcnJheUV4dC5pbnNlcnQobC5oYW5kbGVzLHAsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWwsdm9pZCBsLnN5bmNIYW5kbGVzKCl9dmFyIG09cy5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGwuY2hpbGRyZW4sbiksZz1uZXcgby5TcGxpdExheW91dE5vZGUoaSk7Zy5ub3JtYWxpemVkPSEwLGcuY2hpbGRyZW4ucHVzaChuKSxnLnNpemVycy5wdXNoKG8uY3JlYXRlU2l6ZXIoLjUpKSxnLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksbi5wYXJlbnQ9Zzt2YXIgdj1yPzE6MDtzLkFycmF5RXh0Lmluc2VydChnLmNoaWxkcmVuLHYsYSkscy5BcnJheUV4dC5pbnNlcnQoZy5zaXplcnMsdixvLmNyZWF0ZVNpemVyKC41KSkscy5BcnJheUV4dC5pbnNlcnQoZy5oYW5kbGVzLHYsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWcsZy5zeW5jSGFuZGxlcygpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuY2hpbGRyZW4sbSxnKSxnLnBhcmVudD1sfWVsc2UgdGhpcy5fcm9vdD1hfX0sZS5wcm90b3R5cGUuX3NwbGl0Um9vdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yb290O2lmKGUgaW5zdGFuY2VvZiBvLlNwbGl0TGF5b3V0Tm9kZSYmZS5vcmllbnRhdGlvbj09PXQpcmV0dXJuIGU7dmFyIG49dGhpcy5fcm9vdD1uZXcgby5TcGxpdExheW91dE5vZGUodCk7cmV0dXJuIGUmJihuLmNoaWxkcmVuLnB1c2goZSksbi5zaXplcnMucHVzaChvLmNyZWF0ZVNpemVyKDApKSxuLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksZS5wYXJlbnQ9biksbn0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO2lmKHRoaXMuX3Jvb3Qpe3ZhciBuPXRoaXMuX3Jvb3QuZml0KHRoaXMuX3NwYWNpbmcsdGhpcy5faXRlbXMpO3Q9bi5taW5XaWR0aCxlPW4ubWluSGVpZ2h0fXZhciBpPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPWkuaG9yaXpvbnRhbFN1bSxlKz1pLnZlcnRpY2FsU3VtO3ZhciByPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7ci5taW5XaWR0aD10KyJweCIsci5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsbC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGwuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKHRoaXMuX2RpcnR5PSExLHRoaXMuX3Jvb3Qpe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBuPXRoaXMuX2JveC5wYWRkaW5nVG9wLGk9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHI9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxvPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO3RoaXMuX3Jvb3QudXBkYXRlKG4saSxyLG8sdGhpcy5fc3BhY2luZyx0aGlzLl9pdGVtcyl9fSxlLnByb3RvdHlwZS5fY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gdC5vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5wYXJlbnQmJih0LnBhcmVudD10aGlzLnBhcmVudCx0aGlzLmF0dGFjaFdpZGdldCh0KSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZUhhbmRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmVuZGVyZXIuY3JlYXRlSGFuZGxlKCksZT10LnN0eWxlO3JldHVybiBlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS50b3A9IjAiLGUubGVmdD0iMCIsZS53aWR0aD0iMCIsZS5oZWlnaHQ9IjAiLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpLHR9LGV9KGguTGF5b3V0KTtlLkRvY2tMYXlvdXQ9ZCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBjLkJveFNpemVyO3JldHVybiBlLnNpemVIaW50PXQsZS5zaXplPXQsZX1mdW5jdGlvbiBuKHQsZSl7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe2lmKDA9PT10LndpZGdldHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBuPVtdO2lmKHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7ZS5oYXModCl8fChlLmFkZCh0KSxuLnB1c2godCkpfSksMD09PW4ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBpPXQuY3VycmVudEluZGV4Oy0xIT09aSYmKGk8MHx8aT49bi5sZW5ndGgpJiYoaT0wKTtyZXR1cm57dHlwZToidGFiLWFyZWEiLHdpZGdldHM6bixjdXJyZW50SW5kZXg6aX19KHQsZSk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9dC5vcmllbnRhdGlvbixyPVtdLG89W10scz0wLGE9dC5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9bih0LmNoaWxkcmVuW3NdLGUpO3UmJigidGFiLWFyZWEiPT09dS50eXBlfHx1Lm9yaWVudGF0aW9uIT09aT8oci5wdXNoKHUpLG8ucHVzaChNYXRoLmFicyh0LnNpemVzW3NdfHwwKSkpOihyLnB1c2guYXBwbHkocix1LmNoaWxkcmVuKSxvLnB1c2guYXBwbHkobyx1LnNpemVzKSkpfWlmKDA9PT1yLmxlbmd0aClyZXR1cm4gbnVsbDtpZigxPT09ci5sZW5ndGgpcmV0dXJuIHJbMF07cmV0dXJue3R5cGU6InNwbGl0LWFyZWEiLG9yaWVudGF0aW9uOmksY2hpbGRyZW46cixzaXplczpvfX0odCxlKX1mdW5jdGlvbiBpKHQsbil7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe3ZhciBuPWUuY3JlYXRlVGFiQmFyKCk7cmV0dXJuIHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7dC5oaWRlKCksbi5hZGRUYWIodC50aXRsZSl9KSxuLmN1cnJlbnRJbmRleD10LmN1cnJlbnRJbmRleCxuZXcgcihuKX0odCxuKTpmdW5jdGlvbih0LG4pe3ZhciByPW5ldyBvKHQub3JpZW50YXRpb24pO3JldHVybiBzLmVhY2godC5jaGlsZHJlbixmdW5jdGlvbihvLHMpe3ZhciBhPWkobyxuKSx1PWUodC5zaXplc1tzXSksYz1uLmNyZWF0ZUhhbmRsZSgpO3IuY2hpbGRyZW4ucHVzaChhKSxyLmhhbmRsZXMucHVzaChjKSxyLnNpemVycy5wdXNoKHUpLGEucGFyZW50PXJ9KSxyLnN5bmNIYW5kbGVzKCksci5ub3JtYWxpemVTaXplcygpLHJ9KHQsbil9dC5HT0xERU5fUkFUSU89LjYxOCx0LmNsYW1wU3BhY2luZz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5jcmVhdGVTaXplcj1lLHQubm9ybWFsaXplQXJlYUNvbmZpZz1uLHQucmVhbGl6ZUFyZWFDb25maWc9aTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLl90b3A9MCx0aGlzLl9sZWZ0PTAsdGhpcy5fd2lkdGg9MCx0aGlzLl9oZWlnaHQ9MDt2YXIgZT1uZXcgYy5Cb3hTaXplcixuPW5ldyBjLkJveFNpemVyO2Uuc3RyZXRjaD0wLG4uc3RyZXRjaD0xLHRoaXMudGFiQmFyPXQsdGhpcy5zaXplcnM9W2Usbl19cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidG9wIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RvcH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGVmdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIndpZHRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZHRofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaGVpZ2h0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlaWdodH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5pdGVyQWxsV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLmNoYWluKHMub25jZSh0aGlzLnRhYkJhciksdGhpcy5pdGVyVXNlcldpZGdldHMoKSl9LHQucHJvdG90eXBlLml0ZXJVc2VyV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLm1hcCh0aGlzLnRhYkJhci50aXRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQub3duZXJ9KX0sdC5wcm90b3R5cGUuaXRlclNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD9zLm9uY2UodC5vd25lcik6cy5lbXB0eSgpfSx0LnByb3RvdHlwZS5pdGVyVGFiQmFycz1mdW5jdGlvbigpe3JldHVybiBzLm9uY2UodGhpcy50YWJCYXIpfSx0LnByb3RvdHlwZS5pdGVySGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiBzLmVtcHR5KCl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09dGhpcy50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSk/dGhpczpudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kRmlyc3RUYWJOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe3JldHVybiB0PHRoaXMuX2xlZnR8fHQ+PXRoaXMuX2xlZnQrdGhpcy5fd2lkdGg/bnVsbDplPHRoaXMuX3RvcHx8ZT49dGhpcy5fdG9wK3RoaXMuX2hlaWdodD9udWxsOnRoaXN9LHQucHJvdG90eXBlLmNyZWF0ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ0YWItYXJlYSIsd2lkZ2V0czp0aGlzLnRhYkJhci50aXRsZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bmVyfSksY3VycmVudEluZGV4OnRoaXMudGFiQmFyLmN1cnJlbnRJbmRleH19LHQucHJvdG90eXBlLmhvbGRBbGxTaXplcz1mdW5jdGlvbigpe30sdC5wcm90b3R5cGUuZml0PWZ1bmN0aW9uKHQsZSl7dmFyIG49MCxpPTAscj1lLmdldCh0aGlzLnRhYkJhciksbz10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUscz1vP2UuZ2V0KG8ub3duZXIpOnZvaWQgMCxhPXRoaXMuc2l6ZXJzLHU9YVswXSxjPWFbMV07cmV0dXJuIHImJnIuZml0KCkscyYmcy5maXQoKSxyJiYhci5pc0hpZGRlbj8obj1NYXRoLm1heChuLHIubWluV2lkdGgpLGkrPXIubWluSGVpZ2h0LHUubWluU2l6ZT1yLm1pbkhlaWdodCx1Lm1heFNpemU9ci5tYXhIZWlnaHQpOih1Lm1pblNpemU9MCx1Lm1heFNpemU9MCkscyYmIXMuaXNIaWRkZW4/KG49TWF0aC5tYXgobixzLm1pbldpZHRoKSxpKz1zLm1pbkhlaWdodCxjLm1pblNpemU9cy5taW5IZWlnaHQsYy5tYXhTaXplPTEvMCk6KGMubWluU2l6ZT0wLGMubWF4U2l6ZT0xLzApLHttaW5XaWR0aDpuLG1pbkhlaWdodDppLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl90b3A9ZSx0aGlzLl9sZWZ0PXQsdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9aTt2YXIgcz1vLmdldCh0aGlzLnRhYkJhciksYT10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUsdT1hP28uZ2V0KGEub3duZXIpOnZvaWQgMDtpZihjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGkpLHMmJiFzLmlzSGlkZGVuKXt2YXIgaD10aGlzLnNpemVyc1swXS5zaXplO3MudXBkYXRlKHQsZSxuLGgpLGUrPWh9aWYodSYmIXUuaXNIaWRkZW4pe2g9dGhpcy5zaXplcnNbMV0uc2l6ZTt1LnVwZGF0ZSh0LGUsbixoKX19LHR9KCk7dC5UYWJMYXlvdXROb2RlPXI7dmFyIG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucGFyZW50PW51bGwsdGhpcy5ub3JtYWxpemVkPSExLHRoaXMuY2hpbGRyZW49W10sdGhpcy5zaXplcnM9W10sdGhpcy5oYW5kbGVzPVtdLHRoaXMub3JpZW50YXRpb249dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlckFsbFdpZGdldHM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJBbGxXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclVzZXJXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyVXNlcldpZGdldHMoKX0pO3JldHVybiBuZXcgcy5DaGFpbkl0ZXJhdG9yKHQpfSx0LnByb3RvdHlwZS5pdGVyU2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyU2VsZWN0ZWRXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclRhYkJhcnM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJUYWJCYXJzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlckhhbmRsZXM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJIYW5kbGVzKCl9KTtyZXR1cm4gcy5jaGFpbih0aGlzLmhhbmRsZXMsbmV3IHMuQ2hhaW5JdGVyYXRvcih0KSl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZTxuOysrZSl7dmFyIGk9dGhpcy5jaGlsZHJlbltlXS5maW5kVGFiTm9kZSh0KTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFuZGxlcy5pbmRleE9mKHQpO2lmKC0xIT09ZSlyZXR1cm57aW5kZXg6ZSxub2RlOnRoaXN9O2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5maW5kU3BsaXROb2RlKHQpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZpbmRGaXJzdFRhYk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY2hpbGRyZW4ubGVuZ3RoP251bGw6dGhpcy5jaGlsZHJlblswXS5maW5kRmlyc3RUYWJOb2RlKCl9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5oaXRUZXN0VGFiTm9kZXModCxlKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5jcmVhdGVDb25maWc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWVudGF0aW9uLGU9dGhpcy5jcmVhdGVOb3JtYWxpemVkU2l6ZXMoKTtyZXR1cm57dHlwZToic3BsaXQtYXJlYSIsb3JpZW50YXRpb246dCxjaGlsZHJlbjp0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jcmVhdGVDb25maWcoKX0pLHNpemVzOmV9fSx0LnByb3RvdHlwZS5zeW5jSGFuZGxlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cy5lYWNoKHRoaXMuaGFuZGxlcyxmdW5jdGlvbihlLG4pe2Uuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWVudGF0aW9uIix0Lm9yaWVudGF0aW9uKSxuPT09dC5oYW5kbGVzLmxlbmd0aC0xP2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik6ZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfSx0LnByb3RvdHlwZS5ob2xkU2l6ZXM9ZnVuY3Rpb24oKXtzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplSGludD10LnNpemV9KX0sdC5wcm90b3R5cGUuaG9sZEFsbFNpemVzPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuY2hpbGRyZW4sZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9sZEFsbFNpemVzKCl9KSx0aGlzLmhvbGRTaXplcygpfSx0LnByb3RvdHlwZS5ub3JtYWxpemVTaXplcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2l6ZXJzLmxlbmd0aDtpZigwIT09dCl7dGhpcy5ob2xkU2l6ZXMoKTt2YXIgZT1zLnJlZHVjZSh0aGlzLnNpemVycyxmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uuc2l6ZUhpbnR9LDApOzA9PT1lP3MuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbihlKXtlLnNpemU9ZS5zaXplSGludD0xL3R9KTpzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplPXQuc2l6ZUhpbnQvPWV9KSx0aGlzLm5vcm1hbGl6ZWQ9ITB9fSx0LnByb3RvdHlwZS5jcmVhdGVOb3JtYWxpemVkU2l6ZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNpemVycy5sZW5ndGg7aWYoMD09PXQpcmV0dXJuW107dmFyIGU9dGhpcy5zaXplcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9KSxuPXMucmVkdWNlKGUsZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKTtyZXR1cm4gMD09PW4/cy5lYWNoKGUsZnVuY3Rpb24obixpKXtlW2ldPTEvdH0pOnMuZWFjaChlLGZ1bmN0aW9uKHQsaSl7ZVtpXT10L259KSxlfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbixpPU1hdGgubWF4KDAsdGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkqdCxyPW4/aTowLG89bj8wOmkscz0wLGE9dGhpcy5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9dGhpcy5jaGlsZHJlbltzXS5maXQodCxlKTtuPyhvPU1hdGgubWF4KG8sdS5taW5IZWlnaHQpLHIrPXUubWluV2lkdGgsdGhpcy5zaXplcnNbc10ubWluU2l6ZT11Lm1pbldpZHRoKToocj1NYXRoLm1heChyLHUubWluV2lkdGgpLG8rPXUubWluSGVpZ2h0LHRoaXMuc2l6ZXJzW3NdLm1pblNpemU9dS5taW5IZWlnaHQpfXJldHVybnttaW5XaWR0aDpyLG1pbkhlaWdodDpvLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uLHU9TWF0aC5tYXgoMCx0aGlzLmNoaWxkcmVuLmxlbmd0aC0xKSpyLGg9TWF0aC5tYXgoMCwoYT9uOmkpLXUpO3RoaXMubm9ybWFsaXplZCYmKHMuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbih0KXt0LnNpemVIaW50Kj1ofSksdGhpcy5ub3JtYWxpemVkPSExKSxjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGgpO2Zvcih2YXIgbD0wLGQ9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bDxkOysrbCl7dmFyIGY9dGhpcy5jaGlsZHJlbltsXSxwPXRoaXMuc2l6ZXJzW2xdLnNpemUsbT10aGlzLmhhbmRsZXNbbF0uc3R5bGU7YT8oZi51cGRhdGUodCxlLHAsaSxyLG8pLHQrPXAsbS50b3A9ZSsicHgiLG0ubGVmdD10KyJweCIsbS53aWR0aD1yKyJweCIsbS5oZWlnaHQ9aSsicHgiLHQrPXIpOihmLnVwZGF0ZSh0LGUsbixwLHIsbyksZSs9cCxtLnRvcD1lKyJweCIsbS5sZWZ0PXQrInB4IixtLndpZHRoPW4rInB4IixtLmhlaWdodD1yKyJweCIsZSs9cil9fSx0fSgpO3QuU3BsaXRMYXlvdXROb2RlPW99KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big0MSksZj1uKDcpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX2hhc05vcm1lZFNpemVzPSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9oYW5kbGVzPVtdLG4uX2JveD1udWxsLG4uX2FsaWdubWVudD0ic3RhcnQiLG4uX29yaWVudGF0aW9uPSJob3Jpem9udGFsIixuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5vcmllbnRhdGlvbiYmKG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb24pLHZvaWQgMCE9PWUuYWxpZ25tZW50JiYobi5fYWxpZ25tZW50PWUuYWxpZ25tZW50KSx2b2lkIDAhPT1lLnNwYWNpbmcmJihuLl9zcGFjaW5nPW8uY2xhbXBTcGFjaW5nKGUuc3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fc2l6ZXJzLmxlbmd0aD0wLHRoaXMuX2hhbmRsZXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fb3JpZW50YXRpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnBhcmVudC5maXQoKSkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiYWxpZ25tZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsaWdubWVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2FsaWdubWVudCE9PXQmJih0aGlzLl9hbGlnbm1lbnQ9dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3Q9by5jbGFtcFNwYWNpbmcodCksdGhpcy5fc3BhY2luZyE9PXQmJih0aGlzLl9zcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImhhbmRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGFuZGxlc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKCl7cmV0dXJuIG8ubm9ybWFsaXplKHRoaXMuX3NpemVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX0pKX0sZS5wcm90b3R5cGUuc2V0UmVsYXRpdmVTaXplcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fc2l6ZXJzLmxlbmd0aCxuPXQuc2xpY2UoMCxlKTtuLmxlbmd0aDxlOyluLnB1c2goMCk7Zm9yKHZhciBpPW8ubm9ybWFsaXplKG4pLHI9MDtyPGU7KytyKXt2YXIgcz10aGlzLl9zaXplcnNbcl07cy5zaXplSGludD1pW3JdLHMuc2l6ZT1pW3JdfXRoaXMuX2hhc05vcm1lZFNpemVzPSEwLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUubW92ZUhhbmRsZT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5faGFuZGxlc1t0XTtpZihpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpJiYwIT09KG49Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/ZS1pLm9mZnNldExlZnQ6ZS1pLm9mZnNldFRvcCkpe2Zvcih2YXIgcj0wLG89dGhpcy5fc2l6ZXJzO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdO3Muc2l6ZT4wJiYocy5zaXplSGludD1zLnNpemUpfWguQm94RW5naW5lLmFkanVzdCh0aGlzLl9zaXplcnMsdCxuKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuZGF0YXNldC5vcmllbnRhdGlvbj10aGlzLm9yaWVudGF0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IGwuTGF5b3V0SXRlbShlKSxpPW8uY3JlYXRlSGFuZGxlKHRoaXMucmVuZGVyZXIpLHI9by5hdmVyYWdlU2l6ZSh0aGlzLl9zaXplcnMpLGE9by5jcmVhdGVTaXplcihyKTtzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG4pLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3NpemVycyx0LGEpLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2hhbmRsZXMsdCxpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoaSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3MuQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHMuQXJyYXlFeHQubW92ZSh0aGlzLl9zaXplcnMsdCxlKSxzLkFycmF5RXh0Lm1vdmUodGhpcy5faGFuZGxlcyx0LGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpLGk9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9oYW5kbGVzLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKSxuLmRpc3Bvc2UoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25CZWZvcmVTaG93PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlU2hvdy5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQudXBkYXRlKCl9LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoLmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkSGlkZGVuPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSh0LndpZHRoLHQuaGVpZ2h0KX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKC0xLC0xKX0sZS5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnRoaXMuX2ZpdCgpfSxlLnByb3RvdHlwZS5fZml0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsbj0tMSxpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl0aGlzLl9pdGVtc1tpXS5pc0hpZGRlbj90aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpOih0aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWhpZGRlbiIpLG49aSx0KyspOy0xIT09biYmdGhpcy5faGFuZGxlc1tuXS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLl9maXhlZD10aGlzLl9zcGFjaW5nKk1hdGgubWF4KDAsdC0xKTt2YXIgbz0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbixzPW8/dGhpcy5fZml4ZWQ6MCxjPW8/MDp0aGlzLl9maXhlZDtmb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBoPXRoaXMuX2l0ZW1zW2ldLGw9dGhpcy5fc2l6ZXJzW2ldO2wuc2l6ZT4wJiYobC5zaXplSGludD1sLnNpemUpLGguaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxvPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW0sZD0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbjtpZihvPWQ/TWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKTpNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpLHRoaXMuX2hhc05vcm1lZFNpemVzKXtmb3IodmFyIGY9MCxwPXRoaXMuX3NpemVycztmPHAubGVuZ3RoO2YrKyl7cFtmXS5zaXplSGludCo9b310aGlzLl9oYXNOb3JtZWRTaXplcz0hMX12YXIgbT1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxvKSxnPTAsdj0wO2lmKG0+MClzd2l0Y2godGhpcy5fYWxpZ25tZW50KXtjYXNlInN0YXJ0IjpicmVhaztjYXNlImNlbnRlciI6Zz0wLHY9bS8yO2JyZWFrO2Nhc2UiZW5kIjpnPTAsdj1tO2JyZWFrO2Nhc2UianVzdGlmeSI6Zz1tL24sdj0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGI9dGhpcy5faXRlbXNbaV07aWYoIWIuaXNIaWRkZW4pe3ZhciB5PXRoaXMuX3NpemVyc1tpXS5zaXplLF89dGhpcy5faGFuZGxlc1tpXS5zdHlsZTtkPyhiLnVwZGF0ZSh1K3Yscyx5K2csbCksdSs9eStnLF8udG9wPXMrInB4IixfLmxlZnQ9dSt2KyJweCIsXy53aWR0aD10aGlzLl9zcGFjaW5nKyJweCIsXy5oZWlnaHQ9bCsicHgiLHUrPXRoaXMuX3NwYWNpbmcpOihiLnVwZGF0ZSh1LHMrdixjLHkrZykscys9eStnLF8udG9wPXMrdisicHgiLF8ubGVmdD11KyJweCIsXy53aWR0aD1jKyJweCIsXy5oZWlnaHQ9dGhpcy5fc3BhY2luZysicHgiLHMrPXRoaXMuX3NwYWNpbmcpfX19fSxlfShkLlBhbmVsTGF5b3V0KTtlLlNwbGl0TGF5b3V0PXAsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBvLnN0cmV0Y2hQcm9wZXJ0eS5nZXQodCl9LHQuc2V0U3RyZXRjaD1mdW5jdGlvbih0LGUpe28uc3RyZXRjaFByb3BlcnR5LnNldCh0LGUpfX0ocD1lLlNwbGl0TGF5b3V0fHwoZS5TcGxpdExheW91dD17fSkpLGUuU3BsaXRMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZnVuY3Rpb24odCl7dC5wYXJlbnQmJnQucGFyZW50LmxheW91dCBpbnN0YW5jZW9mIHAmJnQucGFyZW50LmZpdCgpfX0pLHQuY3JlYXRlU2l6ZXI9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGguQm94U2l6ZXI7cmV0dXJuIGUuc2l6ZUhpbnQ9TWF0aC5mbG9vcih0KSxlfSx0LmNyZWF0ZUhhbmRsZT1mdW5jdGlvbih0KXt2YXIgZT10LmNyZWF0ZUhhbmRsZSgpO3JldHVybiBlLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZX0sdC5jbGFtcFNwYWNpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcih0KSl9LHQuYXZlcmFnZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5zaXplfSwwKS90Lmxlbmd0aHx8MH0sdC5ub3JtYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107dmFyIG49dC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLmFicyhlKX0sMCk7cmV0dXJuIDA9PT1uP3QubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAxL2V9KTp0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC9ufSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9big5KSxhPW4oNSksdT1uKDIyKSxjPW4oNDEpLGg9big3KSxsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2RpcnR5PSExLGUuX2l0ZW1zPVtdLGUuX2JveD1udWxsLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXtvLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG5ldyB1LkxheW91dEl0ZW0oZSkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe28uQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1vLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi53aWRnZXQubm9kZS5zdHlsZS56SW5kZXg9IiIsbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9MCxuPTAsaT10aGlzLl9pdGVtcy5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5faXRlbXNbbl07ci5pc0hpZGRlbnx8KHIuZml0KCksdD1NYXRoLm1heCh0LHIubWluV2lkdGgpLGU9TWF0aC5tYXgoZSxyLm1pbkhlaWdodCkpfXZhciBvPXRoaXMuX2JveD1zLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPW8uaG9yaXpvbnRhbFN1bSxlKz1vLnZlcnRpY2FsU3VtO3ZhciB1PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7dS5taW5XaWR0aD10KyJweCIsdS5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsaC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGguV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PXMuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvPXRoaXMuX2JveC5wYWRkaW5nVG9wLGE9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHU9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxjPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO2ZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGg9dGhpcy5faXRlbXNbaV07aC5pc0hpZGRlbnx8KGgud2lkZ2V0Lm5vZGUuc3R5bGUuekluZGV4PSIiK2ksaC51cGRhdGUoYSxvLHUsYykpfX19LGV9KGMuUGFuZWxMYXlvdXQpO2UuU3RhY2tlZExheW91dD1sfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMTEpLGE9big1NCksdT1uKDEzNCksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3dpZGdldFJlbW92ZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU3RhY2tlZFBhbmVsIiksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpLHRoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0oYS5QYW5lbCk7ZS5TdGFja2VkUGFuZWw9YyxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyB1LlN0YWNrZWRMYXlvdXR9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9bigxNiksYz1uKDIpLGg9big1KSxsPW4oMzkpLGQ9big2KSxmPW4oMTUpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Rpc3Bvc2VkfHwodC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpLHRoaXMuX3ZpZXcmJnRoaXMuX3ZpZXcucmVtb3ZlKCksdGhpcy5fdmlldz1udWxsKX0sZX0obC5QYW5lbCk7ZS5KdXB5dGVyUGhvc3Bob3JQYW5lbFdpZGdldD1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiQm94VmlldyIsX21vZGVsX25hbWU6IkJveE1vZGVsIixjaGlsZHJlbjpbXSxib3hfc3R5bGU6IiJ9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtjaGlsZHJlbjp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkJveE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJIQm94VmlldyIsX21vZGVsX25hbWU6IkhCb3hNb2RlbCJ9KX0sZX0obSk7ZS5IQm94TW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGQuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlZCb3hWaWV3IixfbW9kZWxfbmFtZToiVkJveE1vZGVsIn0pfSxlfShtKTtlLlZCb3hNb2RlbD12O3ZhciBiPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX2NyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucFdpZGdldD1uZXcgcCh7dmlldzp0aGlzfSksdGhpcy5wV2lkZ2V0Lm5vZGV9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuZWx8fHQhPT10aGlzLnBXaWRnZXQubm9kZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXNldCB0aGUgRE9NIGVsZW1lbnQuIik7dGhpcy5lbD10aGlzLnBXaWRnZXQubm9kZSx0aGlzLiRlbD1mKHRoaXMucFdpZGdldC5ub2RlKX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBzLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX21vZGVsLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLHRoaXMudXBkYXRlX2NoaWxkcmVuKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpib3hfc3R5bGUiLHRoaXMudXBkYXRlX2JveF9zdHlsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1jb250YWluZXIiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1ib3giKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy51cGRhdGVfY2hpbGRyZW4oKSx0aGlzLnNldF9ib3hfc3R5bGUoKX0sZS5wcm90b3R5cGUudXBkYXRlX2NoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLnRoZW4oZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2guTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodC5wV2lkZ2V0LGwuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9KX0sZS5wcm90b3R5cGUudXBkYXRlX2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuc2V0X2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuYWRkX2NoaWxkX21vZGVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgbC5XaWRnZXQ7cmV0dXJuIHRoaXMucFdpZGdldC5hZGRXaWRnZXQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBpPWMuQXJyYXlFeHQuZmlyc3RJbmRleE9mKGUucFdpZGdldC53aWRnZXRzLG4pO3JldHVybiBlLnBXaWRnZXQuaW5zZXJ0V2lkZ2V0KGksdC5wV2lkZ2V0KSxuLmRpc3Bvc2UoKSx0fSkuY2F0Y2godS5yZWplY3QoIkNvdWxkIG5vdCBhZGQgY2hpbGQgdmlldyB0byBib3giLCEwKSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuY2hpbGRyZW5fdmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJhbGVydCIsImFsZXJ0LXN1Y2Nlc3MiXSxpbmZvOlsiYWxlcnQiLCJhbGVydC1pbmZvIl0sd2FybmluZzpbImFsZXJ0IiwiYWxlcnQtd2FybmluZyJdLGRhbmdlcjpbImFsZXJ0IiwiYWxlcnQtZGFuZ2VyIl19LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5Cb3hWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWhib3giKX0sZX0oYik7ZS5IQm94Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC12Ym94Iil9LGV9KGIpO2UuVkJveFZpZXc9Xzt2YXIgdz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtZ3JpZGJveCIpLHRoaXMucFdpZGdldC5yZW1vdmVDbGFzcygid2lkZ2V0LWJveCIpfSxlfShiKTtlLkdyaWRCb3hWaWV3PXc7dmFyIHg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJHcmlkQm94VmlldyIsX21vZGVsX25hbWU6IkdyaWRCb3hNb2RlbCJ9KX0sZX0obSk7ZS5HcmlkQm94TW9kZWw9eH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDgpLGM9bigxNiksaD1uKDEzOSksbD1uKDYpLGQ9bigxNSk7bigzNDcpO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludE1vZGVsIix2YWx1ZTowfSl9LGV9KHMuQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuSW50TW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50TW9kZWwiLG1heDoxMDAsbWluOjB9KX0sZX0oZik7ZS5Cb3VuZGVkSW50TW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNsaWRlclN0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtoYW5kbGVfY29sb3I6e3NlbGVjdG9yOiIudWktc2xpZGVyLWhhbmRsZSIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuU2xpZGVyU3R5bGVNb2RlbD1tO3ZhciBnPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJJbnRTbGlkZXJWaWV3IixzdGVwOjEsb3JpZW50YXRpb246Imhvcml6b250YWwiLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6ImQiLGNvbnRpbnVvdXNfdXBkYXRlOiEwLHN0eWxlOm51bGwsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPWguZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0ocCk7ZS5JbnRTbGlkZXJNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZX0oZyk7ZS5JbnRSYW5nZVNsaWRlck1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VJbnQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1zbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1kKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5jb250ZW50RWRpdGFibGU9InRydWUiLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgbj10aGlzO24uJHNsaWRlci5zbGlkZXIoe30pLFsic3RlcCIsImRpc2FibGVkIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLm1vZGVsLmdldCh0KTt2b2lkIDAhPT1lJiZuLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLHQsZSl9KSx0aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKT90aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPSJmYWxzZSI6dGhpcy5yZWFkb3V0LmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI7dmFyIGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoIm1pbiIpO3I8PWkmJih2b2lkIDAhPT1pJiZ0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJtYXgiLGkpLHZvaWQgMCE9PXImJnRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1pbiIscikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm9yaWVudGF0aW9uIixvKSwidmVydGljYWwiPT09bz8odGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS12Ym94IikpOih0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC12c2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSksdGhpcy5tb2RlbC5nZXQoInJlYWRvdXQiKT8odGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe24ucmVhZG91dF9vdmVyZmxvdygpP24ucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJvdmVyZmxvdyIpOm4ucmVhZG91dC5jbGFzc0xpc3QucmVtb3ZlKCJvdmVyZmxvdyIpfSkpOnRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIn1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlYWRvdXRfb3ZlcmZsb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkb3V0LnNjcm9sbFdpZHRoPnRoaXMucmVhZG91dC5jbGllbnRXaWR0aH0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCIsImJsdXIgW2NvbnRlbnRFZGl0YWJsZT10cnVlXSI6ImhhbmRsZVRleHRDaGFuZ2UiLCJrZXlkb3duIFtjb250ZW50RWRpdGFibGU9dHJ1ZV0iOiJoYW5kbGVLZXlEb3duIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVUZXh0Q2hhbmdlKCkpfSxlLnByb3RvdHlwZS5fdmFsaWRhdGVfc2xpZGVfdmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkJhc2VJbnRTbGlkZXJWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcmFuZ2VfcmVnZXg9L15ccyooWystXT9cZCspXHMqWy064oCTXVxzKihbKy1dP1xkKykvLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJyYW5nZSIsITApO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsbi5zbGljZSgpKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKG4pLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09biYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsbix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXI7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkuam9pbigiIOKAkyAiKX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yYW5nZV9yZWdleC5leGVjKHQpO3JldHVybiBlP1t0aGlzLl9wYXJzZV92YWx1ZShlWzFdKSx0aGlzLl9wYXJzZV92YWx1ZShlWzJdKV06bnVsbH0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO251bGw9PT10fHxpc05hTih0WzBdKXx8aXNOYU4odFsxXSl8fHRbMF0+dFsxXT90aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKToodD1bTWF0aC5tYXgoTWF0aC5taW4odFswXSxuKSxlKSxNYXRoLm1heChNYXRoLm1pbih0WzFdLG4pLGUpXSlbMF0hPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKVswXXx8dFsxXSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpWzFdPyh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHQpLHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdCx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpOnRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnZhbHVlcy5tYXAodGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS52YWx1ZXMubWFwKHRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLG4se3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShiKTtlLkludFJhbmdlU2xpZGVyVmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMsZSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoIm1pbiIpLGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7cj5pP3I9aTpyPG4mJihyPW4pLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlIixyKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09ciYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIscix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybigwLHRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXIpKHQpfSxlLnByb3RvdHlwZS5zdHJpbmdUb1ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJzZV92YWx1ZSh0KX0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO2lzTmFOKHQpP3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpOih0PU1hdGgubWF4KE1hdGgubWluKHQsbiksZSkpIT09dGhpcy5tb2RlbC5nZXQoInZhbHVlIik/KHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodCksdGhpcy5tb2RlbC5zZXQoInZhbHVlIix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSk6dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSl9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKGUudmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSk7dGhpcy5tb2RlbC5zZXQoInZhbHVlIixuLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oYik7ZS5JbnRTbGlkZXJWaWV3PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITF9KX0sZX0oZik7ZS5JbnRUZXh0TW9kZWw9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITEsc3RlcDoxfSl9LGV9KHApO2UuQm91bmRlZEludFRleHRNb2RlbD14O3ZhciBNPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlSW50LGUuX2RlZmF1bHRfc3RlcD0iMSIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnR5cGU9Im51bWJlciIsdGhpcy50ZXh0Ym94LnJlcXVpcmVkPSEwLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9Yy51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9PXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX3BhcnNlX3ZhbHVlKHRoaXMudGV4dGJveC52YWx1ZSkhPT1uJiYodGhpcy50ZXh0Ym94LnZhbHVlPW4udG9TdHJpbmcoKSksdm9pZCAwIT09dGhpcy5tb2RlbC5nZXQoIm1pbiIpJiYodGhpcy50ZXh0Ym94Lm1pbj10aGlzLm1vZGVsLmdldCgibWluIikpLHZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKHRoaXMudGV4dGJveC5tYXg9dGhpcy5tb2RlbC5nZXQoIm1heCIpKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgic3RlcCIpJiZudWxsIT09dGhpcy5tb2RlbC5nZXQoInN0ZXAiKT90aGlzLnRleHRib3guc3RlcD10aGlzLm1vZGVsLmdldCgic3RlcCIpOnRoaXMudGV4dGJveC5zdGVwPXRoaXMuX2RlZmF1bHRfc3RlcCx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IGlucHV0IjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgaW5wdXQiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQudmFsdWUudHJpbSgpOyIiPT09ZXx8WyItIiwiLS4iLCIuIiwiKy4iLCIrIl0uaW5kZXhPZihlKT49MHx8dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZV92YWx1ZSh0LnRhcmdldC52YWx1ZSk7aWYoaXNOYU4oZSkpdC50YXJnZXQudmFsdWU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7ZWxzZXt2YXIgbj1lO3ZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKG49TWF0aC5taW4odGhpcy5tb2RlbC5nZXQoIm1heCIpLG4pKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgibWluIikmJihuPU1hdGgubWF4KHRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuKSksbiE9PWUmJih0LnRhcmdldC52YWx1ZT1uLGU9biksZSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpJiYodGhpcy5tb2RlbC5zZXQoInZhbHVlIixlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSl9fSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5JbnRUZXh0Vmlldz1NO3ZhciBTPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUHJvZ3Jlc3NTdHlsZU1vZGVsIn0pfSxlLnN0eWxlUHJvcGVydGllcz1vKHt9LGEuRGVzY3JpcHRpb25TdHlsZU1vZGVsLnN0eWxlUHJvcGVydGllcyx7YmFyX2NvbG9yOntzZWxlY3RvcjoiLnByb2dyZXNzLWJhciIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuUHJvZ3Jlc3NTdHlsZU1vZGVsPVM7dmFyIEU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0ocCk7ZS5JbnRQcm9ncmVzc01vZGVsPUU7dmFyIEE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJhcl9zdHlsZSIsdGhpcy51cGRhdGVfYmFyX3N0eWxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT0iaG9yaXpvbnRhbCI9PT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKT8id2lkZ2V0LWhwcm9ncmVzcyI6IndpZGdldC12cHJvZ3Jlc3MiO3RoaXMuZWwuY2xhc3NMaXN0LmFkZChlKSx0aGlzLnByb2dyZXNzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMucHJvZ3Jlc3MuY2xhc3NMaXN0LmFkZCgicHJvZ3Jlc3MiKSx0aGlzLnByb2dyZXNzLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnByb2dyZXNzKSx0aGlzLmJhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmJhci5jbGFzc0xpc3QuYWRkKCJwcm9ncmVzcy1iYXIiKSx0aGlzLmJhci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5sZWZ0PSIwcHgiLHRoaXMucHJvZ3Jlc3MuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5zZXRfYmFyX3N0eWxlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpLGk9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLHI9MTAwKihlLWkpLyhuLWkpO3JldHVybiJob3Jpem9udGFsIj09PXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpPyh0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtdmJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LXZwcm9ncmVzcyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5iYXIuc3R5bGUud2lkdGg9cisiJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PSIxMDAlIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLXZib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC12cHJvZ3Jlc3MiKSx0aGlzLmJhci5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PXIrIiUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUudXBkYXRlX2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5wcm90b3R5cGUuc2V0X2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJwcm9ncmVzcy1iYXItc3VjY2VzcyJdLGluZm86WyJwcm9ncmVzcy1iYXItaW5mbyJdLHdhcm5pbmc6WyJwcm9ncmVzcy1iYXItd2FybmluZyJdLGRhbmdlcjpbInByb2dyZXNzLWJhci1kYW5nZXIiXX0sZX0oYS5EZXNjcmlwdGlvblZpZXcpO2UuUHJvZ3Jlc3NWaWV3PUE7dmFyIEM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUGxheU1vZGVsIixfdmlld19uYW1lOiJQbGF5VmlldyIsX3BsYXlpbmc6ITEsX3JlcGVhdDohMSxzaG93X3JlcGVhdDohMCxpbnRlcnZhbDoxMDAsc3RlcDoxLGRpc2FibGVkOiExfSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pfSxlLnByb3RvdHlwZS5sb29wPWZ1bmN0aW9uKCl7aWYodGhpcy5nZXQoIl9wbGF5aW5nIikpe3ZhciB0PXRoaXMuZ2V0KCJ2YWx1ZSIpK3RoaXMuZ2V0KCJzdGVwIik7dDw9dGhpcy5nZXQoIm1heCIpPyh0aGlzLnNldCgidmFsdWUiLHQpLHRoaXMuc2NoZWR1bGVfbmV4dCgpKTp0aGlzLmdldCgiX3JlcGVhdCIpPyh0aGlzLnNldCgidmFsdWUiLHRoaXMuZ2V0KCJtaW4iKSksdGhpcy5zY2hlZHVsZV9uZXh0KCkpOnRoaXMuc2V0KCJfcGxheWluZyIsITEpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9fSxlLnByb3RvdHlwZS5zY2hlZHVsZV9uZXh0PWZ1bmN0aW9uKCl7d2luZG93LnNldFRpbWVvdXQodGhpcy5sb29wLmJpbmQodGhpcyksdGhpcy5nZXQoImludGVydmFsIikpfSxlLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zZXQoInZhbHVlIix0aGlzLmdldCgibWluIikpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9LGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zYXZlX2NoYW5nZXMoKX0sZS5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMuc2V0KCJfcGxheWluZyIsITApLHRoaXMuZ2V0KCJ2YWx1ZSIpPT10aGlzLmdldCgibWF4Iik/KHRoaXMuc2V0KCJ2YWx1ZSIsdGhpcy5nZXQoIm1pbiIpKSx0aGlzLnNjaGVkdWxlX25leHQoKSx0aGlzLnNhdmVfY2hhbmdlcygpKTp0aGlzLmxvb3AoKX0sZS5wcm90b3R5cGUucmVwZWF0PWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9yZXBlYXQiLCF0aGlzLmdldCgiX3JlcGVhdCIpKSx0aGlzLnNhdmVfY2hhbmdlcygpfSxlfShwKTtlLlBsYXlNb2RlbD1DO3ZhciBrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXBsYXkiKSx0aGlzLnBsYXlCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wYXVzZUJ1dHRvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSx0aGlzLnN0b3BCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5yZXBlYXRCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wbGF5QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucGF1c2VCdXR0b24uY2xhc3NOYW1lPSJqdXB5dGVyLWJ1dHRvbiIsdGhpcy5zdG9wQnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucmVwZWF0QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5wbGF5QnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucGF1c2VCdXR0b24pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdG9wQnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucmVwZWF0QnV0dG9uKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7ZS5jbGFzc05hbWU9ImZhIGZhLXBsYXkiLHRoaXMucGxheUJ1dHRvbi5hcHBlbmRDaGlsZChlKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7bi5jbGFzc05hbWU9ImZhIGZhLXBhdXNlIix0aGlzLnBhdXNlQnV0dG9uLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtpLmNsYXNzTmFtZT0iZmEgZmEtc3RvcCIsdGhpcy5zdG9wQnV0dG9uLmFwcGVuZENoaWxkKGkpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtyLmNsYXNzTmFtZT0iZmEgZmEtcmV0d2VldCIsdGhpcy5yZXBlYXRCdXR0b24uYXBwZW5kQ2hpbGQociksdGhpcy5wbGF5QnV0dG9uLm9uY2xpY2s9dGhpcy5tb2RlbC5wbGF5LmJpbmQodGhpcy5tb2RlbCksdGhpcy5wYXVzZUJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucGF1c2UuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnN0b3BCdXR0b24ub25jbGljaz10aGlzLm1vZGVsLnN0b3AuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnJlcGVhdEJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucmVwZWF0LmJpbmQodGhpcy5tb2RlbCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3BsYXlpbmciLHRoaXMudXBkYXRlX3BsYXlpbmcpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOl9yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2hvd19yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy51cGRhdGVfcGxheWluZygpLHRoaXMudXBkYXRlX3JlcGVhdCgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMucGxheUJ1dHRvbi5kaXNhYmxlZD10LHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnN0b3BCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnJlcGVhdEJ1dHRvbi5kaXNhYmxlZD10LHRoaXMudXBkYXRlX3BsYXlpbmcoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYXlpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3BsYXlpbmciKSxlPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3Q/KGV8fCh0aGlzLnBhdXNlQnV0dG9uLmRpc2FibGVkPSExKSx0aGlzLnBsYXlCdXR0b24uY2xhc3NMaXN0LmFkZCgibW9kLWFjdGl2ZSIpKTooZXx8KHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9ITApLHRoaXMucGxheUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVwZWF0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoIl9yZXBlYXQiKTt0aGlzLnJlcGVhdEJ1dHRvbi5zdHlsZS5kaXNwbGF5PXRoaXMubW9kZWwuZ2V0KCJzaG93X3JlcGVhdCIpP3RoaXMucGxheUJ1dHRvbi5zdHlsZS5kaXNwbGF5OiJub25lIix0P3RoaXMucmVwZWF0QnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTp0aGlzLnJlcGVhdEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIil9LGV9KHUuRE9NV2lkZ2V0Vmlldyk7ZS5QbGF5Vmlldz1rfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFdpZGdldCAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbig0MildLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlLG49MCxpPUFycmF5LnByb3RvdHlwZS5zbGljZTtyZXR1cm4gdC5jbGVhbkRhdGE9KGU9dC5jbGVhbkRhdGEsZnVuY3Rpb24obil7dmFyIGkscixvO2ZvcihvPTA7bnVsbCE9KHI9bltvXSk7bysrKXRyeXsoaT10Ll9kYXRhKHIsImV2ZW50cyIpKSYmaS5yZW1vdmUmJnQocikudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpfWNhdGNoKHQpe31lKG4pfSksdC53aWRnZXQ9ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scyxhPXt9LHU9ZS5zcGxpdCgiLiIpWzBdLGM9dSsiLSIrKGU9ZS5zcGxpdCgiLiIpWzFdKTtyZXR1cm4gaXx8KGk9bixuPXQuV2lkZ2V0KSx0LmlzQXJyYXkoaSkmJihpPXQuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQoaSkpKSx0LmV4cHJbIjoiXVtjLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdC5kYXRhKGUsYyl9LHRbdV09dFt1XXx8e30scj10W3VdW2VdLG89dFt1XVtlXT1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9jcmVhdGVXaWRnZXQpcmV0dXJuIG5ldyBvKHQsZSk7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KHQsZSl9LHQuZXh0ZW5kKG8scix7dmVyc2lvbjppLnZlcnNpb24sX3Byb3RvOnQuZXh0ZW5kKHt9LGkpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLChzPW5ldyBuKS5vcHRpb25zPXQud2lkZ2V0LmV4dGVuZCh7fSxzLm9wdGlvbnMpLHQuZWFjaChpLGZ1bmN0aW9uKGUsaSl7dC5pc0Z1bmN0aW9uKGkpP2FbZV09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIG4ucHJvdG90eXBlW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByKHQpe3JldHVybiBuLnByb3RvdHlwZVtlXS5hcHBseSh0aGlzLHQpfXJldHVybiBmdW5jdGlvbigpe3ZhciBlLG49dGhpcy5fc3VwZXIsbz10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj10LHRoaXMuX3N1cGVyQXBwbHk9cixlPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPW4sdGhpcy5fc3VwZXJBcHBseT1vLGV9fSgpOmFbZV09aX0pLG8ucHJvdG90eXBlPXQud2lkZ2V0LmV4dGVuZChzLHt3aWRnZXRFdmVudFByZWZpeDpyJiZzLndpZGdldEV2ZW50UHJlZml4fHxlfSxhLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTp1LHdpZGdldE5hbWU6ZSx3aWRnZXRGdWxsTmFtZTpjfSkscj8odC5lYWNoKHIuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKGUsbil7dmFyIGk9bi5wcm90b3R5cGU7dC53aWRnZXQoaS5uYW1lc3BhY2UrIi4iK2kud2lkZ2V0TmFtZSxvLG4uX3Byb3RvKX0pLGRlbGV0ZSByLl9jaGlsZENvbnN0cnVjdG9ycyk6bi5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSx0LndpZGdldC5icmlkZ2UoZSxvKSxvfSx0LndpZGdldC5leHRlbmQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuLHIsbz1pLmNhbGwoYXJndW1lbnRzLDEpLHM9MCxhPW8ubGVuZ3RoO3M8YTtzKyspZm9yKG4gaW4gb1tzXSlyPW9bc11bbl0sb1tzXS5oYXNPd25Qcm9wZXJ0eShuKSYmdm9pZCAwIT09ciYmKHQuaXNQbGFpbk9iamVjdChyKT9lW25dPXQuaXNQbGFpbk9iamVjdChlW25dKT90LndpZGdldC5leHRlbmQoe30sZVtuXSxyKTp0LndpZGdldC5leHRlbmQoe30scik6ZVtuXT1yKTtyZXR1cm4gZX0sdC53aWRnZXQuYnJpZGdlPWZ1bmN0aW9uKGUsbil7dmFyIHI9bi5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWV8fGU7dC5mbltlXT1mdW5jdGlvbihvKXt2YXIgcz0ic3RyaW5nIj09dHlwZW9mIG8sYT1pLmNhbGwoYXJndW1lbnRzLDEpLHU9dGhpcztyZXR1cm4gcz90aGlzLmxlbmd0aHx8Imluc3RhbmNlIiE9PW8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG4saT10LmRhdGEodGhpcyxyKTtyZXR1cm4iaW5zdGFuY2UiPT09bz8odT1pLCExKTppP3QuaXNGdW5jdGlvbihpW29dKSYmIl8iIT09by5jaGFyQXQoMCk/KG49aVtvXS5hcHBseShpLGEpKSE9PWkmJnZvaWQgMCE9PW4/KHU9biYmbi5qcXVlcnk/dS5wdXNoU3RhY2sobi5nZXQoKSk6biwhMSk6dm9pZCAwOnQuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK28rIicgZm9yICIrZSsiIHdpZGdldCBpbnN0YW5jZSIpOnQuZXJyb3IoImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIitlKyIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIitvKyInIil9KTp1PXZvaWQgMDooYS5sZW5ndGgmJihvPXQud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtvXS5jb25jYXQoYSkpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT10LmRhdGEodGhpcyxyKTtlPyhlLm9wdGlvbihvfHx7fSksZS5faW5pdCYmZS5faW5pdCgpKTp0LmRhdGEodGhpcyxyLG5ldyBuKG8sdGhpcykpfSkpLHV9fSx0LldpZGdldD1mdW5jdGlvbigpe30sdC5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzPVtdLHQuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixkZWZhdWx0RWxlbWVudDoiPGRpdj4iLG9wdGlvbnM6e2NsYXNzZXM6e30sZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oZSxpKXtpPXQoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PXQoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9dCgpLHRoaXMuaG92ZXJhYmxlPXQoKSx0aGlzLmZvY3VzYWJsZT10KCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSxpIT09dGhpcyYmKHQuZGF0YShpLHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1pJiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PXQoaS5zdHlsZT9pLm93bmVyRG9jdW1lbnQ6aS5kb2N1bWVudHx8aSksdGhpcy53aW5kb3c9dCh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz10LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxlKSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9nZXRDcmVhdGVFdmVudERhdGE6dC5ub29wLF9jcmVhdGU6dC5ub29wLF9pbml0OnQubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9kZXN0cm95KCksdC5lYWNoKHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24odCxuKXtlLl9yZW1vdmVDbGFzcyhuLHQpfSksdGhpcy5lbGVtZW50Lm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0RnVsbE5hbWUpLHRoaXMud2lkZ2V0KCkub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKSx0aGlzLmJpbmRpbmdzLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKX0sX2Rlc3Ryb3k6dC5ub29wLHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHIsbyxzPWU7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZihzPXt9LGk9ZS5zcGxpdCgiLiIpLGU9aS5zaGlmdCgpLGkubGVuZ3RoKXtmb3Iocj1zW2VdPXQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnNbZV0pLG89MDtvPGkubGVuZ3RoLTE7bysrKXJbaVtvXV09cltpW29dXXx8e30scj1yW2lbb11dO2lmKGU9aS5wb3AoKSwxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09cltlXT9udWxsOnJbZV07cltlXT1ufWVsc2V7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9uc1tlXT9udWxsOnRoaXMub3B0aW9uc1tlXTtzW2VdPW59cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMocyksdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gdCl0aGlzLl9zZXRPcHRpb24oZSx0W2VdKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiJjbGFzc2VzIj09PXQmJnRoaXMuX3NldE9wdGlvbkNsYXNzZXMoZSksdGhpcy5vcHRpb25zW3RdPWUsImRpc2FibGVkIj09PXQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKGUpLHRoaXN9LF9zZXRPcHRpb25DbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciBuLGkscjtmb3IobiBpbiBlKXI9dGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cFtuXSxlW25dIT09dGhpcy5vcHRpb25zLmNsYXNzZXNbbl0mJnImJnIubGVuZ3RoJiYoaT10KHIuZ2V0KCkpLHRoaXMuX3JlbW92ZUNsYXNzKHIsbiksaS5hZGRDbGFzcyh0aGlzLl9jbGFzc2VzKHtlbGVtZW50Omksa2V5czpuLGNsYXNzZXM6ZSxhZGQ6ITB9KSkpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy53aWRnZXQoKSx0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLG51bGwsISF0KSx0JiYodGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5ob3ZlcmFibGUsbnVsbCwidWktc3RhdGUtaG92ZXIiKSx0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmZvY3VzYWJsZSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpKX0sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX2NsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIG49W10saT10aGlzO2Z1bmN0aW9uIHIocixvKXt2YXIgcyxhO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspcz1pLmNsYXNzZXNFbGVtZW50TG9va3VwW3JbYV1dfHx0KCkscz1lLmFkZD90KHQudW5pcXVlKHMuZ2V0KCkuY29uY2F0KGUuZWxlbWVudC5nZXQoKSkpKTp0KHMubm90KGUuZWxlbWVudCkuZ2V0KCkpLGkuY2xhc3Nlc0VsZW1lbnRMb29rdXBbclthXV09cyxuLnB1c2goclthXSksbyYmZS5jbGFzc2VzW3JbYV1dJiZuLnB1c2goZS5jbGFzc2VzW3JbYV1dKX1yZXR1cm4gZT10LmV4dGVuZCh7ZWxlbWVudDp0aGlzLmVsZW1lbnQsY2xhc3Nlczp0aGlzLm9wdGlvbnMuY2xhc3Nlc3x8e319LGUpLHRoaXMuX29uKGUuZWxlbWVudCx7cmVtb3ZlOiJfdW50cmFja0NsYXNzZXNFbGVtZW50In0pLGUua2V5cyYmcihlLmtleXMubWF0Y2goL1xTKy9nKXx8W10sITApLGUuZXh0cmEmJnIoZS5leHRyYS5tYXRjaCgvXFMrL2cpfHxbXSksbi5qb2luKCIgIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LmVhY2gobi5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihpLHIpey0xIT09dC5pbkFycmF5KGUudGFyZ2V0LHIpJiYobi5jbGFzc2VzRWxlbWVudExvb2t1cFtpXT10KHIubm90KGUudGFyZ2V0KS5nZXQoKSkpfSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKHQsZSxuLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3ModCxlLG4sITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCxlLG4saSl7aT0iYm9vbGVhbiI9PXR5cGVvZiBpP2k6bjt2YXIgcj0ic3RyaW5nIj09dHlwZW9mIHR8fG51bGw9PT10LG89e2V4dHJhOnI/ZTpuLGtleXM6cj90OmUsZWxlbWVudDpyP3RoaXMuZWxlbWVudDp0LGFkZDppfTtyZXR1cm4gby5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXMobyksaSksdGhpc30sX29uOmZ1bmN0aW9uKGUsbixpKXt2YXIgcixvPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgZSYmKGk9bixuPWUsZT0hMSksaT8obj1yPXQobiksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChuKSk6KGk9bixuPXRoaXMuZWxlbWVudCxyPXRoaXMud2lkZ2V0KCkpLHQuZWFjaChpLGZ1bmN0aW9uKGkscyl7ZnVuY3Rpb24gYSgpe2lmKGV8fCEwIT09by5vcHRpb25zLmRpc2FibGVkJiYhdCh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKSlyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBzP29bc106cykuYXBwbHkobyxhcmd1bWVudHMpfSJzdHJpbmciIT10eXBlb2YgcyYmKGEuZ3VpZD1zLmd1aWQ9cy5ndWlkfHxhLmd1aWR8fHQuZ3VpZCsrKTt2YXIgdT1pLm1hdGNoKC9eKFtcdzotXSopXHMqKC4qKSQvKSxjPXVbMV0rby5ldmVudE5hbWVzcGFjZSxoPXVbMl07aD9yLm9uKGMsaCxhKTpuLm9uKGMsYSl9KX0sX29mZjpmdW5jdGlvbihlLG4pe249KG58fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsZS5vZmYobikub2ZmKG4pLHRoaXMuYmluZGluZ3M9dCh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dCh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXQodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIHQ/blt0XTp0KS5hcHBseShuLGFyZ3VtZW50cyl9LGV8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh0KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scz10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwobj10LkV2ZW50KG4pKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSxuLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbz1uLm9yaWdpbmFsRXZlbnQpZm9yKHIgaW4gbylyIGluIG58fChuW3JdPW9bcl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihuLGkpLCEodC5pc0Z1bmN0aW9uKHMpJiYhMT09PXMuYXBwbHkodGhpcy5lbGVtZW50WzBdLFtuXS5jb25jYXQoaSkpfHxuLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LHQuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24oZSxuKXt0LldpZGdldC5wcm90b3R5cGVbIl8iK2VdPWZ1bmN0aW9uKGkscixvKXt2YXIgczsic3RyaW5nIj09dHlwZW9mIHImJihyPXtlZmZlY3Q6cn0pO3ZhciBhPXI/ITA9PT1yfHwibnVtYmVyIj09dHlwZW9mIHI/bjpyLmVmZmVjdHx8bjplOyJudW1iZXIiPT10eXBlb2Yocj1yfHx7fSkmJihyPXtkdXJhdGlvbjpyfSkscz0hdC5pc0VtcHR5T2JqZWN0KHIpLHIuY29tcGxldGU9byxyLmRlbGF5JiZpLmRlbGF5KHIuZGVsYXkpLHMmJnQuZWZmZWN0cyYmdC5lZmZlY3RzLmVmZmVjdFthXT9pW2VdKHIpOmEhPT1lJiZpW2FdP2lbYV0oci5kdXJhdGlvbixyLmVhc2luZyxvKTppLnF1ZXVlKGZ1bmN0aW9uKG4pe3QodGhpcylbZV0oKSxvJiZvLmNhbGwoaVswXSksbigpfSl9fSksdC53aWRnZXR9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciBpPWZ1bmN0aW9uKHQsZSl7aWYoKG49KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBuLGk9dC5zbGljZSgwLG4pO3JldHVybltpLmxlbmd0aD4xP2lbMF0raS5zbGljZSgyKTppLCt0LnNsaWNlKG4rMSldfSxyPWZ1bmN0aW9uKHQpe3JldHVybih0PWkoTWF0aC5hYnModCkpKT90WzFdOk5hTn0sbz0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBzKHQpe3JldHVybiBuZXcgYSh0KX1mdW5jdGlvbiBhKHQpe2lmKCEoZT1vLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7dGhpcy5maWxsPWVbMV18fCIgIix0aGlzLmFsaWduPWVbMl18fCI+Iix0aGlzLnNpZ249ZVszXXx8Ii0iLHRoaXMuc3ltYm9sPWVbNF18fCIiLHRoaXMuemVybz0hIWVbNV0sdGhpcy53aWR0aD1lWzZdJiYrZVs2XSx0aGlzLmNvbW1hPSEhZVs3XSx0aGlzLnByZWNpc2lvbj1lWzhdJiYrZVs4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFlWzldLHRoaXMudHlwZT1lWzEwXXx8IiJ9cy5wcm90b3R5cGU9YS5wcm90b3R5cGUsYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsobnVsbD09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKG51bGw9PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgdSxjLGgsbCxkPWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBlLG49dC5sZW5ndGgsaT0xLHI9LTE7aTxuOysraSlzd2l0Y2godFtpXSl7Y2FzZSIuIjpyPWU9aTticmVhaztjYXNlIjAiOjA9PT1yJiYocj1pKSxlPWk7YnJlYWs7ZGVmYXVsdDppZihyPjApe2lmKCErdFtpXSlicmVhayB0O3I9MH19cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9LGY9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIHI9blswXSxvPW5bMV07cmV0dXJuIG88MD8iMC4iK25ldyBBcnJheSgtbykuam9pbigiMCIpK3I6ci5sZW5ndGg+bysxP3Iuc2xpY2UoMCxvKzEpKyIuIityLnNsaWNlKG8rMSk6cituZXcgQXJyYXkoby1yLmxlbmd0aCsyKS5qb2luKCIwIil9LHA9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYoMTAwKnQsZSl9LHI6ZixzOmZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciByPW5bMF0sbz1uWzFdLHM9by0odT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvLzMpKSkpKzEsYT1yLmxlbmd0aDtyZXR1cm4gcz09PWE/cjpzPmE/cituZXcgQXJyYXkocy1hKzEpLmpvaW4oIjAiKTpzPjA/ci5zbGljZSgwLHMpKyIuIityLnNsaWNlKHMpOiIwLiIrbmV3IEFycmF5KDEtcykuam9pbigiMCIpK2kodCxNYXRoLm1heCgwLGUrcy0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX0sbT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZz1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0sdj1mdW5jdGlvbih0KXt2YXIgZSxuLGk9dC5ncm91cGluZyYmdC50aG91c2FuZHM/KGU9dC5ncm91cGluZyxuPXQudGhvdXNhbmRzLGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciByPXQubGVuZ3RoLG89W10scz0wLGE9ZVswXSx1PTA7cj4wJiZhPjAmJih1K2ErMT5pJiYoYT1NYXRoLm1heCgxLGktdSkpLG8ucHVzaCh0LnN1YnN0cmluZyhyLT1hLHIrYSkpLCEoKHUrPWErMSk+aSkpOylhPWVbcz0ocysxKSVlLmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4obil9KTptLG89dC5jdXJyZW5jeSxhPXQuZGVjaW1hbCxjPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSl9fSh0Lm51bWVyYWxzKTptLGg9dC5wZXJjZW50fHwiJSI7ZnVuY3Rpb24gbCh0KXt2YXIgZT0odD1zKHQpKS5maWxsLG49dC5hbGlnbixyPXQuc2lnbixsPXQuc3ltYm9sLGY9dC56ZXJvLG09dC53aWR0aCx2PXQuY29tbWEsYj10LnByZWNpc2lvbix5PXQudHJpbSxfPXQudHlwZTsibiI9PT1fPyh2PSEwLF89ImciKTpwW19dfHwobnVsbD09YiYmKGI9MTIpLHk9ITAsXz0iZyIpLChmfHwiMCI9PT1lJiYiPSI9PT1uKSYmKGY9ITAsZT0iMCIsbj0iPSIpO3ZhciB3PSIkIj09PWw/b1swXToiIyI9PT1sJiYvW2JveFhdLy50ZXN0KF8pPyIwIitfLnRvTG93ZXJDYXNlKCk6IiIseD0iJCI9PT1sP29bMV06L1slcF0vLnRlc3QoXyk/aDoiIixNPXBbX10sUz0vW2RlZmdwcnMlXS8udGVzdChfKTtmdW5jdGlvbiBFKHQpe3ZhciBvLHMsaCxsPXcscD14O2lmKCJjIj09PV8pcD1NKHQpK3AsdD0iIjtlbHNle3ZhciBFPSh0PSt0KTwwO2lmKHQ9TShNYXRoLmFicyh0KSxiKSx5JiYodD1kKHQpKSxFJiYwPT0rdCYmKEU9ITEpLGw9KEU/IigiPT09cj9yOiItIjoiLSI9PT1yfHwiKCI9PT1yPyIiOnIpK2wscD0oInMiPT09Xz9nWzgrdS8zXToiIikrcCsoRSYmIigiPT09cj8iKSI6IiIpLFMpZm9yKG89LTEscz10Lmxlbmd0aDsrK288czspaWYoNDg+KGg9dC5jaGFyQ29kZUF0KG8pKXx8aD41Nyl7cD0oNDY9PT1oP2ErdC5zbGljZShvKzEpOnQuc2xpY2UobykpK3AsdD10LnNsaWNlKDAsbyk7YnJlYWt9fXYmJiFmJiYodD1pKHQsMS8wKSk7dmFyIEE9bC5sZW5ndGgrdC5sZW5ndGgrcC5sZW5ndGgsQz1BPG0/bmV3IEFycmF5KG0tQSsxKS5qb2luKGUpOiIiO3N3aXRjaCh2JiZmJiYodD1pKEMrdCxDLmxlbmd0aD9tLXAubGVuZ3RoOjEvMCksQz0iIiksbil7Y2FzZSI8Ijp0PWwrdCtwK0M7YnJlYWs7Y2FzZSI9Ijp0PWwrQyt0K3A7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxBPUMubGVuZ3RoPj4xKStsK3QrcCtDLnNsaWNlKEEpO2JyZWFrO2RlZmF1bHQ6dD1DK2wrdCtwfXJldHVybiBjKHQpfXJldHVybiBiPW51bGw9PWI/NjovW2dwcnNdLy50ZXN0KF8pP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpLEUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sRX1yZXR1cm57Zm9ybWF0OmwsZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIG49bCgoKHQ9cyh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IocihlKS8zKSkpLG89TWF0aC5wb3coMTAsLWkpLGE9Z1s4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKG8qdCkrYX19fX07ZnVuY3Rpb24gYih0KXtyZXR1cm4gYz12KHQpLGg9Yy5mb3JtYXQsbD1jLmZvcm1hdFByZWZpeCxjfWIoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7dmFyIHk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsLXIoTWF0aC5hYnModCkpKX0sXz1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIoZSkvMykpKS1yKE1hdGguYWJzKHQpKSl9LHc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxyKGUpLXIodCkpKzF9O24uZChlLCJmb3JtYXREZWZhdWx0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiBifSksbi5kKGUsImZvcm1hdCIsZnVuY3Rpb24oKXtyZXR1cm4gaH0pLG4uZChlLCJmb3JtYXRQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSxuLmQoZSwiZm9ybWF0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiB2fSksbi5kKGUsImZvcm1hdFNwZWNpZmllciIsZnVuY3Rpb24oKXtyZXR1cm4gc30pLG4uZChlLCJwcmVjaXNpb25GaXhlZCIsZnVuY3Rpb24oKXtyZXR1cm4geX0pLG4uZChlLCJwcmVjaXNpb25QcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIF99KSxuLmQoZSwicHJlY2lzaW9uUm91bmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHd9KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Zm9yKHZhciBpPW4oOCkscj1uKDMzOCksbz1uKDM2MCkscz17fSxhPTAsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKTthPHUubGVuZ3RoO2ErKyl7dmFyIGM9dVthXTsoYy5lbmRzV2l0aCgiTW9kZWwiKXx8Yy5lbmRzV2l0aCgiVmlldyIpKSYmKHNbY109aVtjXSl9Zm9yKHZhciBoPTAsbD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyKTtoPGwubGVuZ3RoO2grKyl7dmFyIGQ9bFtoXTsoZC5lbmRzV2l0aCgiTW9kZWwiKXx8ZC5lbmRzV2l0aCgiVmlldyIpKSYmKHNbZF09cltkXSl9Zm9yKHZhciBmPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvKTtmPHAubGVuZ3RoO2YrKyl7dmFyIG09cFtmXTsobS5lbmRzV2l0aCgiTW9kZWwiKXx8bS5lbmRzV2l0aCgiVmlldyIpKSYmKHNbbV09b1ttXSl9ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fSxyPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDI1KSxhPW4oNzQpLHU9YS5QUk9UT0NPTF9WRVJTSU9OLnNwbGl0KCIuIiwxKVswXSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY29tbV90YXJnZXRfbmFtZT0ianVweXRlci53aWRnZXQiLHRoaXMuX21vZGVscz1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiB0LnByb3RvdHlwZS5kaXNwbGF5X21vZGVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzO3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksdGhpcy5jcmVhdGVfdmlldyhlLG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGlzcGxheV92aWV3KHQsZSxuKX0pLmNhdGNoKHMucmVqZWN0KCJDb3VsZCBub3QgY3JlYXRlIHZpZXciLCEwKSl9LHQucHJvdG90eXBlLnNldFZpZXdPcHRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD17fSksdH0sdC5wcm90b3R5cGUuY3JlYXRlX3ZpZXc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgaT10LnN0YXRlX2NoYW5nZT10LnN0YXRlX2NoYW5nZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ubG9hZENsYXNzKHQuZ2V0KCJfdmlld19uYW1lIiksdC5nZXQoIl92aWV3X21vZHVsZSIpLHQuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpKS50aGVuKGZ1bmN0aW9uKGkpe3ZhciByPW5ldyBpKHttb2RlbDp0LG9wdGlvbnM6bi5zZXRWaWV3T3B0aW9ucyhlKX0pO3JldHVybiByLmxpc3RlblRvKHQsImRlc3Ryb3kiLHIucmVtb3ZlKSxQcm9taXNlLnJlc29sdmUoci5yZW5kZXIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiByfSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGNyZWF0ZSBhIHZpZXcgZm9yIG1vZGVsIGlkICIrdC5tb2RlbF9pZCwhMCkpfSkscj1zLnV1aWQoKTtyZXR1cm4gdC52aWV3c1tyXT1pLGkudGhlbihmdW5jdGlvbih0KXt0Lm9uY2UoInJlbW92ZSIsZnVuY3Rpb24oKXtkZWxldGUgdC5tb2RlbC52aWV3c1tyXX0sbil9KSx0LnN0YXRlX2NoYW5nZX0sdC5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybnt9fSx0LnByb3RvdHlwZS5nZXRfbW9kZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21vZGVsc1t0XX0sdC5wcm90b3R5cGUuaGFuZGxlX2NvbW1fb3Blbj1mdW5jdGlvbih0LGUpe3ZhciBuPShlLm1ldGFkYXRhfHx7fSkudmVyc2lvbnx8IiI7aWYobi5zcGxpdCgiLiIsMSlbMF0hPT11KXt2YXIgaT0iV3Jvbmcgd2lkZ2V0IHByb3RvY29sIHZlcnNpb246IHJlY2VpdmVkIHByb3RvY29sIHZlcnNpb24gJyIrbisiJywgYnV0IHdhcyBleHBlY3RpbmcgbWFqb3IgdmVyc2lvbiAnIit1KyInIjtyZXR1cm4gY29uc29sZS5lcnJvcihpKSxQcm9taXNlLnJlamVjdChpKX12YXIgcj1lLmNvbnRlbnQuZGF0YSxvPXIuYnVmZmVyX3BhdGhzfHxbXSxhPShlLmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhyLnN0YXRlLG8sYSksdGhpcy5uZXdfbW9kZWwoe21vZGVsX25hbWU6ci5zdGF0ZS5fbW9kZWxfbmFtZSxtb2RlbF9tb2R1bGU6ci5zdGF0ZS5fbW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuc3RhdGUuX21vZGVsX21vZHVsZV92ZXJzaW9uLGNvbW06dH0sci5zdGF0ZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgYSBtb2RlbC4iLCEwKSl9LHQucHJvdG90eXBlLm5ld193aWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXM7aWYodm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXQudmlld19uYW1lfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlX3ZlcnNpb24pcmV0dXJuIFByb21pc2UucmVqZWN0KCJuZXdfd2lkZ2V0KC4uLikgbXVzdCBiZSBnaXZlbiB2aWV3IGluZm9ybWF0aW9uIGluIHRoZSBvcHRpb25zLiIpO249dC5jb21tP1Byb21pc2UucmVzb2x2ZSh0LmNvbW0pOnRoaXMuX2NyZWF0ZV9jb21tKHRoaXMuY29tbV90YXJnZXRfbmFtZSx0Lm1vZGVsX2lkLHtzdGF0ZTp7X21vZGVsX21vZHVsZTp0Lm1vZGVsX21vZHVsZSxfbW9kZWxfbW9kdWxlX3ZlcnNpb246dC5tb2RlbF9tb2R1bGVfdmVyc2lvbixfbW9kZWxfbmFtZTp0Lm1vZGVsX25hbWUsX3ZpZXdfbW9kdWxlOnQudmlld19tb2R1bGUsX3ZpZXdfbW9kdWxlX3ZlcnNpb246dC52aWV3X21vZHVsZV92ZXJzaW9uLF92aWV3X25hbWU6dC52aWV3X25hbWV9fSx7dmVyc2lvbjphLlBST1RPQ09MX1ZFUlNJT059KTt2YXIgbz1pKHt9LHQpO3JldHVybiBuLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG8uY29tbT10LHIubmV3X21vZGVsKG8sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5zeW5jKCJjcmVhdGUiLHQpLHR9KX0sZnVuY3Rpb24oKXtyZXR1cm4gby5tb2RlbF9pZHx8KG8ubW9kZWxfaWQ9cy51dWlkKCkpLHIubmV3X21vZGVsKG8sZSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfbW9kZWw9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuX21vZGVsc1t0XT1lLGUudGhlbihmdW5jdGlvbihlKXtlLm9uY2UoImNvbW06Y2xvc2UiLGZ1bmN0aW9uKCl7ZGVsZXRlIG4uX21vZGVsc1t0XX0pfSl9LHQucHJvdG90eXBlLm5ld19tb2RlbD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkscih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixpO3JldHVybiBvKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDppZih0Lm1vZGVsX2lkKW49dC5tb2RlbF9pZDtlbHNle2lmKCF0LmNvbW0pdGhyb3cgbmV3IEVycm9yKCJOZWl0aGVyIGNvbW0gbm9yIG1vZGVsX2lkIHByb3ZpZGVkIGluIG9wdGlvbnMgb2JqZWN0LiBBdCBsZWFzdCBvbmUgbXVzdCBleGlzdC4iKTtuPXQubW9kZWxfaWQ9dC5jb21tLmNvbW1faWR9cmV0dXJuIGk9dGhpcy5fbWFrZV9tb2RlbCh0LGUpLHRoaXMucmVnaXN0ZXJfbW9kZWwobixpKSxbNCxpXTtjYXNlIDE6cmV0dXJuWzIsci5zZW50KCldfX0pfSl9LHQucHJvdG90eXBlLl9tYWtlX21vZGVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxyKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGkscixzLGEsdSxjO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpuPXQubW9kZWxfaWQsaT10aGlzLmxvYWRDbGFzcyh0Lm1vZGVsX25hbWUsdC5tb2RlbF9tb2R1bGUsdC5tb2RlbF9tb2R1bGVfdmVyc2lvbiksby5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gby50cnlzLnB1c2goWzEsMywsNF0pLFs0LGldO2Nhc2UgMjpyZXR1cm4gcj1vLnNlbnQoKSxbMyw0XTtjYXNlIDM6dGhyb3cgcz1vLnNlbnQoKSxjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgaW5zdGFudGlhdGUgd2lkZ2V0IikscztjYXNlIDQ6aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2RlbCBtb2R1bGUgIit0Lm1vZGVsX21vZHVsZSsiQCIrdC5tb2RlbF9tb2R1bGVfdmVyc2lvbisiLCAiK3QubW9kZWxfbmFtZSk7cmV0dXJuWzQsci5fZGVzZXJpYWxpemVfc3RhdGUoZSx0aGlzKV07Y2FzZSA1OnJldHVybiBhPW8uc2VudCgpLHU9e3dpZGdldF9tYW5hZ2VyOnRoaXMsbW9kZWxfaWQ6bixjb21tOnQuY29tbX0sKGM9bmV3IHIoYSx1KSkubmFtZT10Lm1vZGVsX25hbWUsYy5tb2R1bGU9dC5tb2RlbF9tb2R1bGUsWzIsY119fSl9KX0sdC5wcm90b3R5cGUuY2xlYXJfc3RhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0uY2xvc2UoKX0pLHQuX21vZGVscz17fX0pfSx0LnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciByPWVbaV0sbz1zLnJlbW92ZV9idWZmZXJzKHIuc2VyaWFsaXplKHIuZ2V0X3N0YXRlKHQuZHJvcF9kZWZhdWx0cykpKSxhPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTpzLmJ1ZmZlclRvQmFzZTY0KHQpLHBhdGg6by5idWZmZXJfcGF0aHNbZV0sZW5jb2Rpbmc6ImJhc2U2NCJ9fSk7bltpXT17bW9kZWxfbmFtZTpyLm5hbWUsbW9kZWxfbW9kdWxlOnIubW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSxzdGF0ZTpvLnN0YXRlfSxhLmxlbmd0aD4wJiYobltpXS5idWZmZXJzPWEpfSkse3ZlcnNpb25fbWFqb3I6Mix2ZXJzaW9uX21pbm9yOjAsc3RhdGU6bn19KX0sdC5wcm90b3R5cGUuc2V0X3N0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoISh0LnZlcnNpb25fbWFqb3ImJnQudmVyc2lvbl9tYWpvcjw9MikpdGhyb3ciVW5zdXBwb3J0ZWQgd2lkZ2V0IHN0YXRlIGZvcm1hdCI7dmFyIG49dC5zdGF0ZTtyZXR1cm4gdGhpcy5fZ2V0X2NvbW1faW5mbygpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKG4pLm1hcChmdW5jdGlvbihpKXt2YXIgcj17YmFzZTY0OnMuYmFzZTY0VG9CdWZmZXIsaGV4OnMuaGV4VG9CdWZmZXJ9LG89bltpXSxhPW8uc3RhdGU7aWYoby5idWZmZXJzKXt2YXIgdT1vLmJ1ZmZlcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGh9KSxjPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRhVmlldyhyW3QuZW5jb2RpbmddKHQuZGF0YSkpfSk7cy5wdXRfYnVmZmVycyhvLnN0YXRlLHUsYyl9aWYoZS5fbW9kZWxzW2ldKXJldHVybiBlLl9tb2RlbHNbaV0udGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUoYXx8e30sZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRfc3RhdGUoZSksdH0pfSk7dmFyIGg9e21vZGVsX2lkOmksbW9kZWxfbmFtZTpvLm1vZGVsX25hbWUsbW9kZWxfbW9kdWxlOm8ubW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOm8ubW9kZWxfbW9kdWxlX3ZlcnNpb259O3JldHVybiB0Lmhhc093blByb3BlcnR5KGkpP2UuX2NyZWF0ZV9jb21tKGUuY29tbV90YXJnZXRfbmFtZSxpKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBoLmNvbW09dCxlLm5ld19tb2RlbChoKX0pOmUubmV3X21vZGVsKGgsYSl9KSl9KX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5fbW9kZWxzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuX21vZGVsc1tlXS50aGVuKGZ1bmN0aW9uKHQpe3QuY29tbV9saXZlPSExfSl9KX0sdC5wcm90b3R5cGUucmVzb2x2ZVVybD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpfSx0fSgpO2UuTWFuYWdlckJhc2U9Y30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbnVsbD09PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIG4odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gaSh0LHIpe2lmKHQ9PT1yKXJldHVybiEwO2lmKGUodCl8fGUocikpcmV0dXJuITE7dmFyIG89bih0KSxzPW4ocik7cmV0dXJuIG89PT1zJiYobyYmcz9mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KytuKWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscik6ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4hMDtmb3IodmFyIG4gaW4gdClpZighKG4gaW4gZSkpcmV0dXJuITE7Zm9yKHZhciBuIGluIGUpaWYoIShuIGluIHQpKXJldHVybiExO2Zvcih2YXIgbiBpbiB0KWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscikpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIGUodCk/dDpuKHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLG49MCxpPXQubGVuZ3RoO248aTsrK24pZVtuXT1yKHRbbl0pO3JldHVybiBlfSh0KTpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCllW25dPXIodFtuXSk7cmV0dXJuIGV9KHQpfXQuZW1wdHlPYmplY3Q9T2JqZWN0LmZyZWV6ZSh7fSksdC5lbXB0eUFycmF5PU9iamVjdC5mcmVlemUoW10pLHQuaXNQcmltaXRpdmU9ZSx0LmlzQXJyYXk9bix0LmlzT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiFlKHQpJiYhbih0KX0sdC5kZWVwRXF1YWw9aSx0LmRlZXBDb3B5PXJ9KGUuSlNPTkV4dHx8KGUuSlNPTkV4dD17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl90eXBlcz1bXSx0aGlzLl92YWx1ZXM9W119cmV0dXJuIHQucHJvdG90eXBlLnR5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3R5cGVzLnNsaWNlKCl9LHQucHJvdG90eXBlLmhhc0RhdGE9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT10aGlzLl90eXBlcy5pbmRleE9mKHQpfSx0LnByb3RvdHlwZS5nZXREYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3R5cGVzLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lP3RoaXMuX3ZhbHVlc1tlXTp2b2lkIDB9LHQucHJvdG90eXBlLnNldERhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLmNsZWFyRGF0YSh0KSx0aGlzLl90eXBlcy5wdXNoKHQpLHRoaXMuX3ZhbHVlcy5wdXNoKGUpfSx0LnByb3RvdHlwZS5jbGVhckRhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHlwZXMuaW5kZXhPZih0KTstMSE9PWUmJih0aGlzLl90eXBlcy5zcGxpY2UoZSwxKSx0aGlzLl92YWx1ZXMuc3BsaWNlKGUsMSkpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3R5cGVzLmxlbmd0aD0wLHRoaXMuX3ZhbHVlcy5sZW5ndGg9MH0sdH0oKTtlLk1pbWVEYXRhPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dC5fcmVzb2x2ZT1lLHQuX3JlamVjdD1ufSl9cmV0dXJuIHQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCl7KDAsdGhpcy5fcmVzb2x2ZSkodCl9LHQucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXsoMCx0aGlzLl9yZWplY3QpKHQpfSx0fSgpO2UuUHJvbWlzZURlbGVnYXRlPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5yYW5kb21CeXRlcz1lLnJuZz1lLnBzZXVkb1JhbmRvbUJ5dGVzPWUucHJuZz1uKDI3KSxlLmNyZWF0ZUhhc2g9ZS5IYXNoPW4oMzEpLGUuY3JlYXRlSG1hYz1lLkhtYWM9big5MSk7dmFyIGk9bigxNjIpLHI9T2JqZWN0LmtleXMoaSksbz1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQocik7ZS5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gb307dmFyIHM9big5NCk7ZS5wYmtkZjI9cy5wYmtkZjIsZS5wYmtkZjJTeW5jPXMucGJrZGYyU3luYzt2YXIgYT1uKDE2NCk7ZS5DaXBoZXI9YS5DaXBoZXIsZS5jcmVhdGVDaXBoZXI9YS5jcmVhdGVDaXBoZXIsZS5DaXBoZXJpdj1hLkNpcGhlcml2LGUuY3JlYXRlQ2lwaGVyaXY9YS5jcmVhdGVDaXBoZXJpdixlLkRlY2lwaGVyPWEuRGVjaXBoZXIsZS5jcmVhdGVEZWNpcGhlcj1hLmNyZWF0ZURlY2lwaGVyLGUuRGVjaXBoZXJpdj1hLkRlY2lwaGVyaXYsZS5jcmVhdGVEZWNpcGhlcml2PWEuY3JlYXRlRGVjaXBoZXJpdixlLmdldENpcGhlcnM9YS5nZXRDaXBoZXJzLGUubGlzdENpcGhlcnM9YS5saXN0Q2lwaGVyczt2YXIgdT1uKDE4MSk7ZS5EaWZmaWVIZWxsbWFuR3JvdXA9dS5EaWZmaWVIZWxsbWFuR3JvdXAsZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9dS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAsZS5nZXREaWZmaWVIZWxsbWFuPXUuZ2V0RGlmZmllSGVsbG1hbixlLmNyZWF0ZURpZmZpZUhlbGxtYW49dS5jcmVhdGVEaWZmaWVIZWxsbWFuLGUuRGlmZmllSGVsbG1hbj11LkRpZmZpZUhlbGxtYW47dmFyIGM9bigxODYpO2UuY3JlYXRlU2lnbj1jLmNyZWF0ZVNpZ24sZS5TaWduPWMuU2lnbixlLmNyZWF0ZVZlcmlmeT1jLmNyZWF0ZVZlcmlmeSxlLlZlcmlmeT1jLlZlcmlmeSxlLmNyZWF0ZUVDREg9bigyMjQpO3ZhciBoPW4oMjI1KTtlLnB1YmxpY0VuY3J5cHQ9aC5wdWJsaWNFbmNyeXB0LGUucHJpdmF0ZUVuY3J5cHQ9aC5wcml2YXRlRW5jcnlwdCxlLnB1YmxpY0RlY3J5cHQ9aC5wdWJsaWNEZWNyeXB0LGUucHJpdmF0ZURlY3J5cHQ9aC5wcml2YXRlRGVjcnlwdDt2YXIgbD1uKDIyOCk7ZS5yYW5kb21GaWxsPWwucmFuZG9tRmlsbCxlLnJhbmRvbUZpbGxTeW5jPWwucmFuZG9tRmlsbFN5bmMsZS5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSxmdW5jdGlvbih0LGUpe2UucmVhZD1mdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvLHMsYT04KnItaS0xLHU9KDE8PGEpLTEsYz11Pj4xLGg9LTcsbD1uP3ItMTowLGQ9bj8tMToxLGY9dFtlK2xdO2ZvcihsKz1kLG89ZiYoMTw8LWgpLTEsZj4+PS1oLGgrPWE7aD4wO289MjU2Km8rdFtlK2xdLGwrPWQsaC09OCk7Zm9yKHM9byYoMTw8LWgpLTEsbz4+PS1oLGgrPWk7aD4wO3M9MjU2KnMrdFtlK2xdLGwrPWQsaC09OCk7aWYoMD09PW8pbz0xLWM7ZWxzZXtpZihvPT09dSlyZXR1cm4gcz9OYU46MS8wKihmPy0xOjEpO3MrPU1hdGgucG93KDIsaSksby09Y31yZXR1cm4oZj8tMToxKSpzKk1hdGgucG93KDIsby1pKX0sZS53cml0ZT1mdW5jdGlvbih0LGUsbixpLHIsbyl7dmFyIHMsYSx1LGM9OCpvLXItMSxoPSgxPDxjKS0xLGw9aD4+MSxkPTIzPT09cj9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsZj1pPzA6by0xLHA9aT8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhhPWlzTmFOKGUpPzE6MCxzPWgpOihzPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKHU9TWF0aC5wb3coMiwtcykpPDEmJihzLS0sdSo9MiksKGUrPXMrbD49MT9kL3U6ZCpNYXRoLnBvdygyLDEtbCkpKnU+PTImJihzKyssdS89MikscytsPj1oPyhhPTAscz1oKTpzK2w+PTE/KGE9KGUqdS0xKSpNYXRoLnBvdygyLHIpLHMrPWwpOihhPWUqTWF0aC5wb3coMixsLTEpKk1hdGgucG93KDIscikscz0wKSk7cj49ODt0W24rZl09MjU1JmEsZis9cCxhLz0yNTYsci09OCk7Zm9yKHM9czw8cnxhLGMrPXI7Yz4wO3RbbitmXT0yNTUmcyxmKz1wLHMvPTI1NixjLT04KTt0W24rZi1wXXw9MTI4Km19fSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEpLkJ1ZmZlcixyPW4oMTQ5KTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0KXt2YXIgZT17ZGF0YTp0LG5leHQ6bnVsbH07dGhpcy5sZW5ndGg+MD90aGlzLnRhaWwubmV4dD1lOnRoaXMuaGVhZD1lLHRoaXMudGFpbD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWUpLHRoaXMuaGVhZD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgdD10aGlzLmhlYWQuZGF0YTtyZXR1cm4gMT09PXRoaXMubGVuZ3RoP3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCx0fX0sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH0sdC5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBlPXRoaXMuaGVhZCxuPSIiK2UuZGF0YTtlPWUubmV4dDspbis9dCtlLmRhdGE7cmV0dXJuIG59LHQucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIGkuYWxsb2MoMCk7aWYoMT09PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzLmhlYWQuZGF0YTtmb3IodmFyIGUsbixyLG89aS5hbGxvY1Vuc2FmZSh0Pj4+MCkscz10aGlzLmhlYWQsYT0wO3M7KWU9cy5kYXRhLG49byxyPWEsZS5jb3B5KG4sciksYSs9cy5kYXRhLmxlbmd0aCxzPXMubmV4dDtyZXR1cm4gb30sdH0oKSxyJiZyLmluc3BlY3QmJnIuaW5zcGVjdC5jdXN0b20mJih0LmV4cG9ydHMucHJvdG90eXBlW3IuaW5zcGVjdC5jdXN0b21dPWZ1bmN0aW9uKCl7dmFyIHQ9ci5pbnNwZWN0KHtsZW5ndGg6dGhpcy5sZW5ndGh9KTtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKyIgIit0fSl9LGZ1bmN0aW9uKHQsZSl7fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHQsbil7InVzZSBzdHJpY3QiO2lmKCF0LnNldEltbWVkaWF0ZSl7dmFyIGkscixvLHMsYSx1PTEsYz17fSxoPSExLGw9dC5kb2N1bWVudCxkPU9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO2Q9ZCYmZC5zZXRUaW1lb3V0P2Q6dCwiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKHQucHJvY2Vzcyk/aT1mdW5jdGlvbih0KXtlLm5leHRUaWNrKGZ1bmN0aW9uKCl7cCh0KX0pfTohZnVuY3Rpb24oKXtpZih0LnBvc3RNZXNzYWdlJiYhdC5pbXBvcnRTY3JpcHRzKXt2YXIgZT0hMCxuPXQub25tZXNzYWdlO3JldHVybiB0Lm9ubWVzc2FnZT1mdW5jdGlvbigpe2U9ITF9LHQucG9zdE1lc3NhZ2UoIiIsIioiKSx0Lm9ubWVzc2FnZT1uLGV9fSgpP3QuTWVzc2FnZUNoYW5uZWw/KChvPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3AodC5kYXRhKX0saT1mdW5jdGlvbih0KXtvLnBvcnQyLnBvc3RNZXNzYWdlKHQpfSk6bCYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBsLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpPyhyPWwuZG9jdW1lbnRFbGVtZW50LGk9ZnVuY3Rpb24odCl7dmFyIGU9bC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3AodCksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxyLnJlbW92ZUNoaWxkKGUpLGU9bnVsbH0sci5hcHBlbmRDaGlsZChlKX0pOmk9ZnVuY3Rpb24odCl7c2V0VGltZW91dChwLDAsdCl9OihzPSJzZXRJbW1lZGlhdGUkIitNYXRoLnJhbmRvbSgpKyIkIixhPWZ1bmN0aW9uKGUpe2Uuc291cmNlPT09dCYmInN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT1lLmRhdGEuaW5kZXhPZihzKSYmcCgrZS5kYXRhLnNsaWNlKHMubGVuZ3RoKSl9LHQuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEsITEpOnQuYXR0YWNoRXZlbnQoIm9ubWVzc2FnZSIsYSksaT1mdW5jdGlvbihlKXt0LnBvc3RNZXNzYWdlKHMrZSwiKiIpfSksZC5zZXRJbW1lZGlhdGU9ZnVuY3Rpb24odCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW5ldyBGdW5jdGlvbigiIit0KSk7Zm9yKHZhciBlPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49MDtuPGUubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuKzFdO3ZhciByPXtjYWxsYmFjazp0LGFyZ3M6ZX07cmV0dXJuIGNbdV09cixpKHUpLHUrK30sZC5jbGVhckltbWVkaWF0ZT1mfWZ1bmN0aW9uIGYodCl7ZGVsZXRlIGNbdF19ZnVuY3Rpb24gcCh0KXtpZihoKXNldFRpbWVvdXQocCwwLHQpO2Vsc2V7dmFyIGU9Y1t0XTtpZihlKXtoPSEwO3RyeXshZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxsYmFjayxpPXQuYXJncztzd2l0Y2goaS5sZW5ndGgpe2Nhc2UgMDplKCk7YnJlYWs7Y2FzZSAxOmUoaVswXSk7YnJlYWs7Y2FzZSAyOmUoaVswXSxpWzFdKTticmVhaztjYXNlIDM6ZShpWzBdLGlbMV0saVsyXSk7YnJlYWs7ZGVmYXVsdDplLmFwcGx5KG4saSl9fShlKX1maW5hbGx5e2YodCksaD0hMX19fX19KCJ1bmRlZmluZWQiPT10eXBlb2Ygc2VsZj92b2lkIDA9PT10P3RoaXM6dDpzZWxmKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0KXt0cnl7aWYoIWUubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKHQpe3JldHVybiExfXZhciBuPWUubG9jYWxTdG9yYWdlW3RdO3JldHVybiBudWxsIT1uJiYidHJ1ZSI9PT1TdHJpbmcobikudG9Mb3dlckNhc2UoKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKCJub0RlcHJlY2F0aW9uIikpcmV0dXJuIHQ7dmFyIGk9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWkpe2lmKG4oInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoZSk7bigidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoZSk6Y29uc29sZS53YXJuKGUpLGk9ITB9cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1vO3ZhciBpPW4oODgpLHI9bigzMik7ZnVuY3Rpb24gbyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBvKSlyZXR1cm4gbmV3IG8odCk7aS5jYWxsKHRoaXMsdCl9ci5pbmhlcml0cz1uKDApLHIuaW5oZXJpdHMobyxpKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXtuKG51bGwsdCl9fSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjIpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oMjQpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjEpLlRyYW5zZm9ybX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDYxKS5QYXNzVGhyb3VnaH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxhPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdDw8MzB8dD4+PjJ9ZnVuY3Rpb24gaCh0LGUsbixpKXtyZXR1cm4gMD09PXQ/ZSZufH5lJmk6Mj09PXQ/ZSZufGUmaXxuJmk6ZV5uXml9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxsPTA7bDwxNjsrK2wpbltsXT10LnJlYWRJbnQzMkJFKDQqbCk7Zm9yKDtsPDgwOysrbCluW2xdPW5bbC0zXV5uW2wtOF1ebltsLTE0XV5uW2wtMTZdO2Zvcih2YXIgZD0wO2Q8ODA7KytkKXt2YXIgZj1+fihkLzIwKSxwPTB8KChlPWkpPDw1fGU+Pj4yNykraChmLHIsbyxhKSt1K25bZF0rc1tmXTt1PWEsYT1vLG89YyhyKSxyPWksaT1wfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLGE9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiB1KCl7dGhpcy5pbml0KCksdGhpcy5fdz1hLHIuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBjKHQpe3JldHVybiB0PDw1fHQ+Pj4yN31mdW5jdGlvbiBoKHQpe3JldHVybiB0PDwzMHx0Pj4+Mn1mdW5jdGlvbiBsKHQsZSxuLGkpe3JldHVybiAwPT09dD9lJm58fmUmaToyPT09dD9lJm58ZSZpfG4maTplXm5eaX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLl93LGk9MHx0aGlzLl9hLHI9MHx0aGlzLl9iLG89MHx0aGlzLl9jLGE9MHx0aGlzLl9kLHU9MHx0aGlzLl9lLGQ9MDtkPDE2OysrZCluW2RdPXQucmVhZEludDMyQkUoNCpkKTtmb3IoO2Q8ODA7KytkKW5bZF09KGU9bltkLTNdXm5bZC04XV5uW2QtMTRdXm5bZC0xNl0pPDwxfGU+Pj4zMTtmb3IodmFyIGY9MDtmPDgwOysrZil7dmFyIHA9fn4oZi8yMCksbT1jKGkpK2wocCxyLG8sYSkrdStuW2ZdK3NbcF18MDt1PWEsYT1vLG89aChyKSxyPWksaT1tfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oODkpLG89bigyOCkscz1uKDEpLkJ1ZmZlcixhPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcyw2NCw1Nil9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0zMjM4MzcxMDMyLHRoaXMuX2I9OTE0MTUwNjYzLHRoaXMuX2M9ODEyNzAyOTk5LHRoaXMuX2Q9NDE0NDkxMjY5Nyx0aGlzLl9lPTQyOTA3NzU4NTcsdGhpcy5fZj0xNzUwNjAzMDI1LHRoaXMuX2c9MTY5NDA3NjgzOSx0aGlzLl9oPTMyMDQwNzU0MjgsdGhpc30sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1zLmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gdC53cml0ZUludDMyQkUodGhpcy5fYSwwKSx0LndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUodGhpcy5fZCwxMiksdC53cml0ZUludDMyQkUodGhpcy5fZSwxNiksdC53cml0ZUludDMyQkUodGhpcy5fZiwyMCksdC53cml0ZUludDMyQkUodGhpcy5fZywyNCksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big5MCksbz1uKDI4KSxzPW4oMSkuQnVmZmVyLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcywxMjgsMTEyKX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9cy5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gZShlLG4saSl7dC53cml0ZUludDMyQkUoZSxpKSx0LndyaXRlSW50MzJCRShuLGkrNCl9cmV0dXJuIGUodGhpcy5fYWgsdGhpcy5fYWwsMCksZSh0aGlzLl9iaCx0aGlzLl9ibCw4KSxlKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxlKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxlKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxlKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSx0fSx0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDApLHI9bigxKS5CdWZmZXIsbz1uKDIxKSxzPXIuYWxsb2MoMTI4KSxhPTY0O2Z1bmN0aW9uIHUodCxlKXtvLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLHRoaXMuX2FsZz10LHRoaXMuX2tleT1lLGUubGVuZ3RoPmE/ZT10KGUpOmUubGVuZ3RoPGEmJihlPXIuY29uY2F0KFtlLHNdLGEpKTtmb3IodmFyIG49dGhpcy5faXBhZD1yLmFsbG9jVW5zYWZlKGEpLGk9dGhpcy5fb3BhZD1yLmFsbG9jVW5zYWZlKGEpLHU9MDt1PGE7dSsrKW5bdV09NTReZVt1XSxpW3VdPTkyXmVbdV07dGhpcy5faGFzaD1bbl19aSh1LG8pLHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5faGFzaC5wdXNoKHQpfSx1LnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hbGcoci5jb25jYXQodGhpcy5faGFzaCkpO3JldHVybiB0aGlzLl9hbGcoci5jb25jYXQoW3RoaXMuX29wYWQsdF0pKX0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9big5Myl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSxpKXt2YXIgcixvPW4oOTUpLHM9big5NiksYT1uKDk3KSx1PW4oMSkuQnVmZmVyLGM9ZS5jcnlwdG8mJmUuY3J5cHRvLnN1YnRsZSxoPXtzaGE6IlNIQS0xIiwic2hhLTEiOiJTSEEtMSIsc2hhMToiU0hBLTEiLHNoYTI1NjoiU0hBLTI1NiIsInNoYS0yNTYiOiJTSEEtMjU2IixzaGEzODQ6IlNIQS0zODQiLCJzaGEtMzg0IjoiU0hBLTM4NCIsInNoYS01MTIiOiJTSEEtNTEyIixzaGE1MTI6IlNIQS01MTIifSxsPVtdO2Z1bmN0aW9uIGQodCxlLG4saSxyKXtyZXR1cm4gYy5pbXBvcnRLZXkoInJhdyIsdCx7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGMuZGVyaXZlQml0cyh7bmFtZToiUEJLREYyIixzYWx0OmUsaXRlcmF0aW9uczpuLGhhc2g6e25hbWU6cn19LHQsaTw8Myl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB1LmZyb20odCl9KX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGYscCxtLGcpeyJmdW5jdGlvbiI9PXR5cGVvZiBtJiYoZz1tLG09dm9pZCAwKTt2YXIgdj1oWyhtPW18fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoIXZ8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlByb21pc2UpcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgZTt0cnl7ZT1hKHQsbixmLHAsbSl9Y2F0Y2godCl7cmV0dXJuIGcodCl9ZyhudWxsLGUpfSk7aWYobyh0LG4sZixwKSwiZnVuY3Rpb24iIT10eXBlb2YgZyl0aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpO3UuaXNCdWZmZXIodCl8fCh0PXUuZnJvbSh0LHMpKSx1LmlzQnVmZmVyKG4pfHwobj11LmZyb20obixzKSksZnVuY3Rpb24odCxlKXt0LnRoZW4oZnVuY3Rpb24odCl7aS5uZXh0VGljayhmdW5jdGlvbigpe2UobnVsbCx0KX0pfSxmdW5jdGlvbih0KXtpLm5leHRUaWNrKGZ1bmN0aW9uKCl7ZSh0KX0pfSl9KGZ1bmN0aW9uKHQpe2lmKGUucHJvY2VzcyYmIWUucHJvY2Vzcy5icm93c2VyKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKCFjfHwhYy5pbXBvcnRLZXl8fCFjLmRlcml2ZUJpdHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYodm9pZCAwIT09bFt0XSlyZXR1cm4gbFt0XTt2YXIgbj1kKHI9cnx8dS5hbGxvYyg4KSxyLDEwLDEyOCx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGxbdF09bixufSh2KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlP2QodCxuLGYscCx2KTphKHQsbixmLHAsbSl9KSxnKX19KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNjUpLHI9big2Nyksbz1uKDY4KSxzPW4oMTgwKSxhPW4oNDYpO2Z1bmN0aW9uIHUodCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlQ2lwaGVyaXYodCxlLG4pO2lmKHNbdF0pcmV0dXJuIG5ldyBpKHtrZXk6ZSxpdjpuLG1vZGU6dH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGModCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlRGVjaXBoZXJpdih0LGUsbik7aWYoc1t0XSlyZXR1cm4gbmV3IGkoe2tleTplLGl2Om4sbW9kZTp0LGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1lLmNyZWF0ZUNpcGhlcj1lLkNpcGhlcj1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYodD10LnRvTG93ZXJDYXNlKCksb1t0XSluPW9bdF0ua2V5LGk9b1t0XS5pdjtlbHNle2lmKCFzW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO249OCpzW3RdLmtleSxpPXNbdF0uaXZ9dmFyIHI9YShlLCExLG4saSk7cmV0dXJuIHUodCxyLmtleSxyLml2KX0sZS5jcmVhdGVDaXBoZXJpdj1lLkNpcGhlcml2PXUsZS5jcmVhdGVEZWNpcGhlcj1lLkRlY2lwaGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZih0PXQudG9Mb3dlckNhc2UoKSxvW3RdKW49b1t0XS5rZXksaT1vW3RdLml2O2Vsc2V7aWYoIXNbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7bj04KnNbdF0ua2V5LGk9c1t0XS5pdn12YXIgcj1hKGUsITEsbixpKTtyZXR1cm4gYyh0LHIua2V5LHIuaXYpfSxlLmNyZWF0ZURlY2lwaGVyaXY9ZS5EZWNpcGhlcml2PWMsZS5saXN0Q2lwaGVycz1lLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMocykuY29uY2F0KHIuZ2V0Q2lwaGVycygpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIxKSxyPW4oNjYpLG89bigwKSxzPW4oMSkuQnVmZmVyLGE9eyJkZXMtZWRlMy1jYmMiOnIuQ0JDLmluc3RhbnRpYXRlKHIuRURFKSwiZGVzLWVkZTMiOnIuRURFLCJkZXMtZWRlLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5FREUpLCJkZXMtZWRlIjpyLkVERSwiZGVzLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5ERVMpLCJkZXMtZWNiIjpyLkRFU307ZnVuY3Rpb24gdSh0KXtpLmNhbGwodGhpcyk7dmFyIGUsbj10Lm1vZGUudG9Mb3dlckNhc2UoKSxyPWFbbl07ZT10LmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgbz10LmtleTtzLmlzQnVmZmVyKG8pfHwobz1zLmZyb20obykpLCJkZXMtZWRlIiE9PW4mJiJkZXMtZWRlLWNiYyIhPT1ufHwobz1zLmNvbmNhdChbbyxvLnNsaWNlKDAsOCldKSk7dmFyIHU9dC5pdjtzLmlzQnVmZmVyKHUpfHwodT1zLmZyb20odSkpLHRoaXMuX2Rlcz1yLmNyZWF0ZSh7a2V5Om8saXY6dSx0eXBlOmV9KX1hLmRlcz1hWyJkZXMtY2JjIl0sYS5kZXMzPWFbImRlcy1lZGUzLWNiYyJdLHQuZXhwb3J0cz11LG8odSxpKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLnVwZGF0ZSh0KSl9LHUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybih0WzArZV08PDI0fHRbMStlXTw8MTZ8dFsyK2VdPDw4fHRbMytlXSk+Pj4wfSxlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLG4pe3RbMCtuXT1lPj4+MjQsdFsxK25dPWU+Pj4xNiYyNTUsdFsyK25dPWU+Pj44JjI1NSx0WzMrbl09MjU1JmV9LGUuaXA9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPTAsbz0wLHM9NjtzPj0wO3MtPTIpe2Zvcih2YXIgYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj4+YStzJjF9Zm9yKHM9NjtzPj0wO3MtPTIpe2ZvcihhPTE7YTw9MjU7YSs9OClvPDw9MSxvfD1lPj4+YStzJjE7Zm9yKGE9MTthPD0yNTthKz04KW88PD0xLG98PXQ+Pj5hK3MmMX1uW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnJpcD1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz0wO3M8NDtzKyspZm9yKHZhciBhPTI0O2E+PTA7YS09OClyPDw9MSxyfD1lPj4+YStzJjEscjw8PTEscnw9dD4+PmErcyYxO2ZvcihzPTQ7czw4O3MrKylmb3IoYT0yNDthPj0wO2EtPTgpbzw8PTEsb3w9ZT4+PmErcyYxLG88PD0xLG98PXQ+Pj5hK3MmMTtuW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnBjMT1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz03O3M+PTU7cy0tKXtmb3IodmFyIGE9MDthPD0yNDthKz04KXI8PD0xLHJ8PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+YStzJjE7Zm9yKHM9MTtzPD0zO3MrKyl7Zm9yKGE9MDthPD0yNDthKz04KW88PD0xLG98PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClvPDw9MSxvfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpbzw8PTEsb3w9dD4+YStzJjE7bltpKzBdPXI+Pj4wLG5baSsxXT1vPj4+MH0sZS5yMjhzaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw8ZSYyNjg0MzU0NTV8dD4+PjI4LWV9O3ZhciBpPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO2UucGMyPWZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgbz0wLHM9MCxhPWkubGVuZ3RoPj4+MSx1PTA7dTxhO3UrKylvPDw9MSxvfD10Pj4+aVt1XSYxO2Zvcih1PWE7dTxpLmxlbmd0aDt1Kyspczw8PTEsc3w9ZT4+PmlbdV0mMTtuW3IrMF09bz4+PjAsbltyKzFdPXM+Pj4wfSxlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9MCxyPTA7aT0oMSZ0KTw8NXx0Pj4+Mjc7Zm9yKHZhciBvPTIzO28+PTE1O28tPTQpaTw8PTYsaXw9dD4+Pm8mNjM7Zm9yKG89MTE7bz49MztvLT00KXJ8PXQ+Pj5vJjYzLHI8PD02O3J8PSgzMSZ0KTw8MXx0Pj4+MzEsZVtuKzBdPWk+Pj4wLGVbbisxXT1yPj4+MH07dmFyIHI9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07ZS5zdWJzdGl0dXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAsaT0wO2k8NDtpKyspe248PD00LG58PXJbNjQqaSsodD4+PjE4LTYqaSY2MyldfWZvcihpPTA7aTw0O2krKyl7bjw8PTQsbnw9clsyNTYrNjQqaSsoZT4+PjE4LTYqaSY2MyldfXJldHVybiBuPj4+MH07dmFyIG89WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO2UucGVybXV0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjxvLmxlbmd0aDtuKyspZTw8PTEsZXw9dD4+Pm9bbl0mMTtyZXR1cm4gZT4+PjB9LGUucGFkU3BsaXQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10LnRvU3RyaW5nKDIpO2kubGVuZ3RoPGU7KWk9IjAiK2k7Zm9yKHZhciByPVtdLG89MDtvPGU7bys9bilyLnB1c2goaS5zbGljZShvLG8rbikpO3JldHVybiByLmpvaW4oIiAiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCk7ZnVuY3Rpb24gcih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsdGhpcy5ibG9ja1NpemU9OCx0aGlzLl9pbml0KCksdGhpcy5idWZmZXI9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLmJ1ZmZlck9mZj0wfXQuZXhwb3J0cz1yLHIucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7fSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9bXToiZGVjcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fdXBkYXRlRGVjcnlwdCh0KTp0aGlzLl91cGRhdGVFbmNyeXB0KHQpfSxyLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZix0Lmxlbmd0aC1lKSxpPTA7aTxuO2krKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitpXT10W2UraV07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1uLG59LHIucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LGUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5ibG9ja1NpemV9LHIucHJvdG90eXBlLl91cGRhdGVFbmNyeXB0PWZ1bmN0aW9uKHQpe3ZhciBlPTAsbj0wLGk9KHRoaXMuYnVmZmVyT2ZmK3QubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKGUrPXRoaXMuX2J1ZmZlcih0LGUpLHRoaXMuYnVmZmVyT2ZmPT09dGhpcy5idWZmZXIubGVuZ3RoJiYobis9dGhpcy5fZmx1c2hCdWZmZXIocixuKSkpO2Zvcih2YXIgbz10Lmxlbmd0aC0odC5sZW5ndGgtZSkldGhpcy5ibG9ja1NpemU7ZTxvO2UrPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZSh0LGUscixuKSxuKz10aGlzLmJsb2NrU2l6ZTtmb3IoO2U8dC5sZW5ndGg7ZSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPXRbZV07cmV0dXJuIHJ9LHIucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49MCxpPU1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYrdC5sZW5ndGgpL3RoaXMuYmxvY2tTaXplKS0xLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpO2k+MDtpLS0pZSs9dGhpcy5fYnVmZmVyKHQsZSksbis9dGhpcy5fZmx1c2hCdWZmZXIocixuKTtyZXR1cm4gZSs9dGhpcy5fYnVmZmVyKHQsZSkscn0sci5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gdCYmKGU9dGhpcy51cGRhdGUodCkpLG49ImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2ZpbmFsRW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLGU/ZS5jb25jYXQobik6bn0sci5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbih0LGUpe2lmKDA9PT1lKXJldHVybiExO2Zvcig7ZTx0Lmxlbmd0aDspdFtlKytdPTA7cmV0dXJuITB9LHIucHJvdG90eXBlLl9maW5hbEVuY3J5cHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgdD1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LDApLHR9LHIucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbih0KXtyZXR1cm4gdH0sci5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdD1mdW5jdGlvbigpe2kuZXF1YWwodGhpcy5idWZmZXJPZmYsdGhpcy5ibG9ja1NpemUsIk5vdCBlbm91Z2ggZGF0YSB0byBkZWNyeXB0Iik7dmFyIHQ9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fZmx1c2hCdWZmZXIodCwwKSx0aGlzLl91bnBhZCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89big2Nikscz1vLnV0aWxzLGE9by5DaXBoZXI7ZnVuY3Rpb24gdSgpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1O3RoaXMuX2Rlc1N0YXRlPWUsdGhpcy5kZXJpdmVLZXlzKGUsdC5rZXkpfXIoYyxhKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9O3ZhciBoPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtjLnByb3RvdHlwZS5kZXJpdmVLZXlzPWZ1bmN0aW9uKHQsZSl7dC5rZXlzPW5ldyBBcnJheSgzMiksaS5lcXVhbChlLmxlbmd0aCx0aGlzLmJsb2NrU2l6ZSwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49cy5yZWFkVUludDMyQkUoZSwwKSxyPXMucmVhZFVJbnQzMkJFKGUsNCk7cy5wYzEobixyLHQudG1wLDApLG49dC50bXBbMF0scj10LnRtcFsxXTtmb3IodmFyIG89MDtvPHQua2V5cy5sZW5ndGg7bys9Mil7dmFyIGE9aFtvPj4+MV07bj1zLnIyOHNobChuLGEpLHI9cy5yMjhzaGwocixhKSxzLnBjMihuLHIsdC5rZXlzLG8pfX0sYy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9kZXNTdGF0ZSxvPXMucmVhZFVJbnQzMkJFKHQsZSksYT1zLnJlYWRVSW50MzJCRSh0LGUrNCk7cy5pcChvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLCJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9lbmNyeXB0KHIsbyxhLHIudG1wLDApOnRoaXMuX2RlY3J5cHQocixvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLHMud3JpdGVVSW50MzJCRShuLG8saSkscy53cml0ZVVJbnQzMkJFKG4sYSxpKzQpfSxjLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLWUsaT1lO2k8dC5sZW5ndGg7aSsrKXRbaV09bjtyZXR1cm4hMH0sYy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10W3QubGVuZ3RoLTFdLG49dC5sZW5ndGgtZTtuPHQubGVuZ3RoO24rKylpLmVxdWFsKHRbbl0sZSk7cmV0dXJuIHQuc2xpY2UoMCx0Lmxlbmd0aC1lKX0sYy5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89ZSxhPW4sdT0wO3U8dC5rZXlzLmxlbmd0aDt1Kz0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChhLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9YTthPShvXnMucGVybXV0ZShsKSk+Pj4wLG89ZH1zLnJpcChhLG8saSxyKX0sYy5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89bixhPWUsdT10LmtleXMubGVuZ3RoLTI7dT49MDt1LT0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChvLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9bztvPShhXnMucGVybXV0ZShsKSk+Pj4wLGE9ZH1zLnJpcChvLGEsaSxyKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89e307ZnVuY3Rpb24gcyh0KXtpLmVxdWFsKHQubGVuZ3RoLDgsIkludmFsaWQgSVYgbGVuZ3RoIiksdGhpcy5pdj1uZXcgQXJyYXkoOCk7Zm9yKHZhciBlPTA7ZTx0aGlzLml2Lmxlbmd0aDtlKyspdGhpcy5pdltlXT10W2VdfWUuaW5zdGFudGlhdGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlKSx0aGlzLl9jYmNJbml0KCl9cihlLHQpO2Zvcih2YXIgbj1PYmplY3Qua2V5cyhvKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07ZS5wcm90b3R5cGVbc109b1tzXX1yZXR1cm4gZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSxvLl9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHModGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0ZT10fSxvLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fY2JjU3RhdGUsbz10aGlzLmNvbnN0cnVjdG9yLnN1cGVyXy5wcm90b3R5cGUscz1yLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmJsb2NrU2l6ZTthKyspc1thXV49dFtlK2FdO28uX3VwZGF0ZS5jYWxsKHRoaXMscywwLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPW5baSthXX1lbHNle28uX3VwZGF0ZS5jYWxsKHRoaXMsdCxlLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKyluW2krYV1ePXNbYV07Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPXRbZSthXX19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKSxvPW4oNjYpLHM9by5DaXBoZXIsYT1vLkRFUztmdW5jdGlvbiB1KHQsZSl7aS5lcXVhbChlLmxlbmd0aCwyNCwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49ZS5zbGljZSgwLDgpLHI9ZS5zbGljZSg4LDE2KSxvPWUuc2xpY2UoMTYsMjQpO3RoaXMuY2lwaGVycz0iZW5jcnlwdCI9PT10P1thLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om59KSxhLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OnJ9KSxhLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om99KV06W2EuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6b30pLGEuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6cn0pLGEuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6bn0pXX1mdW5jdGlvbiBjKHQpe3MuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1KHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1lfXIoYyxzKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9LGMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fZWRlU3RhdGU7ci5jaXBoZXJzWzBdLl91cGRhdGUodCxlLG4saSksci5jaXBoZXJzWzFdLl91cGRhdGUobixpLG4saSksci5jaXBoZXJzWzJdLl91cGRhdGUobixpLG4saSl9LGMucHJvdG90eXBlLl9wYWQ9YS5wcm90b3R5cGUuX3BhZCxjLnByb3RvdHlwZS5fdW5wYWQ9YS5wcm90b3R5cGUuX3VucGFkfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big2OCkscj1uKDEwMSksbz1uKDEpLkJ1ZmZlcixzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGQsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PW8uZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9bigwKShoLGEpLGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUsbjt0aGlzLl9jYWNoZS5hZGQodCk7Zm9yKHZhciBpPVtdO2U9dGhpcy5fY2FjaGUuZ2V0KCk7KW49dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiBvLmNvbmNhdChpKX07dmFyIGw9by5hbGxvYygxNiwxNik7ZnVuY3Rpb24gZCgpe3RoaXMuY2FjaGU9by5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBmKHQsZSxuKXt2YXIgYT1pW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1vLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1vLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuKToiYXV0aCI9PT1hLnR5cGU/bmV3IHIoYS5tb2R1bGUsZSxuKTpuZXcgaChhLm1vZHVsZSxlLG4pfWgucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIHQ9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsdCksdGhpcy5fY2lwaGVyLnNjcnViKCksdDtpZighdC5lcXVhbHMobCkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0saC5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhdCx0aGlzfSxkLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5jYWNoZT1vLmNvbmNhdChbdGhpcy5jYWNoZSx0XSl9LGQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgdD10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHR9cmV0dXJuIG51bGx9LGQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTE2LXRoaXMuY2FjaGUubGVuZ3RoLGU9by5hbGxvY1Vuc2FmZSh0KSxuPS0xOysrbjx0OyllLndyaXRlVUludDgodCxuKTtyZXR1cm4gby5jb25jYXQoW3RoaXMuY2FjaGUsZV0pfSxlLmNyZWF0ZUNpcGhlcml2PWYsZS5jcmVhdGVDaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1pW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIHI9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBmKHQsci5rZXksci5pdil9fSxmdW5jdGlvbih0LGUpe2UuZW5jcnlwdD1mdW5jdGlvbih0LGUpe3JldHVybiB0Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKGUpfSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2lwaGVyLmRlY3J5cHRCbG9jayhlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKTtlLmVuY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKGUsdC5fcHJldik7cmV0dXJuIHQuX3ByZXY9dC5fY2lwaGVyLmVuY3J5cHRCbG9jayhuKSx0Ll9wcmV2fSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Ll9wcmV2O3QuX3ByZXY9ZTt2YXIgcj10Ll9jaXBoZXIuZGVjcnlwdEJsb2NrKGUpO3JldHVybiBpKHIsbil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDMzKTtmdW5jdGlvbiBvKHQsZSxuKXt2YXIgbz1lLmxlbmd0aCxzPXIoZSx0Ll9jYWNoZSk7cmV0dXJuIHQuX2NhY2hlPXQuX2NhY2hlLnNsaWNlKG8pLHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYsbj9lOnNdKSxzfWUuZW5jcnlwdD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByLHM9aS5hbGxvY1Vuc2FmZSgwKTtlLmxlbmd0aDspe2lmKDA9PT10Ll9jYWNoZS5sZW5ndGgmJih0Ll9jYWNoZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXY9aS5hbGxvY1Vuc2FmZSgwKSksISh0Ll9jYWNoZS5sZW5ndGg8PWUubGVuZ3RoKSl7cz1pLmNvbmNhdChbcyxvKHQsZSxuKV0pO2JyZWFrfXI9dC5fY2FjaGUubGVuZ3RoLHM9aS5jb25jYXQoW3Msbyh0LGUuc2xpY2UoMCxyKSxuKV0pLGU9ZS5zbGljZShyKX1yZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXt2YXIgcj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpWzBdXmU7cmV0dXJuIHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYuc2xpY2UoMSksaS5mcm9tKFtuP2U6cl0pXSkscn1lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXtmb3IodmFyIGkscixzPS0xLGE9MDsrK3M8ODspaT1lJjE8PDctcz8xMjg6MCxhKz0oMTI4JihyPXQuX2NpcGhlci5lbmNyeXB0QmxvY2sodC5fcHJldilbMF1eaSkpPj5zJTgsdC5fcHJldj1vKHQuX3ByZXYsbj9pOnIpO3JldHVybiBhfWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10Lmxlbmd0aCxyPS0xLG89aS5hbGxvY1Vuc2FmZSh0Lmxlbmd0aCk7Zm9yKHQ9aS5jb25jYXQoW3QsaS5mcm9tKFtlXSldKTsrK3I8bjspb1tyXT10W3JdPDwxfHRbcisxXT4+NztyZXR1cm4gb31lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24odCl7dmFyIGk9bigzMyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5fcHJldj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXZ9ZS5lbmNyeXB0PWZ1bmN0aW9uKGUsbil7Zm9yKDtlLl9jYWNoZS5sZW5ndGg8bi5sZW5ndGg7KWUuX2NhY2hlPXQuY29uY2F0KFtlLl9jYWNoZSxyKGUpXSk7dmFyIG89ZS5fY2FjaGUuc2xpY2UoMCxuLmxlbmd0aCk7cmV0dXJuIGUuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKG4ubGVuZ3RoKSxpKG4sbyl9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5hbGxvYygxNiwwKTtmdW5jdGlvbiBvKHQpe3ZhciBlPWkuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBlLndyaXRlVUludDMyQkUodFswXT4+PjAsMCksZS53cml0ZVVJbnQzMkJFKHRbMV0+Pj4wLDQpLGUud3JpdGVVSW50MzJCRSh0WzJdPj4+MCw4KSxlLndyaXRlVUludDMyQkUodFszXT4+PjAsMTIpLGV9ZnVuY3Rpb24gcyh0KXt0aGlzLmg9dCx0aGlzLnN0YXRlPWkuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1pLmFsbG9jVW5zYWZlKDApfXMucHJvdG90eXBlLmdoYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMTsrK2U8dC5sZW5ndGg7KXRoaXMuc3RhdGVbZV1ePXRbZV07dGhpcy5fbXVsdGlwbHkoKX0scy5wcm90b3R5cGUuX211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsbixpPVsodD10aGlzLmgpLnJlYWRVSW50MzJCRSgwKSx0LnJlYWRVSW50MzJCRSg0KSx0LnJlYWRVSW50MzJCRSg4KSx0LnJlYWRVSW50MzJCRSgxMildLHI9WzAsMCwwLDBdLHM9LTE7KytzPDEyODspe2ZvcigwIT0odGhpcy5zdGF0ZVt+fihzLzgpXSYxPDw3LXMlOCkmJihyWzBdXj1pWzBdLHJbMV1ePWlbMV0sclsyXV49aVsyXSxyWzNdXj1pWzNdKSxuPTAhPSgxJmlbM10pLGU9MztlPjA7ZS0tKWlbZV09aVtlXT4+PjF8KDEmaVtlLTFdKTw8MzE7aVswXT1pWzBdPj4+MSxuJiYoaVswXT1pWzBdXjIyNTw8MjQpfXRoaXMuc3RhdGU9byhyKX0scy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0aGlzLmNhY2hlPWkuY29uY2F0KFt0aGlzLmNhY2hlLHRdKTt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KWU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHRoaXMuZ2hhc2goZSl9LHMucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKGkuY29uY2F0KFt0aGlzLmNhY2hlLHJdLDE2KSksdGhpcy5naGFzaChvKFswLHQsMCxlXSkpLHRoaXMuc3RhdGV9LHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMDEpLHI9bigxKS5CdWZmZXIsbz1uKDY4KSxzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGwsdGhpcy5fbGFzdD12b2lkIDAsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PXIuZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9ZnVuY3Rpb24gbCgpe3RoaXMuY2FjaGU9ci5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBkKHQsZSxuKXt2YXIgYT1vW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1yLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuLCEwKToiYXV0aCI9PT1hLnR5cGU/bmV3IGkoYS5tb2R1bGUsZSxuLCEwKTpuZXcgaChhLm1vZHVsZSxlLG4pfW4oMCkoaCxhKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5fY2FjaGUuYWRkKHQpO2Zvcih2YXIgaT1bXTtlPXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZyk7KW49dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiByLmNvbmNhdChpKX0saC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dFsxNV07aWYoZTwxfHxlPjE2KXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGRlY3J5cHQgZGF0YSIpO3ZhciBuPS0xO2Zvcig7KytuPGU7KWlmKHRbbisoMTYtZSldIT09ZSl0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtpZigxNj09PWUpcmV0dXJuO3JldHVybiB0LnNsaWNlKDAsMTYtZSl9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLHQpKTtpZih0KXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGgucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIXQsdGhpc30sbC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3RoaXMuY2FjaGU9ci5jb25jYXQoW3RoaXMuY2FjaGUsdF0pfSxsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU7aWYodCl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGV9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGU7cmV0dXJuIG51bGx9LGwucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LGUuY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1vW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIGk9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBkKHQsaS5rZXksaS5pdil9LGUuY3JlYXRlRGVjaXBoZXJpdj1kfSxmdW5jdGlvbih0LGUpe2VbImRlcy1lY2IiXT17a2V5OjgsaXY6MH0sZVsiZGVzLWNiYyJdPWUuZGVzPXtrZXk6OCxpdjo4fSxlWyJkZXMtZWRlMy1jYmMiXT1lLmRlczM9e2tleToyNCxpdjo4fSxlWyJkZXMtZWRlMyJdPXtrZXk6MjQsaXY6MH0sZVsiZGVzLWVkZS1jYmMiXT17a2V5OjE2LGl2Ojh9LGVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTAzKSxyPW4oMTg0KSxvPW4oMTg1KTt2YXIgcz17YmluYXJ5OiEwLGhleDohMCxiYXNlNjQ6ITB9O2UuRGlmZmllSGVsbG1hbkdyb3VwPWUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPWUuZ2V0RGlmZmllSGVsbG1hbj1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdChyW2VdLnByaW1lLCJoZXgiKSxpPW5ldyB0KHJbZV0uZ2VuLCJoZXgiKTtyZXR1cm4gbmV3IG8obixpKX0sZS5jcmVhdGVEaWZmaWVIZWxsbWFuPWUuRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBlKG4scixhLHUpe3JldHVybiB0LmlzQnVmZmVyKHIpfHx2b2lkIDA9PT1zW3JdP2UobiwiYmluYXJ5IixyLGEpOihyPXJ8fCJiaW5hcnkiLHU9dXx8ImJpbmFyeSIsYT1hfHxuZXcgdChbMl0pLHQuaXNCdWZmZXIoYSl8fChhPW5ldyB0KGEsdSkpLCJudW1iZXIiPT10eXBlb2Ygbj9uZXcgbyhpKG4sYSksYSwhMCk6KHQuaXNCdWZmZXIobil8fChuPW5ldyB0KG4scikpLG5ldyBvKG4sYSwhMCkpKX19KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlKXt9LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17bW9kcDE6e2dlbjoiMDIiLHByaW1lOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmYifSxtb2RwMjp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmYifSxtb2RwNTp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNDp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE1OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE2OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNzp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxODp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDczYjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYzNmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmIn19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPW4oMykscj1uZXcobigxMDQpKSxvPW5ldyBpKDI0KSxzPW5ldyBpKDExKSxhPW5ldyBpKDEwKSx1PW5ldyBpKDMpLGM9bmV3IGkoNyksaD1uKDEwMyksbD1uKDI3KTtmdW5jdGlvbiBkKHQsbil7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLHRoaXMuX3B1Yj1uZXcgaSh0KSx0aGlzfWZ1bmN0aW9uIGYodCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fcHJpdj1uZXcgaSh0KSx0aGlzfXQuZXhwb3J0cz1tO3ZhciBwPXt9O2Z1bmN0aW9uIG0odCxlLG4pe3RoaXMuc2V0R2VuZXJhdG9yKGUpLHRoaXMuX19wcmltZT1uZXcgaSh0KSx0aGlzLl9wcmltZT1pLm1vbnQodGhpcy5fX3ByaW1lKSx0aGlzLl9wcmltZUxlbj10Lmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsbj8odGhpcy5zZXRQdWJsaWNLZXk9ZCx0aGlzLnNldFByaXZhdGVLZXk9Zik6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24gZyh0LG4pe3ZhciBpPW5ldyBlKHQudG9BcnJheSgpKTtyZXR1cm4gbj9pLnRvU3RyaW5nKG4pOml9T2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ2ZXJpZnlFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0aGlzLl9wcmltZUNvZGUmJih0aGlzLl9wcmltZUNvZGU9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnRvU3RyaW5nKCJoZXgiKSxpPVtuLHQudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYoaSBpbiBwKXJldHVybiBwW2ldO3ZhciBsLGQ9MDtpZih0LmlzRXZlbigpfHwhaC5zaW1wbGVTaWV2ZXx8IWguZmVybWF0VGVzdCh0KXx8IXIudGVzdCh0KSlyZXR1cm4gZCs9MSxkKz0iMDIiPT09bnx8IjA1Ij09PW4/ODo0LHBbaV09ZCxkO3N3aXRjaChyLnRlc3QodC5zaHJuKDEpKXx8KGQrPTIpLG4pe2Nhc2UiMDIiOnQubW9kKG8pLmNtcChzKSYmKGQrPTgpO2JyZWFrO2Nhc2UiMDUiOihsPXQubW9kKGEpKS5jbXAodSkmJmwuY21wKGMpJiYoZCs9OCk7YnJlYWs7ZGVmYXVsdDpkKz00fXJldHVybiBwW2ldPWQsZH0odGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9fSksbS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBpKGwodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxtLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKHQpe3ZhciBuPSh0PSh0PW5ldyBpKHQpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCkscj1uZXcgZShuLnRvQXJyYXkoKSksbz10aGlzLmdldFByaW1lKCk7aWYoci5sZW5ndGg8by5sZW5ndGgpe3ZhciBzPW5ldyBlKG8ubGVuZ3RoLXIubGVuZ3RoKTtzLmZpbGwoMCkscj1lLmNvbmNhdChbcyxyXSl9cmV0dXJuIHJ9LG0ucHJvdG90eXBlLmdldFB1YmxpY0tleT1mdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLl9wdWIsdCl9LG0ucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fcHJpdix0KX0sbS5wcm90b3R5cGUuZ2V0UHJpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fX3ByaW1lLHQpfSxtLnByb3RvdHlwZS5nZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fZ2VuLHQpfSxtLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fX2dlbj10LHRoaXMuX2dlbj1uZXcgaSh0KSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigzMSkscj1uKDU5KSxvPW4oMCkscz1uKDE4NyksYT1uKDIyMyksdT1uKDkzKTtmdW5jdGlvbiBjKHQpe3IuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgZT11W3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPWUuaGFzaCx0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gaCh0KXtyLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGU9dVt0XTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbmV3IGModCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbmV3IGgodCl9T2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbih0KXt1W3RdLmlkPW5ldyBlKHVbdF0uaWQsImhleCIpLHVbdC50b0xvd2VyQ2FzZSgpXT11W3RdfSksbyhjLHIuV3JpdGFibGUpLGMucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxjLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGMucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24odCxlKXt0aGlzLmVuZCgpO3ZhciBuPXRoaXMuX2hhc2guZGlnZXN0KCksaT1zKG4sdCx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiBlP2kudG9TdHJpbmcoZSk6aX0sbyhoLHIuV3JpdGFibGUpLGgucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGgucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LG4saSl7InN0cmluZyI9PXR5cGVvZiBuJiYobj1uZXcgZShuLGkpKSx0aGlzLmVuZCgpO3ZhciByPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0dXJuIGEobixyLHQsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sdC5leHBvcnRzPXtTaWduOmwsVmVyaWZ5OmQsY3JlYXRlU2lnbjpsLGNyZWF0ZVZlcmlmeTpkfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9big5MSkscj1uKDY5KSxvPW4oMTApLmVjLHM9bigzKSxhPW4oNDkpLHU9bigxMTQpO2Z1bmN0aW9uIGModCxuLHIsbyl7aWYoKHQ9bmV3IGUodC50b0FycmF5KCkpKS5sZW5ndGg8bi5ieXRlTGVuZ3RoKCkpe3ZhciBzPW5ldyBlKG4uYnl0ZUxlbmd0aCgpLXQubGVuZ3RoKTtzLmZpbGwoMCksdD1lLmNvbmNhdChbcyx0XSl9dmFyIGE9ci5sZW5ndGgsdT1mdW5jdGlvbih0LG4pe3Q9KHQ9aCh0LG4pKS5tb2Qobik7dmFyIGk9bmV3IGUodC50b0FycmF5KCkpO2lmKGkubGVuZ3RoPG4uYnl0ZUxlbmd0aCgpKXt2YXIgcj1uZXcgZShuLmJ5dGVMZW5ndGgoKS1pLmxlbmd0aCk7ci5maWxsKDApLGk9ZS5jb25jYXQoW3IsaV0pfXJldHVybiBpfShyLG4pLGM9bmV3IGUoYSk7Yy5maWxsKDEpO3ZhciBsPW5ldyBlKGEpO3JldHVybiBsLmZpbGwoMCksbD1pKG8sbCkudXBkYXRlKGMpLnVwZGF0ZShuZXcgZShbMF0pKS51cGRhdGUodCkudXBkYXRlKHUpLmRpZ2VzdCgpLGM9aShvLGwpLnVwZGF0ZShjKS5kaWdlc3QoKSx7azpsPWkobyxsKS51cGRhdGUoYykudXBkYXRlKG5ldyBlKFsxXSkpLnVwZGF0ZSh0KS51cGRhdGUodSkuZGlnZXN0KCksdjpjPWkobyxsKS51cGRhdGUoYykuZGlnZXN0KCl9fWZ1bmN0aW9uIGgodCxlKXt2YXIgbj1uZXcgcyh0KSxpPSh0Lmxlbmd0aDw8MyktZS5iaXRMZW5ndGgoKTtyZXR1cm4gaT4wJiZuLmlzaHJuKGkpLG59ZnVuY3Rpb24gbCh0LG4scil7dmFyIG8scztkb3tmb3Iobz1uZXcgZSgwKTs4Km8ubGVuZ3RoPHQuYml0TGVuZ3RoKCk7KW4udj1pKHIsbi5rKS51cGRhdGUobi52KS5kaWdlc3QoKSxvPWUuY29uY2F0KFtvLG4udl0pO3M9aChvLHQpLG4uaz1pKHIsbi5rKS51cGRhdGUobi52KS51cGRhdGUobmV3IGUoWzBdKSkuZGlnZXN0KCksbi52PWkocixuLmspLnVwZGF0ZShuLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09cy5jbXAodCkpO3JldHVybiBzfWZ1bmN0aW9uIGQodCxlLG4saSl7cmV0dXJuIHQudG9SZWQocy5tb250KG4pKS5yZWRQb3coZSkuZnJvbVJlZCgpLm1vZChpKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGksZixwKXt2YXIgbT1hKG4pO2lmKG0uY3VydmUpe2lmKCJlY2RzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIGk9dVtuLmN1cnZlLmpvaW4oIi4iKV07aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrbi5jdXJ2ZS5qb2luKCIuIikpO3ZhciByPW5ldyBvKGkpLmtleUZyb21Qcml2YXRlKG4ucHJpdmF0ZUtleSkuc2lnbih0KTtyZXR1cm4gbmV3IGUoci50b0RFUigpKX0odCxtKX1pZigiZHNhIj09PW0udHlwZSl7aWYoImRzYSIhPT1mKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LG4saSl7Zm9yKHZhciByLG89bi5wYXJhbXMucHJpdl9rZXksYT1uLnBhcmFtcy5wLHU9bi5wYXJhbXMucSxmPW4ucGFyYW1zLmcscD1uZXcgcygwKSxtPWgodCx1KS5tb2QodSksZz0hMSx2PWMobyx1LHQsaSk7ITE9PT1nOylyPWwodSx2LGkpLHA9ZChmLHIsYSx1KSwwPT09KGc9ci5pbnZtKHUpLmltdWwobS5hZGQoby5tdWwocCkpKS5tb2QodSkpLmNtcG4oMCkmJihnPSExLHA9bmV3IHMoMCkpO3JldHVybiBmdW5jdGlvbih0LG4pe3Q9dC50b0FycmF5KCksbj1uLnRvQXJyYXkoKSwxMjgmdFswXSYmKHQ9WzBdLmNvbmNhdCh0KSksMTI4Jm5bMF0mJihuPVswXS5jb25jYXQobikpO3ZhciBpPVs0OCx0Lmxlbmd0aCtuLmxlbmd0aCs0LDIsdC5sZW5ndGhdO3JldHVybiBpPWkuY29uY2F0KHQsWzIsbi5sZW5ndGhdLG4pLG5ldyBlKGkpfShwLGcpfSh0LG0saSl9aWYoInJzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7dD1lLmNvbmNhdChbcCx0XSk7Zm9yKHZhciBnPW0ubW9kdWx1cy5ieXRlTGVuZ3RoKCksdj1bMCwxXTt0Lmxlbmd0aCt2Lmxlbmd0aCsxPGc7KXYucHVzaCgyNTUpO3YucHVzaCgwKTtmb3IodmFyIGI9LTE7KytiPHQubGVuZ3RoOyl2LnB1c2godFtiXSk7cmV0dXJuIHIodixtKX0sdC5leHBvcnRzLmdldEtleT1jLHQuZXhwb3J0cy5tYWtlS2V5PWx9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9e25hbWU6ImVsbGlwdGljIix2ZXJzaW9uOiI2LjQuMSIsZGVzY3JpcHRpb246IkVDIGNyeXB0b2dyYXBoeSIsbWFpbjoibGliL2VsbGlwdGljLmpzIixmaWxlczpbImxpYiJdLHNjcmlwdHM6e2pzY3M6ImpzY3MgYmVuY2htYXJrcy8qLmpzIGxpYi8qLmpzIGxpYi8qKi8qLmpzIGxpYi8qKi8qKi8qLmpzIHRlc3QvaW5kZXguanMiLGpzaGludDoianNjcyBiZW5jaG1hcmtzLyouanMgbGliLyouanMgbGliLyoqLyouanMgbGliLyoqLyoqLyouanMgdGVzdC9pbmRleC5qcyIsbGludDoibnBtIHJ1biBqc2NzICYmIG5wbSBydW4ganNoaW50Iix1bml0OiJpc3RhbmJ1bCB0ZXN0IF9tb2NoYSAtLXJlcG9ydGVyPXNwZWMgdGVzdC9pbmRleC5qcyIsdGVzdDoibnBtIHJ1biBsaW50ICYmIG5wbSBydW4gdW5pdCIsdmVyc2lvbjoiZ3J1bnQgZGlzdCAmJiBnaXQgYWRkIGRpc3QvIn0scmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6ImdpdEBnaXRodWIuY29tOmluZHV0bnkvZWxsaXB0aWMifSxrZXl3b3JkczpbIkVDIiwiRWxsaXB0aWMiLCJjdXJ2ZSIsIkNyeXB0b2dyYXBoeSJdLGF1dGhvcjoiRmVkb3IgSW5kdXRueSA8ZmVkb3JAaW5kdXRueS5jb20+IixsaWNlbnNlOiJNSVQiLGJ1Z3M6e3VybDoiaHR0cHM6Ly9naXRodWIuY29tL2luZHV0bnkvZWxsaXB0aWMvaXNzdWVzIn0saG9tZXBhZ2U6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L2VsbGlwdGljIixkZXZEZXBlbmRlbmNpZXM6e2JyZnM6Il4xLjQuMyIsY292ZXJhbGxzOiJeMi4xMS4zIixncnVudDoiXjAuNC41IiwiZ3J1bnQtYnJvd3NlcmlmeSI6Il41LjAuMCIsImdydW50LWNsaSI6Il4xLjIuMCIsImdydW50LWNvbnRyaWItY29ubmVjdCI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItY29weSI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItdWdsaWZ5IjoiXjEuMC4xIiwiZ3J1bnQtbW9jaGEtaXN0YW5idWwiOiJeMy4wLjEiLCJncnVudC1zYXVjZWxhYnMiOiJeOC42LjIiLGlzdGFuYnVsOiJeMC40LjIiLGpzY3M6Il4yLjkuMCIsanNoaW50OiJeMi42LjAiLG1vY2hhOiJeMi4xLjAifSxkZXBlbmRlbmNpZXM6eyJibi5qcyI6Il40LjQuMCIsYnJvcmFuZDoiXjEuMC4xIiwiaGFzaC5qcyI6Il4xLjAuMCIsImhtYWMtZHJiZyI6Il4xLjAuMCIsaW5oZXJpdHM6Il4yLjAuMSIsIm1pbmltYWxpc3RpYy1hc3NlcnQiOiJeMS4wLjAiLCJtaW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzIjoiXjEuMC4wIn0sX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lbGxpcHRpYy8tL2VsbGlwdGljLTYuNC4xLnRneiIsX2ludGVncml0eToic2hhNTEyLUJzWEx6NXNxWDhPSGNzaDdDcUJNenR5WEFSbUdRM0xXUHRHakppNkRpSkhxNUMvcXZpOVAzT3Fnc3dLU0RmdGJ1OCtJb0kvUURUQW0yZkZuUTlTWlNRPT0iLF9mcm9tOiJlbGxpcHRpY0A2LjQuMSJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWUscj1uKDMpLG89bigxNCkscz1uKDEwNik7aS5hc3NlcnQ9byxpLnRvQXJyYXk9cy50b0FycmF5LGkuemVybzI9cy56ZXJvMixpLnRvSGV4PXMudG9IZXgsaS5lbmNvZGU9cy5lbmNvZGUsaS5nZXROQUY9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT0xPDxlKzEscj10LmNsb25lKCk7ci5jbXBuKDEpPj0wOyl7dmFyIG87aWYoci5pc09kZCgpKXt2YXIgcz1yLmFuZGxuKGktMSk7bz1zPihpPj4xKS0xPyhpPj4xKS1zOnMsci5pc3VibihvKX1lbHNlIG89MDtuLnB1c2gobyk7Zm9yKHZhciBhPTAhPT1yLmNtcG4oMCkmJjA9PT1yLmFuZGxuKGktMSk/ZSsxOjEsdT0xO3U8YTt1Kyspbi5wdXNoKDApO3IuaXVzaHJuKGEpfXJldHVybiBufSxpLmdldEpTRj1mdW5jdGlvbih0LGUpe3ZhciBuPVtbXSxbXV07dD10LmNsb25lKCksZT1lLmNsb25lKCk7Zm9yKHZhciBpPTAscj0wO3QuY21wbigtaSk+MHx8ZS5jbXBuKC1yKT4wOyl7dmFyIG8scyxhLHU9dC5hbmRsbigzKStpJjMsYz1lLmFuZGxuKDMpK3ImMzszPT09dSYmKHU9LTEpLDM9PT1jJiYoYz0tMSksbz0wPT0oMSZ1KT8wOjMhPShhPXQuYW5kbG4oNykraSY3KSYmNSE9PWF8fDIhPT1jP3U6LXUsblswXS5wdXNoKG8pLHM9MD09KDEmYyk/MDozIT0oYT1lLmFuZGxuKDcpK3ImNykmJjUhPT1hfHwyIT09dT9jOi1jLG5bMV0ucHVzaChzKSwyKmk9PT1vKzEmJihpPTEtaSksMipyPT09cysxJiYocj0xLXIpLHQuaXVzaHJuKDEpLGUuaXVzaHJuKDEpfXJldHVybiBufSxpLmNhY2hlZFByb3BlcnR5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0iXyIrZTt0LnByb3RvdHlwZVtlXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW2ldP3RoaXNbaV06dGhpc1tpXT1uLmNhbGwodGhpcyl9fSxpLnBhcnNlQnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2kudG9BcnJheSh0LCJoZXgiKTp0fSxpLmludEZyb21MRT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIodCwiaGV4IiwibGUiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5nZXROQUYscz1yLmdldEpTRixhPXIuYXNzZXJ0O2Z1bmN0aW9uIHUodCxlKXt0aGlzLnR5cGU9dCx0aGlzLnA9bmV3IGkoZS5wLDE2KSx0aGlzLnJlZD1lLnByaW1lP2kucmVkKGUucHJpbWUpOmkubW9udCh0aGlzLnApLHRoaXMuemVybz1uZXcgaSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IGkoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBpKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLm49ZS5uJiZuZXcgaShlLm4sMTYpLHRoaXMuZz1lLmcmJnRoaXMucG9pbnRGcm9tSlNPTihlLmcsZS5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpO3ZhciBuPXRoaXMubiYmdGhpcy5wLmRpdih0aGlzLm4pOyFufHxuLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIGModCxlKXt0aGlzLmN1cnZlPXQsdGhpcy50eXBlPWUsdGhpcy5wcmVjb21wdXRlZD1udWxsfXQuZXhwb3J0cz11LHUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sdS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSx1LnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24odCxlKXthKHQucHJlY29tcHV0ZWQpO3ZhciBuPXQuX2dldERvdWJsZXMoKSxpPW8oZSwxKSxyPSgxPDxuLnN0ZXArMSktKG4uc3RlcCUyPT0wPzI6MSk7ci89Mztmb3IodmFyIHM9W10sdT0wO3U8aS5sZW5ndGg7dSs9bi5zdGVwKXt2YXIgYz0wO2ZvcihlPXUrbi5zdGVwLTE7ZT49dTtlLS0pYz0oYzw8MSkraVtlXTtzLnB1c2goYyl9Zm9yKHZhciBoPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxsPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxkPXI7ZD4wO2QtLSl7Zm9yKHU9MDt1PHMubGVuZ3RoO3UrKyl7KGM9c1t1XSk9PT1kP2w9bC5taXhlZEFkZChuLnBvaW50c1t1XSk6Yz09PS1kJiYobD1sLm1peGVkQWRkKG4ucG9pbnRzW3VdLm5lZygpKSl9aD1oLmFkZChsKX1yZXR1cm4gaC50b1AoKX0sdS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24odCxlKXt2YXIgbj00LGk9dC5fZ2V0TkFGUG9pbnRzKG4pO249aS53bmQ7Zm9yKHZhciByPWkucG9pbnRzLHM9byhlLG4pLHU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLGM9cy5sZW5ndGgtMTtjPj0wO2MtLSl7Zm9yKGU9MDtjPj0wJiYwPT09c1tjXTtjLS0pZSsrO2lmKGM+PTAmJmUrKyx1PXUuZGJscChlKSxjPDApYnJlYWs7dmFyIGg9c1tjXTthKDAhPT1oKSx1PSJhZmZpbmUiPT09dC50eXBlP2g+MD91Lm1peGVkQWRkKHJbaC0xPj4xXSk6dS5taXhlZEFkZChyWy1oLTE+PjFdLm5lZygpKTpoPjA/dS5hZGQocltoLTE+PjFdKTp1LmFkZChyWy1oLTE+PjFdLm5lZygpKX1yZXR1cm4iYWZmaW5lIj09PXQudHlwZT91LnRvUCgpOnV9LHUucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuLGkscil7Zm9yKHZhciBhPXRoaXMuX3duYWZUMSx1PXRoaXMuX3duYWZUMixjPXRoaXMuX3duYWZUMyxoPTAsbD0wO2w8aTtsKyspe3ZhciBkPShFPWVbbF0pLl9nZXROQUZQb2ludHModCk7YVtsXT1kLnduZCx1W2xdPWQucG9pbnRzfWZvcihsPWktMTtsPj0xO2wtPTIpe3ZhciBmPWwtMSxwPWw7aWYoMT09PWFbZl0mJjE9PT1hW3BdKXt2YXIgbT1bZVtmXSxudWxsLG51bGwsZVtwXV07MD09PWVbZl0ueS5jbXAoZVtwXS55KT8obVsxXT1lW2ZdLmFkZChlW3BdKSxtWzJdPWVbZl0udG9KKCkubWl4ZWRBZGQoZVtwXS5uZWcoKSkpOjA9PT1lW2ZdLnkuY21wKGVbcF0ueS5yZWROZWcoKSk/KG1bMV09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdKSxtWzJdPWVbZl0uYWRkKGVbcF0ubmVnKCkpKToobVsxXT1lW2ZdLnRvSigpLm1peGVkQWRkKGVbcF0pLG1bMl09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdLm5lZygpKSk7dmFyIGc9Wy0zLC0xLC01LC03LDAsNyw1LDEsM10sdj1zKG5bZl0sbltwXSk7aD1NYXRoLm1heCh2WzBdLmxlbmd0aCxoKSxjW2ZdPW5ldyBBcnJheShoKSxjW3BdPW5ldyBBcnJheShoKTtmb3IodmFyIGI9MDtiPGg7YisrKXt2YXIgeT0wfHZbMF1bYl0sXz0wfHZbMV1bYl07Y1tmXVtiXT1nWzMqKHkrMSkrKF8rMSldLGNbcF1bYl09MCx1W2ZdPW19fWVsc2UgY1tmXT1vKG5bZl0sYVtmXSksY1twXT1vKG5bcF0sYVtwXSksaD1NYXRoLm1heChjW2ZdLmxlbmd0aCxoKSxoPU1hdGgubWF4KGNbcF0ubGVuZ3RoLGgpfXZhciB3PXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSx4PXRoaXMuX3duYWZUNDtmb3IobD1oO2w+PTA7bC0tKXtmb3IodmFyIE09MDtsPj0wOyl7dmFyIFM9ITA7Zm9yKGI9MDtiPGk7YisrKXhbYl09MHxjW2JdW2xdLDAhPT14W2JdJiYoUz0hMSk7aWYoIVMpYnJlYWs7TSsrLGwtLX1pZihsPj0wJiZNKyssdz13LmRibHAoTSksbDwwKWJyZWFrO2ZvcihiPTA7YjxpO2IrKyl7dmFyIEUsQT14W2JdOzAhPT1BJiYoQT4wP0U9dVtiXVtBLTE+PjFdOkE8MCYmKEU9dVtiXVstQS0xPj4xXS5uZWcoKSksdz0iYWZmaW5lIj09PUUudHlwZT93Lm1peGVkQWRkKEUpOncuYWRkKEUpKX19Zm9yKGw9MDtsPGk7bCsrKXVbbF09bnVsbDtyZXR1cm4gcj93OncudG9QKCl9LHUuQmFzZVBvaW50PWMsYy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3Q9ci50b0FycmF5KHQsZSk7dmFyIG49dGhpcy5wLmJ5dGVMZW5ndGgoKTtpZigoND09PXRbMF18fDY9PT10WzBdfHw3PT09dFswXSkmJnQubGVuZ3RoLTE9PTIqbilyZXR1cm4gNj09PXRbMF0/YSh0W3QubGVuZ3RoLTFdJTI9PTApOjc9PT10WzBdJiZhKHRbdC5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludCh0LnNsaWNlKDEsMStuKSx0LnNsaWNlKDErbiwxKzIqbikpO2lmKCgyPT09dFswXXx8Mz09PXRbMF0pJiZ0Lmxlbmd0aC0xPT09bilyZXR1cm4gdGhpcy5wb2ludEZyb21YKHQuc2xpY2UoMSwxK24pLDM9PT10WzBdKTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcG9pbnQgZm9ybWF0Iil9LGMucHJvdG90eXBlLmVuY29kZUNvbXByZXNzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZW5jb2RlKHQsITApfSxjLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCksbj10aGlzLmdldFgoKS50b0FycmF5KCJiZSIsZSk7cmV0dXJuIHQ/W3RoaXMuZ2V0WSgpLmlzRXZlbigpPzI6M10uY29uY2F0KG4pOls0XS5jb25jYXQobix0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsZSkpfSxjLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5lbmNvZGUodGhpcy5fZW5jb2RlKGUpLHQpfSxjLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIHRoaXM7dmFyIGU9e2RvdWJsZXM6bnVsbCxuYWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBlLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksZS5kb3VibGVzPXRoaXMuX2dldERvdWJsZXMoNCx0KSxlLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9ZSx0aGlzfSxjLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbih0KXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgZT10aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7cmV0dXJuISFlJiZlLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgodC5iaXRMZW5ndGgoKSsxKS9lLnN0ZXApfSxjLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlvbih0LGUpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgbj1bdGhpc10saT10aGlzLHI9MDtyPGU7cis9dCl7Zm9yKHZhciBvPTA7bzx0O28rKylpPWkuZGJsKCk7bi5wdXNoKGkpfXJldHVybntzdGVwOnQscG9pbnRzOm59fSxjLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQubmFmKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtmb3IodmFyIGU9W3RoaXNdLG49KDE8PHQpLTEsaT0xPT09bj9udWxsOnRoaXMuZGJsKCkscj0xO3I8bjtyKyspZVtyXT1lW3ItMV0uYWRkKGkpO3JldHVybnt3bmQ6dCxwb2ludHM6ZX19LGMucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGMucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsbj0wO248dDtuKyspZT1lLmRibCgpO3JldHVybiBlfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQ4KSxyPW4oMTApLG89bigzKSxzPW4oMCksYT1pLmJhc2UsdT1yLnV0aWxzLmFzc2VydDtmdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLCJzaG9ydCIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgbyh0LmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKHQpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIGgodCxlLG4saSl7YS5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsImFmZmluZSIpLG51bGw9PT1lJiZudWxsPT09bj8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhpcy5pbmY9ITApOih0aGlzLng9bmV3IG8oZSwxNiksdGhpcy55PW5ldyBvKG4sMTYpLGkmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9ZnVuY3Rpb24gbCh0LGUsbixpKXthLkJhc2VQb2ludC5jYWxsKHRoaXMsdCwiamFjb2JpYW4iKSxudWxsPT09ZSYmbnVsbD09PW4mJm51bGw9PT1pPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgbygwKSk6KHRoaXMueD1uZXcgbyhlLDE2KSx0aGlzLnk9bmV3IG8obiwxNiksdGhpcy56PW5ldyBvKGksMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24odCl7aWYodGhpcy56ZXJvQSYmdGhpcy5nJiZ0aGlzLm4mJjE9PT10aGlzLnAubW9kbigzKSl7dmFyIGUsbjtpZih0LmJldGEpZT1uZXcgbyh0LmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKTtlbHNle3ZhciBpPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO2U9KGU9aVswXS5jbXAoaVsxXSk8MD9pWzBdOmlbMV0pLnRvUmVkKHRoaXMucmVkKX1pZih0LmxhbWJkYSluPW5ldyBvKHQubGFtYmRhLDE2KTtlbHNle3ZhciByPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKHJbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChlKSk/bj1yWzBdOihuPXJbMV0sdSgwPT09dGhpcy5nLm11bChuKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoZSkpKSl9cmV0dXJue2JldGE6ZSxsYW1iZGE6bixiYXNpczp0LmJhc2lzP3QuYmFzaXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybnthOm5ldyBvKHQuYSwxNiksYjpuZXcgbyh0LmIsMTYpfX0pOnRoaXMuX2dldEVuZG9CYXNpcyhuKX19fSxjLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ9PT10aGlzLnA/dGhpcy5yZWQ6by5tb250KHQpLG49bmV3IG8oMikudG9SZWQoZSkucmVkSW52bSgpLGk9bi5yZWROZWcoKSxyPW5ldyBvKDMpLnRvUmVkKGUpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwobik7cmV0dXJuW2kucmVkQWRkKHIpLmZyb21SZWQoKSxpLnJlZFN1YihyKS5mcm9tUmVkKCldfSxjLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuLGkscixzLGEsdSxjLGgsbD10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLGQ9dCxmPXRoaXMubi5jbG9uZSgpLHA9bmV3IG8oMSksbT1uZXcgbygwKSxnPW5ldyBvKDApLHY9bmV3IG8oMSksYj0wOzAhPT1kLmNtcG4oMCk7KXt2YXIgeT1mLmRpdihkKTtjPWYuc3ViKHkubXVsKGQpKSxoPWcuc3ViKHkubXVsKHApKTt2YXIgXz12LnN1Yih5Lm11bChtKSk7aWYoIWkmJmMuY21wKGwpPDApZT11Lm5lZygpLG49cCxpPWMubmVnKCkscj1oO2Vsc2UgaWYoaSYmMj09KytiKWJyZWFrO3U9YyxmPWQsZD1jLGc9cCxwPWgsdj1tLG09X31zPWMubmVnKCksYT1oO3ZhciB3PWkuc3FyKCkuYWRkKHIuc3FyKCkpO3JldHVybiBzLnNxcigpLmFkZChhLnNxcigpKS5jbXAodyk+PTAmJihzPWUsYT1uKSxpLm5lZ2F0aXZlJiYoaT1pLm5lZygpLHI9ci5uZWcoKSkscy5uZWdhdGl2ZSYmKHM9cy5uZWcoKSxhPWEubmVnKCkpLFt7YTppLGI6cn0se2E6cyxiOmF9XX0sYy5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVuZG8uYmFzaXMsbj1lWzBdLGk9ZVsxXSxyPWkuYi5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxvPW4uYi5uZWcoKS5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxzPXIubXVsKG4uYSksYT1vLm11bChpLmEpLHU9ci5tdWwobi5iKSxjPW8ubXVsKGkuYik7cmV0dXJue2sxOnQuc3ViKHMpLnN1YihhKSxrMjp1LmFkZChjKS5uZWcoKX19LGMucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24odCxlKXsodD1uZXcgbyh0LDE2KSkucmVkfHwodD10LnRvUmVkKHRoaXMucmVkKSk7dmFyIG49dC5yZWRTcXIoKS5yZWRNdWwodCkucmVkSUFkZCh0LnJlZE11bCh0aGlzLmEpKS5yZWRJQWRkKHRoaXMuYiksaT1uLnJlZFNxcnQoKTtpZigwIT09aS5yZWRTcXIoKS5yZWRTdWIobikuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIHI9aS5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oZSYmIXJ8fCFlJiZyKSYmKGk9aS5yZWROZWcoKSksdGhpcy5wb2ludCh0LGkpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmluZilyZXR1cm4hMDt2YXIgZT10Lngsbj10LnksaT10aGlzLmEucmVkTXVsKGUpLHI9ZS5yZWRTcXIoKS5yZWRNdWwoZSkucmVkSUFkZChpKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1uLnJlZFNxcigpLnJlZElTdWIocikuY21wbigwKX0sYy5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9dGhpcy5fZW5kb1duYWZUMSxyPXRoaXMuX2VuZG9XbmFmVDIsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10aGlzLl9lbmRvU3BsaXQoZVtvXSksYT10W29dLHU9YS5fZ2V0QmV0YSgpO3MuazEubmVnYXRpdmUmJihzLmsxLmluZWcoKSxhPWEubmVnKCEwKSkscy5rMi5uZWdhdGl2ZSYmKHMuazIuaW5lZygpLHU9dS5uZWcoITApKSxpWzIqb109YSxpWzIqbysxXT11LHJbMipvXT1zLmsxLHJbMipvKzFdPXMuazJ9Zm9yKHZhciBjPXRoaXMuX3duYWZNdWxBZGQoMSxpLHIsMipvLG4pLGg9MDtoPDIqbztoKyspaVtoXT1udWxsLHJbaF09bnVsbDtyZXR1cm4gY30scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBoKHRoaXMsdCxlLG4pfSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGguZnJvbUpTT04odGhpcyx0LGUpfSxoLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5kbyl7dmFyIHQ9dGhpcy5wcmVjb21wdXRlZDtpZih0JiZ0LmJldGEpcmV0dXJuIHQuYmV0YTt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYodCl7dmFyIG49dGhpcy5jdXJ2ZSxpPWZ1bmN0aW9uKHQpe3JldHVybiBuLnBvaW50KHQueC5yZWRNdWwobi5lbmRvLmJldGEpLHQueSl9O3QuYmV0YT1lLGUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6dC5uYWYmJnt3bmQ6dC5uYWYud25kLHBvaW50czp0Lm5hZi5wb2ludHMubWFwKGkpfSxkb3VibGVzOnQuZG91YmxlcyYme3N0ZXA6dC5kb3VibGVzLnN0ZXAscG9pbnRzOnQuZG91Ymxlcy5wb2ludHMubWFwKGkpfX19cmV0dXJuIGV9fSxoLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIGUmJihlPUpTT04ucGFyc2UoZSkpO3ZhciBpPXQucG9pbnQoZVswXSxlWzFdLG4pO2lmKCFlWzJdKXJldHVybiBpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQucG9pbnQoZVswXSxlWzFdLG4pfXZhciBvPWVbMl07cmV0dXJuIGkucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOm8uZG91YmxlcyYme3N0ZXA6by5kb3VibGVzLnN0ZXAscG9pbnRzOltpXS5jb25jYXQoby5kb3VibGVzLnBvaW50cy5tYXAocikpfSxuYWY6by5uYWYmJnt3bmQ6by5uYWYud25kLHBvaW50czpbaV0uY29uY2F0KG8ubmFmLnBvaW50cy5tYXAocikpfX0saX0saC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxoLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7aWYodGhpcy5pbmYpcmV0dXJuIHQ7aWYodC5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcSh0KSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKHQpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAodC54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBlPXRoaXMueS5yZWRTdWIodC55KTswIT09ZS5jbXBuKDApJiYoZT1lLnJlZE11bCh0aGlzLngucmVkU3ViKHQueCkucmVkSW52bSgpKSk7dmFyIG49ZS5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1Yih0LngpLGk9ZS5yZWRNdWwodGhpcy54LnJlZFN1YihuKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGgucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciB0PXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09dC5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGU9dGhpcy5jdXJ2ZS5hLG49dGhpcy54LnJlZFNxcigpLGk9dC5yZWRJbnZtKCkscj1uLnJlZEFkZChuKS5yZWRJQWRkKG4pLnJlZElBZGQoZSkucmVkTXVsKGkpLG89ci5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSkscz1yLnJlZE11bCh0aGlzLngucmVkU3ViKG8pKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQobyxzKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9LGgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uZXcgbyh0LDE2KSx0aGlzLl9oYXNEb3VibGVzKHQpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsdCk6dGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKFt0aGlzXSxbdF0pOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyx0KX0saC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIpfSxoLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIsITApfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fHRoaXMuaW5mPT09dC5pbmYmJih0aGlzLmluZnx8MD09PXRoaXMueC5jbXAodC54KSYmMD09PXRoaXMueS5jbXAodC55KSl9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCkpO2lmKHQmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciBuPXRoaXMucHJlY29tcHV0ZWQsaT1mdW5jdGlvbih0KXtyZXR1cm4gdC5uZWcoKX07ZS5wcmVjb21wdXRlZD17bmFmOm4ubmFmJiZ7d25kOm4ubmFmLnduZCxwb2ludHM6bi5uYWYucG9pbnRzLm1hcChpKX0sZG91YmxlczpuLmRvdWJsZXMmJntzdGVwOm4uZG91Ymxlcy5zdGVwLHBvaW50czpuLmRvdWJsZXMucG9pbnRzLm1hcChpKX19fXJldHVybiBlfSxoLnByb3RvdHlwZS50b0o9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmY/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpfSxzKGwsYS5CYXNlUG9pbnQpLGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBsKHRoaXMsdCxlLG4pfSxsLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciB0PXRoaXMuei5yZWRJbnZtKCksZT10LnJlZFNxcigpLG49dGhpcy54LnJlZE11bChlKSxpPXRoaXMueS5yZWRNdWwoZSkucmVkTXVsKHQpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGwucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LGwucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdDtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgZT10LnoucmVkU3FyKCksbj10aGlzLnoucmVkU3FyKCksaT10aGlzLngucmVkTXVsKGUpLHI9dC54LnJlZE11bChuKSxvPXRoaXMueS5yZWRNdWwoZS5yZWRNdWwodC56KSkscz10LnkucmVkTXVsKG4ucmVkTXVsKHRoaXMueikpLGE9aS5yZWRTdWIociksdT1vLnJlZFN1YihzKTtpZigwPT09YS5jbXBuKDApKXJldHVybiAwIT09dS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBjPWEucmVkU3FyKCksaD1jLnJlZE11bChhKSxsPWkucmVkTXVsKGMpLGQ9dS5yZWRTcXIoKS5yZWRJQWRkKGgpLnJlZElTdWIobCkucmVkSVN1YihsKSxmPXUucmVkTXVsKGwucmVkSVN1YihkKSkucmVkSVN1YihvLnJlZE11bChoKSkscD10aGlzLnoucmVkTXVsKHQueikucmVkTXVsKGEpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChkLGYscCl9LGwucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0LnRvSigpO2lmKHQuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXRoaXMueCxpPXQueC5yZWRNdWwoZSkscj10aGlzLnksbz10LnkucmVkTXVsKGUpLnJlZE11bCh0aGlzLnopLHM9bi5yZWRTdWIoaSksYT1yLnJlZFN1YihvKTtpZigwPT09cy5jbXBuKDApKXJldHVybiAwIT09YS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciB1PXMucmVkU3FyKCksYz11LnJlZE11bChzKSxoPW4ucmVkTXVsKHUpLGw9YS5yZWRTcXIoKS5yZWRJQWRkKGMpLnJlZElTdWIoaCkucmVkSVN1YihoKSxkPWEucmVkTXVsKGgucmVkSVN1YihsKSkucmVkSVN1YihyLnJlZE11bChjKSksZj10aGlzLnoucmVkTXVsKHMpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChsLGQsZil9LGwucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe2Zvcih2YXIgZT10aGlzLG49MDtuPHQ7bisrKWU9ZS5kYmwoKTtyZXR1cm4gZX12YXIgaT10aGlzLmN1cnZlLmEscj10aGlzLmN1cnZlLnRpbnYsbz10aGlzLngscz10aGlzLnksYT10aGlzLnosdT1hLnJlZFNxcigpLnJlZFNxcigpLGM9cy5yZWRBZGQocyk7Zm9yKG49MDtuPHQ7bisrKXt2YXIgaD1vLnJlZFNxcigpLGw9Yy5yZWRTcXIoKSxkPWwucmVkU3FyKCksZj1oLnJlZEFkZChoKS5yZWRJQWRkKGgpLnJlZElBZGQoaS5yZWRNdWwodSkpLHA9by5yZWRNdWwobCksbT1mLnJlZFNxcigpLnJlZElTdWIocC5yZWRBZGQocCkpLGc9cC5yZWRJU3ViKG0pLHY9Zi5yZWRNdWwoZyk7dj12LnJlZElBZGQodikucmVkSVN1YihkKTt2YXIgYj1jLnJlZE11bChhKTtuKzE8dCYmKHU9dS5yZWRNdWwoZCkpLG89bSxhPWIsYz12fXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChvLGMucmVkTXVsKHIpLGEpfSxsLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxsLnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbigpe3ZhciB0LGUsbjtpZih0aGlzLnpPbmUpe3ZhciBpPXRoaXMueC5yZWRTcXIoKSxyPXRoaXMueS5yZWRTcXIoKSxvPXIucmVkU3FyKCkscz10aGlzLngucmVkQWRkKHIpLnJlZFNxcigpLnJlZElTdWIoaSkucmVkSVN1YihvKTtzPXMucmVkSUFkZChzKTt2YXIgYT1pLnJlZEFkZChpKS5yZWRJQWRkKGkpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyksYz1vLnJlZElBZGQobyk7Yz0oYz1jLnJlZElBZGQoYykpLnJlZElBZGQoYyksdD11LGU9YS5yZWRNdWwocy5yZWRJU3ViKHUpKS5yZWRJU3ViKGMpLG49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGg9dGhpcy54LnJlZFNxcigpLGw9dGhpcy55LnJlZFNxcigpLGQ9bC5yZWRTcXIoKSxmPXRoaXMueC5yZWRBZGQobCkucmVkU3FyKCkucmVkSVN1YihoKS5yZWRJU3ViKGQpO2Y9Zi5yZWRJQWRkKGYpO3ZhciBwPWgucmVkQWRkKGgpLnJlZElBZGQoaCksbT1wLnJlZFNxcigpLGc9ZC5yZWRJQWRkKGQpO2c9KGc9Zy5yZWRJQWRkKGcpKS5yZWRJQWRkKGcpLHQ9bS5yZWRJU3ViKGYpLnJlZElTdWIoZiksZT1wLnJlZE11bChmLnJlZElTdWIodCkpLnJlZElTdWIoZyksbj0obj10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQobil9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX3RocmVlRGJsPWZ1bmN0aW9uKCl7dmFyIHQsZSxuO2lmKHRoaXMuek9uZSl7dmFyIGk9dGhpcy54LnJlZFNxcigpLHI9dGhpcy55LnJlZFNxcigpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQocikucmVkU3FyKCkucmVkSVN1YihpKS5yZWRJU3ViKG8pO3M9cy5yZWRJQWRkKHMpO3ZhciBhPWkucmVkQWRkKGkpLnJlZElBZGQoaSkucmVkSUFkZCh0aGlzLmN1cnZlLmEpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7dD11O3ZhciBjPW8ucmVkSUFkZChvKTtjPShjPWMucmVkSUFkZChjKSkucmVkSUFkZChjKSxlPWEucmVkTXVsKHMucmVkSVN1Yih1KSkucmVkSVN1YihjKSxuPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBoPXRoaXMuei5yZWRTcXIoKSxsPXRoaXMueS5yZWRTcXIoKSxkPXRoaXMueC5yZWRNdWwobCksZj10aGlzLngucmVkU3ViKGgpLnJlZE11bCh0aGlzLngucmVkQWRkKGgpKTtmPWYucmVkQWRkKGYpLnJlZElBZGQoZik7dmFyIHA9ZC5yZWRJQWRkKGQpLG09KHA9cC5yZWRJQWRkKHApKS5yZWRBZGQocCk7dD1mLnJlZFNxcigpLnJlZElTdWIobSksbj10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihsKS5yZWRJU3ViKGgpO3ZhciBnPWwucmVkU3FyKCk7Zz0oZz0oZz1nLnJlZElBZGQoZykpLnJlZElBZGQoZykpLnJlZElBZGQoZyksZT1mLnJlZE11bChwLnJlZElTdWIodCkpLnJlZElTdWIoZyl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY3VydmUuYSxlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPWkucmVkU3FyKCkucmVkU3FyKCksbz1lLnJlZFNxcigpLHM9bi5yZWRTcXIoKSxhPW8ucmVkQWRkKG8pLnJlZElBZGQobykucmVkSUFkZCh0LnJlZE11bChyKSksdT1lLnJlZEFkZChlKSxjPSh1PXUucmVkSUFkZCh1KSkucmVkTXVsKHMpLGg9YS5yZWRTcXIoKS5yZWRJU3ViKGMucmVkQWRkKGMpKSxsPWMucmVkSVN1YihoKSxkPXMucmVkU3FyKCk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9YS5yZWRNdWwobCkucmVkSVN1YihkKSxwPW4ucmVkQWRkKG4pLnJlZE11bChpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaCxmLHApfSxsLnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJsKCkuYWRkKHRoaXMpO3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKSxpPWUucmVkU3FyKCkscj10LnJlZEFkZCh0KS5yZWRJQWRkKHQpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQoZSkucmVkU3FyKCkucmVkSVN1Yih0KS5yZWRJU3ViKGkpLGE9KHM9KHM9KHM9cy5yZWRJQWRkKHMpKS5yZWRBZGQocykucmVkSUFkZChzKSkucmVkSVN1YihvKSkucmVkU3FyKCksdT1pLnJlZElBZGQoaSk7dT0odT0odT11LnJlZElBZGQodSkpLnJlZElBZGQodSkpLnJlZElBZGQodSk7dmFyIGM9ci5yZWRJQWRkKHMpLnJlZFNxcigpLnJlZElTdWIobykucmVkSVN1YihhKS5yZWRJU3ViKHUpLGg9ZS5yZWRNdWwoYyk7aD0oaD1oLnJlZElBZGQoaCkpLnJlZElBZGQoaCk7dmFyIGw9dGhpcy54LnJlZE11bChhKS5yZWRJU3ViKGgpO2w9KGw9bC5yZWRJQWRkKGwpKS5yZWRJQWRkKGwpO3ZhciBkPXRoaXMueS5yZWRNdWwoYy5yZWRNdWwodS5yZWRJU3ViKGMpKS5yZWRJU3ViKHMucmVkTXVsKGEpKSk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9dGhpcy56LnJlZEFkZChzKS5yZWRTcXIoKS5yZWRJU3ViKG4pLnJlZElTdWIoYSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGwsZCxmKX0sbC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bmV3IG8odCxlKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGwucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe2lmKCJhZmZpbmUiPT09dC50eXBlKXJldHVybiB0aGlzLmVxKHQudG9KKCkpO2lmKHRoaXM9PT10KXJldHVybiEwO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChuKS5yZWRJU3ViKHQueC5yZWRNdWwoZSkpLmNtcG4oMCkpcmV0dXJuITE7dmFyIGk9ZS5yZWRNdWwodGhpcy56KSxyPW4ucmVkTXVsKHQueik7cmV0dXJuIDA9PT10aGlzLnkucmVkTXVsKHIpLnJlZElTdWIodC55LnJlZE11bChpKSkuY21wbigwKX0sbC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChlKTtpZigwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMDtmb3IodmFyIGk9dC5jbG9uZSgpLHI9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bChlKTs7KXtpZihpLmlhZGQodGhpcy5jdXJ2ZS5uKSxpLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKG4ucmVkSUFkZChyKSwwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMH19LGwucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBKUG9pbnQgSW5maW5pdHk+IjoiPEVDIEpQb2ludCB4OiAiK3RoaXMueC50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnoudG9TdHJpbmcoMTYsMikrIj4ifSxsLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0OCkscj1uKDMpLG89bigwKSxzPWkuYmFzZSxhPW4oMTApLnV0aWxzO2Z1bmN0aW9uIHUodCl7cy5jYWxsKHRoaXMsIm1vbnQiLHQpLHRoaXMuYT1uZXcgcih0LmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IHIodC5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgcig0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyByKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gYyh0LGUsbil7cy5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsInByb2plY3RpdmUiKSxudWxsPT09ZSYmbnVsbD09PW4/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvKToodGhpcy54PW5ldyByKGUsMTYpLHRoaXMuej1uZXcgcihuLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfW8odSxzKSx0LmV4cG9ydHM9dSx1LnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10Lm5vcm1hbGl6ZSgpLngsbj1lLnJlZFNxcigpLGk9bi5yZWRNdWwoZSkucmVkQWRkKG4ucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChlKTtyZXR1cm4gMD09PWkucmVkU3FydCgpLnJlZFNxcigpLmNtcChpKX0sbyhjLHMuQmFzZVBvaW50KSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnBvaW50KGEudG9BcnJheSh0LGUpLDEpfSx1LnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgYyh0aGlzLHQsZSl9LHUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbUpTT04odGhpcyx0KX0sYy5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sYy5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LGMuZnJvbUpTT049ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGModCxlWzBdLGVbMV18fHQub25lKX0sYy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxjLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sYy5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLGU9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLG49dC5yZWRTdWIoZSksaT10LnJlZE11bChlKSxyPW4ucmVkTXVsKGUucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChuKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGkscil9LGMucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLngucmVkQWRkKHRoaXMueiksaT10aGlzLngucmVkU3ViKHRoaXMueikscj10LngucmVkQWRkKHQueiksbz10LngucmVkU3ViKHQueikucmVkTXVsKG4pLHM9ci5yZWRNdWwoaSksYT1lLnoucmVkTXVsKG8ucmVkQWRkKHMpLnJlZFNxcigpKSx1PWUueC5yZWRNdWwoby5yZWRJU3ViKHMpLnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChhLHUpfSxjLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY2xvbmUoKSxuPXRoaXMsaT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCkscj1bXTswIT09ZS5jbXBuKDApO2UuaXVzaHJuKDEpKXIucHVzaChlLmFuZGxuKDEpKTtmb3IodmFyIG89ci5sZW5ndGgtMTtvPj0wO28tLSkwPT09cltvXT8obj1uLmRpZmZBZGQoaSx0aGlzKSxpPWkuZGJsKCkpOihpPW4uZGlmZkFkZChpLHRoaXMpLG49bi5kYmwoKSk7cmV0dXJuIGl9LGMucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxjLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcCh0LmdldFgoKSl9LGMucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpc30sYy5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oNDgpLHI9bigxMCksbz1uKDMpLHM9bigwKSxhPWkuYmFzZSx1PXIudXRpbHMuYXNzZXJ0O2Z1bmN0aW9uIGModCl7dGhpcy50d2lzdGVkPTEhPSgwfHQuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHx0LmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxhLmNhbGwodGhpcywiZWR3YXJkcyIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IG8odC5jLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5jMj10aGlzLmMucmVkU3FyKCksdGhpcy5kPW5ldyBvKHQuZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLHUoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfHQuYyl9ZnVuY3Rpb24gaCh0LGUsbixpLHIpe2EuQmFzZVBvaW50LmNhbGwodGhpcyx0LCJwcm9qZWN0aXZlIiksbnVsbD09PWUmJm51bGw9PT1uJiZudWxsPT09aT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBvKGUsMTYpLHRoaXMueT1uZXcgbyhuLDE2KSx0aGlzLno9aT9uZXcgbyhpLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9ciYmbmV3IG8ociwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYmKHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1PbmVBP3QucmVkTmVnKCk6dGhpcy5hLnJlZE11bCh0KX0sYy5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub25lQz90OnRoaXMuYy5yZWRNdWwodCl9LGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5wb2ludCh0LGUsbixpKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChuKSkscj10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwobikpLHM9aS5yZWRNdWwoci5yZWRJbnZtKCkpLGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciB1PWEuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKGUmJiF1fHwhZSYmdSkmJihhPWEucmVkTmVnKCkpLHRoaXMucG9pbnQodCxhKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWT1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9bi5yZWRTdWIodGhpcy5jMikscj1uLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5yZWRTdWIodGhpcy5hKSxzPWkucmVkTXVsKHIucmVkSW52bSgpKTtpZigwPT09cy5jbXAodGhpcy56ZXJvKSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sdCl9dmFyIGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiBhLmZyb21SZWQoKS5pc09kZCgpIT09ZSYmKGE9YS5yZWROZWcoKSksdGhpcy5wb2ludChhLHQpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4hMDt0Lm5vcm1hbGl6ZSgpO3ZhciBlPXQueC5yZWRTcXIoKSxuPXQueS5yZWRTcXIoKSxpPWUucmVkTXVsKHRoaXMuYSkucmVkQWRkKG4pLHI9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoZSkucmVkTXVsKG4pKSk7cmV0dXJuIDA9PT1pLmNtcChyKX0scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQpe3JldHVybiBoLmZyb21KU09OKHRoaXMsdCl9LGMucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBuZXcgaCh0aGlzLHQsZSxuLGkpfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBoKHQsZVswXSxlWzFdLGVbMl0pfSxoLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LGgucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhpcy55LmNtcCh0aGlzLmN1cnZlLmMpKX0saC5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKTtuPW4ucmVkSUFkZChuKTt2YXIgaT10aGlzLmN1cnZlLl9tdWxBKHQpLHI9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpLnJlZElTdWIodCkucmVkSVN1YihlKSxvPWkucmVkQWRkKGUpLHM9by5yZWRTdWIobiksYT1pLnJlZFN1YihlKSx1PXIucmVkTXVsKHMpLGM9by5yZWRNdWwoYSksaD1yLnJlZE11bChhKSxsPXMucmVkTXVsKG8pO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHUsYyxsLGgpfSxoLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciB0LGUsbixpPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKSxyPXRoaXMueC5yZWRTcXIoKSxvPXRoaXMueS5yZWRTcXIoKTtpZih0aGlzLmN1cnZlLnR3aXN0ZWQpe3ZhciBzPShjPXRoaXMuY3VydmUuX211bEEocikpLnJlZEFkZChvKTtpZih0aGlzLnpPbmUpdD1pLnJlZFN1YihyKS5yZWRTdWIobykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUudHdvKSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZFNxcigpLnJlZFN1YihzKS5yZWRTdWIocyk7ZWxzZXt2YXIgYT10aGlzLnoucmVkU3FyKCksdT1zLnJlZFN1YihhKS5yZWRJU3ViKGEpO3Q9aS5yZWRTdWIocikucmVkSVN1YihvKS5yZWRNdWwodSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZE11bCh1KX19ZWxzZXt2YXIgYz1yLnJlZEFkZChvKTthPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSx1PWMucmVkU3ViKGEpLnJlZFN1YihhKTt0PXRoaXMuY3VydmUuX211bEMoaS5yZWRJU3ViKGMpKS5yZWRNdWwodSksZT10aGlzLmN1cnZlLl9tdWxDKGMpLnJlZE11bChyLnJlZElTdWIobykpLG49Yy5yZWRNdWwodSl9cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodCxlLG4pfSxoLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0saC5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKHQueS5yZWRTdWIodC54KSksbj10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKHQueS5yZWRBZGQodC54KSksaT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bCh0LnQpLHI9dGhpcy56LnJlZE11bCh0LnoucmVkQWRkKHQueikpLG89bi5yZWRTdWIoZSkscz1yLnJlZFN1YihpKSxhPXIucmVkQWRkKGkpLHU9bi5yZWRBZGQoZSksYz1vLnJlZE11bChzKSxoPWEucmVkTXVsKHUpLGw9by5yZWRNdWwodSksZD1zLnJlZE11bChhKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChjLGgsZCxsKX0saC5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpPXRoaXMuei5yZWRNdWwodC56KSxyPWkucmVkU3FyKCksbz10aGlzLngucmVkTXVsKHQueCkscz10aGlzLnkucmVkTXVsKHQueSksYT10aGlzLmN1cnZlLmQucmVkTXVsKG8pLnJlZE11bChzKSx1PXIucmVkU3ViKGEpLGM9ci5yZWRBZGQoYSksaD10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKHQueC5yZWRBZGQodC55KSkucmVkSVN1YihvKS5yZWRJU3ViKHMpLGw9aS5yZWRNdWwodSkucmVkTXVsKGgpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KGU9aS5yZWRNdWwoYykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUuX211bEEobykpKSxuPXUucmVkTXVsKGMpKTooZT1pLnJlZE11bChjKS5yZWRNdWwocy5yZWRTdWIobykpLG49dGhpcy5jdXJ2ZS5fbXVsQyh1KS5yZWRNdWwoYykpLHRoaXMuY3VydmUucG9pbnQobCxlLG4pfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3Q6dC5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZCh0KTp0aGlzLl9wcm9qQWRkKHQpfSxoLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXModCk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyx0KTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGgucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCExKX0saC5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCEwKX0saC5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHQpLHRoaXMueT10aGlzLnkucmVkTXVsKHQpLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVkTXVsKHQpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LGgucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fDA9PT10aGlzLmdldFgoKS5jbXAodC5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKHQuZ2V0WSgpKX0saC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKDA9PT10aGlzLnguY21wKGUpKXJldHVybiEwO2Zvcih2YXIgbj10LmNsb25lKCksaT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYobi5pYWRkKHRoaXMuY3VydmUubiksbi5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihlLnJlZElBZGQoaSksMD09PXRoaXMueC5jbXAoZSkpcmV0dXJuITB9fSxoLnByb3RvdHlwZS50b1A9aC5wcm90b3R5cGUubm9ybWFsaXplLGgucHJvdG90eXBlLm1peGVkQWRkPWgucHJvdG90eXBlLmFkZH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPWUsbz1uKDcwKSxzPW4oMTApLGE9cy51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gdSh0KXsic2hvcnQiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuc2hvcnQodCk6ImVkd2FyZHMiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuZWR3YXJkcyh0KTp0aGlzLmN1cnZlPW5ldyBzLmN1cnZlLm1vbnQodCksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD10Lmhhc2gsYSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLGEodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlvbiBjKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIG49bmV3IHUoZSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59KSxufX0pfXIuUHJlc2V0Q3VydmU9dSxjKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxjKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxjKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksYygicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOm8uc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pLGMoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDpvLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KSxjKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksYygiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOm8uc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7aT1uKDIwMSl9Y2F0Y2godCl7aT12b2lkIDB9Yygic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6by5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIsbGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsaV19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnNoYTE9bigxOTYpLGUuc2hhMjI0PW4oMTk3KSxlLnNoYTI1Nj1uKDEwOCksZS5zaGEzODQ9bigxOTgpLGUuc2hhNTEyPW4oMTA5KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMzQpLG89bigxMDcpLHM9aS5yb3RsMzIsYT1pLnN1bTMyLHU9aS5zdW0zMl81LGM9by5mdF8xLGg9ci5CbG9ja0hhc2gsbD1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gZCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQpKXJldHVybiBuZXcgZDtoLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9aS5pbmhlcml0cyhkLGgpLHQuZXhwb3J0cz1kLGQuYmxvY2tTaXplPTUxMixkLm91dFNpemU9MTYwLGQuaG1hY1N0cmVuZ3RoPTgwLGQucGFkTGVuZ3RoPTY0LGQucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5XLGk9MDtpPDE2O2krKyluW2ldPXRbZStpXTtmb3IoO2k8bi5sZW5ndGg7aSsrKW5baV09cyhuW2ktM11ebltpLThdXm5baS0xNF1ebltpLTE2XSwxKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0saD10aGlzLmhbMl0sZD10aGlzLmhbM10sZj10aGlzLmhbNF07Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHA9fn4oaS8yMCksbT11KHMociw1KSxjKHAsbyxoLGQpLGYsbltpXSxsW3BdKTtmPWQsZD1oLGg9cyhvLDMwKSxvPXIscj1tfXRoaXMuaFswXT1hKHRoaXMuaFswXSxyKSx0aGlzLmhbMV09YSh0aGlzLmhbMV0sbyksdGhpcy5oWzJdPWEodGhpcy5oWzJdLGgpLHRoaXMuaFszXT1hKHRoaXMuaFszXSxkKSx0aGlzLmhbNF09YSh0aGlzLmhbNF0sZil9LGQucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P2kudG9IZXgzMih0aGlzLmgsImJpZyIpOmkuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA4KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT01MTIsby5vdXRTaXplPTIyNCxvLmhtYWNTdHJlbmd0aD0xOTIsby5wYWRMZW5ndGg9NjQsby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA5KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2MywyNDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4MDIzMSwxNzUwNjAzMDI1LDM2NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT0xMDI0LG8ub3V0U2l6ZT0zODQsby5obWFjU3RyZW5ndGg9MTkyLG8ucGFkTGVuZ3RoPTEyOCxvLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNykscj1uKDM0KSxvPWkucm90bDMyLHM9aS5zdW0zMixhPWkuc3VtMzJfMyx1PWkuc3VtMzJfNCxjPXIuQmxvY2tIYXNoO2Z1bmN0aW9uIGgoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBoKSlyZXR1cm4gbmV3IGg7Yy5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifWZ1bmN0aW9uIGwodCxlLG4saSl7cmV0dXJuIHQ8PTE1P2Vebl5pOnQ8PTMxP2Umbnx+ZSZpOnQ8PTQ3PyhlfH5uKV5pOnQ8PTYzP2UmaXxuJn5pOmVeKG58fmkpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ8PTE1PzA6dDw9MzE/MTUxODUwMDI0OTp0PD00Nz8xODU5Nzc1MzkzOnQ8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOH1mdW5jdGlvbiBmKHQpe3JldHVybiB0PD0xNT8xMzUyODI5OTI2OnQ8PTMxPzE1NDg2MDM2ODQ6dDw9NDc/MTgzNjA3MjY5MTp0PD02Mz8yMDUzOTk0MjE3OjB9aS5pbmhlcml0cyhoLGMpLGUucmlwZW1kMTYwPWgsaC5ibG9ja1NpemU9NTEyLGgub3V0U2l6ZT0xNjAsaC5obWFjU3RyZW5ndGg9MTkyLGgucGFkTGVuZ3RoPTY0LGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5oWzBdLGk9dGhpcy5oWzFdLHI9dGhpcy5oWzJdLGM9dGhpcy5oWzNdLGg9dGhpcy5oWzRdLGI9bix5PWksXz1yLHc9Yyx4PWgsTT0wO008ODA7TSsrKXt2YXIgUz1zKG8odShuLGwoTSxpLHIsYyksdFtwW01dK2VdLGQoTSkpLGdbTV0pLGgpO249aCxoPWMsYz1vKHIsMTApLHI9aSxpPVMsUz1zKG8odShiLGwoNzktTSx5LF8sdyksdFttW01dK2VdLGYoTSkpLHZbTV0pLHgpLGI9eCx4PXcsdz1vKF8sMTApLF89eSx5PVN9Uz1hKHRoaXMuaFsxXSxyLHcpLHRoaXMuaFsxXT1hKHRoaXMuaFsyXSxjLHgpLHRoaXMuaFsyXT1hKHRoaXMuaFszXSxoLGIpLHRoaXMuaFszXT1hKHRoaXMuaFs0XSxuLHkpLHRoaXMuaFs0XT1hKHRoaXMuaFswXSxpLF8pLHRoaXMuaFswXT1TfSxoLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTppLnNwbGl0MzIodGhpcy5oLCJsaXR0bGUiKX07dmFyIHA9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sbT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxnPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSx2PVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8odCxlLG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIG8pKXJldHVybiBuZXcgbyh0LGUsbik7dGhpcy5IYXNoPXQsdGhpcy5ibG9ja1NpemU9dC5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9dC5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KGkudG9BcnJheShlLG4pKX10LmV4cG9ydHM9byxvLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt0Lmxlbmd0aD50aGlzLmJsb2NrU2l6ZSYmKHQ9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh0KS5kaWdlc3QoKSkscih0Lmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgZT10Lmxlbmd0aDtlPHRoaXMuYmxvY2tTaXplO2UrKyl0LnB1c2goMCk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj01NDtmb3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpLGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUodCxlKSx0aGlzfSxvLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMjAzKSxvPW4oMTApLHM9by51dGlscy5hc3NlcnQsYT1uKDIwNCksdT1uKDIwNSk7ZnVuY3Rpb24gYyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGModCk7InN0cmluZyI9PXR5cGVvZiB0JiYocyhvLmN1cnZlcy5oYXNPd25Qcm9wZXJ0eSh0KSwiVW5rbm93biBjdXJ2ZSAiK3QpLHQ9by5jdXJ2ZXNbdF0pLHQgaW5zdGFuY2VvZiBvLmN1cnZlcy5QcmVzZXRDdXJ2ZSYmKHQ9e2N1cnZlOnR9KSx0aGlzLmN1cnZlPXQuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz10LmN1cnZlLmcsdGhpcy5nLnByZWNvbXB1dGUodC5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD10Lmhhc2h8fHQuY3VydmUuaGFzaH10LmV4cG9ydHM9YyxjLnByb3RvdHlwZS5rZXlQYWlyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYSh0aGlzLHQpfSxjLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21Qcml2YXRlKHRoaXMsdCxlKX0sYy5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21QdWJsaWModGhpcyx0LGUpfSxjLnByb3RvdHlwZS5nZW5LZXlQYWlyPWZ1bmN0aW9uKHQpe3R8fCh0PXt9KTtmb3IodmFyIGU9bmV3IHIoe2hhc2g6dGhpcy5oYXNoLHBlcnM6dC5wZXJzLHBlcnNFbmM6dC5wZXJzRW5jfHwidXRmOCIsZW50cm9weTp0LmVudHJvcHl8fG8ucmFuZCh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxlbnRyb3B5RW5jOnQuZW50cm9weSYmdC5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLG49dGhpcy5uLmJ5dGVMZW5ndGgoKSxzPXRoaXMubi5zdWIobmV3IGkoMikpOzspe3ZhciBhPW5ldyBpKGUuZ2VuZXJhdGUobikpO2lmKCEoYS5jbXAocyk+MCkpcmV0dXJuIGEuaWFkZG4oMSksdGhpcy5rZXlGcm9tUHJpdmF0ZShhKX19LGMucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbih0LGUpe3ZhciBuPTgqdC5ieXRlTGVuZ3RoKCktdGhpcy5uLmJpdExlbmd0aCgpO3JldHVybiBuPjAmJih0PXQudXNocm4obikpLCFlJiZ0LmNtcCh0aGlzLm4pPj0wP3Quc3ViKHRoaXMubik6dH0sYy5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUsbixvKXsib2JqZWN0Ij09dHlwZW9mIG4mJihvPW4sbj1udWxsKSxvfHwobz17fSksZT10aGlzLmtleUZyb21Qcml2YXRlKGUsbiksdD10aGlzLl90cnVuY2F0ZVRvTihuZXcgaSh0LDE2KSk7Zm9yKHZhciBzPXRoaXMubi5ieXRlTGVuZ3RoKCksYT1lLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIscyksYz10LnRvQXJyYXkoImJlIixzKSxoPW5ldyByKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OmEsbm9uY2U6YyxwZXJzOm8ucGVycyxwZXJzRW5jOm8ucGVyc0VuY3x8InV0ZjgifSksbD10aGlzLm4uc3ViKG5ldyBpKDEpKSxkPTA7O2QrKyl7dmFyIGY9by5rP28uayhkKTpuZXcgaShoLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChmPXRoaXMuX3RydW5jYXRlVG9OKGYsITApKS5jbXBuKDEpPD0wfHxmLmNtcChsKT49MCkpe3ZhciBwPXRoaXMuZy5tdWwoZik7aWYoIXAuaXNJbmZpbml0eSgpKXt2YXIgbT1wLmdldFgoKSxnPW0udW1vZCh0aGlzLm4pO2lmKDAhPT1nLmNtcG4oMCkpe3ZhciB2PWYuaW52bSh0aGlzLm4pLm11bChnLm11bChlLmdldFByaXZhdGUoKSkuaWFkZCh0KSk7aWYoMCE9PSh2PXYudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgYj0ocC5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09bS5jbXAoZyk/MjowKTtyZXR1cm4gby5jYW5vbmljYWwmJnYuY21wKHRoaXMubmgpPjAmJih2PXRoaXMubi5zdWIodiksYl49MSksbmV3IHUoe3I6ZyxzOnYscmVjb3ZlcnlQYXJhbTpifSl9fX19fX0sYy5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKHQsZSxuLHIpe3Q9dGhpcy5fdHJ1bmNhdGVUb04obmV3IGkodCwxNikpLG49dGhpcy5rZXlGcm9tUHVibGljKG4scik7dmFyIG89KGU9bmV3IHUoZSwiaGV4IikpLnIscz1lLnM7aWYoby5jbXBuKDEpPDB8fG8uY21wKHRoaXMubik+PTApcmV0dXJuITE7aWYocy5jbXBuKDEpPDB8fHMuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIGEsYz1zLmludm0odGhpcy5uKSxoPWMubXVsKHQpLnVtb2QodGhpcy5uKSxsPWMubXVsKG8pLnVtb2QodGhpcy5uKTtyZXR1cm4gdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrPyEoYT10aGlzLmcuam11bEFkZChoLG4uZ2V0UHVibGljKCksbCkpLmlzSW5maW5pdHkoKSYmYS5lcVhUb1Aobyk6IShhPXRoaXMuZy5tdWxBZGQoaCxuLmdldFB1YmxpYygpLGwpKS5pc0luZmluaXR5KCkmJjA9PT1hLmdldFgoKS51bW9kKHRoaXMubikuY21wKG8pfSxjLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKHQsZSxuLHIpe3MoKDMmbik9PT1uLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksZT1uZXcgdShlLHIpO3ZhciBvPXRoaXMubixhPW5ldyBpKHQpLGM9ZS5yLGg9ZS5zLGw9MSZuLGQ9bj4+MTtpZihjLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmZCl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO2M9ZD90aGlzLmN1cnZlLnBvaW50RnJvbVgoYy5hZGQodGhpcy5jdXJ2ZS5uKSxsKTp0aGlzLmN1cnZlLnBvaW50RnJvbVgoYyxsKTt2YXIgZj1lLnIuaW52bShvKSxwPW8uc3ViKGEpLm11bChmKS51bW9kKG8pLG09aC5tdWwoZikudW1vZChvKTtyZXR1cm4gdGhpcy5nLm11bEFkZChwLGMsbSl9LGMucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24odCxlLG4saSl7aWYobnVsbCE9PShlPW5ldyB1KGUsaSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIGUucmVjb3ZlcnlQYXJhbTtmb3IodmFyIHI9MDtyPDQ7cisrKXt2YXIgbzt0cnl7bz10aGlzLnJlY292ZXJQdWJLZXkodCxlLHIpfWNhdGNoKHQpe2NvbnRpbnVlfWlmKG8uZXEobikpcmV0dXJuIHJ9dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3IiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwNiksbz1uKDE0KTtmdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTt0aGlzLmhhc2g9dC5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIXQucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9dC5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZT1yLnRvQXJyYXkodC5lbnRyb3B5LHQuZW50cm9weUVuY3x8ImhleCIpLG49ci50b0FycmF5KHQubm9uY2UsdC5ub25jZUVuY3x8ImhleCIpLGk9ci50b0FycmF5KHQucGVycyx0LnBlcnNFbmN8fCJoZXgiKTtvKGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl9pbml0KGUsbixpKX10LmV4cG9ydHM9cyxzLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5jb25jYXQoZSkuY29uY2F0KG4pO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIHI9MDtyPHRoaXMuVi5sZW5ndGg7cisrKXRoaXMuS1tyXT0wLHRoaXMuVltyXT0xO3RoaXMuX3VwZGF0ZShpKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn0scy5wcm90b3R5cGUuX2htYWM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0scy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7dCYmKGU9ZS51cGRhdGUodCkpLHRoaXMuSz1lLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksdCYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKHQpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxzLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24odCxlLG4saSl7InN0cmluZyIhPXR5cGVvZiBlJiYoaT1uLG49ZSxlPW51bGwpLHQ9ci50b0FycmF5KHQsZSksbj1yLnRvQXJyYXkobixpKSxvKHQubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl91cGRhdGUodC5jb25jYXQobnx8W10pKSx0aGlzLl9yZXNlZWQ9MX0scy5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCxlLG4saSl7aWYodGhpcy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTsic3RyaW5nIiE9dHlwZW9mIGUmJihpPW4sbj1lLGU9bnVsbCksbiYmKG49ci50b0FycmF5KG4saXx8ImhleCIpLHRoaXMuX3VwZGF0ZShuKSk7Zm9yKHZhciBvPVtdO28ubGVuZ3RoPHQ7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksbz1vLmNvbmNhdCh0aGlzLlYpO3ZhciBzPW8uc2xpY2UoMCx0KTtyZXR1cm4gdGhpcy5fdXBkYXRlKG4pLHRoaXMuX3Jlc2VlZCsrLHIuZW5jb2RlKHMsZSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMykscj1uKDEwKS51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gbyh0LGUpe3RoaXMuZWM9dCx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLGUucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShlLnByaXYsZS5wcml2RW5jKSxlLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKGUucHViLGUucHViRW5jKX10LmV4cG9ydHM9byxvLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3B1YjplLHB1YkVuYzpufSl9LG8uZnJvbVByaXZhdGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3ByaXY6ZSxwcml2RW5jOm59KX0sby5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFB1YmxpYygpO3JldHVybiB0LmlzSW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06dC52YWxpZGF0ZSgpP3QubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5ICogTiAhPSBPIn06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX0sby5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoZT10LHQ9bnVsbCksdGhpcy5wdWJ8fCh0aGlzLnB1Yj10aGlzLmVjLmcubXVsKHRoaXMucHJpdikpLGU/dGhpcy5wdWIuZW5jb2RlKGUsdCk6dGhpcy5wdWJ9LG8ucHJvdG90eXBlLmdldFByaXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P3RoaXMucHJpdi50b1N0cmluZygxNiwyKTp0aGlzLnByaXZ9LG8ucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5wcml2PW5ldyBpKHQsZXx8MTYpLHRoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfSxvLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uKHQsZSl7aWYodC54fHx0LnkpcmV0dXJuIm1vbnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlP3IodC54LCJOZWVkIHggY29vcmRpbmF0ZSIpOiJzaG9ydCIhPT10aGlzLmVjLmN1cnZlLnR5cGUmJiJlZHdhcmRzIiE9PXRoaXMuZWMuY3VydmUudHlwZXx8cih0LngmJnQueSwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZSIpLHZvaWQodGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludCh0LngsdC55KSk7dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludCh0LGUpfSxvLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubXVsKHRoaXMucHJpdikuZ2V0WCgpfSxvLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5lYy5zaWduKHQsdGhpcyxlLG4pfSxvLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkodCxlLHRoaXMpfSxvLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDMpLHI9bigxMCkudXRpbHMsbz1yLmFzc2VydDtmdW5jdGlvbiBzKHQsZSl7aWYodCBpbnN0YW5jZW9mIHMpcmV0dXJuIHQ7dGhpcy5faW1wb3J0REVSKHQsZSl8fChvKHQuciYmdC5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IGkodC5yLDE2KSx0aGlzLnM9bmV3IGkodC5zLDE2KSx2b2lkIDA9PT10LnJlY292ZXJ5UGFyYW0/dGhpcy5yZWNvdmVyeVBhcmFtPW51bGw6dGhpcy5yZWNvdmVyeVBhcmFtPXQucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gYSgpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiB1KHQsZSl7dmFyIG49dFtlLnBsYWNlKytdO2lmKCEoMTI4Jm4pKXJldHVybiBuO2Zvcih2YXIgaT0xNSZuLHI9MCxvPTAscz1lLnBsYWNlO288aTtvKysscysrKXI8PD04LHJ8PXRbc107cmV0dXJuIGUucGxhY2U9cyxyfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aC0xOyF0W2VdJiYhKDEyOCZ0W2UrMV0pJiZlPG47KWUrKztyZXR1cm4gMD09PWU/dDp0LnNsaWNlKGUpfWZ1bmN0aW9uIGgodCxlKXtpZihlPDEyOCl0LnB1c2goZSk7ZWxzZXt2YXIgbj0xKyhNYXRoLmxvZyhlKS9NYXRoLkxOMj4+PjMpO2Zvcih0LnB1c2goMTI4fG4pOy0tbjspdC5wdXNoKGU+Pj4objw8MykmMjU1KTt0LnB1c2goZSl9fXQuZXhwb3J0cz1zLHMucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24odCxlKXt0PXIudG9BcnJheSh0LGUpO3ZhciBuPW5ldyBhO2lmKDQ4IT09dFtuLnBsYWNlKytdKXJldHVybiExO2lmKHUodCxuKStuLnBsYWNlIT09dC5sZW5ndGgpcmV0dXJuITE7aWYoMiE9PXRbbi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgbz11KHQsbikscz10LnNsaWNlKG4ucGxhY2UsbytuLnBsYWNlKTtpZihuLnBsYWNlKz1vLDIhPT10W24ucGxhY2UrK10pcmV0dXJuITE7dmFyIGM9dSh0LG4pO2lmKHQubGVuZ3RoIT09YytuLnBsYWNlKXJldHVybiExO3ZhciBoPXQuc2xpY2Uobi5wbGFjZSxjK24ucGxhY2UpO3JldHVybiAwPT09c1swXSYmMTI4JnNbMV0mJihzPXMuc2xpY2UoMSkpLDA9PT1oWzBdJiYxMjgmaFsxXSYmKGg9aC5zbGljZSgxKSksdGhpcy5yPW5ldyBpKHMpLHRoaXMucz1uZXcgaShoKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0scy5wcm90b3R5cGUudG9ERVI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yLnRvQXJyYXkoKSxuPXRoaXMucy50b0FycmF5KCk7Zm9yKDEyOCZlWzBdJiYoZT1bMF0uY29uY2F0KGUpKSwxMjgmblswXSYmKG49WzBdLmNvbmNhdChuKSksZT1jKGUpLG49YyhuKTshKG5bMF18fDEyOCZuWzFdKTspbj1uLnNsaWNlKDEpO3ZhciBpPVsyXTtoKGksZS5sZW5ndGgpLChpPWkuY29uY2F0KGUpKS5wdXNoKDIpLGgoaSxuLmxlbmd0aCk7dmFyIG89aS5jb25jYXQobikscz1bNDhdO3JldHVybiBoKHMsby5sZW5ndGgpLHM9cy5jb25jYXQobyksci5lbmNvZGUocyx0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwKSxvPXIudXRpbHMscz1vLmFzc2VydCxhPW8ucGFyc2VCeXRlcyx1PW4oMjA3KSxjPW4oMjA4KTtmdW5jdGlvbiBoKHQpe2lmKHMoImVkMjU1MTkiPT09dCwib25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhciIpLCEodGhpcyBpbnN0YW5jZW9mIGgpKXJldHVybiBuZXcgaCh0KTt0PXIuY3VydmVzW3RdLmN1cnZlO3RoaXMuY3VydmU9dCx0aGlzLmc9dC5nLHRoaXMuZy5wcmVjb21wdXRlKHQubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50Q2xhc3M9dC5wb2ludCgpLmNvbnN0cnVjdG9yLHRoaXMuZW5jb2RpbmdMZW5ndGg9TWF0aC5jZWlsKHQubi5iaXRMZW5ndGgoKS84KSx0aGlzLmhhc2g9aS5zaGE1MTJ9dC5leHBvcnRzPWgsaC5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUpe3Q9YSh0KTt2YXIgbj10aGlzLmtleUZyb21TZWNyZXQoZSksaT10aGlzLmhhc2hJbnQobi5tZXNzYWdlUHJlZml4KCksdCkscj10aGlzLmcubXVsKGkpLG89dGhpcy5lbmNvZGVQb2ludChyKSxzPXRoaXMuaGFzaEludChvLG4ucHViQnl0ZXMoKSx0KS5tdWwobi5wcml2KCkpLHU9aS5hZGQocykudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6cixTOnUsUmVuY29kZWQ6b30pfSxoLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlLG4pe3Q9YSh0KSxlPXRoaXMubWFrZVNpZ25hdHVyZShlKTt2YXIgaT10aGlzLmtleUZyb21QdWJsaWMobikscj10aGlzLmhhc2hJbnQoZS5SZW5jb2RlZCgpLGkucHViQnl0ZXMoKSx0KSxvPXRoaXMuZy5tdWwoZS5TKCkpO3JldHVybiBlLlIoKS5hZGQoaS5wdWIoKS5tdWwocikpLmVxKG8pfSxoLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuaGFzaCgpLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQudXBkYXRlKGFyZ3VtZW50c1tlXSk7cmV0dXJuIG8uaW50RnJvbUxFKHQuZGlnZXN0KCkpLnVtb2QodGhpcy5jdXJ2ZS5uKX0saC5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0KXtyZXR1cm4gdS5mcm9tUHVibGljKHRoaXMsdCl9LGgucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHUuZnJvbVNlY3JldCh0aGlzLHQpfSxoLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgYz90Om5ldyBjKHRoaXMsdCl9LGgucHJvdG90eXBlLmVuY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0WSgpLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gZVt0aGlzLmVuY29kaW5nTGVuZ3RoLTFdfD10LmdldFgoKS5pc09kZCgpPzEyODowLGV9LGgucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPSh0PW8ucGFyc2VCeXRlcyh0KSkubGVuZ3RoLTEsbj10LnNsaWNlKDAsZSkuY29uY2F0KC0xMjkmdFtlXSksaT0wIT0oMTI4JnRbZV0pLHI9by5pbnRGcm9tTEUobik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShyLGkpfSxoLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxoLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8uaW50RnJvbUxFKHQpfSxoLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEwKS51dGlscyxyPWkuYXNzZXJ0LG89aS5wYXJzZUJ5dGVzLHM9aS5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlvbiBhKHQsZSl7dGhpcy5lZGRzYT10LHRoaXMuX3NlY3JldD1vKGUuc2VjcmV0KSx0LmlzUG9pbnQoZS5wdWIpP3RoaXMuX3B1Yj1lLnB1Yjp0aGlzLl9wdWJCeXRlcz1vKGUucHViKX1hLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtwdWI6ZX0pfSxhLmZyb21TZWNyZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtzZWNyZXQ6ZX0pfSxhLnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxzKGEsInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSkscyhhLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSkscyhhLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGRzYSxlPXRoaXMuaGFzaCgpLG49dC5lbmNvZGluZ0xlbmd0aC0xLGk9ZS5zbGljZSgwLHQuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBpWzBdJj0yNDgsaVtuXSY9MTI3LGlbbl18PTY0LGl9KSxzKGEsInByaXYiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSkscyhhLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxzKGEsIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksYS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRzYS5zaWduKHQsdGhpcyl9LGEucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeSh0LGUsdGhpcyl9LGEucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxpLmVuY29kZSh0aGlzLnNlY3JldCgpLHQpfSxhLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZW5jb2RlKHRoaXMucHViQnl0ZXMoKSx0KX0sdC5leHBvcnRzPWF9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5hc3NlcnQscz1yLmNhY2hlZFByb3BlcnR5LGE9ci5wYXJzZUJ5dGVzO2Z1bmN0aW9uIHUodCxlKXt0aGlzLmVkZHNhPXQsIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1hKGUpKSxBcnJheS5pc0FycmF5KGUpJiYoZT17UjplLnNsaWNlKDAsdC5lbmNvZGluZ0xlbmd0aCksUzplLnNsaWNlKHQuZW5jb2RpbmdMZW5ndGgpfSksbyhlLlImJmUuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksdC5pc1BvaW50KGUuUikmJih0aGlzLl9SPWUuUiksZS5TIGluc3RhbmNlb2YgaSYmKHRoaXMuX1M9ZS5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KGUuUik/ZS5SOmUuUmVuY29kZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShlLlMpP2UuUzplLlNlbmNvZGVkfXModSwiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLHModSwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSkscyh1LCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9KSxzKHUsIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSl9KSx1LnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sdS5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4gci5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMzUpO2UuY2VydGlmaWNhdGU9bigyMjApO3ZhciByPWkuZGVmaW5lKCJSU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUV4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaW1lMSIpLmludCgpLHRoaXMua2V5KCJwcmltZTIiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQxIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MiIpLmludCgpLHRoaXMua2V5KCJjb2VmZmljaWVudCIpLmludCgpKX0pO2UuUlNBUHJpdmF0ZUtleT1yO3ZhciBvPWkuZGVmaW5lKCJSU0FQdWJsaWNLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSl9KTtlLlJTQVB1YmxpY0tleT1vO3ZhciBzPWkuZGVmaW5lKCJTdWJqZWN0UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKGEpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7ZS5QdWJsaWNLZXk9czt2YXIgYT1pLmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSx1PWkuZGVmaW5lKCJQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoYSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5Qcml2YXRlS2V5PXU7dmFyIGM9aS5kZWZpbmUoIkVuY3J5cHRlZFByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgiZGVjcnlwdCIpLnNlcSgpLm9iaih0aGlzLmtleSgia2RlIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImtkZXBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgic2FsdCIpLm9jdHN0cigpLHRoaXMua2V5KCJpdGVycyIpLmludCgpKSksdGhpcy5rZXkoImNpcGhlciIpLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnbyIpLm9iamlkKCksdGhpcy5rZXkoIml2Iikub2N0c3RyKCkpKSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5FbmNyeXB0ZWRQcml2YXRlS2V5PWM7dmFyIGg9aS5kZWZpbmUoIkRTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSx0aGlzLmtleSgicHViX2tleSIpLmludCgpLHRoaXMua2V5KCJwcml2X2tleSIpLmludCgpKX0pO2UuRFNBUHJpdmF0ZUtleT1oLGUuRFNBcGFyYW09aS5kZWZpbmUoIkRTQXBhcmFtIixmdW5jdGlvbigpe3RoaXMuaW50KCl9KTt2YXIgbD1pLmRlZmluZSgiRUNQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInByaXZhdGVLZXkiKS5vY3RzdHIoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKGQpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO2UuRUNQcml2YXRlS2V5PWw7dmFyIGQ9aS5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFtZWRDdXJ2ZTp0aGlzLm9iamlkKCl9KX0pO2Uuc2lnbmF0dXJlPWkuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIiKS5pbnQoKSx0aGlzLmtleSgicyIpLmludCgpKX0pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzNSkscj1uKDApO2Z1bmN0aW9uIG8odCxlKXt0aGlzLm5hbWU9dCx0aGlzLmJvZHk9ZSx0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319ZS5kZWZpbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8odCxlKX0sby5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXtlPW4oMjExKS5ydW5JblRoaXNDb250ZXh0KCIoZnVuY3Rpb24gIit0aGlzLm5hbWUrIihlbnRpdHkpIHtcbiAgdGhpcy5faW5pdE5hbWVkKGVudGl0eSk7XG59KSIpfWNhdGNoKHQpe2U9ZnVuY3Rpb24odCl7dGhpcy5faW5pdE5hbWVkKHQpfX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oZSl7dC5jYWxsKHRoaXMsZSl9LG5ldyBlKHRoaXMpfSxvLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD10fHwiZGVyIix0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5kZWNvZGVyc1t0XT10aGlzLl9jcmVhdGVOYW1lZChpLmRlY29kZXJzW3RdKSksdGhpcy5kZWNvZGVyc1t0XX0sby5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fZ2V0RGVjb2RlcihlKS5kZWNvZGUodCxuKX0sby5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8ImRlciIsdGhpcy5lbmNvZGVycy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuZW5jb2RlcnNbdF09dGhpcy5fY3JlYXRlTmFtZWQoaS5lbmNvZGVyc1t0XSkpLHRoaXMuZW5jb2RlcnNbdF19LG8ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZSkuZW5jb2RlKHQsbil9fSxmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaW5kZXhPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMiksT2JqZWN0X2tleXM9ZnVuY3Rpb24odCl7aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX0sZm9yRWFjaD1mdW5jdGlvbih0LGUpe2lmKHQuZm9yRWFjaClyZXR1cm4gdC5mb3JFYWNoKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWUodFtuXSxuLHQpfSxkZWZpbmVQcm9wPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl8iLHt9KSxmdW5jdGlvbih0LGUsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7d3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsdmFsdWU6bn0pfX1jYXRjaCh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3RbZV09bn19fSgpLGdsb2JhbHM9WyJBcnJheSIsIkJvb2xlYW4iLCJEYXRlIiwiRXJyb3IiLCJFdmFsRXJyb3IiLCJGdW5jdGlvbiIsIkluZmluaXR5IiwiSlNPTiIsIk1hdGgiLCJOYU4iLCJOdW1iZXIiLCJPYmplY3QiLCJSYW5nZUVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJSZWdFeHAiLCJTdHJpbmciLCJTeW50YXhFcnJvciIsIlR5cGVFcnJvciIsIlVSSUVycm9yIiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJ1bmVzY2FwZSJdO2Z1bmN0aW9uIENvbnRleHQoKXt9Q29udGV4dC5wcm90b3R5cGU9e307dmFyIFNjcmlwdD1leHBvcnRzLlNjcmlwdD1mdW5jdGlvbih0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTY3JpcHQpKXJldHVybiBuZXcgU2NyaXB0KHQpO3RoaXMuY29kZT10fTtTY3JpcHQucHJvdG90eXBlLnJ1bkluQ29udGV4dD1mdW5jdGlvbih0KXtpZighKHQgaW5zdGFuY2VvZiBDb250ZXh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJuZWVkcyBhICdjb250ZXh0JyBhcmd1bWVudC4iKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtlLnN0eWxlfHwoZS5zdHlsZT17fSksZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciBuPWUuY29udGVudFdpbmRvdyxpPW4uZXZhbCxyPW4uZXhlY1NjcmlwdDshaSYmciYmKHIuY2FsbChuLCJudWxsIiksaT1uLmV2YWwpLGZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24oZSl7bltlXT10W2VdfSksZm9yRWFjaChnbG9iYWxzLGZ1bmN0aW9uKGUpe3RbZV0mJihuW2VdPXRbZV0pfSk7dmFyIG89T2JqZWN0X2tleXMobikscz1pLmNhbGwobix0aGlzLmNvZGUpO3JldHVybiBmb3JFYWNoKE9iamVjdF9rZXlzKG4pLGZ1bmN0aW9uKGUpeyhlIGluIHR8fC0xPT09aW5kZXhPZihvLGUpKSYmKHRbZV09bltlXSl9KSxmb3JFYWNoKGdsb2JhbHMsZnVuY3Rpb24oZSl7ZSBpbiB0fHxkZWZpbmVQcm9wKHQsZSxuW2VdKX0pLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSksc30sU2NyaXB0LnByb3RvdHlwZS5ydW5JblRoaXNDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGV2YWwodGhpcy5jb2RlKX0sU2NyaXB0LnByb3RvdHlwZS5ydW5Jbk5ld0NvbnRleHQ9ZnVuY3Rpb24odCl7dmFyIGU9U2NyaXB0LmNyZWF0ZUNvbnRleHQodCksbj10aGlzLnJ1bkluQ29udGV4dChlKTtyZXR1cm4gZm9yRWFjaChPYmplY3Rfa2V5cyhlKSxmdW5jdGlvbihuKXt0W25dPWVbbl19KSxufSxmb3JFYWNoKE9iamVjdF9rZXlzKFNjcmlwdC5wcm90b3R5cGUpLGZ1bmN0aW9uKHQpe2V4cG9ydHNbdF09U2NyaXB0W3RdPWZ1bmN0aW9uKGUpe3ZhciBuPVNjcmlwdChlKTtyZXR1cm4gblt0XS5hcHBseShuLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX19KSxleHBvcnRzLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0KXtyZXR1cm4gZXhwb3J0cy5TY3JpcHQodCl9LGV4cG9ydHMuY3JlYXRlQ29udGV4dD1TY3JpcHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQ29udGV4dDtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJmZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24obil7ZVtuXT10W25dfSksZX19LGZ1bmN0aW9uKHQsZSl7dmFyIG49W10uaW5kZXhPZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpaWYodFtpXT09PWUpcmV0dXJuIGk7cmV0dXJuLTF9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKTtmdW5jdGlvbiByKHQpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczp0fHx7fSxlcnJvcnM6W119fWZ1bmN0aW9uIG8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnJldGhyb3coZSl9ZS5SZXBvcnRlcj1yLHIucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBvfSxyLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm57b2JqOnQub2JqLHBhdGhMZW46dC5wYXRoLmxlbmd0aH19LHIucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtlLm9iaj10Lm9iaixlLnBhdGg9ZS5wYXRoLnNsaWNlKDAsdC5wYXRoTGVuKX0sci5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKHQpfSxyLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7ZS5wYXRoPWUucGF0aC5zbGljZSgwLHQtMSl9LHIucHJvdG90eXBlLmxlYXZlS2V5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9yZXBvcnRlclN0YXRlO3RoaXMuZXhpdEtleSh0KSxudWxsIT09aS5vYmomJihpLm9ialtlXT1uKX0sci5wcm90b3R5cGUucGF0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbigiLyIpfSxyLnByb3RvdHlwZS5lbnRlck9iamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3JlcG9ydGVyU3RhdGUsZT10Lm9iajtyZXR1cm4gdC5vYmo9e30sZX0sci5wcm90b3R5cGUubGVhdmVPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxuPWUub2JqO3JldHVybiBlLm9iaj10LG59LHIucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5fcmVwb3J0ZXJTdGF0ZSxpPXQgaW5zdGFuY2VvZiBvO2lmKGU9aT90Om5ldyBvKG4ucGF0aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5KHQpKyJdIn0pLmpvaW4oIiIpLHQubWVzc2FnZXx8dCx0LnN0YWNrKSwhbi5vcHRpb25zLnBhcnRpYWwpdGhyb3cgZTtyZXR1cm4gaXx8bi5lcnJvcnMucHVzaChlKSxlfSxyLnByb3RvdHlwZS53cmFwUmVzdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJuIGUub3B0aW9ucy5wYXJ0aWFsP3tyZXN1bHQ6dGhpcy5pc0Vycm9yKHQpP251bGw6dCxlcnJvcnM6ZS5lcnJvcnN9OnR9LGkobyxFcnJvciksby5wcm90b3R5cGUucmV0aHJvdz1mdW5jdGlvbih0KXtpZih0aGlzLm1lc3NhZ2U9dCsiIGF0OiAiKyh0aGlzLnBhdGh8fCIoc2hhbGxvdykiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxvKSwhdGhpcy5zdGFjayl0cnl7dGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSl9Y2F0Y2godCl7dGhpcy5zdGFjaz10LnN0YWNrfXJldHVybiB0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzYpLlJlcG9ydGVyLHI9bigzNikuRW5jb2RlckJ1ZmZlcixvPW4oMzYpLkRlY29kZXJCdWZmZXIscz1uKDE0KSxhPVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0ciIsInZpZGVvc3RyIl0sdT1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KGEpO2Z1bmN0aW9uIGModCxlKXt2YXIgbj17fTt0aGlzLl9iYXNlU3RhdGU9bixuLmVuYz10LG4ucGFyZW50PWV8fG51bGwsbi5jaGlsZHJlbj1udWxsLG4udGFnPW51bGwsbi5hcmdzPW51bGwsbi5yZXZlcnNlQXJncz1udWxsLG4uY2hvaWNlPW51bGwsbi5vcHRpb25hbD0hMSxuLmFueT0hMSxuLm9iaj0hMSxuLnVzZT1udWxsLG4udXNlRGVjb2Rlcj1udWxsLG4ua2V5PW51bGwsbi5kZWZhdWx0PW51bGwsbi5leHBsaWNpdD1udWxsLG4uaW1wbGljaXQ9bnVsbCxuLmNvbnRhaW5zPW51bGwsbi5wYXJlbnR8fChuLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9dC5leHBvcnRzPWM7dmFyIGg9WyJlbmMiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInRhZyIsImFyZ3MiLCJyZXZlcnNlQXJncyIsImNob2ljZSIsIm9wdGlvbmFsIiwiYW55Iiwib2JqIiwidXNlIiwiYWx0ZXJlZFVzZSIsImtleSIsImRlZmF1bHQiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiY29udGFpbnMiXTtjLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPXt9O2guZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KTt2YXIgbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLnBhcmVudCk7cmV0dXJuIG4uX2Jhc2VTdGF0ZT1lLG59LGMucHJvdG90eXBlLl93cmFwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYmFzZVN0YXRlO3UuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzW2VdPWZ1bmN0aW9uKCl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIHQuY2hpbGRyZW4ucHVzaChuKSxuW2VdLmFwcGx5KG4sYXJndW1lbnRzKX19LHRoaXMpfSxjLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cyhudWxsPT09ZS5wYXJlbnQpLHQuY2FsbCh0aGlzKSxlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcykscy5lcXVhbChlLmNoaWxkcmVuLmxlbmd0aCwxLCJSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQiKX0sYy5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSx0aGlzKTt0PXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEodCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpfSx0aGlzKSwwIT09bi5sZW5ndGgmJihzKG51bGw9PT1lLmNoaWxkcmVuKSxlLmNoaWxkcmVuPW4sbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT10Lmxlbmd0aCYmKHMobnVsbD09PWUuYXJncyksZS5hcmdzPXQsZS5yZXZlcnNlQXJncz10Lm1hcChmdW5jdGlvbih0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fHQuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIHQ7dmFyIGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7bj09KDB8bikmJihufD0wKTt2YXIgaT10W25dO2VbaV09bn0pLGV9KSl9LFsiX3BlZWtUYWciLCJfZGVjb2RlVGFnIiwiX3VzZSIsIl9kZWNvZGVTdHIiLCJfZGVjb2RlT2JqaWQiLCJfZGVjb2RlVGltZSIsIl9kZWNvZGVOdWxsIiwiX2RlY29kZUludCIsIl9kZWNvZGVCb29sIiwiX2RlY29kZUxpc3QiLCJfZW5jb2RlQ29tcG9zaXRlIiwiX2VuY29kZVN0ciIsIl9lbmNvZGVPYmppZCIsIl9lbmNvZGVUaW1lIiwiX2VuY29kZU51bGwiLCJfZW5jb2RlSW50IiwiX2VuY29kZUJvb2wiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3Rocm93IG5ldyBFcnJvcih0KyIgbm90IGltcGxlbWVudGVkIGZvciBlbmNvZGluZzogIitlLmVuYyl9fSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gcyhudWxsPT09ZS50YWcpLGUudGFnPXQsdGhpcy5fdXNlQXJncyhuKSx0aGlzfX0pLGMucHJvdG90eXBlLnVzZT1mdW5jdGlvbih0KXtzKHQpO3ZhciBlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gcyhudWxsPT09ZS51c2UpLGUudXNlPXQsdGhpc30sYy5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LGMucHJvdG90eXBlLmRlZj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZGVmYXVsdCksZS5kZWZhdWx0PXQsZS5vcHRpb25hbD0hMCx0aGlzfSxjLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZXhwbGljaXQmJm51bGw9PT1lLmltcGxpY2l0KSxlLmV4cGxpY2l0PXQsdGhpc30sYy5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmV4cGxpY2l0JiZudWxsPT09ZS5pbXBsaWNpdCksZS5pbXBsaWNpdD10LHRoaXN9LGMucHJvdG90eXBlLm9iaj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQub2JqPSEwLDAhPT1lLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhlKSx0aGlzfSxjLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmtleSksZS5rZXk9dCx0aGlzfSxjLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxjLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmNob2ljZSksZS5jaG9pY2U9dCx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSx0aGlzfSxjLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUudXNlKSxlLmNvbnRhaW5zPXQsdGhpc30sYy5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09bi5wYXJlbnQpcmV0dXJuIHQud3JhcFJlc3VsdChuLmNoaWxkcmVuWzBdLl9kZWNvZGUodCxlKSk7dmFyIGkscj1uLmRlZmF1bHQscz0hMCxhPW51bGw7aWYobnVsbCE9PW4ua2V5JiYoYT10LmVudGVyS2V5KG4ua2V5KSksbi5vcHRpb25hbCl7dmFyIHU9bnVsbDtpZihudWxsIT09bi5leHBsaWNpdD91PW4uZXhwbGljaXQ6bnVsbCE9PW4uaW1wbGljaXQ/dT1uLmltcGxpY2l0Om51bGwhPT1uLnRhZyYmKHU9bi50YWcpLG51bGwhPT11fHxuLmFueSl7aWYocz10aGlzLl9wZWVrVGFnKHQsdSxuLmFueSksdC5pc0Vycm9yKHMpKXJldHVybiBzfWVsc2V7dmFyIGM9dC5zYXZlKCk7dHJ5e251bGw9PT1uLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKG4udGFnLHQsZSk6dGhpcy5fZGVjb2RlQ2hvaWNlKHQsZSkscz0hMH1jYXRjaCh0KXtzPSExfXQucmVzdG9yZShjKX19aWYobi5vYmomJnMmJihpPXQuZW50ZXJPYmplY3QoKSkscyl7aWYobnVsbCE9PW4uZXhwbGljaXQpe3ZhciBoPXRoaXMuX2RlY29kZVRhZyh0LG4uZXhwbGljaXQpO2lmKHQuaXNFcnJvcihoKSlyZXR1cm4gaDt0PWh9dmFyIGw9dC5vZmZzZXQ7aWYobnVsbD09PW4udXNlJiZudWxsPT09bi5jaG9pY2Upe2lmKG4uYW55KWM9dC5zYXZlKCk7dmFyIGQ9dGhpcy5fZGVjb2RlVGFnKHQsbnVsbCE9PW4uaW1wbGljaXQ/bi5pbXBsaWNpdDpuLnRhZyxuLmFueSk7aWYodC5pc0Vycm9yKGQpKXJldHVybiBkO24uYW55P3I9dC5yYXcoYyk6dD1kfWlmKGUmJmUudHJhY2smJm51bGwhPT1uLnRhZyYmZS50cmFjayh0LnBhdGgoKSxsLHQubGVuZ3RoLCJ0YWdnZWQiKSxlJiZlLnRyYWNrJiZudWxsIT09bi50YWcmJmUudHJhY2sodC5wYXRoKCksdC5vZmZzZXQsdC5sZW5ndGgsImNvbnRlbnQiKSxyPW4uYW55P3I6bnVsbD09PW4uY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMobi50YWcsdCxlKTp0aGlzLl9kZWNvZGVDaG9pY2UodCxlKSx0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYobi5hbnl8fG51bGwhPT1uLmNob2ljZXx8bnVsbD09PW4uY2hpbGRyZW58fG4uY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9kZWNvZGUodCxlKX0pLG4uY29udGFpbnMmJigib2N0c3RyIj09PW4udGFnfHwiYml0c3RyIj09PW4udGFnKSl7dmFyIGY9bmV3IG8ocik7cj10aGlzLl9nZXRVc2Uobi5jb250YWlucyx0Ll9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShmLGUpfX1yZXR1cm4gbi5vYmomJnMmJihyPXQubGVhdmVPYmplY3QoaSkpLG51bGw9PT1uLmtleXx8bnVsbD09PXImJiEwIT09cz9udWxsIT09YSYmdC5leGl0S2V5KGEpOnQubGVhdmVLZXkoYSxuLmtleSxyKSxyfSxjLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09dHx8InNldCI9PT10P251bGw6InNlcW9mIj09PXR8fCJzZXRvZiI9PT10P3RoaXMuX2RlY29kZUxpc3QoZSx0LGkuYXJnc1swXSxuKTovc3RyJC8udGVzdCh0KT90aGlzLl9kZWNvZGVTdHIoZSx0LG4pOiJvYmppZCI9PT10JiZpLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQoZSxpLmFyZ3NbMF0saS5hcmdzWzFdLG4pOiJvYmppZCI9PT10P3RoaXMuX2RlY29kZU9iamlkKGUsbnVsbCxudWxsLG4pOiJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQ/dGhpcy5fZGVjb2RlVGltZShlLHQsbik6Im51bGxfIj09PXQ/dGhpcy5fZGVjb2RlTnVsbChlLG4pOiJib29sIj09PXQ/dGhpcy5fZGVjb2RlQm9vbChlLG4pOiJvYmpEZXNjIj09PXQ/dGhpcy5fZGVjb2RlU3RyKGUsdCxuKToiaW50Ij09PXR8fCJlbnVtIj09PXQ/dGhpcy5fZGVjb2RlSW50KGUsaS5hcmdzJiZpLmFyZ3NbMF0sbik6bnVsbCE9PWkudXNlP3RoaXMuX2dldFVzZShpLnVzZSxlLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShlLG4pOmUuZXJyb3IoInVua25vd24gdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBuLnVzZURlY29kZXI9dGhpcy5fdXNlKHQsZSkscyhudWxsPT09bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUucGFyZW50KSxuLnVzZURlY29kZXI9bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF0sbi5pbXBsaWNpdCE9PW4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0JiYobi51c2VEZWNvZGVyPW4udXNlRGVjb2Rlci5jbG9uZSgpLG4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0PW4uaW1wbGljaXQpLG4udXNlRGVjb2Rlcn0sYy5wcm90b3R5cGUuX2RlY29kZUNob2ljZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZSxpPW51bGwscj0hMTtyZXR1cm4gT2JqZWN0LmtleXMobi5jaG9pY2UpLnNvbWUoZnVuY3Rpb24obyl7dmFyIHM9dC5zYXZlKCksYT1uLmNob2ljZVtvXTt0cnl7dmFyIHU9YS5fZGVjb2RlKHQsZSk7aWYodC5pc0Vycm9yKHUpKXJldHVybiExO2k9e3R5cGU6byx2YWx1ZTp1fSxyPSEwfWNhdGNoKGUpe3JldHVybiB0LnJlc3RvcmUocyksITF9cmV0dXJuITB9LHRoaXMpLHI/aTp0LmVycm9yKCJDaG9pY2Ugbm90IG1hdGNoZWQiKX0sYy5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyByKHQsdGhpcy5yZXBvcnRlcil9LGMucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09aS5kZWZhdWx0fHxpLmRlZmF1bHQhPT10KXt2YXIgcj10aGlzLl9lbmNvZGVWYWx1ZSh0LGUsbik7aWYodm9pZCAwIT09ciYmIXRoaXMuX3NraXBEZWZhdWx0KHIsZSxuKSlyZXR1cm4gcn19LGMucHJvdG90eXBlLl9lbmNvZGVWYWx1ZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1yLnBhcmVudClyZXR1cm4gci5jaGlsZHJlblswXS5fZW5jb2RlKHQsZXx8bmV3IGkpO3ZhciBvPW51bGw7aWYodGhpcy5yZXBvcnRlcj1lLHIub3B0aW9uYWwmJnZvaWQgMD09PXQpe2lmKG51bGw9PT1yLmRlZmF1bHQpcmV0dXJuO3Q9ci5kZWZhdWx0fXZhciBzPW51bGwsYT0hMTtpZihyLmFueSlvPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk7ZWxzZSBpZihyLmNob2ljZSlvPXRoaXMuX2VuY29kZUNob2ljZSh0LGUpO2Vsc2UgaWYoci5jb250YWlucylzPXRoaXMuX2dldFVzZShyLmNvbnRhaW5zLG4pLl9lbmNvZGUodCxlKSxhPSEwO2Vsc2UgaWYoci5jaGlsZHJlbilzPXIuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKG4pe2lmKCJudWxsXyI9PT1uLl9iYXNlU3RhdGUudGFnKXJldHVybiBuLl9lbmNvZGUobnVsbCxlLHQpO2lmKG51bGw9PT1uLl9iYXNlU3RhdGUua2V5KXJldHVybiBlLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO3ZhciBpPWUuZW50ZXJLZXkobi5fYmFzZVN0YXRlLmtleSk7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXJldHVybiBlLmVycm9yKCJDaGlsZCBleHBlY3RlZCwgYnV0IGlucHV0IGlzIG5vdCBvYmplY3QiKTt2YXIgcj1uLl9lbmNvZGUodFtuLl9iYXNlU3RhdGUua2V5XSxlLHQpO3JldHVybiBlLmxlYXZlS2V5KGkpLHJ9LHRoaXMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLHM9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzKTtlbHNlIGlmKCJzZXFvZiI9PT1yLnRhZ3x8InNldG9mIj09PXIudGFnKXtpZighci5hcmdzfHwxIT09ci5hcmdzLmxlbmd0aClyZXR1cm4gZS5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK3IudGFnKTtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZS5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO3ZhciB1PXRoaXMuY2xvbmUoKTt1Ll9iYXNlU3RhdGUuaW1wbGljaXQ9bnVsbCxzPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodC5tYXAoZnVuY3Rpb24obil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiB0aGlzLl9nZXRVc2UoaS5hcmdzWzBdLHQpLl9lbmNvZGUobixlKX0sdSkpfWVsc2UgbnVsbCE9PXIudXNlP289dGhpcy5fZ2V0VXNlKHIudXNlLG4pLl9lbmNvZGUodCxlKToocz10aGlzLl9lbmNvZGVQcmltaXRpdmUoci50YWcsdCksYT0hMCk7aWYoIXIuYW55JiZudWxsPT09ci5jaG9pY2Upe3ZhciBjPW51bGwhPT1yLmltcGxpY2l0P3IuaW1wbGljaXQ6ci50YWcsaD1udWxsPT09ci5pbXBsaWNpdD8idW5pdmVyc2FsIjoiY29udGV4dCI7bnVsbD09PWM/bnVsbD09PXIudXNlJiZlLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09ci51c2UmJihvPXRoaXMuX2VuY29kZUNvbXBvc2l0ZShjLGEsaCxzKSl9cmV0dXJuIG51bGwhPT1yLmV4cGxpY2l0JiYobz10aGlzLl9lbmNvZGVDb21wb3NpdGUoci5leHBsaWNpdCwhMSwiY29udGV4dCIsbykpLG99LGMucHJvdG90eXBlLl9lbmNvZGVDaG9pY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9iYXNlU3RhdGUsaT1uLmNob2ljZVt0LnR5cGVdO3JldHVybiBpfHxzKCExLHQudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKG4uY2hvaWNlKSkpLGkuX2VuY29kZSh0LnZhbHVlLGUpfSxjLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KHQpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoZSx0KTtpZigib2JqaWQiPT09dCYmbi5hcmdzKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChlLG4ucmV2ZXJzZUFyZ3NbMF0sbi5hcmdzWzFdKTtpZigib2JqaWQiPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoZSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoZSx0KTtpZigibnVsbF8iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09dHx8ImVudW0iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlSW50KGUsbi5hcmdzJiZuLnJldmVyc2VBcmdzWzBdKTtpZigiYm9vbCI9PT10KXJldHVybiB0aGlzLl9lbmNvZGVCb29sKGUpO2lmKCJvYmpEZXNjIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihlLHQpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bMC05IF0qJC8udGVzdCh0KX0sYy5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bQS1aYS16MC05ICdcKFwpXCssXC1cLlwvOj1cP10qJC8udGVzdCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExMSk7ZS50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIsMjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LGUudGFnQ2xhc3NCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZ0NsYXNzKSxlLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sZS50YWdCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuZGVyPW4oMTEyKSxpLnBlbT1uKDIxNyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDExMik7ZnVuY3Rpb24gcyh0KXtvLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKHMsbyksdC5leHBvcnRzPXMscy5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxpPWUubGFiZWwudG9VcHBlckNhc2UoKSxzPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLyxhPS0xLHU9LTEsYz0wO2M8bi5sZW5ndGg7YysrKXt2YXIgaD1uW2NdLm1hdGNoKHMpO2lmKG51bGwhPT1oJiZoWzJdPT09aSl7aWYoLTEhPT1hKXtpZigiRU5EIiE9PWhbMV0pYnJlYWs7dT1jO2JyZWFrfWlmKCJCRUdJTiIhPT1oWzFdKWJyZWFrO2E9Y319aWYoLTE9PT1hfHwtMT09PXUpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK2kpO3ZhciBsPW4uc2xpY2UoYSsxLHUpLmpvaW4oIiIpO2wucmVwbGFjZSgvW15hLXowLTlcK1wvPV0rL2dpLCIiKTt2YXIgZD1uZXcgcihsLCJiYXNlNjQiKTtyZXR1cm4gby5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxkLGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5kZXI9bigxMTMpLGkucGVtPW4oMjE5KX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDExMyk7ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKG8sciksdC5leHBvcnRzPW8sby5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXIucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsdCkudG9TdHJpbmcoImJhc2U2NCIpLGk9WyItLS0tLUJFR0lOICIrZS5sYWJlbCsiLS0tLS0iXSxvPTA7bzxuLmxlbmd0aDtvKz02NClpLnB1c2gobi5zbGljZShvLG8rNjQpKTtyZXR1cm4gaS5wdXNoKCItLS0tLUVORCAiK2UubGFiZWwrIi0tLS0tIiksaS5qb2luKCJcbiIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDM1KSxyPWkuZGVmaW5lKCJUaW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2VudGltZSgpfSl9KSxvPWkuZGVmaW5lKCJBdHRyaWJ1dGVUeXBlVmFsdWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInR5cGUiKS5vYmppZCgpLHRoaXMua2V5KCJ2YWx1ZSIpLmFueSgpKX0pLHM9aS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpKX0pLGE9aS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UocyksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSx1PWkuZGVmaW5lKCJSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lIixmdW5jdGlvbigpe3RoaXMuc2V0b2Yobyl9KSxjPWkuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKHUpfSksaD1pLmRlZmluZSgiTmFtZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7cmRuU2VxdWVuY2U6dGhpcy51c2UoYyl9KX0pLGw9aS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UociksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKHIpKX0pLGQ9aS5kZWZpbmUoIkV4dGVuc2lvbiIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiZXh0bklEIikub2JqaWQoKSx0aGlzLmtleSgiY3JpdGljYWwiKS5ib29sKCkuZGVmKCExKSx0aGlzLmtleSgiZXh0blZhbHVlIikub2N0c3RyKCkpfSksZj1pLmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKSx0aGlzLmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShzKSx0aGlzLmtleSgiaXNzdWVyIikudXNlKGgpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShsKSx0aGlzLmtleSgic3ViamVjdCIpLnVzZShoKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoYSksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKGQpLm9wdGlvbmFsKCkpfSkscD1pLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShmKSx0aGlzLmtleSgic2lnbmF0dXJlQWxnb3JpdGhtIikudXNlKHMpLHRoaXMua2V5KCJzaWduYXR1cmVWYWx1ZSIpLmJpdHN0cigpKX0pO3QuZXhwb3J0cz1wfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9eyIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xIjoiYWVzLTEyOC1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yIjoiYWVzLTEyOC1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4zIjoiYWVzLTEyOC1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40IjoiYWVzLTEyOC1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMSI6ImFlcy0xOTItZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjIiOiJhZXMtMTkyLWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIzIjoiYWVzLTE5Mi1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yNCI6ImFlcy0xOTItY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDEiOiJhZXMtMjU2LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyIjoiYWVzLTI1Ni1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MyI6ImFlcy0yNTYtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDQiOiJhZXMtMjU2LWNmYiJ9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPS9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xuXHJdK0RFSy1JbmZvOiBBRVMtKCg/OjEyOCl8KD86MTkyKXwoPzoyNTYpKS1DQkMsKFswLTlBLUhdKylbXG5ccl0rKFswLTlBLXpcblxyXCtcL1w9XSspW1xuXHJdKy9tLHI9L14tLS0tLUJFR0lOICgoPzouKiBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sbz0vXi0tLS0tQkVHSU4gKCg/Oi4qIEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxuXHJcK1wvXD1dKyktLS0tLUVORCBcMS0tLS0tJC9tLHM9big0NiksYT1uKDY3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXt2YXIgdSxjPXQudG9TdHJpbmcoKSxoPWMubWF0Y2goaSk7aWYoaCl7dmFyIGw9ImFlcyIraFsxXSxkPW5ldyBlKGhbMl0sImhleCIpLGY9bmV3IGUoaFszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLHA9cyhuLGQuc2xpY2UoMCw4KSxwYXJzZUludChoWzFdLDEwKSkua2V5LG09W10sZz1hLmNyZWF0ZURlY2lwaGVyaXYobCxwLGQpO20ucHVzaChnLnVwZGF0ZShmKSksbS5wdXNoKGcuZmluYWwoKSksdT1lLmNvbmNhdChtKX1lbHNle3ZhciB2PWMubWF0Y2gobyk7dT1uZXcgZSh2WzJdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0Iil9cmV0dXJue3RhZzpjLm1hdGNoKHIpWzFdLGRhdGE6dX19fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigxMCkuZWMsbz1uKDQ5KSxzPW4oMTE0KTtmdW5jdGlvbiBhKHQsZSl7aWYodC5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKTtpZih0LmNtcChlKT49ZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsbix1LGMsaCl7dmFyIGw9byh1KTtpZigiZWMiPT09bC50eXBlKXtpZigiZWNkc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1zW24uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIituLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKSk7dmFyIG89bmV3IHIoaSksYT1uLmRhdGEuc3ViamVjdFByaXZhdGVLZXkuZGF0YTtyZXR1cm4gby52ZXJpZnkoZSx0LGEpfSh0LG4sbCl9aWYoImRzYSI9PT1sLnR5cGUpe2lmKCJkc2EiIT09Yyl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIHI9bi5kYXRhLnAscz1uLmRhdGEucSx1PW4uZGF0YS5nLGM9bi5kYXRhLnB1Yl9rZXksaD1vLnNpZ25hdHVyZS5kZWNvZGUodCwiZGVyIiksbD1oLnMsZD1oLnI7YShsLHMpLGEoZCxzKTt2YXIgZj1pLm1vbnQocikscD1sLmludm0ocyk7cmV0dXJuIDA9PT11LnRvUmVkKGYpLnJlZFBvdyhuZXcgaShlKS5tdWwocCkubW9kKHMpKS5mcm9tUmVkKCkubXVsKGMudG9SZWQoZikucmVkUG93KGQubXVsKHApLm1vZChzKSkuZnJvbVJlZCgpKS5tb2QocikubW9kKHMpLmNtcChkKX0odCxuLGwpfWlmKCJyc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7bj1lLmNvbmNhdChbaCxuXSk7Zm9yKHZhciBkPWwubW9kdWx1cy5ieXRlTGVuZ3RoKCksZj1bMV0scD0wO24ubGVuZ3RoK2YubGVuZ3RoKzI8ZDspZi5wdXNoKDI1NSkscCsrO2YucHVzaCgwKTtmb3IodmFyIG09LTE7KyttPG4ubGVuZ3RoOylmLnB1c2goblttXSk7Zj1uZXcgZShmKTt2YXIgZz1pLm1vbnQobC5tb2R1bHVzKTt0PSh0PW5ldyBpKHQpLnRvUmVkKGcpKS5yZWRQb3cobmV3IGkobC5wdWJsaWNFeHBvbmVudCkpLHQ9bmV3IGUodC5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgdj1wPDg/MTowO2ZvcihkPU1hdGgubWluKHQubGVuZ3RoLGYubGVuZ3RoKSx0Lmxlbmd0aCE9PWYubGVuZ3RoJiYodj0xKSxtPS0xOysrbTxkOyl2fD10W21dXmZbbV07cmV0dXJuIDA9PT12fX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigxMCkscj1uKDMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModCl9O3ZhciBvPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntuYW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1lOiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6e25hbWU6InAzODQiLGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIHModCl7dGhpcy5jdXJ2ZVR5cGU9b1t0XSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOnR9KSx0aGlzLmN1cnZlPW5ldyBpLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpLHRoaXMua2V5cz12b2lkIDB9ZnVuY3Rpb24gYSh0LG4saSl7QXJyYXkuaXNBcnJheSh0KXx8KHQ9dC50b0FycmF5KCkpO3ZhciByPW5ldyBlKHQpO2lmKGkmJnIubGVuZ3RoPGkpe3ZhciBvPW5ldyBlKGktci5sZW5ndGgpO28uZmlsbCgwKSxyPWUuY29uY2F0KFtvLHJdKX1yZXR1cm4gbj9yLnRvU3RyaW5nKG4pOnJ9by5wMjI0PW8uc2VjcDIyNHIxLG8ucDI1Nj1vLnNlY3AyNTZyMT1vLnByaW1lMjU2djEsby5wMTkyPW8uc2VjcDE5MnIxPW8ucHJpbWUxOTJ2MSxvLnAzODQ9by5zZWNwMzg0cjEsby5wNTIxPW8uc2VjcDUyMXIxLHMucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkodCxlKX0scy5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbih0LG4saSl7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLGEodGhpcy5jdXJ2ZS5rZXlGcm9tUHVibGljKHQpLmdldFB1YmxpYygpLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCksaSx0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0scy5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1lLCEwKTtyZXR1cm4iaHlicmlkIj09PWUmJihuW24ubGVuZ3RoLTFdJTI/blswXT03Om5bMF09NiksYShuLHQpfSxzLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMua2V5cy5nZXRQcml2YXRlKCksdCl9LHMucHJvdG90eXBlLnNldFB1YmxpY0tleT1mdW5jdGlvbih0LG4pe3JldHVybiBuPW58fCJ1dGY4IixlLmlzQnVmZmVyKHQpfHwodD1uZXcgZSh0LG4pKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyh0KSx0aGlzfSxzLnByb3RvdHlwZS5zZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQsbil7bj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSk7dmFyIGk9bmV3IHIodCk7cmV0dXJuIGk9aS50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShpKSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXtlLnB1YmxpY0VuY3J5cHQ9bigyMjYpLGUucHJpdmF0ZURlY3J5cHQ9bigyMjcpLGUucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5wdWJsaWNFbmNyeXB0KHQsbiwhMCl9LGUucHVibGljRGVjcnlwdD1mdW5jdGlvbih0LG4pe3JldHVybiBlLnByaXZhdGVEZWNyeXB0KHQsbiwhMCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big0OSkscj1uKDI3KSxvPW4oMzEpLHM9bigxMTUpLGE9bigxMTYpLHU9bigzKSxjPW4oMTE3KSxoPW4oNjkpLGw9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgZDtkPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGYscD1pKHQpO2lmKDQ9PT1kKWY9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGk9ZS5sZW5ndGgsYz1vKCJzaGExIikudXBkYXRlKGwuYWxsb2MoMCkpLmRpZ2VzdCgpLGg9Yy5sZW5ndGgsZD0yKmg7aWYoaT5uLWQtMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgZj1sLmFsbG9jKG4taS1kLTIpLHA9bi1oLTEsbT1yKGgpLGc9YShsLmNvbmNhdChbYyxmLGwuYWxsb2MoMSwxKSxlXSxwKSxzKG0scCkpLHY9YShtLHMoZyxoKSk7cmV0dXJuIG5ldyB1KGwuY29uY2F0KFtsLmFsbG9jKDEpLHYsZ10sbikpfShwLGUpO2Vsc2UgaWYoMT09PWQpZj1mdW5jdGlvbih0LGUsbil7dmFyIGksbz1lLmxlbmd0aCxzPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYobz5zLTExKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO2k9bj9sLmFsbG9jKHMtby0zLDI1NSk6ZnVuY3Rpb24odCl7dmFyIGUsbj1sLmFsbG9jVW5zYWZlKHQpLGk9MCxvPXIoMip0KSxzPTA7Zm9yKDtpPHQ7KXM9PT1vLmxlbmd0aCYmKG89cigyKnQpLHM9MCksKGU9b1tzKytdKSYmKG5baSsrXT1lKTtyZXR1cm4gbn0ocy1vLTMpO3JldHVybiBuZXcgdShsLmNvbmNhdChbbC5mcm9tKFswLG4/MToyXSksaSxsLmFsbG9jKDEpLGVdLHMpKX0ocCxlLG4pO2Vsc2V7aWYoMyE9PWQpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKTtpZigoZj1uZXcgdShlKSkuY21wKHAubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJuIG4/aChmLHApOmMoZixwKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ5KSxyPW4oMTE1KSxvPW4oMTE2KSxzPW4oMyksYT1uKDY5KSx1PW4oMzEpLGM9bigxMTcpLGg9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbDtsPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGQsZj1pKHQpLHA9Zi5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihlLmxlbmd0aD5wfHxuZXcgcyhlKS5jbXAoZi5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtkPW4/YyhuZXcgcyhlKSxmKTphKGUsZik7dmFyIG09aC5hbGxvYyhwLWQubGVuZ3RoKTtpZihkPWguY29uY2F0KFttLGRdLHApLDQ9PT1sKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksaT11KCJzaGExIikudXBkYXRlKGguYWxsb2MoMCkpLmRpZ2VzdCgpLHM9aS5sZW5ndGg7aWYoMCE9PWVbMF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIGE9ZS5zbGljZSgxLHMrMSksYz1lLnNsaWNlKHMrMSksbD1vKGEscihjLHMpKSxkPW8oYyxyKGwsbi1zLTEpKTtpZihmdW5jdGlvbih0LGUpe3Q9aC5mcm9tKHQpLGU9aC5mcm9tKGUpO3ZhciBuPTAsaT10Lmxlbmd0aDt0Lmxlbmd0aCE9PWUubGVuZ3RoJiYobisrLGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpKTt2YXIgcj0tMTtmb3IoOysrcjxpOyluKz10W3JdXmVbcl07cmV0dXJuIG59KGksZC5zbGljZSgwLHMpKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgZj1zO2Zvcig7MD09PWRbZl07KWYrKztpZigxIT09ZFtmKytdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBkLnNsaWNlKGYpfShmLGQpO2lmKDE9PT1sKXJldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIGk9ZS5zbGljZSgwLDIpLHI9MixvPTA7Zm9yKDswIT09ZVtyKytdOylpZihyPj1lLmxlbmd0aCl7bysrO2JyZWFrfXZhciBzPWUuc2xpY2UoMixyLTEpOygiMDAwMiIhPT1pLnRvU3RyaW5nKCJoZXgiKSYmIW58fCIwMDAxIiE9PWkudG9TdHJpbmcoImhleCIpJiZuKSYmbysrO3MubGVuZ3RoPDgmJm8rKztpZihvKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBlLnNsaWNlKHIpfSgwLGQsbik7aWYoMz09PWwpcmV0dXJuIGQ7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gcigpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBvPW4oMSkscz1uKDI3KSxhPW8uQnVmZmVyLHU9by5rTWF4TGVuZ3RoLGM9dC5jcnlwdG98fHQubXNDcnlwdG8saD1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIGwodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQhPXQpdGhyb3cgbmV3IFR5cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSBudW1iZXIiKTtpZih0Pmh8fHQ8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQ+dXx8dD5lKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gZCh0LGUsbil7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0IT10KXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKHQ+aHx8dDwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQrZT5ufHx0PnUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBmKHQsZSxuLHIpe2lmKGkuYnJvd3Nlcil7dmFyIG89dC5idWZmZXIsYT1uZXcgVWludDhBcnJheShvLGUsbik7cmV0dXJuIGMuZ2V0UmFuZG9tVmFsdWVzKGEpLHI/dm9pZCBpLm5leHRUaWNrKGZ1bmN0aW9uKCl7cihudWxsLHQpfSk6dH1pZighcilyZXR1cm4gcyhuKS5jb3B5KHQsZSksdDtzKG4sZnVuY3Rpb24obixpKXtpZihuKXJldHVybiByKG4pO2kuY29weSh0LGUpLHIobnVsbCx0KX0pfWMmJmMuZ2V0UmFuZG9tVmFsdWVzfHwhaS5icm93c2VyPyhlLnJhbmRvbUZpbGw9ZnVuY3Rpb24oZSxuLGkscil7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbilyPW4sbj0wLGk9ZS5sZW5ndGg7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgaSlyPWksaT1lLmxlbmd0aC1uO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcignImNiIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtyZXR1cm4gbChuLGUubGVuZ3RoKSxkKGksbixlLmxlbmd0aCksZihlLG4saSxyKX0sZS5yYW5kb21GaWxsU3luYz1mdW5jdGlvbihlLG4saSl7dm9pZCAwPT09biYmKG49MCk7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtsKG4sZS5sZW5ndGgpLHZvaWQgMD09PWkmJihpPWUubGVuZ3RoLW4pO3JldHVybiBkKGksbixlLmxlbmd0aCksZihlLG4saSl9KTooZS5yYW5kb21GaWxsPXIsZS5yYW5kb21GaWxsU3luYz1yKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMubmFtZT10LHRoaXMuX3Rva2VuU3RydWN0dXJhbFByb3BlcnR5VD1udWxsfX0oKTtlLlRva2VuPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oODIpOyFmdW5jdGlvbih0KXt0LnV1aWQ0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KDE2KSxlPW5ldyBBcnJheSgyNTYpLG49MDtuPDE2OysrbillW25dPSIwIituLnRvU3RyaW5nKDE2KTtmb3Iobj0xNjtuPDI1NjsrK24pZVtuXT1uLnRvU3RyaW5nKDE2KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaS5SYW5kb20uZ2V0UmFuZG9tVmFsdWVzKHQpLHRbNl09NjR8MTUmdFs2XSx0WzhdPTEyOHw2MyZ0WzhdLGVbdFswXV0rZVt0WzFdXStlW3RbMl1dK2VbdFszXV0rIi0iK2VbdFs0XV0rZVt0WzVdXSsiLSIrZVt0WzZdXStlW3RbN11dKyItIitlW3RbOF1dK2VbdFs5XV0rIi0iK2VbdFsxMF1dK2VbdFsxMV1dK2VbdFsxMl1dK2VbdFsxM11dK2VbdFsxNF1dK2VbdFsxNV1dfX0oKX0oZS5VVUlEfHwoZS5VVUlEPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMykscj1uKDM4KTt0LmV4cG9ydHM9ZnVuY3Rpb24gdChlLG4sbyxzLGEpe3JldHVybiBlPT09bnx8KG51bGw9PWV8fG51bGw9PW58fCFyKGUpJiYhcihuKT9lIT1lJiZuIT1uOmkoZSxuLG8scyx0LGEpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzNCkscj1uKDEyNCksbz1uKDI2OCkscz1uKDI3MiksYT1uKDI5MyksdT1uKDczKSxjPW4oMTI1KSxoPW4oMTI2KSxsPTEsZD0iW29iamVjdCBBcmd1bWVudHNdIixmPSJbb2JqZWN0IEFycmF5XSIscD0iW29iamVjdCBPYmplY3RdIixtPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGcsdixiKXt2YXIgeT11KHQpLF89dShlKSx3PXk/ZjphKHQpLHg9Xz9mOmEoZSksTT0odz13PT1kP3A6dyk9PXAsUz0oeD14PT1kP3A6eCk9PXAsRT13PT14O2lmKEUmJmModCkpe2lmKCFjKGUpKXJldHVybiExO3k9ITAsTT0hMX1pZihFJiYhTSlyZXR1cm4gYnx8KGI9bmV3IGkpLHl8fGgodCk/cih0LGUsbixnLHYsYik6byh0LGUsdyxuLGcsdixiKTtpZighKG4mbCkpe3ZhciBBPU0mJm0uY2FsbCh0LCJfX3dyYXBwZWRfXyIpLEM9UyYmbS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoQXx8Qyl7dmFyIGs9QT90LnZhbHVlKCk6dCxPPUM/ZS52YWx1ZSgpOmU7cmV0dXJuIGJ8fChiPW5ldyBpKSx2KGssTyxuLGcsYil9fXJldHVybiEhRSYmKGJ8fChiPW5ldyBpKSxzKHQsZSxuLGcsdixiKSl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCkscj1uKDI0MCksbz1uKDI0MSkscz1uKDI0MiksYT1uKDI0MyksdT1uKDI0NCk7ZnVuY3Rpb24gYyh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBpKHQpO3RoaXMuc2l6ZT1lLnNpemV9Yy5wcm90b3R5cGUuY2xlYXI9cixjLnByb3RvdHlwZS5kZWxldGU9byxjLnByb3RvdHlwZS5nZXQ9cyxjLnByb3RvdHlwZS5oYXM9YSxjLnByb3RvdHlwZS5zZXQ9dSx0LmV4cG9ydHM9Y30sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpLHI9QXJyYXkucHJvdG90eXBlLnNwbGljZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4hKG48MHx8KG49PWUubGVuZ3RoLTE/ZS5wb3AoKTpyLmNhbGwoZSxuLDEpLC0tdGhpcy5zaXplLDApKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4gbjwwP3ZvaWQgMDplW25dWzFdfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLl9fZGF0YV9fLHQpPi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19kYXRhX18scj1pKG4sdCk7cmV0dXJuIHI8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltyXVsxXT1lLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1uZXcgaSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTApLHI9big3MSksbz1uKDEyMykscz0yMDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgaSl7dmFyIGE9bi5fX2RhdGFfXztpZighcnx8YS5sZW5ndGg8cy0xKXJldHVybiBhLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgbyhhKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMTkpLHI9bigyNDgpLG89bigxMjEpLHM9bigxMjIpLGE9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sdT1GdW5jdGlvbi5wcm90b3R5cGUsYz1PYmplY3QucHJvdG90eXBlLGg9dS50b1N0cmluZyxsPWMuaGFzT3duUHJvcGVydHksZD1SZWdFeHAoIl4iK2guY2FsbChsKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISghbyh0KXx8cih0KSkmJihpKHQpP2Q6YSkudGVzdChzKHQpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPU9iamVjdC5wcm90b3R5cGUsbz1yLmhhc093blByb3BlcnR5LHM9ci50b1N0cmluZyxhPWk/aS50b1N0cmluZ1RhZzp2b2lkIDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW8uY2FsbCh0LGEpLG49dFthXTt0cnl7dFthXT12b2lkIDA7dmFyIGk9ITB9Y2F0Y2godCl7fXZhciByPXMuY2FsbCh0KTtyZXR1cm4gaSYmKGU/dFthXT1uOmRlbGV0ZSB0W2FdKSxyfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9bigyNDkpLG89KGk9L1teLl0rJC8uZXhlYyhyJiZyLmtleXMmJnIua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK2k6IiI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhbyYmbyBpbiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTkpWyJfX2NvcmUtanNfc2hhcmVkX18iXTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1Mikscj1uKDUwKSxvPW4oNzEpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGksbWFwOm5ldyhvfHxyKSxzdHJpbmc6bmV3IGl9fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjUzKSxyPW4oMjU0KSxvPW4oMjU1KSxzPW4oMjU2KSxhPW4oMjU3KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUyKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWk/aShudWxsKTp7fSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTIpLHI9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihpKXt2YXIgbj1lW3RdO3JldHVybiBuPT09cj92b2lkIDA6bn1yZXR1cm4gby5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiBpP3ZvaWQgMCE9PWVbdF06ci5jYWxsKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsblt0XT1pJiZ2b2lkIDA9PT1lP3I6ZSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09ZXx8Im51bWJlciI9PWV8fCJzeW1ib2wiPT1lfHwiYm9vbGVhbiI9PWU/Il9fcHJvdG9fXyIhPT10Om51bGw9PT10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQpLmdldCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0KS5oYXModCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0aGlzLHQpLHI9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1yPzA6MSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTIzKSxyPW4oMjY0KSxvPW4oMjY1KTtmdW5jdGlvbiBzKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBpOysrZTxuOyl0aGlzLmFkZCh0W2VdKX1zLnByb3RvdHlwZS5hZGQ9cy5wcm90b3R5cGUucHVzaD1yLHMucHJvdG90eXBlLmhhcz1vLHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUpe3ZhciBuPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsbiksdGhpc319LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzKGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNzIpLHI9bigyNjkpLG89bigxMTgpLHM9bigxMjQpLGE9bigyNzApLHU9bigyNzEpLGM9MSxoPTIsbD0iW29iamVjdCBCb29sZWFuXSIsZD0iW29iamVjdCBEYXRlXSIsZj0iW29iamVjdCBFcnJvcl0iLHA9IltvYmplY3QgTWFwXSIsbT0iW29iamVjdCBOdW1iZXJdIixnPSJbb2JqZWN0IFJlZ0V4cF0iLHY9IltvYmplY3QgU2V0XSIsYj0iW29iamVjdCBTdHJpbmddIix5PSJbb2JqZWN0IFN5bWJvbF0iLF89IltvYmplY3QgQXJyYXlCdWZmZXJdIix3PSJbb2JqZWN0IERhdGFWaWV3XSIseD1pP2kucHJvdG90eXBlOnZvaWQgMCxNPXg/eC52YWx1ZU9mOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSx4LFMsRSl7c3dpdGNoKG4pe2Nhc2UgdzppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgXzpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhUyhuZXcgcih0KSxuZXcgcihlKSkpO2Nhc2UgbDpjYXNlIGQ6Y2FzZSBtOnJldHVybiBvKCt0LCtlKTtjYXNlIGY6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIGc6Y2FzZSBiOnJldHVybiB0PT1lKyIiO2Nhc2UgcDp2YXIgQT1hO2Nhc2Ugdjp2YXIgQz1pJmM7aWYoQXx8KEE9dSksdC5zaXplIT1lLnNpemUmJiFDKXJldHVybiExO3ZhciBrPUUuZ2V0KHQpO2lmKGspcmV0dXJuIGs9PWU7aXw9aCxFLnNldCh0LGUpO3ZhciBPPXMoQSh0KSxBKGUpLGkseCxTLEUpO3JldHVybiBFLmRlbGV0ZSh0KSxPO2Nhc2UgeTppZihNKXJldHVybiBNLmNhbGwodCk9PU0uY2FsbChlKX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDE5KS5VaW50OEFycmF5O3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LGkpe25bKytlXT1baSx0XX0pLG59fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtuWysrZV09dH0pLG59fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNzMpLHI9MSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHMsYSx1KXt2YXIgYz1uJnIsaD1pKHQpLGw9aC5sZW5ndGg7aWYobCE9aShlKS5sZW5ndGgmJiFjKXJldHVybiExO2Zvcih2YXIgZD1sO2QtLTspe3ZhciBmPWhbZF07aWYoIShjP2YgaW4gZTpvLmNhbGwoZSxmKSkpcmV0dXJuITF9dmFyIHA9dS5nZXQodCk7aWYocCYmdS5nZXQoZSkpcmV0dXJuIHA9PWU7dmFyIG09ITA7dS5zZXQodCxlKSx1LnNldChlLHQpO2Zvcih2YXIgZz1jOysrZDxsOyl7dmFyIHY9dFtmPWhbZF1dLGI9ZVtmXTtpZihzKXZhciB5PWM/cyhiLHYsZixlLHQsdSk6cyh2LGIsZix0LGUsdSk7aWYoISh2b2lkIDA9PT15P3Y9PT1ifHxhKHYsYixuLHMsdSk6eSkpe209ITE7YnJlYWt9Z3x8KGc9ImNvbnN0cnVjdG9yIj09Zil9aWYobSYmIWcpe3ZhciBfPXQuY29uc3RydWN0b3Isdz1lLmNvbnN0cnVjdG9yO18hPXcmJiJjb25zdHJ1Y3RvciJpbiB0JiYiY29uc3RydWN0b3IiaW4gZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgXyYmXyBpbnN0YW5jZW9mIF8mJiJmdW5jdGlvbiI9PXR5cGVvZiB3JiZ3IGluc3RhbmNlb2YgdykmJihtPSExKX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSksbX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NCkscj1uKDI3Niksbz1uKDI3OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsbyxyKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NSkscj1uKDczKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBvPWUodCk7cmV0dXJuIHIodCk/bzppKG8sbih0KSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPWUubGVuZ3RoLHI9dC5sZW5ndGg7KytuPGk7KXRbcituXT1lW25dO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjc3KSxyPW4oMjc4KSxvPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUscz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGE9cz9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksaShzKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBvLmNhbGwodCxlKX0pKX06cjt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGgscj0wLG89W107KytuPGk7KXt2YXIgcz10W25dO2UocyxuLHQpJiYob1tyKytdPXMpfXJldHVybiBvfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MCkscj1uKDI4OSksbz1uKDI5Mik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpP2kodCk6cih0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MSkscj1uKDI4Miksbz1uKDczKSxzPW4oMTI1KSxhPW4oMjg1KSx1PW4oMTI2KSxjPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49byh0KSxoPSFuJiZyKHQpLGw9IW4mJiFoJiZzKHQpLGQ9IW4mJiFoJiYhbCYmdSh0KSxmPW58fGh8fGx8fGQscD1mP2kodC5sZW5ndGgsU3RyaW5nKTpbXSxtPXAubGVuZ3RoO2Zvcih2YXIgZyBpbiB0KSFlJiYhYy5jYWxsKHQsZyl8fGYmJigibGVuZ3RoIj09Z3x8bCYmKCJvZmZzZXQiPT1nfHwicGFyZW50Ij09Zyl8fGQmJigiYnVmZmVyIj09Z3x8ImJ5dGVMZW5ndGgiPT1nfHwiYnl0ZU9mZnNldCI9PWcpfHxhKGcsbSkpfHxwLnB1c2goZyk7cmV0dXJuIHB9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPUFycmF5KHQpOysrbjx0OylpW25dPWUobik7cmV0dXJuIGl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODMpLHI9bigzOCksbz1PYmplY3QucHJvdG90eXBlLHM9by5oYXNPd25Qcm9wZXJ0eSxhPW8ucHJvcGVydHlJc0VudW1lcmFibGUsdT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/aTpmdW5jdGlvbih0KXtyZXR1cm4gcih0KSYmcy5jYWxsKHQsImNhbGxlZSIpJiYhYS5jYWxsKHQsImNhbGxlZSIpfTt0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigzOCksbz0iW29iamVjdCBBcmd1bWVudHNdIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIodCkmJmkodCk9PW99fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiExfX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxLGk9L14oPzowfFsxLTldXGQqKSQvO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXR5cGVvZiB0O3JldHVybiEhKGU9bnVsbD09ZT9uOmUpJiYoIm51bWJlciI9PXJ8fCJzeW1ib2wiIT1yJiZpLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTI3KSxvPW4oMzgpLHM9e307c1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09c1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09c1siW29iamVjdCBJbnQ4QXJyYXldIl09c1siW29iamVjdCBJbnQxNkFycmF5XSJdPXNbIltvYmplY3QgSW50MzJBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09c1siW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXNbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsc1siW29iamVjdCBBcmd1bWVudHNdIl09c1siW29iamVjdCBBcnJheV0iXT1zWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPXNbIltvYmplY3QgQm9vbGVhbl0iXT1zWyJbb2JqZWN0IERhdGFWaWV3XSJdPXNbIltvYmplY3QgRGF0ZV0iXT1zWyJbb2JqZWN0IEVycm9yXSJdPXNbIltvYmplY3QgRnVuY3Rpb25dIl09c1siW29iamVjdCBNYXBdIl09c1siW29iamVjdCBOdW1iZXJdIl09c1siW29iamVjdCBPYmplY3RdIl09c1siW29iamVjdCBSZWdFeHBdIl09c1siW29iamVjdCBTZXRdIl09c1siW29iamVjdCBTdHJpbmddIl09c1siW29iamVjdCBXZWFrTWFwXSJdPSExLHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbyh0KSYmcih0Lmxlbmd0aCkmJiEhc1tpKHQpXX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKX19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTIwKSxyPWUmJiFlLm5vZGVUeXBlJiZlLG89ciYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiYhdC5ub2RlVHlwZSYmdCxzPW8mJm8uZXhwb3J0cz09PXImJmkucHJvY2VzcyxhPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW8mJm8ucmVxdWlyZSYmby5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fHMmJnMuYmluZGluZyYmcy5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKTt0LmV4cG9ydHM9YX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5MCkscj1uKDI5MSksbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4gcih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gT2JqZWN0KHQpKW8uY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9fSxmdW5jdGlvbih0LGUpe3ZhciBuPU9iamVjdC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvdG90eXBlfHxuKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEyOCkoT2JqZWN0LmtleXMsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTE5KSxyPW4oMTI3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnIodC5sZW5ndGgpJiYhaSh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5NCkscj1uKDcxKSxvPW4oMjk1KSxzPW4oMjk2KSxhPW4oMjk3KSx1PW4oMzcpLGM9bigxMjIpLGg9YyhpKSxsPWMociksZD1jKG8pLGY9YyhzKSxwPWMoYSksbT11OyhpJiYiW29iamVjdCBEYXRhVmlld10iIT1tKG5ldyBpKG5ldyBBcnJheUJ1ZmZlcigxKSkpfHxyJiYiW29iamVjdCBNYXBdIiE9bShuZXcgcil8fG8mJiJbb2JqZWN0IFByb21pc2VdIiE9bShvLnJlc29sdmUoKSl8fHMmJiJbb2JqZWN0IFNldF0iIT1tKG5ldyBzKXx8YSYmIltvYmplY3QgV2Vha01hcF0iIT1tKG5ldyBhKSkmJihtPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCksbj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxpPW4/YyhuKToiIjtpZihpKXN3aXRjaChpKXtjYXNlIGg6cmV0dXJuIltvYmplY3QgRGF0YVZpZXddIjtjYXNlIGw6cmV0dXJuIltvYmplY3QgTWFwXSI7Y2FzZSBkOnJldHVybiJbb2JqZWN0IFByb21pc2VdIjtjYXNlIGY6cmV0dXJuIltvYmplY3QgU2V0XSI7Y2FzZSBwOnJldHVybiJbb2JqZWN0IFdlYWtNYXBdIn1yZXR1cm4gZX0pLHQuZXhwb3J0cz1tfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIkRhdGFWaWV3Iik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5KShuKDE5KSwiUHJvbWlzZSIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIlNldCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIldlYWtNYXAiKTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigyOTkpLG89bigzOCkscz0iW29iamVjdCBPYmplY3RdIixhPUZ1bmN0aW9uLnByb3RvdHlwZSx1PU9iamVjdC5wcm90b3R5cGUsYz1hLnRvU3RyaW5nLGg9dS5oYXNPd25Qcm9wZXJ0eSxsPWMuY2FsbChPYmplY3QpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbyh0KXx8aSh0KSE9cylyZXR1cm4hMTt2YXIgZT1yKHQpO2lmKG51bGw9PT1lKXJldHVybiEwO3ZhciBuPWguY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmYy5jYWxsKG4pPT1sfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTI4KShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDI1KTtlLnNldD1mdW5jdGlvbih0LGUsbil7aWYobnVsbD09dClyZXR1cm4gdGhpczt2YXIgbztpZigib2JqZWN0Ij09dHlwZW9mIHQ/KG89dCxuPWUpOihvPXt9KVt0XT1lLG58fChuPXt9KSwhdGhpcy5fdmFsaWRhdGUobyxuKSlyZXR1cm4hMTt2YXIgcz1uLnVuc2V0LGE9bi5zaWxlbnQsdT1bXSxjPXRoaXMuX2NoYW5naW5nO3RoaXMuX2NoYW5naW5nPSEwLGN8fCh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM9aSh7fSx0aGlzLmF0dHJpYnV0ZXMpLHRoaXMuY2hhbmdlZD17fSk7dmFyIGg9dGhpcy5hdHRyaWJ1dGVzLGw9dGhpcy5jaGFuZ2VkLGQ9dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzO2Zvcih2YXIgZiBpbiBvKWU9b1tmXSxyLmlzRXF1YWwoaFtmXSxlKXx8dS5wdXNoKGYpLHIuaXNFcXVhbChkW2ZdLGUpP2RlbGV0ZSBsW2ZdOmxbZl09ZSxzP2RlbGV0ZSBoW2ZdOmhbZl09ZTtpZih0aGlzLmlkPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpLCFhKXt1Lmxlbmd0aCYmKHRoaXMuX3BlbmRpbmc9bik7Zm9yKHZhciBwPTA7cDx1Lmxlbmd0aDtwKyspdGhpcy50cmlnZ2VyKCJjaGFuZ2U6Iit1W3BdLHRoaXMsaFt1W3BdXSxuKX1pZihjKXJldHVybiB0aGlzO2lmKCFhKWZvcig7dGhpcy5fcGVuZGluZzspbj10aGlzLl9wZW5kaW5nLHRoaXMuX3BlbmRpbmc9ITEsdGhpcy50cmlnZ2VyKCJjaGFuZ2UiLHRoaXMsbik7cmV0dXJuIHRoaXMuX3BlbmRpbmc9ITEsdGhpcy5fY2hhbmdpbmc9ITEsdGhpc319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTI5KSxzPUVsZW1lbnQucHJvdG90eXBlLGE9cy5tYXRjaGVzfHxzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHMubXNNYXRjaGVzU2VsZWN0b3J8fHMub01hdGNoZXNTZWxlY3Rvcnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksbj1lLmxlbmd0aDstLW4+PTAmJmUuaXRlbShuKSE9PXRoaXM7KTtyZXR1cm4gbj4tMX0sdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9yZW1vdmVFbGVtZW50PWZ1bmN0aW9uKCl7dGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdGhpcy5lbC5wYXJlbnROb2RlJiZ0aGlzLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbCl9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3RoaXMuZWw9dH0sZS5wcm90b3R5cGUuX3NldEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpZSBpbiB0aGlzLmVsP3RoaXMuZWxbZV09dFtlXTp0aGlzLmVsLnNldEF0dHJpYnV0ZShlLHRbZV0pfSxlLnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbih0LGUsbil7InN0cmluZyIhPXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdm9pZCAwPT09dGhpcy5fZG9tRXZlbnRzJiYodGhpcy5fZG9tRXZlbnRzPVtdKTt2YXIgaT10aGlzLmVsLHI9ZT9mdW5jdGlvbih0KXtmb3IodmFyIHI9dC50YXJnZXR8fHQuc3JjRWxlbWVudDtyJiZyIT09aTtyPXIucGFyZW50Tm9kZSlpZihhLmNhbGwocixlKSlyZXR1cm4gdC5kZWxlZ2F0ZVRhcmdldD1yLG4uaGFuZGxlRXZlbnQ/bi5oYW5kbGVFdmVudCh0KTpuKHQpfTpuO3JldHVybiB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIodCxyLCExKSx0aGlzLl9kb21FdmVudHMucHVzaCh7ZXZlbnROYW1lOnQsaGFuZGxlcjpyLGxpc3RlbmVyOm4sc2VsZWN0b3I6ZX0pLHJ9LGUucHJvdG90eXBlLnVuZGVsZWdhdGU9ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKWZvcih2YXIgaT10aGlzLl9kb21FdmVudHMuc2xpY2UoKSxyPWkubGVuZ3RoO3ItLTspe3ZhciBvPWlbcl07IShvLmV2ZW50TmFtZSE9PXR8fG4mJm8ubGlzdGVuZXIhPT1ufHxlJiZvLnNlbGVjdG9yIT09ZSkmJih0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoby5ldmVudE5hbWUsby5oYW5kbGVyLCExKSx0aGlzLl9kb21FdmVudHMuc3BsaWNlKHIsMSkpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS51bmRlbGVnYXRlRXZlbnRzPWZ1bmN0aW9uKCl7aWYodGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKXtmb3IodmFyIHQ9dGhpcy5fZG9tRXZlbnRzLmxlbmd0aCxlPTA7ZTx0O2UrKyl7dmFyIG49dGhpcy5fZG9tRXZlbnRzW2VdO3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLmV2ZW50TmFtZSxuLmhhbmRsZXIsITEpfXRoaXMuX2RvbUV2ZW50cy5sZW5ndGg9MH1yZXR1cm4gdGhpc30sZX0oby5WaWV3KTtlLk5hdGl2ZVZpZXc9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpLHI9KGk9aTwwP01hdGgubWF4KDAsaStvKTpNYXRoLm1pbihpLG8tMSkpPG4/aSsxKyhvLW4pOmktbisxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuK3MpJW87aWYodFthXT09PWUpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZih0W2FdPT09ZSlyZXR1cm4gYX1yZXR1cm4tMX1mdW5jdGlvbiBpKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPS0xKTt2YXIgcixvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybi0xO249bjwwP01hdGgubWF4KDAsbitvKTpNYXRoLm1pbihuLG8tMSkscj0oaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk8bj9pKzErKG8tbik6aS1uKzE7Zm9yKHZhciBzPTA7czxyOysrcyl7dmFyIGE9KG4rcyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gcih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbyh0LGUsbil7dm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49LTEpO3ZhciBpPXQubGVuZ3RoO2lmKCEoaTw9MSkpZm9yKGU9ZTwwP01hdGgubWF4KDAsZStpKTpNYXRoLm1pbihlLGktMSksbj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKTtlPG47KXt2YXIgcj10W2VdLG89dFtuXTt0W2UrK109byx0W24tLV09cn19ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKGU8MCYmKGUrPW4pLCEoZTwwfHxlPj1uKSl7Zm9yKHZhciBpPXRbZV0scj1lKzE7cjxuOysrcil0W3ItMV09dFtyXTtyZXR1cm4gdC5sZW5ndGg9bi0xLGl9fXQuZmlyc3RJbmRleE9mPWUsdC5sYXN0SW5kZXhPZj1uLHQuZmluZEZpcnN0SW5kZXg9aSx0LmZpbmRMYXN0SW5kZXg9cix0LmZpbmRGaXJzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PXImJihyPS0xKTt2YXIgbz1pKHQsZSxuLHIpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5maW5kTGFzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPS0xKSx2b2lkIDA9PT1pJiYoaT0wKTt2YXIgbz1yKHQsZSxuLGkpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5sb3dlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKTwwPyhzPWMrMSxhLT11KzEpOmE9dX1yZXR1cm4gc30sdC51cHBlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKT4wP2E9dToocz1jKzEsYS09dSsxKX1yZXR1cm4gc30sdC5tb3ZlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10Lmxlbmd0aDtpZighKGk8PTEpJiYoZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaS0xKSkhPT0obj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKSkpe2Zvcih2YXIgcj10W2VdLG89ZTxuPzE6LTEscz1lO3MhPT1uO3MrPW8pdFtzXT10W3Mrb107dFtuXT1yfX0sdC5yZXZlcnNlPW8sdC5yb3RhdGU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKCEocjw9MXx8KG49bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSkpPj0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSkpKXt2YXIgcz1pLW4rMTtpZihlPjA/ZSU9czplPDAmJihlPShlJXMrcyklcyksMCE9PWUpe3ZhciBhPW4rZTtvKHQsbixhLTEpLG8odCxhLGkpLG8odCxuLGkpfX19LHQuZmlsbD1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMCE9PXIpe3ZhciBvO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksbz0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSk8bj9pKzErKHItbik6aS1uKzE7Zm9yKHZhciBzPTA7czxvOysrcyl0WyhuK3MpJXJdPWV9fSx0Lmluc2VydD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5sZW5ndGg7ZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaSk7Zm9yKHZhciByPWk7cj5lOy0tcil0W3JdPXRbci0xXTt0W2VdPW59LHQucmVtb3ZlQXQ9cyx0LnJlbW92ZUZpcnN0T2Y9ZnVuY3Rpb24odCxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPWUodCxuLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVMYXN0T2Y9ZnVuY3Rpb24odCxlLGkscil7dm9pZCAwPT09aSYmKGk9LTEpLHZvaWQgMD09PXImJihyPTApO3ZhciBvPW4odCxlLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVBbGxPZj1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuIDA7bj1uPDA/TWF0aC5tYXgoMCxuK3IpOk1hdGgubWluKG4sci0xKSxpPWk8MD9NYXRoLm1heCgwLGkrcik6TWF0aC5taW4oaSxyLTEpO2Zvcih2YXIgbz0wLHM9MDtzPHI7KytzKW48PWkmJnM+PW4mJnM8PWkmJnRbc109PT1lP28rKzppPG4mJihzPD1pfHxzPj1uKSYmdFtzXT09PWU/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfSx0LnJlbW92ZUZpcnN0V2hlcmU9ZnVuY3Rpb24odCxlLG4scil7dmFyIG87dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBhPWkodCxlLG4scik7cmV0dXJuLTEhPT1hJiYobz1zKHQsYSkpLHtpbmRleDphLHZhbHVlOm99fSx0LnJlbW92ZUxhc3RXaGVyZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgbzt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIGE9cih0LGUsbixpKTtyZXR1cm4tMSE9PWEmJihvPXModCxhKSkse2luZGV4OmEsdmFsdWU6b319LHQucmVtb3ZlQWxsV2hlcmU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKTtmb3IodmFyIG89MCxzPTA7czxyOysrcyluPD1pJiZzPj1uJiZzPD1pJiZlKHRbc10scyk/bysrOmk8biYmKHM8PWl8fHM+PW4pJiZlKHRbc10scyk/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfX0oZS5BcnJheUV4dHx8KGUuQXJyYXlFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS5jaGFpbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gbmV3IHIoaS5pdGVyKHQubWFwKGkuaXRlcikpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2Nsb25lZD0hMSx0aGlzLl9zb3VyY2U9dCx0aGlzLl9hY3RpdmU9dm9pZCAwfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCkpO3JldHVybiBlLl9hY3RpdmU9dGhpcy5fYWN0aXZlJiZ0aGlzLl9hY3RpdmUuY2xvbmUoKSxlLl9jbG9uZWQ9ITAsdGhpcy5fY2xvbmVkPSEwLGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih2b2lkIDA9PT10aGlzLl9hY3RpdmUpe3ZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCk7aWYodm9pZCAwPT09dClyZXR1cm47dGhpcy5fYWN0aXZlPXRoaXMuX2Nsb25lZD90LmNsb25lKCk6dH12YXIgZT10aGlzLl9hY3RpdmUubmV4dCgpO3JldHVybiB2b2lkIDAhPT1lP2U6KHRoaXMuX2FjdGl2ZT12b2lkIDAsdGhpcy5uZXh0KCkpfSx0fSgpO2UuQ2hhaW5JdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpfTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHR9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXt9LHR9KCk7ZS5FbXB0eUl0ZXJhdG9yPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuZmlsdGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5fZm4sbj10aGlzLl9zb3VyY2U7dm9pZCAwIT09KHQ9bi5uZXh0KCkpOylpZihlKHQsdGhpcy5faW5kZXgrKykpcmV0dXJuIHR9LHR9KCk7ZS5GaWx0ZXJJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDE4KTtlLmZpbmQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aS5pdGVyKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoZShuLHIrKykpcmV0dXJuIG59LGUubWluPWZ1bmN0aW9uKHQsZSl7dmFyIG49aS5pdGVyKHQpLHI9bi5uZXh0KCk7aWYodm9pZCAwIT09cil7Zm9yKHZhciBvPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MCYmKG89cik7cmV0dXJuIG99fSxlLm1heD1mdW5jdGlvbih0LGUpe3ZhciBuPWkuaXRlcih0KSxyPW4ubmV4dCgpO2lmKHZvaWQgMCE9PXIpe2Zvcih2YXIgbz1yO3ZvaWQgMCE9PShyPW4ubmV4dCgpKTspZShyLG8pPjAmJihvPXIpO3JldHVybiBvfX0sZS5taW5tYXg9ZnVuY3Rpb24odCxlKXt2YXIgbj1pLml0ZXIodCkscj1uLm5leHQoKTtpZih2b2lkIDAhPT1yKXtmb3IodmFyIG89cixzPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MD9vPXI6ZShyLHMpPjAmJihzPXIpO3JldHVybltvLHNdfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UubWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9mbi5jYWxsKHZvaWQgMCx0LHRoaXMuX2luZGV4KyspfSx0fSgpO2UuTWFwSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yYW5nZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWU/bmV3IHIoMCx0LDEpOm5ldyByKHQsZSx2b2lkIDA9PT1uPzE6bil9O3ZhciBpLHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLl9pbmRleD0wLHRoaXMuX3N0YXJ0PXQsdGhpcy5fc3RvcD1lLHRoaXMuX3N0ZXA9bix0aGlzLl9sZW5ndGg9aS5yYW5nZUxlbmd0aCh0LGUsbil9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdCh0aGlzLl9zdGFydCx0aGlzLl9zdG9wLHRoaXMuX3N0ZXApO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYoISh0aGlzLl9pbmRleD49dGhpcy5fbGVuZ3RoKSlyZXR1cm4gdGhpcy5fc3RhcnQrdGhpcy5fc3RlcCp0aGlzLl9pbmRleCsrfSx0fSgpO2UuUmFuZ2VJdGVyYXRvcj1yLGZ1bmN0aW9uKHQpe3QucmFuZ2VMZW5ndGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiAwPT09bj8xLzA6dD5lJiZuPjA/MDp0PGUmJm48MD8wOk1hdGguY2VpbCgoZS10KS9uKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UucmVkdWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLG89aS5pdGVyKHQpLHM9by5uZXh0KCk7aWYodm9pZCAwPT09cyYmdm9pZCAwPT09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmFibGUgd2l0aCBubyBpbml0aWFsIHZhbHVlLiIpO2lmKHZvaWQgMD09PXMpcmV0dXJuIG47dmFyIGEsdSxjPW8ubmV4dCgpO2lmKHZvaWQgMD09PWMmJnZvaWQgMD09PW4pcmV0dXJuIHM7aWYodm9pZCAwPT09YylyZXR1cm4gZShuLHMscisrKTtmb3IoYT1lKHZvaWQgMD09PW4/czplKG4scyxyKyspLGMscisrKTt2b2lkIDAhPT0odT1vLm5leHQoKSk7KWE9ZShhLHUscisrKTtyZXR1cm4gYX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVwZWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBpKHQsZSl9LGUub25jZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkodCwxKX07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fdmFsdWU9dCx0aGlzLl9jb3VudD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3ZhbHVlLHRoaXMuX2NvdW50KX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5fY291bnQ8PTApKXJldHVybiB0aGlzLl9jb3VudC0tLHRoaXMuX3ZhbHVlfSx0fSgpO2UuUmVwZWF0SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXRybz1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5yZXRybz90LnJldHJvKCk6bmV3IGkodCl9O3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9zb3VyY2U9dCx0aGlzLl9pbmRleD10Lmxlbmd0aC0xfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlKTtyZXR1cm4gZS5faW5kZXg9dGhpcy5faW5kZXgsZX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5faW5kZXg8MHx8dGhpcy5faW5kZXg+PXRoaXMuX3NvdXJjZS5sZW5ndGgpKXJldHVybiB0aGlzLl9zb3VyY2VbdGhpcy5faW5kZXgtLV19LHR9KCk7ZS5SZXRyb0FycmF5SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50b3BvbG9naWNTb3J0PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49bmV3IFNldCxyPW5ldyBNYXA7cmV0dXJuIGkuZWFjaCh0LGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9ci5nZXQobik7aT9pLnB1c2goZSk6ci5zZXQobixbZV0pfSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7byhlKX0pLGU7ZnVuY3Rpb24gbyh0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciBpPXIuZ2V0KHQpO2kmJmkuZm9yRWFjaChvKSxlLnB1c2godCl9fX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2Uuc3RyaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fc3RlcD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5jbG9uZSgpLHRoaXMuX3N0ZXApfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCksZT10aGlzLl9zdGVwLTE7ZT4wOy0tZSl0aGlzLl9zb3VyY2UubmV4dCgpO3JldHVybiB0fSx0fSgpO2UuU3RyaWRlSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbil7dm9pZCAwPT09biYmKG49MCk7Zm9yKHZhciBpPW5ldyBBcnJheShlLmxlbmd0aCkscj0wLG89bixzPWUubGVuZ3RoO3I8czsrK3IsKytvKXtpZigtMT09PShvPXQuaW5kZXhPZihlW3JdLG8pKSlyZXR1cm4gbnVsbDtpW3JdPW99cmV0dXJuIGl9dC5maW5kSW5kaWNlcz1lLHQubWF0Y2hTdW1PZlNxdWFyZXM9ZnVuY3Rpb24odCxuLGkpe3ZvaWQgMD09PWkmJihpPTApO3ZhciByPWUodCxuLGkpO2lmKCFyKXJldHVybiBudWxsO2Zvcih2YXIgbz0wLHM9MCxhPXIubGVuZ3RoO3M8YTsrK3Mpe3ZhciB1PXJbc10taTtvKz11KnV9cmV0dXJue3Njb3JlOm8saW5kaWNlczpyfX0sdC5tYXRjaFN1bU9mRGVsdGFzPWZ1bmN0aW9uKHQsbixpKXt2b2lkIDA9PT1pJiYoaT0wKTt2YXIgcj1lKHQsbixpKTtpZighcilyZXR1cm4gbnVsbDtmb3IodmFyIG89MCxzPWktMSxhPTAsdT1yLmxlbmd0aDthPHU7KythKXt2YXIgYz1yW2FdO28rPWMtcy0xLHM9Y31yZXR1cm57c2NvcmU6byxpbmRpY2VzOnJ9fSx0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9MCxvPTAscz1lLmxlbmd0aDtyPHM7KXtmb3IodmFyIGE9ZVtyXSx1PWVbcl07KytyPHMmJmVbcl09PT11KzE7KXUrKztvPGEmJmkucHVzaCh0LnNsaWNlKG8sYSkpLGE8dSsxJiZpLnB1c2gobih0LnNsaWNlKGEsdSsxKSkpLG89dSsxfXJldHVybiBvPHQubGVuZ3RoJiZpLnB1c2godC5zbGljZShvKSksaX19KGUuU3RyaW5nRXh0fHwoZS5TdHJpbmdFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50YWtlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fY291bnQ9ZX1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9zb3VyY2UuY2xvbmUoKSx0aGlzLl9jb3VudCl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2NvdW50PD0wKSl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9jb3VudC0tLHR9fSx0fSgpO2UuVGFrZUl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuemlwPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgcih0Lm1hcChpLml0ZXIpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3NvdXJjZT10fXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xvbmUoKX0pKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkodGhpcy5fc291cmNlLmxlbmd0aCksZT0wLG49dGhpcy5fc291cmNlLmxlbmd0aDtlPG47KytlKXt2YXIgaT10aGlzLl9zb3VyY2VbZV0ubmV4dCgpO2lmKHZvaWQgMD09PWkpcmV0dXJuO3RbZV09aX1yZXR1cm4gdH0sdH0oKTtlLlppcEl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3QuYm94U2l6aW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLmJvcmRlclRvcFdpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5ib3JkZXJMZWZ0V2lkdGgpfHwwLHI9cGFyc2VGbG9hdChlLmJvcmRlclJpZ2h0V2lkdGgpfHwwLG89cGFyc2VGbG9hdChlLmJvcmRlckJvdHRvbVdpZHRoKXx8MCxzPXBhcnNlRmxvYXQoZS5wYWRkaW5nVG9wKXx8MCxhPXBhcnNlRmxvYXQoZS5wYWRkaW5nTGVmdCl8fDAsdT1wYXJzZUZsb2F0KGUucGFkZGluZ1JpZ2h0KXx8MCxjPXBhcnNlRmxvYXQoZS5wYWRkaW5nQm90dG9tKXx8MDtyZXR1cm57Ym9yZGVyVG9wOm4sYm9yZGVyTGVmdDppLGJvcmRlclJpZ2h0OnIsYm9yZGVyQm90dG9tOm8scGFkZGluZ1RvcDpzLHBhZGRpbmdMZWZ0OmEscGFkZGluZ1JpZ2h0OnUscGFkZGluZ0JvdHRvbTpjLGhvcml6b250YWxTdW06aSthK3Urcix2ZXJ0aWNhbFN1bTpuK3MrYytvfX0sdC5zaXplTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLm1pbldpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5taW5IZWlnaHQpfHwwLHI9cGFyc2VGbG9hdChlLm1heFdpZHRoKXx8MS8wLG89cGFyc2VGbG9hdChlLm1heEhlaWdodCl8fDEvMDtyZXR1cm57bWluV2lkdGg6bixtaW5IZWlnaHQ6aSxtYXhXaWR0aDpyPU1hdGgubWF4KG4sciksbWF4SGVpZ2h0Om89TWF0aC5tYXgoaSxvKX19LHQuaGl0VGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZT49aS5sZWZ0JiZlPGkucmlnaHQmJm4+PWkudG9wJiZuPGkuYm90dG9tfSx0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpLnRvcDw9bi50b3AmJmkuYm90dG9tPj1uLmJvdHRvbXx8KGkudG9wPG4udG9wJiZpLmhlaWdodDw9bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkuYm90dG9tPm4uYm90dG9tJiZpLmhlaWdodD49bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkudG9wPG4udG9wJiZpLmhlaWdodD5uLmhlaWdodD90LnNjcm9sbFRvcC09bi5ib3R0b20taS5ib3R0b206aS5ib3R0b20+bi5ib3R0b20mJmkuaGVpZ2h0PG4uaGVpZ2h0JiYodC5zY3JvbGxUb3AtPW4uYm90dG9tLWkuYm90dG9tKSl9fShlLkVsZW1lbnRFeHR8fChlLkVsZW1lbnRFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dC5JU19NQUM9ISFuYXZpZ2F0b3IucGxhdGZvcm0ubWF0Y2goL01hYy9pKSx0LklTX1dJTj0hIW5hdmlnYXRvci5wbGF0Zm9ybS5tYXRjaCgvV2luL2kpLHQuSVNfSUU9L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdC5JU19FREdFPS9FZGdlLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfShlLlBsYXRmb3JtfHwoZS5QbGF0Zm9ybT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LmNhbGN1bGF0ZVNwZWNpZmljaXR5PWZ1bmN0aW9uKHQpe2lmKHQgaW4gaS5zcGVjaWZpY2l0eUNhY2hlKXJldHVybiBpLnNwZWNpZmljaXR5Q2FjaGVbdF07dmFyIGU9aS5jYWxjdWxhdGVTaW5nbGUodCk7cmV0dXJuIGkuc3BlY2lmaWNpdHlDYWNoZVt0XT1lfSx0LmlzVmFsaWQ9ZnVuY3Rpb24odCl7aWYodCBpbiBpLnZhbGlkaXR5Q2FjaGUpcmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XTt2YXIgZT0hMDt0cnl7aS50ZXN0RWxlbS5xdWVyeVNlbGVjdG9yKHQpfWNhdGNoKHQpe2U9ITF9cmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XT1lfSx0Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5wcm90b01hdGNoRnVuYy5jYWxsKHQsZSl9fShlLlNlbGVjdG9yfHwoZS5TZWxlY3Rvcj17fSkpLGZ1bmN0aW9uKHQpe3ZhciBlO3Quc3BlY2lmaWNpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudmFsaWRpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudGVzdEVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5wcm90b01hdGNoRnVuYz0oZT1FbGVtZW50LnByb3RvdHlwZSkubWF0Y2hlc3x8ZS5tYXRjaGVzU2VsZWN0b3J8fGUubW96TWF0Y2hlc1NlbGVjdG9yfHxlLm1zTWF0Y2hlc1NlbGVjdG9yfHxlLm9NYXRjaGVzU2VsZWN0b3J8fGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxmdW5jdGlvbih0KXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KTtyZXR1cm4tMSE9PUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0aGlzKX0sdC5jYWxjdWxhdGVTaW5nbGU9ZnVuY3Rpb24odCl7dmFyIGU9MCxoPTAsbD0wO2Z1bmN0aW9uIGQoZSl7dmFyIG49dC5tYXRjaChlKTtyZXR1cm4gbnVsbCE9PW4mJih0PXQuc2xpY2UoblswXS5sZW5ndGgpLCEwKX1mb3IodD0odD10LnNwbGl0KCIsIiwxKVswXSkucmVwbGFjZShjLCIgJDEgIik7dC5sZW5ndGg+MDspaWYoZChuKSllKys7ZWxzZSBpZihkKGkpKWgrKztlbHNlIGlmKGQocikpaCsrO2Vsc2UgaWYoZChzKSlsKys7ZWxzZSBpZihkKGEpKWgrKztlbHNlIGlmKGQobykpbCsrO2Vsc2UgaWYoIWQodSkpcmV0dXJuIDA7cmV0dXJuKGU9TWF0aC5taW4oZSwyNTUpKTw8MTZ8KGg9TWF0aC5taW4oaCwyNTUpKTw8OHwobD1NYXRoLm1pbihsLDI1NSkpfTt2YXIgbj0vXiNbXlxzXCs+fiNcLlxbOl0rLyxpPS9eXC5bXlxzXCs+fiNcLlxbOl0rLyxyPS9eXFtbXlxdXStcXS8sbz0vXlteXHNcKz5+I1wuXFs6XSsvLHM9L14oOjpbXlxzXCs+fiNcLlxbOl0rfDpmaXJzdC1saW5lfDpmaXJzdC1sZXR0ZXJ8OmJlZm9yZXw6YWZ0ZXIpLyxhPS9eOlteXHNcKz5+I1wuXFs6XSsvLHU9L15bXHNcKz5+XCpdKy8sYz0vOm5vdFwoKFteXCldKylcKS9nfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX0obigzMjEpKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1uKDIpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwsdGhpcy5fbGVuZ3RoPTB9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbXB0eSIse2dldDpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fbGVuZ3RofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpcnN0P3RoaXMuX2ZpcnN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFzdD90aGlzLl9sYXN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXJzdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3ROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhc3R9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5Gb3J3YXJkVmFsdWVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0LlJldHJvVmFsdWVJdGVyYXRvcih0aGlzLl9sYXN0KX0sdC5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuRm9yd2FyZE5vZGVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvTm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuUmV0cm9Ob2RlSXRlcmF0b3IodGhpcy5fbGFzdCl9LHQucHJvdG90eXBlLmFkZEZpcnN0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBpLkxpbmtlZExpc3ROb2RlKHRoaXMsdCk7cmV0dXJuIHRoaXMuX2ZpcnN0PyhlLm5leHQ9dGhpcy5fZmlyc3QsdGhpcy5fZmlyc3QucHJldj1lLHRoaXMuX2ZpcnN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuYWRkTGFzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpO3JldHVybiB0aGlzLl9sYXN0PyhlLnByZXY9dGhpcy5fbGFzdCx0aGlzLl9sYXN0Lm5leHQ9ZSx0aGlzLl9sYXN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fGU9PT10aGlzLl9maXJzdClyZXR1cm4gdGhpcy5hZGRGaXJzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIucHJldjtyZXR1cm4gbi5uZXh0PXIsbi5wcmV2PW8sci5wcmV2PW4sby5uZXh0PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24odCxlKXtpZighZXx8ZT09PXRoaXMuX2xhc3QpcmV0dXJuIHRoaXMuYWRkTGFzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIubmV4dDtyZXR1cm4gbi5uZXh0PW8sbi5wcmV2PXIsci5uZXh0PW4sby5wcmV2PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUucmVtb3ZlRmlyc3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9maXJzdDtpZih0KXJldHVybiB0PT09dGhpcy5fbGFzdD8odGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwpOih0aGlzLl9maXJzdD10Lm5leHQsdGhpcy5fZmlyc3QucHJldj1udWxsKSx0Lmxpc3Q9bnVsbCx0Lm5leHQ9bnVsbCx0LnByZXY9bnVsbCx0aGlzLl9sZW5ndGgtLSx0LnZhbHVlfSx0LnByb3RvdHlwZS5yZW1vdmVMYXN0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbGFzdDtpZih0KXJldHVybiB0PT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKToodGhpcy5fbGFzdD10LnByZXYsdGhpcy5fbGFzdC5uZXh0PW51bGwpLHQubGlzdD1udWxsLHQubmV4dD1udWxsLHQucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tLHQudmFsdWV9LHQucHJvdG90eXBlLnJlbW92ZU5vZGU9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgaS5MaW5rZWRMaXN0Tm9kZSl8fHQubGlzdCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJOb2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgZT10O2U9PT10aGlzLl9maXJzdCYmZT09PXRoaXMuX2xhc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKTplPT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PWUubmV4dCx0aGlzLl9maXJzdC5wcmV2PW51bGwpOmU9PT10aGlzLl9sYXN0Pyh0aGlzLl9sYXN0PWUucHJldix0aGlzLl9sYXN0Lm5leHQ9bnVsbCk6KGUubmV4dC5wcmV2PWUucHJldixlLnByZXYubmV4dD1lLm5leHQpLGUubGlzdD1udWxsLGUubmV4dD1udWxsLGUucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9maXJzdDt0Oyl7dmFyIGU9dC5uZXh0O3QubGlzdD1udWxsLHQucHJldj1udWxsLHQubmV4dD1udWxsLHQ9ZX10aGlzLl9maXJzdD1udWxsLHRoaXMuX2xhc3Q9bnVsbCx0aGlzLl9sZW5ndGg9MH0sdH0oKTtlLkxpbmtlZExpc3Q9byxmdW5jdGlvbih0KXt0LmZyb209ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHQ7cmV0dXJuIHIuZWFjaChlLGZ1bmN0aW9uKHQpe24uYWRkTGFzdCh0KX0pLG59O3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQubmV4dCx0LnZhbHVlfX0sdH0oKTt0LkZvcndhcmRWYWx1ZUl0ZXJhdG9yPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5wcmV2LHQudmFsdWV9fSx0fSgpO3QuUmV0cm9WYWx1ZUl0ZXJhdG9yPW47dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5uZXh0LHR9fSx0fSgpO3QuRm9yd2FyZE5vZGVJdGVyYXRvcj1pO3ZhciBvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQucHJldix0fX0sdH0oKTt0LlJldHJvTm9kZUl0ZXJhdG9yPW99KG89ZS5MaW5rZWRMaXN0fHwoZS5MaW5rZWRMaXN0PXt9KSksZS5MaW5rZWRMaXN0PW8sZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt0aGlzLmxpc3Q9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXY9bnVsbCx0aGlzLmxpc3Q9dCx0aGlzLnZhbHVlPWV9fSgpO3QuTGlua2VkTGlzdE5vZGU9ZX0oaXx8KGk9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDc2KSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLHtsYXlvdXQ6by5jcmVhdGVMYXlvdXQoZSl9KXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1Cb3hQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRpcmVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5kaXJlY3Rpb259LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5kaXJlY3Rpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5hZGRDbGFzcygicC1Cb3hQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLUJveFBhbmVsLWNoaWxkIil9LGV9KG4oNTQpLlBhbmVsKTtlLkJveFBhbmVsPWEsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtzLkJveExheW91dC5zZXRTdHJldGNoKHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTaXplQmFzaXModCl9LHQuc2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQsZSl7cy5Cb3hMYXlvdXQuc2V0U2l6ZUJhc2lzKHQsZSl9fShhPWUuQm94UGFuZWx8fChlLkJveFBhbmVsPXt9KSksZS5Cb3hQYW5lbD1hLGZ1bmN0aW9uKHQpe3QuY3JlYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmxheW91dHx8bmV3IHMuQm94TGF5b3V0KHQpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzLGE9bigyKSx1PW4oMjYpLGM9bigxMzApLGg9big5KSxsPW4oNTUpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIGk9dC5jYWxsKHRoaXMse25vZGU6cy5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gaS5fYWN0aXZlSW5kZXg9LTEsaS5faXRlbXM9W10saS5fcmVzdWx0cz1udWxsLGkuYWRkQ2xhc3MoInAtQ29tbWFuZFBhbGV0dGUiKSxpLnNldEZsYWcoZC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaS5jb21tYW5kcy5jb21tYW5kQ2hhbmdlZC5jb25uZWN0KGkuX29uR2VuZXJpY0NoYW5nZSxpKSxpLmNvbW1hbmRzLmtleUJpbmRpbmdDaGFuZ2VkLmNvbm5lY3QoaS5fb25HZW5lcmljQ2hhbmdlLGkpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcmVzdWx0cz1udWxsLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzZWFyY2hOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLXNlYXJjaCIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaW5wdXROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLWlucHV0IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpdGVtcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pdGVtc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXMuY3JlYXRlSXRlbSh0aGlzLmNvbW1hbmRzLHQpO3JldHVybiB0aGlzLl9pdGVtcy5wdXNoKGUpLHRoaXMucmVmcmVzaCgpLGV9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW09ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVJdGVtQXQodGhpcy5faXRlbXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW1BdD1mdW5jdGlvbih0KXthLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnJlZnJlc2goKX0sZS5wcm90b3R5cGUuY2xlYXJJdGVtcz1mdW5jdGlvbigpezAhPT10aGlzLl9pdGVtcy5sZW5ndGgmJih0aGlzLl9pdGVtcy5sZW5ndGg9MCx0aGlzLnJlZnJlc2goKSl9LGUucHJvdG90eXBlLnJlZnJlc2g9ZnVuY3Rpb24oKXt0aGlzLl9yZXN1bHRzPW51bGwsdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJjbGljayI6dGhpcy5fZXZ0Q2xpY2sodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiaW5wdXQiOnRoaXMucmVmcmVzaCgpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6dGhpcy5fdG9nZ2xlRm9jdXNlZCgpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcywhMCksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpZih0aGlzLmlzQXR0YWNoZWQpe3ZhciBlPXRoaXMuaW5wdXROb2RlO2UuZm9jdXMoKSxlLnNlbGVjdCgpfX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXROb2RlLnZhbHVlLG49dGhpcy5jb250ZW50Tm9kZSxpPXRoaXMuX3Jlc3VsdHM7aWYoaXx8KGk9dGhpcy5fcmVzdWx0cz1zLnNlYXJjaCh0aGlzLl9pdGVtcyxlKSx0aGlzLl9hY3RpdmVJbmRleD1lP2EuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoaSxzLmNhbkFjdGl2YXRlKTotMSksZXx8MCE9PWkubGVuZ3RoKWlmKGUmJjA9PT1pLmxlbmd0aCl7dmFyIHI9dGhpcy5yZW5kZXJlci5yZW5kZXJFbXB0eU1lc3NhZ2Uoe3F1ZXJ5OmV9KTtsLlZpcnR1YWxET00ucmVuZGVyKHIsbil9ZWxzZXtmb3IodmFyIG89dGhpcy5yZW5kZXJlcix1PXRoaXMuX2FjdGl2ZUluZGV4LGM9bmV3IEFycmF5KGkubGVuZ3RoKSxkPTAsZj1pLmxlbmd0aDtkPGY7KytkKXt2YXIgcD1pW2RdO2lmKCJoZWFkZXIiPT09cC50eXBlKXt2YXIgbT1wLmluZGljZXMsZz1wLmNhdGVnb3J5O2NbZF09by5yZW5kZXJIZWFkZXIoe2NhdGVnb3J5OmcsaW5kaWNlczptfSl9ZWxzZXt2YXIgdj1wLml0ZW0sYj0obT1wLmluZGljZXMsZD09PXUpO2NbZF09by5yZW5kZXJJdGVtKHtpdGVtOnYsaW5kaWNlczptLGFjdGl2ZTpifSl9fWlmKGwuVmlydHVhbERPTS5yZW5kZXIoYyxuKSx1PDB8fHU+PWkubGVuZ3RoKW4uc2Nyb2xsVG9wPTA7ZWxzZXt2YXIgeT1uLmNoaWxkcmVuW3VdO2guRWxlbWVudEV4dC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKG4seSl9fWVsc2UgbC5WaXJ0dWFsRE9NLnJlbmRlcihudWxsLG4pfSxlLnByb3RvdHlwZS5fZXZ0Q2xpY2s9ZnVuY3Rpb24odCl7aWYoMD09PXQuYnV0dG9uKXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7LTEhPT1lJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fZXhlY3V0ZShlKSl9fSxlLnByb3RvdHlwZS5fZXZ0S2V5RG93bj1mdW5jdGlvbih0KXtpZighKHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQubWV0YUtleXx8dC5zaGlmdEtleSkpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSAxMzp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9leGVjdXRlKHRoaXMuX2FjdGl2ZUluZGV4KTticmVhaztjYXNlIDM4OnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2FjdGl2YXRlUHJldmlvdXNJdGVtKCk7YnJlYWs7Y2FzZSA0MDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9hY3RpdmF0ZU5leHRJdGVtKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVOZXh0SXRlbT1mdW5jdGlvbigpe2lmKHRoaXMuX3Jlc3VsdHMmJjAhPT10aGlzLl9yZXN1bHRzLmxlbmd0aCl7dmFyIHQ9dGhpcy5fYWN0aXZlSW5kZXgsZT10aGlzLl9yZXN1bHRzLmxlbmd0aCxuPXQ8ZS0xP3QrMTowLGk9MD09PW4/ZS0xOm4tMTt0aGlzLl9hY3RpdmVJbmRleD1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuX3Jlc3VsdHMscy5jYW5BY3RpdmF0ZSxuLGkpLHRoaXMudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVQcmV2aW91c0l0ZW09ZnVuY3Rpb24oKXtpZih0aGlzLl9yZXN1bHRzJiYwIT09dGhpcy5fcmVzdWx0cy5sZW5ndGgpe3ZhciB0PXRoaXMuX2FjdGl2ZUluZGV4LGU9dGhpcy5fcmVzdWx0cy5sZW5ndGgsbj10PD0wP2UtMTp0LTEsaT1uPT09ZS0xPzA6bisxO3RoaXMuX2FjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9yZXN1bHRzLHMuY2FuQWN0aXZhdGUsbixpKSx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVzdWx0cyl7dmFyIGU9dGhpcy5fcmVzdWx0c1t0XTtpZihlKXtpZigiaGVhZGVyIj09PWUudHlwZSl7dmFyIG49dGhpcy5pbnB1dE5vZGU7cmV0dXJuIG4udmFsdWU9ZS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKyIgIixuLmZvY3VzKCksdm9pZCB0aGlzLnJlZnJlc2goKX1lLml0ZW0uaXNFbmFibGVkJiYodGhpcy5jb21tYW5kcy5leGVjdXRlKGUuaXRlbS5jb21tYW5kLGUuaXRlbS5hcmdzKSx0aGlzLmlucHV0Tm9kZS52YWx1ZT0iIix0aGlzLnJlZnJlc2goKSl9fX0sZS5wcm90b3R5cGUuX3RvZ2dsZUZvY3VzZWQ9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5pbnB1dE5vZGU7dGhpcy50b2dnbGVDbGFzcygicC1tb2QtZm9jdXNlZCIsdCl9LGUucHJvdG90eXBlLl9vbkdlbmVyaWNDaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sZX0oZC5XaWRnZXQpO2UuQ29tbWFuZFBhbGV0dGU9ZixmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckhlYWRlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEhlYWRlcih0KTtyZXR1cm4gbC5oLmxpKHtjbGFzc05hbWU6InAtQ29tbWFuZFBhbGV0dGUtaGVhZGVyIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJdGVtQ2xhc3ModCksbj10aGlzLmNyZWF0ZUl0ZW1EYXRhc2V0KHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZTplLGRhdGFzZXQ6bn0sdGhpcy5yZW5kZXJJdGVtSWNvbih0KSx0aGlzLnJlbmRlckl0ZW1Db250ZW50KHQpLHRoaXMucmVuZGVySXRlbVNob3J0Y3V0KHQpKX0sdC5wcm90b3R5cGUucmVuZGVyRW1wdHlNZXNzYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0RW1wdHlNZXNzYWdlKHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1lbXB0eU1lc3NhZ2UifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZTplfSx0Lml0ZW0uaWNvbkxhYmVsKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNvbnRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtQ29udGVudCJ9LHRoaXMucmVuZGVySXRlbUxhYmVsKHQpLHRoaXMucmVuZGVySXRlbUNhcHRpb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJdGVtTGFiZWw9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtTGFiZWwodCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNhcHRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtQ2FwdGlvbih0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1DYXB0aW9uIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEl0ZW1TaG9ydGN1dCh0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1TaG9ydGN1dCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtQ29tbWFuZFBhbGV0dGUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpO3ZhciBuPXQuaXRlbS5jbGFzc05hbWU7cmV0dXJuIG4mJihlKz0iICIrbiksZX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbURhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8oe30sdC5pdGVtLmRhdGFzZXQse2NvbW1hbmQ6dC5pdGVtLmNvbW1hbmR9KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLUNvbW1hbmRQYWxldHRlLWl0ZW1JY29uIixuPXQuaXRlbS5pY29uQ2xhc3M7cmV0dXJuIG4/ZSsiICIrbjplfSx0LnByb3RvdHlwZS5mb3JtYXRIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kaWNlcyYmMCE9PXQuaW5kaWNlcy5sZW5ndGg/YS5TdHJpbmdFeHQuaGlnaGxpZ2h0KHQuY2F0ZWdvcnksdC5pbmRpY2VzLGwuaC5tYXJrKTp0LmNhdGVnb3J5fSx0LnByb3RvdHlwZS5mb3JtYXRFbXB0eU1lc3NhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIk5vIGNvbW1hbmRzIGZvdW5kIHRoYXQgbWF0Y2ggJyIrdC5xdWVyeSsiJyJ9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10Lml0ZW0ua2V5QmluZGluZztyZXR1cm4gZT9lLmtleXMubWFwKHMuZm9ybWF0S2V5c3Ryb2tlKS5qb2luKCIsICIpOm51bGx9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1MYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRpY2VzJiYwIT09dC5pbmRpY2VzLmxlbmd0aD9hLlN0cmluZ0V4dC5oaWdobGlnaHQodC5pdGVtLmxhYmVsLHQuaW5kaWNlcyxsLmgubWFyayk6dC5pdGVtLmxhYmVsfSx0LnByb3RvdHlwZS5mb3JtYXRJdGVtQ2FwdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVtLmNhcHRpb259LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlfShmPWUuQ29tbWFuZFBhbGV0dGV8fChlLkNvbW1hbmRQYWxldHRlPXt9KSksZS5Db21tYW5kUGFsZXR0ZT1mLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtmb3IodmFyIG49dC5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpLGk9bisiICIrdC5sYWJlbC50b0xvd2VyQ2FzZSgpLHI9MS8wLG89bnVsbCxzPS9cYlx3L2c7Oyl7dmFyIHU9cy5leGVjKGkpO2lmKCF1KWJyZWFrO3ZhciBjPWEuU3RyaW5nRXh0Lm1hdGNoU3VtT2ZEZWx0YXMoaSxlLHUuaW5kZXgpO2lmKCFjKWJyZWFrO2MmJmMuc2NvcmU8PXImJihyPWMuc2NvcmUsbz1jLmluZGljZXMpfWlmKCFvfHxyPT09MS8wKXJldHVybiBudWxsO2Zvcih2YXIgaD1uLmxlbmd0aCsxLGw9YS5BcnJheUV4dC5sb3dlckJvdW5kKG8saCxmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxkPW8uc2xpY2UoMCxsKSxmPW8uc2xpY2UobCkscD0wLG09Zi5sZW5ndGg7cDxtOysrcClmW3BdLT1oO3JldHVybiAwPT09ZC5sZW5ndGg/e21hdGNoVHlwZTowLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpmLHNjb3JlOnIsaXRlbTp0fTowPT09Zi5sZW5ndGg/e21hdGNoVHlwZToxLGNhdGVnb3J5SW5kaWNlczpkLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOnIsaXRlbTp0fTp7bWF0Y2hUeXBlOjIsY2F0ZWdvcnlJbmRpY2VzOmQsbGFiZWxJbmRpY2VzOmYsc2NvcmU6cixpdGVtOnR9fWZ1bmN0aW9uIG4odCxlKXt2YXIgbj10Lm1hdGNoVHlwZS1lLm1hdGNoVHlwZTtpZigwIT09bilyZXR1cm4gbjt2YXIgaT10LnNjb3JlLWUuc2NvcmU7aWYoMCE9PWkpcmV0dXJuIGk7dmFyIHI9MCxvPTA7c3dpdGNoKHQubWF0Y2hUeXBlKXtjYXNlIDA6cj10LmxhYmVsSW5kaWNlc1swXSxvPWUubGFiZWxJbmRpY2VzWzBdO2JyZWFrO2Nhc2UgMTpjYXNlIDI6cj10LmNhdGVnb3J5SW5kaWNlc1swXSxvPWUuY2F0ZWdvcnlJbmRpY2VzWzBdfWlmKHIhPT1vKXJldHVybiByLW87dmFyIHM9dC5pdGVtLmNhdGVnb3J5LmxvY2FsZUNvbXBhcmUoZS5pdGVtLmNhdGVnb3J5KTtpZigwIT09cylyZXR1cm4gczt2YXIgYT10Lml0ZW0ucmFuayx1PWUuaXRlbS5yYW5rO3JldHVybiBhIT09dT9hPHU/LTE6MTp0Lml0ZW0ubGFiZWwubG9jYWxlQ29tcGFyZShlLml0ZW0ubGFiZWwpfXQuY3JlYXRlTm9kZT1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1zZWFyY2giLG4uY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLXdyYXBwZXIiLGkuY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLWlucHV0IixyLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IixpLnNwZWxsY2hlY2s9ITEsbi5hcHBlbmRDaGlsZChpKSxlLmFwcGVuZENoaWxkKG4pLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChyKSx0fSx0LmNyZWF0ZUl0ZW09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGkodCxlKX0sdC5mb3JtYXRLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj1jLkNvbW1hbmRSZWdpc3RyeS5wYXJzZUtleXN0cm9rZSh0KTtyZXR1cm4gaC5QbGF0Zm9ybS5JU19NQUM/KG4uY3RybCYmKGUrPSLijIMgIiksbi5hbHQmJihlKz0i4oylICIpLG4uc2hpZnQmJihlKz0i4oenICIpLG4uY21kJiYoZSs9IuKMmCAiKSk6KG4uY3RybCYmKGUrPSJDdHJsKyIpLG4uYWx0JiYoZSs9IkFsdCsiKSxuLnNoaWZ0JiYoZSs9IlNoaWZ0KyIpKSxlK24ua2V5fSx0LnNlYXJjaD1mdW5jdGlvbih0LGkpe3ZhciByPWZ1bmN0aW9uKHQsbil7bj1uLnJlcGxhY2UoL1xzKy9nLCIiKS50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aDtyPG87KytyKXt2YXIgcz10W3JdO2lmKHMuaXNWaXNpYmxlKWlmKG4pe3ZhciBhPWUocyxuKTthJiYocy5pc0VuYWJsZWR8fChhLnNjb3JlKz0xZTMpLGkucHVzaChhKSl9ZWxzZSBpLnB1c2goe21hdGNoVHlwZTozLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOjAsaXRlbTpzfSl9cmV0dXJuIGl9KHQsaSk7cmV0dXJuIHIuc29ydChuKSxmdW5jdGlvbih0KXt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2EuQXJyYXlFeHQuZmlsbChlLCExKTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZighZVtpXSl7dmFyIG89dFtpXSxzPW8uaXRlbSx1PW8uY2F0ZWdvcnlJbmRpY2VzLGM9cy5jYXRlZ29yeTtuLnB1c2goe3R5cGU6ImhlYWRlciIsY2F0ZWdvcnk6YyxpbmRpY2VzOnV9KTtmb3IodmFyIGg9aTtoPHI7KytoKWlmKCFlW2hdKXt2YXIgbD10W2hdLGQ9bC5pdGVtLGY9bC5sYWJlbEluZGljZXM7ZC5jYXRlZ29yeT09PWMmJihuLnB1c2goe3R5cGU6Iml0ZW0iLGl0ZW06ZCxpbmRpY2VzOmZ9KSxlW2hdPSEwKX19cmV0dXJuIG59KHIpfSx0LmNhbkFjdGl2YXRlPWZ1bmN0aW9uKHQpe3JldHVybiJpdGVtIj09PXQudHlwZSYmdC5pdGVtLmlzRW5hYmxlZH07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fY29tbWFuZHM9dCx0aGlzLmNhdGVnb3J5PWUuY2F0ZWdvcnkudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIiksdGhpcy5jb21tYW5kPWUuY29tbWFuZCx0aGlzLmFyZ3M9ZS5hcmdzfHx1LkpTT05FeHQuZW1wdHlPYmplY3QsdGhpcy5yYW5rPXZvaWQgMCE9PWUucmFuaz9lLnJhbms6MS8wfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmljb25DbGFzcyh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb25MYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pY29uTGFiZWwodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5kYXRhc2V0KHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmlzRW5hYmxlZCh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pc1RvZ2dsZWQodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuaXNWaXNpYmxlKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwia2V5QmluZGluZyIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tbWFuZCxlPXRoaXMuYXJncztyZXR1cm4gYS5BcnJheUV4dC5maW5kTGFzdFZhbHVlKHRoaXMuX2NvbW1hbmRzLmtleUJpbmRpbmdzLGZ1bmN0aW9uKG4pe3JldHVybiBuLmNvbW1hbmQ9PT10JiZ1LkpTT05FeHQuZGVlcEVxdWFsKG4uYXJncyxlKX0pfHxudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHR9KCl9KHN8fChzPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHIsbz1uKDIpLHM9big3OCksYT1uKDkpLHU9bigxMzEpLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2lkVGljaz0wLHRoaXMuX2l0ZW1zPVtdLHRoaXMubWVudT1uZXcgdS5NZW51KHQpfXJldHVybiB0LnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1yLmNyZWF0ZUl0ZW0odCx0aGlzLl9pZFRpY2srKyk7cmV0dXJuIHRoaXMuX2l0ZW1zLnB1c2gobiksbmV3IHMuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7by5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGUuX2l0ZW1zLG4pfSl9LHQucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLm1lbnUuY2xlYXJJdGVtcygpLDA9PT10aGlzLl9pdGVtcy5sZW5ndGgpcmV0dXJuITE7dmFyIG49ci5tYXRjaEl0ZW1zKHRoaXMuX2l0ZW1zLHQpO3JldHVybiEoIW58fDA9PT1uLmxlbmd0aCkmJihvLmVhY2gobixmdW5jdGlvbih0KXtlLm1lbnUuYWRkSXRlbSh0KX0pLHRoaXMubWVudS5vcGVuKHQuY2xpZW50WCx0LmNsaWVudFkpLCEwKX0sdH0oKTtlLkNvbnRleHRNZW51PWMsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3ZhciBuPWEuU2VsZWN0b3IuY2FsY3VsYXRlU3BlY2lmaWNpdHkodC5zZWxlY3RvciksaT1hLlNlbGVjdG9yLmNhbGN1bGF0ZVNwZWNpZmljaXR5KGUuc2VsZWN0b3IpO2lmKG4hPT1pKXJldHVybiBpLW47dmFyIHI9dC5yYW5rLG89ZS5yYW5rO3JldHVybiByIT09bz9yPG8/LTE6MTp0LmlkLWUuaWR9dC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7aWYoLTEhPT10LmluZGV4T2YoIiwiKSl0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIGNhbm5vdCBjb250YWluIGNvbW1hczogIit0KTtpZighYS5TZWxlY3Rvci5pc1ZhbGlkKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZWxlY3RvcjogIit0KTtyZXR1cm4gdH0odC5zZWxlY3Rvcikscj12b2lkIDAhPT10LnJhbms/dC5yYW5rOjEvMDtyZXR1cm4gaSh7fSx0LHtzZWxlY3RvcjpuLHJhbms6cixpZDplfSl9LHQubWF0Y2hJdGVtcz1mdW5jdGlvbih0LG4pe3ZhciBpPW4udGFyZ2V0O2lmKCFpKXJldHVybiBudWxsO3ZhciByPW4uY3VycmVudFRhcmdldDtpZighcilyZXR1cm4gbnVsbDtpZighKHIuY29udGFpbnMoaSl8fChpPWRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQobi5jbGllbnRYLG4uY2xpZW50WSkpJiZyLmNvbnRhaW5zKGkpKSlyZXR1cm4gbnVsbDtmb3IodmFyIG89W10scz10LnNsaWNlKCk7bnVsbCE9PWk7KXtmb3IodmFyIHU9W10sYz0wLGg9cy5sZW5ndGg7YzxoOysrYyl7dmFyIGw9c1tjXTtsJiZhLlNlbGVjdG9yLm1hdGNoZXMoaSxsLnNlbGVjdG9yKSYmKHUucHVzaChsKSxzW2NdPW51bGwpfWlmKDAhPT11Lmxlbmd0aCYmKHUuc29ydChlKSxvLnB1c2guYXBwbHkobyx1KSksaT09PXIpYnJlYWs7aT1pLnBhcmVudEVsZW1lbnR9cmV0dXJuIG99fShyfHwocj17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDI2KSx1PW4oOSksYz1uKDU2KSxoPW4oNSksbD1uKDMwKSxkPW4oMTEpLGY9bigxMzIpLHA9big4MCksbT1uKDcpLGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO2kuX2RyYWc9bnVsbCxpLl9wcmVzc0RhdGE9bnVsbCxpLl9sYXlvdXRNb2RpZmllZD1uZXcgZC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1Eb2NrUGFuZWwiKSxpLl9tb2RlPW4ubW9kZXx8Im11bHRpcGxlLWRvY3VtZW50IixpLl9yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLmRhdGFzZXQubW9kZT1pLl9tb2RlO3ZhciByPXtjcmVhdGVUYWJCYXI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5fY3JlYXRlVGFiQmFyKCl9LGNyZWF0ZUhhbmRsZTpmdW5jdGlvbigpe3JldHVybiBpLl9jcmVhdGVIYW5kbGUoKX19O3JldHVybiBpLmxheW91dD1uZXcgZi5Eb2NrTGF5b3V0KHtyZW5kZXJlcjpyLHNwYWNpbmc6bi5zcGFjaW5nfSksaS5vdmVybGF5PW4ub3ZlcmxheXx8bmV3IGUuT3ZlcmxheSxpLm5vZGUuYXBwZW5kQ2hpbGQoaS5vdmVybGF5Lm5vZGUpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5vdmVybGF5LmhpZGUoMCksdGhpcy5fZHJhZyYmdGhpcy5fZHJhZy5kaXNwb3NlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImxheW91dE1vZGlmaWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dE1vZGlmaWVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmVuZGVyZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVuZGVyZXJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5zcGFjaW5nPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl9tb2RlIT09dCl7dGhpcy5fbW9kZT10LHRoaXMuZGF0YXNldC5tb2RlPXQ7dmFyIGU9dGhpcy5sYXlvdXQ7c3dpdGNoKHQpe2Nhc2UibXVsdGlwbGUtZG9jdW1lbnQiOnMuZWFjaChlLnRhYkJhcnMoKSxmdW5jdGlvbih0KXt0LnNob3coKX0pO2JyZWFrO2Nhc2Uic2luZ2xlLWRvY3VtZW50IjplLnJlc3RvcmVMYXlvdXQoby5jcmVhdGVTaW5nbGVEb2N1bWVudENvbmZpZyh0aGlzKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImlzRW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuaXNFbXB0eX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LndpZGdldHMoKX0sZS5wcm90b3R5cGUuc2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNlbGVjdGVkV2lkZ2V0cygpfSxlLnByb3RvdHlwZS50YWJCYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnRhYkJhcnMoKX0sZS5wcm90b3R5cGUuaGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzKCl9LGUucHJvdG90eXBlLnNlbGVjdFdpZGdldD1mdW5jdGlvbih0KXt2YXIgZT1zLmZpbmQodGhpcy50YWJCYXJzKCksZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnRpdGxlcy5pbmRleE9mKHQudGl0bGUpfSk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgZG9jayBwYW5lbC4iKTtlLmN1cnJlbnRUaXRsZT10LnRpdGxlfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnNlbGVjdFdpZGdldCh0KSx0LmFjdGl2YXRlKCl9LGUucHJvdG90eXBlLnNhdmVMYXlvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc2F2ZUxheW91dCgpfSxlLnByb3RvdHlwZS5yZXN0b3JlTGF5b3V0PWZ1bmN0aW9uKHQpe3RoaXMuX21vZGU9Im11bHRpcGxlLWRvY3VtZW50Iix0aGlzLmxheW91dC5yZXN0b3JlTGF5b3V0KHQpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksInNpbmdsZS1kb2N1bWVudCI9PT10aGlzLl9tb2RlP3RoaXMubGF5b3V0LmFkZFdpZGdldCh0KTp0aGlzLmxheW91dC5hZGRXaWRnZXQodCxlKSxoLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsby5MYXlvdXRNb2RpZmllZCl9LGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpeyJsYXlvdXQtbW9kaWZpZWQiPT09ZS50eXBlP3RoaXMuX2xheW91dE1vZGlmaWVkLmVtaXQodm9pZCAwKTp0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UicC1kcmFnZW50ZXIiOnRoaXMuX2V2dERyYWdFbnRlcih0KTticmVhaztjYXNlInAtZHJhZ2xlYXZlIjp0aGlzLl9ldnREcmFnTGVhdmUodCk7YnJlYWs7Y2FzZSJwLWRyYWdvdmVyIjp0aGlzLl9ldnREcmFnT3Zlcih0KTticmVhaztjYXNlInAtZHJvcCI6dGhpcy5fZXZ0RHJvcCh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2Uia2V5ZG93biI6dGhpcy5fZXZ0S2V5RG93bih0KTticmVhaztjYXNlImNvbnRleHRtZW51Ijp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJwLWRyYWdlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJhZ2xlYXZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigicC1kcmFnb3ZlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJvcCIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInAtZHJhZ2VudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcmFnbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwLWRyYWdvdmVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcm9wIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZEFkZGVkPWZ1bmN0aW9uKHQpe28uaXNHZW5lcmF0ZWRUYWJCYXJQcm9wZXJ0eS5nZXQodC5jaGlsZCl8fHQuY2hpbGQuYWRkQ2xhc3MoInAtRG9ja1BhbmVsLXdpZGdldCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXtvLmlzR2VuZXJhdGVkVGFiQmFyUHJvcGVydHkuZ2V0KHQuY2hpbGQpfHwodC5jaGlsZC5yZW1vdmVDbGFzcygicC1Eb2NrUGFuZWwtd2lkZ2V0IiksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dERyYWdFbnRlcj1mdW5jdGlvbih0KXt0Lm1pbWVEYXRhLmhhc0RhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ0xlYXZlPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiZ0aGlzLm5vZGUuY29udGFpbnMoZSl8fHRoaXMub3ZlcmxheS5oaWRlKDApfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ092ZXI9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksImludmFsaWQiPT09dGhpcy5fc2hvd092ZXJsYXkodC5jbGllbnRYLHQuY2xpZW50WSk/dC5kcm9wQWN0aW9uPSJub25lIjp0LmRyb3BBY3Rpb249dC5wcm9wb3NlZEFjdGlvbn0sZS5wcm90b3R5cGUuX2V2dERyb3A9ZnVuY3Rpb24odCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vdmVybGF5LmhpZGUoMCksIm5vbmUiIT09dC5wcm9wb3NlZEFjdGlvbil7dmFyIGU9dC5jbGllbnRYLG49dC5jbGllbnRZLGk9by5maW5kRHJvcFRhcmdldCh0aGlzLGUsbikscj1pLnpvbmUscz1pLnRhcmdldDtpZigiaW52YWxpZCIhPT1yKXt2YXIgYT10Lm1pbWVEYXRhLmdldERhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXt2YXIgdT1hKCk7aWYodSBpbnN0YW5jZW9mIG0uV2lkZ2V0KWlmKHUuY29udGFpbnModGhpcykpdC5kcm9wQWN0aW9uPSJub25lIjtlbHNle3ZhciBjPXM/by5nZXREcm9wUmVmKHMudGFiQmFyKTpudWxsO3N3aXRjaChyKXtjYXNlInJvb3QtYWxsIjp0aGlzLmFkZFdpZGdldCh1KTticmVhaztjYXNlInJvb3QtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AifSk7YnJlYWs7Y2FzZSJyb290LWxlZnQiOnRoaXMuYWRkV2lkZ2V0KHUse21vZGU6InNwbGl0LWxlZnQifSk7YnJlYWs7Y2FzZSJyb290LXJpZ2h0Ijp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1yaWdodCJ9KTticmVhaztjYXNlInJvb3QtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20ifSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYWxsIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJ0YWItYWZ0ZXIiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtbGVmdCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtbGVmdCIscmVmOmN9KTticmVhaztjYXNlIndpZGdldC1yaWdodCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtcmlnaHQiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20iLHJlZjpjfSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dC5kcm9wQWN0aW9uPXQucHJvcG9zZWRBY3Rpb24sdGhpcy5hY3RpdmF0ZVdpZGdldCh1KX1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9ZWxzZSB0LmRyb3BBY3Rpb249Im5vbmUifWVsc2UgdC5kcm9wQWN0aW9uPSJub25lIn1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiYodGhpcy5fcmVsZWFzZU1vdXNlKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49dC50YXJnZXQsaT1zLmZpbmQoZS5oYW5kbGVzKCksZnVuY3Rpb24odCl7cmV0dXJuIHQuY29udGFpbnMobil9KTtpZihpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLXIubGVmdCxhPXQuY2xpZW50WS1yLnRvcCx1PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpLGg9Yy5EcmFnLm92ZXJyaWRlQ3Vyc29yKHUuY3Vyc29yKTt0aGlzLl9wcmVzc0RhdGE9e2hhbmRsZTppLGRlbHRhWDpvLGRlbHRhWTphLG92ZXJyaWRlOmh9fX19LGUucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcHJlc3NEYXRhKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZT10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LmNsaWVudFgtZS5sZWZ0LXRoaXMuX3ByZXNzRGF0YS5kZWx0YVgsaT10LmNsaWVudFktZS50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhWTt0aGlzLmxheW91dC5tb3ZlSGFuZGxlKHRoaXMuX3ByZXNzRGF0YS5oYW5kbGUsbixpKX19LGUucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpezA9PT10LmJ1dHRvbiYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3JlbGVhc2VNb3VzZSgpLGguTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodGhpcyxvLkxheW91dE1vZGlmaWVkKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZS5wcm90b3R5cGUuX3Nob3dPdmVybGF5PWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHMsYT1vLmZpbmREcm9wVGFyZ2V0KHRoaXMsdCxlKSxjPWEuem9uZSxoPWEudGFyZ2V0O2lmKCJpbnZhbGlkIj09PWMpcmV0dXJuIHRoaXMub3ZlcmxheS5oaWRlKDEwMCksYzt2YXIgbD11LkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMubm9kZSksZD10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7c3dpdGNoKGMpe2Nhc2Uicm9vdC1hbGwiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uicm9vdC10b3AiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9ZC5oZWlnaHQqby5HT0xERU5fUkFUSU87YnJlYWs7Y2FzZSJyb290LWxlZnQiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWQud2lkdGgqby5HT0xERU5fUkFUSU8scz1sLnBhZGRpbmdCb3R0b207YnJlYWs7Y2FzZSJyb290LXJpZ2h0IjpuPWwucGFkZGluZ1RvcCxpPWQud2lkdGgqby5HT0xERU5fUkFUSU8scj1sLnBhZGRpbmdSaWdodCxzPWwucGFkZGluZ0JvdHRvbTticmVhaztjYXNlInJvb3QtYm90dG9tIjpuPWQuaGVpZ2h0Km8uR09MREVOX1JBVElPLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uid2lkZ2V0LWFsbCI6bj1oLnRvcCxpPWgubGVmdCxyPWgucmlnaHQscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC10b3AiOm49aC50b3AsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b20raC5oZWlnaHQvMjticmVhaztjYXNlIndpZGdldC1sZWZ0IjpuPWgudG9wLGk9aC5sZWZ0LHI9aC5yaWdodCtoLndpZHRoLzIscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC1yaWdodCI6bj1oLnRvcCxpPWgubGVmdCtoLndpZHRoLzIscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjpuPWgudG9wK2guaGVpZ2h0LzIsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJuIHRoaXMub3ZlcmxheS5zaG93KHt0b3A6bixsZWZ0OmkscmlnaHQ6cixib3R0b206c30pLGN9LGUucHJvdG90eXBlLl9jcmVhdGVUYWJCYXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gby5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5LnNldCh0LCEwKSwic2luZ2xlLWRvY3VtZW50Ij09PXRoaXMuX21vZGUmJnQuaGlkZSgpLHQudGFic01vdmFibGU9ITAsdC5hbGxvd0Rlc2VsZWN0PSExLHQucmVtb3ZlQmVoYXZpb3I9InNlbGVjdC1wcmV2aW91cy10YWIiLHQuaW5zZXJ0QmVoYXZpb3I9InNlbGVjdC10YWItaWYtbmVlZGVkIix0LnRhYk1vdmVkLmNvbm5lY3QodGhpcy5fb25UYWJNb3ZlZCx0aGlzKSx0LmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25DdXJyZW50Q2hhbmdlZCx0aGlzKSx0LnRhYkNsb3NlUmVxdWVzdGVkLmNvbm5lY3QodGhpcy5fb25UYWJDbG9zZVJlcXVlc3RlZCx0aGlzKSx0LnRhYkRldGFjaFJlcXVlc3RlZC5jb25uZWN0KHRoaXMuX29uVGFiRGV0YWNoUmVxdWVzdGVkLHRoaXMpLHQudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLHRoaXMpLHR9LGUucHJvdG90eXBlLl9jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3JlYXRlSGFuZGxlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKCl7aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25DdXJyZW50Q2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNUaXRsZSxpPWUuY3VycmVudFRpdGxlO24mJm4ub3duZXIuaGlkZSgpLGkmJmkub3duZXIuc2hvdygpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYkRldGFjaFJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYoIXRoaXMuX2RyYWcpe3QucmVsZWFzZU1vdXNlKCk7dmFyIGk9ZS50aXRsZSxyPWUudGFiLG89ZS5jbGllbnRYLHM9ZS5jbGllbnRZLHU9bmV3IGEuTWltZURhdGE7dS5zZXREYXRhKCJhcHBsaWNhdGlvbi92bmQucGhvc3Bob3Iud2lkZ2V0LWZhY3RvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub3duZXJ9KTt2YXIgaD1yLmNsb25lTm9kZSghMCk7dGhpcy5fZHJhZz1uZXcgYy5EcmFnKHttaW1lRGF0YTp1LGRyYWdJbWFnZTpoLHByb3Bvc2VkQWN0aW9uOiJtb3ZlIixzdXBwb3J0ZWRBY3Rpb25zOiJtb3ZlIn0pLHIuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik7dGhpcy5fZHJhZy5zdGFydChvLHMpLnRoZW4oZnVuY3Rpb24oKXtuLl9kcmFnPW51bGwsci5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfX0sZX0obS5XaWRnZXQpO2UuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fdGltZXI9LTEsdGhpcy5faGlkZGVuPSEwLHRoaXMubm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1Eb2NrUGFuZWwtb3ZlcmxheSIpLHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm5vZGUuc3R5bGU7ZS50b3A9dC50b3ArInB4IixlLmxlZnQ9dC5sZWZ0KyJweCIsZS5yaWdodD10LnJpZ2h0KyJweCIsZS5ib3R0b209dC5ib3R0b20rInB4IixjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVyPS0xLHRoaXMuX2hpZGRlbiYmKHRoaXMuX2hpZGRlbj0hMSx0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtaGlkZGVuIikpfSx0LnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX2hpZGRlbilyZXR1cm4gdDw9MD8oY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj0tMSx0aGlzLl9oaWRkZW49ITAsdm9pZCB0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIikpOnZvaWQoLTE9PT10aGlzLl90aW1lciYmKHRoaXMuX3RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl90aW1lcj0tMSxlLl9oaWRkZW49ITAsZS5ub2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpfSx0KSkpfSx0fSgpO3QuT3ZlcmxheT1lO3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHAuVGFiQmFyO3JldHVybiB0LmFkZENsYXNzKCJwLURvY2tQYW5lbC10YWJCYXIiKSx0fSx0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtRG9ja1BhbmVsLWhhbmRsZSIsdH0sdH0oKTt0LlJlbmRlcmVyPW4sdC5kZWZhdWx0UmVuZGVyZXI9bmV3IG59KGc9ZS5Eb2NrUGFuZWx8fChlLkRvY2tQYW5lbD17fSkpLGUuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dC5HT0xERU5fUkFUSU89LjYxOCx0LkVER0VfU0laRT00MCx0LkxheW91dE1vZGlmaWVkPW5ldyBoLkNvbmZsYXRhYmxlTWVzc2FnZSgibGF5b3V0LW1vZGlmaWVkIiksdC5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5PW5ldyBsLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6ImlzR2VuZXJhdGVkVGFiQmFyIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19KSx0LmNyZWF0ZVNpbmdsZURvY3VtZW50Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKHQuaXNFbXB0eSlyZXR1cm57bWFpbjpudWxsfTt2YXIgZT1zLnRvQXJyYXkodC53aWRnZXRzKCkpLG49dC5zZWxlY3RlZFdpZGdldHMoKS5uZXh0KCksaT1uP2UuaW5kZXhPZihuKTotMTtyZXR1cm57bWFpbjp7dHlwZToidGFiLWFyZWEiLHdpZGdldHM6ZSxjdXJyZW50SW5kZXg6aX19fSx0LmZpbmREcm9wVGFyZ2V0PWZ1bmN0aW9uKGUsbixpKXtpZighdS5FbGVtZW50RXh0LmhpdFRlc3QoZS5ub2RlLG4saSkpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTt2YXIgcj1lLmxheW91dDtpZihyLmlzRW1wdHkpcmV0dXJue3pvbmU6InJvb3QtYWxsIix0YXJnZXQ6bnVsbH07aWYoIm11bHRpcGxlLWRvY3VtZW50Ij09PWUubW9kZSl7dmFyIG89ZS5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9bi1vLmxlZnQrMSxhPWktby50b3ArMSxjPW8ucmlnaHQtbixoPW8uYm90dG9tLWksbD1NYXRoLm1pbihzLGEsYyxoKTtpZihsPD10LkVER0VfU0laRSl7dmFyIGQ7c3dpdGNoKGwpe2Nhc2UgczpkPSJyb290LWxlZnQiO2JyZWFrO2Nhc2UgYTpkPSJyb290LXRvcCI7YnJlYWs7Y2FzZSBjOmQ9InJvb3QtcmlnaHQiO2JyZWFrO2Nhc2UgaDpkPSJyb290LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6ZCx0YXJnZXQ6bnVsbH19fXZhciBmPXIuaGl0VGVzdFRhYkFyZWFzKG4saSk7aWYoIWYpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTtpZigic2luZ2xlLWRvY3VtZW50Ij09PWUubW9kZSlyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3ZhciBwLG09Zi54LWYubGVmdCsxLGc9Zi55LWYudG9wKzEsdj1mLmxlZnQrZi53aWR0aC1mLngsYj1mLnRvcCtmLmhlaWdodC1mLnkseT1NYXRoLnJvdW5kKGYud2lkdGgvMyksXz1NYXRoLnJvdW5kKGYuaGVpZ2h0LzMpO2lmKG0+eSYmdj55JiZnPl8mJmI+XylyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3N3aXRjaChtLz15LGcvPV8sdi89eSxiLz1fLE1hdGgubWluKG0sZyx2LGIpKXtjYXNlIG06cD0id2lkZ2V0LWxlZnQiO2JyZWFrO2Nhc2UgZzpwPSJ3aWRnZXQtdG9wIjticmVhaztjYXNlIHY6cD0id2lkZ2V0LXJpZ2h0IjticmVhaztjYXNlIGI6cD0id2lkZ2V0LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6cCx0YXJnZXQ6Zn19LHQuZ2V0RHJvcFJlZj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXQudGl0bGVzLmxlbmd0aD9udWxsOnQuY3VycmVudFRpdGxlP3QuY3VycmVudFRpdGxlLm93bmVyOnQudGl0bGVzW3QudGl0bGVzLmxlbmd0aC0xXS5vd25lcn19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMikscj1uKDExKSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX2NvdW50ZXI9MCx0aGlzLl93aWRnZXRzPVtdLHRoaXMuX2FjdGl2ZVdpZGdldD1udWxsLHRoaXMuX2N1cnJlbnRXaWRnZXQ9bnVsbCx0aGlzLl9udW1iZXJzPW5ldyBNYXAsdGhpcy5fbm9kZXM9bmV3IE1hcCx0aGlzLl9hY3RpdmVDaGFuZ2VkPW5ldyByLlNpZ25hbCh0aGlzKSx0aGlzLl9jdXJyZW50Q2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyl9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2NvdW50ZXI8MHx8KHRoaXMuX2NvdW50ZXI9LTEsci5TaWduYWwuY2xlYXJEYXRhKHRoaXMpLGkuZWFjaCh0aGlzLl93aWRnZXRzLGZ1bmN0aW9uKGUpe2Uubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdCwhMCksZS5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHQsITApfSksdGhpcy5fYWN0aXZlV2lkZ2V0PW51bGwsdGhpcy5fY3VycmVudFdpZGdldD1udWxsLHRoaXMuX25vZGVzLmNsZWFyKCksdGhpcy5fbnVtYmVycy5jbGVhcigpLHRoaXMuX3dpZGdldHMubGVuZ3RoPTApfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImN1cnJlbnRDaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiYWN0aXZlQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNEaXNwb3NlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3VudGVyPDB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRXaWRnZXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJhY3RpdmVXaWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlV2lkZ2V0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZvY3VzTnVtYmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX251bWJlcnMuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1lPy0xOmV9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbnVtYmVycy5oYXModCl9LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZighdGhpcy5fbnVtYmVycy5oYXModCkpe3ZhciBlPXQubm9kZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxuPWU/dGhpcy5fY291bnRlcisrOi0xO3RoaXMuX3dpZGdldHMucHVzaCh0KSx0aGlzLl9udW1iZXJzLnNldCh0LG4pLHRoaXMuX25vZGVzLnNldCh0Lm5vZGUsdCksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLCEwKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcywhMCksdC5kaXNwb3NlZC5jb25uZWN0KHRoaXMuX29uV2lkZ2V0RGlzcG9zZWQsdGhpcyksZSYmdGhpcy5fc2V0V2lkZ2V0cyh0LHQpfX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fbnVtYmVycy5oYXModCkmJih0LmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25XaWRnZXREaXNwb3NlZCx0aGlzKSx0Lm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHQubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKSxpLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YodGhpcy5fd2lkZ2V0cyx0KSx0aGlzLl9ub2Rlcy5kZWxldGUodC5ub2RlKSx0aGlzLl9udW1iZXJzLmRlbGV0ZSh0KSx0aGlzLl9jdXJyZW50V2lkZ2V0PT09dCkpe3ZhciBuPWkuZmlsdGVyKHRoaXMuX3dpZGdldHMsZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1lLl9udW1iZXJzLmdldCh0KX0pLHI9aS5tYXgobixmdW5jdGlvbih0LG4pe3JldHVybiBlLl9udW1iZXJzLmdldCh0KS1lLl9udW1iZXJzLmdldChuKX0pfHxudWxsO3RoaXMuX3NldFdpZGdldHMocixudWxsKX19LHQucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiZm9jdXMiOnRoaXMuX2V2dEZvY3VzKHQpO2JyZWFrO2Nhc2UiYmx1ciI6dGhpcy5fZXZ0Qmx1cih0KX19LHQucHJvdG90eXBlLl9zZXRXaWRnZXRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudFdpZGdldDt0aGlzLl9jdXJyZW50V2lkZ2V0PXQ7dmFyIGk9dGhpcy5fYWN0aXZlV2lkZ2V0O3RoaXMuX2FjdGl2ZVdpZGdldD1lLG4hPT10JiZ0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTpuLG5ld1ZhbHVlOnR9KSxpIT09ZSYmdGhpcy5fYWN0aXZlQ2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTppLG5ld1ZhbHVlOmV9KX0sdC5wcm90b3R5cGUuX2V2dEZvY3VzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX25vZGVzLmdldCh0LmN1cnJlbnRUYXJnZXQpO2UhPT10aGlzLl9jdXJyZW50V2lkZ2V0JiZ0aGlzLl9udW1iZXJzLnNldChlLHRoaXMuX2NvdW50ZXIrKyksdGhpcy5fc2V0V2lkZ2V0cyhlLGUpfSx0LnByb3RvdHlwZS5fZXZ0Qmx1cj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub2Rlcy5nZXQodC5jdXJyZW50VGFyZ2V0KSxuPXQucmVsYXRlZFRhcmdldDtuJiYoZS5ub2RlLmNvbnRhaW5zKG4pfHxpLmZpbmQodGhpcy5fd2lkZ2V0cyxmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlLmNvbnRhaW5zKG4pfSkpfHx0aGlzLl9zZXRXaWRnZXRzKHRoaXMuX2N1cnJlbnRXaWRnZXQsbnVsbCl9LHQucHJvdG90eXBlLl9vbldpZGdldERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlKHQpfSx0fSgpO2UuRm9jdXNUcmFja2VyPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9kaXJ0eT0hMSxuLl9yb3dTcGFjaW5nPTQsbi5fY29sdW1uU3BhY2luZz00LG4uX2l0ZW1zPVtdLG4uX3Jvd1N0YXJ0cz1bXSxuLl9jb2x1bW5TdGFydHM9W10sbi5fcm93U2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fY29sdW1uU2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fYm94PW51bGwsdm9pZCAwIT09ZS5yb3dDb3VudCYmby5yZWFsbG9jU2l6ZXJzKG4uX3Jvd1NpemVycyxlLnJvd0NvdW50KSx2b2lkIDAhPT1lLmNvbHVtbkNvdW50JiZvLnJlYWxsb2NTaXplcnMobi5fY29sdW1uU2l6ZXJzLGUuY29sdW1uQ291bnQpLHZvaWQgMCE9PWUucm93U3BhY2luZyYmKG4uX3Jvd1NwYWNpbmc9by5jbGFtcFZhbHVlKGUucm93U3BhY2luZykpLHZvaWQgMCE9PWUuY29sdW1uU3BhY2luZyYmKG4uX2NvbHVtblNwYWNpbmc9by5jbGFtcFZhbHVlKGUuY29sdW1uU3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3ZhciBlPXQud2lkZ2V0O3QuZGlzcG9zZSgpLGUuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcm93U3RhcnRzLmxlbmd0aD0wLHRoaXMuX3Jvd1NpemVycy5sZW5ndGg9MCx0aGlzLl9jb2x1bW5TdGFydHMubGVuZ3RoPTAsdGhpcy5fY29sdW1uU2l6ZXJzLmxlbmd0aD0wLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dDb3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb3dTaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMucm93Q291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fcm93U2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2x1bW5Db3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuY29sdW1uQ291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fY29sdW1uU2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dTcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvd1NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBWYWx1ZSh0KSx0aGlzLl9yb3dTcGFjaW5nIT09dCYmKHRoaXMuX3Jvd1NwYWNpbmc9dCx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuZml0KCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29sdW1uU3BhY2luZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TcGFjaW5nfSxzZXQ6ZnVuY3Rpb24odCl7dD1vLmNsYW1wVmFsdWUodCksdGhpcy5fY29sdW1uU3BhY2luZyE9PXQmJih0aGlzLl9jb2x1bW5TcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yb3dTdHJldGNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Jvd1NpemVyc1t0XTtyZXR1cm4gZT9lLnN0cmV0Y2g6LTF9LGUucHJvdG90eXBlLnNldFJvd1N0cmV0Y2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9yb3dTaXplcnNbdF07biYmKGU9by5jbGFtcFZhbHVlKGUpLG4uc3RyZXRjaCE9PWUmJihuLnN0cmV0Y2g9ZSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZS5wcm90b3R5cGUuY29sdW1uU3RyZXRjaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb2x1bW5TaXplcnNbdF07cmV0dXJuIGU/ZS5zdHJldGNoOi0xfSxlLnByb3RvdHlwZS5zZXRDb2x1bW5TdHJldGNoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY29sdW1uU2l6ZXJzW3RdO24mJihlPW8uY2xhbXBWYWx1ZShlKSxuLnN0cmV0Y2ghPT1lJiYobi5zdHJldGNoPWUsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gcy5tYXAodGhpcy5faXRlbXMsZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkZ2V0fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXstMT09PXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUud2lkZ2V0PT09dH0pJiYodGhpcy5faXRlbXMucHVzaChuZXcgbC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudCYmdGhpcy5hdHRhY2hXaWRnZXQodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7dmFyIGU9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLl9pdGVtcyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSk7aWYoLTE9PT1lKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLGUpO3RoaXMucGFyZW50JiZ0aGlzLmRldGFjaFdpZGdldCh0KSxuLmRpc3Bvc2UoKX19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsZC5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxkLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKHQubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49dGhpcy5yb3dDb3VudDt0PG47Kyt0KXRoaXMuX3Jvd1NpemVyc1t0XS5taW5TaXplPTA7Zm9yKHQ9MCxuPXRoaXMuY29sdW1uQ291bnQ7dDxuOysrdCl0aGlzLl9jb2x1bW5TaXplcnNbdF0ubWluU2l6ZT0wO3ZhciBpPXRoaXMuX2l0ZW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5pc0hpZGRlbn0pO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KWlbdF0uZml0KCk7dmFyIHI9dGhpcy5yb3dDb3VudC0xLHM9dGhpcy5jb2x1bW5Db3VudC0xO2kuc29ydChvLnJvd1NwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXt2YXIgYz1pW3RdLGg9ZS5nZXRDZWxsQ29uZmlnKGMud2lkZ2V0KSxsPU1hdGgubWluKGgucm93LHIpLGY9TWF0aC5taW4oaC5yb3craC5yb3dTcGFuLTEscik7by5kaXN0cmlidXRlTWluKHRoaXMuX3Jvd1NpemVycyxsLGYsYy5taW5IZWlnaHQpfWkuc29ydChvLmNvbHVtblNwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXtjPWlbdF0saD1lLmdldENlbGxDb25maWcoYy53aWRnZXQpO3ZhciBwPU1hdGgubWluKGguY29sdW1uLHMpLG09TWF0aC5taW4oaC5jb2x1bW4raC5jb2x1bW5TcGFuLTEscyk7by5kaXN0cmlidXRlTWluKHRoaXMuX2NvbHVtblNpemVycyxwLG0sYy5taW5XaWR0aCl9aWYoInNldC1uby1jb25zdHJhaW50IiE9PXRoaXMuZml0UG9saWN5KXt2YXIgZz1yKnRoaXMuX3Jvd1NwYWNpbmcsdj1zKnRoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKHQ9MCxuPXRoaXMucm93Q291bnQ7dDxuOysrdClnKz10aGlzLl9yb3dTaXplcnNbdF0ubWluU2l6ZTtmb3IodD0wLG49dGhpcy5jb2x1bW5Db3VudDt0PG47Kyt0KXYrPXRoaXMuX2NvbHVtblNpemVyc1t0XS5taW5TaXplO3ZhciBiPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3YrPWIuaG9yaXpvbnRhbFN1bSxnKz1iLnZlcnRpY2FsU3VtO3ZhciB5PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7eS5taW5XaWR0aD12KyJweCIseS5taW5IZWlnaHQ9ZysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGQuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX1lbHNlIHUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5wYXJlbnQsZC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpfSxlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQsbil7dGhpcy5fZGlydHk9ITEsdDwwJiYodD10aGlzLnBhcmVudC5ub2RlLm9mZnNldFdpZHRoKSxuPDAmJihuPXRoaXMucGFyZW50Lm5vZGUub2Zmc2V0SGVpZ2h0KSx0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIGk9dGhpcy5fYm94LnBhZGRpbmdUb3Ascj10aGlzLl9ib3gucGFkZGluZ0xlZnQsbz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLHM9bi10aGlzLl9ib3gudmVydGljYWxTdW0sdT10aGlzLnJvd0NvdW50LTEsYz10aGlzLmNvbHVtbkNvdW50LTEsbD11KnRoaXMuX3Jvd1NwYWNpbmcsZD1jKnRoaXMuX2NvbHVtblNwYWNpbmc7aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9yb3dTaXplcnMsTWF0aC5tYXgoMCxzLWwpKSxoLkJveEVuZ2luZS5jYWxjKHRoaXMuX2NvbHVtblNpemVycyxNYXRoLm1heCgwLG8tZCkpO2Zvcih2YXIgZj0wLHA9aSxtPXRoaXMucm93Q291bnQ7ZjxtOysrZil0aGlzLl9yb3dTdGFydHNbZl09cCxwKz10aGlzLl9yb3dTaXplcnNbZl0uc2l6ZSt0aGlzLl9yb3dTcGFjaW5nO2ZvcihmPTAscD1yLG09dGhpcy5jb2x1bW5Db3VudDtmPG07KytmKXRoaXMuX2NvbHVtblN0YXJ0c1tmXT1wLHArPXRoaXMuX2NvbHVtblNpemVyc1tmXS5zaXplK3RoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKGY9MCxtPXRoaXMuX2l0ZW1zLmxlbmd0aDtmPG07KytmKXt2YXIgZz10aGlzLl9pdGVtc1tmXTtpZighZy5pc0hpZGRlbil7dmFyIHY9ZS5nZXRDZWxsQ29uZmlnKGcud2lkZ2V0KSxiPU1hdGgubWluKHYucm93LHUpLHk9TWF0aC5taW4odi5jb2x1bW4sYyksXz1NYXRoLm1pbih2LnJvdyt2LnJvd1NwYW4tMSx1KSx3PU1hdGgubWluKHYuY29sdW1uK3YuY29sdW1uU3Bhbi0xLGMpLHg9dGhpcy5fY29sdW1uU3RhcnRzW3ldLE09dGhpcy5fcm93U3RhcnRzW2JdLFM9dGhpcy5fY29sdW1uU3RhcnRzW3ddK3RoaXMuX2NvbHVtblNpemVyc1t3XS5zaXplLXgsRT10aGlzLl9yb3dTdGFydHNbX10rdGhpcy5fcm93U2l6ZXJzW19dLnNpemUtTTtnLnVwZGF0ZSh4LE0sUyxFKX19fSxlfShsLkxheW91dCk7ZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5nZXRDZWxsQ29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNlbGxDb25maWdQcm9wZXJ0eS5nZXQodCl9LHQuc2V0Q2VsbENvbmZpZz1mdW5jdGlvbih0LGUpe28uY2VsbENvbmZpZ1Byb3BlcnR5LnNldCh0LG8ubm9ybWFsaXplQ29uZmlnKGUpKX19KGY9ZS5HcmlkTGF5b3V0fHwoZS5HcmlkTGF5b3V0PXt9KSksZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5jZWxsQ29uZmlnUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToiY2VsbENvbmZpZyIsY3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJue3JvdzowLGNvbHVtbjowLHJvd1NwYW46MSxjb2x1bW5TcGFuOjF9fSxjaGFuZ2VkOmZ1bmN0aW9uKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBmJiZ0LnBhcmVudC5maXQoKX19KSx0Lm5vcm1hbGl6ZUNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm57cm93Ok1hdGgubWF4KDAsTWF0aC5mbG9vcih0LnJvd3x8MCkpLGNvbHVtbjpNYXRoLm1heCgwLE1hdGguZmxvb3IodC5jb2x1bW58fDApKSxyb3dTcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LnJvd1NwYW58fDApKSxjb2x1bW5TcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LmNvbHVtblNwYW58fDApKX19LHQuY2xhbXBWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5yb3dTcGFuQ21wPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5jZWxsQ29uZmlnUHJvcGVydHkuZ2V0KGUud2lkZ2V0KSxyPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChuLndpZGdldCk7cmV0dXJuIGkucm93U3Bhbi1yLnJvd1NwYW59LHQuY29sdW1uU3BhbkNtcD1mdW5jdGlvbihlLG4pe3ZhciBpPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChlLndpZGdldCkscj10LmNlbGxDb25maWdQcm9wZXJ0eS5nZXQobi53aWRnZXQpO3JldHVybiBpLmNvbHVtblNwYW4tci5jb2x1bW5TcGFufSx0LnJlYWxsb2NTaXplcnM9ZnVuY3Rpb24odCxlKXtmb3IoZT1NYXRoLm1heCgxLE1hdGguZmxvb3IoZSkpO3QubGVuZ3RoPGU7KXQucHVzaChuZXcgaC5Cb3hTaXplcik7dC5sZW5ndGg8ZSYmKHQubGVuZ3RoPWUpfSx0LmRpc3RyaWJ1dGVNaW49ZnVuY3Rpb24odCxlLG4saSl7aWYoIShuPGUpKWlmKGUhPT1uKXtmb3IodmFyIHI9MCxvPWU7bzw9bjsrK28pcis9dFtvXS5taW5TaXplO2lmKCEocj49aSkpe3ZhciBzPShpLXIpLyhuLWUrMSk7Zm9yKG89ZTtvPD1uOysrbyl0W29dLm1pblNpemUrPXN9fWVsc2V7dmFyIGE9dFtlXTthLm1pblNpemU9TWF0aC5tYXgoYS5taW5TaXplLGkpfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDc5KSxjPW4oNSksaD1uKDU1KSxsPW4oNyksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgaT10LmNhbGwodGhpcyx7bm9kZTpvLmNyZWF0ZU5vZGUoKX0pfHx0aGlzO3JldHVybiBpLl9hY3RpdmVJbmRleD0tMSxpLl9tZW51cz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFkZENsYXNzKCJwLU1lbnVCYXIiKSxpLnNldEZsYWcobC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5fbWVudXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImNoaWxkTWVudSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jaGlsZE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51QmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZU1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX21lbnVzLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX21lbnVzLmxlbmd0aCkmJih0PS0xKSx0aGlzLl9hY3RpdmVJbmRleCE9PXQmJih0aGlzLl9hY3RpdmVJbmRleD10LHRoaXMudXBkYXRlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibWVudXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUub3BlbkFjdGl2ZU1lbnU9ZnVuY3Rpb24oKXstMSE9PXRoaXMuX2FjdGl2ZUluZGV4JiYodGhpcy5fb3BlbkNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudSYmKHRoaXMuX2NoaWxkTWVudS5hY3RpdmVJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnUuYWN0aXZhdGVOZXh0SXRlbSgpKSl9LGUucHJvdG90eXBlLmFkZE1lbnU9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRNZW51KHRoaXMuX21lbnVzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0TWVudT1mdW5jdGlvbih0LGUpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIG49dGhpcy5fbWVudXMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl9tZW51cy5sZW5ndGgpKTtpZigtMT09PW4pcmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX21lbnVzLGksZSksZS5hZGRDbGFzcygicC1NZW51QmFyLW1lbnUiKSxlLmFib3V0VG9DbG9zZS5jb25uZWN0KHRoaXMuX29uTWVudUFib3V0VG9DbG9zZSx0aGlzKSxlLm1lbnVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vbk1lbnVNZW51UmVxdWVzdGVkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHZvaWQgdGhpcy51cGRhdGUoKTtpPT09dGhpcy5fbWVudXMubGVuZ3RoJiZpLS0sbiE9PWkmJihzLkFycmF5RXh0Lm1vdmUodGhpcy5fbWVudXMsbixpKSx0aGlzLnVwZGF0ZSgpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudT1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZU1lbnVBdCh0aGlzLl9tZW51cy5pbmRleE9mKHQpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudUF0PWZ1bmN0aW9uKHQpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIGU9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9tZW51cyx0KTtlJiYoZS5hYm91dFRvQ2xvc2UuZGlzY29ubmVjdCh0aGlzLl9vbk1lbnVBYm91dFRvQ2xvc2UsdGhpcyksZS5tZW51UmVxdWVzdGVkLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51TWVudVJlcXVlc3RlZCx0aGlzKSxlLnRpdGxlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlLnJlbW92ZUNsYXNzKCJwLU1lbnVCYXItbWVudSIpLHRoaXMudXBkYXRlKCkpfSxlLnByb3RvdHlwZS5jbGVhck1lbnVzPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuX21lbnVzLmxlbmd0aCl7dGhpcy5fY2xvc2VDaGlsZE1lbnUoKTtmb3IodmFyIHQ9MCxlPXRoaXMuX21lbnVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO24uYWJvdXRUb0Nsb3NlLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51QWJvdXRUb0Nsb3NlLHRoaXMpLG4ubWVudVJlcXVlc3RlZC5kaXNjb25uZWN0KHRoaXMuX29uTWVudU1lbnVSZXF1ZXN0ZWQsdGhpcyksbi50aXRsZS5jaGFuZ2VkLmRpc2Nvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksbi5yZW1vdmVDbGFzcygicC1NZW51QmFyLW1lbnUiKX10aGlzLl9tZW51cy5sZW5ndGg9MCx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNlbGVhdmUiOnRoaXMuX2V2dE1vdXNlTGVhdmUodCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMpLHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLm9uQWN0aXZhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5ub2RlLmZvY3VzKCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fbWVudXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5fYWN0aXZlSW5kZXgscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10udGl0bGUsdT1vPT09aTtyW29dPW4ucmVuZGVySXRlbSh7dGl0bGU6YSxhY3RpdmU6dX0pfWguVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGU9dC5rZXlDb2RlO2lmKDEzIT09ZSYmMzghPT1lJiY0MCE9PWUpe2lmKDI3PT09ZSlyZXR1cm4gdGhpcy5fY2xvc2VDaGlsZE1lbnUoKSx0aGlzLmFjdGl2ZUluZGV4PS0xLHZvaWQgdGhpcy5ub2RlLmJsdXIoKTtpZigzNyE9PWUpaWYoMzkhPT1lKXt2YXIgbj11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKG4pe3ZhciBpPXRoaXMuX2FjdGl2ZUluZGV4KzEscj1vLmZpbmRNbmVtb25pYyh0aGlzLl9tZW51cyxuLGkpOy0xPT09ci5pbmRleHx8ci5tdWx0aXBsZT8tMSE9PXIuaW5kZXg/dGhpcy5hY3RpdmVJbmRleD1yLmluZGV4Oi0xIT09ci5hdXRvJiYodGhpcy5hY3RpdmVJbmRleD1yLmF1dG8pOih0aGlzLmFjdGl2ZUluZGV4PXIuaW5kZXgsdGhpcy5vcGVuQWN0aXZlTWVudSgpKX19ZWxzZXtzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9cz09PWEtMT8wOnMrMX1lbHNle3ZhciBzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9MD09PXM/YS0xOnMtMX19ZWxzZSB0aGlzLm9wZW5BY3RpdmVNZW51KCl9LGUucHJvdG90eXBlLl9ldnRNb3VzZURvd249ZnVuY3Rpb24odCl7aWYoYS5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5ub2RlLHQuY2xpZW50WCx0LmNsaWVudFkpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pOy0xIT09ZT8wPT09dC5idXR0b24mJih0aGlzLl9jaGlsZE1lbnU/KHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5hY3RpdmVJbmRleD1lKToodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX29wZW5DaGlsZE1lbnUoKSkpOnRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2UhPT10aGlzLl9hY3RpdmVJbmRleCYmKC0xPT09ZSYmdGhpcy5fY2hpbGRNZW51fHwodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX2NoaWxkTWVudSYmdGhpcy5fb3BlbkNoaWxkTWVudSgpKSl9LGUucHJvdG90eXBlLl9ldnRNb3VzZUxlYXZlPWZ1bmN0aW9uKHQpe3RoaXMuX2NoaWxkTWVudXx8KHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb3BlbkNoaWxkTWVudT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0aXZlTWVudTtpZih0KXt2YXIgZT10aGlzLl9jaGlsZE1lbnU7aWYoZSE9PXQpe3RoaXMuX2NoaWxkTWVudT10LGU/ZS5jbG9zZSgpOih0aGlzLmFkZENsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApKSxjLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMsbC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW5bdGhpcy5fYWN0aXZlSW5kZXhdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5sZWZ0LHI9bi5ib3R0b207dC5vcGVuKGkscix7Zm9yY2VYOiEwLGZvcmNlWTohMH0pfX1lbHNlIHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLl9jbG9zZUNoaWxkTWVudT1mdW5jdGlvbigpe2lmKHRoaXMuX2NoaWxkTWVudSl7dGhpcy5yZW1vdmVDbGFzcygicC1tb2QtYWN0aXZlIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKTt2YXIgdD10aGlzLl9jaGlsZE1lbnU7dGhpcy5fY2hpbGRNZW51PW51bGwsdC5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTF9fSxlLnByb3RvdHlwZS5fb25NZW51QWJvdXRUb0Nsb3NlPWZ1bmN0aW9uKHQpe3Q9PT10aGlzLl9jaGlsZE1lbnUmJih0aGlzLnJlbW92ZUNsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApLHRoaXMuX2NoaWxkTWVudT1udWxsLHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb25NZW51TWVudVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2lmKHQ9PT10aGlzLl9jaGlsZE1lbnUpe3ZhciBuPXRoaXMuX2FjdGl2ZUluZGV4LGk9dGhpcy5fbWVudXMubGVuZ3RoO3N3aXRjaChlKXtjYXNlIm5leHQiOnRoaXMuYWN0aXZlSW5kZXg9bj09PWktMT8wOm4rMTticmVhaztjYXNlInByZXZpb3VzIjp0aGlzLmFjdGl2ZUluZGV4PTA9PT1uP2ktMTpuLTF9dGhpcy5vcGVuQWN0aXZlTWVudSgpfX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGUoKX0sZX0obC5XaWRnZXQpO2UuTWVudUJhcj1kLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySXRlbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUl0ZW1DbGFzcyh0KSxuPXRoaXMuY3JlYXRlSXRlbURhdGFzZXQodCk7cmV0dXJuIGguaC5saSh7Y2xhc3NOYW1lOmUsZGF0YXNldDpufSx0aGlzLnJlbmRlckljb24odCksdGhpcy5yZW5kZXJMYWJlbCh0KSl9LHQucHJvdG90eXBlLnJlbmRlckljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZTplfSx0LnRpdGxlLmljb25MYWJlbCl9LHQucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0TGFiZWwodCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1MYWJlbCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtIjtyZXR1cm4gdC50aXRsZS5jbGFzc05hbWUmJihlKz0iICIrdC50aXRsZS5jbGFzc05hbWUpLHQuYWN0aXZlJiYoZSs9IiBwLW1vZC1hY3RpdmUiKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdC50aXRsZS5kYXRhc2V0fSx0LnByb3RvdHlwZS5jcmVhdGVJY29uQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtSWNvbiIsbj10LnRpdGxlLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUsbj1lLmxhYmVsLGk9ZS5tbmVtb25pYztpZihpPDB8fGk+PW4ubGVuZ3RoKXJldHVybiBuO3ZhciByPW4uc2xpY2UoMCxpKSxvPW4uc2xpY2UoaSsxKSxzPW5baV07cmV0dXJuW3IsaC5oLnNwYW4oe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1NbmVtb25pYyJ9LHMpLG9dfSx0fSgpO3QuUmVuZGVyZXI9ZSx0LmRlZmF1bHRSZW5kZXJlcj1uZXcgZX0oZD1lLk1lbnVCYXJ8fChlLk1lbnVCYXI9e30pKSxlLk1lbnVCYXI9ZCxmdW5jdGlvbih0KXt0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLU1lbnVCYXItY29udGVudCIsdC5hcHBlbmRDaGlsZChlKSx0LnRhYkluZGV4PS0xLHR9LHQuZmluZE1uZW1vbmljPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9LTEscj0tMSxvPSExLHM9ZS50b1VwcGVyQ2FzZSgpLGE9MCx1PXQubGVuZ3RoO2E8dTsrK2Epe3ZhciBjPShhK24pJXUsaD10W2NdLnRpdGxlO2lmKDAhPT1oLmxhYmVsLmxlbmd0aCl7dmFyIGw9aC5tbmVtb25pYztsPj0wJiZsPGgubGFiZWwubGVuZ3RoP2gubGFiZWxbbF0udG9VcHBlckNhc2UoKT09PXMmJigtMT09PWk/aT1jOm89ITApOi0xPT09ciYmaC5sYWJlbFswXS50b1VwcGVyQ2FzZSgpPT09cyYmKHI9Yyl9fXJldHVybntpbmRleDppLG11bHRpcGxlOm8sYXV0bzpyfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNTYpLHU9bigxMSksYz1uKDcpLGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dC5jYWxsKHRoaXMse25vZGU6by5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gbi5fb25SZXBlYXQ9ZnVuY3Rpb24oKXtpZihuLl9yZXBlYXRUaW1lcj0tMSxuLl9wcmVzc0RhdGEpe3ZhciB0PW4uX3ByZXNzRGF0YS5wYXJ0O2lmKCJ0aHVtYiIhPT10KXtuLl9yZXBlYXRUaW1lcj1zZXRUaW1lb3V0KG4uX29uUmVwZWF0LDIwKTt2YXIgZT1uLl9wcmVzc0RhdGEubW91c2VYLGk9bi5fcHJlc3NEYXRhLm1vdXNlWTtpZigiZGVjcmVtZW50IiE9PXQpaWYoImluY3JlbWVudCIhPT10KXtpZigidHJhY2siPT09dCl7aWYoIXMuRWxlbWVudEV4dC5oaXRUZXN0KG4udHJhY2tOb2RlLGUsaSkpcmV0dXJuO3ZhciByPW4udGh1bWJOb2RlO2lmKHMuRWxlbWVudEV4dC5oaXRUZXN0KHIsZSxpKSlyZXR1cm47dmFyIG89ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPXZvaWQgMDtyZXR1cm4gYT0iaG9yaXpvbnRhbCI9PT1uLl9vcmllbnRhdGlvbj9lPG8ubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50IjppPG8udG9wPyJkZWNyZW1lbnQiOiJpbmNyZW1lbnQiLHZvaWQgbi5fcGFnZVJlcXVlc3RlZC5lbWl0KGEpfX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmluY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJpbmNyZW1lbnQiKX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmRlY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJkZWNyZW1lbnQiKX19fX0sbi5fdmFsdWU9MCxuLl9wYWdlPTEwLG4uX21heGltdW09MTAwLG4uX3JlcGVhdFRpbWVyPS0xLG4uX3ByZXNzRGF0YT1udWxsLG4uX3RodW1iTW92ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3N0ZXBSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3BhZ2VSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU2Nyb2xsQmFyIiksbi5zZXRGbGFnKGMuV2lkZ2V0LkZsYWcuRGlzYWxsb3dMYXlvdXQpLG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb258fCJ2ZXJ0aWNhbCIsbi5kYXRhc2V0Lm9yaWVudGF0aW9uPW4uX29yaWVudGF0aW9uLHZvaWQgMCE9PWUubWF4aW11bSYmKG4uX21heGltdW09TWF0aC5tYXgoMCxlLm1heGltdW0pKSx2b2lkIDAhPT1lLnBhZ2UmJihuLl9wYWdlPU1hdGgubWF4KDAsZS5wYWdlKSksdm9pZCAwIT09ZS52YWx1ZSYmKG4uX3ZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oZS52YWx1ZSxuLl9tYXhpbXVtKSkpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRodW1iTW92ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGh1bWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0ZXBSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RlcFJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInBhZ2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGFnZVJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dD1NYXRoLm1heCgwLE1hdGgubWluKHQsdGhpcy5fbWF4aW11bSkpLHRoaXMuX3ZhbHVlIT09dCYmKHRoaXMuX3ZhbHVlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWdlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhZ2V9LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fcGFnZSE9PXQmJih0aGlzLl9wYWdlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtYXhpbXVtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heGltdW19LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fbWF4aW11bSE9PXQmJih0aGlzLl9tYXhpbXVtPXQsdGhpcy5fdmFsdWU9TWF0aC5taW4odGhpcy5fdmFsdWUsdCksdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJkZWNyZW1lbnROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci1idXR0b24iKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImluY3JlbWVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtU2Nyb2xsQmFyLWJ1dHRvbiIpWzFdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidHJhY2tOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10cmFjayIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGh1bWJOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10aHVtYiIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPTEwMCp0aGlzLl92YWx1ZS90aGlzLl9tYXhpbXVtLG49MTAwKnRoaXMuX3BhZ2UvKHRoaXMuX3BhZ2UrdGhpcy5fbWF4aW11bSk7ZT1NYXRoLm1heCgwLE1hdGgubWluKGUsMTAwKSksbj1NYXRoLm1heCgwLE1hdGgubWluKG4sMTAwKSk7dmFyIGk9dGhpcy50aHVtYk5vZGUuc3R5bGU7Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/KGkudG9wPSIiLGkuaGVpZ2h0PSIiLGkubGVmdD1lKyIlIixpLndpZHRoPW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIistZSsiJSwgMCUpIik6KGkubGVmdD0iIixpLndpZHRoPSIiLGkudG9wPWUrIiUiLGkuaGVpZ2h0PW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCUsICIrLWUrIiUpIil9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlKXt2YXIgZT10aGlzLl9wcmVzc0RhdGE/dGhpcy5fcHJlc3NEYXRhLnZhbHVlOi0xO3RoaXMuX3JlbGVhc2VNb3VzZSgpLC0xIT09ZSYmdGhpcy5fbW92ZVRodW1iKGUpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24mJiF0aGlzLl9wcmVzc0RhdGEpe3ZhciBlPW8uZmluZFBhcnQodGhpcyx0LnRhcmdldCk7aWYoZSl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIG49YS5EcmFnLm92ZXJyaWRlQ3Vyc29yKCJkZWZhdWx0Iik7aWYodGhpcy5fcHJlc3NEYXRhPXtwYXJ0OmUsb3ZlcnJpZGU6bixkZWx0YTotMSx2YWx1ZTotMSxtb3VzZVg6dC5jbGllbnRYLG1vdXNlWTp0LmNsaWVudFl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLCJ0aHVtYiI9PT1lKXt2YXIgaT10aGlzLnRodW1iTm9kZSxyPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WC1yLmxlZnQ6dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WS1yLnRvcCxpLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHZvaWQodGhpcy5fcHJlc3NEYXRhLnZhbHVlPXRoaXMuX3ZhbHVlKX1pZigidHJhY2siPT09ZSl7cj10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgcz12b2lkIDA7cmV0dXJuIHM9Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dC5jbGllbnRYPHIubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50Ijp0LmNsaWVudFk8ci50b3A/ImRlY3JlbWVudCI6ImluY3JlbWVudCIsdGhpcy5fcmVwZWF0VGltZXI9c2V0VGltZW91dCh0aGlzLl9vblJlcGVhdCwzNTApLHZvaWQgdGhpcy5fcGFnZVJlcXVlc3RlZC5lbWl0KHMpfXJldHVybiJkZWNyZW1lbnQiPT09ZT8odGhpcy5kZWNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiZGVjcmVtZW50IikpOiJpbmNyZW1lbnQiPT09ZT8odGhpcy5pbmNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiaW5jcmVtZW50IikpOnZvaWQgMH19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX3ByZXNzRGF0YSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVg9dC5jbGllbnRYLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVk9dC5jbGllbnRZLCJ0aHVtYiI9PT10aGlzLl9wcmVzc0RhdGEucGFydCkpe3ZhciBlLG4saT10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMudHJhY2tOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyJob3Jpem9udGFsIj09PXRoaXMuX29yaWVudGF0aW9uPyhlPXQuY2xpZW50WC1yLmxlZnQtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci53aWR0aC1pLndpZHRoKTooZT10LmNsaWVudFktci50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci5oZWlnaHQtaS5oZWlnaHQpO3ZhciBvPTA9PT1uPzA6ZSp0aGlzLl9tYXhpbXVtL247dGhpcy5fbW92ZVRodW1iKG8pfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fcmVsZWFzZU1vdXNlKCkpfSxlLnByb3RvdHlwZS5fcmVsZWFzZU1vdXNlPWZ1bmN0aW9uKCl7dGhpcy5fcHJlc3NEYXRhJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3JlcGVhdFRpbWVyKSx0aGlzLl9yZXBlYXRUaW1lcj0tMSx0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHRoaXMudGh1bWJOb2RlLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWFjdGl2ZSIpLHRoaXMuZGVjcmVtZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1hY3RpdmUiKSx0aGlzLmluY3JlbWVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS5fbW92ZVRodW1iPWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX21heGltdW0pKSx0aGlzLl92YWx1ZSE9PXQmJih0aGlzLl92YWx1ZT10LHRoaXMudXBkYXRlKCksdGhpcy5fdGh1bWJNb3ZlZC5lbWl0KHQpKX0sZX0oYy5XaWRnZXQpO2UuU2Nyb2xsQmFyPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsbi5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsZS5kYXRhc2V0LmFjdGlvbj0iZGVjcmVtZW50IixuLmRhdGFzZXQuYWN0aW9uPSJpbmNyZW1lbnQiLGkuY2xhc3NOYW1lPSJwLVNjcm9sbEJhci10cmFjayIsci5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLXRodW1iIixpLmFwcGVuZENoaWxkKHIpLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChpKSx0LmFwcGVuZENoaWxkKG4pLHR9LHQuZmluZFBhcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50aHVtYk5vZGUuY29udGFpbnMoZSk/InRodW1iIjp0LnRyYWNrTm9kZS5jb250YWlucyhlKT8idHJhY2siOnQuZGVjcmVtZW50Tm9kZS5jb250YWlucyhlKT8iZGVjcmVtZW50Ijp0LmluY3JlbWVudE5vZGUuY29udGFpbnMoZSk/ImluY3JlbWVudCI6bnVsbH19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMikscz1uKDUpLGE9bigyMiksdT1uKDcpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0PW51bGwsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZih0aGlzLl93aWRnZXQpe3ZhciBlPXRoaXMuX3dpZGdldDt0aGlzLl93aWRnZXQ9bnVsbCxlLmRpc3Bvc2UoKX10LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldCE9PXQmJih0aGlzLl93aWRnZXQmJnRoaXMuX3dpZGdldC5kaXNwb3NlKCksdGhpcy5fd2lkZ2V0PXQsdGhpcy5wYXJlbnQmJnQmJnRoaXMuYXR0YWNoV2lkZ2V0KHQpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldD9vLm9uY2UodGhpcy5fd2lkZ2V0KTpvLmVtcHR5KCl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLl93aWRnZXQ9PT10JiYodGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5wYXJlbnQmJnRoaXMuZGV0YWNoV2lkZ2V0KHQpKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQpe2UuYXR0YWNoV2lkZ2V0KHQpfSl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCx1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKX0sZX0oYS5MYXlvdXQpO2UuU2luZ2xldG9uTGF5b3V0PWN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNTYpLHU9big1NCksYz1uKDEzMyksaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3ByZXNzRGF0YT1udWxsLG4uYWRkQ2xhc3MoInAtU3BsaXRQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0Lm9yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQub3JpZW50YXRpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInJlbmRlcmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnJlbmRlcmVyfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaGFuZGxlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbGF0aXZlU2l6ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVsYXRpdmVTaXplcygpfSxlLnByb3RvdHlwZS5zZXRSZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNldFJlbGF0aXZlU2l6ZXModCl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVNwbGl0UGFuZWwtY2hpbGQiKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZFJlbW92ZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5yZW1vdmVDbGFzcygicC1TcGxpdFBhbmVsLWNoaWxkIiksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChlLmhhbmRsZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7aWYoLTEhPT1uKXt2YXIgaTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1lLmhhbmRsZXNbbl0sbz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2k9Imhvcml6b250YWwiPT09ZS5vcmllbnRhdGlvbj90LmNsaWVudFgtby5sZWZ0OnQuY2xpZW50WS1vLnRvcDt2YXIgdT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKSxjPWEuRHJhZy5vdmVycmlkZUN1cnNvcih1LmN1cnNvcik7dGhpcy5fcHJlc3NEYXRhPXtpbmRleDpuLGRlbHRhOmksb3ZlcnJpZGU6Y319fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbj10aGlzLmxheW91dCxpPXRoaXMubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPSJob3Jpem9udGFsIj09PW4ub3JpZW50YXRpb24/dC5jbGllbnRYLWkubGVmdC10aGlzLl9wcmVzc0RhdGEuZGVsdGE6dC5jbGllbnRZLWkudG9wLXRoaXMuX3ByZXNzRGF0YS5kZWx0YSxuLm1vdmVIYW5kbGUodGhpcy5fcHJlc3NEYXRhLmluZGV4LGUpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VVcD1mdW5jdGlvbih0KXswPT09dC5idXR0b24mJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9yZWxlYXNlTW91c2UoKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZX0odS5QYW5lbCk7ZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtU3BsaXRQYW5lbC1oYW5kbGUiLHR9LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlLHQuZ2V0U3RyZXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gYy5TcGxpdExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtjLlNwbGl0TGF5b3V0LnNldFN0cmV0Y2godCxlKX19KGg9ZS5TcGxpdFBhbmVsfHwoZS5TcGxpdFBhbmVsPXt9KSksZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVMYXlvdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGF5b3V0fHxuZXcgYy5TcGxpdExheW91dCh7cmVuZGVyZXI6dC5yZW5kZXJlcnx8aC5kZWZhdWx0UmVuZGVyZXIsb3JpZW50YXRpb246dC5vcmllbnRhdGlvbixhbGlnbm1lbnQ6dC5hbGlnbm1lbnQsc3BhY2luZzp0LnNwYWNpbmd9KX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNSksdT1uKDExKSxjPW4oNzYpLGg9bigxMzUpLGw9big4MCksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgbC5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi5zdGFja2VkUGFuZWw9bmV3IGguU3RhY2tlZFBhbmVsLG4uc3RhY2tlZFBhbmVsLmFkZENsYXNzKCJwLVRhYlBhbmVsLXN0YWNrZWRQYW5lbCIpLG4udGFiQmFyLnRhYk1vdmVkLmNvbm5lY3Qobi5fb25UYWJNb3ZlZCxuKSxuLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KG4uX29uQ3VycmVudENoYW5nZWQsbiksbi50YWJCYXIudGFiQ2xvc2VSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkNsb3NlUmVxdWVzdGVkLG4pLG4udGFiQmFyLnRhYkFjdGl2YXRlUmVxdWVzdGVkLmNvbm5lY3Qobi5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZCxuKSxuLnN0YWNrZWRQYW5lbC53aWRnZXRSZW1vdmVkLmNvbm5lY3Qobi5fb25XaWRnZXRSZW1vdmVkLG4pLG4uX3RhYlBsYWNlbWVudD1lLnRhYlBsYWNlbWVudHx8InRvcCI7dmFyIGk9by5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50KG4uX3RhYlBsYWNlbWVudCkscj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudChuLl90YWJQbGFjZW1lbnQpO24udGFiQmFyLm9yaWVudGF0aW9uPXIsbi50YWJCYXIuZGF0YXNldC5wbGFjZW1lbnQ9bi5fdGFiUGxhY2VtZW50O3ZhciBzPW5ldyBjLkJveExheW91dCh7ZGlyZWN0aW9uOmksc3BhY2luZzowfSk7cmV0dXJuIGMuQm94TGF5b3V0LnNldFN0cmV0Y2gobi50YWJCYXIsMCksYy5Cb3hMYXlvdXQuc2V0U3RyZXRjaChuLnN0YWNrZWRQYW5lbCwxKSxzLmFkZFdpZGdldChuLnRhYkJhcikscy5hZGRXaWRnZXQobi5zdGFja2VkUGFuZWwpLG4ubGF5b3V0PXMsbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWJCYXIuY3VycmVudEluZGV4fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIuY3VycmVudEluZGV4PXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50YWJCYXIuY3VycmVudFRpdGxlO3JldHVybiB0P3Qub3duZXI6bnVsbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRUaXRsZT10P3QudGl0bGU6bnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYnNNb3ZhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQmFyLnRhYnNNb3ZhYmxlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIudGFic01vdmFibGU9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYlBsYWNlbWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJQbGFjZW1lbnR9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl90YWJQbGFjZW1lbnQhPT10KXt0aGlzLl90YWJQbGFjZW1lbnQ9dDt2YXIgZT1vLmRpcmVjdGlvbkZyb21QbGFjZW1lbnQodCksbj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudCh0KTt0aGlzLnRhYkJhci5vcmllbnRhdGlvbj1uLHRoaXMudGFiQmFyLmRhdGFzZXQucGxhY2VtZW50PXQsdGhpcy5sYXlvdXQuZGlyZWN0aW9uPWV9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YWNrZWRQYW5lbC53aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLmluc2VydFdpZGdldCh0aGlzLndpZGdldHMubGVuZ3RoLHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXtlIT09dGhpcy5jdXJyZW50V2lkZ2V0JiZlLmhpZGUoKSx0aGlzLnN0YWNrZWRQYW5lbC5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxvPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1vP28ub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwocy5QbGF0Zm9ybS5JU19FREdFfHxzLlBsYXRmb3JtLklTX0lFKSYmYS5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdGFja2VkUGFuZWwuaW5zZXJ0V2lkZ2V0KGUudG9JbmRleCxlLnRpdGxlLm93bmVyKX0sZS5wcm90b3R5cGUuX29uV2lkZ2V0UmVtb3ZlZD1mdW5jdGlvbih0LGUpe3RoaXMudGFiQmFyLnJlbW92ZVRhYihlLnRpdGxlKX0sZX0obig3KS5XaWRnZXQpO2UuVGFiUGFuZWw9ZCxmdW5jdGlvbih0KXt0Lm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudD1mdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0sdC5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuW3RdfTt2YXIgZT17dG9wOiJob3Jpem9udGFsIixsZWZ0OiJ2ZXJ0aWNhbCIscmlnaHQ6InZlcnRpY2FsIixib3R0b206Imhvcml6b250YWwifSxuPXt0b3A6InRvcC10by1ib3R0b20iLGxlZnQ6ImxlZnQtdG8tcmlnaHQiLHJpZ2h0OiJyaWdodC10by1sZWZ0Iixib3R0b206ImJvdHRvbS10by10b3AifX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyNSkscz1uKDc1KSxhPXthbGlnbl9jb250ZW50Om51bGwsYWxpZ25faXRlbXM6bnVsbCxhbGlnbl9zZWxmOm51bGwsYm9yZGVyOm51bGwsYm90dG9tOm51bGwsZGlzcGxheTpudWxsLGZsZXg6bnVsbCxmbGV4X2Zsb3c6bnVsbCxoZWlnaHQ6bnVsbCxqdXN0aWZ5X2NvbnRlbnQ6bnVsbCxsZWZ0Om51bGwsbWFyZ2luOm51bGwsbWF4X2hlaWdodDpudWxsLG1heF93aWR0aDpudWxsLG1pbl9oZWlnaHQ6bnVsbCxtaW5fd2lkdGg6bnVsbCxvdmVyZmxvdzpudWxsLG92ZXJmbG93X3g6bnVsbCxvdmVyZmxvd195Om51bGwsb3JkZXI6bnVsbCxwYWRkaW5nOm51bGwscmlnaHQ6bnVsbCx0b3A6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCxncmlkX2F1dG9fY29sdW1uczpudWxsLGdyaWRfYXV0b19mbG93Om51bGwsZ3JpZF9hdXRvX3Jvd3M6bnVsbCxncmlkX2dhcDpudWxsLGdyaWRfdGVtcGxhdGVfcm93czpudWxsLGdyaWRfdGVtcGxhdGVfY29sdW1uczpudWxsLGdyaWRfdGVtcGxhdGVfYXJlYXM6bnVsbCxncmlkX3JvdzpudWxsLGdyaWRfY29sdW1uOm51bGwsZ3JpZF9hcmVhOm51bGx9LHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGF5b3V0TW9kZWwiLF92aWV3X25hbWU6IkxheW91dFZpZXcifSxhKX0sZX0ocy5XaWRnZXRNb2RlbCk7ZS5MYXlvdXRNb2RlbD11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0aGlzLl90cmFpdE5hbWVzPVtdLHQucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpO2Zvcih2YXIgbj0wLGk9T2JqZWN0LmtleXMoYSk7bjxpLmxlbmd0aDtuKyspe3ZhciByPWlbbl07dGhpcy5yZWdpc3RlclRyYWl0KHIpfX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSksdGhpcy5oYW5kbGVDaGFuZ2UodCx0aGlzLm1vZGVsLmdldCh0KSl9LGUucHJvdG90eXBlLmNzc19uYW1lPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL18vZywiLSIpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm9wdGlvbnMucGFyZW50O24/bnVsbD09PWU/bi5lbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLmNzc19uYW1lKHQpKTpuLmVsLnN0eWxlW3RoaXMuY3NzX25hbWUodCldPWU6Y29uc29sZS53YXJuKCJTdHlsZSBub3QgYXBwbGllZCBiZWNhdXNlIGEgcGFyZW50IHZpZXcgZG9lcyBub3QgZXhpc3QiKX0sZS5wcm90b3R5cGUudW5sYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5vcHRpb25zLnBhcmVudDt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7ZT9lLmVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQuY3NzX25hbWUobikpOmNvbnNvbGUud2FybigiU3R5bGUgbm90IHJlbW92ZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LHRoaXMpfSxlfShzLldpZGdldFZpZXcpO2UuTGF5b3V0Vmlldz1jfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDI1KSxzPW4oNzUpLGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIG8uYXNzaWduKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJTdHlsZU1vZGVsIixfdmlld19uYW1lOiJTdHlsZVZpZXcifSxPYmplY3Qua2V5cyhlLnN0eWxlUHJvcGVydGllcykucmVkdWNlKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbbl09ZS5zdHlsZVByb3BlcnRpZXNbbl0uZGVmYXVsdCx0fSx7fSkpfSxlLnN0eWxlUHJvcGVydGllcz17fSxlfShzLldpZGdldE1vZGVsKTtlLlN0eWxlTW9kZWw9YTt2YXIgdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dGhpcy5fdHJhaXROYW1lcz1bXSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKTtmb3IodmFyIG49dGhpcy5tb2RlbC5jb25zdHJ1Y3RvcixpPTAscj1PYmplY3Qua2V5cyhuLnN0eWxlUHJvcGVydGllcyk7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dGhpcy5yZWdpc3RlclRyYWl0KG8pfXRoaXMuc3R5bGUoKX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSl9LGUucHJvdG90eXBlLmhhbmRsZUNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMub3B0aW9ucy5wYXJlbnQ7aWYobil7dmFyIGk9dGhpcy5tb2RlbC5jb25zdHJ1Y3Rvci5zdHlsZVByb3BlcnRpZXMscj1pW3RdLmF0dHJpYnV0ZSxvPWlbdF0uc2VsZWN0b3Iscz1vP24uZWwucXVlcnlTZWxlY3RvckFsbChvKTpbbi5lbF07aWYobnVsbD09PWUpZm9yKHZhciBhPTA7YSE9PXMubGVuZ3RoOysrYSlzW2FdLnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpO2Vsc2UgZm9yKGE9MDthIT09cy5sZW5ndGg7KythKXNbYV0uc3R5bGVbcl09ZX1lbHNlIGNvbnNvbGUud2FybigiU3R5bGUgbm90IGFwcGxpZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LGUucHJvdG90eXBlLnN0eWxlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT10aGlzLl90cmFpdE5hbWVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO3RoaXMuaGFuZGxlQ2hhbmdlKG4sdGhpcy5tb2RlbC5nZXQobikpfX0sZS5wcm90b3R5cGUudW5zdHlsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5wYXJlbnQsZT10aGlzLm1vZGVsLmNvbnN0cnVjdG9yLnN0eWxlUHJvcGVydGllczt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7aWYodClmb3IodmFyIGk9ZVtuXS5hdHRyaWJ1dGUscj1lW25dLnNlbGVjdG9yLG89cj90LmVsLnF1ZXJ5U2VsZWN0b3JBbGwocik6W3QuZWxdLHM9MDtzIT09by5sZW5ndGg7KytzKW9bc10uc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk7ZWxzZSBjb25zb2xlLndhcm4oIlN0eWxlIG5vdCByZW1vdmVkIGJlY2F1c2UgYSBwYXJlbnQgdmlldyBkb2VzIG5vdCBleGlzdCIpfSx0aGlzKX0sZX0ocy5XaWRnZXRWaWV3KTtlLlN0eWxlVmlldz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0scj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMudGFyZ2V0cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY29tbXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtlcm5lbD1udWxsLHRoaXMuanNTZXJ2aWNlc0tlcm5lbD1udWxsLHRoaXMuaW5pdF9rZXJuZWwodCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRfa2VybmVsPWZ1bmN0aW9uKHQpe3RoaXMua2VybmVsPXQsdGhpcy5qc1NlcnZpY2VzS2VybmVsPXR9LHQucHJvdG90eXBlLm5ld19jb21tPWZ1bmN0aW9uKHQsZSxvLHMsYSx1KXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxjO3JldHVybiByKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxQcm9taXNlLnJlc29sdmUodGhpcy5qc1NlcnZpY2VzS2VybmVsLmNvbm5lY3RUb0NvbW0odCxhKSldO2Nhc2UgMTpyZXR1cm4gaT1yLnNlbnQoKSxjPW5ldyBuKGkpLHRoaXMucmVnaXN0ZXJfY29tbShjKSxjLm9wZW4oZSxvLHMsdSksWzIsY119fSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxyPXRoaXMuanNTZXJ2aWNlc0tlcm5lbC5yZWdpc3RlckNvbW1UYXJnZXQodCxmdW5jdGlvbih0LHIpe3ZhciBvPW5ldyBuKHQpO2kucmVnaXN0ZXJfY29tbShvKTt0cnl7cmV0dXJuIGUobyxyKX1jYXRjaCh0KXtvLmNsb3NlKCksY29uc29sZS5lcnJvcih0KSxjb25zb2xlLmVycm9yKG5ldyBFcnJvcigiRXhjZXB0aW9uIG9wZW5pbmcgbmV3IGNvbW0iKSl9fSk7dGhpcy50YXJnZXRzW3RdPXJ9LHQucHJvdG90eXBlLnVucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy50YXJnZXRzW3RdLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50YXJnZXRzW3RdfSx0LnByb3RvdHlwZS5yZWdpc3Rlcl9jb21tPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbW1zW3QuY29tbV9pZF09UHJvbWlzZS5yZXNvbHZlKHQpLHQua2VybmVsPXRoaXMua2VybmVsLHQuY29tbV9pZH0sdH0oKTt0LkNvbW1NYW5hZ2VyPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuanNTZXJ2aWNlc0NvbW09bnVsbCx0aGlzLmpzU2VydmljZXNDb21tPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY29tbV9pZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmpzU2VydmljZXNDb21tLmNvbW1JZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInRhcmdldF9uYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuanNTZXJ2aWNlc0NvbW0udGFyZ2V0TmFtZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMuanNTZXJ2aWNlc0NvbW0ub3Blbih0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5zZW5kKHQsbixpKTtyZXR1cm4gdGhpcy5faG9va3VwQ2FsbGJhY2tzKHIsZSksci5tc2cuaGVhZGVyLm1zZ19pZH0sdC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5jbG9zZSh0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLm9uX21zZz1mdW5jdGlvbih0KXt0aGlzLmpzU2VydmljZXNDb21tLm9uTXNnPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUub25fY2xvc2U9ZnVuY3Rpb24odCl7dGhpcy5qc1NlcnZpY2VzQ29tbS5vbkNsb3NlPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUuX2hvb2t1cENhbGxiYWNrcz1mdW5jdGlvbih0LGUpe2UmJih0Lm9uUmVwbHk9ZnVuY3Rpb24odCl7ZS5zaGVsbCYmZS5zaGVsbC5yZXBseSYmZS5zaGVsbC5yZXBseSh0KX0sdC5vblN0ZGluPWZ1bmN0aW9uKHQpe2UuaW5wdXQmJmUuaW5wdXQodCl9LHQub25JT1B1Yj1mdW5jdGlvbih0KXtpZihlLmlvcHViKWlmKGUuaW9wdWIuc3RhdHVzJiYic3RhdHVzIj09PXQuaGVhZGVyLm1zZ190eXBlKWUuaW9wdWIuc3RhdHVzKHQpO2Vsc2UgaWYoZS5pb3B1Yi5jbGVhcl9vdXRwdXQmJiJjbGVhcl9vdXRwdXQiPT09dC5oZWFkZXIubXNnX3R5cGUpZS5pb3B1Yi5jbGVhcl9vdXRwdXQodCk7ZWxzZSBpZihlLmlvcHViLm91dHB1dClzd2l0Y2godC5oZWFkZXIubXNnX3R5cGUpe2Nhc2UiZGlzcGxheV9kYXRhIjpjYXNlImV4ZWN1dGVfcmVzdWx0IjplLmlvcHViLm91dHB1dCh0KX19KX0sdH0oKTt0LkNvbW09bn0odC5zZXJ2aWNlc3x8KHQuc2VydmljZXM9e30pKX0oZS5zaGltc3x8KGUuc2hpbXM9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLmluaXRpYWxpemUodCxlLG4pfXJldHVybiB0LnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9oYW5kbGVyX2NvbnRleHQ9bnx8dGhpcyx0aGlzLl9tb2RlbHM9W10sdGhpcy52aWV3cz1bXSx0aGlzLl9jcmVhdGVfdmlldz10LHRoaXMuX3JlbW92ZV92aWV3PWV8fGZ1bmN0aW9uKHQpe3QucmVtb3ZlKCl9fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9bnx8dGhpcy5fcmVtb3ZlX3ZpZXcsbz1lfHx0aGlzLl9jcmVhdGVfdmlldztpPWl8fHRoaXMuX2hhbmRsZXJfY29udGV4dDtmb3IodmFyIHM9MDtzPHQubGVuZ3RoJiYhKHM+PXRoaXMuX21vZGVscy5sZW5ndGh8fHRbc10hPT10aGlzLl9tb2RlbHNbc10pO3MrKyk7Zm9yKHZhciBhPXMsdT10aGlzLnZpZXdzLnNwbGljZShhLHRoaXMudmlld3MubGVuZ3RoLWEpLGM9MDtjPHUubGVuZ3RoO2MrKyl1W2NdLnRoZW4oZnVuY3Rpb24odCl7ci5jYWxsKGksdCl9KTtmb3IoO3M8dC5sZW5ndGg7cysrKXRoaXMudmlld3MucHVzaChQcm9taXNlLnJlc29sdmUoby5jYWxsKGksdFtzXSxzKSkpO3JldHVybiB0aGlzLl9tb2RlbHM9dC5zbGljZSgpLFByb21pc2UuYWxsKHRoaXMudmlld3MpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBQcm9taXNlLmFsbCh0aGlzLnZpZXdzKS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5fcmVtb3ZlX3ZpZXcuY2FsbCh0Ll9oYW5kbGVyX2NvbnRleHQsZSl9KSx0LnZpZXdzPVtdLHQuX21vZGVscz1bXX0pfSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52aWV3cz1udWxsLHRoaXMuX21vZGVscz1udWxsfSx0fSgpO2UuVmlld0xpc3Q9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyNik7ZS5JSnVweXRlcldpZGdldFJlZ2lzdHJ5PW5ldyBpLlRva2VuKCJqdXB5dGVyLmV4dGVuc2lvbnMuanVweXRlcldpZGdldFJlZ2lzdHJ5Iil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE2KSksaShuKDU3KSksaShuKDMzOSkpLGkobigzNDApKSxpKG4oMzQxKSksaShuKDEzNikpLGkobigzNDIpKSxpKG4oMzQzKSksaShuKDM0NCkpLGkobigzNDUpKSxpKG4oMzQ2KSksaShuKDEzNykpLGkobigzNTEpKSxpKG4oMzUyKSksaShuKDM1MykpLGkobigzNTQpKSxpKG4oMzU4KSksaShuKDIzKSksZS52ZXJzaW9uPW4oMzU5KS52ZXJzaW9ufSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7dGFyZ2V0OnZvaWQgMCxzb3VyY2U6dm9pZCAwLF9tb2RlbF9uYW1lOiJEaXJlY3Rpb25hbExpbmtNb2RlbCJ9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlIix0aGlzLnVwZGF0ZUJpbmRpbmdzLHRoaXMpLHRoaXMudXBkYXRlQmluZGluZ3MoKX0sZS5wcm90b3R5cGUudXBkYXRlVmFsdWU9ZnVuY3Rpb24odCxlLG4saSl7aWYoIXRoaXMuX3VwZGF0aW5nKXt0aGlzLl91cGRhdGluZz0hMDt0cnl7biYmKG4uc2V0KGksdC5nZXQoZSkpLG4uc2F2ZV9jaGFuZ2VzKCkpfWZpbmFsbHl7dGhpcy5fdXBkYXRpbmc9ITF9fX0sZS5wcm90b3R5cGUudXBkYXRlQmluZGluZ3M9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpczt0aGlzLmNsZWFudXAoKSx0PXRoaXMuZ2V0KCJzb3VyY2UiKXx8W251bGwsbnVsbF0sdGhpcy5zb3VyY2VNb2RlbD10WzBdLHRoaXMuc291cmNlQXR0cj10WzFdLGU9dGhpcy5nZXQoInRhcmdldCIpfHxbbnVsbCxudWxsXSx0aGlzLnRhcmdldE1vZGVsPWVbMF0sdGhpcy50YXJnZXRBdHRyPWVbMV0sdGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMubGlzdGVuVG8odGhpcy5zb3VyY2VNb2RlbCwiY2hhbmdlOiIrdGhpcy5zb3VyY2VBdHRyLGZ1bmN0aW9uKCl7bi51cGRhdGVWYWx1ZShuLnNvdXJjZU1vZGVsLG4uc291cmNlQXR0cixuLnRhcmdldE1vZGVsLG4udGFyZ2V0QXR0cil9KSx0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuc291cmNlTW9kZWwsdGhpcy5zb3VyY2VBdHRyLHRoaXMudGFyZ2V0TW9kZWwsdGhpcy50YXJnZXRBdHRyKSx0aGlzLmxpc3RlblRvT25jZSh0aGlzLnNvdXJjZU1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvT25jZSh0aGlzLnRhcmdldE1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApfSxlLnByb3RvdHlwZS5jbGVhbnVwPWZ1bmN0aW9uKCl7dGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMuc3RvcExpc3RlbmluZyh0aGlzLnNvdXJjZU1vZGVsLCJjaGFuZ2U6Iit0aGlzLnNvdXJjZUF0dHIsbnVsbCksdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMuc291cmNlTW9kZWwsImRlc3Ryb3kiLG51bGwpKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy50YXJnZXRNb2RlbCwiZGVzdHJveSIsbnVsbCl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVXaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dGFyZ2V0OntkZXNlcmlhbGl6ZTpzLnVucGFja19tb2RlbHN9LHNvdXJjZTp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZVdpZGdldE1vZGVsKTtlLkRpcmVjdGlvbmFsTGlua01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGlua01vZGVsIn0pfSxlLnByb3RvdHlwZS51cGRhdGVCaW5kaW5ncz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUudXBkYXRlQmluZGluZ3MuY2FsbCh0aGlzKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixmdW5jdGlvbigpe2UudXBkYXRlVmFsdWUoZS50YXJnZXRNb2RlbCxlLnRhcmdldEF0dHIsZS5zb3VyY2VNb2RlbCxlLnNvdXJjZUF0dHIpfSl9LGUucHJvdG90eXBlLmNsZWFudXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5jbGVhbnVwLmNhbGwodGhpcyksdGhpcy50YXJnZXRNb2RlbCYmdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixudWxsKX0sZX0oYyk7ZS5MaW5rTW9kZWw9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigxMikscz1uKDIzKSxhPW4oOCksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTohMSxkaXNhYmxlZDohMSxfbW9kZWxfbmFtZToiQm9vbE1vZGVsIn0pfSxlfShvLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLkJvb2xNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7aW5kZW50OiEwLF92aWV3X25hbWU6IkNoZWNrYm94VmlldyIsX21vZGVsX25hbWU6IkNoZWNrYm94TW9kZWwifSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuQ2hlY2tib3hNb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWNoZWNrYm94IiksdGhpcy5sYWJlbC5pbm5lckhUTUw9IiYjODIwMzsiLHRoaXMuY2hlY2tib3hMYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpLHRoaXMuY2hlY2tib3hMYWJlbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwtYmFzaWMiKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuY2hlY2tib3hMYWJlbCksdGhpcy5jaGVja2JveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuY2hlY2tib3guc2V0QXR0cmlidXRlKCJ0eXBlIiwiY2hlY2tib3giKSx0aGlzLmNoZWNrYm94TGFiZWwuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveCksdGhpcy5kZXNjcmlwdGlvblNwYW49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuY2hlY2tib3hMYWJlbC5hcHBlbmRDaGlsZCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6aW5kZW50Iix0aGlzLnVwZGF0ZUluZGVudCksdGhpcy51cGRhdGUoKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCksdGhpcy51cGRhdGVJbmRlbnQoKX0sZS5wcm90b3R5cGUudXBkYXRlRGVzY3JpcHRpb249ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLmNoZWNrYm94TGFiZWwpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpO3RoaXMuZGVzY3JpcHRpb25TcGFuLmlubmVySFRNTD10LHRoaXMudHlwZXNldCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5kZXNjcmlwdGlvblNwYW4udGl0bGU9dCx0aGlzLmNoZWNrYm94LnRpdGxlPXR9fSxlLnByb3RvdHlwZS51cGRhdGVJbmRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZW50Iik7dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PXQ/IiI6Im5vbmUifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9ImNoZWNrYm94Il0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgidmFsdWUiKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLCF0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNoZWNrYm94LmNoZWNrZWQ9dGhpcy5tb2RlbC5nZXQoInZhbHVlIiksdm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PXRoaXN8fCh0aGlzLmNoZWNrYm94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuQ2hlY2tib3hWaWV3PWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUb2dnbGVCdXR0b25WaWV3IixfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uTW9kZWwiLHRvb2x0aXA6IiIsaWNvbjoiIixidXR0b25fc3R5bGU6IiJ9KX0sZX0oYyk7ZS5Ub2dnbGVCdXR0b25Nb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiIpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJ1dHRvbl9zdHlsZSIsdGhpcy51cGRhdGVfYnV0dG9uX3N0eWxlKSx0aGlzLnNldF9idXR0b25fc3R5bGUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGVfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS5zZXRfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy5zZXRfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5tb2RlbC5nZXQoInZhbHVlIik/dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtYWN0aXZlIik6dGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIiksdm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt0aGlzLmVsLmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLHRoaXMuZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdGhpcy5tb2RlbC5nZXQoInRvb2x0aXAiKSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksaT10aGlzLm1vZGVsLmdldCgiaWNvbiIpO2lmKDA9PT1uLnRyaW0oKS5sZW5ndGgmJjA9PT1pLnRyaW0oKS5sZW5ndGgpdGhpcy5lbC5pbm5lckhUTUw9IiZuYnNwOyI7ZWxzZXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLGkudHJpbSgpLmxlbmd0aCl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3RoaXMuZWwuYXBwZW5kQ2hpbGQociksci5jbGFzc0xpc3QuYWRkKCJmYSIpLHIuY2xhc3NMaXN0LmFkZCgiZmEtIitpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57Y2xpY2s6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5tb2RlbC5zZXQoInZhbHVlIiwhZSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJidXR0b24ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUuY2xhc3NfbWFwPXtwcmltYXJ5OlsibW9kLXByaW1hcnkiXSxzdWNjZXNzOlsibW9kLXN1Y2Nlc3MiXSxpbmZvOlsibW9kLWluZm8iXSx3YXJuaW5nOlsibW9kLXdhcm5pbmciXSxkYW5nZXI6WyJtb2QtZGFuZ2VyIl19LGV9KGEuRE9NV2lkZ2V0Vmlldyk7ZS5Ub2dnbGVCdXR0b25WaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtyZWFkb3V0OiJJbnZhbGlkIixfdmlld19uYW1lOiJWYWxpZFZpZXciLF9tb2RlbF9uYW1lOiJWYWxpZE1vZGVsIn0pfSxlfShjKTtlLlZhbGlkTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdmFsaWQiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTt0aGlzLmVsLmFwcGVuZENoaWxkKGUpLHRoaXMucmVhZG91dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC12YWxpZC1yZWFkb3V0IiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC1yZWFkb3V0IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgibW9kLXZhbGlkIiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtaW52YWxpZCIpLHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgicmVhZG91dCIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpP3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgibW9kLXZhbGlkIik6dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtaW52YWxpZCIpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5WYWxpZFZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMTIpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQnV0dG9uU3R5bGVNb2RlbCIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsX21vZGVsX21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OfSl9LGUuc3R5bGVQcm9wZXJ0aWVzPXtidXR0b25fY29sb3I6e3NlbGVjdG9yOiIiLGF0dHJpYnV0ZToiYmFja2dyb3VuZC1jb2xvciIsZGVmYXVsdDpudWxsfSxmb250X3dlaWdodDp7c2VsZWN0b3I6IiIsYXR0cmlidXRlOiJmb250LXdlaWdodCIsZGVmYXVsdDoiIn19LGV9KG8uU3R5bGVNb2RlbCk7ZS5CdXR0b25TdHlsZU1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtkZXNjcmlwdGlvbjoiIix0b29sdGlwOiIiLGRpc2FibGVkOiExLGljb246IiIsYnV0dG9uX3N0eWxlOiIiLF92aWV3X25hbWU6IkJ1dHRvblZpZXciLF9tb2RlbF9uYW1lOiJCdXR0b25Nb2RlbCIsc3R5bGU6bnVsbH0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5CdXR0b25Nb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtYnV0dG9uIiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9uX3N0eWxlIix0aGlzLnVwZGF0ZV9idXR0b25fc3R5bGUpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIiksdGhpcy5lbC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLm1vZGVsLmdldCgidG9vbHRpcCIpKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSxuPXRoaXMubW9kZWwuZ2V0KCJpY29uIik7aWYoZS5sZW5ndGh8fG4ubGVuZ3RoKXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLG4ubGVuZ3RoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aS5jbGFzc0xpc3QuYWRkKCJmYSIpLGkuY2xhc3NMaXN0LmFkZCgiZmEtIituKSwwPT09ZS5sZW5ndGgmJmkuY2xhc3NMaXN0LmFkZCgiY2VudGVyIiksdGhpcy5lbC5hcHBlbmRDaGlsZChpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZV9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLnNldF9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLmV2ZW50cz1mdW5jdGlvbigpe3JldHVybntjbGljazoiX2hhbmRsZV9jbGljayJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NsaWNrPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmQoe2V2ZW50OiJjbGljayJ9KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJ1dHRvbiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5jbGFzc19tYXA9e3ByaW1hcnk6WyJtb2QtcHJpbWFyeSJdLHN1Y2Nlc3M6WyJtb2Qtc3VjY2VzcyJdLGluZm86WyJtb2QtaW5mbyJdLHdhcm5pbmc6WyJtb2Qtd2FybmluZyJdLGRhbmdlcjpbIm1vZC1kYW5nZXIiXX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLkJ1dHRvblZpZXc9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJJbWFnZU1vZGVsIixfdmlld19uYW1lOiJJbWFnZVZpZXciLGZvcm1hdDoicG5nIix3aWR0aDoiIixoZWlnaHQ6IiIsdmFsdWU6bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigwKSl9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHt2YWx1ZTp7c2VyaWFsaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEYXRhVmlldyh0LmJ1ZmZlci5zbGljZSgwKSl9fX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkltYWdlTW9kZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtaW1hZ2UiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKSxpPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO2lmKCJ1cmwiIT09bil7dmFyIHI9bmV3IEJsb2IoW2ldLHt0eXBlOiJpbWFnZS8iK3RoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKX0pO2U9VVJMLmNyZWF0ZU9iamVjdFVSTChyKX1lbHNlIGU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShpLmJ1ZmZlcik7dmFyIG89dGhpcy5lbC5zcmM7dGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyk7dmFyIHM9dGhpcy5tb2RlbC5nZXQoIndpZHRoIik7dm9pZCAwIT09cyYmcy5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgid2lkdGgiLHMpOnRoaXMuZWwucmVtb3ZlQXR0cmlidXRlKCJ3aWR0aCIpO3ZhciBhPXRoaXMubW9kZWwuZ2V0KCJoZWlnaHQiKTtyZXR1cm4gdm9pZCAwIT09YSYmYS5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixhKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgiaGVpZ2h0IiksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuZWwuc3JjJiZVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMuZWwuc3JjKSx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImltZyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkltYWdlVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlZpZGVvTW9kZWwiLF92aWV3X25hbWU6IlZpZGVvVmlldyIsZm9ybWF0OiJtcDQiLHdpZHRoOiIiLGhlaWdodDoiIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5WaWRlb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWltYWdlIiksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIGUsbj10aGlzLm1vZGVsLmdldCgiZm9ybWF0IiksaT10aGlzLm1vZGVsLmdldCgidmFsdWUiKTtpZigidXJsIiE9PW4pe3ZhciByPW5ldyBCbG9iKFtpXSx7dHlwZToidmlkZW8vIit0aGlzLm1vZGVsLmdldCgiZm9ybWF0Iil9KTtlPVVSTC5jcmVhdGVPYmplY3RVUkwocil9ZWxzZSBlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKS5kZWNvZGUoaS5idWZmZXIpO3ZhciBvPXRoaXMuZWwuc3JjO3RoaXMuZWwuc3JjPWUsbyYmInN0cmluZyIhPXR5cGVvZiBvJiZVUkwucmV2b2tlT2JqZWN0VVJMKG8pO3ZhciBzPXRoaXMubW9kZWwuZ2V0KCJ3aWR0aCIpO3ZvaWQgMCE9PXMmJnMubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoIndpZHRoIixzKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgid2lkdGgiKTt2YXIgYT10aGlzLm1vZGVsLmdldCgiaGVpZ2h0Iik7cmV0dXJuIHZvaWQgMCE9PWEmJmEubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYSk6dGhpcy5lbC5yZW1vdmVBdHRyaWJ1dGUoImhlaWdodCIpLHRoaXMuZWwubG9vcD10aGlzLm1vZGVsLmdldCgibG9vcCIpLHRoaXMuZWwuYXV0b3BsYXk9dGhpcy5tb2RlbC5nZXQoImF1dG9wbGF5IiksdGhpcy5lbC5jb250cm9scz10aGlzLm1vZGVsLmdldCgiY29udHJvbHMiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5lbC5zcmMmJlVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5lbC5zcmMpLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhZ05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4idmlkZW8ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5WaWRlb1ZpZXc9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJBdWRpb01vZGVsIixfdmlld19uYW1lOiJBdWRpb1ZpZXciLGZvcm1hdDoibXAzIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5BdWRpb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpLGk9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7aWYoInVybCIhPT1uKXt2YXIgcj1uZXcgQmxvYihbaV0se3R5cGU6ImF1ZGlvLyIrdGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpfSk7ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHIpfWVsc2UgZT1uZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKGkuYnVmZmVyKTt2YXIgbz10aGlzLmVsLnNyYztyZXR1cm4gdGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyksdGhpcy5lbC5sb29wPXRoaXMubW9kZWwuZ2V0KCJsb29wIiksdGhpcy5lbC5hdXRvcGxheT10aGlzLm1vZGVsLmdldCgiYXV0b3BsYXkiKSx0aGlzLmVsLmNvbnRyb2xzPXRoaXMubW9kZWwuZ2V0KCJjb250cm9scyIpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmVsLnNyYyYmVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmVsLnNyYyksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJhdWRpbyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkF1ZGlvVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oMjMpLGE9bigxNiksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZToiYmxhY2siLGNvbmNpc2U6ITEsX21vZGVsX25hbWU6IkNvbG9yUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkNvbG9yUGlja2VyVmlldyJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5Db2xvclBpY2tlck1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29sb3JwaWNrZXIiKSx0aGlzLl9jb2xvcl9jb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29sb3JfY29udGFpbmVyLmNsYXNzTmFtZT0id2lkZ2V0LWlubGluZS1oYm94IHdpZGdldC1jb2xvcnBpY2tlci1pbnB1dCIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLl9jb2xvcl9jb250YWluZXIpLHRoaXMuX3RleHRib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLl90ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQiKSx0aGlzLl90ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLl9jb2xvcl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dGJveCksdGhpcy5fdGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLl9jb2xvcnBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2NvbG9ycGlja2VyLnNldEF0dHJpYnV0ZSgidHlwZSIsImNvbG9yIiksdGhpcy5fY29sb3JfY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbG9ycGlja2VyKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTp2YWx1ZSIsdGhpcy5fdXBkYXRlX3ZhbHVlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjb25jaXNlIix0aGlzLl91cGRhdGVfY29uY2lzZSksdGhpcy5fdXBkYXRlX2NvbmNpc2UoKSx0aGlzLl91cGRhdGVfdmFsdWUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuX3RleHRib3guZGlzYWJsZWQ9bix0aGlzLl9jb2xvcnBpY2tlci5kaXNhYmxlZD1ufXJldHVybiB0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueydjaGFuZ2UgW3R5cGU9ImNvbG9yIl0nOiJfcGlja2VyX2NoYW5nZSIsJ2NoYW5nZSBbdHlwZT0idGV4dCJdJzoiX3RleHRfY2hhbmdlIn19LGUucHJvdG90eXBlLl91cGRhdGVfdmFsdWU9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5fY29sb3JwaWNrZXIudmFsdWU9bFsodD1uKS50b0xvd2VyQ2FzZSgpXXx8KDc9PT0oZT10KS5sZW5ndGg/ZToiIyIrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMikrZS5jaGFyQXQoMikrZS5jaGFyQXQoMykrZS5jaGFyQXQoMykpLHRoaXMuX3RleHRib3gudmFsdWU9bn0sZS5wcm90b3R5cGUuX3VwZGF0ZV9jb25jaXNlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5nZXQoImNvbmNpc2UiKT8odGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJjb25jaXNlIiksdGhpcy5fdGV4dGJveC5zdHlsZS5kaXNwbGF5PSJub25lIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgiY29uY2lzZSIpLHRoaXMuX3RleHRib3guc3R5bGUuZGlzcGxheT0iIil9LGUucHJvdG90eXBlLl9waWNrZXJfY2hhbmdlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9jb2xvcnBpY2tlci52YWx1ZSksdGhpcy50b3VjaCgpfSxlLnByb3RvdHlwZS5fdGV4dF9jaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl92YWxpZGF0ZV9jb2xvcih0aGlzLl90ZXh0Ym94LnZhbHVlLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQpLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUuX3ZhbGlkYXRlX2NvbG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWF0Y2goLyNbYS1mQS1GMC05XXszfSg/OlthLWZBLUYwLTldezN9KT8kLyl8fGxbdC50b0xvd2VyQ2FzZSgpXT90OmV9LGV9KHMuRGVzY3JpcHRpb25WaWV3KTtlLkNvbG9yUGlja2VyVmlldz1oO3ZhciBsPXthbGljZWJsdWU6IiNmMGY4ZmYiLGFudGlxdWV3aGl0ZToiI2ZhZWJkNyIsYXF1YToiIzAwZmZmZiIsYXF1YW1hcmluZToiIzdmZmZkNCIsYXp1cmU6IiNmMGZmZmYiLGJlaWdlOiIjZjVmNWRjIixiaXNxdWU6IiNmZmU0YzQiLGJsYWNrOiIjMDAwMDAwIixibGFuY2hlZGFsbW9uZDoiI2ZmZWJjZCIsYmx1ZToiIzAwMDBmZiIsYmx1ZXZpb2xldDoiIzhhMmJlMiIsYnJvd246IiNhNTJhMmEiLGJ1cmx5d29vZDoiI2RlYjg4NyIsY2FkZXRibHVlOiIjNWY5ZWEwIixjaGFydHJldXNlOiIjN2ZmZjAwIixjaG9jb2xhdGU6IiNkMjY5MWUiLGNvcmFsOiIjZmY3ZjUwIixjb3JuZmxvd2VyYmx1ZToiIzY0OTVlZCIsY29ybnNpbGs6IiNmZmY4ZGMiLGNyaW1zb246IiNkYzE0M2MiLGN5YW46IiMwMGZmZmYiLGRhcmtibHVlOiIjMDAwMDhiIixkYXJrY3lhbjoiIzAwOGI4YiIsZGFya2dvbGRlbnJvZDoiI2I4ODYwYiIsZGFya2dyYXk6IiNhOWE5YTkiLGRhcmtncmV5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLGRhcmtraGFraToiI2JkYjc2YiIsZGFya21hZ2VudGE6IiM4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiIjNTU2YjJmIixkYXJrb3JhbmdlOiIjZmY4YzAwIixkYXJrb3JjaGlkOiIjOTkzMmNjIixkYXJrcmVkOiIjOGIwMDAwIixkYXJrc2FsbW9uOiIjZTk5NjdhIixkYXJrc2VhZ3JlZW46IiM4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IiM0ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IiMyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IiMyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IiMwMGNlZDEiLGRhcmt2aW9sZXQ6IiM5NDAwZDMiLGRlZXBwaW5rOiIjZmYxNDkzIixkZWVwc2t5Ymx1ZToiIzAwYmZmZiIsZGltZ3JheToiIzY5Njk2OSIsZGltZ3JleToiIzY5Njk2OSIsZG9kZ2VyYmx1ZToiIzFlOTBmZiIsZmlyZWJyaWNrOiIjYjIyMjIyIixmbG9yYWx3aGl0ZToiI2ZmZmFmMCIsZm9yZXN0Z3JlZW46IiMyMjhiMjIiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdhaW5zYm9ybzoiI2RjZGNkYyIsZ2hvc3R3aGl0ZToiI2Y4ZjhmZiIsZ29sZDoiI2ZmZDcwMCIsZ29sZGVucm9kOiIjZGFhNTIwIixncmF5OiIjODA4MDgwIixncmV5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsZ3JlZW55ZWxsb3c6IiNhZGZmMmYiLGhvbmV5ZGV3OiIjZjBmZmYwIixob3RwaW5rOiIjZmY2OWI0IixpbmRpYW5yZWQ6IiNjZDVjNWMiLGluZGlnbzoiIzRiMDA4MiIsaXZvcnk6IiNmZmZmZjAiLGtoYWtpOiIjZjBlNjhjIixsYXZlbmRlcjoiI2U2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiI2ZmZjBmNSIsbGF3bmdyZWVuOiIjN2NmYzAwIixsZW1vbmNoaWZmb246IiNmZmZhY2QiLGxpZ2h0Ymx1ZToiI2FkZDhlNiIsbGlnaHRjb3JhbDoiI2YwODA4MCIsbGlnaHRjeWFuOiIjZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI2ZhZmFkMiIsbGlnaHRncmVlbjoiIzkwZWU5MCIsbGlnaHRncmF5OiIjZDNkM2QzIixsaWdodGdyZXk6IiNkM2QzZDMiLGxpZ2h0cGluazoiI2ZmYjZjMSIsbGlnaHRzYWxtb246IiNmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IiMyMGIyYWEiLGxpZ2h0c2t5Ymx1ZToiIzg3Y2VmYSIsbGlnaHRzbGF0ZWdyYXk6IiM3Nzg4OTkiLGxpZ2h0c2xhdGVncmV5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI2IwYzRkZSIsbGlnaHR5ZWxsb3c6IiNmZmZmZTAiLGxpbWU6IiMwMGZmMDAiLGxpbWVncmVlbjoiIzMyY2QzMiIsbGluZW46IiNmYWYwZTYiLG1hZ2VudGE6IiNmZjAwZmYiLG1hcm9vbjoiIzgwMDAwMCIsbWVkaXVtYXF1YW1hcmluZToiIzY2Y2RhYSIsbWVkaXVtYmx1ZToiIzAwMDBjZCIsbWVkaXVtb3JjaGlkOiIjYmE1NWQzIixtZWRpdW1wdXJwbGU6IiM5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIjM2NiMzcxIixtZWRpdW1zbGF0ZWJsdWU6IiM3YjY4ZWUiLG1lZGl1bXNwcmluZ2dyZWVuOiIjMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IiM0OGQxY2MiLG1lZGl1bXZpb2xldHJlZDoiI2M3MTU4NSIsbWlkbmlnaHRibHVlOiIjMTkxOTcwIixtaW50Y3JlYW06IiNmNWZmZmEiLG1pc3R5cm9zZToiI2ZmZTRlMSIsbW9jY2FzaW46IiNmZmU0YjUiLG5hdmFqb3doaXRlOiIjZmZkZWFkIixuYXZ5OiIjMDAwMDgwIixvbGRsYWNlOiIjZmRmNWU2IixvbGl2ZToiIzgwODAwMCIsb2xpdmVkcmFiOiIjNmI4ZTIzIixvcmFuZ2U6IiNmZmE1MDAiLG9yYW5nZXJlZDoiI2ZmNDUwMCIsb3JjaGlkOiIjZGE3MGQ2IixwYWxlZ29sZGVucm9kOiIjZWVlOGFhIixwYWxlZ3JlZW46IiM5OGZiOTgiLHBhbGV0dXJxdW9pc2U6IiNhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6IiNkYjcwOTMiLHBhcGF5YXdoaXA6IiNmZmVmZDUiLHBlYWNocHVmZjoiI2ZmZGFiOSIscGVydToiI2NkODUzZiIscGluazoiI2ZmYzBjYiIscGx1bToiI2RkYTBkZCIscG93ZGVyYmx1ZToiI2IwZTBlNiIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHJvc3licm93bjoiI2JjOGY4ZiIscm95YWxibHVlOiIjNDE2OWUxIixzYWRkbGVicm93bjoiIzhiNDUxMyIsc2FsbW9uOiIjZmE4MDcyIixzYW5keWJyb3duOiIjZjRhNDYwIixzZWFncmVlbjoiIzJlOGI1NyIsc2Vhc2hlbGw6IiNmZmY1ZWUiLHNpZW5uYToiI2EwNTIyZCIsc2lsdmVyOiIjYzBjMGMwIixza3libHVlOiIjODdjZWViIixzbGF0ZWJsdWU6IiM2YTVhY2QiLHNsYXRlZ3JheToiIzcwODA5MCIsc2xhdGVncmV5OiIjNzA4MDkwIixzbm93OiIjZmZmYWZhIixzcHJpbmdncmVlbjoiIzAwZmY3ZiIsc3RlZWxibHVlOiIjNDY4MmI0Iix0YW46IiNkMmI0OGMiLHRlYWw6IiMwMDgwODAiLHRoaXN0bGU6IiNkOGJmZDgiLHRvbWF0bzoiI2ZmNjM0NyIsdHVycXVvaXNlOiIjNDBlMGQwIix2aW9sZXQ6IiNlZTgyZWUiLHdoZWF0OiIjZjVkZWIzIix3aGl0ZToiI2ZmZmZmZiIsd2hpdGVzbW9rZToiI2Y1ZjVmNSIseWVsbG93OiIjZmZmZjAwIix5ZWxsb3dncmVlbjoiIzlhY2QzMiJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9bigyMyksYT1uKDEyKSx1PW4oMTYpLGM9big2KTtmdW5jdGlvbiBoKHQpe3JldHVybiBudWxsPT09dD9udWxsOnt5ZWFyOnQuZ2V0VVRDRnVsbFllYXIoKSxtb250aDp0LmdldFVUQ01vbnRoKCksZGF0ZTp0LmdldFVUQ0RhdGUoKX19ZnVuY3Rpb24gbCh0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgRGF0ZTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnllYXIsdC5tb250aCx0LmRhdGUpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCksZX1lLnNlcmlhbGl6ZV9kYXRlPWgsZS5kZXNlcmlhbGl6ZV9kYXRlPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTpudWxsLF9tb2RlbF9uYW1lOiJEYXRlUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkRhdGVQaWNrZXJWaWV3In0pfSxlLnNlcmlhbGl6ZXJzPW8oe30sYS5Db3JlRGVzY3JpcHRpb25Nb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpoLGRlc2VyaWFsaXplOmx9fSksZX0oYS5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5EYXRlUGlja2VyTW9kZWw9ZDt2YXIgZj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1kYXRlcGlja2VyIiksdGhpcy5fZGF0ZXBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZGF0ZSIpLHRoaXMuX2RhdGVwaWNrZXIuaWQ9dGhpcy5sYWJlbC5odG1sRm9yPXUudXVpZCgpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5fZGF0ZXBpY2tlciksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6dmFsdWUiLHRoaXMuX3VwZGF0ZV92YWx1ZSksdGhpcy5fdXBkYXRlX3ZhbHVlKCksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLnVwZGF0ZWRfdmlldz09dGhpc3x8KHRoaXMuX2RhdGVwaWNrZXIuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NoYW5nZSBbdHlwZT0iZGF0ZSJdJzoiX3BpY2tlcl9jaGFuZ2UifX0sZS5wcm90b3R5cGUuX3VwZGF0ZV92YWx1ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX2RhdGVwaWNrZXIudmFsdWVBc0RhdGU9dH0sZS5wcm90b3R5cGUuX3BpY2tlcl9jaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLl9kYXRlcGlja2VyLnZhbGlkaXR5LmJhZElucHV0fHwodGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9kYXRlcGlja2VyLnZhbHVlQXNEYXRlKSx0aGlzLnRvdWNoKCkpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5EYXRlUGlja2VyVmlldz1mfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFNsaWRlciAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbigzNDgpLG4oMzUwKSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3JldHVybiB0LndpZGdldCgidWkuc2xpZGVyIix0LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEyLjEiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsbixpPXRoaXMub3B0aW9ucyxyPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLG89W107Zm9yKG49aS52YWx1ZXMmJmkudmFsdWVzLmxlbmd0aHx8MSxyLmxlbmd0aD5uJiYoci5zbGljZShuKS5yZW1vdmUoKSxyPXIuc2xpY2UoMCxuKSksZT1yLmxlbmd0aDtlPG47ZSsrKW8ucHVzaCgiPHNwYW4gdGFiaW5kZXg9JzAnPjwvc3Bhbj4iKTt0aGlzLmhhbmRsZXM9ci5hZGQodChvLmpvaW4oIiIpKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZXMsInVpLXNsaWRlci1oYW5kbGUiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3QodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsZSkuYXR0cigidGFiSW5kZXgiLDApfSl9LF9jcmVhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztlLnJhbmdlPyghMD09PWUucmFuZ2UmJihlLnZhbHVlcz9lLnZhbHVlcy5sZW5ndGgmJjIhPT1lLnZhbHVlcy5sZW5ndGg/ZS52YWx1ZXM9W2UudmFsdWVzWzBdLGUudmFsdWVzWzBdXTp0LmlzQXJyYXkoZS52YWx1ZXMpJiYoZS52YWx1ZXM9ZS52YWx1ZXMuc2xpY2UoMCkpOmUudmFsdWVzPVt0aGlzLl92YWx1ZU1pbigpLHRoaXMuX3ZhbHVlTWluKCldKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLmxlbmd0aD8odGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiksdGhpcy5yYW5nZS5jc3Moe2xlZnQ6IiIsYm90dG9tOiIifSkpOih0aGlzLnJhbmdlPXQoIjxkaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UiKSksIm1pbiIhPT1lLnJhbmdlJiYibWF4IiE9PWUucmFuZ2V8fHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS0iK2UucmFuZ2UpKToodGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLnJhbmdlPW51bGwpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLl9vZmYodGhpcy5oYW5kbGVzKSx0aGlzLl9vbih0aGlzLmhhbmRsZXMsdGhpcy5faGFuZGxlRXZlbnRzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oYW5kbGVzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oYW5kbGVzKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihlKXt2YXIgbixpLHIsbyxzLGEsdSxjPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxuPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShuKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPU1hdGguYWJzKGktYy52YWx1ZXMoZSkpOyhyPm58fHI9PT1uJiYoZT09PWMuX2xhc3RDaGFuZ2VkVmFsdWV8fGMudmFsdWVzKGUpPT09aC5taW4pKSYmKHI9bixvPXQodGhpcykscz1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxzKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1zLHRoaXMuX2FkZENsYXNzKG8sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksby50cmlnZ2VyKCJmb2N1cyIpLGE9by5vZmZzZXQoKSx1PSF0KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PXU/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC1hLmxlZnQtby53aWR0aCgpLzIsdG9wOmUucGFnZVktYS50b3Atby5oZWlnaHQoKS8yLShwYXJzZUludChvLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChvLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChvLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLHMsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCwhMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQpe3ZhciBlPXt4OnQucGFnZVgseTp0LnBhZ2VZfSxuPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShlKTtyZXR1cm4gdGhpcy5fc2xpZGUodCx0aGlzLl9oYW5kbGVJbmRleCxuKSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKHQsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZSh0LHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMSwhMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG87cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8oZT10aGlzLmVsZW1lbnRTaXplLndpZHRoLG49dC54LXRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApKTooZT10aGlzLmVsZW1lbnRTaXplLmhlaWdodCxuPXQueS10aGlzLmVsZW1lbnRPZmZzZXQudG9wLSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCkpLChpPW4vZSk+MSYmKGk9MSksaTwwJiYoaT0wKSwidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmKGk9MS1pKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSxvPXRoaXMuX3ZhbHVlTWluKCkraSpyLHRoaXMuX3RyaW1BbGlnblZhbHVlKG8pfSxfdWlIYXNoOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSxoYW5kbGVJbmRleDp0LHZhbHVlOnZvaWQgMCE9PWU/ZTp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYoaS52YWx1ZT12b2lkIDAhPT1lP2U6dGhpcy52YWx1ZXModCksaS52YWx1ZXM9bnx8dGhpcy52YWx1ZXMoKSksaX0sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX3NsaWRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMudmFsdWUoKSxvPXRoaXMudmFsdWVzKCk7dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKGk9dGhpcy52YWx1ZXMoZT8wOjEpLHI9dGhpcy52YWx1ZXMoZSksMj09PXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKG49MD09PWU/TWF0aC5taW4oaSxuKTpNYXRoLm1heChpLG4pKSxvW2VdPW4pLG4hPT1yJiYhMSE9PXRoaXMuX3RyaWdnZXIoInNsaWRlIix0LHRoaXMuX3VpSGFzaChlLG4sbykpJiYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhlLG4pOnRoaXMudmFsdWUobikpfSxfc3RvcDpmdW5jdGlvbih0LGUpe3RoaXMuX3RyaWdnZXIoInN0b3AiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX2NoYW5nZTpmdW5jdGlvbih0LGUpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9ZSx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQsdGhpcy5fdWlIYXNoKGUpKSl9LHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCwwKSk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKGUsbil7dmFyIGkscixvO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1tlXT10aGlzLl90cmltQWxpZ25WYWx1ZShuKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLGUpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl92YWx1ZXMoKTtpZighdC5pc0FycmF5KGFyZ3VtZW50c1swXSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHI9YXJndW1lbnRzWzBdLG89MDtvPGkubGVuZ3RoO28rPTEpaVtvXT10aGlzLl90cmltQWxpZ25WYWx1ZShyW29dKSx0aGlzLl9jaGFuZ2UobnVsbCxvKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHI9MDtzd2l0Y2goInJhbmdlIj09PWUmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoIm1pbiI9PT1uPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1uJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSx0LmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihyPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSx0aGlzLl9zdXBlcihlLG4pLGUpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5fcmVtb3ZlQ2xhc3MoInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNhbCIpLl9hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5vcHRpb25zLnJhbmdlJiZ0aGlzLl9yZWZyZXNoUmFuZ2UobiksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1uPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxpPXItMTtpPj0wO2ktLSl0aGlzLl9jaGFuZ2UobnVsbCxpKTt0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2Uic3RlcCI6Y2FzZSJtaW4iOmNhc2UibWF4Ijp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJyYW5nZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX19LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbih0KXt0aGlzLl9zdXBlcih0KSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISF0KX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlO3JldHVybiB0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpfSxfdmFsdWVzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbdF0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3Iobj10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8bi5sZW5ndGg7aSs9MSluW2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKG5baV0pO3JldHVybiBufXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24odCl7aWYodDw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZih0Pj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciBlPXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxuPSh0LXRoaXMuX3ZhbHVlTWluKCkpJWUsaT10LW47cmV0dXJuIDIqTWF0aC5hYnMobik+PWUmJihpKz1uPjA/ZTotZSkscGFyc2VGbG9hdChpLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLm1heCxlPXRoaXMuX3ZhbHVlTWluKCksbj10aGlzLm9wdGlvbnMuc3RlcCxpPU1hdGgucm91bmQoKHQtZSkvbikqbjsodD1pK2UpPnRoaXMub3B0aW9ucy5tYXgmJih0LT1uKSx0aGlzLm1heD1wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpfSxfcHJlY2lzaW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLnN0ZXApO3JldHVybiBudWxsIT09dGhpcy5vcHRpb25zLm1pbiYmKHQ9TWF0aC5tYXgodCx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSkpLHR9LF9wcmVjaXNpb25PZjpmdW5jdGlvbih0KXt2YXIgZT10LnRvU3RyaW5nKCksbj1lLmluZGV4T2YoIi4iKTtyZXR1cm4tMT09PW4/MDplLmxlbmd0aC1uLTF9LF92YWx1ZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMubWlufSxfdmFsdWVNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXh9LF9yZWZyZXNoUmFuZ2U6ZnVuY3Rpb24odCl7InZlcnRpY2FsIj09PXQmJnRoaXMucmFuZ2UuY3NzKHt3aWR0aDoiIixsZWZ0OiIifSksImhvcml6b250YWwiPT09dCYmdGhpcy5yYW5nZS5jc3Moe2hlaWdodDoiIixib3R0b206IiJ9KX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciBlLG4saSxyLG8scz10aGlzLm9wdGlvbnMucmFuZ2UsYT10aGlzLm9wdGlvbnMsdT10aGlzLGM9IXRoaXMuX2FuaW1hdGVPZmYmJmEuYW5pbWF0ZSxoPXt9O3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oaSl7bj0odS52YWx1ZXMoaSktdS5fdmFsdWVNaW4oKSkvKHUuX3ZhbHVlTWF4KCktdS5fdmFsdWVNaW4oKSkqMTAwLGhbImhvcml6b250YWwiPT09dS5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPW4rIiUiLHQodGhpcykuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksITA9PT11Lm9wdGlvbnMucmFuZ2UmJigiaG9yaXpvbnRhbCI9PT11Lm9yaWVudGF0aW9uPygwPT09aSYmdS5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtsZWZ0Om4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6bi1lKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOmEuYW5pbWF0ZX0pKTooMD09PWkmJnUucmFuZ2Uuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXSh7Ym90dG9tOm4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0Om4tZSsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjphLmFuaW1hdGV9KSkpLGU9bn0pOihpPXRoaXMudmFsdWUoKSxyPXRoaXMuX3ZhbHVlTWluKCksbz10aGlzLl92YWx1ZU1heCgpLG49byE9PXI/KGktcikvKG8tcikqMTAwOjAsaFsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09bisiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtjPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOm4rIiUifSxhLmFuaW1hdGUpLCJtYXgiPT09cyYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDoxMDAtbisiJSJ9LGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6bisiJSJ9LGEuYW5pbWF0ZSksIm1heCI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLW4rIiUifSxhLmFuaW1hdGUpKX0sX2hhbmRsZUV2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgbixpLHIsbz10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTpjYXNlIHQudWkua2V5Q29kZS5FTkQ6Y2FzZSB0LnVpLmtleUNvZGUuUEFHRV9VUDpjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046Y2FzZSB0LnVpLmtleUNvZGUuVVA6Y2FzZSB0LnVpLmtleUNvZGUuUklHSFQ6Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITAsdGhpcy5fYWRkQ2xhc3ModChlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIiksITE9PT10aGlzLl9zdGFydChlLG8pKSlyZXR1cm59c3dpdGNoKHI9dGhpcy5vcHRpb25zLnN0ZXAsbj1pPXRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy52YWx1ZXMobyk6dGhpcy52YWx1ZSgpLGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTppPXRoaXMuX3ZhbHVlTWluKCk7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRU5EOmk9dGhpcy5fdmFsdWVNYXgoKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX1VQOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUobisodGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046aT10aGlzLl90cmltQWxpZ25WYWx1ZShuLSh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdC51aS5rZXlDb2RlLlVQOmNhc2UgdC51aS5rZXlDb2RlLlJJR0hUOmlmKG49PT10aGlzLl92YWx1ZU1heCgpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4rcik7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKG49PT10aGlzLl92YWx1ZU1pbigpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4tcil9dGhpcy5fc2xpZGUoZSxvLGkpfSxrZXl1cDpmdW5jdGlvbihlKXt2YXIgbj10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7dGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fc3RvcChlLG4pLHRoaXMuX2NoYW5nZShlLG4pLHRoaXMuX3JlbW92ZUNsYXNzKHQoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpKX19fSl9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG87Ci8qIQogKiBqUXVlcnkgVUkgTW91c2UgMS4xMi4xCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20KICoKICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqL3I9W24oMTUpLG4oMzQ5KSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiB0KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXtlPSExfSksdC53aWRnZXQoInVpLm1vdXNlIix7dmVyc2lvbjoiMS4xMi4xIixvcHRpb25zOntjYW5jZWw6ImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmVsZW1lbnQub24oIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbih0KXtyZXR1cm4gZS5fbW91c2VEb3duKHQpfSkub24oImNsaWNrLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKG4pe2lmKCEwPT09dC5kYXRhKG4udGFyZ2V0LGUud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikpcmV0dXJuIHQucmVtb3ZlRGF0YShuLnRhcmdldCxlLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLG4uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksITF9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQub2ZmKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbihuKXtpZighZSl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAobiksdGhpcy5fbW91c2VEb3duRXZlbnQ9bjt2YXIgaT10aGlzLHI9MT09PW4ud2hpY2gsbz0hKCJzdHJpbmciIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IW4udGFyZ2V0Lm5vZGVOYW1lKSYmdChuLnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIShyJiYhbyYmdGhpcy5fbW91c2VDYXB0dXJlKG4pJiYodGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQobikmJnRoaXMuX21vdXNlRGVsYXlNZXQobikmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KG4pLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyhuLnByZXZlbnREZWZhdWx0KCksMCk6KCEwPT09dC5kYXRhKG4udGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnQucmVtb3ZlRGF0YShuLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tb3VzZU1vdmUodCl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbW91c2VVcCh0KX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLG4ucHJldmVudERlZmF1bHQoKSxlPSEwLDApKSl9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHQudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24obil7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLG4udGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ0LmRhdGEobi50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AobikpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGU9ITEsbi5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtdC5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktdC5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbztyPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkuaWU9ISEvbXNpZSBbXHcuXSsvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbzsKLyohCiAqIGpRdWVyeSBVSSBLZXljb2RlIDEuMTIuMQogKiBodHRwOi8vanF1ZXJ5dWkuY29tCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKi9yPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9fSk/aS5hcHBseShlLHIpOmkpfHwodC5leHBvcnRzPW8pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oNiksYT1uKDEzNyksdT1uKDEzOSksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdE1vZGVsIix2YWx1ZTowfSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuRmxvYXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkJvdW5kZWRGbG9hdE1vZGVsIixtYXg6MTAwLG1pbjowfSl9LGV9KGMpO2UuQm91bmRlZEZsb2F0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJGbG9hdFNsaWRlclZpZXciLHN0ZXA6MSxvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsX3JhbmdlOiExLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6Ii4yZiIsc2xpZGVyX2NvbG9yOm51bGwsY29udGludW91c191cGRhdGU6ITAsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdFNsaWRlck1vZGVsPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRmxvYXRMb2dTbGlkZXJNb2RlbCIsX3ZpZXdfbmFtZToiRmxvYXRMb2dTbGlkZXJWaWV3IixzdGVwOi4xLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixfcmFuZ2U6ITEscmVhZG91dDohMCxyZWFkb3V0X2Zvcm1hdDoiLjNnIixzbGlkZXJfY29sb3I6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMCxkaXNhYmxlZDohMSxiYXNlOjEwLHZhbHVlOjEsbWluOjAsbWF4OjR9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdExvZ1NsaWRlck1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkZsb2F0UmFuZ2VTbGlkZXJNb2RlbD1mO3ZhciBwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5JbnRTbGlkZXJWaWV3KTtlLkZsb2F0U2xpZGVyVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxpPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxyPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG89dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxzPU1hdGgubG9nKHIpL01hdGgubG9nKG8pO3M+aT9zPWk6czxuJiYocz1uKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIscyksdGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyhyKSx0aGlzLm1vZGVsLmdldCgidmFsdWUiKSE9PXImJih0aGlzLm1vZGVsLnNldCgidmFsdWUiLHIse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKX0sZS5wcm90b3R5cGUudmFsdWVUb1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLm1vZGVsLnJlYWRvdXRfZm9ybWF0dGVyKSh0KX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyc2VfdmFsdWUodCl9LGUucHJvdG90eXBlLmhhbmRsZVRleHRDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0cmluZ1RvVmFsdWUodGhpcy5yZWFkb3V0LnRleHRDb250ZW50KSxlPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxpPXRoaXMubW9kZWwuZ2V0KCJiYXNlIik7aXNOYU4odCk/dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSk6KHQ9TWF0aC5tYXgoTWF0aC5taW4odCxNYXRoLnBvdyhpLG4pKSxNYXRoLnBvdyhpLGUpKSkhPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKT8odGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0KSx0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKTp0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcoaSksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsaSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5CYXNlSW50U2xpZGVyVmlldyk7ZS5GbG9hdExvZ1NsaWRlclZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl9wYXJzZV92YWx1ZT1wYXJzZUZsb2F0LGUuX3JhbmdlX3JlZ2V4PS9eXHMqKFsrLV0/KD86XGQqXC4/XGQrfFxkK1wuKSg/OltlRV1bLTpdP1xkKyk/KVxzKlstOuKAk11ccyooWystXT8oPzpcZCpcLj9cZCt8XGQrXC4pKD86W2VFXVsrLV0/XGQrKT8pLyxlfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlfShhLkludFJhbmdlU2xpZGVyVmlldyk7ZS5GbG9hdFJhbmdlU2xpZGVyVmlldz1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMX0pfSxlfShjKTtlLkZsb2F0VGV4dE1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQm91bmRlZEZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMSxzdGVwOi4xfSl9LGV9KGgpO2UuQm91bmRlZEZsb2F0VGV4dE1vZGVsPWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VGbG9hdCxlLl9kZWZhdWx0X3N0ZXA9ImFueSIsZX1yZXR1cm4gcihlLHQpLGV9KGEuSW50VGV4dFZpZXcpO2UuRmxvYXRUZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0oaCk7ZS5GbG9hdFByb2dyZXNzTW9kZWw9X30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9big4KSx1PW4oNiksYz1uKDE2KSxoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvbnRyb2xsZXJCdXR0b25Nb2RlbCIsX3ZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZhbHVlOjAscHJlc3NlZDohMX0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyQnV0dG9uTW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29udHJvbGxlci1idXR0b24iKSx0aGlzLnN1cHBvcnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdXBwb3J0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5zdXBwb3J0LnN0eWxlLm1hcmdpbj0iMXB4Iix0aGlzLnN1cHBvcnQuc3R5bGUud2lkdGg9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnN1cHBvcnQpLHRoaXMuYmFyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYmFyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5iYXIuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5iYWNrZ3JvdW5kPSJncmF5Iix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5sYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmxhYmVsLnRleHRDb250ZW50PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpLHRoaXMubGFiZWwuc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5sYWJlbCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYmFyLnN0eWxlLmhlaWdodD0xMDAqdGhpcy5tb2RlbC5nZXQoInZhbHVlIikrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckJ1dHRvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyQXhpc1ZpZXciLHZhbHVlOjB9KX0sZX0ocy5Db3JlRE9NV2lkZ2V0TW9kZWwpO2UuQ29udHJvbGxlckF4aXNNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyLWF4aXMiKSx0aGlzLmVsLnN0eWxlLndpZHRoPSIxNnB4Iix0aGlzLmVsLnN0eWxlLnBhZGRpbmc9IjRweCIsdGhpcy5zdXBwb3J0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc3VwcG9ydC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHRoaXMuc3VwcG9ydC5zdHlsZS5tYXJnaW49IjFweCIsdGhpcy5zdXBwb3J0LnN0eWxlLndpZHRoPSI0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjY0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5idWxsZXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idWxsZXQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmJ1bGxldC5zdHlsZS5tYXJnaW49Ii00cHgiLHRoaXMuYnVsbGV0LnN0eWxlLndpZHRoPSIxMHB4Iix0aGlzLmJ1bGxldC5zdHlsZS5oZWlnaHQ9IjEwcHgiLHRoaXMuYnVsbGV0LnN0eWxlLmJhY2tncm91bmQ9ImdyYXkiLHRoaXMubGFiZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSx0aGlzLmxhYmVsLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5idWxsZXQpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdXBwb3J0KSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYnVsbGV0LnN0eWxlLnRvcD01MCoodGhpcy5tb2RlbC5nZXQoInZhbHVlIikrMSkrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckF4aXNWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29udHJvbGxlck1vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyVmlldyIsaW5kZXg6MCxuYW1lOiIiLG1hcHBpbmc6IiIsY29ubmVjdGVkOiExLHRpbWVzdGFtcDowLGJ1dHRvbnM6W10sYXhlczpbXX0pfSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUsbil7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSxuKSx2b2lkIDA9PT1uYXZpZ2F0b3IuZ2V0R2FtZXBhZHM/KHRoaXMucmVhZG91dD0iVGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZ2FtZXBhZHMuIixjb25zb2xlLmVycm9yKHRoaXMucmVhZG91dCkpOih0aGlzLnJlYWRvdXQ9IkNvbm5lY3QgZ2FtZXBhZCBhbmQgcHJlc3MgYW55IGJ1dHRvbi4iLHRoaXMuZ2V0KCJjb25uZWN0ZWQiKT90aGlzLnVwZGF0ZV9sb29wKCk6dGhpcy53YWl0X2xvb3AoKSl9LGUucHJvdG90eXBlLndhaXRfbG9vcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0KCJpbmRleCIpLGU9bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07aWYoZSl7dmFyIG49dGhpczt0aGlzLnNldHVwKGUpLnRoZW4oZnVuY3Rpb24odCl7bi5zZXQodCksbi5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4udXBkYXRlX2xvb3AuYmluZChuKSl9KX1lbHNlIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy53YWl0X2xvb3AuYmluZCh0aGlzKSl9LGUucHJvdG90eXBlLnNldHVwPWZ1bmN0aW9uKHQpe3RoaXMuc2V0KHtuYW1lOnQuaWQsbWFwcGluZzp0Lm1hcHBpbmcsY29ubmVjdGVkOnQuY29ubmVjdGVkLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH0pO3ZhciBlPXRoaXM7cmV0dXJuIGMucmVzb2x2ZVByb21pc2VzRGljdCh7YnV0dG9uczpQcm9taXNlLmFsbCh0LmJ1dHRvbnMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9idXR0b25fbW9kZWwobil9KSksYXhlczpQcm9taXNlLmFsbCh0LmF4ZXMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9heGlzX21vZGVsKG4pfSkpfSl9LGUucHJvdG90eXBlLnVwZGF0ZV9sb29wPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXQoImluZGV4IiksZT10aGlzLmdldCgibmFtZSIpLG49bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07biYmdD09PW4uaW5kZXgmJmU9PT1uLmlkPyh0aGlzLnNldCh7dGltZXN0YW1wOm4udGltZXN0YW1wLGNvbm5lY3RlZDpuLmNvbm5lY3RlZH0pLHRoaXMuc2F2ZV9jaGFuZ2VzKCksdGhpcy5nZXQoImJ1dHRvbnMiKS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dC5zZXQoe3ZhbHVlOm4uYnV0dG9uc1tlXS52YWx1ZSxwcmVzc2VkOm4uYnV0dG9uc1tlXS5wcmVzc2VkfSksdC5zYXZlX2NoYW5nZXMoKX0pLHRoaXMuZ2V0KCJheGVzIikuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Quc2V0KCJ2YWx1ZSIsbi5heGVzW2VdKSx0LnNhdmVfY2hhbmdlcygpfSksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZV9sb29wLmJpbmQodGhpcykpKTp0aGlzLnJlc2V0X2dhbWVwYWQoKX0sZS5wcm90b3R5cGUucmVzZXRfZ2FtZXBhZD1mdW5jdGlvbigpe3RoaXMuZ2V0KCJidXR0b25zIikuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsb3NlKCl9KSx0aGlzLmdldCgiYXhlcyIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbG9zZSgpfSksdGhpcy5zZXQoe25hbWU6IiIsbWFwcGluZzoiIixjb25uZWN0ZWQ6ITEsdGltZXN0YW1wOjAsYnV0dG9uczpbXSxheGVzOltdfSksdGhpcy5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMud2FpdF9sb29wLmJpbmQodGhpcykpfSxlLnByb3RvdHlwZS5fY3JlYXRlX2J1dHRvbl9tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQnV0dG9uTW9kZWwiLG1vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsbW9kZWxfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl9tb2RlbF9tb2R1bGVfdmVyc2lvbiIpLHZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2aWV3X21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImRlc2NyaXB0aW9uIix0KSxlfSl9LGUucHJvdG90eXBlLl9jcmVhdGVfYXhpc19tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixtb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLG1vZGVsX21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSx2aWV3X25hbWU6IkNvbnRyb2xsZXJBeGlzVmlldyIsdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLHZpZXdfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl92aWV3X21vZHVsZV92ZXJzaW9uIil9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgiZGVzY3JpcHRpb24iLHQpLGV9KX0sZS5zZXJpYWxpemVycz1vKHt9LHMuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtidXR0b25zOntkZXNlcmlhbGl6ZTphLnVucGFja19tb2RlbHN9LGF4ZXM6e2Rlc2VyaWFsaXplOmEudW5wYWNrX21vZGVsc319KSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5idXR0b25fdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYnV0dG9uLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9ucyIsZnVuY3Rpb24odCxlKXt0aGlzLmJ1dHRvbl92aWV3cy51cGRhdGUoZSl9KSx0aGlzLmF4aXNfdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYXhpcyxudWxsLHRoaXMpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmF4ZXMiLGZ1bmN0aW9uKHQsZSl7dGhpcy5heGlzX3ZpZXdzLnVwZGF0ZShlKX0pLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOm5hbWUiLHRoaXMudXBkYXRlX2xhYmVsKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyIiksdGhpcy5ib3g9dGhpcy5lbCx0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMuYXhpc19ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5heGlzX2JveC5zdHlsZS5kaXNwbGF5PSJmbGV4Iix0aGlzLmJveC5hcHBlbmRDaGlsZCh0aGlzLmF4aXNfYm94KSx0aGlzLmJ1dHRvbl9ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idXR0b25fYm94LnN0eWxlLmRpc3BsYXk9ImZsZXgiLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMuYnV0dG9uX2JveCksdGhpcy5idXR0b25fdmlld3MudXBkYXRlKHRoaXMubW9kZWwuZ2V0KCJidXR0b25zIikpLHRoaXMuYXhpc192aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImF4ZXMiKSksdGhpcy51cGRhdGVfbGFiZWwoKX0sZS5wcm90b3R5cGUudXBkYXRlX2xhYmVsPWZ1bmN0aW9uKCl7dGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgibmFtZSIpfHx0aGlzLm1vZGVsLnJlYWRvdXR9LGUucHJvdG90eXBlLmFkZF9idXR0b249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmJ1dHRvbl9ib3guYXBwZW5kQ2hpbGQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJ1dHRvbl9ib3gucmVwbGFjZUNoaWxkKHQuZWwsbiksZS5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe3QudHJpZ2dlcigiZGlzcGxheWVkIixlKX0pLHR9KS5jYXRjaChjLnJlamVjdCgiQ291bGQgbm90IGFkZCBidXR0b24gdmlldyIsITApKX0sZS5wcm90b3R5cGUuYWRkX2F4aXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmF4aXNfYm94LmFwcGVuZENoaWxkKG4pLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5heGlzX2JveC5yZXBsYWNlQ2hpbGQodC5lbCxuKSxlLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7dC50cmlnZ2VyKCJkaXNwbGF5ZWQiLGUpfSksdH0pLmNhdGNoKGMucmVqZWN0KCJDb3VsZCBub3QgYWRkIGF4aXMgdmlldyIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyksdGhpcy5idXR0b25fdmlld3MucmVtb3ZlKCksdGhpcy5heGlzX3ZpZXdzLnJlbW92ZSgpfSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlclZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDE2KSxjPW4oNiksaD1uKDE2KSxsPW4oMTUpO3ZhciBkPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uTW9kZWwiLGluZGV4OiIiLF9vcHRpb25zX2xhYmVsczpbXSxkaXNhYmxlZDohMX0pfSxlfShzLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLlNlbGVjdGlvbk1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJEcm9wZG93bk1vZGVsIixfdmlld19uYW1lOiJEcm9wZG93blZpZXciLGJ1dHRvbl9zdHlsZToiIn0pfSxlfShkKTtlLkRyb3Bkb3duTW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfb3B0aW9uc19sYWJlbHMiLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3VwZGF0ZU9wdGlvbnMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtZHJvcGRvd24iKSx0aGlzLmxpc3Rib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksdGhpcy5saXN0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj11LnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGlzdGJveCksdGhpcy5fdXBkYXRlT3B0aW9ucygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTtyZXR1cm4gdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9bnVsbD09PWU/LTE6ZSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsLTE9PT10aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD9udWxsOnRoaXMubGlzdGJveC5zZWxlY3RlZEluZGV4KSx0aGlzLnRvdWNoKCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkRyb3Bkb3duVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0TW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdFZpZXciLHJvd3M6NX0pfSxlfShkKTtlLlNlbGVjdE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X29wdGlvbnNfbGFiZWxzIixmdW5jdGlvbigpe3JldHVybiBuLl91cGRhdGVPcHRpb25zKCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTppbmRleCIsZnVuY3Rpb24odCxlLGkpe3JldHVybiBuLnVwZGF0ZVNlbGVjdGlvbihpKX0pLHRoaXMubGlzdGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdCIpLHRoaXMubGlzdGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9dS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxpc3Rib3gpLHRoaXMuX3VwZGF0ZU9wdGlvbnMoKSx0aGlzLnVwZGF0ZSgpLHRoaXMudXBkYXRlU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpLHRoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgicm93cyIpO251bGw9PT1lJiYoZT0iIiksdGhpcy5saXN0Ym94LnNldEF0dHJpYnV0ZSgic2l6ZSIsZSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10JiYodD17fSksdC51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD1udWxsPT09ZT8tMTplfX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXgse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3RWaWV3PWc7dmFyIHY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJSYWRpb0J1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiUmFkaW9CdXR0b25zVmlldyIsdG9vbHRpcHM6W10saWNvbnM6W10sYnV0dG9uX3N0eWxlOiIifSl9LGV9KGQpO2UuUmFkaW9CdXR0b25zTW9kZWw9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpbyIpLHRoaXMuY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpby1ib3giKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxyPWMucGx1Y2sodGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0icmFkaW8iXScpLCJ2YWx1ZSIpLG89aS5sZW5ndGghPXIubGVuZ3RoO2lmKCFvKWZvcih2YXIgcz0wLGE9aS5sZW5ndGg7czxhOysrcylpZihyW3NdIT09aVtzXSl7bz0hMDticmVha31yZXR1cm4hb3x8dm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PT10aGlzfHwodGhpcy5jb250YWluZXIudGV4dENvbnRlbnQ9IiIsaS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTtpLnRleHRDb250ZW50PXQsbi5jb250YWluZXIuYXBwZW5kQ2hpbGQoaSk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksci52YWx1ZT1lLnRvU3RyaW5nKCksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSksaS5hcHBlbmRDaGlsZChyKX0pKSxpLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgaT0naW5wdXRbZGF0YS12YWx1ZT0iJytlbmNvZGVVUklDb21wb25lbnQodCkrJyJdJyxyPW4uY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoaSk7aWYoci5sZW5ndGg+MCl7dmFyIG89clswXTtvLmNoZWNrZWQ9bi5tb2RlbC5nZXQoImluZGV4Iik9PT1lLG8uZGlzYWJsZWQ9bi5tb2RlbC5nZXQoImRpc2FibGVkIil9fSksc2V0VGltZW91dCh0aGlzLmFkanVzdFBhZGRpbmcsMCx0aGlzKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5hZGp1c3RQYWRkaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQuZWwpLG49cGFyc2VJbnQoZS5tYXJnaW5Ub3ApK3BhcnNlSW50KGUubWFyZ2luQm90dG9tKSxpPXQubGFiZWwub2Zmc2V0SGVpZ2h0K24scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LmNvbnRhaW5lciksbz1wYXJzZUludChyLm1hcmdpbkJvdHRvbSkscz0odC5lbC5vZmZzZXRIZWlnaHQrbi1vKSVpLGE9MD09cz8wOmktczt0LmNvbnRhaW5lci5zdHlsZS5tYXJnaW5Cb3R0b209YSsicHgifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9InJhZGlvIl0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5zZXQoImluZGV4IixwYXJzZUludCh0LnRhcmdldC52YWx1ZSkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5SYWRpb0J1dHRvbnNWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtidXR0b25fd2lkdGg6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToid2lkdGgiLGRlZmF1bHQ6bnVsbH0sZm9udF93ZWlnaHQ6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToiZm9udC13ZWlnaHQiLGRlZmF1bHQ6IiJ9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWw9eTt2YXIgXz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRvZ2dsZUJ1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiVG9nZ2xlQnV0dG9uc1ZpZXcifSl9LGV9KGQpO2UuVG9nZ2xlQnV0dG9uc01vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3RoaXMuX2Nzc19zdGF0ZT17fSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpidXR0b25fc3R5bGUiLHRoaXMudXBkYXRlX2J1dHRvbl9zdHlsZSl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10b2dnbGUtYnV0dG9ucyIpLHRoaXMuYnV0dG9uZ3JvdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1dHRvbmdyb3VwKSx0aGlzLnVwZGF0ZSgpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24obil7Zm9yKHZhciBpPXRoaXMscj10aGlzLm1vZGVsLmdldCgiX29wdGlvbnNfbGFiZWxzIiksbz10aGlzLm1vZGVsLmdldCgiaWNvbnMiKXx8W10scz10aGlzLm1vZGVsLnByZXZpb3VzKCJpY29ucyIpfHxbXSxhPWUuY2xhc3NNYXBbdGhpcy5tb2RlbC5wcmV2aW91cygiYnV0dG9uX3N0eWxlIildfHwiIix1PWkubW9kZWwuZ2V0KCJ0b29sdGlwcyIpfHxbXSxsPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLGQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxmPWMucGx1Y2soZCwidmFsdWUiKSxwPSExLG09MCxnPXIubGVuZ3RoO208ZzsrK20paWYoZlttXSE9PXJbbV18fG9bbV0hPT1zW21dKXtwPSEwO2JyZWFrfXJldHVybiFwfHx2b2lkIDAhPT1uJiZuLnVwZGF0ZWRfdmlldz09PXRoaXN8fCh0aGlzLmJ1dHRvbmdyb3VwLnRleHRDb250ZW50PSIiLHIuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuO249MD09PXQudHJpbSgpLmxlbmd0aCYmKCFvW2VdfHwwPT09b1tlXS50cmltKCkubGVuZ3RoKT8iJm5ic3A7IjpoLmVzY2FwZV9odG1sKHQpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO29bZV0mJihyLmNsYXNzTmFtZT0iZmEgZmEtIitvW2VdKSxzLnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpLHMuY2xhc3NOYW1lPSJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiBqdXB5dGVyLWJ1dHRvbiIsYSYmcy5jbGFzc0xpc3QuYWRkKGEpLHMuaW5uZXJIVE1MPW4scy5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSkscy5zZXRBdHRyaWJ1dGUoInZhbHVlIixlLnRvU3RyaW5nKCkpLHMuYXBwZW5kQ2hpbGQocikscy5kaXNhYmxlZD1sLHVbZV0mJnMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdVtlXSksaS51cGRhdGVfc3R5bGVfdHJhaXRzKHMpLGkuYnV0dG9uZ3JvdXAuYXBwZW5kQ2hpbGQocyl9KSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49J1tkYXRhLXZhbHVlPSInK2VuY29kZVVSSUNvbXBvbmVudCh0KSsnIl0nLHI9aS5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yKG4pO2kubW9kZWwuZ2V0KCJpbmRleCIpPT09ZT9yLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTpyLmNsYXNzTGlzdC5yZW1vdmUoIm1vZC1hY3RpdmUiKX0pLHRoaXMuc3R5bGVQcm9taXNlLnRoZW4oZnVuY3Rpb24odCl7dCYmdC5zdHlsZSgpfSksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxuKX0sZS5wcm90b3R5cGUudXBkYXRlX3N0eWxlX3RyYWl0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fY3NzX3N0YXRlKWlmKHRoaXMuX2Nzc19zdGF0ZS5oYXNPd25Qcm9wZXJ0eShlKSlpZigibWFyZ2luIj09PWUpdGhpcy5idXR0b25ncm91cC5zdHlsZVtlXT10aGlzLl9jc3Nfc3RhdGVbZV07ZWxzZSBpZigid2lkdGgiIT09ZSlpZih0KXQuc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdO2Vsc2V7dmFyIG49dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKTtuLmxlbmd0aCYmKG5bMF0uc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdKX19LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc01hcCwiYnV0dG9uX3N0eWxlIix0W25dKX0sZS5wcm90b3R5cGUuc2V0X2J1dHRvbl9zdHlsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1dHRvbmdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzTWFwLCJidXR0b25fc3R5bGUiLHRbbl0pfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNsaWNrIGJ1dHRvbiI6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgiaW5kZXgiLHBhcnNlSW50KHQudGFyZ2V0LnZhbHVlKSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCksdGhpcy5zZW5kKHtldmVudDoiY2xpY2sifSl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLlRvZ2dsZUJ1dHRvbnNWaWV3PXcsZnVuY3Rpb24odCl7dC5jbGFzc01hcD17cHJpbWFyeTpbIm1vZC1wcmltYXJ5Il0sc3VjY2VzczpbIm1vZC1zdWNjZXNzIl0saW5mbzpbIm1vZC1pbmZvIl0sd2FybmluZzpbIm1vZC13YXJuaW5nIl0sZGFuZ2VyOlsibW9kLWRhbmdlciJdfX0odz1lLlRvZ2dsZUJ1dHRvbnNWaWV3fHwoZS5Ub2dnbGVCdXR0b25zVmlldz17fSkpLGUuVG9nZ2xlQnV0dG9uc1ZpZXc9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShkKTtlLlNlbGVjdGlvblNsaWRlck1vZGVsPXg7dmFyIE09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1sKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpzbGlkZXJfY29sb3IiLGZ1bmN0aW9uKHQsbil7ZS4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLG4pfSksdGhpcy4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLHRoaXMubW9kZWwuZ2V0KCJzbGlkZXJfY29sb3IiKSksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWV8fGUudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLmxlbmd0aC0xO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInN0ZXAiLDEpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1heCIsbiksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwibWluIiwwKTt2YXIgaT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsMCksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwib3JpZW50YXRpb24iLGkpO3ZhciByPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsImRpc2FibGVkIixyKSx0aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPXI/ImZhbHNlIjoidHJ1ZSIsInZlcnRpY2FsIj09PWk/KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWhzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtdmJveCIpKToodGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtdnNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJyZWFkb3V0Iik7dGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9bz8iIjoibm9uZSIsdGhpcy51cGRhdGVTZWxlY3Rpb24oKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsdCksdGhpcy51cGRhdGVSZWFkb3V0KHQpfSxlLnByb3RvdHlwZS51cGRhdGVSZWFkb3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKVt0XTt0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9ZX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWUpLHRoaXMubW9kZWwuZ2V0KCJjb250aW51b3VzX3VwZGF0ZSIpJiZ0aGlzLmhhbmRsZVNsaWRlckNoYW5nZWQodCxlKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3Rpb25TbGlkZXJWaWV3PU07dmFyIFM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJNdWx0aXBsZVNlbGVjdGlvbk1vZGVsIn0pfSxlfShkKTtlLk11bHRpcGxlU2VsZWN0aW9uTW9kZWw9Uzt2YXIgRT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdE11bHRpcGxlTW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdE11bHRpcGxlVmlldyIscm93czpudWxsfSl9LGV9KFMpO2UuU2VsZWN0TXVsdGlwbGVNb2RlbD1FO3ZhciBBPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3Rib3gubXVsdGlwbGU9ITB9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdC1tdWx0aXBsZSIpfSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHQudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoImluZGV4Iil8fFtdLG49dGhpcy5saXN0Ym94Lm9wdGlvbnM7dGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9LTEsZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF0uc2VsZWN0ZWQ9ITB9KX19LGUucHJvdG90eXBlLl9oYW5kbGVfY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHRoaXMubGlzdGJveC5zZWxlY3RlZE9wdGlvbnN8fFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4fSk7dGhpcy5tb2RlbC5zZXQoImluZGV4Iix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oZyk7ZS5TZWxlY3RNdWx0aXBsZVZpZXc9QTt2YXIgQz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShTKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyTW9kZWw9Qzt2YXIgaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInJhbmdlIiwhMCl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJpbmRleCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsdC5zbGljZSgpKSx0aGlzLnVwZGF0ZVJlYWRvdXQodCl9LGUucHJvdG90eXBlLnVwZGF0ZVJlYWRvdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLG49ZVt0WzBdXSxpPWVbdFsxXV07dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PW4rIi0iK2l9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlcyksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWVzKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWVzLnNsaWNlKCkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShNKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyVmlldz1rfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDgpLHM9bigxMzYpLGE9bigzNTUpLHU9bigzNTYpLGM9bigzOSksaD1uKDIpLGw9big1KSxkPW4oNiksZj1uKDE2KSxwPW4oMTUpLG09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uQ29udGFpbmVyTW9kZWwiLHNlbGVjdGVkX2luZGV4OjAsX3RpdGxlczp7fX0pfSxlfShzLkJveE1vZGVsKTtlLlNlbGVjdGlvbkNvbnRhaW5lck1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQWNjb3JkaW9uTW9kZWwiLF92aWV3X25hbWU6IkFjY29yZGlvblZpZXcifSl9LGV9KG0pO2UuQWNjb3JkaW9uTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlLmNhbGwodGhpcyxlKSx0aGlzLl92aWV3LnByb2Nlc3NQaG9zcGhvck1lc3NhZ2UoZSl9LGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfSh1LkFjY29yZGlvbik7ZS5KdXB5dGVyUGhvc3Bob3JBY2NvcmRpb25XaWRnZXQ9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IHYoe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBvLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX3ZpZXcsdGhpcy5yZW1vdmVfY2hpbGRfdmlldyx0aGlzKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjaGlsZHJlbiIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVDaGlsZHJlbigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2VsZWN0ZWRfaW5kZXgiLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfdGl0bGVzIixmdW5jdGlvbigpe3JldHVybiBuLnVwZGF0ZV90aXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpO3ZhciBuPXRoaXMucFdpZGdldDtuLmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSxuLmFkZENsYXNzKCJ3aWRnZXQtYWNjb3JkaW9uIiksbi5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLG4uc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChmdW5jdGlvbih0KXtlLnVwZGF0aW5nQ2hpbGRyZW58fChlLm1vZGVsLnNldCgic2VsZWN0ZWRfaW5kZXgiLG4uc2VsZWN0aW9uLmluZGV4KSxlLnRvdWNoKCkpfSksdGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLHRoaXMudXBkYXRlX3RpdGxlcygpLHRoaXMudXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9LGUucHJvdG90eXBlLnVwZGF0ZUNoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGluZ0NoaWxkcmVuPSEwLHRoaXMucFdpZGdldC5zZWxlY3Rpb24uaW5kZXg9bnVsbCx0aGlzLmNoaWxkcmVuX3ZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy51cGRhdGVfc2VsZWN0ZWRfaW5kZXgoKSx0aGlzLnVwZGF0aW5nQ2hpbGRyZW49ITF9LGUucHJvdG90eXBlLnVwZGF0ZV90aXRsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5wV2lkZ2V0LmNvbGxhcHNlV2lkZ2V0cyxlPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIiksbj0wO248dC5sZW5ndGg7bisrKXZvaWQgMCE9PWVbbl0mJih0W25dLndpZGdldC50aXRsZS5sYWJlbD1lW25dKX0sZS5wcm90b3R5cGUudXBkYXRlX3NlbGVjdGVkX2luZGV4PWZ1bmN0aW9uKCl7dGhpcy5wV2lkZ2V0LnNlbGVjdGlvbi5pbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKX0sZS5wcm90b3R5cGUucmVtb3ZlX2NoaWxkX3ZpZXc9ZnVuY3Rpb24odCl7dGhpcy5wV2lkZ2V0LnJlbW92ZVdpZGdldCh0LnBXaWRnZXQpLHQucmVtb3ZlKCl9LGUucHJvdG90eXBlLmFkZF9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5wV2lkZ2V0LGk9bmV3IGMuV2lkZ2V0O3JldHVybiBpLnRpdGxlLmxhYmVsPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIilbZV18fCIiLG4uYWRkV2lkZ2V0KGkpLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnBXaWRnZXQ7cmV0dXJuIGUudGl0bGUubGFiZWw9aS50aXRsZS5sYWJlbCxuLmNvbGxhcHNlV2lkZ2V0c1tuLmluZGV4T2YoaSldLndpZGdldD1lLGkuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cz1udWxsLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxlfShvLkRPTVdpZGdldFZpZXcpO2UuQWNjb3JkaW9uVmlldz1iO3ZhciB5PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRhYk1vZGVsIixfdmlld19uYW1lOiJUYWJWaWV3In0pfSxlfShtKTtlLlRhYk1vZGVsPXk7dmFyIF89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLGwuTWVzc2FnZUxvb3AuaW5zdGFsbE1lc3NhZ2VIb29rKG4udGFiQ29udGVudHMsZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpLCEwfSksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfShhLlRhYlBhbmVsKTtlLkp1cHl0ZXJQaG9zcGhvclRhYlBhbmVsV2lkZ2V0PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS51cGRhdGluZ1RhYnM9ITEsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IF8oe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuVmlld3M9bmV3IG8uVmlld0xpc3QodGhpcy5hZGRDaGlsZFZpZXcsZnVuY3Rpb24odCl7dC5yZW1vdmUoKX0sdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlVGFicygpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3RpdGxlcyIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVUaXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT10aGlzLnBXaWRnZXQ7ZS5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksZS5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLGUuYWRkQ2xhc3MoIndpZGdldC10YWIiKSxlLnRhYnNNb3ZhYmxlPSEwLGUudGFiQmFyLmluc2VydEJlaGF2aW9yPSJub25lIixlLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGFiQ2hhbmdlZCx0aGlzKSxlLnRhYkJhci50YWJNb3ZlZC5jb25uZWN0KHRoaXMuX29uVGFiTW92ZWQsdGhpcyksZS50YWJCYXIuYWRkQ2xhc3MoIndpZGdldC10YWItYmFyIiksZS50YWJDb250ZW50cy5hZGRDbGFzcygid2lkZ2V0LXRhYi1jb250ZW50cyIpLGUudGFiQmFyLnRhYnNNb3ZhYmxlPSExLHRoaXMudXBkYXRlVGFicygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZVRhYnM9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0aW5nVGFicz0hMCx0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PW51bGwsdGhpcy5jaGlsZHJlblZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy5wV2lkZ2V0LmN1cnJlbnRJbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKSx0aGlzLnVwZGF0aW5nVGFicz0hMX0sZS5wcm90b3R5cGUuYWRkQ2hpbGRWaWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl90aXRsZXMiKVtlXXx8IiIsaT10aGlzLnBXaWRnZXQscj1uZXcgYy5XaWRnZXQ7cmV0dXJuIHIudGl0bGUubGFiZWw9bixpLmFkZFdpZGdldChyKSx0aGlzLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9dC5wV2lkZ2V0O2UudGl0bGUubGFiZWw9ci50aXRsZS5sYWJlbCxlLnRpdGxlLmNsb3NhYmxlPSExO3ZhciBuPWguQXJyYXlFeHQuZmlyc3RJbmRleE9mKGkud2lkZ2V0cyxyKTtyZXR1cm4gaS5pbnNlcnRXaWRnZXQobisxLGUpLHIuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlU2VsZWN0ZWRJbmRleCgpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS51cGRhdGVUaXRsZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3RpdGxlcyIpfHx7fTtoLmVhY2godGhpcy5wV2lkZ2V0LndpZGdldHMsZnVuY3Rpb24oZSxuKXtlLnRpdGxlLmxhYmVsPXRbbl18fCIifSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGVkSW5kZXg9ZnVuY3Rpb24oKXt0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PXRoaXMubW9kZWwuZ2V0KCJzZWxlY3RlZF9pbmRleCIpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmNoaWxkcmVuVmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX29uVGFiQ2hhbmdlZD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLnVwZGF0aW5nVGFicyl7dmFyIG49ZS5jdXJyZW50SW5kZXg7dGhpcy5tb2RlbC5zZXQoInNlbGVjdGVkX2luZGV4IiwtMT09PW4/bnVsbDpuKSx0aGlzLnRvdWNoKCl9fSxlLnByb3RvdHlwZS5fb25UYWJNb3ZlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJjaGlsZHJlbiIpLnNsaWNlKCk7aC5BcnJheUV4dC5tb3ZlKG4sZS5mcm9tSW5kZXgsZS50b0luZGV4KSx0aGlzLm1vZGVsLnNldCgiY2hpbGRyZW4iLG4pLHRoaXMudG91Y2goKX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLlRhYlZpZXc9d30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big1KSxzPW4oMTEpLGE9big5KSx1PW4oMzkpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0UmVtb3ZlZD1uZXcgcy5TaWduYWwoZSksZX1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRSZW1vdmVkPWZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0odS5QYW5lbCk7ZS5FdmVudGVkUGFuZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgdS5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi50YWJDb250ZW50cz1uZXcgYyxuLnRhYkNvbnRlbnRzLmFkZENsYXNzKCJwLVRhYlBhbmVsLXRhYkNvbnRlbnRzIiksbi50YWJCYXIudGFiTW92ZWQuY29ubmVjdChuLl9vblRhYk1vdmVkLG4pLG4udGFiQmFyLmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3Qobi5fb25DdXJyZW50Q2hhbmdlZCxuKSxuLnRhYkJhci50YWJDbG9zZVJlcXVlc3RlZC5jb25uZWN0KG4uX29uVGFiQ2xvc2VSZXF1ZXN0ZWQsbiksbi50YWJCYXIudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLG4pLG4udGFiQ29udGVudHMud2lkZ2V0UmVtb3ZlZC5jb25uZWN0KG4uX29uV2lkZ2V0UmVtb3ZlZCxuKTt2YXIgaT1uZXcgdS5QYW5lbExheW91dDtyZXR1cm4gaS5hZGRXaWRnZXQobi50YWJCYXIpLGkuYWRkV2lkZ2V0KG4udGFiQ29udGVudHMpLG4ubGF5b3V0PWksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRhYkJhci5jdXJyZW50SW5kZXg7cmV0dXJuLTE9PT10P251bGw6dH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRJbmRleD1udWxsPT09dD8tMTp0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFdpZGdldCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD90Lm93bmVyOm51bGx9LHNldDpmdW5jdGlvbih0KXt0aGlzLnRhYkJhci5jdXJyZW50VGl0bGU9dD90LnRpdGxlOm51bGx9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJzTW92YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhYkJhci50YWJzTW92YWJsZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLnRhYnNNb3ZhYmxlPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQ29udGVudHMud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy53aWRnZXRzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0PWZ1bmN0aW9uKHQsZSl7ZSE9PXRoaXMuY3VycmVudFdpZGdldCYmZS5oaWRlKCksdGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxzPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1zP3Mub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwoYS5QbGF0Zm9ybS5JU19FREdFfHxhLlBsYXRmb3JtLklTX0lFKSYmby5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQoZS50b0luZGV4LGUudGl0bGUub3duZXIpfSxlLnByb3RvdHlwZS5fb25XaWRnZXRSZW1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJCYXIucmVtb3ZlVGFiKGUudGl0bGUpfSxlfSh1LldpZGdldCk7ZS5UYWJQYW5lbD1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9bigxMSksYT1uKDM5KSx1PW4oMzU3KSxjPSJwLUNvbGxhcHNlIixoPSJwLUNvbGxhcHNlLWhlYWRlciIsbD0icC1Db2xsYXBzZS1jb250ZW50cyIsZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO24uX2NvbGxhcHNlQ2hhbmdlZD1uZXcgcy5TaWduYWwobiksbi5hZGRDbGFzcyhjKSxuLl9oZWFkZXI9bmV3IGEuV2lkZ2V0LG4uX2hlYWRlci5hZGRDbGFzcyhoKSxuLl9oZWFkZXIubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbiksbi5fY29udGVudD1uZXcgYS5QYW5lbCxuLl9jb250ZW50LmFkZENsYXNzKGwpO3ZhciBpPW5ldyBhLlBhbmVsTGF5b3V0O3JldHVybiBuLmxheW91dD1pLGkuYWRkV2lkZ2V0KG4uX2hlYWRlciksaS5hZGRXaWRnZXQobi5fY29udGVudCksZS53aWRnZXQmJihuLndpZGdldD1lLndpZGdldCksbi5jb2xsYXBzZWQ9ITEsbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5faGVhZGVyPW51bGwsdGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5fY29udGVudD1udWxsKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2lkZ2V0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fd2lkZ2V0O2UmJihlLmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25DaGlsZERpc3Bvc2VkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLGUucGFyZW50PW51bGwpLHRoaXMuX3dpZGdldD10LHQuZGlzcG9zZWQuY29ubmVjdCh0aGlzLl9vbkNoaWxkRGlzcG9zZWQsdGhpcyksdC50aXRsZS5jaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksdGhpcy5fb25UaXRsZUNoYW5nZWQodC50aXRsZSksdGhpcy5fY29udGVudC5hZGRXaWRnZXQodCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuX2NvbGxhcHNlZCYmKHQ/dGhpcy5fY29sbGFwc2UoKTp0aGlzLl91bmNvbGxhcHNlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZUNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMCx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LmhpZGUoKSx0aGlzLnJlbW92ZUNsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5fdW5jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMSx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LnNob3coKSx0aGlzLmFkZENsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNsaWNrIjp0aGlzLl9ldnRDbGljayh0KX19LGUucHJvdG90eXBlLl9ldnRDbGljaz1mdW5jdGlvbih0KXt0aGlzLnRvZ2dsZSgpfSxlLnByb3RvdHlwZS5fb25UaXRsZUNoYW5nZWQ9ZnVuY3Rpb24odCl7dGhpcy5faGVhZGVyLm5vZGUudGV4dENvbnRlbnQ9dGhpcy5fd2lkZ2V0LnRpdGxlLmxhYmVsfSxlLnByb3RvdHlwZS5fb25DaGlsZERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMuZGlzcG9zZSgpfSxlfShhLldpZGdldCk7ZS5Db2xsYXBzZT1kO3ZhciBmPSJwLUFjY29yZGlvbiIscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9zZWxlY3Rpb249bmV3IHUuU2VsZWN0aW9uKG4ud2lkZ2V0cyksbi5fc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChuLl9vblNlbGVjdGlvbkNoYW5nZWQsbiksbi5hZGRDbGFzcyhmKSxufXJldHVybiByKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZVdpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNlbGVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWxlY3Rpb259LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gby5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLmNvbGxhcHNlV2lkZ2V0cyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl93cmFwV2lkZ2V0KGUpO3JldHVybiBuLmNvbGxhcHNlZD0hMCx0LnByb3RvdHlwZS5hZGRXaWRnZXQuY2FsbCh0aGlzLG4pLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQodGhpcy53aWRnZXRzLmxlbmd0aC0xLG4pLG59LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbihlLG4pe3ZhciBpPXRoaXMuX3dyYXBXaWRnZXQobik7aS5jb2xsYXBzZWQ9ITAsdC5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0LmNhbGwodGhpcyxlLGkpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQoZSxpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5kZXhPZih0KTtpZihlPj0wKXt2YXIgbj10aGlzLmNvbGxhcHNlV2lkZ2V0c1tlXTt0LnBhcmVudD1udWxsLG4uZGlzcG9zZSgpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JSZW1vdmUoZSxudWxsKX19LGUucHJvdG90eXBlLl93cmFwV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBkKHt3aWRnZXQ6dH0pO3JldHVybiBlLmFkZENsYXNzKCJwLUFjY29yZGlvbi1jaGlsZCIpLGUuY29sbGFwc2VDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25Db2xsYXBzZUNoYW5nZSx0aGlzKSxlfSxlLnByb3RvdHlwZS5fb25Db2xsYXBzZUNoYW5nZT1mdW5jdGlvbih0KXt0LmNvbGxhcHNlZD90aGlzLl9zZWxlY3Rpb24udmFsdWU9PT10JiZ0LmNvbGxhcHNlZCYmKHRoaXMuX3NlbGVjdGlvbi52YWx1ZT1udWxsKTp0aGlzLl9zZWxlY3Rpb24udmFsdWU9dH0sZS5wcm90b3R5cGUuX29uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNWYWx1ZSxpPWUuY3VycmVudFZhbHVlO24mJihuLmNvbGxhcHNlZD0hMCxuLnJlbW92ZUNsYXNzKCJwLUFjY29yZGlvbi1jaGlsZC1hY3RpdmUiKSksaSYmKGkuY29sbGFwc2VkPSExLGkuYWRkQ2xhc3MoInAtQWNjb3JkaW9uLWNoaWxkLWFjdGl2ZSIpKX0sZX0oYS5QYW5lbCk7ZS5BY2NvcmRpb249cH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oMTEpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX2FycmF5PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyksdGhpcy5fYXJyYXk9dCx0aGlzLl9pbnNlcnRCZWhhdmlvcj1lLmluc2VydEJlaGF2aW9yfHwic2VsZWN0LWl0ZW0taWYtbmVlZGVkIix0aGlzLl9yZW1vdmVCZWhhdmlvcj1lLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LWl0ZW0tYWZ0ZXIifXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInNlbGVjdGlvbkNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JTZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleCxuPXRoaXMudmFsdWU7aWYodD09PWUpe3RoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMuX3ByZXZpb3VzVmFsdWU9bnVsbCxuIT09aSYmdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OmUscHJldmlvdXNWYWx1ZTpuLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTppfSl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbmRleD1udWxsPT09dD9udWxsOmkuQXJyYXlFeHQuZmlyc3RJbmRleE9mKHRoaXMuX2FycmF5LHQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faW5kZXh9LHNldDpmdW5jdGlvbih0KXt2YXIgZTtpZihudWxsIT09dD8oKGU9TWF0aC5mbG9vcih0KSk8MHx8ZT49dGhpcy5fYXJyYXkubGVuZ3RoKSYmKGU9bnVsbCk6ZT1udWxsLHRoaXMuX2luZGV4IT09ZSl7dmFyIG49dGhpcy5faW5kZXgsaT10aGlzLl92YWx1ZTt0aGlzLl9pbmRleD1lLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSx0aGlzLl9wcmV2aW91c1ZhbHVlPWksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNWYWx1ZTppLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImluc2VydEJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2VydEJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faW5zZXJ0QmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInJlbW92ZUJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlQmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl92YWx1ZSxpPXRoaXMuX2luZGV4LHI9dGhpcy5faW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC1pdGVtIj09PXJ8fCJzZWxlY3QtaXRlbS1pZi1uZWVkZWQiPT09ciYmbnVsbD09PWkpcmV0dXJuIHRoaXMuX2luZGV4PXQsdGhpcy5fdmFsdWU9ZSx0aGlzLl9wcmV2aW91c1ZhbHVlPW4sdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6aSxwcmV2aW91c1ZhbHVlOm4sY3VycmVudEluZGV4OnQsY3VycmVudFZhbHVlOmV9KTtpPj10JiZ0aGlzLl9pbmRleCsrfSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JNb3ZlPWZ1bmN0aW9uKHQsZSl7dGhpcy5faW5kZXg9PT10P3RoaXMuX2luZGV4PWU6dGhpcy5faW5kZXg8dCYmdGhpcy5faW5kZXg+PWU/dGhpcy5faW5kZXgrKzp0aGlzLl9pbmRleD50JiZ0aGlzLl9pbmRleDw9ZSYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleCxlPXRoaXMuX3ZhbHVlO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsbnVsbCE9PXQmJnRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVmFsdWU6ZSxjdXJyZW50SW5kZXg6dGhpcy5faW5kZXgsY3VycmVudFZhbHVlOnRoaXMuX3ZhbHVlfSl9LHQucHJvdG90eXBlLmFkanVzdFNlbGVjdGlvbkZvclJlbW92ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2luZGV4LGk9dGhpcy5fcmVtb3ZlQmVoYXZpb3I7aWYobj09PXQpe2lmKDA9PT10aGlzLl9hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1ZhbHVlOmUsY3VycmVudEluZGV4OnRoaXMuX2luZGV4LGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pO2lmKCJzZWxlY3QtaXRlbS1hZnRlciI9PT1pKXJldHVybiB0aGlzLl9pbmRleD1NYXRoLm1pbih0LHRoaXMuX2FycmF5Lmxlbmd0aC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LWl0ZW0tYmVmb3JlIj09PWkpcmV0dXJuIHRoaXMuX2luZGV4PU1hdGgubWF4KDAsdC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LXByZXZpb3VzLWl0ZW0iPT09aSlyZXR1cm4gdGhpcy5fcHJldmlvdXNWYWx1ZT90aGlzLnZhbHVlPXRoaXMuX3ByZXZpb3VzVmFsdWU6KHRoaXMuX2luZGV4PU1hdGgubWluKHQsdGhpcy5fYXJyYXkubGVuZ3RoLTEpLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy52YWx1ZX0pO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KX1lbHNlIG4+dCYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGVkVmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleDt0aGlzLl92YWx1ZT1udWxsIT09dD90aGlzLl9hcnJheVt0XTpudWxsfSx0fSgpO2UuU2VsZWN0aW9uPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTIpLHM9bigyMyksYT1uKDE2KSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse3ZhbHVlOiIiLGRpc2FibGVkOiExLHBsYWNlaG9sZGVyOiLigIsiLF9tb2RlbF9uYW1lOiJTdHJpbmdNb2RlbCJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5TdHJpbmdNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiSFRNTFZpZXciLF9tb2RlbF9uYW1lOiJIVE1MTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbCIpLHRoaXMuY29udGVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWwtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTFZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IkhUTUxNYXRoVmlldyIsX21vZGVsX25hbWU6IkhUTUxNYXRoTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1hdGhNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWxtYXRoIiksdGhpcy5jb250ZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuY29udGVudC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbG1hdGgtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLnR5cGVzZXQodGhpcy5jb250ZW50KSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTE1hdGhWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJMYWJlbFZpZXciLF9tb2RlbF9uYW1lOiJMYWJlbE1vZGVsIn0pfSxlfShjKTtlLkxhYmVsTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlc2V0KHRoaXMuZWwsdGhpcy5tb2RlbC5nZXQoInZhbHVlIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5MYWJlbFZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlRleHRhcmVhVmlldyIsX21vZGVsX25hbWU6IlRleHRhcmVhTW9kZWwiLHJvd3M6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShjKTtlLlRleHRhcmVhTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0YXJlYSIpLHRoaXMudGV4dGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLHRoaXMudGV4dGJveC5zZXRBdHRyaWJ1dGUoInJvd3MiLCI1IiksdGhpcy50ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMudGV4dGJveCksdGhpcy51cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpwbGFjZWhvbGRlciIsZnVuY3Rpb24odCxlLG4pe3RoaXMudXBkYXRlX3BsYWNlaG9sZGVyKGUpfSksdGhpcy51cGRhdGVfcGxhY2Vob2xkZXIoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYWNlaG9sZGVyPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5tb2RlbC5nZXQoInBsYWNlaG9sZGVyIiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQudG9TdHJpbmcoKSl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9dGhpcyl7dGhpcy50ZXh0Ym94LnZhbHVlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJyb3dzIik7bnVsbD09PW4mJihuPSIiKSx0aGlzLnRleHRib3guc2V0QXR0cmlidXRlKCJyb3dzIixuKSx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IHRleHRhcmVhIjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgdGV4dGFyZWEiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQudGFyZ2V0LnZhbHVlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuVGV4dGFyZWFWaWV3PXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUZXh0VmlldyIsX21vZGVsX25hbWU6IlRleHRNb2RlbCIsY29udGludW91c191cGRhdGU6ITB9KX0sZX0oYyk7ZS5UZXh0TW9kZWw9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLmlucHV0VHlwZT0idGV4dCIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsdGhpcy5pbnB1dFR5cGUpLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9YS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6cGxhY2Vob2xkZXIiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnVwZGF0ZV9wbGFjZWhvbGRlcihlKX0pLHRoaXMudXBkYXRlX3BsYWNlaG9sZGVyKCl9LGUucHJvdG90eXBlLnVwZGF0ZV9wbGFjZWhvbGRlcj1mdW5jdGlvbih0KXt0fHwodD10aGlzLm1vZGVsLmdldCgicGxhY2Vob2xkZXIiKSksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJmUudXBkYXRlZF92aWV3PT10aGlzfHwodGhpcy50ZXh0Ym94LnZhbHVlIT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSYmKHRoaXMudGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSksdGhpcy50ZXh0Ym94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueyJrZXlkb3duIGlucHV0IjoiaGFuZGxlS2V5RG93biIsImtleXByZXNzIGlucHV0IjoiaGFuZGxlS2V5cHJlc3MiLCJpbnB1dCBpbnB1dCI6ImhhbmRsZUNoYW5naW5nIiwiY2hhbmdlIGlucHV0IjoiaGFuZGxlQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS5oYW5kbGVLZXlEb3duPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LGUucHJvdG90eXBlLmhhbmRsZUtleXByZXNzPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksMTM9PXQua2V5Q29kZSYmdGhpcy5zZW5kKHtldmVudDoic3VibWl0In0pfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2luZz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLmdldCgiY29udGludW91c191cGRhdGUiKSYmdGhpcy5oYW5kbGVDaGFuZ2VkKHQpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdC50YXJnZXQudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5UZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiUGFzc3dvcmRWaWV3IixfbW9kZWxfbmFtZToiUGFzc3dvcmRNb2RlbCJ9KX0sZX0oYik7ZS5QYXNzd29yZE1vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5pbnB1dFR5cGU9InBhc3N3b3JkIixlfXJldHVybiByKGUsdCksZX0oeSk7ZS5QYXNzd29yZFZpZXc9d30sZnVuY3Rpb24odCl7dC5leHBvcnRzPXtuYW1lOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2ZXJzaW9uOiIxLjQuMiIsZGVzY3JpcHRpb246Ikp1cHl0ZXIgaW50ZXJhY3RpdmUgd2lkZ2V0cyIsYXV0aG9yOiJQcm9qZWN0IEp1cHl0ZXIiLGxpY2Vuc2U6IkJTRC0zLUNsYXVzZSIsbWFpbjoibGliL2luZGV4LmpzIix0eXBpbmdzOiJsaWIvaW5kZXguZC50cyIscmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6Imh0dHBzOi8vZ2l0aHViLmNvbS9qdXB5dGVyLXdpZGdldHMvaXB5d2lkZ2V0cy5naXQifSxmaWxlczpbImxpYi8qKi8qLmQudHMiLCJsaWIvKiovKi5qcyIsImNzcy8qLmNzcyIsImRpc3QvIl0sc2NyaXB0czp7ImNsZWFuOnNyYyI6InJpbXJhZiBsaWIiLGNsZWFuOiJucG0gcnVuIGNsZWFuOnNyYyIsImJ1aWxkOnRlc3QiOiJ0c2MgLS1wcm9qZWN0IHRlc3Qvc3JjICYmIHdlYnBhY2sgLS1jb25maWcgdGVzdC93ZWJwYWNrLmNvbmYuanMiLCJidWlsZDpzcmMiOiJ0c2MgLS1wcm9qZWN0IHNyYyIsImJ1aWxkOmNzcyI6InBvc3Rjc3MgLS11c2UgcG9zdGNzcy1pbXBvcnQgLS11c2UgcG9zdGNzcy1jc3NuZXh0IC1vIGNzcy93aWRnZXRzLmJ1aWx0LmNzcyBjc3Mvd2lkZ2V0cy5jc3MiLGJ1aWxkOiJucG0gcnVuIGJ1aWxkOnNyYyAmJiBucG0gcnVuIGJ1aWxkOmNzcyIsbGludDoidHNsaW50IC0tcHJvamVjdCB0c2xpbnQuanNvbiAtLWZvcm1hdCBzdHlsaXNoIix0ZXN0OiJucG0gcnVuIHRlc3Q6dW5pdCIsInRlc3Q6Y292ZXJhZ2UiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYgd2VicGFjayAtLWNvbmZpZyB0ZXN0L3dlYnBhY2stY292LmNvbmYuanMgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS1jb3YuY29uZi5qcyIsInRlc3Q6dW5pdCI6Im5wbSBydW4gdGVzdDp1bml0OmZpcmVmb3ggJiYgbnBtIHJ1biB0ZXN0OnVuaXQ6Y2hyb21lIiwidGVzdDp1bml0OmRlZmF1bHQiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS5jb25mLmpzIC0tbG9nLWxldmVsIGRlYnVnIiwidGVzdDp1bml0OmZpcmVmb3giOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9RmlyZWZveCIsInRlc3Q6dW5pdDpjaHJvbWUiOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9Q2hyb21lIiwidGVzdDp1bml0OmllIjoibnBtIHJ1biB0ZXN0OnVuaXQ6ZGVmYXVsdCAtLSAtLWJyb3dzZXJzPUlFIixwcmVwdWJsaXNoOiJucG0gcnVuIGNsZWFuICYmIG5wbSBydW4gYnVpbGQifSxkZXZEZXBlbmRlbmNpZXM6eyJAanVweXRlcmxhYi9zZXJ2aWNlcyI6Il4yLjAuMCB8fCBeMy4wLjAiLCJAdHlwZXMvZXhwZWN0LmpzIjoiXjAuMy4yOSIsIkB0eXBlcy9tYXRoamF4IjoiMC4wLjMxIiwiQHR5cGVzL21vY2hhIjoiXjIuMi40MSIsIkB0eXBlcy9ub2RlIjoiXjguMC4xIixjaGFpOiJeNC4wLjAiLCJjc3MtbG9hZGVyIjoiXjAuMjguNCIsImV4cGVjdC5qcyI6Il4wLjMuMSIsImZpbGUtbG9hZGVyIjoiXjAuMTEuMiIsImlzdGFuYnVsLWluc3RydW1lbnRlci1sb2FkZXIiOiJeMi4wLjAiLCJqc29uLWxvYWRlciI6Il4wLjUuNCIsa2FybWE6Il4xLjYuMCIsImthcm1hLWNocm9tZS1sYXVuY2hlciI6Il4yLjAuMCIsImthcm1hLWNvdmVyYWdlIjoiXjEuMC4wIiwia2FybWEtZmlyZWZveC1sYXVuY2hlciI6Il4xLjAuMSIsImthcm1hLWllLWxhdW5jaGVyIjoiXjEuMC4wIiwia2FybWEtbW9jaGEiOiJeMS4zLjAiLCJrYXJtYS1tb2NoYS1yZXBvcnRlciI6Il4yLjIuMyIsImthcm1hLXdlYnBhY2siOiJeMi4wLjMiLG1vY2hhOiJeMy4zLjAiLCJucG0tcnVuLWFsbCI6Il4xLjUuMSIsInBvc3Rjc3MtY2xpIjoiXjQuMS4wIiwicG9zdGNzcy1jc3NuZXh0IjoiXjMuMC4yIiwicG9zdGNzcy1pbXBvcnQiOiJeMTAuMC4wIiwicG9zdGNzcy1sb2FkZXIiOiJeMi4wLjYiLHJpbXJhZjoiXjIuNi4xIixzaW5vbjoiXjIuMS4wIiwic2lub24tY2hhaSI6Il4yLjExLjAiLCJzdHlsZS1sb2FkZXIiOiJeMC4xOC4xIix0c2xpbnQ6Il41LjguMCIsdHlwZXNjcmlwdDoifjIuOS4yIiwidXJsLWxvYWRlciI6Il4wLjUuOSIsd2VicGFjazoiXjMuNS41In0sZGVwZW5kZW5jaWVzOnsiQGp1cHl0ZXItd2lkZ2V0cy9iYXNlIjoiXjEuMi4yIiwiQHBob3NwaG9yL2FsZ29yaXRobSI6Il4xLjEuMCIsIkBwaG9zcGhvci9kb211dGlscyI6Il4xLjEuMCIsIkBwaG9zcGhvci9tZXNzYWdpbmciOiJeMS4yLjEiLCJAcGhvc3Bob3Ivc2lnbmFsaW5nIjoiXjEuMi4wIiwiQHBob3NwaG9yL3dpZGdldHMiOiJeMS4zLjAiLCJkMy1mb3JtYXQiOiJeMS4zLjAiLGpxdWVyeToiXjMuMS4xIiwianF1ZXJ5LXVpIjoiXjEuMTIuMSIsdW5kZXJzY29yZToiXjEuOC4zIn0sZ2l0SGVhZDoiN2ZkMTVjMDZmMGE2MTEzOGVhYzQ0YWMzNGQwMTQ4YmU2N2IzYWQ2ZiIsX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AanVweXRlci13aWRnZXRzL2NvbnRyb2xzLy0vY29udHJvbHMtMS40LjIudGd6IixfaW50ZWdyaXR5OiJzaGE1MTItd2o5Nk5UMW1ONCs3enpMMzRoTkhNTFlkYkRzSG0yVVh4a1FKcjdVb2xlUytVMnp6Z3ZSU2tCNmlqRDl0aTI1ZjlDWCtQblhUZU9RN2lSSEdQOERCaHc9PSIsX2Zyb206IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHNAMS40LjIifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9KG4oMzYxKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpO2UuT1VUUFVUX1dJREdFVF9WRVJTSU9OPSIxLjAuMCI7dmFyIGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIobix0KSxuLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJPdXRwdXRNb2RlbCIsX3ZpZXdfbmFtZToiT3V0cHV0VmlldyIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF92aWV3X21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTixfdmlld19tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTn0pfSxufShzLkRPTVdpZGdldE1vZGVsKTtlLk91dHB1dE1vZGVsPWE7dmFyIHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShzLkRPTVdpZGdldFZpZXcpO2UuT3V0cHV0Vmlldz11fV0pLmRlZmF1bHQpOw==", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "OK" + }, + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "ok": true, + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "status": 200, + "status_text": "OK" + } + }, + "base_uri": "https://localhost:8080/", + "height": 10364 + } + }, + "cell_type": "code", + "source": [ + "sn.fit(X, Y, 1, 0.05, True)\n", + "N = 30\n", + "plt.figure(figsize=(10, N*5))\n", + "for i in range(N):\n", + " print(sn.w, sn.b)\n", + " ax = plt.subplot(N, 1, i + 1)\n", + " plot_sn(X, Y, sn, ax)\n", + " sn.fit(X, Y, 1, 0.5, False)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e267c2f98174442891ad07b2fe313e50", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[-0.52628657 0.97691192]] [0.00162632]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "58f7fcc095e5481d9a3eb68dc5b8f7c6", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[-0.310835 0.93341255]] [0.0170269]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fbc6b62cc0de4b3789bc61351c27ba6c", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[0.01861057 0.80827491]] [0.02946666]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7ab6b8131c504e4798b79a8c8145814d", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[0.55619369 0.54704284]] [0.04645403]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cfb809796ff444e89a543bc9815c5855", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[0.72808043 0.19409988]] [0.07118515]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b6f542a3062042fba5af98d727661f91", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 0.78402127 -0.302539 ]] [0.07220534]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4d6c67424d8a48699d75225df114b972", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 0.91052391 -0.26314253]] [0.00387859]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2657b4d8f8124556babd19731e9bbeeb", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 0.96984991 -0.36567726]] [-0.06152292]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "51b48ea110dc4222b9fb724b3a6c554a", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.06840829 -0.31673824]] [-0.11582187]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "292b91343cc549eaa6d67ee0773a7a6c", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.11110475 -0.40082738]] [-0.16880671]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "39044df43d5b4da59b65f3703e82cfb8", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.18590671 -0.37009719]] [-0.21297874]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "31a178f1918d40dfaed1fbac99de0fab", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.22597951 -0.42032975]] [-0.2556137]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5f2c1138422a4387bf327378f3ffd0d2", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.28005584 -0.41549837]] [-0.29252887]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1b05fafc22084230aa054d1d1902c38b", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.31962021 -0.43945129]] [-0.3273173]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "86c7be571c1f4fcdb2c0694cae5413a0", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.36092241 -0.44792868]] [-0.35876474]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5e0797a83ca14d51aa8fce87e4a2de36", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.39729363 -0.46132544]] [-0.38801993]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9794ff3d615f469cb8697471809c719b", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.43185725 -0.47196304]] [-0.41507168]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e90c6abd5df04113a49e9aa202ad1e45", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.46403502 -0.48242413]] [-0.44027171]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ff6908015c71446bb437e88f1719ceb2", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.49430581 -0.49214722]] [-0.46380516]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cdb75e4e66034355a6d3f947ce0d011a", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.52283515 -0.50133001]] [-0.48585846]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b32ebbc971994600a0e7dedbbce7d834", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.54980974 -0.51001096]] [-0.50658586]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a196225433f746c883a0c0ca26908194", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.57538288 -0.51824158]] [-0.52612113]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5b233a9c11714d329c35d62dfc53eb60", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.59968739 -0.52606452]] [-0.54458007]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0347d773ab1b499285dbb59227c9ad1e", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.62283851 -0.53351686]] [-0.56206346]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9ed42a0aad0644c8a92186d7a4531113", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.64493683 -0.54063099]] [-0.57865941]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fbf0086846e74685b440190a4ccd5302", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.66607067 -0.54743532]] [-0.59444531]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "17cc5fc690e04f80ba455b4bb6b2f683", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.68631789 -0.55395492]] [-0.60948941]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "37655cb10b0e4a3480136edfcd529c12", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.70574752 -0.56021197]] [-0.62385214]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bad36d35dc0e4a4d9e5ae27535fc37d0", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.72442098 -0.56622624]] [-0.63758724]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b38bf95ad96643169fc1446b6a02f367", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n", + "[[ 1.74239316 -0.57201538]] [-0.65074262]\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c9e73d6f0edd424bbcbcd34776f1f2b8", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nnrB9/vz5mjNnjl599VXV19frv//7vxP2v/baa+rVq5deeeUV3XPPPfrxj3/c9ZEDAAAUmC4Fs379\n+umnP/2pevbsGd/W1NSkvXv3aujQoZKka665RuvWrUt43Lp16zRhwgRJ0qhRo7Rp06aujhsAAKDg\ndCmYRSIRBQKBhG2HDh1Sr1694rdPO+001dbWJtynrq5OJSUlJw/s98vn86mpqakrQwAAACg4wY7u\nUF1drerq6oRtDzzwgMaMGZPycZZldXjwdO6jx36uSMf38hxqYo+62KMu9qhLMmpij7rYoy7O6zCY\nVVZWqrKyssMnKikp0eHDh+O39+3bp9LS0oT7lJaWqra2VhdffLGam5tlWZaKioq6MGwAAIDC49hy\nGaFQSOedd57+/Oc/S5JWrlyZ1FUbPXq0/uu//kuStHr1al1xxRVOHR4AAMD1fFZa84mJ/vSnP2nh\nwoXauXOnSkpK1K9fPy1atEjbt2/X//7f/1stLS269NJL9Z3vfEeSdO+99+q5555TLBbT3Llz9eGH\nH6qoqEg//OEPNWDAAMdfFAAAgBt1KZgBAADAeaz8DwAAYAiCGQAAgCE6/FZmLmzYsEEzZ87U448/\nrmuuuUbSycs7Pfroo5KkQYMG6fvf/37CY5qbm/XII4/oo48+UiAQ0BNPPKEzzzwz10PPieeee05r\n166VJLW0tKiurk4rVqyI79+zZ49uuukmDR48WJLUt29fPfPMM3kZay4tW7ZMTz/9tM466yxJJxct\nvvfeexPus3z5cr344ovy+/362te+ltY3jN0uGo3qu9/9rnbv3q1YLKbZs2drxIgRCfcpLy9PuHLH\n4sWLk9YmLBSPP/64Nm/eLJ/Ppzlz5sQXwZaktWvX6qmnnlIgEFBFRYVmzJiRx5Hm1pNPPqm3335b\n0WhUd999t6699tr4vnHjxql///7x90RVVZXKysryNdScWb9+vWbOnKkLL7xQknTRRRfpe9/7Xny/\nF98v1dXVWr58efz2e++9p3feeSd+20ufJads27ZN9913n/75n/9Z06ZN08cff6zZs2crFoupX79+\n+rd/+7ekFSdSfQ4lsfJs165d1j333GPdd9991qpVq+Lbp02bZm3evNmyLMv613/9V+tPf/pTwuOW\nLVtmPfroo5ZlWdYbb7xhzZw5M3eDzqNly5ZZCxYsSNhWU1Nj3XLLLXkaUf785je/sX74wx+2u//4\n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\nGxtRWFjYvmGvFx6PB2fPns1mF4iIiKiTrl002XXuolkR0ID0LpoMej34v6KiAhUVFSm3LVu2DDNn\nzuzx9zK5bm1G17Z9/FcI9v5TrsOaiLEuYqyLGOuSjjURs2NdzDi7T++6WH1GomLx9oEMalBWVoay\nsrJeH6iwsBAnT55Mfn/06FEUFRWl/ExRUREaGhrwla98BbFYDKqqIicnJ4vdJiIiInKerM/K7EpR\nFIwePRp/+tOfAABbt25N66qFQiH8/ve/BwBs27YNV1xxhV6bJyIiIrK9rNbKrKysxJo1a1BTU4PC\nwkIMHjwYL730Ej777DP8+Mc/RltbGyZPnoyHHnoIAHDXXXfh+eefRyKRwCOPPIK//e1vyMnJwU9/\n+lMMGzZM9z+KiIiIyI7kX8SciIiIyCV0G2USERERUf8wmBERERFJwuozUwG0L+90//3344knnsDV\nV18NoH15p0cffRQAcOmll+Kxxx5L+Z1YLIYf/vCHOHLkCHw+H5588klceOGFZu+6KZ5//nls374d\nANDW1obGxkZs2bIlef+hQ4dw4403YsKECQCAgoICPPPMM5bsq5k2btyIp59+GiNHjgTQftHiu+66\nK+VnNm3ahFdffRVerxe33nprRmcY2108HsePfvQjHDx4EIlEAg888ACmTZuW8jPjx49PWbnjlVde\nSbs2oVM88cQT2LNnDzweDx5++OHkRbABYPv27fj5z38On8+HkpIS3HPPPRbuqbmeeuop/PnPf0Y8\nHscdd9yBuXPnJu+bPXs2hg4dmnxOrFq1CkOGDLFqV02zY8cO3H///bjkkksAAOPGjcO//du/Je93\n4/OloqICmzZtSn6/d+9e7N69O/m9m95LNNXV1bj77rvxrW99C+Xl5fj73/+OBx54AIlEAoMHD8Z/\n/Md/pF1xoqf3oTSqxWpra9U777xTvfvuu9X33nsveXt5ebm6Z88eVVVV9V//9V/VysrKlN/buHGj\n+uijj6qqqqrvv/++ev/995u30xbauHGjunr16pTb6urq1JtuusmiPbLOG2+8of70pz/t9v7Tp0+r\nc+fOVZuamtRoNKrecMMN6okTJ0zcQ2ts2LBBXbFihaqqqlpdXa3efPPNaT/z1a9+1eS9ssaOHTvU\npUuXqqqqqp999pl66623ptx//fXXq0eOHFETiYS6aNEi9dNPP7ViN00XiUTU73znO6qqqurx48fV\nWbNmpdx/9dVXqy0tLRbsmbU++OADddmyZd3e79bni2bHjh3Jz12NW95LNKdPn1bLy8vVRx55RF27\ndq2qqqr6wx/+UN28ebOqqqr6s5/9TH3ttddSfqe396GuLB9lcnmnzMXjcaxbtw7l5eVW74ot7Nmz\nBxMnTkReXh4CgQCmTp3qiufJ/Pnzk2dEd72+oNtEIhFce+21AIAxY8bg1KlTaGlpAQDU1dVh4MCB\nGDZsGLxeL2bNmpX2PuNU06dPx9NPPw0AyM/PRzQaRSKRsHiv5Obm54vmueeew9133231blgqJycH\nq1evTrlO644dO3DNNdcA6D6vdPc+JGJ5MOPyTpnbunUrrrrqKgQCgbT7Ghsbcd9992HhwoUpbWen\n27lzJ5YsWYJvfvOb+OSTT1Lu6/wcAdpDStfnkRMpioIBAwYAAF599VV8/etfT/uZs2fPYvny5Vi4\ncCFefvlls3fRNI2NjSgoKEh+3/k50NDQ4MrnBwD4fD6cd955AIANGzagpKQk7X14xYoVWLRoEVat\nWpXZKi0O8dlnn+HOO+/EokWLEA53LNHj5ucLAHz00UcYNmwYBg8enHK7W95LNH6/P+0zOBqNJkeX\n3eWV7t6HhNvQcX97ZfnyTjbQU43eeOONtGPtAGDQoEG4//77MX/+fDQ3N6OsrAwzZsxIW3nBzkR1\nueGGG7Bs2TKUlpZi9+7dePDBB/Hb3/6228dwynOks56eL6+99hr27duHF154Ie33HnjgAcyfPx8e\njwfl5eWYNm0aJk6caNZuW8aJz4H+ePfdd7Fhwwa89NJLKbffd999mDlzJgYOHIh77rkHW7Zswde+\n9jWL9tI8F110Ee69915cf/31qKurw+23346tW7dyhRq0B/ibbrop7Xa3vpd0R4+8Ymow4/JOveuu\nRmfOnMEXX3yBESNGpN2Xm5uLm2++GUB77SZMmICamhpHBbPenjtTpkzB8ePHkUgkkv/nX1RUhMbG\nxuTP1NfX4/LLLzd8X83UXV0qKirw3nvv4Ze//CUUJX31t0WLFiW/njFjBqqrqx35Zip6Dmj/x9/1\nPtH7jJO9//77eOGFF/Cf//mfKYeSAMA3vvGN5NclJSWorq52RTAbMmQI5s2bBwAYOXIkvvSlL+Ho\n0aO48MILXf982bFjBx555JG0293yXtKT8847D62trQgEAt3mle7eh0QsH2WKcHmndPv378fo0aOF\n933wwQd48sknAbQHuP379+Piiy82c/cssXr1arzzzjsA2s+SKSwsTBnHTJ48GR9//DGamppw+vRp\n7Nq1K+3sRCeqq6vD66+/jmeffTY50uyspqYGy5cvh6qqiMfj2LVrV/IsNKcJhULJM5j37duHoqIi\n5ObmAgBGjBiBlpYWHDp0CPF4HNu2bUMoFLJyd03T3NyMp556Cr/61a8waNCgtPuWLFmSPDTkww8/\ndOzzo6tNmzZhzZo1ANpHl8eOHUuejerm58vRo0dx/vnnpzU/3PRe0pMrr7wy+T7TXV7p7n1IxPLL\nZXRe3mnfvn1Yu3YtXnrpJTz88MMpyztdeeWVADqWd5o3bx62b9+ORYsWJZd3crKuxzcAwMqVK3H7\n7bdj2rRpeOutt7BgwQIkEgksXbrUFae233jjjfjBD36A119/HfF4HCtXrgQAvPjii5g+fTqmTJmC\n5cuXY8mSJfB4PLjnnnvSOgNOVFFRgZMnT2Lp0qXJ29asWYNXXnklWZehQ4filltugdfrxezZs3s+\nddvGpk6divHjx2PhwoXweDxYsWIFNm7ciLy8PMyZMwePPvooli9fDgCYN2+eK/6HBgA2b96MEydO\n4Lvf/W7ytiuuuAKXXnop5syZg5KSEixYsAADBgzAZZdd5opuGdB+mZDvf//7+J//+R/EYjE8+uij\neOedd1z/fOn6+dP5PdYt7yWavXv34t///d9x+PBh+P1+bNmyBatWrcIPf/hDrF+/HsOHD092nL/3\nve/hySefFL4P9YRLMhERERFJQspRJhEREZEbMZgRERERSYLBjIiIiEgSDGZEREREkmAwIyIiIpIE\ngxkRERGRJBjMiIiIiCTBYEZEREQkCQYzIiIiIkkwmBERERFJgsGMiIiISBIMZkRERESSYDAjIiIi\nkgSDGREREZEkGMyIiIiIJMFgRkRERCQJBjMiIiIiSTCYEREREUmCwYyIiIhIEgxmRERERJJgMCMi\nIiKSBIMZERERkSQYzIiIiIgkwWBGREREJAkGMyIiIiJJ9CuYVVdX49prr8VvfvMbAMDf//53LF68\nGLfddhvuv/9+nD17Nu13nnjiCSxYsAALFy7ERx991J/NExERETlK1sHszJkz+MlPfoLi4uLkbc88\n8wxuu+02/Nd//RdGjRqFDRs2pPzOzp07UVtbi/Xr12PlypVYuXJl9ntORERE5DBZB7OcnBysXr0a\nRUVFydt27NiBa665BgBw9dVXIxKJpPxOJBLBtddeCwAYM2YMTp06hZaWlmx3gYiIiMhRsg5mfr8f\ngUAg5bZoNIqcnBwAwAUXXICGhoaU+xsbG1FQUJD8vrCwMO1niIiIiNzKb9QDq6qqz888shQeIUVV\n5AAAIABJREFUePTYJXKaaBUwvcTqvQACVcBY4/ZDHV7V/kWhMdvYW18FD4yvY1Vt+99RGJTgv1kP\n3j7Qvp9jCuTeTyKS0+Ozf9Wv39c1mJ133nlobW1FIBDA0aNHU8acAFBUVITGxsbk9/X19Rg8eHCP\nj+mBB9HWmJ67aXvBgMKaAFDibUCkErHLQwCAYFBBNGp+XRSlDThQidjIkDEb+LwY/lFhoL4Ssby+\nb6O3uiTibQAqEYsbtP/nTB9SjMiRsCX/jUS6q8vckcXYXBNGqwtfY4GA4sq/uzesixjrYgxdL5dx\n5ZVXYsuWLQCArVu3YubMmSn3h0Kh5P379u1DUVERcnNz9dwFcpGYYmyQyFSsyfj9iNcat41xBebV\nsXh4CM2JsGnby9a80SHUNsu/n0TkPFkHs71792Lx4sV488038etf/xqLFy/Gvffei7feegu33XYb\nTp48iW984xsAgO9973tobW3F1KlTMX78eCxcuBCPP/44VqxYodsfQu4UU0JQ/mL9B2isKQTloPH7\noRgUFsYVhKD4zaujHcIZAIYzIjKdR83kQC8rPXIHx3ZdcJSZSom1f3j6i0stHZMp+e37YdhIE2gf\naQJ9GmlmOuKtPnHusQ0eaQJA5EgYeT5rO56Z1GVzTXtNRmUxQrYjjqbEWBcx1kVs1byX+vX7vPI/\n2R5HmvrgSDPdvNFyPLeIyD0YzMgRYkoI+LDK6t3gSLOP7BDOAI40icg8DGbkKDIcbwbA0HBmZNdM\nY0Y4Kx5uj24Uu2ZEZCYGM3IOSa6PZdZI08iumZns0DXjWZpEZBYGM3IUnqWpD7NGmlrXzA7hDOBI\nk4iMx2BGjiRDOAM40swER5pERB0YzMhx3HaWJkea5uFIk4iMxmBGjuWGrllyGwaGBY400zGcEZFR\nGMzIkbSumdXhTOua2XWkqXXNONLswJEmERmJwYwciyNNfXCkmY4jTSIyCoMZOZ7VXTMNR5q940iT\niNyOwYwcjSNNfXCkmY4jTSIyAoMZOR5HmvrgSFOMXTMi0hODGbmG1V0zDUeavbPLSFPrmjGcEZFe\nGMzIFTjS1AdHmuk40iQiPTGYkWu4aaQJGLtck5lk75pp2DUjIj0wmJHrWN0105jRNXPKSFN2HGkS\nkV4YzMhV3NQ1c9JI0w5dM440iUgPDGbkOjElJEXXLNYUMuVEAByvMuRhOdIUY9eMiPqDwYxcS4Zw\nBnCkmQmONInILfx6PlhFRQU2bdqU/H7v3r3YvXt38vvx48dj6tSpye9feeUV+Hw+PXeBKCMxJQQl\nZv2HZ6wpBCXf2P3wHCkBiioNeexxBSFUnwhD8YcRixsbnoqHhxA5EkaeT+6QNm90CJtrrH9uEZE9\n6RrMysrKUFZWBgDYuXMnfve736Xcn5ubi7Vr1+q5SaKsaSPN2OXWftBrI83YSGP3Q2kOI5an/za0\ncGaW5oT84Qxo75qNMqDeRORsho0yn3vuOdx9991GPTyRbjjS1AdHmh14IgARZcuQYPbRRx9h2LBh\nGDx4cMrtZ8+exfLly7Fw4UK8/PLLRmyaqE94lqY+zDwRwE5nafJYMyLqK11HmZoNGzbgpptuSrv9\ngQcewPz58+HxeFBeXo5p06Zh4sSJvT5eMKAYsZu2xpqIZVWXQCn8e6uA6SX671BfxErhP1wFjNV/\nP4LB9rqofi/80QhQqP82JgdLsbe+Ch4YX0e/z4soIigM9m9bWl2M4vd7cTgawZgCi59bfRDge4sQ\n6yLGuujPkGC2Y8cOPPLII2m3L1q0KPn1jBkzUF1dnVEwi7bGdN0/uwsGFNZEoD91UeJtQKTS8uPN\nFKUNOFCp6/FmwaCCaPRcXT4vhn9UGKivNOR4s0S8DUCl4ScCTB9SjMiRcMfflYWUuhhk7shibK4J\no9Umr9dAQLHNvpqJdRFjXYyh+yjz6NGjOP/885GTk5Nye01NDZYvXw5VVRGPx7Fr1y5ccsklem+e\nKCscaeqD1zZLx5EmEfWF7sGsoaEBhYWFye9ffPFF7N69G6NHj8bQoUNxyy23YNGiRZg1axYmTZqk\n9+aJ+kWGEwHMuvCskWtpmnkigB3CGcBrmxFRZjyqqqpW70SPHrmDY7suOMoU06Mu2rXNLB9pnru2\nmR4jze5Gdv5Rxlw+A0Dy8hlGjzQBZH1tMzNGmZ1trpH/8hkcTYmxLmKsi9iqeS/16/d55X+iTtw2\n0jSya2YmO3TNONIkokwwmBEJyDDSBIy9tllyGxxpmorhjIh6wmBG1IXWNbM6nGldMzMuPGskXni2\nAy88S0S9YTAjEuBIUx8caYqxa0ZE3WEwI+qB1V0zjZ1HmoC5XTPZw5nWNWM4IyIRBjOibnCkqQ+t\na8aRZgeONImoOwxmRD3gSFMfHGmm41maRCTCYEaUAau7ZhqONHtnl5GmhuGMiDpjMCPqBUea+uBI\nMx1HmkTUFYMZUQY40tQHR5pi7JoRkYbBjKgPrO6aaTjS7J1dRpo8S5OIOmMwI8qQbF0zjjR7x5Em\nEdkNgxlRH8SUkBRdMzNGmoCxyzWZSfaumYZdMyJiMCPKggzhDDCna+aUkabsONIkIoDBjKjPZBtp\nGslJI007dM040iQiBjOiLMg00rTziQAcaYqxa0bkXgxmRP0gQzgDONLMBEeaRGQHDGZEWeJIUx9m\nds040iQi2TGYEfUDR5r6GFcQMqVrprFDOAPYNSNyI12D2Y4dOzBjxgwsXrwYixcvxk9+8pOU+7dv\n345bbrkFCxYswHPPPafnpoksJUM4AzjSzISZI82cplZMXr0bVz1ahWn/eydyDzVl/LvsmhG5k1/v\nB/zqV7+KZ555Rnjf448/jjVr1mDIkCEoLy/Hddddh7Fjx+q9C0SmiikhKDHrg1msKQQl39j9iNeG\n4B9lXNes+oQ5dSweHsKHR6sQRLFh2xhUcwKlD1Wi4K8nk7eN2fI5Ig8U4+DVF2X0GPNGh7C5JoxR\neQxpRG5h2iizrq4OAwcOxLBhw+D1ejFr1ixEIhGzNk9kKI409eGkkeblv9qdEsoA4LxjrZj80h6g\nTe3TY3GkSeQeugezzz77DHfeeScWLVqEcLjjzaShoQGFhYXJ7wsLC9HQ0KD35oksJUM4AzjSzETJ\nqBLDHtsTb0PR3nrhfYXVxzFk9xcZPxZHmkTuouso86KLLsK9996L66+/HnV1dbj99tuxdetW5OTk\n9OtxgwFFpz10DtZEzNK6BEqBaBX8QYv/28RKgUDqfgT13qf6UqjDjflbJwdLsbe+Cn6/8XX0+7yI\nIoLCoL4hzRtLwOPxCO/zqEBA8ffpv8nN40vx9oEqjCkwLkxqAnxvEWJdxFgX/ekazIYMGYJ58+YB\nAEaOHIkvfelLOHr0KC688EIUFRWhsbEx+bNHjx5FUVFRRo8bbY3puZu2FwworImADHVR4m1ApBKx\nyy3uckSLoRyoRGxkCMGggmhU/7r4421AfSViBhz/NCavGNUnKhGLG1fHYEDB9CHFiBwJo76lEnk+\nfbdVf9mXcFH9wbTbj19SgIPjL4Dax/8m8XgbDjRUGnq8WSCgoJXvLWlYFzHWxRi6jjI3bdqENWvW\nAGgfXR47dgxDhgwBAIwYMQItLS04dOgQ4vE4tm3bhlCILXpyFu3aZm4aaRrJzmdp/uU7U3ByVH7K\nbWcKAvjoW5Oh+vr+1suRJpE7eFRV7dtRqD1oaWnB97//fTQ1NSEWi+Hee+/FsWPHkJeXhzlz5uDD\nDz/EqlWrAABz587FkiVLen/QR+6wvAsiGxk6QzKSqS5KLGx91wyAkh+G/9JSQzpmGv+osCFdMwCo\nPhE2rGvW+fkSOdIeAPXumg04HsX41z9B7pFmtA4K4MBNl+LUmIJ+PaaRZ2myAyLGuoixLmKr5r3U\nr9/XNZgZgsEsjUwBRCYy1UW7fIbV4UzJD7cfR/Vl4y4LoV0+w27hrOvzxahwprfNNe37aUQ44wet\nGOsixrqI9TeY8cr/RAaQZaSpLdfEkWbv7LaWJhE5E4MZkUFkWUsTrcafyRevDRl6bTMzcbkmIrIS\ngxmRwazummnsfOFZwNyumezhTOuaMZwROQ+DGZGBONLUh9Y140izA0eaRM7EYEZkMFlGmlo4MxJH\nmuZj14zIWRjMiExidddMw5Fm7zjSJCKrMJgRmYAjTX1wpJmOI00iZ2EwIzKJm0aagHFdM440xdg1\nI3IGBjMik1ndNdOY0TVzykhTdhxpEjkHgxmRidzUNXPSSNMOXTOONImcgcGMyGQxJSRF1yzWFLL1\niQAcaYqxa0ZkbwxmRBaRIZwBHGlmgiNNIjILgxmRBTjS1AdHmuk40iSyNwYzIotwpKkPjjTF2DUj\nsicGMyKLyRDOAI40M8GRJhEZjcGMyEIcaerDzK4ZR5pEZCQGMyKLcaSpj3EFIVO6Zho7hDOAXTMi\nu2EwI5KEDOEM4EgzE3YbaRKRfTCYEUmAI019cKSZbt7oELtmRDbCYEYkERm6Zhxp9o0dwhnQ+0jz\nbCKGY2dOIpaIm7RHRCTi1/sBn3rqKfz5z39GPB7HHXfcgblz5ybvmz17NoYOHQqfzwcAWLVqFYYM\nGaL3LhDZUkwJQYmFofwljNjl1nfQlINhxEYasx/x2hD8o4wNNIo/jFjc2DoWDw8hckT+YDZvdAib\na8T7GW9L4L3aD/DXU4fQEjuD/JxcXFIwCrMunA6Px2PynhKRrsHsgw8+wKeffor169fjxIkTuOmm\nm1KCGQCsXr0a559/vp6bJXIMLZxZLdYUgpJv7H7Ea0NQRoURy9M/PI0rCKH6hLldszyf9WG6J1o4\nG9Wl3v9TG8Hexk+T3zedbcGfj+6D1+NFyYXTzN5NItfTdZQ5ffp0PP300wCA/Px8RKNRJBIJPTdB\n5AoyjDQBY08ESG7D5iNN7UQAO440W+P/QM3JOuHPfXaiFom2NrN2i4jO0bVj5vP5cN555wEANmzY\ngJKSkuTYUrNixQocPnwY//zP/4zly5dn1CoPBhQ9d9MRWBMxR9QlUApEq+DfGwGml+jykMFgFnWJ\nlQKBKvgPR4Cx+uxHmvpSqMOr4M9m/zLga/bC54/AA/H+6/V8mT26FFW1VdnV2UQ3jy/F2weqEDj3\ndzc2HceZeKvwZ0/Ho4C/DYGcAWbuorQCTnhvMQDroj/djzEDgHfffRcbNmzASy+9lHL7fffdh5kz\nZ2LgwIG45557sGXLFnzta1/r9fGirTEjdtO2ggGFNRFwVF08xVBiYcSi/f97gkEF0WwfJ1oMJV+f\n/ejW58XwxysNGWmOyStG9YkwYvH0/df7+RJPtKG+pVL6kebckcXYXFOJUXkh5HrPx/lKEKdj0bSf\ny1XOA+JetLY55DXVD4GAglanvLfoiHUxhu5nZb7//vt44YUXsHr1auTl5aXc941vfAMXXHAB/H4/\nSkpKUF1drffmiRyFI02dHpsjzTS1zWEE/AMwZuBI4f2XFIyCz8sT94nMpuurrrm5GU899RR+9atf\nYdCgQWn3LVmyBGfPngUAfPjhh7jkkkv03DyRo2jXNrM6nGnXNjPjwrNG0K5txgvPduh84dnZo2bg\n8sH/hPycXPg8XgwakI+vDpuE0JenWriHRO6l6yhz8+bNOHHiBL773e8mb7viiitw6aWXYs6cOSgp\nKcGCBQswYMAAXHbZZRmNMYncjGdp6oNnaYrVNrefpXnNRTNQkpiGNl8cvjYFfq+v918mIkN4VFVV\nrd6JHj1yh3OOG9KJo46l0pFT66IFs2yvbdavY8w678e5YGbUtc0AJK9tZkQ404KZdm0zI58v2rXN\nZA9n2rXNtEto8JghMdZFjHURWzXvpd5/qAc8gIBIchxp6oMjzXRcS5NIPgxmRDbgtrU0jby2mZns\ndCIAEcmBwYzIRqzumml4lmbv7NY1YzgjkgODGZFNcKSpD61rpqLKsG1oioeHbNE140iTSB4MZkQ2\n4qaRJmDsck1mskM4A4DPTxgfVomoZwxmRDI7fQb+P4SR8+u3kPPrt+D/Qxg4Hbe8a6Yxo2vGkaY5\nONIkkgODGZGsYjEMePNdKB9Vw9dwAr6GE1A+qob3nVNAzPrFpc06EcAoE4ra1880K5zZoWv2/11q\n0JqoRJQxBjMiSfl3/V94jx5Lu9179BjUvQOl6JrFmkK2PhGAI00xds2IrMNgRiQpz7ET3d/X2H6f\nDOEM4EgzExxpElEmGMyIJKXm5PR4n5tOBDDjLE0z2GWkybM0iazDYEYkqcSEsVBzlLTb1RwFiQlj\nAZxbS1OCrpkTRppmdM00dghnALtmRFZgMCOSlDp0MGJXTUVb7nnJ29pyz0PsqqlQhw5O+VkZwhnA\nkWYmONIkop4wmBFJLDHlMvzjWzfh7DUzcPaaGfjHt25CYsplKT/DkaY+ONJMx5EmkfkYzIhkNyAH\nicv/CYnL/wkYID7ujCNNfXCkKcauGZF5GMyIHESGcAZwpJkJu400icgcDGZEDsGRpj54bbN080aH\n2DUjMgmDGZHDuKFrltyGzUeaWtfMDuEM4EiTyAwMZkQOonXNrA5nWtfMjJGmkTjS7MCRJpE5GMyI\nHMZtI00u12QejjSJjKd7MHviiSewYMECLFy4EB999FHKfdu3b8ctt9yCBQsW4LnnntN700TUidVd\nMw1Hmr3jSJOINLoGs507d6K2thbr16/HypUrsXLlypT7H3/8cfziF7/AunXrEA6H8dlnn+m5eSI6\nhyNNfXGk2YEjTSJj6RrMIpEIrr32WgDAmDFjcOrUKbS0tAAA6urqMHDgQAwbNgxerxezZs1CJBLR\nc/NE1AlHmvrgSDMdR5pExtE1mDU2NqKgoCD5fWFhIRoaGgAADQ0NKCwsFN5HRAb6sMrqPQBg75Em\nYG7XzA7hDOBIk8gIfiMfXFVVXR4nGEhfyNntWBMx1qWLQCkQrUJwbwSYXmLdfsRKgUAV/IcjwFiD\n9qO+FOrwKviDmT8Hghn+7ORgKfbWV8Hnj8ADY+s4e3QpqmqrMt43vWW63ZvHl+LtA1UIuOQ155a/\ns69YF/3pGsyKiorQ2NiY/L6+vh6DBw8W3nf06FEUFRVl9LjR1pieu2l7wYDCmgiwLmLBYAnizZWI\nRS2uTbQYSn7Y2P34vBj+eCVieb2PH4NBBdE+7MuYvGJUnwgjFje+jvFEG+pbKpHnM3eM2teaxONt\nONBQiVEZ1NvOAgEFrXxvScO6GEPXUWYoFMKWLVsAAPv27UNRURFyc3MBACNGjEBLSwsOHTqEeDyO\nbdu2IRRy9ouZSCZWnwig4Uizd3YZaWonAnCkSaQfXYPZ1KlTMX78eCxcuBCPP/44VqxYgY0bN+IP\nf/gDAODRRx/F8uXL8S//8i+YN28eLr74Yj03T0Td4Fma+tBOBOBZmh14liaRvnQ/xuz73/9+yvdf\n+cpXkl9Pnz4d69ev13uTRJSBmBKCErO+sxFrCkHJN6drlslIs6/GFYRQfcK8OjYnwqaPNLNR2xx2\n/EiTyAy88j+Ry1jdNdOY0TVzykhTdhxpEumHwYzIRTjS1IfZI03ZjzUDONIk0guDGZHLuOnCs4Cx\nyzWZyQ7hDDC2a6aqKuqa/o6P6w+g5expw7ZDZCUGMyKXsrprpuFIs3ccaQLHzpzA+v2/w4YDW7C1\ndjt+vW8T/qc2otv1MolkwWBG5EJu6pqZMdI0g5tHmqqqYuvftuNwy1G0oT2IReOt+Ev9fuz8+0e6\nb4/ISgxmRC4VU0JSdM1iTSFbX9tsXEHIlK6Zxg7hDNC3a/bXU4fw99P1wvs+P1mn23aIZMBgRuRy\nMoQzgCPNTLh1pHmytQndDSxb4//QZRtEsmAwI3IxjjT1wZFmOj1HmqMGDkeOV7wm46BAvm7bIZIB\ngxmRy3GkqQ+ONMX06JpdECzAmIKRabcHfDmYPPjSfj8+kUwYzIgIAEeaeuFIs4OeXbPrLroK04dO\nwOBgAfJyzseo/OGYe/FVwsBGZGcMZkTEkaZOONJMN290SJeumc/rRcmF03H7hG9g6eRbccul1+GS\nglE67CGRXBjMiAiA+0aaOF5lyMNypCnG5ZqIMsNgRkQpZAhngH2Xa9JwpNmByzURZY7BjIiS3DTS\n9Bwp4XJNJtJrpEnkdAxmRJTGDV2z5DZsfpam1jWzQzgDONIk6g2DGRGl0LpmVoczrWvGkWbvONIk\ncg4GMyJK46aRZrw2xJGmiTjSJOoZgxkRdcvqrpnGziNNwNyumR3CGcCRJlF3GMyISIgjTX1oXTOO\nNDtwpEnUPQYzIuoWR5r64EgzHUeaRGK6BbN4PI4HH3wQixYtwq233oo//elPaT8zfvx4LF68OPlP\nIpHQa/NEZCCru2YajjR7x5Emkb3pFszefvttBINBrFu3DitXrsRPf/rTtJ/Jzc3F2rVrk//4fD69\nNk9EBuFIUx8caabjSJMonW7BbP78+XjooYcAAIWFhTh58qReD01EFuNIUx8caYqxa0bUwa/XAymK\nkvz61Vdfxde//vW0nzl79iyWL1+Ow4cP47rrrsO3v/3tjB47GFB6/yGXYU3EWBcxXeqieuHfGwGm\nl/T/sfrD54X/cAQY2//9CAbFdVH9XvijEaBQ/7/V1+yFzx+BB8bWcfboUlTVVnX7N3anrz/fXzeP\nL8XbB6pwOBrBmAKLn1s9CPC9RYh10V9WwayiogIVFRUpty1btgwzZ87Ea6+9hn379uGFF15I+70H\nHngA8+fPh8fjQXl5OaZNm4aJEyf2ur1oayyb3XSsYEBhTQRYFzHd6uIphhILIxa1uMbRYij5YeBA\nJWIjs+9ABYMKot39LZ8Xwz/KmL91TF4xqk+EAVQiFje2gzZ9SDEiRyqR58tsOz3WxEBzRxZjc00Y\nrZK+fgMBRdp9sxLrYoysgllZWRnKysrSbq+oqMB7772HX/7ylykdNM2iRYuSX8+YMQPV1dUZBTMi\nkkNMCUH5Sxixy60dbcaaQu3hzGBKcxixPP3/1nEFoXPhzBzNiXDG4cxKtc1hjDKg3kR2otsxZnV1\ndXj99dfx7LPPYsCAAWn319TUYPny5VBVFfF4HLt27cIll1yi1+aJyERWnwigMeNEAKecpSk77UQA\nHm9GbqdbMKuoqMDJkyexdOnS5OUwzp49ixdffBG7d+/G6NGjMXToUNxyyy1YtGgRZs2ahUmTJum1\neSIyiWwnAvAszd4VDw/Z4kQAnqVJBHhUVVWt3okePXIHjxvqgsdSibEuYkbVRYlZP9IEACU/nNWx\nZpkeT+Uf1R5ojBhpAkD1ibDhx5oBQORI+9/R00jTqmPMOttc076fMo00eSyVGOsitmreS/36fV75\nn4iyxpGmPjjS7MCuGbkdgxkRZUW2kaaRzBhpmsFOI00ea0ZuxWBGRFnTztK0WqwpZOvlmsYVhEzp\nmmnsEM4AnghA7sRgRkT9JkM4AzjSzITdRpoMZ+Q2DGZE1C8caeqDI810PN6M3IjBjIj6jSNNfXCk\nKcauGbkJgxkR6UaGcAZwpJkJu400idyCwYyIUqkq0HwaONPap1/jSFPsbCKB2lPNaDmb2fWezBxp\nAvbomvEsTXITBjMiSvJ+Wouc1zcjsOYNBNZsQM7GrfA0HM/49znS7KCqKlaGd+OKl9/CpNVvYOqa\njbjnd2G0xuO9Pq5ZI02ta2aHcAZwpEnuwGBGRAAAzxeNUN7dDt+RengSCXjOxuD762Eom/8IxHoP\nE53JEM4Aa5drWvXBR/hp+C+oPt6EeJuKw81n8MrH1bj395nvE0eaHTjSJLdgMCMiAIBvzwF4BeNL\nX+NJ+Pbsz/hx3DbSFHXNVFXFxgN/Q5vgd35fcwhHmk/3+tgcaabjSJPcgMGMiAAA3pbuw4KnqaXP\nj+eGrllyG13CQjSewJHmM8KfPdF6Fn85mvl42Myu2fFoleHb0gPDGTkZgxkRAQDacs/r9j417/w+\nPZbWNbM6nGldM7NHmkG/D8Nyg8KfLwjkYHJRQUaPrXXNONLswJEmOR2DGREBABKTLkVbcED67RcM\nQuLyr/T58dw80vR4PLjp0ovgEfzsnItH4Mv5uRk/Nkea6TjSJCdjMCMiAIA6bDBi116JxLDBUL0e\nqIofiVHDEbt+JqAoWT+u1V0zjdkjzQeKJ+MHMyZh7KB8eAAMOz+IxRPH4pdfyy5omdE1KxlVAsAe\n4QzgSJOcyaOqqmr1TvTokTsQbc3s+j9uEQworIkA6yLW57qoKjxNLVB9PqCH8WamlFj7h2fscms7\naEr+uf0Y2b4fwaCCaFTf54t/VBixvNS/szUex6Gm0yg6P4j8ATlZP3b1iXP7HzeujtpzJXIkjDyf\nHB3PnmyuCWNUnvH7GQgoaOV7SxrWRWzVvJf69fvsmBFRKo8H6sA8XUIZ4O6RJgAE/H6MLRzYr1AG\ncKTZHXbNyGkYzIjIFG4daer+2LzwbJJ2IgDDGTkJgxkRGc7tZ2nqhWdppuNZmuQ0ugWzjRs3Ytas\nWVi8eDEWL16M559/Pu1nNm3ahJtvvhllZWWoqKjQa9NEZANuGmkCxnXNONIUY9eMnELXjtm8efOw\ndu1arF27FnfddVfKfWfOnMFzzz2HV155BWvXrsWrr76KkydP6rl5IrIBq7tmSZ8ZdzFVrWvmlJGm\n7DjSJCcxbZS5Z88eTJw4EXl5eQgEApg6dSp27dpl1uaJSAKydc040uxd8fCQLbpmHGmSU+gazHbu\n3IklS5bgm9/8Jj755JOU+xobG1FYWJj8vrCwEA0NDXpunohsIKaE5OiatZaYshmONM3FrhnZnT+b\nX6qoqEg7RuyGG27AsmXLUFpait27d+PBBx/Eb3/7224foy+XTwsGsr+4pVOxJmKsi5h0dVG98O+N\nANPNCUfd8fu88B+OAGMN2o/6UqjDq+CPRoBC/bfha/bC54/AA/0eW/RcmT26FFW1VQgGJXsedXHz\n+FK8faAKh6MRjCnQt94B2V5DkmBd9JdVMCsrK0NZWVm390+ZMgXHjx9HIpGAz+cDABRuqDH3AAAg\nAElEQVQVFaGxsTH5M/X19bj88ssz2h4vGpqKF1IVY13EpKyLpxhKLIyYzhd47YtgUEH0RDGUfIP3\n4/Pi9gvPGrCNMXnF5y48W6nLhWd7eq5MH1KMyJFK6S88O3dkMTbXhHW98CkvpCrGuhhDt1Hm6tWr\n8c477wAAqqurUVhYmAxlADB58mR8/PHHaGpqwunTp7Fr1y5MmzZNr80Tkc3IMtKMNYVsfW0zjjTF\nONIku9ItmN14441Yv349ysvL8eMf/xgrV64EALz44ovYvXs3AoEAli9fjiVLluDb3/427rnnHuTl\n5em1eSKyKRnCGWDOiQA8S9McPBGA7IxrZdqQlKMpCbAuYrLXRYmFLVlHs+tamUp+OLmOplFEa2nq\npfpEuN/jzEyfK25bS5MjOzHWRYxrZRKRrXGkqY9xBSFTumYajjSJjMFgRkRSkCGcARxpZoIjTSLj\nMJgRkeVku/Cskcy48KxZ7NA1mzc6xK4Z2QqDGRFJgSNNfZg10tS6ZnYIZwBHmmQfDGZEJBUZwhlg\n3+WaNBxpduBIk+yEwYyIpOG2kSavbWYejjTJLhjMiEg6buiaJbfBkaapGM5IdgxmRCQVrWtmdTjT\numYcafaOI00i/TCYEZF0ONLUB0ea6TjSJNkxmBGRtKzummnsPNIEzO2a2SGcARxpkrwYzIhIShxp\n6kPrmnGk2YEjTZIZgxkRSYsjTX1wpJmOI02SFYMZEUnP6q6ZhiPN3nGkSdQ/DGZEJDWONPXBkWY6\njjRJRgxmRCQ9jjT1wZGmGLtmJBMGMyKyDau7ZhqONHtnl5Gm1jVjOCNZMJgRkS3I1jXjSLN3HGkS\n9R2DGRHZRkwJSdE1M2OkCRi7XJOZZO+aadg1IxkwmBGR7cgQzgBzumZOGWnKjiNNkgWDGRHZimwj\nTSM5aaRph64ZR5okA79eD/T8889j+/btAIC2tjY0NjZiy5YtyfsPHTqEG2+8ERMmTAAAFBQU4Jln\nntFr80TkItpIM3a5tR+ksaYQlINhxEYaux9KcxixPP23Ma4ghOoT5gWm5kQYeT75w09tcxijDKg3\nUSZ0C2Z33XUX7rrrLgDAm2++iWPHjqX9zMUXX4y1a9fqtUkicjkZwhkAQ8NZvDYE/6iwYeEMaO+a\nxeLG1rF4eAiRI/bomm2uCTOckWV0H2XG43GsW7cO5eXlej80EVESR5r6MPNEAI40iXqnW8dMs3Xr\nVlx11VUIBAJp9zU2NuK+++5DfX09brvtNsyfPz+jxwwGFL130/ZYEzHWRcyxdQmUwr+3CphektWv\nB4M61SVWCv/hKmBsdvuRCdXvhT8aAQr138bkYCn21lcBKDH8ueL3eRFFBIVB42qlB7/fi8PRCMYU\ntO9nwKmvoX5iXfSXVTCrqKhARUVFym3Lli3DzJkz8cYbb+Cxxx5L+51Bgwbh/vvvx/z589Hc3Iyy\nsjLMmDEDRUVFvW4v2hrLZjcdKxhQWBMB1kXM6XVR4m1ApLLPI81gUEE0ql9dFKUNOFBp3PFmnxfD\nPyoM1FcaMtJMxNvg81ehtbVY98fubPqQYkSOhHWtvRHmjizG5powWltjCAQUtDr4NZQt1sUYWQWz\nsrIylJWVpd1+5swZfPHFFxgxYkTafbm5ubj55psBAIWFhZgwYQJqamoyCmZERN2JKSEoMevHY7Gm\nEJR8Y/dDO97MCOMKQvi8OWLIY3elHW8m+4kA2vFmlwZKrd4VchFdjzHbv38/Ro8eLbzvgw8+wJNP\nPgmgPcDt378fF198sZ6bJyKXkunCs3ZermlCUYkpl8/Q2OF4MwD4/ESV1btALqJrMGtoaEBhYWHK\nbStXrkRdXR2mTZuGU6dOYcGCBbj99tuxdOlSDBkyRM/NE5HLyRDOAF54NhN2u/AskVk8qqqqVu9E\njx65w9HHx2TD6ccMZYt1EXNTXZRY5pfP0PsYs5T9yDf+2mb+UfpfPkOrSfUJ4y+fASB5+QzZR5rB\noII39lXy8hld8BgzsVXzXurX7/PK/0TkKDJ0zew+0hxXEDK1a2aXkSaXayIzMJgRkWNo1zaTIZwB\n5ow0jcSRZgeONMksDGZE5Chuu/CskV0zM9mhazZvdIhdMzIcgxkROZIbumbJbXCkaSqGMzISgxkR\nOY4sI02ta8aRZu840iRqx2BGRI7EkaY+ONIUY9eMjMJgRkSOZnXXTGPnkSZgbtdM9nCmdc0YzsgI\nDGZE5FgcaepD65pxpNmBI00yCoMZETkaR5r64EgzHc/SJCMwmBGRK1jdNdNwpNk7u4w0NQxnpCcG\nMyJyPI409cGRZjqONElvDGZE5ApuGmkCxl7bzEzsmpHbMJgRkatY3TXTmNE1c8pIU3Y8S5P0xGBG\nRK7hpq6Zk0aaduiacaRJemEwIyJXiSkhKbpmsaaQrU8E4EhTjF0z6i8GMyJypw+rrN4DABxpZoIj\nTXITBjMich2ONPXBkWY6jjSpvxjMiMidgiUcaeqAI00xds0oWwxmRORqMoQzgCPNTHCkSW6QdTDb\nuXMniouLsW3btuRt+/fvx8KFC7Fw4UKsWLEi7XdisRiWL1+ORYsWoby8HHV1ddlunoio3zjS1IeZ\nXTOONMnpsgpmBw8exMsvv4ypU6em3L5y5Uo8/PDDeP3119HS0oI//vGPKfe/8847yM/Px7p163Dn\nnXfiZz/7WfZ7TkSkA56lqY9xBSFTumYaO4QzgF0z6rusgtngwYPx7LPPIi8vL3nb2bNncfjwYUya\nNAkAcPXVVyMSiaT8XiQSwZw5cwAA/4+9+4+Oqjr0v/+ZX2EGSIBRwo8iiIB6RVQoUSQSlYo/sPLo\no5HQldp2cRf+QMQ2Fqmlha4r0nJpv0tvrSgFcVmrPEFupSxaeKp4Y4cYWvERoRcjN1cMYEOiEQET\nySTn+SPMwJBJyEzOmXNm5v36izlnZu+dzcnwYe999pk8ebJ27tyZbLsBwFROCGcSU5rdkW5TmkAi\nkgpmgUBAHo8n5lhjY6Py8vKir8855xzV19fHvKehoUHBYLC9YrdbLpdLJ06cSKYJAGAapjTNwZRm\nR9MvKGTUDAnxnu0N5eXlKi8vjzk2b948TZkypcvPGYZx1sq78x49/qwCZ39X1qFP4qNf4qNf4juz\nX876hZgiqWiHr5PjvXt4sVyRwoutYHjq6uqJ7xXY3QKkk7P+/hcXF6u4uPisBQWDQX3++efR13V1\ndcrPz495T35+vurr63XxxRerpaVFhmEoJycniWYDAABkHtO2y/D5fLrgggv097//XZK0devWDqNq\nhYWF+vOf/yxJ2rZtm6666iqzqgcAAEh7LqNb84mx3nzzTa1evVo1NTUKBoMaOHCg1qxZo3379umn\nP/2p2tradPnll+tHP/qRJOn+++/XM888o9bWVi1atEgfffSRcnJy9POf/1xDhgwx/YcCAABIR0kF\nMwAAAJiPnf8BAAAcgmAGAADgEI64O3zHjh2aP3++nnjiCV1//fWS2h/vtGTJEknSRRddpJ/97Gcx\nn2lpadHChQt16NAheTweLVu2TOedd16qm54SzzzzjLZv3y5JamtrU0NDg7Zs2RI9f+DAAd122226\n9NJLJUkDBgzQU089ZUtbU2nDhg168sknNXx4+z3zkydP1v333x/zno0bN+qFF16Q2+3W3Xff3a07\njNNdOBzWj3/8Y3388cdqbW3VggULNHHixJj3jB07NubJHWvXru2wN2GmeOKJJ/Tee+/J5XLpscce\ni26CLUnbt2/Xr371K3k8HhUVFWnu3Lk2tjS1li9frnfeeUfhcFj33nuvbrzxxui5qVOnavDgwdFr\nYsWKFRo0aJBdTU2ZqqoqzZ8/X2PGjJEkXXjhhfrJT34SPZ+N10t5ebk2btwYfb179269++670dfZ\n9F0SUV1drQceeEDf/e53VVpaqk8++UQLFixQa2urBg4cqH//93/vsONEV99DHRg2279/v3HfffcZ\nDzzwgPHGG29Ej5eWlhrvvfeeYRiG8YMf/MB48803Yz63YcMGY8mSJYZhGMZbb71lzJ8/P3WNttGG\nDRuMVatWxRyrra017rjjDptaZJ9XX33V+PnPf97p+ePHjxs33nij8cUXXxhNTU3GrbfeajQ2Nqaw\nhfZYv369sXjxYsMwDKO6utq48847O7znyiuvTHGr7FFVVWXMmTPHMAzD2Ldvn3H33XfHnL/llluM\nQ4cOGa2trcasWbOMDz/80I5mplxlZaXxr//6r4ZhGMZnn31mXHvttTHnr7/+euPYsWM2tMxeb7/9\ntjFv3rxOz2fr9RJRVVUV/Xc3Ilu+SyKOHz9ulJaWGosWLTJefPFFwzAMY+HChcbmzZsNwzCMX/7y\nl8ZLL70U85mzfQ+dyfapTB7v1H3hcFgvv/yySktL7W5KWnjvvfc0btw45ebmyu/3a8KECVlxncyY\nMSN6R/SZ+wtmm8rKSt1www2SpFGjRunIkSM6duyYJKm2tlb9+vXTkCFD5Ha7de2113b4nslUBQUF\nevLJJyVJeXl5ampqUmtrq82tcrZsvl4inn76aT3wwAN2N8NWOTk5WrVqVcw+rVVVVfrGN74hqfO8\n0tn3UDy2BzMe79R9W7du1TXXXCO/39/hXENDgx566CGVlJTEDDtnuh07dmj27Nn6zne+o3/84x8x\n506/RqT2kHLmdZSJfD6fevXqJUl64YUX9M1vfrPDe06cOKGysjKVlJTo+eefT3UTU6ahoUEDBgyI\n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\n9+/XXXfdpREjRkiSevfurRdeeCEjbU2n9evX6/nnn9egQS3rQowdO1azZs2Kes+GDRu0cuVKud1u\n3XfffZ36hrHdhUIhPfXUU/r8888VDoc1b9485eXlRb1n+PDhUZU7VqxYEbM2YbZ4+umntXPnTrlc\nLj355JORRbAlaevWrfr1r38tj8ejgoICzZ49O4MtTa9nn31Wf/nLXxQKhfTggw/qlltuieybNGmS\n+vXrF7kmlixZor59+2aqqWmzbds2zZ07V8OGDZMkXXHFFfr5z38e2e/E66WsrEwbNmyIvN61a5c+\n/PDDyGsn3UtaVVVV6eGHH9bf/d3fqaSkRF9++aXmzZuncDisPn366J//+Z9jVpxo7z4Uw8iwffv2\nGQ899JDx8MMPG++8805ke0lJibFz507DMAzjH/7hH4x333036nPr1683Fi5caBiGYbz33nvG3Llz\n09foDFq/fr2xdOnSqG01NTXGPffck6EWZc6bb75pPPPMM23uP3XqlHHLLbcYJ06cMBoaGow77rjD\nOHr0aBpbmBnr1q0zFixYYBiGYVRVVRn33ntvzHuuu+66NLcqM7Zt22bMnDnTMAzD2Lt3r3HfffdF\n7b/99tuNL774wgiHw0ZxcbHx2WefZaKZaVdZWWn8/d//vWEYhnHkyBFjwoQJUftvuukmo76+PgMt\ny6z333/fmDNnTpv7nXq9tNq2bVvk791WTrmXtDp16pRRUlJizJ8/31i1apVhGIbxxBNPGBs3bjQM\nwzCee+4544033oj6TEf3ofNlfCiT8k6dFwqFtHr1apWUlGS6Kbawc+dOjRw5Ujk5OfL7/Ro9erQj\nrpOpU6dGvhF9/vqCTlNZWambb75ZkjR06FAdP35c9fX1kqSamhr17NlT/fv3l9vt1oQJE2LuM9kq\nPz9fzz//vCSpR48eamhoUDgcznCrrM3J10url156SQ8//HCmm5FRXbp00dKlS6PWad22bZu+//3v\nS2o7r7R1H4on48GM8k6dt3nzZt14443y+/0x++rq6vToo4+qqKgo6rFzttu+fbtmzJihH/7wh/rk\nk0+i9p17jUgtIeX86ygb+Xw+de3aVZK0cuVK3XnnnTHvaWxsVGlpqYqKivT666+nu4lpU1dXp969\ne0den3sN1NbWOvL6kCSPx6Nu3bpJktatW6eCgoKY+/CCBQtUXFysJUuWdK5KS5bYu3evHnroIRUX\n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\n/16LFi3SJ598ouXLl6u1tVVDhgzRv/7rv3aqONHd51AnRp7t27fPuPnmm41bb73VeOONN5KPL1q0\nyHjvvfcMwzCMf/qnfzL+8Ic/pJz38ssvG/fff79hGIbx1ltvGXfccUfuOp1HL7/8srF69eqUx+rq\n6ozrr78+Tz3Kn1//+tfGT3/60y6PHz161LjiiiuML7/80ojH48Y111xjHDp0KIc9zI8NGzYYK1as\nMAzDMGpra43vfve7nZ5zwQUX5LhX+bFlyxZjyZIlhmEYxp49e4wbbrgh5fjVV19tfPzxx0Zra6ux\ncOFC48MPP8xHN3OupqbG+Md//EfDMAzj888/Ny6++OKU45deeqnR1NSUh57l19tvv20sW7asy+OF\n+n7psGXLluTfux0K5bOkw9GjR41FixYZ9913n7Fu3TrDMAzjnnvuMV577TXDMAzj5z//ufHCCy+k\nnNPT59DJ8j6VyfZO6UskEnrxxRe1aNGifHfFFd577z1NmjRJJSUlCofDmjJlSkG8T+bOnZv8RvTJ\n9QULTU1NjS6//HJJ0pgxY3T48GE1NTVJkurq6jRgwAANHz5cfr9fF198cafPGa8qKyvTI488Iknq\n37+/4vG4Wltb89wrZyvk90uHxx9/XLfeemu+u5FXRUVFWr16dUqd1i1btuiyyy6T1HVe6epzyEze\ng1kkEul02zOb7Z287PXXX9e3v/1thcPhTscaGxt1++23a8GCBSm3nb1u69atWrx4sf7u7/5Of/rT\nn1KOnfgekdpDysnvIy8KhULq06ePJOn555/Xd77znU7POXbsmCorK7VgwQI9++yzue5izjQ2NmrQ\noEHJn098DzQ0NBTk+0OSAoGA+vbtK0nasGGDysvLO30Or1ixQgsXLtSqVasKapeWPXv26Oabb9bC\nhQtVXf3NXq2F/H6RpB07dmj48OEaMmRIyuOF8lnSIRgMdvo7OB6PJ6cuu8orXX0OmV7Dwv72iO2d\netbdGP3617/utNZOkgYOHKg77rhDc+fO1ZEjR1RRUaFp06Z12nnBzczG5ZprrtGyZct0ySWXaPv2\n7br77rv1m9/8pss2vPIeOVF375cXXnhBu3bt0pNPPtnpvOXLl2vu3Lny+XxatGiRpk6dqkmTJuWq\n23njxfdANn73u99pw4YNWrt2bcrjt99+u2bOnKkBAwZo6dKl2rRpk6666qo89TJ3Tj/9dN122226\n+uqrVVdXpxtvvFGvv/46O9SoPcBff/31nR4v1M+SrliRV3IazNjeqWddjdFXX32lTz/9VCNHjux0\nrLi4WN/97ncltY/dOeeco71793oqmPX03pk8ebI+//xztba2Jv/lX1paqsbGxuRzDh48qPPPP9/2\nvuZSV+NSVVWlN954Q7/61a8UCnXe/nzhwoXJP0+bNk21tbWe/DA1ew90/Iv/5GNmnzNe9tZbb+nJ\nJ5/UM888k7KURJKuu+665J/Ly8tVW1tbEMFs6NChmjNnjiRp1KhROuWUU1RfX6/TTjut4N8vW7Zs\n0X333dfp8UL5LOlO37591dzcrHA43GVe6epzyEzepzLNsL1TZx988IHOPPNM02Nvv/22HnroIUnt\nAe6DDz7QGWeckcvu5cXq1av16quvSmr/lkw0Gk2ZjjnvvPP0/vvv68svv9TRo0e1bdu2Tt9O9KK6\nujq99NJLeuyxx5JTmifau3evKisrZRiGEomEtm3blvwWmtfMmDEj+Q3mXbt2qbS0VMXFxZKkkSNH\nqqmpSfv371cikdCbb76pGTNm5LO7OXPkyBE9/PDDeuqppzRw4MBOxxYvXpxcGvLOO+949v1xso0b\nN2rNmjWS2qcuP/vss+S3UQv5/VJfX69+/fp1uvlRSJ8l3Zk+fXryc6arvNLV55CZvJfLOHF7p127\ndmndunVau3atfvSjH6Vs7zR9+nRJ32zvNGfOHG3evFkLFy5Mbu/kZSevb5CklStX6sYbb9TUqVP1\nn//5n5o/f75aW1u1ZMmSgvhq+7XXXqu77rpLL730khKJhFauXClJevrpp1VWVqbJkyersrJSixcv\nls/n09KlSzvdGfCiqqoqffHFF1qyZEnysTVr1ui5555LjsuwYcM0b948+f1+zZo1q/uvbrvYlClT\nNHHiRC1YsEA+n08rVqzQyy+/rJKSEs2ePVv333+/KisrJUlz5swpiH/QSNJrr72mQ4cO6fvf/37y\nsQsvvFDjx4/X7NmzVV5ervnz56tPnz6aMGFCQdwtk9rLhNx55536/e9/r5aWFt1///169dVXC/79\ncvLfPyd+xhbKZ0mHnTt36mc/+5kOHDigYDCoTZs2adWqVbrnnnu0fv16jRgxInnH+Qc/+IEeeugh\n08+h7rAlEwAAgEM4cioTAACgEBHMAAAAHIJgBgAA4BAEMwAAAIcgmAEAADgEwQwAAMAhCGYAAAAO\n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\nCIVCxh133GEcO3YshS1Mj7Vr1xoLFiwwDMMwqqqqjHvuuafFe77+9a+nuFXpsX37dmPmzJmGYRjG\nvn37jPvuuy9m/e2332589tlnRmNjozFt2jTjk08+SUczU66ystL47ne/axiGYXz55ZfGjTfeGLN+\nwoQJRl1dXRpall7btm0z5syZ0+r6bP2+RGzfvj36/25EtpxLIk6fPm2UlpYa8+fPN1auXGkYhmE8\n8cQTxltvvWUYhmH84he/MF5//fWYbdo7D10o7bcymd6p48LhsFatWqXS0tJ0NyUjfPDBBxo5cqRy\nc3Pl9/s1evTorPieTJkyJfpE9IXjC2abyspK3XLLLZKkIUOG6MSJE6qrq5MkVVdXq2fPnurXr5/c\nbrduvPHGFucZpyooKNCzzz4rSerRo4dCoZAaGxvT3Cp7y+bvS8QLL7yghx9+ON3NSKucnBwtW7Ys\nZpzW7du36+abb5bUel5p7TwUT9qDWSAQaHHZM5HpnZxs06ZNuuGGG+T3+1usq62t1aOPPqqSkpKY\ny85Ot2PHDs2YMUMPPPCAPvroo5h1539HpOaQcuH3yIl8Pp+6dOkiSXrttdf0zW9+s8V76uvrVVZW\nppKSEr3yyiupbmLK1NbWqnfv3tHX538HampqsvL7IUkej0ddu3aVJK1du1ZFRUUtzsMLFizQtGnT\ntGTJkqyapWXfvn2aNWuWpk2bpi1btkSXZ/P3RZI+/PBD9evXT3l5eTHLs+VcEuH1elv8HxwKhaK3\nLlvLK62dh+Iew8L2tovpndrXVh+98cYbLWrtJKlXr16aO3eupkyZolOnTqm4uFhjx45tMfNCJovX\nL3fccYfmzJmjm266Sbt27dIPfvAD/f73v291H075jpyvre/L66+/rj179mjp0qUttps3b56mTJki\nl8ul0tJSjRkzRiNHjkxVs9PGid+BRPzpT3/S2rVrtWLFipjljz76qMaPH6+ePXtq9uzZ2rhxo267\n7bY0tTJ1Lr30Uj3yyCO6/fbbVV1drenTp2vTpk3MUKPmAH/33Xe3WJ6t55LWWJFXUhrMmN6pfa31\n0ZkzZ/TFF19owIABLdZ1795d99xzj6TmvhsxYoT279/vqGDW3ndn1KhR+vLLL9XY2Bj9zT8/P1+1\ntbXR9xw5ckTXXntt0tuaSq31S3l5ud555x396le/ks/Xcvr0adOmRf8+duxYVVVVOfJkGu87EPmN\n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\n/OMfJUmbN2/WddddZ9XhAQAAMp7L6ND9xFjvvvuuli9frv379ysYDCovL08rVqzQvn379O///u9q\namrSNddcox/+8IeSpIceekgvvviiGhsbNX/+fP3jH/9QTk6Ofvazn6lfv36WfygAAIBMZCqYAQAA\nwHqM/A8AAGATBDMAAACbSMbIAJ22Y8cOzZ07V08//bQmTJggqXl6p4ULF0qSrrjiCv3kJz+J2aah\noUFPPPGEPvvsM3k8Hi1evFiXXHJJqpueEi+++KK2bt0qSWpqalJtba02btwYXX/w4EHdeeedGjFi\nhCSpd+/eeu6559LS1lRat26dnn32WQ0c2Dy2w7hx4/TQQw/FvGf9+vV67bXX5Ha7dd9993XoCeNM\nFw6H9aMf/UiffvqpGhsbNW/ePI0ZMybmPcOHD4+ZuePVV19tMTahUzz99NP64IMP5HK59OSTT0YH\nwZakrVu36pe//KU8Ho+Kioo0e/bsNLY0tZ555hm9//77CofDevDBB3XrrbdG102cOFF9+/aNfieW\nLFmiPn36pKupKbN9+3bNnTtXw4YNkyRdfvnl+vGPfxxdn43fl/Lycq1fvz76evfu3dq1a1f0dTad\nSyKqqqr08MMP69vf/rZKS0v1+eefa968eWpsbFReXp7+4z/+o8WIE22dh1ow0uzAgQPGrFmzjIcf\nfth45513ostLS0uNDz74wDAMw/i3f/s34913343Zbt26dcbChQsNwzCM9957z5g7d27qGp1G69at\nM5YtWxazrLq62rj77rvT1KL0eeONN4yf/exnra4/ffq0ceuttxonT540QqGQcccddxjHjh1LYQvT\nY+3atcaCBQsMwzCMqqoq45577mnxnq9//espblV6bN++3Zg5c6ZhGIaxb98+47777otZf/vttxuf\nffaZ0djYaEybNs345JNP0tHMlKusrDS++93vGoZhGF9++aVx4403xqyfMGGCUVdXl4aWpde2bduM\nOXPmtLo+W78vEdu3b4/+vxuRLeeSiNOnTxulpaXG/PnzjZUrVxqGYRhPPPGE8dZbbxmGYRi/+MUv\njNdffz1mm/bOQxdK+61MpnfquHA4rFWrVqm0tDTdTckIH3zwgUaOHKnc3Fz5/X6NHj06K74nU6ZM\niT4RfeH4gtmmsrJSt9xyiyRpyJAhOnHihOrq6iRJ1dXV6tmzp/r16ye3260bb7yxxXnGqQoKCvTs\ns89Kknr06KFQKKTGxsY0t8resvn7EvHCCy/o4YcfTncz0ionJ0fLli2LGad1+/btuvnmmyW1nlda\nOw/Fk/ZgxvROHbdp0yY4wt7rAAAgAElEQVTdcMMN8vv9LdbV1tbq0UcfVUlJScxlZ6fbsWOHZsyY\noQceeEAfffRRzLrzvyNSc0i58HvkRD6fT126dJEkvfbaa/rmN7/Z4j319fUqKytTSUmJXnnllVQ3\nMWVqa2vVu3fv6OvzvwM1NTVZ+f2QJI/Ho65du0qS1q5dq6Kiohbn4QULFmjatGlasmRJx2ZpcYh9\n+/Zp1qxZmjZtmrZsOTc1WTZ/XyTpww8/VL9+/ZSXlxezPFvOJRFer7fF/8GhUCh667K1vNLaeSju\nMSxsb7vSPr1TBmirj954440WtXaS1KtXL82dO1dTpkzRqVOnVFxcrLFjx7aYeSGTxeuXO+64Q3Pm\nzNFNN92kXbt26Qc/+IF+//vft7oPp3xHztfW9+X111/Xnj17tHTp0hbbzZs3T1OmTJHL5VJpaanG\njBmjkSNHpqrZaePE70Ai/vSnP2nt2rVasWJFzPJHH31U48ePV8+ePTV79mxt3LhRt912W5pamTqX\nXnqpHnnkEd1+++2qrq7W9OnTtWnTJmaoUXOAv/vuu1ssz9ZzSWusyCspDWZM79S+1vrozJkz+uKL\nLzRgwIAW67p376577rlHUnPfjRgxQvv373dUMGvvuzNq1Ch9+eWXamxsjP7mn5+fr9ra2uh7jhw5\nomuvvTbpbU2l1vqlvLxc77zzjn71q1/J52s52+a0adOifx87dqyqqqoceTKN9x2I/MZ/4bp45xkn\ne++997R06VL9+te/jiklkaS77ror+veioiJVVVVlRTDr06ePJk+eLEkaOHCgLr74Yh0+fFiXXHJJ\n1n9ftm/frvnz57dYni3nkrZ07dpVZ8+eld/vbzWvtHYeiifttzLjYXqnlvbu3avLLrss7rpt27Zp\n8eLFkpoD3N69ezV48OBUNi8tli1bpg0bNkhqfkomGAzG3I655ppr9Le//U0nT57U6dOntXPnzhZP\nJzpRdXW1Vq9ereeffz56S/N8+/fvV1lZmQzDUDgc1s6dO6NPoTlNYWFh9AnmPXv2KD8/X927d5ck\nDRgwQHV1dTp48KDC4bA2b96swsLCdDY3ZU6dOqVnnnlGL730knr16tVi3YwZM6KlIX/5y18c+/24\n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\nqqqqVFJS0uZ7eNGiRZo5c6aWLl1qbpWWLLFr1y7dd999mjlzpqqrT6/5msufF0n68MMP1a9fPxUW\nFkZtz5XvklZut7vN38HBYDBy67K9vNLe91DMc1jY306lfXknG+hojN544402tXaS1KtXL82fP1/T\npk3TsWPHVFpaqnHjxrVZecHOYo3LLbfconnz5mnSpEnaunWrHn74Yf3pT39qt41s+YycqaPPy2uv\nvaYdO3Zo2bJlbd63YMECTZs2TQ6HQ+Xl5Ro7dqxGjhyZqm6nTTZ+Brrir3/9q6qqqrRixYqo7Q8+\n+KAmTpyonj17au7cuVq3bp1uuummNPUydS666CI98MADuvnmm1VXV6e7775b69evZ4UatQT4O+64\no832XP0uaY8VeSWlwYzlnTrX3hidPHlSX331lQYMGNBmX15enu68805JLWM3YsQI7d69O6uCWWef\nndGjR+vgwYMKh8ORf/kXFRWpoaEhcsyBAwd0xRVXJL2vqdTeuFRWVuqdd97R7373O3k8bVfcnDlz\nZuTncePGqba2Niu/TGN9Blr/xX/2vljfM9nsvffe07Jly/SHP/whqpREkm6//fbIzyUlJaqtrc2J\nYNanTx9NnTpVkjRw4ECdd9552r9/vy644IKc/7xs2rRJCxcubLM9V75LOtKjRw+dOnVKXq+33bzS\n3vdQLGm/lRkLyzu1tXPnTg0ePDjmvvfff19PPvmkpJYAt3PnTg0aNCiV3UuL5cuX66233pLU8pSM\n3++Puh1z+eWX66OPPtLRo0d14sQJbdmypc3Tidmorq5Or7/+up577rnILc0z7d69WxUVFTIMQ6FQ\nSFu2bIk8hZZtJkyYEHmCeceOHSoqKlJeXp4kacCAATp+/Lj27t2rUCikDRs2aMKECensbsocO3ZM\nTz/9tH7/+9+rV69ebfbNmjUrUhrywQcfZO3n42xr167VSy+9JKnl1uXXX38deRo1lz8v+/fv1znn\nnNPm4kcufZd0ZPz48ZHvmfbySnvfQ7GkfbqMM5d32rFjh1auXKkVK1bosccei1reafz48ZJOL+80\ndepUbdy4UTNnzows75TNzq5vkKQlS5bo7rvv1tixY/Xf//3fmjFjhsLhsGbPnp0Tj7bfdttt+ulP\nf6rXX39doVBIS5YskSS9+OKLKi4u1ujRo1VRUaFZs2bJ4XBo7ty5ba4MZKPKykodPnxYs2fPjmx7\n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\nTz2l6667TlLb650WL14sSbrooov0r//6r1H7BINBPfbYY/r000/lcrm0dOlSnXvuualuekr86le/\n0tatWyVJra2tamxs1KZNmyLrDxw4oFtvvVWXXnqpJGngwIF69tln09LWVFq/fr1+/vOf67zz2ibj\nmjx5su65556obTZs2KBXXnlFTqdT3/nOd0w9YZzpQqGQfvjDH+qTTz5ROBzWwoULNXHixKhtxo4d\nG/XmjlWrVsnlcqW6qSnx1FNP6YMPPpDD4dDjjz8emQRbkrZu3aqf/exncrlcKi0t1fz589PY0tR6\n5pln9N577ykUCumuu+7SDTfcEFk3depUDRkyJPKdWLZsmQYPHpyupqbMtm3btGDBAo0ZM0aSdOGF\nF+pHP/pRZH0ufl8qKyu1YcOGyOddu3bp/fffj3zOpWtJu9raWt177736p3/6J82ZM0efffaZFi5c\nqHA4rEGDBunf/u3fOs040d11qBMjzfbv32/cfffdxr333mu89dZbkeVz5swxPvjgA8MwDONf/uVf\njD//+c9R+61fv95YvHixYRiG8fbbbxsLFixIXaPTaP369cby5cujltXV1Rm33357mlqUPr/73e+M\nn/zkJ12uP3nypHHDDTcYx48fNwKBgHHLLbcYR44cSWEL02PdunXGokWLDMMwjNraWuPb3/52p22u\nvPLKFLcqPbZt22bMmzfPMAzD2Lt3r/Gd73wnav3NN99sfPrpp0Y4HDZmz55tfPzxx+loZsrV1NQY\n//zP/2wYhmF88cUXxjXXXBO1/rrrrjOamprS0LL0euedd4z777+/y/W5+n1pt23btsi/u+1y5VrS\n7uTJk8acOXOMJ554wli9erVhGIbx2GOPGW+88YZhGIbx05/+1Hj11Vej9unpOtRR2ocyeb2TeaFQ\nSK+99prmzJmT7qZkhA8++ECXXXaZCgoK5PV6NWHChJz4nsyYMSPyRHTH+QVzTU1Nja6//npJ0qhR\no3Ts2DE1NTVJkurq6tS/f38NHTpUTqdT11xzTafrTLYqLi7Wz3/+c0lSYWGhAoGAwuFwmltlb7n8\nfWn3/PPP69577013M9IqLy9Py5cvj5qnddu2bfrmN78pqeu80tV1KJa0BzOfz9fptmdvXu+UzTZv\n3qxvfOMb8nq9ndY1NjbqgQceUHl5edRt52y3fft2zZ07V9/73vf097//PWrdmd8RqS2kdPweZSOP\nx6M+ffpIkl555RV961vf6rRNS0uLKioqVF5erpdffjnVTUyZxsZGDRw4MPL5zO9AQ0NDTn4/JMnl\ncqlv376SpHXr1qm0tLTTdXjRokWaPXu2li1bllNvadm7d6/uvvtuzZ49W9XVX71LNpe/L5K0c+dO\nDR06VIMGDYpanivXknZut7vTv8GBQCAydNlVXunqOhTzHBa2t0e83qln3fXR7373u061dpI0YMAA\nLViwQDNmzNCJEydUVlamSZMmdXrzQiaL1S+33HKL7r//fl177bV6//339eijj+oPf/hDl8fIlu/I\nmbr7vrz66qvavXu3XnjhhU77LVy4UDNmzJDD4dCcOXM0ceJEXXbZZalqdtpk43egN/70pz9p3bp1\nWrlyZdTyBx54QFOmTFH//v01f/58bdq0STfddFOaWpk6559/vu677z7dfPPNqqur05133qnNmzfz\nhhq1Bfjbb7+90/JcvZZ0xYq8ktJgxuudetZVH506dUqff/65hg8f3mldfn6+vv3tb0tq67tLL71U\n+/bty6pg1tN3Z/z48friiy8UDocj/+VfVFSkxsbGyDaHDh3SFVdckfS2plJX/VJZWam33npLv/zl\nL+XxdH4N+uzZsyM/T5o0SbW1tVl5MY31HWj/L/6O62JdZ7LZ22+/rRdeeEG//vWvo0pJJOm2226L\n/FxaWqra2tqcCGaDBw/W9OnTJUnnnXeezj77bNXX1+vcc8/N+e/Ltm3b9MQTT3RanivXku707dtX\nzc3N8nq9XeaVrq5DsaR9KDMWXu/U2Z49e3TBBRfEXPfOO+9o6dKlktoC3J49ezRy5MhUNi8tli9f\nro0bN0pqe0rG7/dHDcdcfvnl+vDDD3X8+HGdPHlSO3bs6PR0Yjaqq6vTmjVr9Nxzz0WGNM+0b98+\nVVRUyDAMhUIh7dixI/IUWrYpKSmJPMG8e/duFRUVKT8/X5I0fPhwNTU16cCBAwqFQtqyZYtKSkrS\n2dyUOXHihJ555hm9+OKLGjBgQKd1c+fOjZSGvPvuu1n7/ehow4YNWrFihaS2ocvDhw9HnkbN5e9L\nfX29+vXr1+nmRy5dS7ozefLkyHWmq7zS1XUolrRPl3Hm6512796t1atXa+XKlXr88cejXu80efJk\nSV+93mn69OnaunWrZs+eHXm9UzbrWN8gSUuWLNGdd96piRMn6ve//71mzZqlcDisefPm5cSj7bfe\n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\nYDKTzCV7ZvbMPB//yOzrJx8nmxf7896fHbJPtOtQZ2kfyuT1TrHz+/166aWXNHfu3HQ3JSN8/PHH\nGjt2rAoKCuR2uzV+/Pic+J7MmDEj+ER05/kFc011dbWmTZsmSRo5cqSOHj2qpqYmSVJtba369u2r\nwYMHy26364orrgi7zmSr4uJiPfHEE5KkwsJC+Xw+BQKBNLfK2nL5+9Lh6aef1t13353uZqRVXl6e\nVq9eHTJP67Zt23T11VdL6jqvdHUdiiTtwYzXO8Vuy5Yt+uEPfyi32x22rrGxUffee6/KyspCbjtn\nu+3bt2vevHn6yU9+ok8//TRk3enfEak9pHT+HmUjl8ulXr16SZJeeOEF3XjjjWHbtLS0qLy8XGVl\nZXr++edT3cSUaWxsVP/+/YOfT/8ONDQ05OT3Q5IcDod69+4tSdq4caNKSkrCrsNLly7VnDlztHLl\nytje0pIl9u7dqzvvvFNz5sxRVdWpV43l8vdFknbu3KnBgwdrwIABIctz5VrSwel0hv0d7PP5gkOX\nXeWVrq5DEc9hYnujSvvrnTJAd330yiuvhNXaSVK/fv20aNEizZgxQ8eOHdOsWbM0ceLEsDcvZLJI\n/XLDDTdo4cKFuvLKK/XRRx/pwQcf1J///Ocuj5Et35HTdfd9efHFF7V7926tWrUqbL/FixdrxowZ\nstlsmjt3riZMmKCxY8emqtlpk43fgZ548803tXHjRq1duzZk+b333qspU6aob9++WrBggTZv3qzr\nrrsuTa1MnXPOOUf33HOPrr/+etXW1ur222/Xli1beEON2gP8LbfcErY8V68lXTEjr6Q0mPF6p+i6\n6qMTJ07o66+/1tChQ8PW5efn69Zbb5XU3ncXXXSR9u3bl1XBLNp3Z9y4cfrmm28UCASC//IvKipS\nY2NjcJv6+npdeumlSW9rKnXVLxUVFXr77bf1u9/9Ti5X+Js258yZE/zzxIkTVVNTk5UX00jfgY5/\n8XdeF+k6k83ee+89rVq1Ss8991xIKYkk3XzzzcE/l5SUqKamJieC2cCBA1VaWipJGjZsmM4880zV\n1dXp7LPPzvnvy7Zt27RkyZKw5blyLelO79691dzcLLfb3WVe6eo6FEnahzIj4fVO4fbs2aNzzz03\n4rr3339fK1askNQe4Pbs2aMRI0aksnlpsXr1ar3++uuS2p+S8Xq9IcMxl1xyiT755BN9++23On78\n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\nj+vDDz+U3+/XHXfcoWuuuSa4burUqRo0aFDwO7Fy5UoNHDgwXU1NmW3btmnRokUaPXq0JOm8887T\nL37xi+D6XPy+VFRUaNOmTcHPu3bt0kcffRT8nEvXkg41NTW6++679U//9E+aO3euvvrqKy1evFiB\nQEADBgzQf/zHf4TNONHddSiMkWb79+837rzzTuPuu+823n777eDyuXPnGh9//LFhGIbxr//6r8a7\n774bst+rr75qLFu2zDAMw3jvvfeMRYsWpa7RafTqq68aq1evDllWW1tr3HLLLWlqUfq88sorxq9+\n9asu1x8/fty45pprjG+//dbw+XzGDTfcYBw+fDiFLUyPjRs3GkuXLjUMwzBqamqMW2+9NWybH/zg\nByluVXps27bNmD9/vmEYhrF3717jRz/6Ucj666+/3vjyyy+NQCBgzJkzx/j888/T0cyUq66uNv7l\nX/7FMAzD+Oabb4wrrrgiZP1VV11lNDU1paFl6fX+++8bCxcu7HJ9rn5fOmzbti34926HXLmWdDh+\n/Lgxd+5cY8mSJcb69esNwzCMhx56yHjjjTcMwzCMX//618aLL74Ysk+061BnaR/K5PVOsfP7/Xrp\npZc0d+7cdDclI3z88ccaO3asCgoK5Ha7NX78+Jz4nsyYMSP4RHTn+QVzTXV1taZNmyZJGjlypI4e\nPaqmpiZJUm1trfr27avBgwfLbrfriiuuCLvOZKvi4mI98cQTkqTCwkL5fD4FAoE0t8racvn70uHp\np5/W3Xffne5mpFVeXp5Wr14dMk/rtm3bdPXVV0vqOq90dR2KJO3BjNc7xW7Lli364Q9/KLfbHbau\nsbFR9957r8rKykJuO2e77du3a968efrJT36iTz/9NGTd6d8RqT2kdP4eZSOXy6VevXpJkl544QXd\neOONYdu0tLSovLxcZWVlev7551PdxJRpbGxU//79g59P/w40NDTk5PdDkhwOh3r37i1J2rhxo0pK\nSsKuw0uXLtWcOXO0cuXK2N7SkiX27t2rO++8U3PmzFFV1alXjeXy90WSdu7cqcGDB2vAgAEhy3Pl\nWtLB6XSG/R3s8/mCQ5dd5ZWurkMRz2Fie6NK++udMkB3ffTKK6+E1dpJUr9+/bRo0SLNmDFDx44d\n06xZszRx4sSwNy9kskj9csMNN2jhwoW68sor9dFHH+nBBx/Un//85y6PkS3fkdN193158cUXtXv3\nbq1atSpsv8WLF2vGjBmy2WyaO3euJkyYoLFjx6aq2WmTjd+BnnjzzTe1ceNGrV27NmT5vffeqylT\npqhv375asGCBNm/erOuuuy5NrUydc845R/fcc4+uv/561dbW6vbbb9eWLVt4Q43aA/wtt9wStjxX\nryVdMSOvpDSY8Xqn6LrqoxMnTujrr7/W0KFDw9bl5+fr1ltvldTedxdddJH27duXVcEs2ndn3Lhx\n+uabbxQIBIL/8i8qKlJjY2Nwm/r6el166aVJb2sqddUvFRUVevvtt/W73/1OLlf4mzbnzJkT/PPE\niRNVU1OTlRfTSN+Bjn/xd14X6TqTzd577z2tWrVKzz33XEgpiSTdfPPNwT+XlJSopqYmJ4LZwIED\nVVpaKkkaNmyYzjzzTNXV1enss8/O+e/Ltm3btGTJkrDluXIt6U7v3r3V3Nwst9vdZV7p6joUSdqH\nMiPh9U7h9uzZo3PPPTfiuvfff18rVqyQ1B7g9uzZoxEjRqSyeWmxevVqvf7665Lan5Lxer0hwzGX\nXHKJPvnkE3377bc6fvy4duzYEfZ0Yjaqra3Vyy+/rKeeeio4pHm6ffv2qby8XIZhyO/3a8eOHcGn\n0LLN5MmTg08w7969W0VFRcrPz5ckDR06VE1NTTpw4ID8fr/eeecdTZ48OZ3NTZljx47p8ccf1zPP\nPKN+/fqFrZs3b16wNOSDDz7I2u9HZ5s2bdKaNWsktQ9dHjp0KPg0ai5/X+rq6tSnT5+wmx+5dC3p\nzqRJk4LXma7ySlfXoUjSPl3G6a932r17t9avX6+1a9fq4YcfDnm906RJkySder1TaWmptm7dqjlz\n5gRf75TNOtc3SNLy5ct1++23a8KECfrTn/6k2bNnKxAIaP78+TnxaPtNN92kn/70p3r55Zfl9/u1\nfPlySdKzzz6r4uJijRs3TuXl5Zo3b55sNpsWLFgQdmcgG1VUVOjIkSOaP39+cNmaNWu0bt26YL8M\nGjRIM2fOlN1u19SpU7t/dDuDjR8/XmPGjFFZWZlsNpuWLl2qV199VQUFBZo+fbqWLVum8vJySVJp\naWlO/INGkt544w0dPnxY9913X3DZZZddpvPPP1/Tp09XSUmJZs+erV69eunCCy/MibtlUvs0IQ88\n8IDeeusttba2atmyZXr99ddz/vvS+e+f06+xuXIt6bBr1y499thjOnjwoJxOpzZv3qyVK1fqoYce\n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\nt3XrVmPlypWGYRjG22+/bSxdujR1jU6jrVu3GmvXrg1a1tjYaNx9991palH6vPrqq8YvfvGLHtef\nO3fOuO2224zPP//caG1tNe68807j5MmTKWxhemzZssVYsWKFYRiG0dDQYNxzzz0h23zta19LcavS\no76+3li4cKFhGIZx6NAh49577w1af8cddxgff/yx4fP5jIqKCuPDDz9MRzNTrq6uzvje975nGIZh\nnDhxwrjpppuC1s+YMcM4e/ZsGlqWXu+8846xZMmSHtfn6vXSpb6+PvD3bpdc+S7pcu7cOaOystJY\nvny5sXHjRsMwDOPRRx81Xn/9dcMwDONXv/qV8fLLLwftE+l76GJpH8rk9U7R83q9euWVV1RZWZnu\npmSEffv2acKECSooKJDb7dbkyZNz4jqZO3du4Inoi+cXzDV1dXW69dZbJUljxozR6dOndfbsWUlS\nY2OjBg4cqGHDhslut+umm24K+Z7JViUlJXryySclSQMGDFBra6t8Pl+aW2VtuXy9dHnmmWf04IMP\nprsZaZWXl6e1a9cGzdNaX1+vW265RVLPeaWn76Fw0h7MeL1T9Hbu3Kkbb7xRbrc7ZF1LS4seeugh\nlZeXB912zna7d+/WggUL9O1vf1sffPBB0Lru14jkDykXX0fZyOVyqU+fPpKkl156Sd/4xjdCtmlv\nb1dVVZXKy8v14osvprqJKdPS0qLBgwcHPne/Bpqbm3Py+pAkh8Ohvn37SpK2bNmi0tLSkO/hFStW\nqKKiQmvWrInuLS1Z4tChQ3rggQdUUVGh2tovXnOWy9eLJL333nsaNmyYCgsLg5bnyndJF6fTGfJ3\ncGtra2Dosqe80tP3UNhzmNjeiNL+eqcM0FsfvfrqqyG1dpI0aNAgLV26VHPnztWZM2dUVlamKVOm\nhLx5IZOF65c777xTS5Ys0c0336y9e/fqkUce0WuvvdbjMbLlGumut+vl5Zdf1oEDB/Tcc8+F7Lds\n2TLNnTtXNptNlZWVKi4u1oQJE1LV7LTJxmsgEX/4wx+0ZcsWrV+/Pmj5Qw89pOnTp2vgwIFavHix\nduzYodtvvz1NrUydL3/5y/r+97+vO+64Q42Njbrvvvu0c+dO3lAjf4C/++67Q5bn6ndJT8zIKykN\nZrzeKbKe+uj8+fP69NNPNWLEiJB1/fv31z333CPJ33fjx4/X4cOHsyqYRbo8aF7HAAAgAElEQVR2\n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\nuvoeMpPxYMbrnWK3Y8cOfe1rX5PX6+20rKGhQffee6/Ky8sjLjvnuj179mjx4sX69re/rb/+9a8R\nyzr+jkjtIeXC36Nc5PF41KNHD0nSyy+/rG9+85ud1mlpaVFFRYXKy8v14osvpvsU06ahoUH9+vUL\n/9zxd6C+vj4vfz8kyeVyqWfPnpKkzZs3q7S0tNP38MqVK7Vw4UKtWbMmtre05IhDhw7prrvu0sKF\nC1Vd/eVry/L590WS3nvvPQ0aNEj9+/eP+DxfvktC3G53p/8GNzU1hW9ddpVXuvoeMj2GhecbVcZf\n75QFuhujX//61526dpLUt29frVixQvPmzdOZM2dUVlamq6++utObF7KZ2bh84xvf0PLlyzVr1iy9\n8847euCBB/Tb3/62y33kyu9IR939vrzyyivav3+/nn/++U7b3X///Zo3b54cDocWLVqkqVOnauLE\niek67YzJxd+BZPz+97/X5s2btX79+ojP7733Xs2YMUN9+vTRsmXLtH37dt14440ZOsv0ufTSS3XP\nPffopptuUm1tre644w7t2LGDN9SoPcDfeuutnT7P1++SrliRV9IazHi9U3RdjdG5c+f06aefasiQ\nIZ2WFRYW6rbbbpPUPnYTJkzQ4cOHcyqYRfvdmTx5sj777DMFg8Hw//kXFxeroaEhvE5dXZ2uuOKK\nlJ9rOnU1LpWVlXrjjTf0i1/8Qh5P57dsLly4MPznq6++WgcPHszJL1Oz34HQ//FfuMzseyaXvfXW\nW3r++ef1q1/9KqJKIkm33HJL+M+lpaU6ePBgXgSzAQMGaO7cuZKkYcOG6eKLL9bx48c1dOjQvP99\n2b17tx555JFOn+fLd0l3evbsqebmZnm93i7zSlffQ2YyfivTDK936uzAgQMaOXKk6bK3335bjz/+\nuKT2AHfgwAGNGDEinaeXEWvXrtW2bdsktT8l4/f7I27HXH755Xr//ff1+eef6+zZs9q7d2+npxNz\nUW1trV599VU988wz4VuaHR0+fFgVFRUyDEOBQEB79+4NP4WWa6ZPnx5+gnn//v0qLi5WYWGhJGnI\nkCFqbGzU0aNHFQgEtHPnTk2fPj2Tp5s2Z86c0ZNPPqkXXnhBffv27bRs8eLF4WrIn/70p5z9/bjQ\n1q1btW7dOkntty5PnDgRfho1n39fjh8/rl69enW6+JFP3yXdmTZtWvh7pqu80tX3kJmMT5fR8fVO\n+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\nNTXGwoULDcMwjH379hk333xzwPrrrrvO+Oyzzwyfz2fMnz/f+OSTT5LRzISrrq42fvSjHxmGYRhf\nffWVMXXq1ID1V155pdHU1JSEliXX9u3bjXvuuafH9Zl6vXSqqanx/73bKVPuJZ1OnDhhlJWVGUuX\nLjVeeOEFwzAM44EHHjBee+01wzAM47e//a3x4osvBuwT6j50uqQPZfJ5p/B5vV6tX79eZWVlyW5K\nSvjggw80duxY5ebmyu12a8KECRlxncyaNcv/RvTp8wtmmurqak2fPl2SNHLkSB07dkxNTU2SpLq6\nOvXv319DhgyR3W7X1KlTu91n0lVRUZGeeOIJSVJeXp6am5vl8/mS3Cpry+TrpdPTTz+tu+66K9nN\nSKqsrCytXr06YJ7WmpoaXXXVVZJ6zis93YeCSXowy87O7vbYM5bPO6WzrVu36vLLL5fb7e62rrGx\nUffee69KS0sDHjunux07dmjBggW67bbb9NFHHwWs63qNSB0h5fTrKB25XC716dNHkvT888/r+9//\nfrdtWltbVV5ertLSUj333HOJbmLCNDY2auDAgf6fu14DDQ0NGXl9SJLD4VDfvn0lSRs3blRJSUm3\n+/CyZcs0f/58rVy5MqO+0rJv3z7dcccdmj9/vqqqqvzLM/l6kaRdu3ZpyJAhys/PD1ieKfeSTk6n\ns9vfwc3Nzf6hy57ySk/3oaDnMLG9IfF5p9B666OXX365W62dJA0YMECLFy/WrFmzdPz4cc2dO1eT\nJk3q9uWFVBasX66//nrdc889uuKKK/T+++/r/vvv19/+9rcej5Eu10hXvV0vL774ovbs2aNVq1Z1\n22/JkiWaNWuWbDabysrKNHHiRI0dOzZRzU6adLwGYvH6669r48aNWrt2bcDye++9V1OmTFH//v21\naNEibdmyRddee22SWpk455xzju6++25dd911qqur06233qqtW7fyhRp1BPjZs2d3W56p95KemJFX\nEhrM+LxTaD310cmTJ/XFF19o2LBh3dbl5OTopptuktTRdxdddJH279+fVsEs1LUzfvx4ffXVV/L5\nfP5/+RcUFKixsdG/zeHDh3XJJZfEva2J1FO/VFRU6M0339Qf/vAHuVzdP38+f/58/68nTZqk2tra\ntLyZBrsGOv/Ff/q6YPeZdPbOO+9o1apV+tOf/hRQSiJJN954o//XJSUlqq2tzYhgVlhYqJkzZ0qS\nzj77bJ1xxhmqr6/XWWedlfHXS01NjZYuXdpteabcS3rTt29ftbS0yO1295hXeroPBZP0ocxg+LxT\nd3v37tW5554bdN327dv16KOPSuoIcHv37tWIESMS2bykWL16tV599VVJHW/JeDyegOGYiy++WB9+\n+KG+/vprnThxQjt37uz2dmI6qqur00svvaSnnnrKP6TZ1f79+1VeXi7DMOT1erVz507/W2jppri4\n2P8G8549e1RQUKCcnBxJ0rBhw9TU1KSDBw/K6/XqrbfeUnFxcTKbmzDHjx/X448/rmeeeUYDBgzo\ntm7BggX+0pB33303ba+P023evFlr1qyR1DF0+eWXX/rfRs3k66W+vl79+vXr9vAjk+4lvZk8ebL/\nPtNTXunpPhRM0qfL6Pp5pz179uiFF17Q2rVr9eCDDwZ83mny5MmSvv2808yZM7Vt2zbNnz/f/3mn\ndHZ6fYMkrVixQrfeeqsmTpyov/71r5o3b558Pp8WLlyYEa+233DDDfrZz36ml156SV6vVytWrJAk\nPfvssyoqKtL48eNVXl6uBQsWyGazadGiRd2eDKSjiooKHT16VAsXLvQvW7NmjdatW+fvl8GDB2vO\nnDmy2+2aNm1a769up7AJEyZozJgxKi0tlc1m07Jly7Rp0ybl5uZqxowZWr58ucrLyyVJM2fOzIh/\n0EjSa6+9piNHjujHP/6xf9lll12m888/XzNmzFBJSYnmzZunPn366MILL8yIp2VSxzQh9913n954\n4w21tbVp+fLlevXVVzP+ejn975+u99hMuZd02r17t37961/r0KFDcjqd2rJli1auXKkHHnhAGzZs\n0NChQ/1PnH/yk5/o0UcfDXof6g2fZAIAALAISw5lAgAAZCKCGQAAgEUQzAAAACyCYAYAAGARBDMA\nAACLIJgBAABYBMEMAADAIghmAAAAFkEwAwAAsAiCGQAAgEUQzAAAACyCYAYAAGARBDMAAACLIJgB\nAABYBMEMAADAIghmAAAAFkEwAwAAsAiCGQAAgEUQzAAAACyCYAYAAGARBDMAAACLIJgBAABYBMEM\nAADAIghmAAAAFkEwAwAAsIiYglltba2mT5+uP//5z5Kkzz//XD/4wQ90yy23aPHixWptbe22zyOP\nPKJ58+aptLRUu3btiuX0AAAAaSXqYHby5En96le/0ve+9z3/sieffFK33HKL/vKXv2j48OHauHFj\n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\nTU2NFi9erNGjR0uSzjvvPP3iF7/wr8/E66WiokKbN2/2/7x79269//77/p8z6V7Sqba2VnfddZd+\n+MMfqqysTJ9//rmWLFkin8+n/Px8/eY3v+k240Rv96FujCQ7cOCAcccddxh33XWX8eabb/qXl5WV\nGR988IFhGIbx05/+1Hj77bcD9tu0aZOxfPlywzAM45133jEWL16cuEYn0aZNm4zVq1cHLKurqzNm\nz56dpBYlz8svv2w89thjPa4/ceKEcfXVVxtff/210dzcbFx//fXGkSNHEtjC5Ni4caOxbNkywzAM\no7a21rjpppu6bXPppZcmuFXJUVNTYyxcuNAwDMPYt2+fcfPNNwesv+6664zPPvvM8Pl8xvz5841P\nPvkkGc1MuOrqauNHP/qRYRiG8dVXXxlTp04NWH/llVcaTU1NSWhZcm3fvt245557elyfqddLp5qa\nGv/fu50y5V7S6cSJE0ZZWZmxdOlS44UXXjAMwzAeeOAB47XXXjMMwzB++9vfGi+++GLAPqHuQ6dL\n+lAmn3cKn9fr1fr161VWVpbspqSEDz74QGPHjlVubq7cbrcmTJiQEdfJrFmz/G9Enz6/YKaprq7W\n9OnTJUkjR47UsWPH1NTUJEmqq6tT//79NWTIENntdk2dOrXbfSZdFRUV6YknnpAk5eXlqbm5WT6f\nL8mtsrZMvl46Pf3007rrrruS3YykysrK0urVqwPmaa2pqdFVV10lqee80tN9KJikB7Ps7Oxujz1j\n+bxTOtu6dasuv/xyud3ubusaGxt17733qrS0NOCxc7rbsWOHFixYoNtuu00fffRRwLqu14jUEVJO\nv47SkcvlUp8+fSRJzz//vL7//e9326a1tVXl5eUqLS3Vc889l+gmJkxjY6MGDhzo/7nrNdDQ0JCR\n14ckORwO9e3bV5K0ceNGlZSUdLsPL1u2TPPnz9fKlSsz6ist+/bt0x133KH58+erqurbb89m8vUi\nSbt27dKQIUOUn58fsDxT7iWdnE5nt7+Dm5ub/UOXPeWVnu5DQc9hYntD4vNOofXWRy+//HK3WjtJ\nGjBggBYvXqxZs2bp+PHjmjt3riZNmtTtywupLFi/XH/99brnnnt0xRVX6P3339f999+vv/3tbz0e\nI12uka56u15efPFF7dmzR6tWreq235IlSzRr1izZbDaVlZVp4sSJGjt2bKKanTTpeA3E4vXXX9fG\n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\nSgZTAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "7ozeX_4QsPTh", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Load Data" + ] + }, + { + "metadata": { + "id": "MywTYhq2IP0M", + "colab_type": "code", + "outputId": "08fdba94-ab79-47d8-e9e8-db5e53d20326", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 419 + } + }, + "cell_type": "code", + "source": [ + "!wget https://www.dropbox.com/s/739uo8ebwbic9kb/mobile_cleaned.csv" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "--2019-02-26 05:17:04-- https://www.dropbox.com/s/739uo8ebwbic9kb/mobile_cleaned.csv\n", + "Resolving www.dropbox.com (www.dropbox.com)... 162.125.8.1, 2620:100:601b:1::a27d:801\n", + "Connecting to www.dropbox.com (www.dropbox.com)|162.125.8.1|:443... connected.\n", + "HTTP request sent, awaiting response... 301 Moved Permanently\n", + "Location: /s/raw/739uo8ebwbic9kb/mobile_cleaned.csv [following]\n", + "--2019-02-26 05:17:04-- https://www.dropbox.com/s/raw/739uo8ebwbic9kb/mobile_cleaned.csv\n", + "Reusing existing connection to www.dropbox.com:443.\n", + "HTTP request sent, awaiting response... 302 Found\n", + "Location: https://uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com/cd/0/inline/AcD4vBR7BLdCbPKdJyoO-EIk-ZrDbRMA-eaLOv-O_u47wr5y5geXCk4afOKzW52HB1bodEutwYs10tKp7_lxEeploLsXxt3kitfZXATc4EM_bIVfp9U6hI0W0MSs6_rC-bY/file# [following]\n", + "--2019-02-26 05:17:04-- https://uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com/cd/0/inline/AcD4vBR7BLdCbPKdJyoO-EIk-ZrDbRMA-eaLOv-O_u47wr5y5geXCk4afOKzW52HB1bodEutwYs10tKp7_lxEeploLsXxt3kitfZXATc4EM_bIVfp9U6hI0W0MSs6_rC-bY/file\n", + "Resolving uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com (uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com)... 162.125.1.6, 2620:100:601b:6::a27d:806\n", + "Connecting to uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com (uc13fb77f6fedcc765e931955638.dl.dropboxusercontent.com)|162.125.1.6|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 69685 (68K) [text/plain]\n", + "Saving to: ‘mobile_cleaned.csv.1’\n", + "\n", + "mobile_cleaned.csv. 100%[===================>] 68.05K --.-KB/s in 0.02s \n", + "\n", + "2019-02-26 05:17:05 (2.89 MB/s) - ‘mobile_cleaned.csv.1’ saved [69685/69685]\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "uF3rNJSisWuo", + "colab_type": "code", + "outputId": "a2fed9f0-9dee-4de5-a092-74eee21e5630", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "!ls" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "mobile_cleaned.csv mobile_cleaned.csv.1 sample_data\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "s5uAx4vGsa0y", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "data = pd.read_csv('mobile_cleaned.csv')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "8cF04I93seqg", + "colab_type": "code", + "outputId": "f59db496-577b-4263-91be-ab1b1d97734b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 288 + } + }, + "cell_type": "code", + "source": [ + "data.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PhoneIdPixel DensityScreen SizeWeightRAMProcessor_frequencyScreen to Body Ratio (calculated)HeightInternal MemoryCapacity...os_name_Tizenos_name_iOSSIM Slot(s)_Dual SIM, GSM+CDMASIM Slot(s)_Dual SIM, GSM+GSMSIM Slot(s)_Dual SIM, GSM+GSM, Dual VoLTESIM Slot(s)_Single SIM, GSMSim1_2GSim1_3GSim1_4GRating
004036.2618241.880.68157.9644000...0000100014.5
112716.2016831.880.85156.2324230...0000100014.5
224096.3016832.183.68157.0323500...0000100014.4
344116.0016942.274.78159.8643300...0001000014.3
453966.5017542.284.23160.4643750...0000100014.4
\n", + "

5 rows × 88 columns

\n", + "
" + ], + "text/plain": [ + " PhoneId Pixel Density Screen Size Weight RAM Processor_frequency \\\n", + "0 0 403 6.26 182 4 1.8 \n", + "1 1 271 6.20 168 3 1.8 \n", + "2 2 409 6.30 168 3 2.1 \n", + "3 4 411 6.00 169 4 2.2 \n", + "4 5 396 6.50 175 4 2.2 \n", + "\n", + " Screen to Body Ratio (calculated) Height Internal Memory Capacity \\\n", + "0 80.68 157.9 64 4000 \n", + "1 80.85 156.2 32 4230 \n", + "2 83.68 157.0 32 3500 \n", + "3 74.78 159.8 64 3300 \n", + "4 84.23 160.4 64 3750 \n", + "\n", + " ... os_name_Tizen os_name_iOS SIM Slot(s)_Dual SIM, GSM+CDMA \\\n", + "0 ... 0 0 0 \n", + "1 ... 0 0 0 \n", + "2 ... 0 0 0 \n", + "3 ... 0 0 0 \n", + "4 ... 0 0 0 \n", + "\n", + " SIM Slot(s)_Dual SIM, GSM+GSM SIM Slot(s)_Dual SIM, GSM+GSM, Dual VoLTE \\\n", + "0 0 1 \n", + "1 0 1 \n", + "2 0 1 \n", + "3 1 0 \n", + "4 0 1 \n", + "\n", + " SIM Slot(s)_Single SIM, GSM Sim1_2G Sim1_3G Sim1_4G Rating \n", + "0 0 0 0 1 4.5 \n", + "1 0 0 0 1 4.5 \n", + "2 0 0 0 1 4.4 \n", + "3 0 0 0 1 4.3 \n", + "4 0 0 0 1 4.4 \n", + "\n", + "[5 rows x 88 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "metadata": { + "id": "kcXnp36rsi8A", + "colab_type": "code", + "outputId": "b3913eda-08a0-4c38-a760-4ff846d6e826", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "data.shape" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(341, 88)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "metadata": { + "id": "OxRygDjtsvyh", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "X = data.drop('Rating', axis=1)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "bFfhIb4ls4d1", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y = data['Rating'].values" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6bfDsJLCs6ij", + "colab_type": "code", + "outputId": "5d3b9e98-8908-4302-9e1b-17cdec677360", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 533 + } + }, + "cell_type": "code", + "source": [ + "Y" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([4.5, 4.5, 4.4, 4.3, 4.4, 4.5, 4.3, 4.1, 4.3, 4.5, 4.5, 4. , 4.4,\n", + " 4.4, 4.4, 4.4, 4.5, 4.4, 4.4, 4.4, 4.4, 4.5, 4.4, 4.3, 4.2, 4.3,\n", + " 4.3, 4.6, 4.4, 4.5, 3.9, 4.2, 4.3, 4.2, 4.3, 4.3, 4.2, 4.4, 4.1,\n", + " 3.8, 4.4, 4.6, 4.3, 4.5, 4.5, 4.2, 3.9, 4.3, 4. , 4.3, 4.3, 3.9,\n", + " 4.2, 4.5, 4. , 4.6, 4.2, 2.8, 4.4, 4.3, 4.2, 4.4, 4.4, 4. , 4.4,\n", + " 4.4, 4.1, 4.5, 4.3, 3.9, 4.3, 4.1, 4.1, 4.2, 3.4, 4.2, 4.6, 3.8,\n", + " 4.3, 4.5, 4.2, 4.5, 4.5, 4. , 4.1, 4.4, 4.5, 4.1, 4.5, 4.3, 4.5,\n", + " 3.9, 3.9, 4.4, 4.4, 4.4, 4. , 4.1, 4.1, 4.4, 4.3, 4.3, 4.2, 4.3,\n", + " 3.4, 4.3, 4.3, 4.2, 4.6, 4.8, 4.4, 3.4, 3.7, 4.2, 4.3, 4.4, 4.3,\n", + " 4.2, 4.1, 4.3, 4. , 3.9, 4.4, 4.4, 3.9, 3.1, 3.7, 4.2, 4.4, 4. ,\n", + " 4. , 4.1, 4.2, 4.3, 4.2, 4.3, 4.1, 3.6, 4.1, 4. , 3.8, 3.7, 4.3,\n", + " 4.1, 4.1, 4.5, 4. , 4.3, 3.6, 4.1, 4.5, 3.5, 4. , 4.3, 4.6, 3.5,\n", + " 3.9, 4.1, 3.9, 3.8, 4.4, 4.3, 4. , 3.9, 4.4, 4.7, 3.9, 4.5, 3.7,\n", + " 4. , 4.3, 4.1, 4.8, 4.1, 4. , 4.7, 4. , 4.1, 4. , 3.4, 4.1, 3.9,\n", + " 3.1, 4.1, 3.7, 3.4, 3.9, 4.3, 4.1, 3.7, 3.8, 4. , 3.8, 4.6, 3.4,\n", + " 3.3, 3.2, 3.5, 4.3, 4.1, 4. , 3.8, 4.3, 4.1, 4. , 3.8, 3.8, 3.9,\n", + " 4.1, 3.7, 4.2, 4. , 4.2, 4.4, 4.1, 3.4, 4.2, 4.4, 3.9, 3.9, 4.4,\n", + " 4.2, 4.5, 4.5, 4.2, 4. , 4.2, 3.5, 3.7, 4.3, 5. , 3.5, 4.4, 3.7,\n", + " 4.3, 3.9, 4.3, 3.8, 3.8, 4.3, 5. , 4.1, 3. , 4.4, 3. , 4. , 4. ,\n", + " 3.9, 3.9, 4.2, 2.8, 4.3, 3.3, 4.3, 4. , 4.2, 4.1, 4.2, 3.6, 3.5,\n", + " 4.1, 4.6, 3.9, 4. , 3.8, 4.1, 2.5, 4.2, 3.7, 3.9, 4.1, 3. , 3.8,\n", + " 4.6, 4.2, 3.4, 3.9, 4.5, 4.1, 3.3, 4.1, 4. , 3.3, 4.4, 3.8, 3.9,\n", + " 3.6, 4.4, 4.1, 4.1, 4. , 3.5, 3. , 4.2, 4. , 3.9, 3.5, 3.4, 3.4,\n", + " 4. , 3.6, 4. , 3.5, 4. , 4. , 3.7, 4.6, 4. , 4.1, 4. , 3.5, 4.1,\n", + " 3.7, 4.4, 4.3, 4.1, 3.9, 3.4, 3.3, 3.9, 4. , 4.4, 4.5, 4.2, 3.8,\n", + " 3.7, 4.2, 4.1, 4. , 3.9, 3.7, 4.2, 4. , 3.6, 3.6, 4.4, 3.8, 3.9,\n", + " 4.1, 3.6, 4.3])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "metadata": { + "id": "XnEdKDTFs7tg", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "threshold = 4.2\n", + "data['Class'] = (data['Rating'] >= threshold).astype(np.int)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "RLjU1kHitcLl", + "colab_type": "code", + "outputId": "05007c5c-9362-4cd8-d75a-05fc92f901de", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 74 + } + }, + "cell_type": "code", + "source": [ + "data['Class'].value_counts(normalize=True)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 0.533724\n", + "1 0.466276\n", + "Name: Class, dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "metadata": { + "id": "ZjMeY_nRtlZL", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_binarised = data['Class'].values" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9pGpORDqwSQq", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Standardisation" + ] + }, + { + "metadata": { + "id": "HtKcTAyAw3tx", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "R = np.random.random([100, 1])" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "LhuraHQFw6Ce", + "colab_type": "code", + "outputId": "35b3533b-e689-4106-c6c8-05f371d83c23", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + } + }, + "cell_type": "code", + "source": [ + "plt.plot(R)\n", + "plt.show()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\njiMfiOPIB+I48kFexzE2CC8uLmJ5edn5+dSpU1hYWAj83cmTJ7G4uBj5fmfPbqRdayAWFqaxtLTG\n9T0nEeI48oE4jnwgjiMfiOPIBzyOY1gQj60J79+/H0888QQA4IUXXsDi4iJaLauWsnv3bqyvr+OV\nV16Bpmn493//d+zfvz/TQgUEBAQEBCYFsZnwtddei3379uHgwYOQJAn33XcfDh8+jOnpadx00034\n+Mc/jj/90z8FALzjHe/Anj17cl+0gICAgIDAZoBkjnjGE29qRNAtfCCOIx+I48gH4jjygTiOfFAo\nHS0gICAgICCQD0QQFhAQEBAQKAgiCAsICAgICBQEEYQFBAQEBAQKggjCAgICAgICBUEEYQEBAQEB\ngYIggrCAgICAgEBBGHmfsICAgICAgIAFkQkLCAgICAgUBBGEBQQEBAQECoIIwgICAgICAgVBBGEB\nAQEBAYGCIIKwgICAgIBAQRBBWEBAQEBAoCDEzhMuMx544AEcPXoUkiThnnvuwZVXXln0ksYGn/zk\nJ/H9738fmqbhD/7gD3DFFVfgIx/5CHRdx8LCAj71qU+hWq0WvcyxQLfbxW233YY777wT1113nTiO\nKfC1r30Nn//856GqKj74wQ/isssuE8cxIdrtNj760Y9iZWUFg8EAd911FxYWFvDxj38cAHDZZZfh\nz//8z4tdZMnx4x//GHfeeSd+93d/F4cOHcJrr70WeB1+7Wtfwxe/+EXIsox3v/vdeNe73pX+Q80x\nxXe/+13z93//903TNM0XX3zRfPe7313wisYHR44cMd///vebpmmaZ86cMW+44Qbz7rvvNr/+9a+b\npmman/70p81/+qd/KnKJY4WHH37YfOc732l+5StfEccxBc6cOWPefPPN5tramnny5Enz3nvvFccx\nBR599FHzoYceMk3TNE+cOGHecsst5qFDh8yjR4+apmmaf/Inf2I++eSTRS6x1Gi32+ahQ4fMe++9\n13z00UdN0zQDr8N2u23efPPN5urqqtnpdMxbb73VPHv2bOrPHVs6+siRI7jxxhsBAHv37sXKygrW\n19cLXtV44A1veAP++q//GgAwMzODTqeD7373u3jb294GAHjrW9+KI0eOFLnEscFLL72EF198EW95\ny1sAQBzHFDhy5Aiuu+46tFotLC4u4i/+4i/EcUyBLVu24Ny5cwCA1dVVzM3N4fjx4w5DKI5jNKrV\nKv7hH/4Bi4uLzr8FXYdHjx7FFVdcgenpadTrdVx77bV49tlnU3/u2Abh5eVlbNmyxfl5fn4eS0tL\nBa5ofKAoCqampgAAjz/+OK6//np0Oh2H7tu6das4loz4xCc+gbvvvtv5WRzH5HjllVfQ7XZxxx13\n4Ld/+7dx5MgRcRxT4NZbb8Wrr76Km266CYcOHcJHPvIRzMzMOL8XxzEaqqqiXq97/i3oOlxeXsb8\n/LzzmqyxZ6xrwjRM4b6ZGP/6r/+Kxx9/HP/4j/+Im2++2fl3cSzZ8NWvfhVXX301zj///MDfi+PI\njnPnzuFzn/scXn31VfzO7/yO59iJ48iGf/7nf8bOnTvxyCOP4Ec/+hHuuusuTE9PO78XxzEbwo5f\n1uM6tkF4cXERy8vLzs+nTp3CwsJCgSsaL3zrW9/C3/3d3+Hzn/88pqenMTU1hW63i3q9jpMnT3oo\nGYFgPPnkkzh27BiefPJJnDhxAtVqVRzHFNi6dSuuueYaqKqKCy64AM1mE4qiiOOYEM8++ywOHDgA\nALj88svR6/WgaZrze3EckyPofg6KPVdffXXqzxhbOnr//v144oknAAAvvPACFhcX0Wq1Cl7VeGBt\nbQ2f/OQn8fd///eYm5sDALzpTW9yjuc3v/lNvPnNby5yiWOBz3zmM/jKV76CL3/5y3jXu96FO++8\nUxzHFDhw4ACeeuopGIaBs2fPYmNjQxzHFLjwwgtx9OhRAMDx48fRbDaxd+9ePPPMMwDEcUyDoOvw\nqquuwg9/+EOsrq6i3W7j2WefxS/+4i+m/oyxnqL00EMP4ZlnnoEkSbjvvvtw+eWXF72kscBjjz2G\nz372s9izZ4/zbw8++CDuvfde9Ho97Ny5E3/1V3+FSqVS4CrHC5/97Gexa9cuHDhwAB/96EfFcUyI\nL33pS3j88ccBAH/4h3+IK664QhzHhGi327jnnntw+vRpaJqGD33oQ1hYWMDHPvYxGIaBq666Cn/2\nZ39W9DJLi+effx6f+MQncPz4caiqiu3bt+Ohhx7C3XffPXQdfuMb38AjjzwCSZJw6NAh/Nqv/Vrq\nzx3rICwgICAgIDDOGFs6WkBAQEBAYNwhgrCAgICAgEBBEEFYQEBAQECgIIggLCAgICAgUBBEEBYQ\nEBAQECgIIggLCAgICAgUBBGEBQQEBAQECoIIwgICAgICAgXh/wPk2crcQuXyKwAAAABJRU5ErkJg\ngg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "nkXUQ2r6w7a6", + "colab_type": "code", + "outputId": "afecd856-7bee-4d3d-974e-0af877336b7a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "np.mean(R)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.5148191483674861" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 40 + } + ] + }, + { + "metadata": { + "id": "1Fu-9Y6-xBu4", + "colab_type": "code", + "outputId": "e151be5f-bfeb-4115-bdb4-d170feda360e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "np.std(R)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.30067879275246223" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 41 + } + ] + }, + { + "metadata": { + "id": "GKYBpTlJxEna", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "scaler = StandardScaler()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "HU2YUhIExN_B", + "colab_type": "code", + "outputId": "48b6bb51-e3fe-4c77-fb25-1d299ff61ecf", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "scaler.fit(R)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "StandardScaler(copy=True, with_mean=True, with_std=True)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 43 + } + ] + }, + { + "metadata": { + "id": "n4RHIFbrxRWZ", + "colab_type": "code", + "outputId": "ac66f082-8693-4e2b-ef87-958f41cf9089", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "scaler.mean_" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.51481915])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 44 + } + ] + }, + { + "metadata": { + "id": "6CdzFpNZxYxs", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "RT = scaler.transform(R)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "ufVGRRg-xhso", + "colab_type": "code", + "outputId": "a6497681-8c1b-4397-acbc-952df4a1f971", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "np.mean(RT)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3.2085445411667025e-16" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] + }, + { + "metadata": { + "id": "qOGNVmbqxjIk", + "colab_type": "code", + "outputId": "8bdd012d-0814-40b8-bbfe-067218b27e47", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "np.std(RT)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.9999999999999999" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] + }, + { + "metadata": { + "id": "-MKliKv5xmxL", + "colab_type": "code", + "outputId": "bda95f66-b7e0-4a66-e141-39e28ee223f6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + } + }, + "cell_type": "code", + "source": [ + "plt.plot(RT)\n", + "plt.show()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nyfD/AaNBy7/AiK8JAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "ekKciyOw4pYA", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, random_state=0, stratify=Y_binarised)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "8BYL0c175ZXh", + "colab_type": "code", + "outputId": "8ab436e3-43f3-4a2b-cf10-aea69f09a881", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "print(X_train.shape, X_test.shape)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(255, 87) (86, 87)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "E8Kzeqdy5bXI", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "scaler = StandardScaler()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "0UqP0yjg57sS", + "colab_type": "code", + "outputId": "e01111c2-4932-4148-84d0-80517675f782", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 132 + } + }, + "cell_type": "code", + "source": [ + "X_scaled_train = scaler.fit_transform(X_train)\n", + "X_scaled_test = scaler.transform(X_test)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/sklearn/preprocessing/data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n", + " return self.partial_fit(X, y)\n", + "/usr/local/lib/python3.6/dist-packages/sklearn/base.py:462: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n", + " return self.fit(X, **fit_params).transform(X)\n", + "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:2: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n", + " \n" + ], + "name": "stderr" + } + ] + }, + { + "metadata": { + "id": "GJmz8D3a6JJI", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "minmax_scaler = MinMaxScaler()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "0GZh-Cyd8rkm", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_scaled_train = minmax_scaler.fit_transform(Y_train.reshape(-1, 1))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "fypX7aqi8wNr", + "colab_type": "code", + "outputId": "b6d1d011-8976-4dcd-ef0f-e75ee410b7d4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "np.min(Y_scaled_train)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] + }, + { + "metadata": { + "id": "fi5pBqKU88WE", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_scaled_test = minmax_scaler.transform(Y_test.reshape(-1, 1))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "KZQaY9wn9D6N", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "scaled_threshold = list(minmax_scaler.transform(np.array([threshold]).reshape(1, -1)))[0][0]" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1BvJUiKt9Wpk", + "colab_type": "code", + "outputId": "617650b3-b314-4cc7-c256-224c41d95ba7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "scaled_threshold" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.6800000000000002" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 58 + } + ] + }, + { + "metadata": { + "id": "JgAi7MF09d0i", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_binarised_train = (Y_scaled_train > scaled_threshold).astype(\"int\").ravel()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "WLLxO9SF9r-u", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_binarised_test = (Y_scaled_test > scaled_threshold).astype(\"int\").ravel()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Qn0JoD0j_ObH", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Train on Real Data" + ] + }, + { + "metadata": { + "id": "LZskrt4JBepu", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "sn = SigmoidNeuron()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9EunGE1JBgaF", + "colab_type": "code", + "outputId": "60bd5eb8-5e6f-413b-dfe8-b27a7ab87bcb", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.min.js": { + "data": "IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dfShleHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIG4oaSl7aWYoZVtpXSlyZXR1cm4gZVtpXS5leHBvcnRzO3ZhciByPWVbaV09e2k6aSxsOiExLGV4cG9ydHM6e319O3JldHVybiB0W2ldLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLG4pLHIubD0hMCxyLmV4cG9ydHN9cmV0dXJuIG4ubT10LG4uYz1lLG4uZD1mdW5jdGlvbih0LGUsaSl7bi5vKHQsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2VudW1lcmFibGU6ITAsZ2V0Oml9KX0sbi5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbih0LGUpe2lmKDEmZSYmKHQ9bih0KSksOCZlKXJldHVybiB0O2lmKDQmZSYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIoaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJmUmJiJzdHJpbmciIT10eXBlb2YgdClmb3IodmFyIHIgaW4gdCluLmQoaSxyLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfS5iaW5kKG51bGwscikpO3JldHVybiBpfSxuLm49ZnVuY3Rpb24odCl7dmFyIGU9dCYmdC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gdH07cmV0dXJuIG4uZChlLCJhIixlKSxlfSxuLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LG4ucD0iIixuKG4ucz0xNDApfShbZnVuY3Rpb24odCxlKXsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT90LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTp0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNCkscj1pLkJ1ZmZlcjtmdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dfWZ1bmN0aW9uIHModCxlLG4pe3JldHVybiByKHQsZSxuKX1yLmZyb20mJnIuYWxsb2MmJnIuYWxsb2NVbnNhZmUmJnIuYWxsb2NVbnNhZmVTbG93P3QuZXhwb3J0cz1pOihvKGksZSksZS5CdWZmZXI9cyksbyhyLHMpLHMuZnJvbT1mdW5jdGlvbih0LGUsbil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIHIodCxlLG4pfSxzLmFsbG9jPWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpPXIodCk7cmV0dXJuIHZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiBuP2kuZmlsbChlLG4pOmkuZmlsbChlKTppLmZpbGwoMCksaX0scy5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByKHQpfSxzLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpLlNsb3dCdWZmZXIodCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMDIpKSxpKG4oMzAzKSksaShuKDMwNCkpLGkobigzMDUpKSxpKG4oMzA2KSksaShuKDE4KSksaShuKDMwNykpLGkobigzMDgpKSxpKG4oMzA5KSksaShuKDMxMCkpLGkobigzMTEpKSxpKG4oMzEyKSksaShuKDMxMykpLGkobigzMTQpKSxpKG4oMzE1KSksaShuKDMxNikpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gcih0LGUpe3Quc3VwZXJfPWU7dmFyIG49ZnVuY3Rpb24oKXt9O24ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gbyh0LGUsbil7aWYoby5pc0JOKHQpKXJldHVybiB0O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT10JiYoImxlIiE9PWUmJiJiZSIhPT1lfHwobj1lLGU9MTApLHRoaXMuX2luaXQodHx8MCxlfHwxMCxufHwiYmUiKSl9dmFyIHM7Im9iamVjdCI9PXR5cGVvZiB0P3QuZXhwb3J0cz1vOmUuQk49byxvLkJOPW8sby53b3JkU2l6ZT0yNjt0cnl7cz1uKDE4MikuQnVmZmVyfWNhdGNoKHQpe31mdW5jdGlvbiBhKHQsZSxuKXtmb3IodmFyIGk9MCxyPU1hdGgubWluKHQubGVuZ3RoLG4pLG89ZTtvPHI7bysrKXt2YXIgcz10LmNoYXJDb2RlQXQobyktNDg7aTw8PTQsaXw9cz49NDkmJnM8PTU0P3MtNDkrMTA6cz49MTcmJnM8PTIyP3MtMTcrMTA6MTUmc31yZXR1cm4gaX1mdW5jdGlvbiB1KHQsZSxuLGkpe2Zvcih2YXIgcj0wLG89TWF0aC5taW4odC5sZW5ndGgsbikscz1lO3M8bztzKyspe3ZhciBhPXQuY2hhckNvZGVBdChzKS00ODtyKj1pLHIrPWE+PTQ5P2EtNDkrMTA6YT49MTc/YS0xNysxMDphfXJldHVybiByfW8uaXNCTj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG98fG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuY29uc3RydWN0b3Iud29yZFNpemU9PT1vLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHQud29yZHMpfSxvLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKT4wP3Q6ZX0sby5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jbXAoZSk8MD90OmV9LG8ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQsZSxuKXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodCxlLG4pO2lmKCJvYmplY3QiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHQsZSxuKTsiaGV4Ij09PWUmJihlPTE2KSxpKGU9PT0oMHxlKSYmZT49MiYmZTw9MzYpO3ZhciByPTA7Ii0iPT09KHQ9dC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJnIrKywxNj09PWU/dGhpcy5fcGFyc2VIZXgodCxyKTp0aGlzLl9wYXJzZUJhc2UodCxlLHIpLCItIj09PXRbMF0mJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKSwibGUiPT09biYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUsbil9LG8ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHQsZSxuKXt0PDAmJih0aGlzLm5lZ2F0aXZlPTEsdD0tdCksdDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdF0sdGhpcy5sZW5ndGg9MSk6dDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihpKHQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxuKX0sby5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih0LGUsbil7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKSx0Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh0Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT0wO3ZhciBvLHMsYT0wO2lmKCJiZSI9PT1uKWZvcihyPXQubGVuZ3RoLTEsbz0wO3I+PTA7ci09MylzPXRbcl18dFtyLTFdPDw4fHRbci0yXTw8MTYsdGhpcy53b3Jkc1tvXXw9czw8YSY2NzEwODg2Myx0aGlzLndvcmRzW28rMV09cz4+PjI2LWEmNjcxMDg4NjMsKGErPTI0KT49MjYmJihhLT0yNixvKyspO2Vsc2UgaWYoImxlIj09PW4pZm9yKHI9MCxvPTA7cjx0Lmxlbmd0aDtyKz0zKXM9dFtyXXx0W3IrMV08PDh8dFtyKzJdPDwxNix0aGlzLndvcmRzW29dfD1zPDxhJjY3MTA4ODYzLHRoaXMud29yZHNbbysxXT1zPj4+MjYtYSY2NzEwODg2MywoYSs9MjQpPj0yNiYmKGEtPTI2LG8rKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT0wO3ZhciBpLHIsbz0wO2ZvcihuPXQubGVuZ3RoLTYsaT0wO24+PWU7bi09NilyPWEodCxuLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMsKG8rPTI0KT49MjYmJihvLT0yNixpKyspO24rNiE9PWUmJihyPWEodCxlLG4rNiksdGhpcy53b3Jkc1tpXXw9cjw8byY2NzEwODg2Myx0aGlzLndvcmRzW2krMV18PXI+Pj4yNi1vJjQxOTQzMDMpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUsbil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIGk9MCxyPTE7cjw9NjcxMDg4NjM7cio9ZSlpKys7aS0tLHI9ci9lfDA7Zm9yKHZhciBvPXQubGVuZ3RoLW4scz1vJWksYT1NYXRoLm1pbihvLG8tcykrbixjPTAsaD1uO2g8YTtoKz1pKWM9dSh0LGgsaCtpLGUpLHRoaXMuaW11bG4ociksdGhpcy53b3Jkc1swXStjPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWM6dGhpcy5faWFkZG4oYyk7aWYoMCE9PXMpe3ZhciBsPTE7Zm9yKGM9dSh0LGgsdC5sZW5ndGgsZSksaD0wO2g8cztoKyspbCo9ZTt0aGlzLmltdWxuKGwpLHRoaXMud29yZHNbMF0rYzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1jOnRoaXMuX2lhZGRuKGMpfX0sby5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sby5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LG8ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sby5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LG8ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIGM9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0saD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxsPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIGQodCxlLG4pe24ubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlO3ZhciBpPXQubGVuZ3RoK2UubGVuZ3RofDA7bi5sZW5ndGg9aSxpPWktMXwwO3ZhciByPTB8dC53b3Jkc1swXSxvPTB8ZS53b3Jkc1swXSxzPXIqbyxhPTY3MTA4ODYzJnMsdT1zLzY3MTA4ODY0fDA7bi53b3Jkc1swXT1hO2Zvcih2YXIgYz0xO2M8aTtjKyspe2Zvcih2YXIgaD11Pj4+MjYsbD02NzEwODg2MyZ1LGQ9TWF0aC5taW4oYyxlLmxlbmd0aC0xKSxmPU1hdGgubWF4KDAsYy10Lmxlbmd0aCsxKTtmPD1kO2YrKyl7dmFyIHA9Yy1mfDA7aCs9KHM9KHI9MHx0LndvcmRzW3BdKSoobz0wfGUud29yZHNbZl0pK2wpLzY3MTA4ODY0fDAsbD02NzEwODg2MyZzfW4ud29yZHNbY109MHxsLHU9MHxofXJldHVybiAwIT09dT9uLndvcmRzW2NdPTB8dTpuLmxlbmd0aC0tLG4uc3RyaXAoKX1vLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKGU9MHxlfHwxLDE2PT09KHQ9dHx8MTApfHwiaGV4Ij09PXQpe249IiI7Zm9yKHZhciByPTAsbz0wLHM9MDtzPHRoaXMubGVuZ3RoO3MrKyl7dmFyIGE9dGhpcy53b3Jkc1tzXSx1PSgxNjc3NzIxNSYoYTw8cnxvKSkudG9TdHJpbmcoMTYpO249MCE9PShvPWE+Pj4yNC1yJjE2Nzc3MjE1KXx8cyE9PXRoaXMubGVuZ3RoLTE/Y1s2LXUubGVuZ3RoXSt1K246dStuLChyKz0yKT49MjYmJihyLT0yNixzLS0pfWZvcigwIT09byYmKG49by50b1N0cmluZygxNikrbik7bi5sZW5ndGglZSE9MDspbj0iMCIrbjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihuPSItIituKSxufWlmKHQ9PT0oMHx0KSYmdD49MiYmdDw9MzYpe3ZhciBkPWhbdF0sZj1sW3RdO249IiI7dmFyIHA9dGhpcy5jbG9uZSgpO2ZvcihwLm5lZ2F0aXZlPTA7IXAuaXNaZXJvKCk7KXt2YXIgbT1wLm1vZG4oZikudG9TdHJpbmcodCk7bj0ocD1wLmlkaXZuKGYpKS5pc1plcm8oKT9tK246Y1tkLW0ubGVuZ3RoXSttK259Zm9yKHRoaXMuaXNaZXJvKCkmJihuPSIwIituKTtuLmxlbmd0aCVlIT0wOyluPSIwIituO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG49Ii0iK24pLG59aSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxvLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD90Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJmkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy10OnR9LG8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sby5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaSh2b2lkIDAhPT1zKSx0aGlzLnRvQXJyYXlMaWtlKHMsdCxlKX0sby5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHQsZSl9LG8ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmJ5dGVMZW5ndGgoKSxvPW58fE1hdGgubWF4KDEscik7aShyPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksaShvPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgcyxhLHU9ImxlIj09PWUsYz1uZXcgdChvKSxoPXRoaXMuY2xvbmUoKTtpZih1KXtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW2FdPXM7Zm9yKDthPG87YSsrKWNbYV09MH1lbHNle2ZvcihhPTA7YTxvLXI7YSsrKWNbYV09MDtmb3IoYT0wOyFoLmlzWmVybygpO2ErKylzPWguYW5kbG4oMjU1KSxoLml1c2hybig4KSxjW28tYS0xXT1zfXJldHVybiBjfSxNYXRoLmNsejMyP28ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7cmV0dXJuIDMyLU1hdGguY2x6MzIodCl9Om8ucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7dmFyIGU9dCxuPTA7cmV0dXJuIGU+PTQwOTYmJihuKz0xMyxlPj4+PTEzKSxlPj02NCYmKG4rPTcsZT4+Pj03KSxlPj04JiYobis9NCxlPj4+PTQpLGU+PTImJihuKz0yLGU+Pj49MiksbitlfSxvLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIDI2O3ZhciBlPXQsbj0wO3JldHVybiAwPT0oODE5MSZlKSYmKG4rPTEzLGU+Pj49MTMpLDA9PSgxMjcmZSkmJihuKz03LGU+Pj49NyksMD09KDE1JmUpJiYobis9NCxlPj4+PTQpLDA9PSgzJmUpJiYobis9MixlPj4+PTIpLDA9PSgxJmUpJiZuKyssbn0sby5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSxlPXRoaXMuX2NvdW50Qml0cyh0KTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK2V9LG8ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciBuPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbZV0pO2lmKHQrPW4sMjYhPT1uKWJyZWFrfXJldHVybiB0fSxvLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxvLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4odCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50ZXN0bih0LTEpP3RoaXMubm90bih0KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxvLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sby5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LG8ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LG8ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXx0LndvcmRzW2VdO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHQpfSxvLnByb3RvdHlwZS5vcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih0KTp0LmNsb25lKCkuaW9yKHRoaXMpfSxvLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHQpOnQuY2xvbmUoKS5pdW9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPXRoaXMud29yZHNbbl0mdC53b3Jkc1tuXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1YW5kKHQpfSxvLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxvLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQodCk6dC5jbG9uZSgpLml1YW5kKHRoaXMpfSxvLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhlPXRoaXMsbj10KTooZT10LG49dGhpcyk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT1lLndvcmRzW2ldXm4ud29yZHNbaV07aWYodGhpcyE9PWUpZm9yKDtpPGUubGVuZ3RoO2krKyl0aGlzLndvcmRzW2ldPWUud29yZHNbaV07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gaSgwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih0KX0sby5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0sby5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHQpOnQuY2xvbmUoKS5pdXhvcih0aGlzKX0sby5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPTB8TWF0aC5jZWlsKHQvMjYpLG49dCUyNjt0aGlzLl9leHBhbmQoZSksbj4wJiZlLS07Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLndvcmRzW3JdPTY3MTA4ODYzJn50aGlzLndvcmRzW3JdO3JldHVybiBuPjAmJih0aGlzLndvcmRzW3JdPX50aGlzLndvcmRzW3JdJjY3MTA4ODYzPj4yNi1uKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sby5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgbj10LzI2fDAscj10JTI2O3JldHVybiB0aGlzLl9leHBhbmQobisxKSx0aGlzLndvcmRzW25dPWU/dGhpcy53b3Jkc1tuXXwxPDxyOnRoaXMud29yZHNbbl0mfigxPDxyKSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLGU9dGhpcy5pc3ViKHQpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIHQubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD50Lmxlbmd0aD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgcj0wLG89MDtvPGkubGVuZ3RoO28rKyllPSgwfG4ud29yZHNbb10pKygwfGkud29yZHNbb10pK3IsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlLHI9ZT4+PjI2O2Zvcig7MCE9PXImJm88bi5sZW5ndGg7bysrKWU9KDB8bi53b3Jkc1tvXSkrcix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmUscj1lPj4+MjY7aWYodGhpcy5sZW5ndGg9bi5sZW5ndGgsMCE9PXIpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09cix0aGlzLmxlbmd0aCsrO2Vsc2UgaWYobiE9PXRoaXMpZm9yKDtvPG4ubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPW4ud29yZHNbb107cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gMCE9PXQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0Lm5lZ2F0aXZlPTAsZT10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLGUpOjA9PT10Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGU9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGUpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxvLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lm5lZ2F0aXZlKXt0Lm5lZ2F0aXZlPTA7dmFyIGU9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbixpLHI9dGhpcy5jbXAodCk7aWYoMD09PXIpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3I+MD8obj10aGlzLGk9dCk6KG49dCxpPXRoaXMpO2Zvcih2YXIgbz0wLHM9MDtzPGkubGVuZ3RoO3MrKylvPShlPSgwfG4ud29yZHNbc10pLSgwfGkud29yZHNbc10pK28pPj4yNix0aGlzLndvcmRzW3NdPTY3MTA4ODYzJmU7Zm9yKDswIT09byYmczxuLmxlbmd0aDtzKyspbz0oZT0oMHxuLndvcmRzW3NdKStvKT4+MjYsdGhpcy53b3Jkc1tzXT02NzEwODg2MyZlO2lmKDA9PT1vJiZzPG4ubGVuZ3RoJiZuIT09dGhpcylmb3IoO3M8bi5sZW5ndGg7cysrKXRoaXMud29yZHNbc109bi53b3Jkc1tzXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgscyksbiE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sby5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0KX07dmFyIGY9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzPXQud29yZHMsYT1lLndvcmRzLHU9bi53b3JkcyxjPTAsaD0wfHNbMF0sbD04MTkxJmgsZD1oPj4+MTMsZj0wfHNbMV0scD04MTkxJmYsbT1mPj4+MTMsZz0wfHNbMl0sdj04MTkxJmcsYj1nPj4+MTMseT0wfHNbM10sXz04MTkxJnksdz15Pj4+MTMseD0wfHNbNF0sTT04MTkxJngsUz14Pj4+MTMsRT0wfHNbNV0sQT04MTkxJkUsQz1FPj4+MTMsaz0wfHNbNl0sTz04MTkxJmssUD1rPj4+MTMsVD0wfHNbN10saj04MTkxJlQsST1UPj4+MTMsTD0wfHNbOF0sQj04MTkxJkwsRD1MPj4+MTMsUj0wfHNbOV0sej04MTkxJlIsTj1SPj4+MTMsVz0wfGFbMF0scT04MTkxJlcsSD1XPj4+MTMsRj0wfGFbMV0sVj04MTkxJkYsVT1GPj4+MTMsSz0wfGFbMl0sWT04MTkxJkssWD1LPj4+MTMsJD0wfGFbM10sRz04MTkxJiQsSj0kPj4+MTMsWj0wfGFbNF0sUT04MTkxJlosdHQ9Wj4+PjEzLGV0PTB8YVs1XSxudD04MTkxJmV0LGl0PWV0Pj4+MTMscnQ9MHxhWzZdLG90PTgxOTEmcnQsc3Q9cnQ+Pj4xMyxhdD0wfGFbN10sdXQ9ODE5MSZhdCxjdD1hdD4+PjEzLGh0PTB8YVs4XSxsdD04MTkxJmh0LGR0PWh0Pj4+MTMsZnQ9MHxhWzldLHB0PTgxOTEmZnQsbXQ9ZnQ+Pj4xMztuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD0xOTt2YXIgZ3Q9KGMrKGk9TWF0aC5pbXVsKGwscSkpfDApKygoODE5MSYocj0ocj1NYXRoLmltdWwobCxIKSkrTWF0aC5pbXVsKGQscSl8MCkpPDwxMyl8MDtjPSgobz1NYXRoLmltdWwoZCxIKSkrKHI+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHAscSkscj0ocj1NYXRoLmltdWwocCxIKSkrTWF0aC5pbXVsKG0scSl8MCxvPU1hdGguaW11bChtLEgpO3ZhciB2dD0oYysoaT1pK01hdGguaW11bChsLFYpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLFUpfDApK01hdGguaW11bChkLFYpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxVKXwwKSsocj4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsaT1NYXRoLmltdWwodixxKSxyPShyPU1hdGguaW11bCh2LEgpKStNYXRoLmltdWwoYixxKXwwLG89TWF0aC5pbXVsKGIsSCksaT1pK01hdGguaW11bChwLFYpfDAscj0ocj1yK01hdGguaW11bChwLFUpfDApK01hdGguaW11bChtLFYpfDAsbz1vK01hdGguaW11bChtLFUpfDA7dmFyIGJ0PShjKyhpPWkrTWF0aC5pbXVsKGwsWSl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsWCl8MCkrTWF0aC5pbXVsKGQsWSl8MCkpPDwxMyl8MDtjPSgobz1vK01hdGguaW11bChkLFgpfDApKyhyPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxpPU1hdGguaW11bChfLHEpLHI9KHI9TWF0aC5pbXVsKF8sSCkpK01hdGguaW11bCh3LHEpfDAsbz1NYXRoLmltdWwodyxIKSxpPWkrTWF0aC5pbXVsKHYsVil8MCxyPShyPXIrTWF0aC5pbXVsKHYsVSl8MCkrTWF0aC5pbXVsKGIsVil8MCxvPW8rTWF0aC5pbXVsKGIsVSl8MCxpPWkrTWF0aC5pbXVsKHAsWSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsWCl8MCkrTWF0aC5pbXVsKG0sWSl8MCxvPW8rTWF0aC5pbXVsKG0sWCl8MDt2YXIgeXQ9KGMrKGk9aStNYXRoLmltdWwobCxHKXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxKKXwwKStNYXRoLmltdWwoZCxHKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsSil8MCkrKHI+Pj4xMyl8MCkrKHl0Pj4+MjYpfDAseXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE0scSkscj0ocj1NYXRoLmltdWwoTSxIKSkrTWF0aC5pbXVsKFMscSl8MCxvPU1hdGguaW11bChTLEgpLGk9aStNYXRoLmltdWwoXyxWKXwwLHI9KHI9citNYXRoLmltdWwoXyxVKXwwKStNYXRoLmltdWwodyxWKXwwLG89bytNYXRoLmltdWwodyxVKXwwLGk9aStNYXRoLmltdWwodixZKXwwLHI9KHI9citNYXRoLmltdWwodixYKXwwKStNYXRoLmltdWwoYixZKXwwLG89bytNYXRoLmltdWwoYixYKXwwLGk9aStNYXRoLmltdWwocCxHKXwwLHI9KHI9citNYXRoLmltdWwocCxKKXwwKStNYXRoLmltdWwobSxHKXwwLG89bytNYXRoLmltdWwobSxKKXwwO3ZhciBfdD0oYysoaT1pK01hdGguaW11bChsLFEpfDApfDApKygoODE5MSYocj0ocj1yK01hdGguaW11bChsLHR0KXwwKStNYXRoLmltdWwoZCxRKXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsdHQpfDApKyhyPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxpPU1hdGguaW11bChBLHEpLHI9KHI9TWF0aC5pbXVsKEEsSCkpK01hdGguaW11bChDLHEpfDAsbz1NYXRoLmltdWwoQyxIKSxpPWkrTWF0aC5pbXVsKE0sVil8MCxyPShyPXIrTWF0aC5pbXVsKE0sVSl8MCkrTWF0aC5pbXVsKFMsVil8MCxvPW8rTWF0aC5pbXVsKFMsVSl8MCxpPWkrTWF0aC5pbXVsKF8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKF8sWCl8MCkrTWF0aC5pbXVsKHcsWSl8MCxvPW8rTWF0aC5pbXVsKHcsWCl8MCxpPWkrTWF0aC5pbXVsKHYsRyl8MCxyPShyPXIrTWF0aC5pbXVsKHYsSil8MCkrTWF0aC5pbXVsKGIsRyl8MCxvPW8rTWF0aC5pbXVsKGIsSil8MCxpPWkrTWF0aC5pbXVsKHAsUSl8MCxyPShyPXIrTWF0aC5pbXVsKHAsdHQpfDApK01hdGguaW11bChtLFEpfDAsbz1vK01hdGguaW11bChtLHR0KXwwO3ZhciB3dD0oYysoaT1pK01hdGguaW11bChsLG50KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxpdCl8MCkrTWF0aC5pbXVsKGQsbnQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxpdCl8MCkrKHI+Pj4xMyl8MCkrKHd0Pj4+MjYpfDAsd3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKE8scSkscj0ocj1NYXRoLmltdWwoTyxIKSkrTWF0aC5pbXVsKFAscSl8MCxvPU1hdGguaW11bChQLEgpLGk9aStNYXRoLmltdWwoQSxWKXwwLHI9KHI9citNYXRoLmltdWwoQSxVKXwwKStNYXRoLmltdWwoQyxWKXwwLG89bytNYXRoLmltdWwoQyxVKXwwLGk9aStNYXRoLmltdWwoTSxZKXwwLHI9KHI9citNYXRoLmltdWwoTSxYKXwwKStNYXRoLmltdWwoUyxZKXwwLG89bytNYXRoLmltdWwoUyxYKXwwLGk9aStNYXRoLmltdWwoXyxHKXwwLHI9KHI9citNYXRoLmltdWwoXyxKKXwwKStNYXRoLmltdWwodyxHKXwwLG89bytNYXRoLmltdWwodyxKKXwwLGk9aStNYXRoLmltdWwodixRKXwwLHI9KHI9citNYXRoLmltdWwodix0dCl8MCkrTWF0aC5pbXVsKGIsUSl8MCxvPW8rTWF0aC5pbXVsKGIsdHQpfDAsaT1pK01hdGguaW11bChwLG50KXwwLHI9KHI9citNYXRoLmltdWwocCxpdCl8MCkrTWF0aC5pbXVsKG0sbnQpfDAsbz1vK01hdGguaW11bChtLGl0KXwwO3ZhciB4dD0oYysoaT1pK01hdGguaW11bChsLG90KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxzdCl8MCkrTWF0aC5pbXVsKGQsb3QpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxzdCl8MCkrKHI+Pj4xMyl8MCkrKHh0Pj4+MjYpfDAseHQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKGoscSkscj0ocj1NYXRoLmltdWwoaixIKSkrTWF0aC5pbXVsKEkscSl8MCxvPU1hdGguaW11bChJLEgpLGk9aStNYXRoLmltdWwoTyxWKXwwLHI9KHI9citNYXRoLmltdWwoTyxVKXwwKStNYXRoLmltdWwoUCxWKXwwLG89bytNYXRoLmltdWwoUCxVKXwwLGk9aStNYXRoLmltdWwoQSxZKXwwLHI9KHI9citNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQyxZKXwwLG89bytNYXRoLmltdWwoQyxYKXwwLGk9aStNYXRoLmltdWwoTSxHKXwwLHI9KHI9citNYXRoLmltdWwoTSxKKXwwKStNYXRoLmltdWwoUyxHKXwwLG89bytNYXRoLmltdWwoUyxKKXwwLGk9aStNYXRoLmltdWwoXyxRKXwwLHI9KHI9citNYXRoLmltdWwoXyx0dCl8MCkrTWF0aC5pbXVsKHcsUSl8MCxvPW8rTWF0aC5pbXVsKHcsdHQpfDAsaT1pK01hdGguaW11bCh2LG50KXwwLHI9KHI9citNYXRoLmltdWwodixpdCl8MCkrTWF0aC5pbXVsKGIsbnQpfDAsbz1vK01hdGguaW11bChiLGl0KXwwLGk9aStNYXRoLmltdWwocCxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKHAsc3QpfDApK01hdGguaW11bChtLG90KXwwLG89bytNYXRoLmltdWwobSxzdCl8MDt2YXIgTXQ9KGMrKGk9aStNYXRoLmltdWwobCx1dCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKGwsY3QpfDApK01hdGguaW11bChkLHV0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKGQsY3QpfDApKyhyPj4+MTMpfDApKyhNdD4+PjI2KXwwLE10Jj02NzEwODg2MyxpPU1hdGguaW11bChCLHEpLHI9KHI9TWF0aC5pbXVsKEIsSCkpK01hdGguaW11bChELHEpfDAsbz1NYXRoLmltdWwoRCxIKSxpPWkrTWF0aC5pbXVsKGosVil8MCxyPShyPXIrTWF0aC5pbXVsKGosVSl8MCkrTWF0aC5pbXVsKEksVil8MCxvPW8rTWF0aC5pbXVsKEksVSl8MCxpPWkrTWF0aC5pbXVsKE8sWSl8MCxyPShyPXIrTWF0aC5pbXVsKE8sWCl8MCkrTWF0aC5pbXVsKFAsWSl8MCxvPW8rTWF0aC5pbXVsKFAsWCl8MCxpPWkrTWF0aC5pbXVsKEEsRyl8MCxyPShyPXIrTWF0aC5pbXVsKEEsSil8MCkrTWF0aC5pbXVsKEMsRyl8MCxvPW8rTWF0aC5pbXVsKEMsSil8MCxpPWkrTWF0aC5pbXVsKE0sUSl8MCxyPShyPXIrTWF0aC5pbXVsKE0sdHQpfDApK01hdGguaW11bChTLFEpfDAsbz1vK01hdGguaW11bChTLHR0KXwwLGk9aStNYXRoLmltdWwoXyxudCl8MCxyPShyPXIrTWF0aC5pbXVsKF8saXQpfDApK01hdGguaW11bCh3LG50KXwwLG89bytNYXRoLmltdWwodyxpdCl8MCxpPWkrTWF0aC5pbXVsKHYsb3QpfDAscj0ocj1yK01hdGguaW11bCh2LHN0KXwwKStNYXRoLmltdWwoYixvdCl8MCxvPW8rTWF0aC5pbXVsKGIsc3QpfDAsaT1pK01hdGguaW11bChwLHV0KXwwLHI9KHI9citNYXRoLmltdWwocCxjdCl8MCkrTWF0aC5pbXVsKG0sdXQpfDAsbz1vK01hdGguaW11bChtLGN0KXwwO3ZhciBTdD0oYysoaT1pK01hdGguaW11bChsLGx0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxkdCl8MCkrTWF0aC5pbXVsKGQsbHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxkdCl8MCkrKHI+Pj4xMyl8MCkrKFN0Pj4+MjYpfDAsU3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHoscSkscj0ocj1NYXRoLmltdWwoeixIKSkrTWF0aC5pbXVsKE4scSl8MCxvPU1hdGguaW11bChOLEgpLGk9aStNYXRoLmltdWwoQixWKXwwLHI9KHI9citNYXRoLmltdWwoQixVKXwwKStNYXRoLmltdWwoRCxWKXwwLG89bytNYXRoLmltdWwoRCxVKXwwLGk9aStNYXRoLmltdWwoaixZKXwwLHI9KHI9citNYXRoLmltdWwoaixYKXwwKStNYXRoLmltdWwoSSxZKXwwLG89bytNYXRoLmltdWwoSSxYKXwwLGk9aStNYXRoLmltdWwoTyxHKXwwLHI9KHI9citNYXRoLmltdWwoTyxKKXwwKStNYXRoLmltdWwoUCxHKXwwLG89bytNYXRoLmltdWwoUCxKKXwwLGk9aStNYXRoLmltdWwoQSxRKXwwLHI9KHI9citNYXRoLmltdWwoQSx0dCl8MCkrTWF0aC5pbXVsKEMsUSl8MCxvPW8rTWF0aC5pbXVsKEMsdHQpfDAsaT1pK01hdGguaW11bChNLG50KXwwLHI9KHI9citNYXRoLmltdWwoTSxpdCl8MCkrTWF0aC5pbXVsKFMsbnQpfDAsbz1vK01hdGguaW11bChTLGl0KXwwLGk9aStNYXRoLmltdWwoXyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKF8sc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxpPWkrTWF0aC5pbXVsKHYsdXQpfDAscj0ocj1yK01hdGguaW11bCh2LGN0KXwwKStNYXRoLmltdWwoYix1dCl8MCxvPW8rTWF0aC5pbXVsKGIsY3QpfDAsaT1pK01hdGguaW11bChwLGx0KXwwLHI9KHI9citNYXRoLmltdWwocCxkdCl8MCkrTWF0aC5pbXVsKG0sbHQpfDAsbz1vK01hdGguaW11bChtLGR0KXwwO3ZhciBFdD0oYysoaT1pK01hdGguaW11bChsLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwobCxtdCl8MCkrTWF0aC5pbXVsKGQscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoZCxtdCl8MCkrKHI+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosVikscj0ocj1NYXRoLmltdWwoeixVKSkrTWF0aC5pbXVsKE4sVil8MCxvPU1hdGguaW11bChOLFUpLGk9aStNYXRoLmltdWwoQixZKXwwLHI9KHI9citNYXRoLmltdWwoQixYKXwwKStNYXRoLmltdWwoRCxZKXwwLG89bytNYXRoLmltdWwoRCxYKXwwLGk9aStNYXRoLmltdWwoaixHKXwwLHI9KHI9citNYXRoLmltdWwoaixKKXwwKStNYXRoLmltdWwoSSxHKXwwLG89bytNYXRoLmltdWwoSSxKKXwwLGk9aStNYXRoLmltdWwoTyxRKXwwLHI9KHI9citNYXRoLmltdWwoTyx0dCl8MCkrTWF0aC5pbXVsKFAsUSl8MCxvPW8rTWF0aC5pbXVsKFAsdHQpfDAsaT1pK01hdGguaW11bChBLG50KXwwLHI9KHI9citNYXRoLmltdWwoQSxpdCl8MCkrTWF0aC5pbXVsKEMsbnQpfDAsbz1vK01hdGguaW11bChDLGl0KXwwLGk9aStNYXRoLmltdWwoTSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE0sc3QpfDApK01hdGguaW11bChTLG90KXwwLG89bytNYXRoLmltdWwoUyxzdCl8MCxpPWkrTWF0aC5pbXVsKF8sdXQpfDAscj0ocj1yK01hdGguaW11bChfLGN0KXwwKStNYXRoLmltdWwodyx1dCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDAsaT1pK01hdGguaW11bCh2LGx0KXwwLHI9KHI9citNYXRoLmltdWwodixkdCl8MCkrTWF0aC5pbXVsKGIsbHQpfDAsbz1vK01hdGguaW11bChiLGR0KXwwO3ZhciBBdD0oYysoaT1pK01hdGguaW11bChwLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwocCxtdCl8MCkrTWF0aC5pbXVsKG0scHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwobSxtdCl8MCkrKHI+Pj4xMyl8MCkrKEF0Pj4+MjYpfDAsQXQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosWSkscj0ocj1NYXRoLmltdWwoeixYKSkrTWF0aC5pbXVsKE4sWSl8MCxvPU1hdGguaW11bChOLFgpLGk9aStNYXRoLmltdWwoQixHKXwwLHI9KHI9citNYXRoLmltdWwoQixKKXwwKStNYXRoLmltdWwoRCxHKXwwLG89bytNYXRoLmltdWwoRCxKKXwwLGk9aStNYXRoLmltdWwoaixRKXwwLHI9KHI9citNYXRoLmltdWwoaix0dCl8MCkrTWF0aC5pbXVsKEksUSl8MCxvPW8rTWF0aC5pbXVsKEksdHQpfDAsaT1pK01hdGguaW11bChPLG50KXwwLHI9KHI9citNYXRoLmltdWwoTyxpdCl8MCkrTWF0aC5pbXVsKFAsbnQpfDAsbz1vK01hdGguaW11bChQLGl0KXwwLGk9aStNYXRoLmltdWwoQSxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKEEsc3QpfDApK01hdGguaW11bChDLG90KXwwLG89bytNYXRoLmltdWwoQyxzdCl8MCxpPWkrTWF0aC5pbXVsKE0sdXQpfDAscj0ocj1yK01hdGguaW11bChNLGN0KXwwKStNYXRoLmltdWwoUyx1dCl8MCxvPW8rTWF0aC5pbXVsKFMsY3QpfDAsaT1pK01hdGguaW11bChfLGx0KXwwLHI9KHI9citNYXRoLmltdWwoXyxkdCl8MCkrTWF0aC5pbXVsKHcsbHQpfDAsbz1vK01hdGguaW11bCh3LGR0KXwwO3ZhciBDdD0oYysoaT1pK01hdGguaW11bCh2LHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwodixtdCl8MCkrTWF0aC5pbXVsKGIscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoYixtdCl8MCkrKHI+Pj4xMyl8MCkrKEN0Pj4+MjYpfDAsQ3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosRykscj0ocj1NYXRoLmltdWwoeixKKSkrTWF0aC5pbXVsKE4sRyl8MCxvPU1hdGguaW11bChOLEopLGk9aStNYXRoLmltdWwoQixRKXwwLHI9KHI9citNYXRoLmltdWwoQix0dCl8MCkrTWF0aC5pbXVsKEQsUSl8MCxvPW8rTWF0aC5pbXVsKEQsdHQpfDAsaT1pK01hdGguaW11bChqLG50KXwwLHI9KHI9citNYXRoLmltdWwoaixpdCl8MCkrTWF0aC5pbXVsKEksbnQpfDAsbz1vK01hdGguaW11bChJLGl0KXwwLGk9aStNYXRoLmltdWwoTyxvdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sc3QpfDApK01hdGguaW11bChQLG90KXwwLG89bytNYXRoLmltdWwoUCxzdCl8MCxpPWkrTWF0aC5pbXVsKEEsdXQpfDAscj0ocj1yK01hdGguaW11bChBLGN0KXwwKStNYXRoLmltdWwoQyx1dCl8MCxvPW8rTWF0aC5pbXVsKEMsY3QpfDAsaT1pK01hdGguaW11bChNLGx0KXwwLHI9KHI9citNYXRoLmltdWwoTSxkdCl8MCkrTWF0aC5pbXVsKFMsbHQpfDAsbz1vK01hdGguaW11bChTLGR0KXwwO3ZhciBrdD0oYysoaT1pK01hdGguaW11bChfLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoXyxtdCl8MCkrTWF0aC5pbXVsKHcscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwodyxtdCl8MCkrKHI+Pj4xMyl8MCkrKGt0Pj4+MjYpfDAsa3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosUSkscj0ocj1NYXRoLmltdWwoeix0dCkpK01hdGguaW11bChOLFEpfDAsbz1NYXRoLmltdWwoTix0dCksaT1pK01hdGguaW11bChCLG50KXwwLHI9KHI9citNYXRoLmltdWwoQixpdCl8MCkrTWF0aC5pbXVsKEQsbnQpfDAsbz1vK01hdGguaW11bChELGl0KXwwLGk9aStNYXRoLmltdWwoaixvdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosc3QpfDApK01hdGguaW11bChJLG90KXwwLG89bytNYXRoLmltdWwoSSxzdCl8MCxpPWkrTWF0aC5pbXVsKE8sdXQpfDAscj0ocj1yK01hdGguaW11bChPLGN0KXwwKStNYXRoLmltdWwoUCx1dCl8MCxvPW8rTWF0aC5pbXVsKFAsY3QpfDAsaT1pK01hdGguaW11bChBLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQSxkdCl8MCkrTWF0aC5pbXVsKEMsbHQpfDAsbz1vK01hdGguaW11bChDLGR0KXwwO3ZhciBPdD0oYysoaT1pK01hdGguaW11bChNLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoTSxtdCl8MCkrTWF0aC5pbXVsKFMscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoUyxtdCl8MCkrKHI+Pj4xMyl8MCkrKE90Pj4+MjYpfDAsT3QmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbnQpLHI9KHI9TWF0aC5pbXVsKHosaXQpKStNYXRoLmltdWwoTixudCl8MCxvPU1hdGguaW11bChOLGl0KSxpPWkrTWF0aC5pbXVsKEIsb3QpfDAscj0ocj1yK01hdGguaW11bChCLHN0KXwwKStNYXRoLmltdWwoRCxvdCl8MCxvPW8rTWF0aC5pbXVsKEQsc3QpfDAsaT1pK01hdGguaW11bChqLHV0KXwwLHI9KHI9citNYXRoLmltdWwoaixjdCl8MCkrTWF0aC5pbXVsKEksdXQpfDAsbz1vK01hdGguaW11bChJLGN0KXwwLGk9aStNYXRoLmltdWwoTyxsdCl8MCxyPShyPXIrTWF0aC5pbXVsKE8sZHQpfDApK01hdGguaW11bChQLGx0KXwwLG89bytNYXRoLmltdWwoUCxkdCl8MDt2YXIgUHQ9KGMrKGk9aStNYXRoLmltdWwoQSxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEEsbXQpfDApK01hdGguaW11bChDLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEMsbXQpfDApKyhyPj4+MTMpfDApKyhQdD4+PjI2KXwwLFB0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LG90KSxyPShyPU1hdGguaW11bCh6LHN0KSkrTWF0aC5pbXVsKE4sb3QpfDAsbz1NYXRoLmltdWwoTixzdCksaT1pK01hdGguaW11bChCLHV0KXwwLHI9KHI9citNYXRoLmltdWwoQixjdCl8MCkrTWF0aC5pbXVsKEQsdXQpfDAsbz1vK01hdGguaW11bChELGN0KXwwLGk9aStNYXRoLmltdWwoaixsdCl8MCxyPShyPXIrTWF0aC5pbXVsKGosZHQpfDApK01hdGguaW11bChJLGx0KXwwLG89bytNYXRoLmltdWwoSSxkdCl8MDt2YXIgVHQ9KGMrKGk9aStNYXRoLmltdWwoTyxwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKE8sbXQpfDApK01hdGguaW11bChQLHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKFAsbXQpfDApKyhyPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxpPU1hdGguaW11bCh6LHV0KSxyPShyPU1hdGguaW11bCh6LGN0KSkrTWF0aC5pbXVsKE4sdXQpfDAsbz1NYXRoLmltdWwoTixjdCksaT1pK01hdGguaW11bChCLGx0KXwwLHI9KHI9citNYXRoLmltdWwoQixkdCl8MCkrTWF0aC5pbXVsKEQsbHQpfDAsbz1vK01hdGguaW11bChELGR0KXwwO3ZhciBqdD0oYysoaT1pK01hdGguaW11bChqLHB0KXwwKXwwKSsoKDgxOTEmKHI9KHI9citNYXRoLmltdWwoaixtdCl8MCkrTWF0aC5pbXVsKEkscHQpfDApKTw8MTMpfDA7Yz0oKG89bytNYXRoLmltdWwoSSxtdCl8MCkrKHI+Pj4xMyl8MCkrKGp0Pj4+MjYpfDAsanQmPTY3MTA4ODYzLGk9TWF0aC5pbXVsKHosbHQpLHI9KHI9TWF0aC5pbXVsKHosZHQpKStNYXRoLmltdWwoTixsdCl8MCxvPU1hdGguaW11bChOLGR0KTt2YXIgSXQ9KGMrKGk9aStNYXRoLmltdWwoQixwdCl8MCl8MCkrKCg4MTkxJihyPShyPXIrTWF0aC5pbXVsKEIsbXQpfDApK01hdGguaW11bChELHB0KXwwKSk8PDEzKXwwO2M9KChvPW8rTWF0aC5pbXVsKEQsbXQpfDApKyhyPj4+MTMpfDApKyhJdD4+PjI2KXwwLEl0Jj02NzEwODg2Mzt2YXIgTHQ9KGMrKGk9TWF0aC5pbXVsKHoscHQpKXwwKSsoKDgxOTEmKHI9KHI9TWF0aC5pbXVsKHosbXQpKStNYXRoLmltdWwoTixwdCl8MCkpPDwxMyl8MDtyZXR1cm4gYz0oKG89TWF0aC5pbXVsKE4sbXQpKSsocj4+PjEzKXwwKSsoTHQ+Pj4yNil8MCxMdCY9NjcxMDg4NjMsdVswXT1ndCx1WzFdPXZ0LHVbMl09YnQsdVszXT15dCx1WzRdPV90LHVbNV09d3QsdVs2XT14dCx1WzddPU10LHVbOF09U3QsdVs5XT1FdCx1WzEwXT1BdCx1WzExXT1DdCx1WzEyXT1rdCx1WzEzXT1PdCx1WzE0XT1QdCx1WzE1XT1UdCx1WzE2XT1qdCx1WzE3XT1JdCx1WzE4XT1MdCwwIT09YyYmKHVbMTldPWMsbi5sZW5ndGgrKyksbn07ZnVuY3Rpb24gcCh0LGUsbil7cmV0dXJuKG5ldyBtKS5tdWxwKHQsZSxuKX1mdW5jdGlvbiBtKHQsZSl7dGhpcy54PXQsdGhpcy55PWV9TWF0aC5pbXVsfHwoZj1kKSxvLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubGVuZ3RoK3QubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXQubGVuZ3RoP2YodGhpcyx0LGUpOm48NjM/ZCh0aGlzLHQsZSk6bjwxMDI0P2Z1bmN0aW9uKHQsZSxuKXtuLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aDtmb3IodmFyIGk9MCxyPTAsbz0wO288bi5sZW5ndGgtMTtvKyspe3ZhciBzPXI7cj0wO2Zvcih2YXIgYT02NzEwODg2MyZpLHU9TWF0aC5taW4obyxlLmxlbmd0aC0xKSxjPU1hdGgubWF4KDAsby10Lmxlbmd0aCsxKTtjPD11O2MrKyl7dmFyIGg9by1jLGw9KDB8dC53b3Jkc1toXSkqKDB8ZS53b3Jkc1tjXSksZD02NzEwODg2MyZsO2E9NjcxMDg4NjMmKGQ9ZCthfDApLHIrPShzPShzPXMrKGwvNjcxMDg4NjR8MCl8MCkrKGQ+Pj4yNil8MCk+Pj4yNixzJj02NzEwODg2M31uLndvcmRzW29dPWEsaT1zLHM9cn1yZXR1cm4gMCE9PWk/bi53b3Jkc1tvXT1pOm4ubGVuZ3RoLS0sbi5zdHJpcCgpfSh0aGlzLHQsZSk6cCh0aGlzLHQsZSl9LG0ucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxuPW8ucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxpPTA7aTx0O2krKyllW2ldPXRoaXMucmV2QmluKGksbix0KTtyZXR1cm4gZX0sbS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHQsZSxuKXtpZigwPT09dHx8dD09PW4tMSlyZXR1cm4gdDtmb3IodmFyIGk9MCxyPTA7cjxlO3IrKylpfD0oMSZ0KTw8ZS1yLTEsdD4+PTE7cmV0dXJuIGl9LG0ucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxlLG4saSxyLG8pe2Zvcih2YXIgcz0wO3M8bztzKyspaVtzXT1lW3Rbc11dLHJbc109blt0W3NdXX0sbS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLnBlcm11dGUobyx0LGUsbixpLHIpO2Zvcih2YXIgcz0xO3M8cjtzPDw9MSlmb3IodmFyIGE9czw8MSx1PU1hdGguY29zKDIqTWF0aC5QSS9hKSxjPU1hdGguc2luKDIqTWF0aC5QSS9hKSxoPTA7aDxyO2grPWEpZm9yKHZhciBsPXUsZD1jLGY9MDtmPHM7ZisrKXt2YXIgcD1uW2grZl0sbT1pW2grZl0sZz1uW2grZitzXSx2PWlbaCtmK3NdLGI9bCpnLWQqdjt2PWwqditkKmcsZz1iLG5baCtmXT1wK2csaVtoK2ZdPW0rdixuW2grZitzXT1wLWcsaVtoK2Yrc109bS12LGYhPT1hJiYoYj11KmwtYypkLGQ9dSpkK2MqbCxsPWIpfX0sbS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24odCxlKXt2YXIgbj0xfE1hdGgubWF4KGUsdCksaT0xJm4scj0wO2ZvcihuPW4vMnwwO247bj4+Pj0xKXIrKztyZXR1cm4gMTw8cisxK2l9LG0ucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUsbil7aWYoIShuPD0xKSlmb3IodmFyIGk9MDtpPG4vMjtpKyspe3ZhciByPXRbaV07dFtpXT10W24taS0xXSx0W24taS0xXT1yLHI9ZVtpXSxlW2ldPS1lW24taS0xXSxlW24taS0xXT0tcn19LG0ucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9MDtpPGUvMjtpKyspe3ZhciByPTgxOTIqTWF0aC5yb3VuZCh0WzIqaSsxXS9lKStNYXRoLnJvdW5kKHRbMippXS9lKStuO3RbaV09NjcxMDg4NjMmcixuPXI8NjcxMDg4NjQ/MDpyLzY3MTA4ODY0fDB9cmV0dXJuIHR9LG0ucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24odCxlLG4scil7Zm9yKHZhciBvPTAscz0wO3M8ZTtzKyspbys9MHx0W3NdLG5bMipzXT04MTkxJm8sbz4+Pj0xMyxuWzIqcysxXT04MTkxJm8sbz4+Pj0xMztmb3Iocz0yKmU7czxyOysrcyluW3NdPTA7aSgwPT09byksaSgwPT0oLTgxOTImbykpfSxtLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT0wO3JldHVybiBlfSxtLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsZS5sZW5ndGgpLHI9dGhpcy5tYWtlUkJUKGkpLG89dGhpcy5zdHViKGkpLHM9bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpLGM9bmV3IEFycmF5KGkpLGg9bmV3IEFycmF5KGkpLGw9bmV3IEFycmF5KGkpLGQ9bi53b3JkcztkLmxlbmd0aD1pLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHMsaSksdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYyxpKSx0aGlzLnRyYW5zZm9ybShzLG8sYSx1LGksciksdGhpcy50cmFuc2Zvcm0oYyxvLGgsbCxpLHIpO2Zvcih2YXIgZj0wO2Y8aTtmKyspe3ZhciBwPWFbZl0qaFtmXS11W2ZdKmxbZl07dVtmXT1hW2ZdKmxbZl0rdVtmXSpoW2ZdLGFbZl09cH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoYSx1LGkpLHRoaXMudHJhbnNmb3JtKGEsdSxkLG8saSxyKSx0aGlzLmNvbmp1Z2F0ZShkLG8saSksdGhpcy5ub3JtYWxpemUxM2IoZCxpKSxuLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxuLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aCxuLnN0cmlwKCl9LG8ucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0sby5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbyhudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHAodGhpcyx0LGUpfSxvLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odCx0aGlzKX0sby5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCk7Zm9yKHZhciBlPTAsbj0wO248dGhpcy5sZW5ndGg7bisrKXt2YXIgcj0oMHx0aGlzLndvcmRzW25dKSp0LG89KDY3MTA4ODYzJnIpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9ci82NzEwODg2NHwwLGUrPW8+Pj4yNix0aGlzLndvcmRzW25dPTY3MTA4ODYzJm99cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tuXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LG8ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sby5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxvLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxvLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0LmJpdExlbmd0aCgpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPW4vMjZ8MCxyPW4lMjY7ZVtuXT0odC53b3Jkc1tpXSYxPDxyKT4+PnJ9cmV0dXJuIGV9KHQpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbmV3IG8oMSk7Zm9yKHZhciBuPXRoaXMsaT0wO2k8ZS5sZW5ndGgmJjA9PT1lW2ldO2krKyxuPW4uc3FyKCkpO2lmKCsraTxlLmxlbmd0aClmb3IodmFyIHI9bi5zcXIoKTtpPGUubGVuZ3RoO2krKyxyPXIuc3FyKCkpMCE9PWVbaV0mJihuPW4ubXVsKHIpKTtyZXR1cm4gbn0sby5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHQpe2koIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZSxuPXQlMjYscj0odC1uKS8yNixvPTY3MTA4ODYzPj4+MjYtbjw8MjYtbjtpZigwIT09bil7dmFyIHM9MDtmb3IoZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgYT10aGlzLndvcmRzW2VdJm8sdT0oMHx0aGlzLndvcmRzW2VdKS1hPDxuO3RoaXMud29yZHNbZV09dXxzLHM9YT4+PjI2LW59cyYmKHRoaXMud29yZHNbZV09cyx0aGlzLmxlbmd0aCsrKX1pZigwIT09cil7Zm9yKGU9dGhpcy5sZW5ndGgtMTtlPj0wO2UtLSl0aGlzLndvcmRzW2Urcl09dGhpcy53b3Jkc1tlXTtmb3IoZT0wO2U8cjtlKyspdGhpcy53b3Jkc1tlXT0wO3RoaXMubGVuZ3RoKz1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHQpe3JldHVybiBpKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih0KX0sby5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCkscj1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PW47aWYoci09cyxyPU1hdGgubWF4KDAsciksdSl7Zm9yKHZhciBjPTA7YzxzO2MrKyl1LndvcmRzW2NdPXRoaXMud29yZHNbY107dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxjPTA7Yzx0aGlzLmxlbmd0aDtjKyspdGhpcy53b3Jkc1tjXT10aGlzLndvcmRzW2Mrc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgaD0wO2ZvcihjPXRoaXMubGVuZ3RoLTE7Yz49MCYmKDAhPT1ofHxjPj1yKTtjLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1tjXTt0aGlzLndvcmRzW2NdPWg8PDI2LW98bD4+Pm8saD1sJmF9cmV0dXJuIHUmJjAhPT1oJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1oKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxvLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHQsZSxuKX0sby5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHQpfSxvLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih0KX0sby5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHQpfSxvLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih0KX0sby5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24odCl7aSgibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYsbj0odC1lKS8yNixyPTE8PGU7cmV0dXJuISh0aGlzLmxlbmd0aDw9bikmJiEhKHRoaXMud29yZHNbbl0mcil9LG8ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2O2lmKGkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1uKXJldHVybiB0aGlzO2lmKDAhPT1lJiZuKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obix0aGlzLmxlbmd0aCksMCE9PWUpe3ZhciByPTY3MTA4ODYzXjY3MTA4ODYzPj4+ZTw8ZTt0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj1yfXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHQpfSxvLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwP3RoaXMuaXN1Ym4oLXQpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8dD8odGhpcy53b3Jkc1swXT10LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHQpfSxvLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odCl7dGhpcy53b3Jkc1swXSs9dDtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPj02NzEwODg2NDtlKyspdGhpcy53b3Jkc1tlXS09NjcxMDg4NjQsZT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tlKzFdPTE6dGhpcy53b3Jkc1tlKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGUrMSksdGhpc30sby5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odCl7aWYoaSgibnVtYmVyIj09dHlwZW9mIHQpLGkodDw2NzEwODg2NCksdDwwKXJldHVybiB0aGlzLmlhZGRuKC10KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09dCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV08MDtlKyspdGhpcy53b3Jkc1tlXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tlKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sby5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxvLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxvLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sby5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLHM9dC5sZW5ndGgrbjt0aGlzLl9leHBhbmQocyk7dmFyIGE9MDtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXtvPSgwfHRoaXMud29yZHNbcituXSkrYTt2YXIgdT0oMHx0LndvcmRzW3JdKSplO2E9KChvLT02NzEwODg2MyZ1KT4+MjYpLSh1LzY3MTA4ODY0fDApLHRoaXMud29yZHNbcituXT02NzEwODg2MyZvfWZvcig7cjx0aGlzLmxlbmd0aC1uO3IrKylhPShvPSgwfHRoaXMud29yZHNbcituXSkrYSk+PjI2LHRoaXMud29yZHNbcituXT02NzEwODg2MyZvO2lmKDA9PT1hKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKGkoLTE9PT1hKSxhPTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKWE9KG89LSgwfHRoaXMud29yZHNbcl0pK2EpPj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJm87cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHQsZSl7dmFyIG49KHRoaXMubGVuZ3RoLHQubGVuZ3RoKSxpPXRoaXMuY2xvbmUoKSxyPXQscz0wfHIud29yZHNbci5sZW5ndGgtMV07MCE9PShuPTI2LXRoaXMuX2NvdW50Qml0cyhzKSkmJihyPXIudXNobG4obiksaS5pdXNobG4obikscz0wfHIud29yZHNbci5sZW5ndGgtMV0pO3ZhciBhLHU9aS5sZW5ndGgtci5sZW5ndGg7aWYoIm1vZCIhPT1lKXsoYT1uZXcgbyhudWxsKSkubGVuZ3RoPXUrMSxhLndvcmRzPW5ldyBBcnJheShhLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYS53b3Jkc1tjXT0wfXZhciBoPWkuY2xvbmUoKS5faXNobG5zdWJtdWwociwxLHUpOzA9PT1oLm5lZ2F0aXZlJiYoaT1oLGEmJihhLndvcmRzW3VdPTEpKTtmb3IodmFyIGw9dS0xO2w+PTA7bC0tKXt2YXIgZD02NzEwODg2NCooMHxpLndvcmRzW3IubGVuZ3RoK2xdKSsoMHxpLndvcmRzW3IubGVuZ3RoK2wtMV0pO2ZvcihkPU1hdGgubWluKGQvc3wwLDY3MTA4ODYzKSxpLl9pc2hsbnN1Ym11bChyLGQsbCk7MCE9PWkubmVnYXRpdmU7KWQtLSxpLm5lZ2F0aXZlPTAsaS5faXNobG5zdWJtdWwociwxLGwpLGkuaXNaZXJvKCl8fChpLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1kKX1yZXR1cm4gYSYmYS5zdHJpcCgpLGkuc3RyaXAoKSwiZGl2IiE9PWUmJjAhPT1uJiZpLml1c2hybihuKSx7ZGl2OmF8fG51bGwsbW9kOml9fSxvLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpKCF0LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IG8oMCksbW9kOm5ldyBvKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmU/KGE9dGhpcy5uZWcoKS5kaXZtb2QodCxlKSwibW9kIiE9PWUmJihyPWEuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihzPWEubW9kLm5lZygpLG4mJjAhPT1zLm5lZ2F0aXZlJiZzLmlhZGQodCkpLHtkaXY6cixtb2Q6c30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZT8oYT10aGlzLmRpdm1vZCh0Lm5lZygpLGUpLCJtb2QiIT09ZSYmKHI9YS5kaXYubmVnKCkpLHtkaXY6cixtb2Q6YS5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKT8oYT10aGlzLm5lZygpLmRpdm1vZCh0Lm5lZygpLGUpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksbiYmMCE9PXMubmVnYXRpdmUmJnMuaXN1Yih0KSkse2RpdjphLmRpdixtb2Q6c30pOnQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh0KTwwP3tkaXY6bmV3IG8oMCksbW9kOnRoaXN9OjE9PT10Lmxlbmd0aD8iZGl2Ij09PWU/e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ZT97ZGl2Om51bGwsbW9kOm5ldyBvKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHQsZSk7dmFyIHIscyxhfSxvLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sby5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LG8ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sby5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kaXZtb2QodCk7aWYoZS5tb2QuaXNaZXJvKCkpcmV0dXJuIGUuZGl2O3ZhciBuPTAhPT1lLmRpdi5uZWdhdGl2ZT9lLm1vZC5pc3ViKHQpOmUubW9kLGk9dC51c2hybigxKSxyPXQuYW5kbG4oMSksbz1uLmNtcChpKTtyZXR1cm4gbzwwfHwxPT09ciYmMD09PW8/ZS5kaXY6MCE9PWUuZGl2Lm5lZ2F0aXZlP2UuZGl2LmlzdWJuKDEpOmUuZGl2LmlhZGRuKDEpfSxvLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0oMTw8MjYpJXQsbj0wLHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSluPShlKm4rKDB8dGhpcy53b3Jkc1tyXSkpJXQ7cmV0dXJuIG59LG8ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHQpe2kodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIHI9KDB8dGhpcy53b3Jkc1tuXSkrNjcxMDg4NjQqZTt0aGlzLndvcmRzW25dPXIvdHwwLGU9ciV0fXJldHVybiB0aGlzLnN0cmlwKCl9LG8ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0KX0sby5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlKSxpKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLG49dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIHI9bmV3IG8oMSkscz1uZXcgbygwKSxhPW5ldyBvKDApLHU9bmV3IG8oMSksYz0wO2UuaXNFdmVuKCkmJm4uaXNFdmVuKCk7KWUuaXVzaHJuKDEpLG4uaXVzaHJuKDEpLCsrYztmb3IodmFyIGg9bi5jbG9uZSgpLGw9ZS5jbG9uZSgpOyFlLmlzWmVybygpOyl7Zm9yKHZhciBkPTAsZj0xOzA9PShlLndvcmRzWzBdJmYpJiZkPDI2OysrZCxmPDw9MSk7aWYoZD4wKWZvcihlLml1c2hybihkKTtkLS0gPjA7KShyLmlzT2RkKCl8fHMuaXNPZGQoKSkmJihyLmlhZGQoaCkscy5pc3ViKGwpKSxyLml1c2hybigxKSxzLml1c2hybigxKTtmb3IodmFyIHA9MCxtPTE7MD09KG4ud29yZHNbMF0mbSkmJnA8MjY7KytwLG08PD0xKTtpZihwPjApZm9yKG4uaXVzaHJuKHApO3AtLSA+MDspKGEuaXNPZGQoKXx8dS5pc09kZCgpKSYmKGEuaWFkZChoKSx1LmlzdWIobCkpLGEuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobiksci5pc3ViKGEpLHMuaXN1Yih1KSk6KG4uaXN1YihlKSxhLmlzdWIociksdS5pc3ViKHMpKX1yZXR1cm57YTphLGI6dSxnY2Q6bi5pdXNobG4oYyl9fSxvLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24odCl7aSgwPT09dC5uZWdhdGl2ZSksaSghdC5pc1plcm8oKSk7dmFyIGU9dGhpcyxuPXQuY2xvbmUoKTtlPTAhPT1lLm5lZ2F0aXZlP2UudW1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciByLHM9bmV3IG8oMSksYT1uZXcgbygwKSx1PW4uY2xvbmUoKTtlLmNtcG4oMSk+MCYmbi5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCxoPTE7MD09KGUud29yZHNbMF0maCkmJmM8MjY7KytjLGg8PD0xKTtpZihjPjApZm9yKGUuaXVzaHJuKGMpO2MtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQodSkscy5pdXNocm4oMSk7Zm9yKHZhciBsPTAsZD0xOzA9PShuLndvcmRzWzBdJmQpJiZsPDI2OysrbCxkPDw9MSk7aWYobD4wKWZvcihuLml1c2hybihsKTtsLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2UuY21wKG4pPj0wPyhlLmlzdWIobikscy5pc3ViKGEpKToobi5pc3ViKGUpLGEuaXN1YihzKSl9cmV0dXJuKHI9MD09PWUuY21wbigxKT9zOmEpLmNtcG4oMCk8MCYmci5pYWRkKHQpLHJ9LG8ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIGU9dGhpcy5jbG9uZSgpLG49dC5jbG9uZSgpO2UubmVnYXRpdmU9MCxuLm5lZ2F0aXZlPTA7Zm9yKHZhciBpPTA7ZS5pc0V2ZW4oKSYmbi5pc0V2ZW4oKTtpKyspZS5pdXNocm4oMSksbi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO2Zvcig7bi5pc0V2ZW4oKTspbi5pdXNocm4oMSk7dmFyIHI9ZS5jbXAobik7aWYocjwwKXt2YXIgbz1lO2U9bixuPW99ZWxzZSBpZigwPT09cnx8MD09PW4uY21wbigxKSlicmVhaztlLmlzdWIobil9cmV0dXJuIG4uaXVzaGxuKGkpfSxvLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVnY2QodCkuYS51bW9kKHQpfSxvLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LG8ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxvLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ0fSxvLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih0KXtpKCJudW1iZXIiPT10eXBlb2YgdCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2LHI9MTw8ZTtpZih0aGlzLmxlbmd0aDw9bilyZXR1cm4gdGhpcy5fZXhwYW5kKG4rMSksdGhpcy53b3Jkc1tuXXw9cix0aGlzO2Zvcih2YXIgbz1yLHM9bjswIT09byYmczx0aGlzLmxlbmd0aDtzKyspe3ZhciBhPTB8dGhpcy53b3Jkc1tzXTtvPShhKz1vKT4+PjI2LGEmPTY3MTA4ODYzLHRoaXMud29yZHNbc109YX1yZXR1cm4gMCE9PW8mJih0aGlzLndvcmRzW3NdPW8sdGhpcy5sZW5ndGgrKyksdGhpc30sby5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LG8ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24odCl7dmFyIGUsbj10PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFuKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZuKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKWU9MTtlbHNle24mJih0PS10KSxpKHQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciByPTB8dGhpcy53b3Jkc1swXTtlPXI9PT10PzA6cjx0Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sby5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIDE7dmFyIGU9dGhpcy51Y21wKHQpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lOmV9LG8ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+dC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBlPTAsbj10aGlzLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT0wfHRoaXMud29yZHNbbl0scj0wfHQud29yZHNbbl07aWYoaSE9PXIpe2k8cj9lPS0xOmk+ciYmKGU9MSk7YnJlYWt9fXJldHVybiBlfSxvLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcG4odCl9LG8ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dGhpcy5jbXAodCl9LG8ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT49MH0sby5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT49MH0sby5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXBuKHQpfSxvLnByb3RvdHlwZS5sdD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuY21wKHQpfSxvLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk8PTB9LG8ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk8PTB9LG8ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wbih0KX0sby5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmNtcCh0KX0sby5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB4KHQpfSxvLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxpKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gaSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciBnPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdih0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgbyhlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gYigpe3YuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiB5KCl7di5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt2LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gdygpe3YuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiB4KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9by5fcHJpbWUodCk7dGhpcy5tPWUucCx0aGlzLnByaW1lPWV9ZWxzZSBpKHQuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTSh0KXt4LmNhbGwodGhpcyx0KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBvKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXYucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHR9LHYucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odCl7dmFyIGUsbj10O2Rve3RoaXMuc3BsaXQobix0aGlzLnRtcCksZT0obj0obj10aGlzLmltdWxLKG4pKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZT50aGlzLm4pO3ZhciBpPWU8dGhpcy5uPy0xOm4udWNtcCh0aGlzLnApO3JldHVybiAwPT09aT8obi53b3Jkc1swXT0wLG4ubGVuZ3RoPTEpOmk+MD9uLmlzdWIodGhpcy5wKTpuLnN0cmlwKCksbn0sdi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXt0Lml1c2hybih0aGlzLm4sMCxlKX0sdi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfSxyKGIsdiksYi5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49TWF0aC5taW4odC5sZW5ndGgsOSksaT0wO2k8bjtpKyspZS53b3Jkc1tpXT10LndvcmRzW2ldO2lmKGUubGVuZ3RoPW4sdC5sZW5ndGg8PTkpcmV0dXJuIHQud29yZHNbMF09MCx2b2lkKHQubGVuZ3RoPTEpO3ZhciByPXQud29yZHNbOV07Zm9yKGUud29yZHNbZS5sZW5ndGgrK109NDE5NDMwMyZyLGk9MTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPTB8dC53b3Jkc1tpXTt0LndvcmRzW2ktMTBdPSg0MTk0MzAzJm8pPDw0fHI+Pj4yMixyPW99cj4+Pj0yMix0LndvcmRzW2ktMTBdPXIsMD09PXImJnQubGVuZ3RoPjEwP3QubGVuZ3RoLT0xMDp0Lmxlbmd0aC09OX0sYi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7dC53b3Jkc1t0Lmxlbmd0aF09MCx0LndvcmRzW3QubGVuZ3RoKzFdPTAsdC5sZW5ndGgrPTI7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT0wfHQud29yZHNbbl07ZSs9OTc3KmksdC53b3Jkc1tuXT02NzEwODg2MyZlLGU9NjQqaSsoZS82NzEwODg2NHwwKX1yZXR1cm4gMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJih0Lmxlbmd0aC0tLDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aC0tKSx0fSxyKHksdikscihfLHYpLHIodyx2KSx3LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPTE5KigwfHQud29yZHNbbl0pK2Uscj02NzEwODg2MyZpO2k+Pj49MjYsdC53b3Jkc1tuXT1yLGU9aX1yZXR1cm4gMCE9PWUmJih0LndvcmRzW3QubGVuZ3RoKytdPWUpLHR9LG8uX3ByaW1lPWZ1bmN0aW9uKHQpe2lmKGdbdF0pcmV0dXJuIGdbdF07dmFyIGU7aWYoImsyNTYiPT09dCllPW5ldyBiO2Vsc2UgaWYoInAyMjQiPT09dCllPW5ldyB5O2Vsc2UgaWYoInAxOTIiPT09dCllPW5ldyBfO2Vsc2V7aWYoInAyNTUxOSIhPT10KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3QpO2U9bmV3IHd9cmV0dXJuIGdbdF09ZSxlfSx4LnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih0KXtpKDA9PT10Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxlKXtpKDA9PSh0Lm5lZ2F0aXZlfGUubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGkodC5yZWQmJnQucmVkPT09ZS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0seC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UodCkuX2ZvcmNlUmVkKHRoaXMpOnQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlzWmVybygpP3QuY2xvbmUoKTp0aGlzLm0uc3ViKHQpLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuYWRkKGUpO3JldHVybiBuLmNtcCh0aGlzLm0pPj0wJiZuLmlzdWIodGhpcy5tKSxuLl9mb3JjZVJlZCh0aGlzKX0seC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LmlhZGQoZSk7cmV0dXJuIG4uY21wKHRoaXMubSk+PTAmJm4uaXN1Yih0aGlzLm0pLG59LHgucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgbj10LnN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG4uX2ZvcmNlUmVkKHRoaXMpfSx4LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciBuPXQuaXN1YihlKTtyZXR1cm4gbi5jbXBuKDApPDAmJm4uaWFkZCh0aGlzLm0pLG59LHgucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnVzaGxuKGUpKX0seC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQuaW11bChlKSl9LHgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQubXVsKGUpKX0seC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbXVsKHQsdC5jbG9uZSgpKX0seC5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSx4LnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT10aGlzLm0uYW5kbG4oMyk7aWYoaShlJTI9PTEpLDM9PT1lKXt2YXIgbj10aGlzLm0uYWRkKG5ldyBvKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHQsbil9Zm9yKHZhciByPXRoaXMubS5zdWJuKDEpLHM9MDshci5pc1plcm8oKSYmMD09PXIuYW5kbG4oMSk7KXMrKyxyLml1c2hybigxKTtpKCFyLmlzWmVybygpKTt2YXIgYT1uZXcgbygxKS50b1JlZCh0aGlzKSx1PWEucmVkTmVnKCksYz10aGlzLm0uc3VibigxKS5pdXNocm4oMSksaD10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKGg9bmV3IG8oMipoKmgpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhoLGMpLmNtcCh1KTspaC5yZWRJQWRkKHUpO2Zvcih2YXIgbD10aGlzLnBvdyhoLHIpLGQ9dGhpcy5wb3codCxyLmFkZG4oMSkuaXVzaHJuKDEpKSxmPXRoaXMucG93KHQscikscD1zOzAhPT1mLmNtcChhKTspe2Zvcih2YXIgbT1mLGc9MDswIT09bS5jbXAoYSk7ZysrKW09bS5yZWRTcXIoKTtpKGc8cCk7dmFyIHY9dGhpcy5wb3cobCxuZXcgbygxKS5pdXNobG4ocC1nLTEpKTtkPWQucmVkTXVsKHYpLGw9di5yZWRTcXIoKSxmPWYucmVkTXVsKGwpLHA9Z31yZXR1cm4gZH0seC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXt2YXIgZT10Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ZS5uZWdhdGl2ZT8oZS5uZWdhdGl2ZT0wLHRoaXMuaW1vZChlKS5yZWROZWcoKSk6dGhpcy5pbW9kKGUpfSx4LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCxlKXtpZihlLmlzWmVybygpKXJldHVybiBuZXcgbygxKS50b1JlZCh0aGlzKTtpZigwPT09ZS5jbXBuKDEpKXJldHVybiB0LmNsb25lKCk7dmFyIG49bmV3IEFycmF5KDE2KTtuWzBdPW5ldyBvKDEpLnRvUmVkKHRoaXMpLG5bMV09dDtmb3IodmFyIGk9MjtpPG4ubGVuZ3RoO2krKyluW2ldPXRoaXMubXVsKG5baS0xXSx0KTt2YXIgcj1uWzBdLHM9MCxhPTAsdT1lLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09dSYmKHU9MjYpLGk9ZS5sZW5ndGgtMTtpPj0wO2ktLSl7Zm9yKHZhciBjPWUud29yZHNbaV0saD11LTE7aD49MDtoLS0pe3ZhciBsPWM+PmgmMTtyIT09blswXSYmKHI9dGhpcy5zcXIocikpLDAhPT1sfHwwIT09cz8oczw8PTEsc3w9bCwoND09PSsrYXx8MD09PWkmJjA9PT1oKSYmKHI9dGhpcy5tdWwocixuW3NdKSxhPTAscz0wKSk6YT0wfXU9MjZ9cmV0dXJuIHJ9LHgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXt2YXIgZT10LnVtb2QodGhpcy5tKTtyZXR1cm4gZT09PXQ/ZS5jbG9uZSgpOmV9LHgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvbmUoKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxvLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBNKHQpfSxyKE0seCksTS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC51c2hsbih0aGlzLnNoaWZ0KSl9LE0ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW1vZCh0Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gdC53b3Jkc1swXT0wLHQubGVuZ3RoPTEsdDt2YXIgbj10LmltdWwoZSksaT1uLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxyPW4uaXN1YihpKS5pdXNocm4odGhpcy5zaGlmdCksbz1yO3JldHVybiByLmNtcCh0aGlzLm0pPj0wP289ci5pc3ViKHRoaXMubSk6ci5jbXBuKDApPDAmJihvPXIuaWFkZCh0aGlzLm0pKSxvLl9mb3JjZVJlZCh0aGlzKX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gbmV3IG8oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBuPXQubXVsKGUpLGk9bi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscj1uLmlzdWIoaSkuaXVzaHJuKHRoaXMuc2hpZnQpLHM9cjtyZXR1cm4gci5jbXAodGhpcy5tKT49MD9zPXIuaXN1Yih0aGlzLm0pOnIuY21wbigwKTwwJiYocz1yLmlhZGQodGhpcy5tKSkscy5fZm9yY2VSZWQodGhpcyl9LE0ucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW1vZCh0Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0odCx0aGlzKX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpewovKiEKICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwp2YXIgaT1uKDgxKSxyPW4oMTQ2KSxvPW4oODMpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdS5UWVBFRF9BUlJBWV9TVVBQT1JUPzIxNDc0ODM2NDc6MTA3Mzc0MTgyM31mdW5jdGlvbiBhKHQsZSl7aWYocygpPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoIik7cmV0dXJuIHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odD1uZXcgVWludDhBcnJheShlKSkuX19wcm90b19fPXUucHJvdG90eXBlOihudWxsPT09dCYmKHQ9bmV3IHUoZSkpLHQubGVuZ3RoPWUpLHR9ZnVuY3Rpb24gdSh0LGUsbil7aWYoISh1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fHRoaXMgaW5zdGFuY2VvZiB1KSlyZXR1cm4gbmV3IHUodCxlLG4pO2lmKCJudW1iZXIiPT10eXBlb2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gbCh0aGlzLHQpfXJldHVybiBjKHRoaXMsdCxlLG4pfWZ1bmN0aW9uIGModCxlLG4saSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZnVuY3Rpb24odCxlLG4saSl7aWYoZS5ieXRlTGVuZ3RoLG48MHx8ZS5ieXRlTGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidvZmZzZXQnIGlzIG91dCBvZiBib3VuZHMiKTtpZihlLmJ5dGVMZW5ndGg8bisoaXx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHMiKTtlPXZvaWQgMD09PW4mJnZvaWQgMD09PWk/bmV3IFVpbnQ4QXJyYXkoZSk6dm9pZCAwPT09aT9uZXcgVWludDhBcnJheShlLG4pOm5ldyBVaW50OEFycmF5KGUsbixpKTt1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHQ9ZSkuX19wcm90b19fPXUucHJvdG90eXBlOnQ9ZCh0LGUpO3JldHVybiB0fSh0LGUsbixpKToic3RyaW5nIj09dHlwZW9mIGU/ZnVuY3Rpb24odCxlLG4peyJzdHJpbmciPT10eXBlb2YgbiYmIiIhPT1ufHwobj0idXRmOCIpO2lmKCF1LmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcignImVuY29kaW5nIiBtdXN0IGJlIGEgdmFsaWQgc3RyaW5nIGVuY29kaW5nJyk7dmFyIGk9MHxwKGUsbikscj0odD1hKHQsaSkpLndyaXRlKGUsbik7ciE9PWkmJih0PXQuc2xpY2UoMCxyKSk7cmV0dXJuIHR9KHQsZSxuKTpmdW5jdGlvbih0LGUpe2lmKHUuaXNCdWZmZXIoZSkpe3ZhciBuPTB8ZihlLmxlbmd0aCk7cmV0dXJuIDA9PT0odD1hKHQsbikpLmxlbmd0aD90OihlLmNvcHkodCwwLDAsbiksdCl9aWYoZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8Imxlbmd0aCJpbiBlKXJldHVybiJudW1iZXIiIT10eXBlb2YgZS5sZW5ndGh8fChpPWUubGVuZ3RoKSE9aT9hKHQsMCk6ZCh0LGUpO2lmKCJCdWZmZXIiPT09ZS50eXBlJiZvKGUuZGF0YSkpcmV0dXJuIGQodCxlLmRhdGEpfXZhciBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4iKX0odCxlKX1mdW5jdGlvbiBoKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJyl9ZnVuY3Rpb24gbCh0LGUpe2lmKGgoZSksdD1hKHQsZTwwPzA6MHxmKGUpKSwhdS5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgbj0wO248ZTsrK24pdFtuXT0wO3JldHVybiB0fWZ1bmN0aW9uIGQodCxlKXt2YXIgbj1lLmxlbmd0aDwwPzA6MHxmKGUubGVuZ3RoKTt0PWEodCxuKTtmb3IodmFyIGk9MDtpPG47aSs9MSl0W2ldPTI1NSZlW2ldO3JldHVybiB0fWZ1bmN0aW9uIGYodCl7aWYodD49cygpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitzKCkudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHx0fWZ1bmN0aW9uIHAodCxlKXtpZih1LmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3JiYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKXJldHVybiB0LmJ5dGVMZW5ndGg7InN0cmluZyIhPXR5cGVvZiB0JiYodD0iIit0KTt2YXIgbj10Lmxlbmd0aDtpZigwPT09bilyZXR1cm4gMDtmb3IodmFyIGk9ITE7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2Ugdm9pZCAwOnJldHVybiBXKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqbjtjYXNlImhleCI6cmV0dXJuIG4+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gcSh0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBXKHQpLmxlbmd0aDtlPSgiIitlKS50b0xvd2VyQ2FzZSgpLGk9ITB9fWZ1bmN0aW9uIG0odCxlLG4pe3ZhciBpPXRbZV07dFtlXT10W25dLHRbbl09aX1mdW5jdGlvbiBnKHQsZSxuLGkscil7aWYoMD09PXQubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1uLG49MCk6bj4yMTQ3NDgzNjQ3P249MjE0NzQ4MzY0NzpuPC0yMTQ3NDgzNjQ4JiYobj0tMjE0NzQ4MzY0OCksbj0rbixpc05hTihuKSYmKG49cj8wOnQubGVuZ3RoLTEpLG48MCYmKG49dC5sZW5ndGgrbiksbj49dC5sZW5ndGgpe2lmKHIpcmV0dXJuLTE7bj10Lmxlbmd0aC0xfWVsc2UgaWYobjwwKXtpZighcilyZXR1cm4tMTtuPTB9aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT11LmZyb20oZSxpKSksdS5pc0J1ZmZlcihlKSlyZXR1cm4gMD09PWUubGVuZ3RoPy0xOnYodCxlLG4saSxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGUmPTI1NSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP3I/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQsZSxuKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHQsZSxuKTp2KHQsW2VdLG4saSxyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiB2KHQsZSxuLGkscil7dmFyIG8scz0xLGE9dC5sZW5ndGgsdT1lLmxlbmd0aDtpZih2b2lkIDAhPT1pJiYoInVjczIiPT09KGk9U3RyaW5nKGkpLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09aXx8InV0ZjE2bGUiPT09aXx8InV0Zi0xNmxlIj09PWkpKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO3M9MixhLz0yLHUvPTIsbi89Mn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDE9PT1zP3RbZV06dC5yZWFkVUludDE2QkUoZSpzKX1pZihyKXt2YXIgaD0tMTtmb3Iobz1uO288YTtvKyspaWYoYyh0LG8pPT09YyhlLC0xPT09aD8wOm8taCkpe2lmKC0xPT09aCYmKGg9byksby1oKzE9PT11KXJldHVybiBoKnN9ZWxzZS0xIT09aCYmKG8tPW8taCksaD0tMX1lbHNlIGZvcihuK3U+YSYmKG49YS11KSxvPW47bz49MDtvLS0pe2Zvcih2YXIgbD0hMCxkPTA7ZDx1O2QrKylpZihjKHQsbytkKSE9PWMoZSxkKSl7bD0hMTticmVha31pZihsKXJldHVybiBvfXJldHVybi0xfWZ1bmN0aW9uIGIodCxlLG4saSl7bj1OdW1iZXIobil8fDA7dmFyIHI9dC5sZW5ndGgtbjtpPyhpPU51bWJlcihpKSk+ciYmKGk9cik6aT1yO3ZhciBvPWUubGVuZ3RoO2lmKG8lMiE9MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTtpPm8vMiYmKGk9by8yKTtmb3IodmFyIHM9MDtzPGk7KytzKXt2YXIgYT1wYXJzZUludChlLnN1YnN0cigyKnMsMiksMTYpO2lmKGlzTmFOKGEpKXJldHVybiBzO3RbbitzXT1hfXJldHVybiBzfWZ1bmN0aW9uIHkodCxlLG4saSl7cmV0dXJuIEgoVyhlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBfKHQsZSxuLGkpe3JldHVybiBIKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDsrK24pZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQobikpO3JldHVybiBlfShlKSx0LG4saSl9ZnVuY3Rpb24gdyh0LGUsbixpKXtyZXR1cm4gXyh0LGUsbixpKX1mdW5jdGlvbiB4KHQsZSxuLGkpe3JldHVybiBIKHEoZSksdCxuLGkpfWZ1bmN0aW9uIE0odCxlLG4saSl7cmV0dXJuIEgoZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyLG89W10scz0wO3M8dC5sZW5ndGgmJiEoKGUtPTIpPDApOysrcyluPXQuY2hhckNvZGVBdChzKSxpPW4+Pjgscj1uJTI1NixvLnB1c2gociksby5wdXNoKGkpO3JldHVybiBvfShlLHQubGVuZ3RoLW4pLHQsbixpKX1mdW5jdGlvbiBTKHQsZSxuKXtyZXR1cm4gMD09PWUmJm49PT10Lmxlbmd0aD9pLmZyb21CeXRlQXJyYXkodCk6aS5mcm9tQnl0ZUFycmF5KHQuc2xpY2UoZSxuKSl9ZnVuY3Rpb24gRSh0LGUsbil7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIGk9W10scj1lO3I8bjspe3ZhciBvLHMsYSx1LGM9dFtyXSxoPW51bGwsbD1jPjIzOT80OmM+MjIzPzM6Yz4xOTE/MjoxO2lmKHIrbDw9bilzd2l0Y2gobCl7Y2FzZSAxOmM8MTI4JiYoaD1jKTticmVhaztjYXNlIDI6MTI4PT0oMTkyJihvPXRbcisxXSkpJiYodT0oMzEmYyk8PDZ8NjMmbyk+MTI3JiYoaD11KTticmVhaztjYXNlIDM6bz10W3IrMV0scz10W3IrMl0sMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJih1PSgxNSZjKTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjIwNDcmJih1PDU1Mjk2fHx1PjU3MzQzKSYmKGg9dSk7YnJlYWs7Y2FzZSA0Om89dFtyKzFdLHM9dFtyKzJdLGE9dFtyKzNdLDEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYxMjg9PSgxOTImYSkmJih1PSgxNSZjKTw8MTh8KDYzJm8pPDwxMnwoNjMmcyk8PDZ8NjMmYSk+NjU1MzUmJnU8MTExNDExMiYmKGg9dSl9bnVsbD09PWg/KGg9NjU1MzMsbD0xKTpoPjY1NTM1JiYoaC09NjU1MzYsaS5wdXNoKGg+Pj4xMCYxMDIzfDU1Mjk2KSxoPTU2MzIwfDEwMjMmaCksaS5wdXNoKGgpLHIrPWx9cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8PUEpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQpO3ZhciBuPSIiLGk9MDtmb3IoO2k8ZTspbis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdC5zbGljZShpLGkrPUEpKTtyZXR1cm4gbn0oaSl9ZS5CdWZmZXI9dSxlLlNsb3dCdWZmZXI9ZnVuY3Rpb24odCl7K3QhPXQmJih0PTApO3JldHVybiB1LmFsbG9jKCt0KX0sZS5JTlNQRUNUX01BWF9CWVRFUz01MCx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ9dm9pZCAwIT09dC5UWVBFRF9BUlJBWV9TVVBQT1JUP3QuVFlQRURfQVJSQVlfU1VQUE9SVDpmdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PXQuZm9vKCkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YmFycmF5JiYwPT09dC5zdWJhcnJheSgxLDEpLmJ5dGVMZW5ndGh9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGUua01heExlbmd0aD1zKCksdS5wb29sU2l6ZT04MTkyLHUuX2F1Z21lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19fPXUucHJvdG90eXBlLHR9LHUuZnJvbT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMobnVsbCx0LGUsbil9LHUuVFlQRURfQVJSQVlfU1VQUE9SVCYmKHUucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSx1Ll9fcHJvdG9fXz1VaW50OEFycmF5LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuc3BlY2llcyYmdVtTeW1ib2wuc3BlY2llc109PT11JiZPYmplY3QuZGVmaW5lUHJvcGVydHkodSxTeW1ib2wuc3BlY2llcyx7dmFsdWU6bnVsbCxjb25maWd1cmFibGU6ITB9KSksdS5hbGxvYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBoKGUpLGU8PTA/YSh0LGUpOnZvaWQgMCE9PW4/InN0cmluZyI9PXR5cGVvZiBpP2EodCxlKS5maWxsKG4saSk6YSh0LGUpLmZpbGwobik6YSh0LGUpfShudWxsLHQsZSxuKX0sdS5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbChudWxsLHQpfSx1LmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX0sdS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7aWYoIXUuaXNCdWZmZXIodCl8fCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZih0PT09ZSlyZXR1cm4gMDtmb3IodmFyIG49dC5sZW5ndGgsaT1lLmxlbmd0aCxyPTAsbz1NYXRoLm1pbihuLGkpO3I8bzsrK3IpaWYodFtyXSE9PWVbcl0pe249dFtyXSxpPWVbcl07YnJlYWt9cmV0dXJuIG48aT8tMTppPG4/MTowfSx1LmlzRW5jb2Rpbmc9ZnVuY3Rpb24odCl7c3dpdGNoKFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHUuY29uY2F0PWZ1bmN0aW9uKHQsZSl7aWYoIW8odCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdS5hbGxvYygwKTt2YXIgbjtpZih2b2lkIDA9PT1lKWZvcihlPTAsbj0wO248dC5sZW5ndGg7KytuKWUrPXRbbl0ubGVuZ3RoO3ZhciBpPXUuYWxsb2NVbnNhZmUoZSkscj0wO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBzPXRbbl07aWYoIXUuaXNCdWZmZXIocykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO3MuY29weShpLHIpLHIrPXMubGVuZ3RofXJldHVybiBpfSx1LmJ5dGVMZW5ndGg9cCx1LnByb3RvdHlwZS5faXNCdWZmZXI9ITAsdS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz0yKW0odGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9NCltKHRoaXMsZSxlKzMpLG0odGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz04KW0odGhpcyxlLGUrNyksbSh0aGlzLGUrMSxlKzYpLG0odGhpcyxlKzIsZSs1KSxtKHRoaXMsZSszLGUrNCk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9MHx0aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/RSh0aGlzLDAsdCk6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPSExO2lmKCh2b2lkIDA9PT1lfHxlPDApJiYoZT0wKSxlPnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1ufHxuPnRoaXMubGVuZ3RoKSYmKG49dGhpcy5sZW5ndGgpLG48PTApcmV0dXJuIiI7aWYoKG4+Pj49MCk8PShlPj4+PTApKXJldHVybiIiO2Zvcih0fHwodD0idXRmOCIpOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gTyh0aGlzLGUsbik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gRSh0aGlzLGUsbik7Y2FzZSJhc2NpaSI6cmV0dXJuIEModGhpcyxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGsodGhpcyxlLG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUyh0aGlzLGUsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBQKHRoaXMsZSxuKTtkZWZhdWx0OmlmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGk9ITB9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10fHwwPT09dS5jb21wYXJlKHRoaXMsdCl9LHUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixuPWUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJih0PXRoaXMudG9TdHJpbmcoImhleCIsMCxuKS5tYXRjaCgvLnsyfS9nKS5qb2luKCIgIiksdGhpcy5sZW5ndGg+biYmKHQrPSIgLi4uICIpKSwiPEJ1ZmZlciAiK3QrIj4ifSx1LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PW4mJihuPXQ/dC5sZW5ndGg6MCksdm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9dGhpcy5sZW5ndGgpLGU8MHx8bj50Lmxlbmd0aHx8aTwwfHxyPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihpPj1yJiZlPj1uKXJldHVybiAwO2lmKGk+PXIpcmV0dXJuLTE7aWYoZT49bilyZXR1cm4gMTtpZih0aGlzPT09dClyZXR1cm4gMDtmb3IodmFyIG89KHI+Pj49MCktKGk+Pj49MCkscz0obj4+Pj0wKS0oZT4+Pj0wKSxhPU1hdGgubWluKG8scyksYz10aGlzLnNsaWNlKGksciksaD10LnNsaWNlKGUsbiksbD0wO2w8YTsrK2wpaWYoY1tsXSE9PWhbbF0pe289Y1tsXSxzPWhbbF07YnJlYWt9cmV0dXJuIG88cz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLG4pfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZyh0aGlzLHQsZSxuLCEwKX0sdS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBnKHRoaXMsdCxlLG4sITEpfSx1LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixpKXtpZih2b2lkIDA9PT1lKWk9InV0ZjgiLG49dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09biYmInN0cmluZyI9PXR5cGVvZiBlKWk9ZSxuPXRoaXMubGVuZ3RoLGU9MDtlbHNle2lmKCFpc0Zpbml0ZShlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7ZXw9MCxpc0Zpbml0ZShuKT8obnw9MCx2b2lkIDA9PT1pJiYoaT0idXRmOCIpKTooaT1uLG49dm9pZCAwKX12YXIgcj10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1ufHxuPnIpJiYobj1yKSx0Lmxlbmd0aD4wJiYobjwwfHxlPDApfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2l8fChpPSJ1dGY4Iik7Zm9yKHZhciBvPSExOzspc3dpdGNoKGkpe2Nhc2UiaGV4IjpyZXR1cm4gYih0aGlzLHQsZSxuKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB5KHRoaXMsdCxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBfKHRoaXMsdCxlLG4pO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHcodGhpcyx0LGUsbik7Y2FzZSJiYXNlNjQiOnJldHVybiB4KHRoaXMsdCxlLG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gTSh0aGlzLHQsZSxuKTtkZWZhdWx0OmlmKG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitpKTtpPSgiIitpKS50b0xvd2VyQ2FzZSgpLG89ITB9fSx1LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBBPTQwOTY7ZnVuY3Rpb24gQyh0LGUsbil7dmFyIGk9IiI7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIHI9ZTtyPG47KytyKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIGsodCxlLG4pe3ZhciBpPSIiO249TWF0aC5taW4odC5sZW5ndGgsbik7Zm9yKHZhciByPWU7cjxuOysrcilpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIE8odCxlLG4pe3ZhciBpPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFufHxuPDB8fG4+aSkmJihuPWkpO2Zvcih2YXIgcj0iIixvPWU7bzxuOysrbylyKz1OKHRbb10pO3JldHVybiByfWZ1bmN0aW9uIFAodCxlLG4pe2Zvcih2YXIgaT10LnNsaWNlKGUsbikscj0iIixvPTA7bzxpLmxlbmd0aDtvKz0yKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaVtvXSsyNTYqaVtvKzFdKTtyZXR1cm4gcn1mdW5jdGlvbiBUKHQsZSxuKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBqKHQsZSxuLGkscixvKXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5yfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKG4raT50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUsbixpKXtlPDAmJihlPTY1NTM1K2UrMSk7Zm9yKHZhciByPTAsbz1NYXRoLm1pbih0Lmxlbmd0aC1uLDIpO3I8bzsrK3IpdFtuK3JdPShlJjI1NTw8OCooaT9yOjEtcikpPj4+OCooaT9yOjEtcil9ZnVuY3Rpb24gTCh0LGUsbixpKXtlPDAmJihlPTQyOTQ5NjcyOTUrZSsxKTtmb3IodmFyIHI9MCxvPU1hdGgubWluKHQubGVuZ3RoLW4sNCk7cjxvOysrcil0W24rcl09ZT4+PjgqKGk/cjozLXIpJjI1NX1mdW5jdGlvbiBCKHQsZSxuLGkscixvKXtpZihuK2k+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKG48MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRCh0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDQpLHIud3JpdGUodCxlLG4saSwyMyw0KSxuKzR9ZnVuY3Rpb24gUih0LGUsbixpLG8pe3JldHVybiBvfHxCKHQsMCxuLDgpLHIud3JpdGUodCxlLG4saSw1Miw4KSxuKzh9dS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgbixpPXRoaXMubGVuZ3RoO2lmKCh0PX5+dCk8MD8odCs9aSk8MCYmKHQ9MCk6dD5pJiYodD1pKSwoZT12b2lkIDA9PT1lP2k6fn5lKTwwPyhlKz1pKTwwJiYoZT0wKTplPmkmJihlPWkpLGU8dCYmKGU9dCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUKShuPXRoaXMuc3ViYXJyYXkodCxlKSkuX19wcm90b19fPXUucHJvdG90eXBlO2Vsc2V7dmFyIHI9ZS10O249bmV3IHUocix2b2lkIDApO2Zvcih2YXIgbz0wO288cjsrK28pbltvXT10aGlzW28rdF19cmV0dXJuIG59LHUucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLG4pe3R8PTAsZXw9MCxufHxUKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPXRoaXNbdF0scj0xLG89MDsrK288ZSYmKHIqPTI1Nik7KWkrPXRoaXNbdCtvXSpyO3JldHVybiBpfSx1LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3QrLS1lXSxyPTE7ZT4wJiYocio9MjU2KTspaSs9dGhpc1t0Ky0tZV0qcjtyZXR1cm4gaX0sdS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx1LnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDh8dGhpc1t0KzFdfSx1LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxuKXt0fD0wLGV8PTAsbnx8VCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgaT10aGlzW3RdLHI9MSxvPTA7KytvPGUmJihyKj0yNTYpOylpKz10aGlzW3Qrb10qcjtyZXR1cm4gaT49KHIqPTEyOCkmJihpLT1NYXRoLnBvdygyLDgqZSkpLGl9LHUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0LGUsbil7dHw9MCxlfD0wLG58fFQodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIGk9ZSxyPTEsbz10aGlzW3QrLS1pXTtpPjAmJihyKj0yNTYpOylvKz10aGlzW3QrLS1pXSpyO3JldHVybiBvPj0ocio9MTI4KSYmKG8tPU1hdGgucG93KDIsOCplKSksb30sdS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe2V8fFQodCwyLHRoaXMubGVuZ3RoKTt2YXIgbj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmbj80Mjk0OTAxNzYwfG46bn0sdS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXtlfHxUKHQsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LHUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LHUucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119LHUucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw0LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDIzLDQpfSx1LnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxUKHQsNCx0aGlzLmxlbmd0aCksci5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fFQodCw4LHRoaXMubGVuZ3RoKSxyLnJlYWQodGhpcyx0LCEwLDUyLDgpfSx1LnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8VCh0LDgsdGhpcy5sZW5ndGgpLHIucmVhZCh0aGlzLHQsITEsNTIsOCl9LHUucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxuLGkpeyh0PSt0LGV8PTAsbnw9MCxpKXx8aih0aGlzLHQsZSxuLE1hdGgucG93KDIsOCpuKS0xLDApO3ZhciByPTEsbz0wO2Zvcih0aGlzW2VdPTI1NSZ0OysrbzxuJiYocio9MjU2KTspdGhpc1tlK29dPXQvciYyNTU7cmV0dXJuIGUrbn0sdS5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odCxlLG4saSl7KHQ9K3QsZXw9MCxufD0wLGkpfHxqKHRoaXMsdCxlLG4sTWF0aC5wb3coMiw4Km4pLTEsMCk7dmFyIHI9bi0xLG89MTtmb3IodGhpc1tlK3JdPTI1NSZ0Oy0tcj49MCYmKG8qPTI1Nik7KXRoaXNbZStyXT10L28mMjU1O3JldHVybiBlK259LHUucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDI1NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHRoaXNbZV09MjU1JnQsZSsxfSx1LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsMiw2NTUzNSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwyLDY1NTM1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQpOkkodGhpcyx0LGUsITEpLGUrMn0sdS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCk6TCh0aGlzLHQsZSwhMCksZSs0fSx1LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHUuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0KTpMKHRoaXMsdCxlLCExKSxlKzR9LHUucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odCxlLG4saSl7aWYodD0rdCxlfD0wLCFpKXt2YXIgcj1NYXRoLnBvdygyLDgqbi0xKTtqKHRoaXMsdCxlLG4sci0xLC1yKX12YXIgbz0wLHM9MSxhPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytvPG4mJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28tMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9K3QsZXw9MCwhaSl7dmFyIHI9TWF0aC5wb3coMiw4Km4tMSk7aih0aGlzLHQsZSxuLHItMSwtcil9dmFyIG89bi0xLHM9MSxhPTA7Zm9yKHRoaXNbZStvXT0yNTUmdDstLW8+PTAmJihzKj0yNTYpOyl0PDAmJjA9PT1hJiYwIT09dGhpc1tlK28rMV0mJihhPTEpLHRoaXNbZStvXT0odC9zPj4wKS1hJjI1NTtyZXR1cm4gZStufSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGV8PTAsbnx8aih0aGlzLHQsZSwxLDEyNywtMTI4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44KTpJKHRoaXMsdCxlLCEwKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0KTpJKHRoaXMsdCxlLCExKSxlKzJ9LHUucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZXw9MCxufHxqKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQpOkwodGhpcyx0LGUsITApLGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlfD0wLG58fGoodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0PDAmJih0PTQyOTQ5NjcyOTUrdCsxKSx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCk6TCh0aGlzLHQsZSwhMSksZSs0fSx1LnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCEwLG4pfSx1LnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBEKHRoaXMsdCxlLCExLG4pfSx1LnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUih0aGlzLHQsZSwhMCxuKX0sdS5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIFIodGhpcyx0LGUsITEsbil9LHUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlLG4saSl7aWYobnx8KG49MCksaXx8MD09PWl8fChpPXRoaXMubGVuZ3RoKSxlPj10Lmxlbmd0aCYmKGU9dC5sZW5ndGgpLGV8fChlPTApLGk+MCYmaTxuJiYoaT1uKSxpPT09bilyZXR1cm4gMDtpZigwPT09dC5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihuPDB8fG4+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoaTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO2k+dGhpcy5sZW5ndGgmJihpPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPGktbiYmKGk9dC5sZW5ndGgtZStuKTt2YXIgcixvPWktbjtpZih0aGlzPT09dCYmbjxlJiZlPGkpZm9yKHI9by0xO3I+PTA7LS1yKXRbcitlXT10aGlzW3Irbl07ZWxzZSBpZihvPDFlM3x8IXUuVFlQRURfQVJSQVlfU1VQUE9SVClmb3Iocj0wO3I8bzsrK3IpdFtyK2VdPXRoaXNbcituXTtlbHNlIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHQsdGhpcy5zdWJhcnJheShuLG4rbyksZSk7cmV0dXJuIG99LHUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLG4saSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KGk9ZSxlPTAsbj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiBuJiYoaT1uLG49dGhpcy5sZW5ndGgpLDE9PT10Lmxlbmd0aCl7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3I8MjU2JiYodD1yKX1pZih2b2lkIDAhPT1pJiYic3RyaW5nIiE9dHlwZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmIXUuaXNFbmNvZGluZyhpKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2kpfWVsc2UibnVtYmVyIj09dHlwZW9mIHQmJih0Jj0yNTUpO2lmKGU8MHx8dGhpcy5sZW5ndGg8ZXx8dGhpcy5sZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobjw9ZSlyZXR1cm4gdGhpczt2YXIgbztpZihlPj4+PTAsbj12b2lkIDA9PT1uP3RoaXMubGVuZ3RoOm4+Pj4wLHR8fCh0PTApLCJudW1iZXIiPT10eXBlb2YgdClmb3Iobz1lO288bjsrK28pdGhpc1tvXT10O2Vsc2V7dmFyIHM9dS5pc0J1ZmZlcih0KT90OlcobmV3IHUodCxpKS50b1N0cmluZygpKSxhPXMubGVuZ3RoO2ZvcihvPTA7bzxuLWU7KytvKXRoaXNbbytlXT1zW28lYV19cmV0dXJuIHRoaXN9O3ZhciB6PS9bXitcLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIE4odCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFcodCxlKXt2YXIgbjtlPWV8fDEvMDtmb3IodmFyIGk9dC5sZW5ndGgscj1udWxsLG89W10scz0wO3M8aTsrK3Mpe2lmKChuPXQuY2hhckNvZGVBdChzKSk+NTUyOTUmJm48NTczNDQpe2lmKCFyKXtpZihuPjU2MzE5KXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYocysxPT09aSl7KGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfXI9bjtjb250aW51ZX1pZihuPDU2MzIwKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSkscj1uO2NvbnRpbnVlfW49NjU1MzYrKHItNTUyOTY8PDEwfG4tNTYzMjApfWVsc2UgciYmKGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKHI9bnVsbCxuPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigoZS09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKG48MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztvLnB1c2gobj4+MTh8MjQwLG4+PjEyJjYzfDEyOCxuPj42JjYzfDEyOCw2MyZufDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIHEodCl7cmV0dXJuIGkudG9CeXRlQXJyYXkoZnVuY3Rpb24odCl7aWYoKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0odCkucmVwbGFjZSh6LCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT0wOyl0Kz0iPSI7cmV0dXJuIHR9KHQpKX1mdW5jdGlvbiBIKHQsZSxuLGkpe2Zvcih2YXIgcj0wO3I8aSYmIShyK24+PWUubGVuZ3RofHxyPj10Lmxlbmd0aCk7KytyKWVbcituXT10W3JdO3JldHVybiByfX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7dmFyIHIsbz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1yKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMiksYT1uKDMyMCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy50eXBlPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNDb25mbGF0YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiExfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNvbmZsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiExfSx0fSgpO2UuTWVzc2FnZT11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBvKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0NvbmZsYXRhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY29uZmxhdGU9ZnVuY3Rpb24odCl7cmV0dXJuITB9LGV9KHUpO2UuQ29uZmxhdGFibGVNZXNzYWdlPWMsZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPW8uZ2V0KHQpO24mJjAhPT1uLmxlbmd0aD9zLmV2ZXJ5KHMucmV0cm8obiksZnVuY3Rpb24obil7cmV0dXJuIW58fGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0hMDt0cnl7aT0iZnVuY3Rpb24iPT10eXBlb2YgdD90KGUsbik6dC5tZXNzYWdlSG9vayhlLG4pfWNhdGNoKHQpe2ModCl9cmV0dXJuIGl9KG4sdCxlKX0pJiZwKHQsZSk6cCh0LGUpfWUuc2VuZE1lc3NhZ2U9bixlLnBvc3RNZXNzYWdlPWZ1bmN0aW9uKHQsZSl7ZS5pc0NvbmZsYXRhYmxlJiZzLnNvbWUocixmdW5jdGlvbihuKXtyZXR1cm4gbi5oYW5kbGVyPT09dCYmISFuLm1zZyYmbi5tc2cudHlwZT09PWUudHlwZSYmISFuLm1zZy5pc0NvbmZsYXRhYmxlJiZuLm1zZy5jb25mbGF0ZShlKX0pfHxtKHQsZSl9LGUuaW5zdGFsbE1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7biYmLTEhPT1uLmluZGV4T2YoZSl8fChuP24ucHVzaChlKTpvLnNldCh0LFtlXSkpfSxlLnJlbW92ZU1lc3NhZ2VIb29rPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5nZXQodCk7aWYobil7dmFyIGk9bi5pbmRleE9mKGUpOy0xIT09aSYmKG5baV09bnVsbCx2KG4pKX19LGUuY2xlYXJEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPW8uZ2V0KHQpO2UmJmUubGVuZ3RoPjAmJihzLkFycmF5RXh0LmZpbGwoZSxudWxsKSx2KGUpKSxzLmVhY2gocixmdW5jdGlvbihlKXtlLmhhbmRsZXI9PT10JiYoZS5oYW5kbGVyPW51bGwsZS5tc2c9bnVsbCl9KX0sZS5mbHVzaD1mdW5jdGlvbigpe2x8fDA9PT1ofHwoZihoKSxsPSEwLGcoKSxsPSExKX0sZS5nZXRFeGNlcHRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGUuc2V0RXhjZXB0aW9uSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1jO3JldHVybiBjPXQsZX07dmFyIHI9bmV3IGEuTGlua2VkTGlzdCxvPW5ldyBXZWFrTWFwLHU9bmV3IFNldCxjPWZ1bmN0aW9uKHQpe2NvbnNvbGUuZXJyb3IodCl9LGg9MCxsPSExLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6dCxmPSJmdW5jdGlvbiI9PXR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZT9jYW5jZWxBbmltYXRpb25GcmFtZTppO2Z1bmN0aW9uIHAodCxlKXt0cnl7dC5wcm9jZXNzTWVzc2FnZShlKX1jYXRjaCh0KXtjKHQpfX1mdW5jdGlvbiBtKHQsZSl7ci5hZGRMYXN0KHtoYW5kbGVyOnQsbXNnOmV9KSwwPT09aCYmKGg9ZChnKSl9ZnVuY3Rpb24gZygpe2lmKGg9MCwhci5pc0VtcHR5KXt2YXIgdD17aGFuZGxlcjpudWxsLG1zZzpudWxsfTtmb3Ioci5hZGRMYXN0KHQpOzspe3ZhciBlPXIucmVtb3ZlRmlyc3QoKTtpZihlPT09dClyZXR1cm47ZS5oYW5kbGVyJiZlLm1zZyYmbihlLmhhbmRsZXIsZS5tc2cpfX19ZnVuY3Rpb24gdih0KXswPT09dS5zaXplJiZkKGIpLHUuYWRkKHQpfWZ1bmN0aW9uIGIoKXt1LmZvckVhY2goeSksdS5jbGVhcigpfWZ1bmN0aW9uIHkodCl7cy5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LF8pfWZ1bmN0aW9uIF8odCl7cmV0dXJuIG51bGw9PT10fX0oZS5NZXNzYWdlTG9vcHx8KGUuTWVzc2FnZUxvb3A9e30pKX0pLmNhbGwodGhpcyxuKDQ0KS5zZXRJbW1lZGlhdGUsbig0NCkuY2xlYXJJbW1lZGlhdGUpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsbil7dmFyIGk7IWZ1bmN0aW9uKCl7dmFyIHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmJiZzZWxmfHwib2JqZWN0Ij09dHlwZW9mIHQmJnQuZ2xvYmFsPT09dCYmdHx8dGhpc3x8e30sbz1yLl8scz1BcnJheS5wcm90b3R5cGUsYT1PYmplY3QucHJvdG90eXBlLHU9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2w/U3ltYm9sLnByb3RvdHlwZTpudWxsLGM9cy5wdXNoLGg9cy5zbGljZSxsPWEudG9TdHJpbmcsZD1hLmhhc093blByb3BlcnR5LGY9QXJyYXkuaXNBcnJheSxwPU9iamVjdC5rZXlzLG09T2JqZWN0LmNyZWF0ZSxnPWZ1bmN0aW9uKCl7fSx2PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygdj90OnRoaXMgaW5zdGFuY2VvZiB2P3ZvaWQodGhpcy5fd3JhcHBlZD10KTpuZXcgdih0KX07ZS5ub2RlVHlwZT9yLl89djooIW4ubm9kZVR5cGUmJm4uZXhwb3J0cyYmKGU9bi5leHBvcnRzPXYpLGUuXz12KSx2LlZFUlNJT049IjEuOS4xIjt2YXIgYix5PWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1lKXJldHVybiB0O3N3aXRjaChudWxsPT1uPzM6bil7Y2FzZSAxOnJldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5jYWxsKGUsbil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24obixpLHIpe3JldHVybiB0LmNhbGwoZSxuLGkscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24obixpLHIsbyl7cmV0dXJuIHQuY2FsbChlLG4saSxyLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fSxfPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdi5pdGVyYXRlZSE9PWI/di5pdGVyYXRlZSh0LGUpOm51bGw9PXQ/di5pZGVudGl0eTp2LmlzRnVuY3Rpb24odCk/eSh0LGUsbik6di5pc09iamVjdCh0KSYmIXYuaXNBcnJheSh0KT92Lm1hdGNoZXIodCk6di5wcm9wZXJ0eSh0KX07di5pdGVyYXRlZT1iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF8odCxlLDEvMCl9O3ZhciB3PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9bnVsbD09ZT90Lmxlbmd0aC0xOitlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPU1hdGgubWF4KGFyZ3VtZW50cy5sZW5ndGgtZSwwKSxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09YXJndW1lbnRzW3IrZV07c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHRoaXMsaSk7Y2FzZSAxOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0saSk7Y2FzZSAyOnJldHVybiB0LmNhbGwodGhpcyxhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdLGkpfXZhciBvPUFycmF5KGUrMSk7Zm9yKHI9MDtyPGU7cisrKW9bcl09YXJndW1lbnRzW3JdO3JldHVybiBvW2VdPWksdC5hcHBseSh0aGlzLG8pfX0seD1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm57fTtpZihtKXJldHVybiBtKHQpO2cucHJvdG90eXBlPXQ7dmFyIGU9bmV3IGc7cmV0dXJuIGcucHJvdG90eXBlPW51bGwsZX0sTT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmVbdF19fSxTPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJmQuY2FsbCh0LGUpfSxFPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXtpZihudWxsPT10KXJldHVybjt0PXRbZVtpXV19cmV0dXJuIG4/dDp2b2lkIDB9LEE9TWF0aC5wb3coMiw1MyktMSxDPU0oImxlbmd0aCIpLGs9ZnVuY3Rpb24odCl7dmFyIGU9Qyh0KTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJmU8PUF9O3YuZWFjaD12LmZvckVhY2g9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7aWYoZT15KGUsbiksayh0KSlmb3IoaT0wLHI9dC5sZW5ndGg7aTxyO2krKyllKHRbaV0saSx0KTtlbHNle3ZhciBvPXYua2V5cyh0KTtmb3IoaT0wLHI9by5sZW5ndGg7aTxyO2krKyllKHRbb1tpXV0sb1tpXSx0KX1yZXR1cm4gdH0sdi5tYXA9di5jb2xsZWN0PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz1BcnJheShyKSxzPTA7czxyO3MrKyl7dmFyIGE9aT9pW3NdOnM7b1tzXT1lKHRbYV0sYSx0KX1yZXR1cm4gb307dmFyIE89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+PTM7cmV0dXJuIGZ1bmN0aW9uKGUsbixpLHIpe3ZhciBvPSFrKGUpJiZ2LmtleXMoZSkscz0ob3x8ZSkubGVuZ3RoLGE9dD4wPzA6cy0xO2ZvcihyfHwoaT1lW28/b1thXTphXSxhKz10KTthPj0wJiZhPHM7YSs9dCl7dmFyIHU9bz9vW2FdOmE7aT1uKGksZVt1XSx1LGUpfXJldHVybiBpfShlLHkobixyLDQpLGksbyl9fTt2LnJlZHVjZT12LmZvbGRsPXYuaW5qZWN0PU8oMSksdi5yZWR1Y2VSaWdodD12LmZvbGRyPU8oLTEpLHYuZmluZD12LmRldGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9KGsodCk/di5maW5kSW5kZXg6di5maW5kS2V5KSh0LGUsbik7aWYodm9pZCAwIT09aSYmLTEhPT1pKXJldHVybiB0W2ldfSx2LmZpbHRlcj12LnNlbGVjdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9W107cmV0dXJuIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixyKXtlKHQsbixyKSYmaS5wdXNoKHQpfSksaX0sdi5yZWplY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2LmZpbHRlcih0LHYubmVnYXRlKF8oZSkpLG4pfSx2LmV2ZXJ5PXYuYWxsPWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKCFlKHRbc10scyx0KSlyZXR1cm4hMX1yZXR1cm4hMH0sdi5zb21lPXYuYW55PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGk9IWsodCkmJnYua2V5cyh0KSxyPShpfHx0KS5sZW5ndGgsbz0wO288cjtvKyspe3ZhciBzPWk/aVtvXTpvO2lmKGUodFtzXSxzLHQpKXJldHVybiEwfXJldHVybiExfSx2LmNvbnRhaW5zPXYuaW5jbHVkZXM9di5pbmNsdWRlPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksKCJudW1iZXIiIT10eXBlb2Ygbnx8aSkmJihuPTApLHYuaW5kZXhPZih0LGUsbik+PTB9LHYuaW52b2tlPXcoZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI7cmV0dXJuIHYuaXNGdW5jdGlvbihlKT9yPWU6di5pc0FycmF5KGUpJiYoaT1lLnNsaWNlKDAsLTEpLGU9ZVtlLmxlbmd0aC0xXSksdi5tYXAodCxmdW5jdGlvbih0KXt2YXIgbz1yO2lmKCFvKXtpZihpJiZpLmxlbmd0aCYmKHQ9RSh0LGkpKSxudWxsPT10KXJldHVybjtvPXRbZV19cmV0dXJuIG51bGw9PW8/bzpvLmFwcGx5KHQsbil9KX0pLHYucGx1Y2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdi5tYXAodCx2LnByb3BlcnR5KGUpKX0sdi53aGVyZT1mdW5jdGlvbih0LGUpe3JldHVybiB2LmZpbHRlcih0LHYubWF0Y2hlcihlKSl9LHYuZmluZFdoZXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZmluZCh0LHYubWF0Y2hlcihlKSl9LHYubWF4PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89LTEvMCxzPS0xLzA7aWYobnVsbD09ZXx8Im51bWJlciI9PXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIHRbMF0mJm51bGwhPXQpZm9yKHZhciBhPTAsdT0odD1rKHQpP3Q6di52YWx1ZXModCkpLmxlbmd0aDthPHU7YSsrKW51bGwhPShpPXRbYV0pJiZpPm8mJihvPWkpO2Vsc2UgZT1fKGUsbiksdi5lYWNoKHQsZnVuY3Rpb24odCxuLGkpeygocj1lKHQsbixpKSk+c3x8cj09PS0xLzAmJm89PT0tMS8wKSYmKG89dCxzPXIpfSk7cmV0dXJuIG99LHYubWluPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MS8wLHM9MS8wO2lmKG51bGw9PWV8fCJudW1iZXIiPT10eXBlb2YgZSYmIm9iamVjdCIhPXR5cGVvZiB0WzBdJiZudWxsIT10KWZvcih2YXIgYT0wLHU9KHQ9ayh0KT90OnYudmFsdWVzKHQpKS5sZW5ndGg7YTx1O2ErKyludWxsIT0oaT10W2FdKSYmaTxvJiYobz1pKTtlbHNlIGU9XyhlLG4pLHYuZWFjaCh0LGZ1bmN0aW9uKHQsbixpKXsoKHI9ZSh0LG4saSkpPHN8fHI9PT0xLzAmJm89PT0xLzApJiYobz10LHM9cil9KTtyZXR1cm4gb30sdi5zaHVmZmxlPWZ1bmN0aW9uKHQpe3JldHVybiB2LnNhbXBsZSh0LDEvMCl9LHYuc2FtcGxlPWZ1bmN0aW9uKHQsZSxuKXtpZihudWxsPT1lfHxuKXJldHVybiBrKHQpfHwodD12LnZhbHVlcyh0KSksdFt2LnJhbmRvbSh0Lmxlbmd0aC0xKV07dmFyIGk9ayh0KT92LmNsb25lKHQpOnYudmFsdWVzKHQpLHI9QyhpKTtlPU1hdGgubWF4KE1hdGgubWluKGUsciksMCk7Zm9yKHZhciBvPXItMSxzPTA7czxlO3MrKyl7dmFyIGE9di5yYW5kb20ocyxvKSx1PWlbc107aVtzXT1pW2FdLGlbYV09dX1yZXR1cm4gaS5zbGljZSgwLGUpfSx2LnNvcnRCeT1mdW5jdGlvbih0LGUsbil7dmFyIGk9MDtyZXR1cm4gZT1fKGUsbiksdi5wbHVjayh2Lm1hcCh0LGZ1bmN0aW9uKHQsbixyKXtyZXR1cm57dmFsdWU6dCxpbmRleDppKyssY3JpdGVyaWE6ZSh0LG4scil9fSkuc29ydChmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JpdGVyaWEsaT1lLmNyaXRlcmlhO2lmKG4hPT1pKXtpZihuPml8fHZvaWQgMD09PW4pcmV0dXJuIDE7aWYobjxpfHx2b2lkIDA9PT1pKXJldHVybi0xfXJldHVybiB0LmluZGV4LWUuaW5kZXh9KSwidmFsdWUiKX07dmFyIFA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obixpLHIpe3ZhciBvPWU/W1tdLFtdXTp7fTtyZXR1cm4gaT1fKGksciksdi5lYWNoKG4sZnVuY3Rpb24oZSxyKXt2YXIgcz1pKGUscixuKTt0KG8sZSxzKX0pLG99fTt2Lmdyb3VwQnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0ucHVzaChlKTp0W25dPVtlXX0pLHYuaW5kZXhCeT1QKGZ1bmN0aW9uKHQsZSxuKXt0W25dPWV9KSx2LmNvdW50Qnk9UChmdW5jdGlvbih0LGUsbil7Uyh0LG4pP3Rbbl0rKzp0W25dPTF9KTt2YXIgVD0vW15cdWQ4MDAtXHVkZmZmXXxbXHVkODAwLVx1ZGJmZl1bXHVkYzAwLVx1ZGZmZl18W1x1ZDgwMC1cdWRmZmZdL2c7di50b0FycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3YuaXNBcnJheSh0KT9oLmNhbGwodCk6di5pc1N0cmluZyh0KT90Lm1hdGNoKFQpOmsodCk/di5tYXAodCx2LmlkZW50aXR5KTp2LnZhbHVlcyh0KTpbXX0sdi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PzA6ayh0KT90Lmxlbmd0aDp2LmtleXModCkubGVuZ3RofSx2LnBhcnRpdGlvbj1QKGZ1bmN0aW9uKHQsZSxuKXt0W24/MDoxXS5wdXNoKGUpfSwhMCksdi5maXJzdD12LmhlYWQ9di50YWtlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09dHx8dC5sZW5ndGg8MT9udWxsPT1lP3ZvaWQgMDpbXTpudWxsPT1lfHxuP3RbMF06di5pbml0aWFsKHQsdC5sZW5ndGgtZSl9LHYuaW5pdGlhbD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LDAsTWF0aC5tYXgoMCx0Lmxlbmd0aC0obnVsbD09ZXx8bj8xOmUpKSl9LHYubGFzdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG51bGw9PXR8fHQubGVuZ3RoPDE/bnVsbD09ZT92b2lkIDA6W106bnVsbD09ZXx8bj90W3QubGVuZ3RoLTFdOnYucmVzdCh0LE1hdGgubWF4KDAsdC5sZW5ndGgtZSkpfSx2LnJlc3Q9di50YWlsPXYuZHJvcD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGguY2FsbCh0LG51bGw9PWV8fG4/MTplKX0sdi5jb21wYWN0PWZ1bmN0aW9uKHQpe3JldHVybiB2LmZpbHRlcih0LEJvb2xlYW4pfTt2YXIgaj1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9KGk9aXx8W10pLmxlbmd0aCxvPTAscz1DKHQpO288cztvKyspe3ZhciBhPXRbb107aWYoayhhKSYmKHYuaXNBcnJheShhKXx8di5pc0FyZ3VtZW50cyhhKSkpaWYoZSlmb3IodmFyIHU9MCxjPWEubGVuZ3RoO3U8YzspaVtyKytdPWFbdSsrXTtlbHNlIGooYSxlLG4saSkscj1pLmxlbmd0aDtlbHNlIG58fChpW3IrK109YSl9cmV0dXJuIGl9O3YuZmxhdHRlbj1mdW5jdGlvbih0LGUpe3JldHVybiBqKHQsZSwhMSl9LHYud2l0aG91dD13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYuZGlmZmVyZW5jZSh0LGUpfSksdi51bmlxPXYudW5pcXVlPWZ1bmN0aW9uKHQsZSxuLGkpe3YuaXNCb29sZWFuKGUpfHwoaT1uLG49ZSxlPSExKSxudWxsIT1uJiYobj1fKG4saSkpO2Zvcih2YXIgcj1bXSxvPVtdLHM9MCxhPUModCk7czxhO3MrKyl7dmFyIHU9dFtzXSxjPW4/bih1LHMsdCk6dTtlJiYhbj8ocyYmbz09PWN8fHIucHVzaCh1KSxvPWMpOm4/di5jb250YWlucyhvLGMpfHwoby5wdXNoKGMpLHIucHVzaCh1KSk6di5jb250YWlucyhyLHUpfHxyLnB1c2godSl9cmV0dXJuIHJ9LHYudW5pb249dyhmdW5jdGlvbih0KXtyZXR1cm4gdi51bmlxKGoodCwhMCwhMCkpfSksdi5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49YXJndW1lbnRzLmxlbmd0aCxpPTAscj1DKHQpO2k8cjtpKyspe3ZhciBvPXRbaV07aWYoIXYuY29udGFpbnMoZSxvKSl7dmFyIHM7Zm9yKHM9MTtzPG4mJnYuY29udGFpbnMoYXJndW1lbnRzW3NdLG8pO3MrKyk7cz09PW4mJmUucHVzaChvKX19cmV0dXJuIGV9LHYuZGlmZmVyZW5jZT13KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9aihlLCEwLCEwKSx2LmZpbHRlcih0LGZ1bmN0aW9uKHQpe3JldHVybiF2LmNvbnRhaW5zKGUsdCl9KX0pLHYudW56aXA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQmJnYubWF4KHQsQykubGVuZ3RofHwwLG49QXJyYXkoZSksaT0wO2k8ZTtpKyspbltpXT12LnBsdWNrKHQsaSk7cmV0dXJuIG59LHYuemlwPXcodi51bnppcCksdi5vYmplY3Q9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49e30saT0wLHI9Qyh0KTtpPHI7aSsrKWU/blt0W2ldXT1lW2ldOm5bdFtpXVswXV09dFtpXVsxXTtyZXR1cm4gbn07dmFyIEk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXtuPV8obixpKTtmb3IodmFyIHI9QyhlKSxvPXQ+MD8wOnItMTtvPj0wJiZvPHI7bys9dClpZihuKGVbb10sbyxlKSlyZXR1cm4gbztyZXR1cm4tMX19O3YuZmluZEluZGV4PUkoMSksdi5maW5kTGFzdEluZGV4PUkoLTEpLHYuc29ydGVkSW5kZXg9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPShuPV8obixpLDEpKShlKSxvPTAscz1DKHQpO288czspe3ZhciBhPU1hdGguZmxvb3IoKG8rcykvMik7bih0W2FdKTxyP289YSsxOnM9YX1yZXR1cm4gb307dmFyIEw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihpLHIsbyl7dmFyIHM9MCxhPUMoaSk7aWYoIm51bWJlciI9PXR5cGVvZiBvKXQ+MD9zPW8+PTA/bzpNYXRoLm1heChvK2Escyk6YT1vPj0wP01hdGgubWluKG8rMSxhKTpvK2ErMTtlbHNlIGlmKG4mJm8mJmEpcmV0dXJuIGlbbz1uKGkscildPT09cj9vOi0xO2lmKHIhPXIpcmV0dXJuKG89ZShoLmNhbGwoaSxzLGEpLHYuaXNOYU4pKT49MD9vK3M6LTE7Zm9yKG89dD4wP3M6YS0xO28+PTAmJm88YTtvKz10KWlmKGlbb109PT1yKXJldHVybiBvO3JldHVybi0xfX07di5pbmRleE9mPUwoMSx2LmZpbmRJbmRleCx2LnNvcnRlZEluZGV4KSx2Lmxhc3RJbmRleE9mPUwoLTEsdi5maW5kTGFzdEluZGV4KSx2LnJhbmdlPWZ1bmN0aW9uKHQsZSxuKXtudWxsPT1lJiYoZT10fHwwLHQ9MCksbnx8KG49ZTx0Py0xOjEpO2Zvcih2YXIgaT1NYXRoLm1heChNYXRoLmNlaWwoKGUtdCkvbiksMCkscj1BcnJheShpKSxvPTA7bzxpO28rKyx0Kz1uKXJbb109dDtyZXR1cm4gcn0sdi5jaHVuaz1mdW5jdGlvbih0LGUpe2lmKG51bGw9PWV8fGU8MSlyZXR1cm5bXTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOyluLnB1c2goaC5jYWxsKHQsaSxpKz1lKSk7cmV0dXJuIG59O3ZhciBCPWZ1bmN0aW9uKHQsZSxuLGkscil7aWYoIShpIGluc3RhbmNlb2YgZSkpcmV0dXJuIHQuYXBwbHkobixyKTt2YXIgbz14KHQucHJvdG90eXBlKSxzPXQuYXBwbHkobyxyKTtyZXR1cm4gdi5pc09iamVjdChzKT9zOm99O3YuYmluZD13KGZ1bmN0aW9uKHQsZSxuKXtpZighdi5pc0Z1bmN0aW9uKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkJpbmQgbXVzdCBiZSBjYWxsZWQgb24gYSBmdW5jdGlvbiIpO3ZhciBpPXcoZnVuY3Rpb24ocil7cmV0dXJuIEIodCxpLGUsdGhpcyxuLmNvbmNhdChyKSl9KTtyZXR1cm4gaX0pLHYucGFydGlhbD13KGZ1bmN0aW9uKHQsZSl7dmFyIG49di5wYXJ0aWFsLnBsYWNlaG9sZGVyLGk9ZnVuY3Rpb24oKXtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLHM9QXJyYXkobyksYT0wO2E8bzthKyspc1thXT1lW2FdPT09bj9hcmd1bWVudHNbcisrXTplW2FdO2Zvcig7cjxhcmd1bWVudHMubGVuZ3RoOylzLnB1c2goYXJndW1lbnRzW3IrK10pO3JldHVybiBCKHQsaSx0aGlzLHRoaXMscyl9O3JldHVybiBpfSksdi5wYXJ0aWFsLnBsYWNlaG9sZGVyPXYsdi5iaW5kQWxsPXcoZnVuY3Rpb24odCxlKXt2YXIgbj0oZT1qKGUsITEsITEpKS5sZW5ndGg7aWYobjwxKXRocm93IG5ldyBFcnJvcigiYmluZEFsbCBtdXN0IGJlIHBhc3NlZCBmdW5jdGlvbiBuYW1lcyIpO2Zvcig7bi0tOyl7dmFyIGk9ZVtuXTt0W2ldPXYuYmluZCh0W2ldLHQpfX0pLHYubWVtb2l6ZT1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKGkpe3ZhciByPW4uY2FjaGUsbz0iIisoZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKTtyZXR1cm4gUyhyLG8pfHwocltvXT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkscltvXX07cmV0dXJuIG4uY2FjaGU9e30sbn0sdi5kZWxheT13KGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KG51bGwsbil9LGUpfSksdi5kZWZlcj12LnBhcnRpYWwodi5kZWxheSx2LDEpLHYudGhyb3R0bGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGE9MDtufHwobj17fSk7dmFyIHU9ZnVuY3Rpb24oKXthPSExPT09bi5sZWFkaW5nPzA6di5ub3coKSxpPW51bGwscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKX0sYz1mdW5jdGlvbigpe3ZhciBjPXYubm93KCk7YXx8ITEhPT1uLmxlYWRpbmd8fChhPWMpO3ZhciBoPWUtKGMtYSk7cmV0dXJuIHI9dGhpcyxvPWFyZ3VtZW50cyxoPD0wfHxoPmU/KGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxhPWMscz10LmFwcGx5KHIsbyksaXx8KHI9bz1udWxsKSk6aXx8ITE9PT1uLnRyYWlsaW5nfHwoaT1zZXRUaW1lb3V0KHUsaCkpLHN9O3JldHVybiBjLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxhPTAsaT1yPW89bnVsbH0sY30sdi5kZWJvdW5jZT1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvPWZ1bmN0aW9uKGUsbil7aT1udWxsLG4mJihyPXQuYXBwbHkoZSxuKSl9LHM9dyhmdW5jdGlvbihzKXtpZihpJiZjbGVhclRpbWVvdXQoaSksbil7dmFyIGE9IWk7aT1zZXRUaW1lb3V0KG8sZSksYSYmKHI9dC5hcHBseSh0aGlzLHMpKX1lbHNlIGk9di5kZWxheShvLGUsdGhpcyxzKTtyZXR1cm4gcn0pO3JldHVybiBzLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChpKSxpPW51bGx9LHN9LHYud3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiB2LnBhcnRpYWwoZSx0KX0sdi5uZWdhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdi5jb21wb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49ZSxpPXRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpO24tLTspaT10W25dLmNhbGwodGhpcyxpKTtyZXR1cm4gaX19LHYuYWZ0ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigtLXQ8MSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx2LmJlZm9yZT1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBmdW5jdGlvbigpe3JldHVybi0tdD4wJiYobj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdDw9MSYmKGU9bnVsbCksbn19LHYub25jZT12LnBhcnRpYWwodi5iZWZvcmUsMiksdi5yZXN0QXJndW1lbnRzPXc7dmFyIEQ9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxSPVsidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdLHo9ZnVuY3Rpb24odCxlKXt2YXIgbj1SLmxlbmd0aCxpPXQuY29uc3RydWN0b3Iscj12LmlzRnVuY3Rpb24oaSkmJmkucHJvdG90eXBlfHxhLG89ImNvbnN0cnVjdG9yIjtmb3IoUyh0LG8pJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyk7bi0tOykobz1SW25dKWluIHQmJnRbb10hPT1yW29dJiYhdi5jb250YWlucyhlLG8pJiZlLnB1c2gobyl9O3Yua2V5cz1mdW5jdGlvbih0KXtpZighdi5pc09iamVjdCh0KSlyZXR1cm5bXTtpZihwKXJldHVybiBwKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KVModCxuKSYmZS5wdXNoKG4pO3JldHVybiBEJiZ6KHQsZSksZX0sdi5hbGxLZXlzPWZ1bmN0aW9uKHQpe2lmKCF2LmlzT2JqZWN0KHQpKXJldHVybltdO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gRCYmeih0LGUpLGV9LHYudmFsdWVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT12LmtleXModCksbj1lLmxlbmd0aCxpPUFycmF5KG4pLHI9MDtyPG47cisrKWlbcl09dFtlW3JdXTtyZXR1cm4gaX0sdi5tYXBPYmplY3Q9ZnVuY3Rpb24odCxlLG4pe2U9XyhlLG4pO2Zvcih2YXIgaT12LmtleXModCkscj1pLmxlbmd0aCxvPXt9LHM9MDtzPHI7cysrKXt2YXIgYT1pW3NdO29bYV09ZSh0W2FdLGEsdCl9cmV0dXJuIG99LHYucGFpcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXYua2V5cyh0KSxuPWUubGVuZ3RoLGk9QXJyYXkobikscj0wO3I8bjtyKyspaVtyXT1bZVtyXSx0W2Vbcl1dXTtyZXR1cm4gaX0sdi5pbnZlcnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LG49di5rZXlzKHQpLGk9MCxyPW4ubGVuZ3RoO2k8cjtpKyspZVt0W25baV1dXT1uW2ldO3JldHVybiBlfSx2LmZ1bmN0aW9ucz12Lm1ldGhvZHM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpdi5pc0Z1bmN0aW9uKHRbbl0pJiZlLnB1c2gobik7cmV0dXJuIGUuc29ydCgpfTt2YXIgTj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoO2lmKGUmJihuPU9iamVjdChuKSksaTwyfHxudWxsPT1uKXJldHVybiBuO2Zvcih2YXIgcj0xO3I8aTtyKyspZm9yKHZhciBvPWFyZ3VtZW50c1tyXSxzPXQobyksYT1zLmxlbmd0aCx1PTA7dTxhO3UrKyl7dmFyIGM9c1t1XTtlJiZ2b2lkIDAhPT1uW2NdfHwobltjXT1vW2NdKX1yZXR1cm4gbn19O3YuZXh0ZW5kPU4odi5hbGxLZXlzKSx2LmV4dGVuZE93bj12LmFzc2lnbj1OKHYua2V5cyksdi5maW5kS2V5PWZ1bmN0aW9uKHQsZSxuKXtlPV8oZSxuKTtmb3IodmFyIGkscj12LmtleXModCksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihlKHRbaT1yW29dXSxpLHQpKXJldHVybiBpfTt2YXIgVyxxLEg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluIG59O3YucGljaz13KGZ1bmN0aW9uKHQsZSl7dmFyIG49e30saT1lWzBdO2lmKG51bGw9PXQpcmV0dXJuIG47di5pc0Z1bmN0aW9uKGkpPyhlLmxlbmd0aD4xJiYoaT15KGksZVsxXSkpLGU9di5hbGxLZXlzKHQpKTooaT1ILGU9aihlLCExLCExKSx0PU9iamVjdCh0KSk7Zm9yKHZhciByPTAsbz1lLmxlbmd0aDtyPG87cisrKXt2YXIgcz1lW3JdLGE9dFtzXTtpKGEscyx0KSYmKG5bc109YSl9cmV0dXJuIG59KSx2Lm9taXQ9dyhmdW5jdGlvbih0LGUpe3ZhciBuLGk9ZVswXTtyZXR1cm4gdi5pc0Z1bmN0aW9uKGkpPyhpPXYubmVnYXRlKGkpLGUubGVuZ3RoPjEmJihuPWVbMV0pKTooZT12Lm1hcChqKGUsITEsITEpLFN0cmluZyksaT1mdW5jdGlvbih0LG4pe3JldHVybiF2LmNvbnRhaW5zKGUsbil9KSx2LnBpY2sodCxpLG4pfSksdi5kZWZhdWx0cz1OKHYuYWxsS2V5cywhMCksdi5jcmVhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj14KHQpO3JldHVybiBlJiZ2LmV4dGVuZE93bihuLGUpLG59LHYuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHYuaXNPYmplY3QodCk/di5pc0FycmF5KHQpP3Quc2xpY2UoKTp2LmV4dGVuZCh7fSx0KTp0fSx2LnRhcD1mdW5jdGlvbih0LGUpe3JldHVybiBlKHQpLHR9LHYuaXNNYXRjaD1mdW5jdGlvbih0LGUpe3ZhciBuPXYua2V5cyhlKSxpPW4ubGVuZ3RoO2lmKG51bGw9PXQpcmV0dXJuIWk7Zm9yKHZhciByPU9iamVjdCh0KSxvPTA7bzxpO28rKyl7dmFyIHM9bltvXTtpZihlW3NdIT09cltzXXx8IShzIGluIHIpKXJldHVybiExfXJldHVybiEwfSxXPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQ9PT1lKXJldHVybiAwIT09dHx8MS90PT0xL2U7aWYobnVsbD09dHx8bnVsbD09ZSlyZXR1cm4hMTtpZih0IT10KXJldHVybiBlIT1lO3ZhciByPXR5cGVvZiB0O3JldHVybigiZnVuY3Rpb24iPT09cnx8Im9iamVjdCI9PT1yfHwib2JqZWN0Ij09dHlwZW9mIGUpJiZxKHQsZSxuLGkpfSxxPWZ1bmN0aW9uKHQsZSxuLGkpe3QgaW5zdGFuY2VvZiB2JiYodD10Ll93cmFwcGVkKSxlIGluc3RhbmNlb2YgdiYmKGU9ZS5fd3JhcHBlZCk7dmFyIHI9bC5jYWxsKHQpO2lmKHIhPT1sLmNhbGwoZSkpcmV0dXJuITE7c3dpdGNoKHIpe2Nhc2UiW29iamVjdCBSZWdFeHBdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIiIrdD09IiIrZTtjYXNlIltvYmplY3QgTnVtYmVyXSI6cmV0dXJuK3QhPSt0PytlIT0rZTowPT0rdD8xLyt0PT0xL2U6K3Q9PStlO2Nhc2UiW29iamVjdCBEYXRlXSI6Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpyZXR1cm4rdD09K2U7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiB1LnZhbHVlT2YuY2FsbCh0KT09PXUudmFsdWVPZi5jYWxsKGUpfXZhciBvPSJbb2JqZWN0IEFycmF5XSI9PT1yO2lmKCFvKXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4hMTt2YXIgcz10LmNvbnN0cnVjdG9yLGE9ZS5jb25zdHJ1Y3RvcjtpZihzIT09YSYmISh2LmlzRnVuY3Rpb24ocykmJnMgaW5zdGFuY2VvZiBzJiZ2LmlzRnVuY3Rpb24oYSkmJmEgaW5zdGFuY2VvZiBhKSYmImNvbnN0cnVjdG9yImluIHQmJiJjb25zdHJ1Y3RvciJpbiBlKXJldHVybiExfWk9aXx8W107Zm9yKHZhciBjPShuPW58fFtdKS5sZW5ndGg7Yy0tOylpZihuW2NdPT09dClyZXR1cm4gaVtjXT09PWU7aWYobi5wdXNoKHQpLGkucHVzaChlKSxvKXtpZigoYz10Lmxlbmd0aCkhPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IoO2MtLTspaWYoIVcodFtjXSxlW2NdLG4saSkpcmV0dXJuITF9ZWxzZXt2YXIgaCxkPXYua2V5cyh0KTtpZihjPWQubGVuZ3RoLHYua2V5cyhlKS5sZW5ndGghPT1jKXJldHVybiExO2Zvcig7Yy0tOylpZihoPWRbY10sIVMoZSxoKXx8IVcodFtoXSxlW2hdLG4saSkpcmV0dXJuITF9cmV0dXJuIG4ucG9wKCksaS5wb3AoKSwhMH0sdi5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFcodCxlKX0sdi5pc0VtcHR5PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fHwoayh0KSYmKHYuaXNBcnJheSh0KXx8di5pc1N0cmluZyh0KXx8di5pc0FyZ3VtZW50cyh0KSk/MD09PXQubGVuZ3RoOjA9PT12LmtleXModCkubGVuZ3RoKX0sdi5pc0VsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8MSE9PXQubm9kZVR5cGUpfSx2LmlzQXJyYXk9Znx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PWwuY2FsbCh0KX0sdi5pc09iamVjdD1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4iZnVuY3Rpb24iPT09ZXx8Im9iamVjdCI9PT1lJiYhIXR9LHYuZWFjaChbIkFyZ3VtZW50cyIsIkZ1bmN0aW9uIiwiU3RyaW5nIiwiTnVtYmVyIiwiRGF0ZSIsIlJlZ0V4cCIsIkVycm9yIiwiU3ltYm9sIiwiTWFwIiwiV2Vha01hcCIsIlNldCIsIldlYWtTZXQiXSxmdW5jdGlvbih0KXt2WyJpcyIrdF09ZnVuY3Rpb24oZSl7cmV0dXJuIGwuY2FsbChlKT09PSJbb2JqZWN0ICIrdCsiXSJ9fSksdi5pc0FyZ3VtZW50cyhhcmd1bWVudHMpfHwodi5pc0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gUyh0LCJjYWxsZWUiKX0pO3ZhciBGPXIuZG9jdW1lbnQmJnIuZG9jdW1lbnQuY2hpbGROb2Rlczsib2JqZWN0IiE9dHlwZW9mIEludDhBcnJheSYmImZ1bmN0aW9uIiE9dHlwZW9mIEYmJih2LmlzRnVuY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR8fCExfSksdi5pc0Zpbml0ZT1mdW5jdGlvbih0KXtyZXR1cm4hdi5pc1N5bWJvbCh0KSYmaXNGaW5pdGUodCkmJiFpc05hTihwYXJzZUZsb2F0KHQpKX0sdi5pc05hTj1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc051bWJlcih0KSYmaXNOYU4odCl9LHYuaXNCb29sZWFuPWZ1bmN0aW9uKHQpe3JldHVybiEwPT09dHx8ITE9PT10fHwiW29iamVjdCBCb29sZWFuXSI9PT1sLmNhbGwodCl9LHYuaXNOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dH0sdi5pc1VuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dH0sdi5oYXM9ZnVuY3Rpb24odCxlKXtpZighdi5pc0FycmF5KGUpKXJldHVybiBTKHQsZSk7Zm9yKHZhciBuPWUubGVuZ3RoLGk9MDtpPG47aSsrKXt2YXIgcj1lW2ldO2lmKG51bGw9PXR8fCFkLmNhbGwodCxyKSlyZXR1cm4hMTt0PXRbcl19cmV0dXJuISFufSx2Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5fPW8sdGhpc30sdi5pZGVudGl0eT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sdi5jb25zdGFudD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19LHYubm9vcD1mdW5jdGlvbigpe30sdi5wcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gdi5pc0FycmF5KHQpP2Z1bmN0aW9uKGUpe3JldHVybiBFKGUsdCl9Ok0odCl9LHYucHJvcGVydHlPZj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9mdW5jdGlvbigpe306ZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNBcnJheShlKT9FKHQsZSk6dFtlXX19LHYubWF0Y2hlcj12Lm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9di5leHRlbmRPd24oe30sdCksZnVuY3Rpb24oZSl7cmV0dXJuIHYuaXNNYXRjaChlLHQpfX0sdi50aW1lcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9QXJyYXkoTWF0aC5tYXgoMCx0KSk7ZT15KGUsbiwxKTtmb3IodmFyIHI9MDtyPHQ7cisrKWlbcl09ZShyKTtyZXR1cm4gaX0sdi5yYW5kb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZSYmKGU9dCx0PTApLHQrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLXQrMSkpfSx2Lm5vdz1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07dmFyIFY9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImI3gyNzsiLCJgIjoiJiN4NjA7In0sVT12LmludmVydChWKSxLPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSxuPSIoPzoiK3Yua2V5cyh0KS5qb2luKCJ8IikrIikiLGk9UmVnRXhwKG4pLHI9UmVnRXhwKG4sImciKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8iIjoiIit0LGkudGVzdCh0KT90LnJlcGxhY2UocixlKTp0fX07di5lc2NhcGU9SyhWKSx2LnVuZXNjYXBlPUsoVSksdi5yZXN1bHQ9ZnVuY3Rpb24odCxlLG4pe3YuaXNBcnJheShlKXx8KGU9W2VdKTt2YXIgaT1lLmxlbmd0aDtpZighaSlyZXR1cm4gdi5pc0Z1bmN0aW9uKG4pP24uY2FsbCh0KTpuO2Zvcih2YXIgcj0wO3I8aTtyKyspe3ZhciBvPW51bGw9PXQ/dm9pZCAwOnRbZVtyXV07dm9pZCAwPT09byYmKG89bixyPWkpLHQ9di5pc0Z1bmN0aW9uKG8pP28uY2FsbCh0KTpvfXJldHVybiB0fTt2YXIgWT0wO3YudW5pcXVlSWQ9ZnVuY3Rpb24odCl7dmFyIGU9KytZKyIiO3JldHVybiB0P3QrZTplfSx2LnRlbXBsYXRlU2V0dGluZ3M9e2V2YWx1YXRlOi88JShbXHNcU10rPyklPi9nLGludGVycG9sYXRlOi88JT0oW1xzXFNdKz8pJT4vZyxlc2NhcGU6LzwlLShbXHNcU10rPyklPi9nfTt2YXIgWD0vKC4pXi8sJD17IiciOiInIiwiXFwiOiJcXCIsIlxyIjoiciIsIlxuIjoibiIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxHPS9cXHwnfFxyfFxufFx1MjAyOHxcdTIwMjkvZyxKPWZ1bmN0aW9uKHQpe3JldHVybiJcXCIrJFt0XX07di50ZW1wbGF0ZT1mdW5jdGlvbih0LGUsbil7IWUmJm4mJihlPW4pLGU9di5kZWZhdWx0cyh7fSxlLHYudGVtcGxhdGVTZXR0aW5ncyk7dmFyIGkscj1SZWdFeHAoWyhlLmVzY2FwZXx8WCkuc291cmNlLChlLmludGVycG9sYXRlfHxYKS5zb3VyY2UsKGUuZXZhbHVhdGV8fFgpLnNvdXJjZV0uam9pbigifCIpKyJ8JCIsImciKSxvPTAscz0iX19wKz0nIjt0LnJlcGxhY2UocixmdW5jdGlvbihlLG4saSxyLGEpe3JldHVybiBzKz10LnNsaWNlKG8sYSkucmVwbGFjZShHLEopLG89YStlLmxlbmd0aCxuP3MrPSInK1xuKChfX3Q9KCIrbisiKSk9PW51bGw/Jyc6Xy5lc2NhcGUoX190KSkrXG4nIjppP3MrPSInK1xuKChfX3Q9KCIraSsiKSk9PW51bGw/Jyc6X190KStcbiciOnImJihzKz0iJztcbiIrcisiXG5fX3ArPSciKSxlfSkscys9Iic7XG4iLGUudmFyaWFibGV8fChzPSJ3aXRoKG9ianx8e30pe1xuIitzKyJ9XG4iKSxzPSJ2YXIgX190LF9fcD0nJyxfX2o9QXJyYXkucHJvdG90eXBlLmpvaW4scHJpbnQ9ZnVuY3Rpb24oKXtfX3ArPV9fai5jYWxsKGFyZ3VtZW50cywnJyk7fTtcbiIrcysicmV0dXJuIF9fcDtcbiI7dHJ5e2k9bmV3IEZ1bmN0aW9uKGUudmFyaWFibGV8fCJvYmoiLCJfIixzKX1jYXRjaCh0KXt0aHJvdyB0LnNvdXJjZT1zLHR9dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY2FsbCh0aGlzLHQsdil9LHU9ZS52YXJpYWJsZXx8Im9iaiI7cmV0dXJuIGEuc291cmNlPSJmdW5jdGlvbigiK3UrIil7XG4iK3MrIn0iLGF9LHYuY2hhaW49ZnVuY3Rpb24odCl7dmFyIGU9dih0KTtyZXR1cm4gZS5fY2hhaW49ITAsZX07dmFyIFo9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2hhaW4/dihlKS5jaGFpbigpOmV9O3YubWl4aW49ZnVuY3Rpb24odCl7cmV0dXJuIHYuZWFjaCh2LmZ1bmN0aW9ucyh0KSxmdW5jdGlvbihlKXt2YXIgbj12W2VdPXRbZV07di5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5fd3JhcHBlZF07cmV0dXJuIGMuYXBwbHkodCxhcmd1bWVudHMpLFoodGhpcyxuLmFwcGx5KHYsdCkpfX0pLHZ9LHYubWl4aW4odiksdi5lYWNoKFsicG9wIiwicHVzaCIsInJldmVyc2UiLCJzaGlmdCIsInNvcnQiLCJzcGxpY2UiLCJ1bnNoaWZ0Il0sZnVuY3Rpb24odCl7dmFyIGU9c1t0XTt2LnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciBuPXRoaXMuX3dyYXBwZWQ7cmV0dXJuIGUuYXBwbHkobixhcmd1bWVudHMpLCJzaGlmdCIhPT10JiYic3BsaWNlIiE9PXR8fDAhPT1uLmxlbmd0aHx8ZGVsZXRlIG5bMF0sWih0aGlzLG4pfX0pLHYuZWFjaChbImNvbmNhdCIsImpvaW4iLCJzbGljZSJdLGZ1bmN0aW9uKHQpe3ZhciBlPXNbdF07di5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gWih0aGlzLGUuYXBwbHkodGhpcy5fd3JhcHBlZCxhcmd1bWVudHMpKX19KSx2LnByb3RvdHlwZS52YWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwcGVkfSx2LnByb3RvdHlwZS52YWx1ZU9mPXYucHJvdG90eXBlLnRvSlNPTj12LnByb3RvdHlwZS52YWx1ZSx2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5fd3JhcHBlZCl9LHZvaWQgMD09PShpPWZ1bmN0aW9uKCl7cmV0dXJuIHZ9LmFwcGx5KGUsW10pKXx8KG4uZXhwb3J0cz1pKX0oKX0pLmNhbGwodGhpcyxuKDEzKSxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNSksdT1uKDMwKSxjPW4oMTEpLGg9big3NyksbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2ZsYWdzPTAsdGhpcy5fbGF5b3V0PW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZGlzcG9zZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMubm9kZT1vLmNyZWF0ZU5vZGUodCksdGhpcy5hZGRDbGFzcygicC1XaWRnZXQiKX1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuaXNEaXNwb3NlZHx8KHRoaXMuc2V0RmxhZyh0LkZsYWcuSXNEaXNwb3NlZCksdGhpcy5fZGlzcG9zZWQuZW1pdCh2b2lkIDApLHRoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKSx0aGlzLl9sYXlvdXQmJih0aGlzLl9sYXlvdXQuZGlzcG9zZSgpLHRoaXMuX2xheW91dD1udWxsKSxjLlNpZ25hbC5jbGVhckRhdGEodGhpcyksYS5NZXNzYWdlTG9vcC5jbGVhckRhdGEodGhpcyksdS5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzRGlzcG9zZWQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzSGlkZGVuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGVzdEZsYWcodC5GbGFnLklzSGlkZGVuKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVmlzaWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc1Zpc2libGUpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidGl0bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby50aXRsZVByb3BlcnR5LmdldCh0aGlzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5pZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubm9kZS5pZD10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZGF0YXNldH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9wYXJlbnQhPT1lKXtpZihlJiZ0aGlzLmNvbnRhaW5zKGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwYXJlbnQgd2lkZ2V0LiIpO2lmKHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXt2YXIgbj1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLXJlbW92ZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfWlmKHRoaXMuX3BhcmVudD1lLHRoaXMuX3BhcmVudCYmIXRoaXMuX3BhcmVudC5pc0Rpc3Bvc2VkKXtuPW5ldyB0LkNoaWxkTWVzc2FnZSgiY2hpbGQtYWRkZWQiLHRoaXMpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5fcGFyZW50LG4pfXRoaXMuaXNEaXNwb3NlZHx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLlBhcmVudENoYW5nZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxheW91dCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXlvdXR9LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLl9sYXlvdXQhPT1lKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5EaXNhbGxvd0xheW91dCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2V0IHdpZGdldCBsYXlvdXQuIik7aWYodGhpcy5fbGF5b3V0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSB3aWRnZXQgbGF5b3V0LiIpO2lmKGUucGFyZW50KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNoYW5nZSBsYXlvdXQgcGFyZW50LiIpO3RoaXMuX2xheW91dD1lLGUucGFyZW50PXRoaXN9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dD90aGlzLl9sYXlvdXQuaXRlcigpOnMuZW1wdHkoKX0sdC5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQ7ZTtlPWUuX3BhcmVudClpZihlPT09dGhpcylyZXR1cm4hMDtyZXR1cm4hMX0sdC5wcm90b3R5cGUuaGFzQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5jbGFzc0xpc3QuY29udGFpbnModCl9LHQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmVDbGFzcz1mdW5jdGlvbih0KXt0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSh0KX0sdC5wcm90b3R5cGUudG9nZ2xlQ2xhc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4hMD09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKHQpLCEwKTohMT09PWU/KHRoaXMubm9kZS5jbGFzc0xpc3QucmVtb3ZlKHQpLCExKTp0aGlzLm5vZGUuY2xhc3NMaXN0LnRvZ2dsZSh0KX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLlVwZGF0ZVJlcXVlc3QpfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24oKXthLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsdC5Nc2cuRml0UmVxdWVzdCl9LHQucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLHQuTXNnLkFjdGl2YXRlUmVxdWVzdCl9LHQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkNsb3NlUmVxdWVzdCl9LHQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXtpZih0aGlzLnRlc3RGbGFnKHQuRmxhZy5Jc0hpZGRlbikmJighdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkJlZm9yZVNob3cpLHRoaXMuY2xlYXJGbGFnKHQuRmxhZy5Jc0hpZGRlbiksdGhpcy5yZW1vdmVDbGFzcygicC1tb2QtaGlkZGVuIiksIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5BZnRlclNob3cpLHRoaXMucGFyZW50KSl7dmFyIGU9bmV3IHQuQ2hpbGRNZXNzYWdlKCJjaGlsZC1zaG93biIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50ZXN0RmxhZyh0LkZsYWcuSXNIaWRkZW4pJiYoIXRoaXMuaXNBdHRhY2hlZHx8dGhpcy5wYXJlbnQmJiF0aGlzLnBhcmVudC5pc1Zpc2libGV8fGEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyx0Lk1zZy5CZWZvcmVIaWRlKSx0aGlzLnNldEZsYWcodC5GbGFnLklzSGlkZGVuKSx0aGlzLmFkZENsYXNzKCJwLW1vZC1oaWRkZW4iKSwhdGhpcy5pc0F0dGFjaGVkfHx0aGlzLnBhcmVudCYmIXRoaXMucGFyZW50LmlzVmlzaWJsZXx8YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLHQuTXNnLkFmdGVySGlkZSksdGhpcy5wYXJlbnQpKXt2YXIgZT1uZXcgdC5DaGlsZE1lc3NhZ2UoImNoaWxkLWhpZGRlbiIsdGhpcyk7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudCxlKX19LHQucHJvdG90eXBlLnNldEhpZGRlbj1mdW5jdGlvbih0KXt0P3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnByb3RvdHlwZS50ZXN0RmxhZz1mdW5jdGlvbih0KXtyZXR1cm4gMCE9KHRoaXMuX2ZsYWdzJnQpfSx0LnByb3RvdHlwZS5zZXRGbGFnPWZ1bmN0aW9uKHQpe3RoaXMuX2ZsYWdzfD10fSx0LnByb3RvdHlwZS5jbGVhckZsYWc9ZnVuY3Rpb24odCl7dGhpcy5fZmxhZ3MmPX50fSx0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXtzd2l0Y2goZS50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vblJlc2l6ZShlKTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uVXBkYXRlUmVxdWVzdChlKTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uRml0UmVxdWVzdChlKTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlU2hvdyhlKTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMuc2V0RmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJTaG93KGUpO2JyZWFrO2Nhc2UiYmVmb3JlLWhpZGUiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVIaWRlKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItaGlkZSI6dGhpcy5jbGVhckZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVySGlkZShlKTticmVhaztjYXNlImJlZm9yZS1hdHRhY2giOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25CZWZvcmVBdHRhY2goZSk7YnJlYWs7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMuaXNIaWRkZW58fHRoaXMucGFyZW50JiYhdGhpcy5wYXJlbnQuaXNWaXNpYmxlfHx0aGlzLnNldEZsYWcodC5GbGFnLklzVmlzaWJsZSksdGhpcy5zZXRGbGFnKHQuRmxhZy5Jc0F0dGFjaGVkKSx0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQWZ0ZXJBdHRhY2goZSk7YnJlYWs7Y2FzZSJiZWZvcmUtZGV0YWNoIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQmVmb3JlRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWZ0ZXItZGV0YWNoIjp0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNWaXNpYmxlKSx0aGlzLmNsZWFyRmxhZyh0LkZsYWcuSXNBdHRhY2hlZCksdGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFmdGVyRGV0YWNoKGUpO2JyZWFrO2Nhc2UiYWN0aXZhdGUtcmVxdWVzdCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkFjdGl2YXRlUmVxdWVzdChlKTticmVhaztjYXNlImNsb3NlLXJlcXVlc3QiOnRoaXMubm90aWZ5TGF5b3V0KGUpLHRoaXMub25DbG9zZVJlcXVlc3QoZSk7YnJlYWs7Y2FzZSJjaGlsZC1hZGRlZCI6dGhpcy5ub3RpZnlMYXlvdXQoZSksdGhpcy5vbkNoaWxkQWRkZWQoZSk7YnJlYWs7Y2FzZSJjaGlsZC1yZW1vdmVkIjp0aGlzLm5vdGlmeUxheW91dChlKSx0aGlzLm9uQ2hpbGRSZW1vdmVkKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5ub3RpZnlMYXlvdXQoZSl9fSx0LnByb3RvdHlwZS5ub3RpZnlMYXlvdXQ9ZnVuY3Rpb24odCl7dGhpcy5fbGF5b3V0JiZ0aGlzLl9sYXlvdXQucHJvY2Vzc1BhcmVudE1lc3NhZ2UodCl9LHQucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMucGFyZW50P3RoaXMucGFyZW50PW51bGw6dGhpcy5pc0F0dGFjaGVkJiZ0LmRldGFjaCh0aGlzKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25CZWZvcmVIaWRlPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25BZnRlckhpZGU9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkJlZm9yZURldGFjaD1mdW5jdGlvbih0KXt9LHQucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7fSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt9LHR9KCk7ZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dFt0LklzRGlzcG9zZWQ9MV09IklzRGlzcG9zZWQiLHRbdC5Jc0F0dGFjaGVkPTJdPSJJc0F0dGFjaGVkIix0W3QuSXNIaWRkZW49NF09IklzSGlkZGVuIix0W3QuSXNWaXNpYmxlPThdPSJJc1Zpc2libGUiLHRbdC5EaXNhbGxvd0xheW91dD0xNl09IkRpc2FsbG93TGF5b3V0In0odC5GbGFnfHwodC5GbGFnPXt9KSksZnVuY3Rpb24odCl7dC5CZWZvcmVTaG93PW5ldyBhLk1lc3NhZ2UoImJlZm9yZS1zaG93IiksdC5BZnRlclNob3c9bmV3IGEuTWVzc2FnZSgiYWZ0ZXItc2hvdyIpLHQuQmVmb3JlSGlkZT1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtaGlkZSIpLHQuQWZ0ZXJIaWRlPW5ldyBhLk1lc3NhZ2UoImFmdGVyLWhpZGUiKSx0LkJlZm9yZUF0dGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtYXR0YWNoIiksdC5BZnRlckF0dGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1hdHRhY2giKSx0LkJlZm9yZURldGFjaD1uZXcgYS5NZXNzYWdlKCJiZWZvcmUtZGV0YWNoIiksdC5BZnRlckRldGFjaD1uZXcgYS5NZXNzYWdlKCJhZnRlci1kZXRhY2giKSx0LlBhcmVudENoYW5nZWQ9bmV3IGEuTWVzc2FnZSgicGFyZW50LWNoYW5nZWQiKSx0LlVwZGF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJ1cGRhdGUtcmVxdWVzdCIpLHQuRml0UmVxdWVzdD1uZXcgYS5Db25mbGF0YWJsZU1lc3NhZ2UoImZpdC1yZXF1ZXN0IiksdC5BY3RpdmF0ZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJhY3RpdmF0ZS1yZXF1ZXN0IiksdC5DbG9zZVJlcXVlc3Q9bmV3IGEuQ29uZmxhdGFibGVNZXNzYWdlKCJjbG9zZS1yZXF1ZXN0Iil9KHQuTXNnfHwodC5Nc2c9e30pKTt2YXIgZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7dmFyIGk9dC5jYWxsKHRoaXMsZSl8fHRoaXM7cmV0dXJuIGkuY2hpbGQ9bixpfXJldHVybiByKGUsdCksZX0oYS5NZXNzYWdlKTt0LkNoaWxkTWVzc2FnZT1lO3ZhciBuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgaT10LmNhbGwodGhpcywicmVzaXplIil8fHRoaXM7cmV0dXJuIGkud2lkdGg9ZSxpLmhlaWdodD1uLGl9cmV0dXJuIHIoZSx0KSxlfShhLk1lc3NhZ2UpO3QuUmVzaXplTWVzc2FnZT1uLGZ1bmN0aW9uKHQpe3QuVW5rbm93blNpemU9bmV3IHQoLTEsLTEpfShuPXQuUmVzaXplTWVzc2FnZXx8KHQuUmVzaXplTWVzc2FnZT17fSkpLHQuYXR0YWNoPWZ1bmN0aW9uKGUsbixpKXtpZih2b2lkIDA9PT1pJiYoaT1udWxsKSxlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBhdHRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoZS5pc0F0dGFjaGVkfHxkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGUubm9kZSkpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgYWxyZWFkeSBhdHRhY2hlZC4iKTtpZighZG9jdW1lbnQuYm9keS5jb250YWlucyhuKSl0aHJvdyBuZXcgRXJyb3IoIkhvc3QgaXMgbm90IGF0dGFjaGVkLiIpO2EuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0Lk1zZy5CZWZvcmVBdHRhY2gpLG4uaW5zZXJ0QmVmb3JlKGUubm9kZSxpKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJBdHRhY2gpfSx0LmRldGFjaD1mdW5jdGlvbihlKXtpZihlLnBhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZXRhY2ggYSBjaGlsZCB3aWRnZXQuIik7aWYoIWUuaXNBdHRhY2hlZHx8IWRvY3VtZW50LmJvZHkuY29udGFpbnMoZS5ub2RlKSl0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBpcyBub3QgYXR0YWNoZWQuIik7YS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQuTXNnLkJlZm9yZURldGFjaCksZS5ub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZS5ub2RlKSxhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdC5Nc2cuQWZ0ZXJEZXRhY2gpfX0obD1lLldpZGdldHx8KGUuV2lkZ2V0PXt9KSksZS5XaWRnZXQ9bCxmdW5jdGlvbih0KXt0LnRpdGxlUHJvcGVydHk9bmV3IHUuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToidGl0bGUiLGNyZWF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGguVGl0bGUoe293bmVyOnR9KX19KSx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigxNDEpKSxpKG4oNzUpKSxpKG4oMzMzKSksaShuKDMzNCkpLGkobigzMzUpKSxpKG4oMzM2KSksaShuKDc0KSksaShuKDI1KSksaShuKDMzNykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkobigzMTcpKSxpKG4oMzE4KSksaShuKDMxOSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWU7aS52ZXJzaW9uPW4oMTg4KS52ZXJzaW9uLGkudXRpbHM9bigxODkpLGkucmFuZD1uKDEwNSksaS5jdXJ2ZT1uKDQ4KSxpLmN1cnZlcz1uKDE5NCksaS5lYz1uKDIwMiksaS5lZGRzYT1uKDIwNil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaSxyPW4oMiksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5zZW5kZXI9dH1yZXR1cm4gdC5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBpLmNvbm5lY3QodGhpcyx0LGUpfSx0LnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuZGlzY29ubmVjdCh0aGlzLHQsZSl9LHQucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24odCl7aS5lbWl0KHRoaXMsdCl9LHR9KCk7ZS5TaWduYWw9byxmdW5jdGlvbih0KXt0LmRpc2Nvbm5lY3RCZXR3ZWVuPWZ1bmN0aW9uKHQsZSl7aS5kaXNjb25uZWN0QmV0d2Vlbih0LGUpfSx0LmRpc2Nvbm5lY3RTZW5kZXI9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0U2VuZGVyKHQpfSx0LmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXtpLmRpc2Nvbm5lY3RSZWNlaXZlcih0KX0sdC5kaXNjb25uZWN0QWxsPWZ1bmN0aW9uKHQpe2kuZGlzY29ubmVjdEFsbCh0KX0sdC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0QWxsKHQpfSx0LmdldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5leGNlcHRpb25IYW5kbGVyfSx0LnNldEV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9aS5leGNlcHRpb25IYW5kbGVyO3JldHVybiBpLmV4Y2VwdGlvbkhhbmRsZXI9dCxlfX0obz1lLlNpZ25hbHx8KGUuU2lnbmFsPXt9KSksZS5TaWduYWw9byxmdW5jdGlvbihlKXtlLmV4Y2VwdGlvbkhhbmRsZXI9ZnVuY3Rpb24odCl7Y29uc29sZS5lcnJvcih0KX0sZS5jb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYob3x8KG89W10sbi5zZXQodC5zZW5kZXIsbykpLGEobyx0LGUscikpcmV0dXJuITE7dmFyIHM9cnx8ZSx1PWkuZ2V0KHMpO3V8fCh1PVtdLGkuc2V0KHMsdSkpO3ZhciBjPXtzaWduYWw6dCxzbG90OmUsdGhpc0FyZzpyfTtyZXR1cm4gby5wdXNoKGMpLHUucHVzaChjKSwhMH0sZS5kaXNjb25uZWN0PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHZvaWQgMDt2YXIgbz1uLmdldCh0LnNlbmRlcik7aWYoIW98fDA9PT1vLmxlbmd0aClyZXR1cm4hMTt2YXIgcz1hKG8sdCxlLHIpO2lmKCFzKXJldHVybiExO3ZhciB1PXJ8fGUsaD1pLmdldCh1KTtyZXR1cm4gcy5zaWduYWw9bnVsbCxjKG8pLGMoaCksITB9LGUuZGlzY29ubmVjdEJldHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgbz1uLmdldCh0KTtpZihvJiYwIT09by5sZW5ndGgpe3ZhciBzPWkuZ2V0KGUpO3MmJjAhPT1zLmxlbmd0aCYmKHIuZWFjaChzLGZ1bmN0aW9uKGUpe2Uuc2lnbmFsJiZlLnNpZ25hbC5zZW5kZXI9PT10JiYoZS5zaWduYWw9bnVsbCl9KSxjKG8pLGMocykpfX0sZS5kaXNjb25uZWN0U2VuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPW4uZ2V0KHQpO2UmJjAhPT1lLmxlbmd0aCYmKHIuZWFjaChlLGZ1bmN0aW9uKHQpe2lmKHQuc2lnbmFsKXt2YXIgZT10LnRoaXNBcmd8fHQuc2xvdDt0LnNpZ25hbD1udWxsLGMoaS5nZXQoZSkpfX0pLGMoZSkpfSxlLmRpc2Nvbm5lY3RSZWNlaXZlcj1mdW5jdGlvbih0KXt2YXIgZT1pLmdldCh0KTtlJiYwIT09ZS5sZW5ndGgmJihyLmVhY2goZSxmdW5jdGlvbih0KXtpZih0LnNpZ25hbCl7dmFyIGU9dC5zaWduYWwuc2VuZGVyO3Quc2lnbmFsPW51bGwsYyhuLmdldChlKSl9fSksYyhlKSl9LGUuZGlzY29ubmVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZT1uLmdldCh0KTtlJiZlLmxlbmd0aD4wJiYoci5lYWNoKGUsZnVuY3Rpb24odCl7dC5zaWduYWw9bnVsbH0pLGMoZSkpO3ZhciBvPWkuZ2V0KHQpO28mJm8ubGVuZ3RoPjAmJihyLmVhY2gobyxmdW5jdGlvbih0KXt0LnNpZ25hbD1udWxsfSksYyhvKSl9LGUuZW1pdD1mdW5jdGlvbih0LGUpe3ZhciBpPW4uZ2V0KHQuc2VuZGVyKTtpZihpJiYwIT09aS5sZW5ndGgpZm9yKHZhciByPTAsbz1pLmxlbmd0aDtyPG87KytyKXt2YXIgcz1pW3JdO3Muc2lnbmFsPT09dCYmdShzLGUpfX07dmFyIG49bmV3IFdlYWtNYXAsaT1uZXcgV2Vha01hcCxvPW5ldyBTZXQscz0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZTp0O2Z1bmN0aW9uIGEodCxlLG4saSl7cmV0dXJuIHIuZmluZCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpZ25hbD09PWUmJnQuc2xvdD09PW4mJnQudGhpc0FyZz09PWl9KX1mdW5jdGlvbiB1KHQsbil7dmFyIGk9dC5zaWduYWwscj10LnNsb3Qsbz10LnRoaXNBcmc7dHJ5e3IuY2FsbChvLGkuc2VuZGVyLG4pfWNhdGNoKHQpe2UuZXhjZXB0aW9uSGFuZGxlcih0KX19ZnVuY3Rpb24gYyh0KXswPT09by5zaXplJiZzKGgpLG8uYWRkKHQpfWZ1bmN0aW9uIGgoKXtvLmZvckVhY2gobCksby5jbGVhcigpfWZ1bmN0aW9uIGwodCl7ci5BcnJheUV4dC5yZW1vdmVBbGxXaGVyZSh0LGQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG51bGw9PT10LnNpZ25hbH19KGl8fChpPXt9KSl9KS5jYWxsKHRoaXMsbig0NCkuc2V0SW1tZWRpYXRlKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMjMpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29yZVdpZGdldE1vZGVsIixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTn0pfSxlfShvLldpZGdldE1vZGVsKTtlLkNvcmVXaWRnZXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvcmVET01XaWRnZXRNb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0oby5ET01XaWRnZXRNb2RlbCk7ZS5Db3JlRE9NV2lkZ2V0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb3JlRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfdmlld19tb2R1bGVfdmVyc2lvbjphLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixfbW9kZWxfbW9kdWxlX3ZlcnNpb246YS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZX0ocy5EZXNjcmlwdGlvbk1vZGVsKTtlLkNvcmVEZXNjcmlwdGlvbk1vZGVsPWx9LGZ1bmN0aW9uKHQsZSl7dmFyIG47bj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpeyJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYobj13aW5kb3cpfXQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoZXx8IkFzc2VydGlvbiBmYWlsZWQiKX10LmV4cG9ydHM9bixuLmVxdWFsPWZ1bmN0aW9uKHQsZSxuKXtpZih0IT1lKXRocm93IG5ldyBFcnJvcihufHwiQXNzZXJ0aW9uIGZhaWxlZDogIit0KyIgIT0gIitlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTsKLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KLyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xCiAqIGh0dHBzOi8vanF1ZXJ5LmNvbS8KICoKICogSW5jbHVkZXMgU2l6emxlLmpzCiAqIGh0dHBzOi8vc2l6emxlanMuY29tLwogKgogKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBEYXRlOiAyMDE4LTAxLTIwVDE3OjI0WgogKi8KIWZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOyJvYmplY3QiPT10eXBlb2YgdC5leHBvcnRzP3QuZXhwb3J0cz1lLmRvY3VtZW50P24oZSwhMCk6ZnVuY3Rpb24odCl7aWYoIXQuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIG4odCl9Om4oZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4scil7InVzZSBzdHJpY3QiO3ZhciBvPVtdLHM9bi5kb2N1bWVudCxhPU9iamVjdC5nZXRQcm90b3R5cGVPZix1PW8uc2xpY2UsYz1vLmNvbmNhdCxoPW8ucHVzaCxsPW8uaW5kZXhPZixkPXt9LGY9ZC50b1N0cmluZyxwPWQuaGFzT3duUHJvcGVydHksbT1wLnRvU3RyaW5nLGc9bS5jYWxsKE9iamVjdCksdj17fSxiPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQubm9kZVR5cGV9LHk9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnQ9PT10LndpbmRvd30sXz17dHlwZTohMCxzcmM6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIHcodCxlLG4pe3ZhciBpLHI9KGU9ZXx8cykuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoci50ZXh0PXQsbilmb3IoaSBpbiBfKW5baV0mJihyW2ldPW5baV0pO2UuaGVhZC5hcHBlbmRDaGlsZChyKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIG51bGw9PXQ/dCsiIjoib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0P2RbZi5jYWxsKHQpXXx8Im9iamVjdCI6dHlwZW9mIHR9dmFyIE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IE0uZm4uaW5pdCh0LGUpfSxTPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZztmdW5jdGlvbiBFKHQpe3ZhciBlPSEhdCYmImxlbmd0aCJpbiB0JiZ0Lmxlbmd0aCxuPXgodCk7cmV0dXJuIWIodCkmJiF5KHQpJiYoImFycmF5Ij09PW58fDA9PT1lfHwibnVtYmVyIj09dHlwZW9mIGUmJmU+MCYmZS0xIGluIHQpfU0uZm49TS5wcm90b3R5cGU9e2pxdWVyeToiMy4zLjEiLGNvbnN0cnVjdG9yOk0sbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD91LmNhbGwodGhpcyk6dDwwP3RoaXNbdCt0aGlzLmxlbmd0aF06dGhpc1t0XX0scHVzaFN0YWNrOmZ1bmN0aW9uKHQpe3ZhciBlPU0ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLHQpO3JldHVybiBlLnByZXZPYmplY3Q9dGhpcyxlfSxlYWNoOmZ1bmN0aW9uKHQpe3JldHVybiBNLmVhY2godGhpcyx0KX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLm1hcCh0aGlzLGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuY2FsbChlLG4sZSl9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGgsbj0rdCsodDwwP2U6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4+PTAmJm48ZT9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6aCxzb3J0Om8uc29ydCxzcGxpY2U6by5zcGxpY2V9LE0uZXh0ZW5kPU0uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscixvLHM9YXJndW1lbnRzWzBdfHx7fSxhPTEsdT1hcmd1bWVudHMubGVuZ3RoLGM9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIHMmJihjPXMscz1hcmd1bWVudHNbYV18fHt9LGErKyksIm9iamVjdCI9PXR5cGVvZiBzfHxiKHMpfHwocz17fSksYT09PXUmJihzPXRoaXMsYS0tKTthPHU7YSsrKWlmKG51bGwhPSh0PWFyZ3VtZW50c1thXSkpZm9yKGUgaW4gdCluPXNbZV0scyE9PShpPXRbZV0pJiYoYyYmaSYmKE0uaXNQbGFpbk9iamVjdChpKXx8KHI9QXJyYXkuaXNBcnJheShpKSkpPyhyPyhyPSExLG89biYmQXJyYXkuaXNBcnJheShuKT9uOltdKTpvPW4mJk0uaXNQbGFpbk9iamVjdChuKT9uOnt9LHNbZV09TS5leHRlbmQoYyxvLGkpKTp2b2lkIDAhPT1pJiYoc1tlXT1pKSk7cmV0dXJuIHN9LE0uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy4zLjEiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKHQpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuISghdHx8IltvYmplY3QgT2JqZWN0XSIhPT1mLmNhbGwodCkpJiYoIShlPWEodCkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj1wLmNhbGwoZSwiY29uc3RydWN0b3IiKSYmZS5jb25zdHJ1Y3RvcikmJm0uY2FsbChuKT09PWcpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlO2ZvcihlIGluIHQpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24odCl7dyh0KX0sZWFjaDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MDtpZihFKHQpKWZvcihuPXQubGVuZ3RoO2k8biYmITEhPT1lLmNhbGwodFtpXSxpLHRbaV0pO2krKyk7ZWxzZSBmb3IoaSBpbiB0KWlmKCExPT09ZS5jYWxsKHRbaV0saSx0W2ldKSlicmVhaztyZXR1cm4gdH0sdHJpbTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjoodCsiIikucmVwbGFjZShTLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZXx8W107cmV0dXJuIG51bGwhPXQmJihFKE9iamVjdCh0KSk/TS5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgdD9bdF06dCk6aC5jYWxsKG4sdCkpLG59LGluQXJyYXk6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudWxsPT1lPy0xOmwuY2FsbChlLHQsbil9LG1lcmdlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPStlLmxlbmd0aCxpPTAscj10Lmxlbmd0aDtpPG47aSsrKXRbcisrXT1lW2ldO3JldHVybiB0Lmxlbmd0aD1yLHR9LGdyZXA6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aCxzPSFuO3I8bztyKyspIWUodFtyXSxyKSE9PXMmJmkucHVzaCh0W3JdKTtyZXR1cm4gaX0sbWFwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG89MCxzPVtdO2lmKEUodCkpZm9yKGk9dC5sZW5ndGg7bzxpO28rKyludWxsIT0ocj1lKHRbb10sbyxuKSkmJnMucHVzaChyKTtlbHNlIGZvcihvIGluIHQpbnVsbCE9KHI9ZSh0W29dLG8sbikpJiZzLnB1c2gocik7cmV0dXJuIGMuYXBwbHkoW10scyl9LGd1aWQ6MSxzdXBwb3J0OnZ9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoTS5mbltTeW1ib2wuaXRlcmF0b3JdPW9bU3ltYm9sLml0ZXJhdG9yXSksTS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe2RbIltvYmplY3QgIitlKyJdIl09ZS50b0xvd2VyQ2FzZSgpfSk7dmFyIEE9Ci8qIQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4zLjMKICogaHR0cHM6Ly9zaXp6bGVqcy5jb20vCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIERhdGU6IDIwMTYtMDgtMDgKICovCmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnLHYsYix5LF89InNpenpsZSIrMSpuZXcgRGF0ZSx3PXQuZG9jdW1lbnQseD0wLE09MCxTPXN0KCksRT1zdCgpLEE9c3QoKSxDPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lJiYobD0hMCksMH0saz17fS5oYXNPd25Qcm9wZXJ0eSxPPVtdLFA9Ty5wb3AsVD1PLnB1c2gsaj1PLnB1c2gsST1PLnNsaWNlLEw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspaWYodFtuXT09PWUpcmV0dXJuIG47cmV0dXJuLTF9LEI9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixEPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixSPSIoPzpcXFxcLnxbXFx3LV18W15cMC1cXHhhMF0pKyIsej0iXFxbIitEKyIqKCIrUisiKSg/OiIrRCsiKihbKl4kfCF+XT89KSIrRCsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK1IrIikpfCkiK0QrIipcXF0iLE49IjooIitSKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18Iit6KyIpKil8LiopXFwpfCkiLFc9bmV3IFJlZ0V4cChEKyIrIiwiZyIpLHE9bmV3IFJlZ0V4cCgiXiIrRCsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitEKyIrJCIsImciKSxIPW5ldyBSZWdFeHAoIl4iK0QrIiosIitEKyIqIiksRj1uZXcgUmVnRXhwKCJeIitEKyIqKFs+K35dfCIrRCsiKSIrRCsiKiIpLFY9bmV3IFJlZ0V4cCgiPSIrRCsiKihbXlxcXSdcIl0qPykiK0QrIipcXF0iLCJnIiksVT1uZXcgUmVnRXhwKE4pLEs9bmV3IFJlZ0V4cCgiXiIrUisiJCIpLFk9e0lEOm5ldyBSZWdFeHAoIl4jKCIrUisiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitSKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitSKyJ8WypdKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIreiksUFNFVURPOm5ldyBSZWdFeHAoIl4iK04pLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrRCsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrRCsiKig/OihbKy1dfCkiK0QrIiooXFxkKyl8KSkiK0QrIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitEKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK0QrIiooKD86LVxcZCk/XFxkKikiK0QrIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFg9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSwkPS9eaFxkJC9pLEc9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLEo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxaPS9bK35dLyxRPW5ldyBSZWdFeHAoIlxcXFwoW1xcZGEtZl17MSw2fSIrRCsiP3woIitEKyIpfC4pIiwiaWciKSx0dD1mdW5jdGlvbih0LGUsbil7dmFyIGk9IjB4IitlLTY1NTM2O3JldHVybiBpIT1pfHxuP2U6aTwwP1N0cmluZy5mcm9tQ2hhckNvZGUoaSs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShpPj4xMHw1NTI5NiwxMDIzJml8NTYzMjApfSxldD0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxudD1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJcMCI9PT10PyLvv70iOnQuc2xpY2UoMCwtMSkrIlxcIit0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK3R9LGl0PWZ1bmN0aW9uKCl7ZCgpfSxydD1idChmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuZGlzYWJsZWQmJigiZm9ybSJpbiB0fHwibGFiZWwiaW4gdCl9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7ai5hcHBseShPPUkuY2FsbCh3LmNoaWxkTm9kZXMpLHcuY2hpbGROb2RlcyksT1t3LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaCh0KXtqPXthcHBseTpPLmxlbmd0aD9mdW5jdGlvbih0LGUpe1QuYXBwbHkodCxJLmNhbGwoZSkpfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPTA7dFtuKytdPWVbaSsrXTspO3QubGVuZ3RoPW4tMX19fWZ1bmN0aW9uIG90KHQsZSxpLHIpe3ZhciBvLGEsYyxoLGwscCx2LGI9ZSYmZS5vd25lckRvY3VtZW50LHg9ZT9lLm5vZGVUeXBlOjk7aWYoaT1pfHxbXSwic3RyaW5nIiE9dHlwZW9mIHR8fCF0fHwxIT09eCYmOSE9PXgmJjExIT09eClyZXR1cm4gaTtpZighciYmKChlP2Uub3duZXJEb2N1bWVudHx8ZTp3KSE9PWYmJmQoZSksZT1lfHxmLG0pKXtpZigxMSE9PXgmJihsPUouZXhlYyh0KSkpaWYobz1sWzFdKXtpZig5PT09eCl7aWYoIShjPWUuZ2V0RWxlbWVudEJ5SWQobykpKXJldHVybiBpO2lmKGMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNlIGlmKGImJihjPWIuZ2V0RWxlbWVudEJ5SWQobykpJiZ5KGUsYykmJmMuaWQ9PT1vKXJldHVybiBpLnB1c2goYyksaX1lbHNle2lmKGxbMl0pcmV0dXJuIGouYXBwbHkoaSxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpKSxpO2lmKChvPWxbM10pJiZuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gai5hcHBseShpLGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShvKSksaX1pZihuLnFzYSYmIUFbdCsiICJdJiYoIWd8fCFnLnRlc3QodCkpKXtpZigxIT09eCliPWUsdj10O2Vsc2UgaWYoIm9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2ZvcigoaD1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/aD1oLnJlcGxhY2UoZXQsbnQpOmUuc2V0QXR0cmlidXRlKCJpZCIsaD1fKSxhPShwPXModCkpLmxlbmd0aDthLS07KXBbYV09IiMiK2grIiAiK3Z0KHBbYV0pO3Y9cC5qb2luKCIsIiksYj1aLnRlc3QodCkmJm10KGUucGFyZW50Tm9kZSl8fGV9aWYodil0cnl7cmV0dXJuIGouYXBwbHkoaSxiLnF1ZXJ5U2VsZWN0b3JBbGwodikpLGl9Y2F0Y2godCl7fWZpbmFsbHl7aD09PV8mJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIHUodC5yZXBsYWNlKHEsIiQxIiksZSxpLHIpfWZ1bmN0aW9uIHN0KCl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uIGUobixyKXtyZXR1cm4gdC5wdXNoKG4rIiAiKT5pLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVt0LnNoaWZ0KCldLGVbbisiICJdPXJ9fWZ1bmN0aW9uIGF0KHQpe3JldHVybiB0W19dPSEwLHR9ZnVuY3Rpb24gdXQodCl7dmFyIGU9Zi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIXQoZSl9Y2F0Y2godCl7cmV0dXJuITF9ZmluYWxseXtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxlPW51bGx9fWZ1bmN0aW9uIGN0KHQsZSl7Zm9yKHZhciBuPXQuc3BsaXQoInwiKSxyPW4ubGVuZ3RoO3ItLTspaS5hdHRySGFuZGxlW25bcl1dPWV9ZnVuY3Rpb24gaHQodCxlKXt2YXIgbj1lJiZ0LGk9biYmMT09PXQubm9kZVR5cGUmJjE9PT1lLm5vZGVUeXBlJiZ0LnNvdXJjZUluZGV4LWUuc291cmNlSW5kZXg7aWYoaSlyZXR1cm4gaTtpZihuKWZvcig7bj1uLm5leHRTaWJsaW5nOylpZihuPT09ZSlyZXR1cm4tMTtyZXR1cm4gdD8xOi0xfWZ1bmN0aW9uIGx0KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09bnx8ImJ1dHRvbiI9PT1uKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gZnQodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiJmb3JtImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/ImxhYmVsImluIGU/ImxhYmVsImluIGUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT10OmUuZGlzYWJsZWQ9PT10OmUuaXNEaXNhYmxlZD09PXR8fGUuaXNEaXNhYmxlZCE9PSF0JiZydChlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6ImxhYmVsImluIGUmJmUuZGlzYWJsZWQ9PT10fX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4gYXQoZnVuY3Rpb24oZSl7cmV0dXJuIGU9K2UsYXQoZnVuY3Rpb24obixpKXtmb3IodmFyIHIsbz10KFtdLG4ubGVuZ3RoLGUpLHM9by5sZW5ndGg7cy0tOyluW3I9b1tzXV0mJihuW3JdPSEoaVtyXT1uW3JdKSl9KX0pfWZ1bmN0aW9uIG10KHQpe3JldHVybiB0JiZ2b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lJiZ0fWZvcihlIGluIG49b3Quc3VwcG9ydD17fSxvPW90LmlzWE1MPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJih0Lm93bmVyRG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hIWUmJiJIVE1MIiE9PWUubm9kZU5hbWV9LGQ9b3Quc2V0RG9jdW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUscixzPXQ/dC5vd25lckRvY3VtZW50fHx0Onc7cmV0dXJuIHMhPT1mJiY5PT09cy5ub2RlVHlwZSYmcy5kb2N1bWVudEVsZW1lbnQ/KHA9KGY9cykuZG9jdW1lbnRFbGVtZW50LG09IW8oZiksdyE9PWYmJihyPWYuZGVmYXVsdFZpZXcpJiZyLnRvcCE9PXImJihyLmFkZEV2ZW50TGlzdGVuZXI/ci5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGl0LCExKTpyLmF0dGFjaEV2ZW50JiZyLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsaXQpKSxuLmF0dHJpYnV0ZXM9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lPSJpIiwhdC5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksbi5nZXRFbGVtZW50c0J5VGFnTmFtZT11dChmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBlbmRDaGlsZChmLmNyZWF0ZUNvbW1lbnQoIiIpKSwhdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1HLnRlc3QoZi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxuLmdldEJ5SWQ9dXQoZnVuY3Rpb24odCl7cmV0dXJuIHAuYXBwZW5kQ2hpbGQodCkuaWQ9XywhZi5nZXRFbGVtZW50c0J5TmFtZXx8IWYuZ2V0RWxlbWVudHNCeU5hbWUoXykubGVuZ3RofSksbi5nZXRCeUlkPyhpLmZpbHRlci5JRD1mdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoUSx0dCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiaWQiKT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbj1lLmdldEVsZW1lbnRCeUlkKHQpO3JldHVybiBuP1tuXTpbXX19KTooaS5maWx0ZXIuSUQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKFEsdHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj12b2lkIDAhPT10LmdldEF0dHJpYnV0ZU5vZGUmJnQuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbiYmbi52YWx1ZT09PWV9fSxpLmZpbmQuSUQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRCeUlkJiZtKXt2YXIgbixpLHIsbz1lLmdldEVsZW1lbnRCeUlkKHQpO2lmKG8pe2lmKChuPW8uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJm4udmFsdWU9PT10KXJldHVybltvXTtmb3Iocj1lLmdldEVsZW1lbnRzQnlOYW1lKHQpLGk9MDtvPXJbaSsrXTspaWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PXQpcmV0dXJuW29dfXJldHVybltdfX0pLGkuZmluZC5UQUc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk6bi5xc2E/ZS5xdWVyeVNlbGVjdG9yQWxsKHQpOnZvaWQgMH06ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9MCxvPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCk7aWYoIioiPT09dCl7Zm9yKDtuPW9bcisrXTspMT09PW4ubm9kZVR5cGUmJmkucHVzaChuKTtyZXR1cm4gaX1yZXR1cm4gb30saS5maW5kLkNMQVNTPW4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJm0pcmV0dXJuIGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KX0sdj1bXSxnPVtdLChuLnFzYT1HLnRlc3QoZi5xdWVyeVNlbGVjdG9yQWxsKSkmJih1dChmdW5jdGlvbih0KXtwLmFwcGVuZENoaWxkKHQpLmlubmVySFRNTD0iPGEgaWQ9JyIrXysiJz48L2E+PHNlbGVjdCBpZD0nIitfKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLHQucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJmcucHVzaCgiWypeJF09IitEKyIqKD86Jyd8XCJcIikiKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGcucHVzaCgiXFxbIitEKyIqKD86dmFsdWV8IitCKyIpIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrXysiLV0iKS5sZW5ndGh8fGcucHVzaCgifj0iKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxnLnB1c2goIjpjaGVja2VkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrXysiKyoiKS5sZW5ndGh8fGcucHVzaCgiLiMuK1srfl0iKX0pLHV0KGZ1bmN0aW9uKHQpe3QuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciBlPWYuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLHQuYXBwZW5kQ2hpbGQoZSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLHQucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJmcucHVzaCgibmFtZSIrRCsiKlsqXiR8IX5dPz0iKSwyIT09dC5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmZy5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLHAuYXBwZW5kQ2hpbGQodCkuZGlzYWJsZWQ9ITAsMiE9PXQucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZnLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksdC5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IiksZy5wdXNoKCIsLio6Iil9KSksKG4ubWF0Y2hlc1NlbGVjdG9yPUcudGVzdChiPXAubWF0Y2hlc3x8cC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHAubW96TWF0Y2hlc1NlbGVjdG9yfHxwLm9NYXRjaGVzU2VsZWN0b3J8fHAubXNNYXRjaGVzU2VsZWN0b3IpKSYmdXQoZnVuY3Rpb24odCl7bi5kaXNjb25uZWN0ZWRNYXRjaD1iLmNhbGwodCwiKiIpLGIuY2FsbCh0LCJbcyE9JyddOngiKSx2LnB1c2goIiE9IixOKX0pLGc9Zy5sZW5ndGgmJm5ldyBSZWdFeHAoZy5qb2luKCJ8IikpLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLGU9Ry50ZXN0KHAuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9ZXx8Ry50ZXN0KHAuY29udGFpbnMpP2Z1bmN0aW9uKHQsZSl7dmFyIG49OT09PXQubm9kZVR5cGU/dC5kb2N1bWVudEVsZW1lbnQ6dCxpPWUmJmUucGFyZW50Tm9kZTtyZXR1cm4gdD09PWl8fCEoIWl8fDEhPT1pLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhpKTp0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGkpKSl9OmZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IoO2U9ZS5wYXJlbnROb2RlOylpZihlPT09dClyZXR1cm4hMDtyZXR1cm4hMX0sQz1lP2Z1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIGw9ITAsMDt2YXIgaT0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gaXx8KDEmKGk9KHQub3duZXJEb2N1bWVudHx8dCk9PT0oZS5vd25lckRvY3VtZW50fHxlKT90LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpOjEpfHwhbi5zb3J0RGV0YWNoZWQmJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk9PT1pP3Q9PT1mfHx0Lm93bmVyRG9jdW1lbnQ9PT13JiZ5KHcsdCk/LTE6ZT09PWZ8fGUub3duZXJEb2N1bWVudD09PXcmJnkodyxlKT8xOmg/TChoLHQpLUwoaCxlKTowOjQmaT8tMToxKX06ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4gbD0hMCwwO3ZhciBuLGk9MCxyPXQucGFyZW50Tm9kZSxvPWUucGFyZW50Tm9kZSxzPVt0XSxhPVtlXTtpZighcnx8IW8pcmV0dXJuIHQ9PT1mPy0xOmU9PT1mPzE6cj8tMTpvPzE6aD9MKGgsdCktTChoLGUpOjA7aWYocj09PW8pcmV0dXJuIGh0KHQsZSk7Zm9yKG49dDtuPW4ucGFyZW50Tm9kZTspcy51bnNoaWZ0KG4pO2ZvcihuPWU7bj1uLnBhcmVudE5vZGU7KWEudW5zaGlmdChuKTtmb3IoO3NbaV09PT1hW2ldOylpKys7cmV0dXJuIGk/aHQoc1tpXSxhW2ldKTpzW2ldPT09dz8tMTphW2ldPT09dz8xOjB9LGYpOmZ9LG90Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gb3QodCxudWxsLG51bGwsZSl9LG90Lm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbih0LGUpe2lmKCh0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSxlPWUucmVwbGFjZShWLCI9JyQxJ10iKSxuLm1hdGNoZXNTZWxlY3RvciYmbSYmIUFbZSsiICJdJiYoIXZ8fCF2LnRlc3QoZSkpJiYoIWd8fCFnLnRlc3QoZSkpKXRyeXt2YXIgaT1iLmNhbGwodCxlKTtpZihpfHxuLmRpc2Nvbm5lY3RlZE1hdGNofHx0LmRvY3VtZW50JiYxMSE9PXQuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGl9Y2F0Y2godCl7fXJldHVybiBvdChlLGYsbnVsbCxbdF0pLmxlbmd0aD4wfSxvdC5jb250YWlucz1mdW5jdGlvbih0LGUpe3JldHVybih0Lm93bmVyRG9jdW1lbnR8fHQpIT09ZiYmZCh0KSx5KHQsZSl9LG90LmF0dHI9ZnVuY3Rpb24odCxlKXsodC5vd25lckRvY3VtZW50fHx0KSE9PWYmJmQodCk7dmFyIHI9aS5hdHRySGFuZGxlW2UudG9Mb3dlckNhc2UoKV0sbz1yJiZrLmNhbGwoaS5hdHRySGFuZGxlLGUudG9Mb3dlckNhc2UoKSk/cih0LGUsIW0pOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09bz9vOm4uYXR0cmlidXRlc3x8IW0/dC5nZXRBdHRyaWJ1dGUoZSk6KG89dC5nZXRBdHRyaWJ1dGVOb2RlKGUpKSYmby5zcGVjaWZpZWQ/by52YWx1ZTpudWxsfSxvdC5lc2NhcGU9ZnVuY3Rpb24odCl7cmV0dXJuKHQrIiIpLnJlcGxhY2UoZXQsbnQpfSxvdC5lcnJvcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrdCl9LG90LnVuaXF1ZVNvcnQ9ZnVuY3Rpb24odCl7dmFyIGUsaT1bXSxyPTAsbz0wO2lmKGw9IW4uZGV0ZWN0RHVwbGljYXRlcyxoPSFuLnNvcnRTdGFibGUmJnQuc2xpY2UoMCksdC5zb3J0KEMpLGwpe2Zvcig7ZT10W28rK107KWU9PT10W29dJiYocj1pLnB1c2gobykpO2Zvcig7ci0tOyl0LnNwbGljZShpW3JdLDEpfXJldHVybiBoPW51bGwsdH0scj1vdC5nZXRUZXh0PWZ1bmN0aW9uKHQpe3ZhciBlLG49IiIsaT0wLG89dC5ub2RlVHlwZTtpZihvKXtpZigxPT09b3x8OT09PW98fDExPT09byl7aWYoInN0cmluZyI9PXR5cGVvZiB0LnRleHRDb250ZW50KXJldHVybiB0LnRleHRDb250ZW50O2Zvcih0PXQuZmlyc3RDaGlsZDt0O3Q9dC5uZXh0U2libGluZyluKz1yKHQpfWVsc2UgaWYoMz09PW98fDQ9PT1vKXJldHVybiB0Lm5vZGVWYWx1ZX1lbHNlIGZvcig7ZT10W2krK107KW4rPXIoZSk7cmV0dXJuIG59LChpPW90LnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmF0LG1hdGNoOlksYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0ucmVwbGFjZShRLHR0KSx0WzNdPSh0WzNdfHx0WzRdfHx0WzVdfHwiIikucmVwbGFjZShRLHR0KSwifj0iPT09dFsyXSYmKHRbM109IiAiK3RbM10rIiAiKSx0LnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPXRbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PXRbMV0uc2xpY2UoMCwzKT8odFszXXx8b3QuZXJyb3IodFswXSksdFs0XT0rKHRbNF0/dFs1XSsodFs2XXx8MSk6MiooImV2ZW4iPT09dFszXXx8Im9kZCI9PT10WzNdKSksdFs1XT0rKHRbN10rdFs4XXx8Im9kZCI9PT10WzNdKSk6dFszXSYmb3QuZXJyb3IodFswXSksdH0sUFNFVURPOmZ1bmN0aW9uKHQpe3ZhciBlLG49IXRbNl0mJnRbMl07cmV0dXJuIFkuQ0hJTEQudGVzdCh0WzBdKT9udWxsOih0WzNdP3RbMl09dFs0XXx8dFs1XXx8IiI6biYmVS50ZXN0KG4pJiYoZT1zKG4sITApKSYmKGU9bi5pbmRleE9mKCIpIixuLmxlbmd0aC1lKS1uLmxlbmd0aCkmJih0WzBdPXRbMF0uc2xpY2UoMCxlKSx0WzJdPW4uc2xpY2UoMCxlKSksdC5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZShRLHR0KS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PXQ/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWUmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWV9fSxDTEFTUzpmdW5jdGlvbih0KXt2YXIgZT1TW3QrIiAiXTtyZXR1cm4gZXx8KGU9bmV3IFJlZ0V4cCgiKF58IitEKyIpIit0KyIoIitEKyJ8JCkiKSkmJlModCxmdW5jdGlvbih0KXtyZXR1cm4gZS50ZXN0KCJzdHJpbmciPT10eXBlb2YgdC5jbGFzc05hbWUmJnQuY2xhc3NOYW1lfHx2b2lkIDAhPT10LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHI9b3QuYXR0cihpLHQpO3JldHVybiBudWxsPT1yPyIhPSI9PT1lOiFlfHwocis9IiIsIj0iPT09ZT9yPT09bjoiIT0iPT09ZT9yIT09bjoiXj0iPT09ZT9uJiYwPT09ci5pbmRleE9mKG4pOiIqPSI9PT1lP24mJnIuaW5kZXhPZihuKT4tMToiJD0iPT09ZT9uJiZyLnNsaWNlKC1uLmxlbmd0aCk9PT1uOiJ+PSI9PT1lPygiICIrci5yZXBsYWNlKFcsIiAiKSsiICIpLmluZGV4T2Yobik+LTE6Inw9Ij09PWUmJihyPT09bnx8ci5zbGljZSgwLG4ubGVuZ3RoKzEpPT09bisiLSIpKX19LENISUxEOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG89Im50aCIhPT10LnNsaWNlKDAsMykscz0ibGFzdCIhPT10LnNsaWNlKC00KSxhPSJvZi10eXBlIj09PWU7cmV0dXJuIDE9PT1pJiYwPT09cj9mdW5jdGlvbih0KXtyZXR1cm4hIXQucGFyZW50Tm9kZX06ZnVuY3Rpb24oZSxuLHUpe3ZhciBjLGgsbCxkLGYscCxtPW8hPT1zPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsZz1lLnBhcmVudE5vZGUsdj1hJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYj0hdSYmIWEseT0hMTtpZihnKXtpZihvKXtmb3IoO207KXtmb3IoZD1lO2Q9ZFttXTspaWYoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT12OjE9PT1kLm5vZGVUeXBlKXJldHVybiExO3A9bT0ib25seSI9PT10JiYhcCYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihwPVtzP2cuZmlyc3RDaGlsZDpnLmxhc3RDaGlsZF0scyYmYil7Zm9yKHk9KGY9KGM9KGg9KGw9KGQ9ZylbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pJiZjWzJdLGQ9ZiYmZy5jaGlsZE5vZGVzW2ZdO2Q9KytmJiZkJiZkW21dfHwoeT1mPTApfHxwLnBvcCgpOylpZigxPT09ZC5ub2RlVHlwZSYmKyt5JiZkPT09ZSl7aFt0XT1beCxmLHldO2JyZWFrfX1lbHNlIGlmKGImJih5PWY9KGM9KGg9KGw9KGQ9ZSlbX118fChkW19dPXt9KSlbZC51bmlxdWVJRF18fChsW2QudW5pcXVlSURdPXt9KSlbdF18fFtdKVswXT09PXgmJmNbMV0pLCExPT09eSlmb3IoOyhkPSsrZiYmZCYmZFttXXx8KHk9Zj0wKXx8cC5wb3AoKSkmJigoYT9kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT12OjEhPT1kLm5vZGVUeXBlKXx8ISsreXx8KGImJigoaD0obD1kW19dfHwoZFtfXT17fSkpW2QudW5pcXVlSURdfHwobFtkLnVuaXF1ZUlEXT17fSkpW3RdPVt4LHldKSxkIT09ZSkpOyk7cmV0dXJuKHktPXIpPT09aXx8eSVpPT0wJiZ5L2k+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKHQsZSl7dmFyIG4scj1pLnBzZXVkb3NbdF18fGkuc2V0RmlsdGVyc1t0LnRvTG93ZXJDYXNlKCldfHxvdC5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK3QpO3JldHVybiByW19dP3IoZSk6ci5sZW5ndGg+MT8obj1bdCx0LCIiLGVdLGkuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eSh0LnRvTG93ZXJDYXNlKCkpP2F0KGZ1bmN0aW9uKHQsbil7Zm9yKHZhciBpLG89cih0LGUpLHM9by5sZW5ndGg7cy0tOyl0W2k9TCh0LG9bc10pXT0hKG5baV09b1tzXSl9KTpmdW5jdGlvbih0KXtyZXR1cm4gcih0LDAsbil9KTpyfX0scHNldWRvczp7bm90OmF0KGZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49W10saT1hKHQucmVwbGFjZShxLCIkMSIpKTtyZXR1cm4gaVtfXT9hdChmdW5jdGlvbih0LGUsbixyKXtmb3IodmFyIG8scz1pKHQsbnVsbCxyLFtdKSxhPXQubGVuZ3RoO2EtLTspKG89c1thXSkmJih0W2FdPSEoZVthXT1vKSl9KTpmdW5jdGlvbih0LHIsbyl7cmV0dXJuIGVbMF09dCxpKGUsbnVsbCxvLG4pLGVbMF09bnVsbCwhbi5wb3AoKX19KSxoYXM6YXQoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBvdCh0LGUpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOmF0KGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZShRLHR0KSxmdW5jdGlvbihlKXtyZXR1cm4oZS50ZXh0Q29udGVudHx8ZS5pbm5lclRleHR8fHIoZSkpLmluZGV4T2YodCk+LTF9fSksbGFuZzphdChmdW5jdGlvbih0KXtyZXR1cm4gSy50ZXN0KHR8fCIiKXx8b3QuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrdCksdD10LnJlcGxhY2UoUSx0dCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgbjtkb3tpZihuPW0/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihuPW4udG9Mb3dlckNhc2UoKSk9PT10fHwwPT09bi5pbmRleE9mKHQrIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciBuPXQubG9jYXRpb24mJnQubG9jYXRpb24uaGFzaDtyZXR1cm4gbiYmbi5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1wfSxmb2N1czpmdW5jdGlvbih0KXtyZXR1cm4gdD09PWYuYWN0aXZlRWxlbWVudCYmKCFmLmhhc0ZvY3VzfHxmLmhhc0ZvY3VzKCkpJiYhISh0LnR5cGV8fHQuaHJlZnx8fnQudGFiSW5kZXgpfSxlbmFibGVkOmZ0KCExKSxkaXNhYmxlZDpmdCghMCksY2hlY2tlZDpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiEhdC5jaGVja2VkfHwib3B0aW9uIj09PWUmJiEhdC5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT10LnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbih0KXtmb3IodD10LmZpcnN0Q2hpbGQ7dDt0PXQubmV4dFNpYmxpbmcpaWYodC5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIWkucHNldWRvcy5lbXB0eSh0KX0saGVhZGVyOmZ1bmN0aW9uKHQpe3JldHVybiAkLnRlc3QodC5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBYLnRlc3QodC5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbih0KXt2YXIgZT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWUmJiJidXR0b24iPT09dC50eXBlfHwiYnV0dG9uIj09PWV9LHRleHQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuImlucHV0Ij09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09dC50eXBlJiYobnVsbD09KGU9dC5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWUudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnB0KGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpwdChmdW5jdGlvbih0LGUpe3JldHVybltlLTFdfSksZXE6cHQoZnVuY3Rpb24odCxlLG4pe3JldHVybltuPDA/bitlOm5dfSksZXZlbjpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLG9kZDpwdChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0xO248ZTtuKz0yKXQucHVzaChuKTtyZXR1cm4gdH0pLGx0OnB0KGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bjwwP24rZTpuOy0taT49MDspdC5wdXNoKGkpO3JldHVybiB0fSksZ3Q6cHQoZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT1uPDA/bitlOm47KytpPGU7KXQucHVzaChpKTtyZXR1cm4gdH0pfX0pLnBzZXVkb3MubnRoPWkucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0paS5wc2V1ZG9zW2VdPWx0KGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0paS5wc2V1ZG9zW2VdPWR0KGUpO2Z1bmN0aW9uIGd0KCl7fWZ1bmN0aW9uIHZ0KHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGgsaT0iIjtlPG47ZSsrKWkrPXRbZV0udmFsdWU7cmV0dXJuIGl9ZnVuY3Rpb24gYnQodCxlLG4pe3ZhciBpPWUuZGlyLHI9ZS5uZXh0LG89cnx8aSxzPW4mJiJwYXJlbnROb2RlIj09PW8sYT1NKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSxuLHIpe2Zvcig7ZT1lW2ldOylpZigxPT09ZS5ub2RlVHlwZXx8cylyZXR1cm4gdChlLG4scik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsbix1KXt2YXIgYyxoLGwsZD1beCxhXTtpZih1KXtmb3IoO2U9ZVtpXTspaWYoKDE9PT1lLm5vZGVUeXBlfHxzKSYmdChlLG4sdSkpcmV0dXJuITB9ZWxzZSBmb3IoO2U9ZVtpXTspaWYoMT09PWUubm9kZVR5cGV8fHMpaWYoaD0obD1lW19dfHwoZVtfXT17fSkpW2UudW5pcXVlSURdfHwobFtlLnVuaXF1ZUlEXT17fSksciYmcj09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbaV18fGU7ZWxzZXtpZigoYz1oW29dKSYmY1swXT09PXgmJmNbMV09PT1hKXJldHVybiBkWzJdPWNbMl07aWYoaFtvXT1kLGRbMl09dChlLG4sdSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHl0KHQpe3JldHVybiB0Lmxlbmd0aD4xP2Z1bmN0aW9uKGUsbixpKXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZighdFtyXShlLG4saSkpcmV0dXJuITE7cmV0dXJuITB9OnRbMF19ZnVuY3Rpb24gX3QodCxlLG4saSxyKXtmb3IodmFyIG8scz1bXSxhPTAsdT10Lmxlbmd0aCxjPW51bGwhPWU7YTx1O2ErKykobz10W2FdKSYmKG4mJiFuKG8saSxyKXx8KHMucHVzaChvKSxjJiZlLnB1c2goYSkpKTtyZXR1cm4gc31mdW5jdGlvbiB3dCh0LGUsbixpLHIsbyl7cmV0dXJuIGkmJiFpW19dJiYoaT13dChpKSksciYmIXJbX10mJihyPXd0KHIsbykpLGF0KGZ1bmN0aW9uKG8scyxhLHUpe3ZhciBjLGgsbCxkPVtdLGY9W10scD1zLmxlbmd0aCxtPW98fGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9MCxyPWUubGVuZ3RoO2k8cjtpKyspb3QodCxlW2ldLG4pO3JldHVybiBufShlfHwiKiIsYS5ub2RlVHlwZT9bYV06YSxbXSksZz0hdHx8IW8mJmU/bTpfdChtLGQsdCxhLHUpLHY9bj9yfHwobz90OnB8fGkpP1tdOnM6ZztpZihuJiZuKGcsdixhLHUpLGkpZm9yKGM9X3QodixmKSxpKGMsW10sYSx1KSxoPWMubGVuZ3RoO2gtLTspKGw9Y1toXSkmJih2W2ZbaF1dPSEoZ1tmW2hdXT1sKSk7aWYobyl7aWYocnx8dCl7aWYocil7Zm9yKGM9W10saD12Lmxlbmd0aDtoLS07KShsPXZbaF0pJiZjLnB1c2goZ1toXT1sKTtyKG51bGwsdj1bXSxjLHUpfWZvcihoPXYubGVuZ3RoO2gtLTspKGw9dltoXSkmJihjPXI/TChvLGwpOmRbaF0pPi0xJiYob1tjXT0hKHNbY109bCkpfX1lbHNlIHY9X3Qodj09PXM/di5zcGxpY2UocCx2Lmxlbmd0aCk6dikscj9yKG51bGwscyx2LHUpOmouYXBwbHkocyx2KX0pfWZ1bmN0aW9uIHh0KHQpe2Zvcih2YXIgZSxuLHIsbz10Lmxlbmd0aCxzPWkucmVsYXRpdmVbdFswXS50eXBlXSxhPXN8fGkucmVsYXRpdmVbIiAiXSx1PXM/MTowLGg9YnQoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSxhLCEwKSxsPWJ0KGZ1bmN0aW9uKHQpe3JldHVybiBMKGUsdCk+LTF9LGEsITApLGQ9W2Z1bmN0aW9uKHQsbixpKXt2YXIgcj0hcyYmKGl8fG4hPT1jKXx8KChlPW4pLm5vZGVUeXBlP2godCxuLGkpOmwodCxuLGkpKTtyZXR1cm4gZT1udWxsLHJ9XTt1PG87dSsrKWlmKG49aS5yZWxhdGl2ZVt0W3VdLnR5cGVdKWQ9W2J0KHl0KGQpLG4pXTtlbHNle2lmKChuPWkuZmlsdGVyW3RbdV0udHlwZV0uYXBwbHkobnVsbCx0W3VdLm1hdGNoZXMpKVtfXSl7Zm9yKHI9Kyt1O3I8byYmIWkucmVsYXRpdmVbdFtyXS50eXBlXTtyKyspO3JldHVybiB3dCh1PjEmJnl0KGQpLHU+MSYmdnQodC5zbGljZSgwLHUtMSkuY29uY2F0KHt2YWx1ZToiICI9PT10W3UtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShxLCIkMSIpLG4sdTxyJiZ4dCh0LnNsaWNlKHUscikpLHI8byYmeHQodD10LnNsaWNlKHIpKSxyPG8mJnZ0KHQpKX1kLnB1c2gobil9cmV0dXJuIHl0KGQpfXJldHVybiBndC5wcm90b3R5cGU9aS5maWx0ZXJzPWkucHNldWRvcyxpLnNldEZpbHRlcnM9bmV3IGd0LHM9b3QudG9rZW5pemU9ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8scyxhLHUsYyxoPUVbdCsiICJdO2lmKGgpcmV0dXJuIGU/MDpoLnNsaWNlKDApO2ZvcihhPXQsdT1bXSxjPWkucHJlRmlsdGVyO2E7KXtmb3IocyBpbiBuJiYhKHI9SC5leGVjKGEpKXx8KHImJihhPWEuc2xpY2UoclswXS5sZW5ndGgpfHxhKSx1LnB1c2gobz1bXSkpLG49ITEsKHI9Ri5leGVjKGEpKSYmKG49ci5zaGlmdCgpLG8ucHVzaCh7dmFsdWU6bix0eXBlOnJbMF0ucmVwbGFjZShxLCIgIil9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKSxpLmZpbHRlcikhKHI9WVtzXS5leGVjKGEpKXx8Y1tzXSYmIShyPWNbc10ocikpfHwobj1yLnNoaWZ0KCksby5wdXNoKHt2YWx1ZTpuLHR5cGU6cyxtYXRjaGVzOnJ9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gZT9hLmxlbmd0aDphP290LmVycm9yKHQpOkUodCx1KS5zbGljZSgwKX0sYT1vdC5jb21waWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1bXSxvPVtdLGE9QVt0KyIgIl07aWYoIWEpe2ZvcihlfHwoZT1zKHQpKSxuPWUubGVuZ3RoO24tLTspKGE9eHQoZVtuXSkpW19dP3IucHVzaChhKTpvLnB1c2goYSk7KGE9QSh0LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5sZW5ndGg+MCxyPXQubGVuZ3RoPjAsbz1mdW5jdGlvbihvLHMsYSx1LGgpe3ZhciBsLHAsZyx2PTAsYj0iMCIseT1vJiZbXSxfPVtdLHc9YyxNPW98fHImJmkuZmluZC5UQUcoIioiLGgpLFM9eCs9bnVsbD09dz8xOk1hdGgucmFuZG9tKCl8fC4xLEU9TS5sZW5ndGg7Zm9yKGgmJihjPXM9PT1mfHxzfHxoKTtiIT09RSYmbnVsbCE9KGw9TVtiXSk7YisrKXtpZihyJiZsKXtmb3IocD0wLHN8fGwub3duZXJEb2N1bWVudD09PWZ8fChkKGwpLGE9IW0pO2c9dFtwKytdOylpZihnKGwsc3x8ZixhKSl7dS5wdXNoKGwpO2JyZWFrfWgmJih4PVMpfW4mJigobD0hZyYmbCkmJnYtLSxvJiZ5LnB1c2gobCkpfWlmKHYrPWIsbiYmYiE9PXYpe2ZvcihwPTA7Zz1lW3ArK107KWcoeSxfLHMsYSk7aWYobyl7aWYodj4wKWZvcig7Yi0tOyl5W2JdfHxfW2JdfHwoX1tiXT1QLmNhbGwodSkpO189X3QoXyl9ai5hcHBseSh1LF8pLGgmJiFvJiZfLmxlbmd0aD4wJiZ2K2UubGVuZ3RoPjEmJm90LnVuaXF1ZVNvcnQodSl9cmV0dXJuIGgmJih4PVMsYz13KSx5fTtyZXR1cm4gbj9hdChvKTpvfShvLHIpKSkuc2VsZWN0b3I9dH1yZXR1cm4gYX0sdT1vdC5zZWxlY3Q9ZnVuY3Rpb24odCxlLG4scil7dmFyIG8sdSxjLGgsbCxkPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LGY9IXImJnModD1kLnNlbGVjdG9yfHx0KTtpZihuPW58fFtdLDE9PT1mLmxlbmd0aCl7aWYoKHU9ZlswXT1mWzBdLnNsaWNlKDApKS5sZW5ndGg+MiYmIklEIj09PShjPXVbMF0pLnR5cGUmJjk9PT1lLm5vZGVUeXBlJiZtJiZpLnJlbGF0aXZlW3VbMV0udHlwZV0pe2lmKCEoZT0oaS5maW5kLklEKGMubWF0Y2hlc1swXS5yZXBsYWNlKFEsdHQpLGUpfHxbXSlbMF0pKXJldHVybiBuO2QmJihlPWUucGFyZW50Tm9kZSksdD10LnNsaWNlKHUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcihvPVkubmVlZHNDb250ZXh0LnRlc3QodCk/MDp1Lmxlbmd0aDtvLS0mJihjPXVbb10sIWkucmVsYXRpdmVbaD1jLnR5cGVdKTspaWYoKGw9aS5maW5kW2hdKSYmKHI9bChjLm1hdGNoZXNbMF0ucmVwbGFjZShRLHR0KSxaLnRlc3QodVswXS50eXBlKSYmbXQoZS5wYXJlbnROb2RlKXx8ZSkpKXtpZih1LnNwbGljZShvLDEpLCEodD1yLmxlbmd0aCYmdnQodSkpKXJldHVybiBqLmFwcGx5KG4sciksbjticmVha319cmV0dXJuKGR8fGEodCxmKSkocixlLCFtLG4sIWV8fFoudGVzdCh0KSYmbXQoZS5wYXJlbnROb2RlKXx8ZSksbn0sbi5zb3J0U3RhYmxlPV8uc3BsaXQoIiIpLnNvcnQoQykuam9pbigiIik9PT1fLG4uZGV0ZWN0RHVwbGljYXRlcz0hIWwsZCgpLG4uc29ydERldGFjaGVkPXV0KGZ1bmN0aW9uKHQpe3JldHVybiAxJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09dC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGN0KCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbih0LGUsbil7aWYoIW4pcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGUsInR5cGUiPT09ZS50b0xvd2VyQ2FzZSgpPzE6Mil9KSxuLmF0dHJpYnV0ZXMmJnV0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD0iPGlucHV0Lz4iLHQuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT10LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGN0KCJ2YWx1ZSIsZnVuY3Rpb24odCxlLG4pe2lmKCFuJiYiaW5wdXQiPT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiB0LmRlZmF1bHRWYWx1ZX0pLHV0KGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10LmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxjdChCLGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZighbilyZXR1cm4hMD09PXRbZV0/ZS50b0xvd2VyQ2FzZSgpOihpPXQuZ2V0QXR0cmlidXRlTm9kZShlKSkmJmkuc3BlY2lmaWVkP2kudmFsdWU6bnVsbH0pLG90fShuKTtNLmZpbmQ9QSxNLmV4cHI9QS5zZWxlY3RvcnMsTS5leHByWyI6Il09TS5leHByLnBzZXVkb3MsTS51bmlxdWVTb3J0PU0udW5pcXVlPUEudW5pcXVlU29ydCxNLnRleHQ9QS5nZXRUZXh0LE0uaXNYTUxEb2M9QS5pc1hNTCxNLmNvbnRhaW5zPUEuY29udGFpbnMsTS5lc2NhcGVTZWxlY3Rvcj1BLmVzY2FwZTt2YXIgQz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9dm9pZCAwIT09bjsodD10W2VdKSYmOSE9PXQubm9kZVR5cGU7KWlmKDE9PT10Lm5vZGVUeXBlKXtpZihyJiZNKHQpLmlzKG4pKWJyZWFrO2kucHVzaCh0KX1yZXR1cm4gaX0saz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXTt0O3Q9dC5uZXh0U2libGluZykxPT09dC5ub2RlVHlwZSYmdCE9PWUmJm4ucHVzaCh0KTtyZXR1cm4gbn0sTz1NLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O2Z1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZS50b0xvd2VyQ2FzZSgpfXZhciBUPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8/Pig/OjxcL1wxPnwpJC9pO2Z1bmN0aW9uIGoodCxlLG4pe3JldHVybiBiKGUpP00uZ3JlcCh0LGZ1bmN0aW9uKHQsaSl7cmV0dXJuISFlLmNhbGwodCxpLHQpIT09bn0pOmUubm9kZVR5cGU/TS5ncmVwKHQsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lIT09bn0pOiJzdHJpbmciIT10eXBlb2YgZT9NLmdyZXAodCxmdW5jdGlvbih0KXtyZXR1cm4gbC5jYWxsKGUsdCk+LTEhPT1ufSk6TS5maWx0ZXIoZSx0LG4pfU0uZmlsdGVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lWzBdO3JldHVybiBuJiYodD0iOm5vdCgiK3QrIikiKSwxPT09ZS5sZW5ndGgmJjE9PT1pLm5vZGVUeXBlP00uZmluZC5tYXRjaGVzU2VsZWN0b3IoaSx0KT9baV06W106TS5maW5kLm1hdGNoZXModCxNLmdyZXAoZSxmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubm9kZVR5cGV9KSl9LE0uZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlLG4saT10aGlzLmxlbmd0aCxyPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0aGlzLnB1c2hTdGFjayhNKHQpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihlPTA7ZTxpO2UrKylpZihNLmNvbnRhaW5zKHJbZV0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKG49dGhpcy5wdXNoU3RhY2soW10pLGU9MDtlPGk7ZSsrKU0uZmluZCh0LHJbZV0sbik7cmV0dXJuIGk+MT9NLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITEpKX0sbm90OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqKHRoaXMsdHx8W10sITApKX0saXM6ZnVuY3Rpb24odCl7cmV0dXJuISFqKHRoaXMsInN0cmluZyI9PXR5cGVvZiB0JiZPLnRlc3QodCk/TSh0KTp0fHxbXSwhMSkubGVuZ3RofX0pO3ZhciBJLEw9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoTS5mbi5pbml0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyO2lmKCF0KXJldHVybiB0aGlzO2lmKG49bnx8SSwic3RyaW5nIj09dHlwZW9mIHQpe2lmKCEoaT0iPCI9PT10WzBdJiYiPiI9PT10W3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aD49Mz9bbnVsbCx0LG51bGxdOkwuZXhlYyh0KSl8fCFpWzFdJiZlKXJldHVybiFlfHxlLmpxdWVyeT8oZXx8bikuZmluZCh0KTp0aGlzLmNvbnN0cnVjdG9yKGUpLmZpbmQodCk7aWYoaVsxXSl7aWYoZT1lIGluc3RhbmNlb2YgTT9lWzBdOmUsTS5tZXJnZSh0aGlzLE0ucGFyc2VIVE1MKGlbMV0sZSYmZS5ub2RlVHlwZT9lLm93bmVyRG9jdW1lbnR8fGU6cywhMCkpLFQudGVzdChpWzFdKSYmTS5pc1BsYWluT2JqZWN0KGUpKWZvcihpIGluIGUpYih0aGlzW2ldKT90aGlzW2ldKGVbaV0pOnRoaXMuYXR0cihpLGVbaV0pO3JldHVybiB0aGlzfXJldHVybihyPXMuZ2V0RWxlbWVudEJ5SWQoaVsyXSkpJiYodGhpc1swXT1yLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIHQubm9kZVR5cGU/KHRoaXNbMF09dCx0aGlzLmxlbmd0aD0xLHRoaXMpOmIodCk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KHQpOnQoTSk6TS5tYWtlQXJyYXkodCx0aGlzKX0pLnByb3RvdHlwZT1NLmZuLEk9TShzKTt2YXIgQj0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxEPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2Z1bmN0aW9uIFIodCxlKXtmb3IoOyh0PXRbZV0pJiYxIT09dC5ub2RlVHlwZTspO3JldHVybiB0fU0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24odCl7dmFyIGU9TSh0LHRoaXMpLG49ZS5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxuO3QrKylpZihNLmNvbnRhaW5zKHRoaXMsZVt0XSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbih0LGUpe3ZhciBuLGk9MCxyPXRoaXMubGVuZ3RoLG89W10scz0ic3RyaW5nIiE9dHlwZW9mIHQmJk0odCk7aWYoIU8udGVzdCh0KSlmb3IoO2k8cjtpKyspZm9yKG49dGhpc1tpXTtuJiZuIT09ZTtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYocz9zLmluZGV4KG4pPi0xOjE9PT1uLm5vZGVUeXBlJiZNLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sdCkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubGVuZ3RoPjE/TS51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD8ic3RyaW5nIj09dHlwZW9mIHQ/bC5jYWxsKE0odCksdGhpc1swXSk6bC5jYWxsKHRoaXMsdC5qcXVlcnk/dFswXTp0KTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhNLnVuaXF1ZVNvcnQoTS5tZXJnZSh0aGlzLmdldCgpLE0odCxlKSkpKX0sYWRkQmFjazpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hZGQobnVsbD09dD90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcih0KSl9fSksTS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiYxMSE9PWUubm9kZVR5cGU/ZTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQyh0LCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gUih0LCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKHQpe3JldHVybiBSKHQsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKHQpe3JldHVybiBDKHQsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIEModCwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIEModCwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBDKHQsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKHQpe3JldHVybiBrKCh0LnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLHQpfSxjaGlsZHJlbjpmdW5jdGlvbih0KXtyZXR1cm4gayh0LmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LCJpZnJhbWUiKT90LmNvbnRlbnREb2N1bWVudDooUCh0LCJ0ZW1wbGF0ZSIpJiYodD10LmNvbnRlbnR8fHQpLE0ubWVyZ2UoW10sdC5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24obixpKXt2YXIgcj1NLm1hcCh0aGlzLGUsbik7cmV0dXJuIlVudGlsIiE9PXQuc2xpY2UoLTUpJiYoaT1uKSxpJiYic3RyaW5nIj09dHlwZW9mIGkmJihyPU0uZmlsdGVyKGkscikpLHRoaXMubGVuZ3RoPjEmJihEW3RdfHxNLnVuaXF1ZVNvcnQociksQi50ZXN0KHQpJiZyLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2socil9fSk7dmFyIHo9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBOKHQpe3JldHVybiB0fWZ1bmN0aW9uIFcodCl7dGhyb3cgdH1mdW5jdGlvbiBxKHQsZSxuLGkpe3ZhciByO3RyeXt0JiZiKHI9dC5wcm9taXNlKT9yLmNhbGwodCkuZG9uZShlKS5mYWlsKG4pOnQmJmIocj10LnRoZW4pP3IuY2FsbCh0LGUsbik6ZS5hcHBseSh2b2lkIDAsW3RdLnNsaWNlKGkpKX1jYXRjaCh0KXtuLmFwcGx5KHZvaWQgMCxbdF0pfX1NLkNhbGxiYWNrcz1mdW5jdGlvbih0KXt0PSJzdHJpbmciPT10eXBlb2YgdD9mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gTS5lYWNoKHQubWF0Y2goeil8fFtdLGZ1bmN0aW9uKHQsbil7ZVtuXT0hMH0pLGV9KHQpOk0uZXh0ZW5kKHt9LHQpO3ZhciBlLG4saSxyLG89W10scz1bXSxhPS0xLHU9ZnVuY3Rpb24oKXtmb3Iocj1yfHx0Lm9uY2UsaT1lPSEwO3MubGVuZ3RoO2E9LTEpZm9yKG49cy5zaGlmdCgpOysrYTxvLmxlbmd0aDspITE9PT1vW2FdLmFwcGx5KG5bMF0sblsxXSkmJnQuc3RvcE9uRmFsc2UmJihhPW8ubGVuZ3RoLG49ITEpO3QubWVtb3J5fHwobj0hMSksZT0hMSxyJiYobz1uP1tdOiIiKX0sYz17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG8mJihuJiYhZSYmKGE9by5sZW5ndGgtMSxzLnB1c2gobikpLGZ1bmN0aW9uIGUobil7TS5lYWNoKG4sZnVuY3Rpb24obixpKXtiKGkpP3QudW5pcXVlJiZjLmhhcyhpKXx8by5wdXNoKGkpOmkmJmkubGVuZ3RoJiYic3RyaW5nIiE9PXgoaSkmJmUoaSl9KX0oYXJndW1lbnRzKSxuJiYhZSYmdSgpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gTS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbjsobj1NLmluQXJyYXkoZSxvLG4pKT4tMTspby5zcGxpY2UobiwxKSxuPD1hJiZhLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/TS5pbkFycmF5KHQsbyk+LTE6by5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbyYmKG89W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gcj1zPVtdLG89bj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFvfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIHI9cz1bXSxufHxlfHwobz1uPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXJ9LGZpcmVXaXRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJ8fChuPVt0LChuPW58fFtdKS5zbGljZT9uLnNsaWNlKCk6bl0scy5wdXNoKG4pLGV8fHUoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBjLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhaX19O3JldHVybiBjfSxNLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24odCl7dmFyIGU9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLE0uQ2FsbGJhY2tzKCJtZW1vcnkiKSxNLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksTS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLE0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGk9InBlbmRpbmciLHI9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBvLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sY2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHIudGhlbihudWxsLHQpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzO3JldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe00uZWFjaChlLGZ1bmN0aW9uKGUsaSl7dmFyIHI9Yih0W2lbNF1dKSYmdFtpWzRdXTtvW2lbMV1dKGZ1bmN0aW9uKCl7dmFyIHQ9ciYmci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dCYmYih0LnByb21pc2UpP3QucHJvbWlzZSgpLnByb2dyZXNzKG4ubm90aWZ5KS5kb25lKG4ucmVzb2x2ZSkuZmFpbChuLnJlamVjdCk6bltpWzBdKyJXaXRoIl0odGhpcyxyP1t0XTphcmd1bWVudHMpfSl9KSx0PW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxpLHIpe3ZhciBvPTA7ZnVuY3Rpb24gcyh0LGUsaSxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzLHU9YXJndW1lbnRzLGM9ZnVuY3Rpb24oKXt2YXIgbixjO2lmKCEodDxvKSl7aWYoKG49aS5hcHBseShhLHUpKT09PWUucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO2M9biYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pJiZuLnRoZW4sYihjKT9yP2MuY2FsbChuLHMobyxlLE4scikscyhvLGUsVyxyKSk6KG8rKyxjLmNhbGwobixzKG8sZSxOLHIpLHMobyxlLFcscikscyhvLGUsTixlLm5vdGlmeVdpdGgpKSk6KGkhPT1OJiYoYT12b2lkIDAsdT1bbl0pLChyfHxlLnJlc29sdmVXaXRoKShhLHUpKX19LGg9cj9jOmZ1bmN0aW9uKCl7dHJ5e2MoKX1jYXRjaChuKXtNLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJk0uRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhuLGguc3RhY2tUcmFjZSksdCsxPj1vJiYoaSE9PVcmJihhPXZvaWQgMCx1PVtuXSksZS5yZWplY3RXaXRoKGEsdSkpfX07dD9oKCk6KE0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoaC5zdGFja1RyYWNlPU0uRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLG4uc2V0VGltZW91dChoKSl9fXJldHVybiBNLkRlZmVycmVkKGZ1bmN0aW9uKG4pe2VbMF1bM10uYWRkKHMoMCxuLGIocik/cjpOLG4ubm90aWZ5V2l0aCkpLGVbMV1bM10uYWRkKHMoMCxuLGIodCk/dDpOKSksZVsyXVszXS5hZGQocygwLG4sYihpKT9pOlcpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dD9NLmV4dGVuZCh0LHIpOnJ9fSxvPXt9O3JldHVybiBNLmVhY2goZSxmdW5jdGlvbih0LG4pe3ZhciBzPW5bMl0sYT1uWzVdO3JbblsxXV09cy5hZGQsYSYmcy5hZGQoZnVuY3Rpb24oKXtpPWF9LGVbMy10XVsyXS5kaXNhYmxlLGVbMy10XVszXS5kaXNhYmxlLGVbMF1bMl0ubG9jayxlWzBdWzNdLmxvY2spLHMuYWRkKG5bM10uZmlyZSksb1tuWzBdXT1mdW5jdGlvbigpe3JldHVybiBvW25bMF0rIldpdGgiXSh0aGlzPT09bz92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9LG9bblswXSsiV2l0aCJdPXMuZmlyZVdpdGh9KSxyLnByb21pc2UobyksdCYmdC5jYWxsKG8sbyksb30sd2hlbjpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49ZSxpPUFycmF5KG4pLHI9dS5jYWxsKGFyZ3VtZW50cyksbz1NLkRlZmVycmVkKCkscz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7aVt0XT10aGlzLHJbdF09YXJndW1lbnRzLmxlbmd0aD4xP3UuY2FsbChhcmd1bWVudHMpOm4sLS1lfHxvLnJlc29sdmVXaXRoKGkscil9fTtpZihlPD0xJiYocSh0LG8uZG9uZShzKG4pKS5yZXNvbHZlLG8ucmVqZWN0LCFlKSwicGVuZGluZyI9PT1vLnN0YXRlKCl8fGIocltuXSYmcltuXS50aGVuKSkpcmV0dXJuIG8udGhlbigpO2Zvcig7bi0tOylxKHJbbl0scyhuKSxvLnJlamVjdCk7cmV0dXJuIG8ucHJvbWlzZSgpfX0pO3ZhciBIPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO00uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbih0LGUpe24uY29uc29sZSYmbi5jb25zb2xlLndhcm4mJnQmJkgudGVzdCh0Lm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UsdC5zdGFjayxlKX0sTS5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbih0KXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSl9O3ZhciBGPU0uRGVmZXJyZWQoKTtmdW5jdGlvbiBWKCl7cy5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixWKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFYpLE0ucmVhZHkoKX1NLmZuLnJlYWR5PWZ1bmN0aW9uKHQpe3JldHVybiBGLnRoZW4odCkuY2F0Y2goZnVuY3Rpb24odCl7TS5yZWFkeUV4Y2VwdGlvbih0KX0pLHRoaXN9LE0uZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKHQpeyghMD09PXQ/LS1NLnJlYWR5V2FpdDpNLmlzUmVhZHkpfHwoTS5pc1JlYWR5PSEwLCEwIT09dCYmLS1NLnJlYWR5V2FpdD4wfHxGLnJlc29sdmVXaXRoKHMsW01dKSl9fSksTS5yZWFkeS50aGVuPUYudGhlbiwiY29tcGxldGUiPT09cy5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1zLnJlYWR5U3RhdGUmJiFzLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9uLnNldFRpbWVvdXQoTS5yZWFkeSk6KHMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsViksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixWKSk7dmFyIFU9ZnVuY3Rpb24odCxlLG4saSxyLG8scyl7dmFyIGE9MCx1PXQubGVuZ3RoLGM9bnVsbD09bjtpZigib2JqZWN0Ij09PXgobikpZm9yKGEgaW4gcj0hMCxuKVUodCxlLGEsblthXSwhMCxvLHMpO2Vsc2UgaWYodm9pZCAwIT09aSYmKHI9ITAsYihpKXx8KHM9ITApLGMmJihzPyhlLmNhbGwodCxpKSxlPW51bGwpOihjPWUsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGMuY2FsbChNKHQpLG4pfSkpLGUpKWZvcig7YTx1O2ErKyllKHRbYV0sbixzP2k6aS5jYWxsKHRbYV0sYSxlKHRbYV0sbikpKTtyZXR1cm4gcj90OmM/ZS5jYWxsKHQpOnU/ZSh0WzBdLG4pOm99LEs9L14tbXMtLyxZPS8tKFthLXpdKS9nO2Z1bmN0aW9uIFgodCxlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uICQodCl7cmV0dXJuIHQucmVwbGFjZShLLCJtcy0iKS5yZXBsYWNlKFksWCl9dmFyIEc9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lm5vZGVUeXBlfHw5PT09dC5ub2RlVHlwZXx8ISt0Lm5vZGVUeXBlfTtmdW5jdGlvbiBKKCl7dGhpcy5leHBhbmRvPU0uZXhwYW5kbytKLnVpZCsrfUoudWlkPTEsSi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gZXx8KGU9e30sRyh0KSYmKHQubm9kZVR5cGU/dFt0aGlzLmV4cGFuZG9dPWU6T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdGhpcy5leHBhbmRvLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pKSksZX0sc2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMuY2FjaGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJbJChlKV09bjtlbHNlIGZvcihpIGluIGUpclskKGkpXT1lW2ldO3JldHVybiByfSxnZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZT90aGlzLmNhY2hlKHQpOnRbdGhpcy5leHBhbmRvXSYmdFt0aGlzLmV4cGFuZG9dWyQoZSldfSxhY2Nlc3M6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1lfHxlJiYic3RyaW5nIj09dHlwZW9mIGUmJnZvaWQgMD09PW4/dGhpcy5nZXQodCxlKToodGhpcy5zZXQodCxlLG4pLHZvaWQgMCE9PW4/bjplKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10W3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09aSl7aWYodm9pZCAwIT09ZSl7bj0oZT1BcnJheS5pc0FycmF5KGUpP2UubWFwKCQpOihlPSQoZSkpaW4gaT9bZV06ZS5tYXRjaCh6KXx8W10pLmxlbmd0aDtmb3IoO24tLTspZGVsZXRlIGlbZVtuXV19KHZvaWQgMD09PWV8fE0uaXNFbXB0eU9iamVjdChpKSkmJih0Lm5vZGVUeXBlP3RbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIHRbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09ZSYmIU0uaXNFbXB0eU9iamVjdChlKX19O3ZhciBaPW5ldyBKLFE9bmV3IEosdHQ9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxldD0vW0EtWl0vZztmdW5jdGlvbiBudCh0LGUsbil7dmFyIGk7aWYodm9pZCAwPT09biYmMT09PXQubm9kZVR5cGUpaWYoaT0iZGF0YS0iK2UucmVwbGFjZShldCwiLSQmIikudG9Mb3dlckNhc2UoKSwic3RyaW5nIj09dHlwZW9mKG49dC5nZXRBdHRyaWJ1dGUoaSkpKXt0cnl7bj1mdW5jdGlvbih0KXtyZXR1cm4idHJ1ZSI9PT10fHwiZmFsc2UiIT09dCYmKCJudWxsIj09PXQ/bnVsbDp0PT09K3QrIiI/K3Q6dHQudGVzdCh0KT9KU09OLnBhcnNlKHQpOnQpfShuKX1jYXRjaCh0KXt9US5zZXQodCxlLG4pfWVsc2Ugbj12b2lkIDA7cmV0dXJuIG59TS5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24odCl7cmV0dXJuIFEuaGFzRGF0YSh0KXx8Wi5oYXNEYXRhKHQpfSxkYXRhOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUS5hY2Nlc3ModCxlLG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7US5yZW1vdmUodCxlKX0sX2RhdGE6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBaLmFjY2Vzcyh0LGUsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKHQsZSl7Wi5yZW1vdmUodCxlKX19KSxNLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvPXRoaXNbMF0scz1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09dCl7aWYodGhpcy5sZW5ndGgmJihyPVEuZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhWi5nZXQobywiaGFzRGF0YUF0dHJzIikpKXtmb3Iobj1zLmxlbmd0aDtuLS07KXNbbl0mJjA9PT0oaT1zW25dLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihpPSQoaS5zbGljZSg1KSksbnQobyxpLHJbaV0pKTtaLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gcn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyx0KX0pOlUodGhpcyxmdW5jdGlvbihlKXt2YXIgbjtpZihvJiZ2b2lkIDA9PT1lKXJldHVybiB2b2lkIDAhPT0obj1RLmdldChvLHQpKT9uOnZvaWQgMCE9PShuPW50KG8sdCkpP246dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsdCxlKX0pfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLHQpfSl9fSksTS5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtpZih0KXJldHVybiBlPShlfHwiZngiKSsicXVldWUiLGk9Wi5nZXQodCxlKSxuJiYoIWl8fEFycmF5LmlzQXJyYXkobik/aT1aLmFjY2Vzcyh0LGUsTS5tYWtlQXJyYXkobikpOmkucHVzaChuKSksaXx8W119LGRlcXVldWU6ZnVuY3Rpb24odCxlKXtlPWV8fCJmeCI7dmFyIG49TS5xdWV1ZSh0LGUpLGk9bi5sZW5ndGgscj1uLnNoaWZ0KCksbz1NLl9xdWV1ZUhvb2tzKHQsZSk7ImlucHJvZ3Jlc3MiPT09ciYmKHI9bi5zaGlmdCgpLGktLSksciYmKCJmeCI9PT1lJiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLHIuY2FsbCh0LGZ1bmN0aW9uKCl7TS5kZXF1ZXVlKHQsZSl9LG8pKSwhaSYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZSsicXVldWVIb29rcyI7cmV0dXJuIFouZ2V0KHQsbil8fFouYWNjZXNzKHQsbix7ZW1wdHk6TS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7Wi5yZW1vdmUodCxbZSsicXVldWUiLG5dKX0pfSl9fSksTS5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iZngiLG4tLSksYXJndW1lbnRzLmxlbmd0aDxuP00ucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1lP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49TS5xdWV1ZSh0aGlzLHQsZSk7TS5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1uWzBdJiZNLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtNLmRlcXVldWUodGhpcyx0KX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnF1ZXVlKHR8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4saT0xLHI9TS5EZWZlcnJlZCgpLG89dGhpcyxzPXRoaXMubGVuZ3RoLGE9ZnVuY3Rpb24oKXstLWl8fHIucmVzb2x2ZVdpdGgobyxbb10pfTtmb3IoInN0cmluZyIhPXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKSx0PXR8fCJmeCI7cy0tOykobj1aLmdldChvW3NdLHQrInF1ZXVlSG9va3MiKSkmJm4uZW1wdHkmJihpKyssbi5lbXB0eS5hZGQoYSkpO3JldHVybiBhKCksci5wcm9taXNlKGUpfX0pO3ZhciBpdD0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSxydD1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIraXQrIikoW2EteiVdKikkIiwiaSIpLG90PVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4ibm9uZSI9PT0odD1lfHx0KS5zdHlsZS5kaXNwbGF5fHwiIj09PXQuc3R5bGUuZGlzcGxheSYmTS5jb250YWlucyh0Lm93bmVyRG9jdW1lbnQsdCkmJiJub25lIj09PU0uY3NzKHQsImRpc3BsYXkiKX0sYXQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzPXt9O2ZvcihvIGluIGUpc1tvXT10LnN0eWxlW29dLHQuc3R5bGVbb109ZVtvXTtmb3IobyBpbiByPW4uYXBwbHkodCxpfHxbXSksZSl0LnN0eWxlW29dPXNbb107cmV0dXJuIHJ9O2Z1bmN0aW9uIHV0KHQsZSxuLGkpe3ZhciByLG8scz0yMCxhPWk/ZnVuY3Rpb24oKXtyZXR1cm4gaS5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gTS5jc3ModCxlLCIiKX0sdT1hKCksYz1uJiZuWzNdfHwoTS5jc3NOdW1iZXJbZV0/IiI6InB4IiksaD0oTS5jc3NOdW1iZXJbZV18fCJweCIhPT1jJiYrdSkmJnJ0LmV4ZWMoTS5jc3ModCxlKSk7aWYoaCYmaFszXSE9PWMpe2Zvcih1Lz0yLGM9Y3x8aFszXSxoPSt1fHwxO3MtLTspTS5zdHlsZSh0LGUsaCtjKSwoMS1vKSooMS0obz1hKCkvdXx8LjUpKTw9MCYmKHM9MCksaC89bztoKj0yLE0uc3R5bGUodCxlLGgrYyksbj1ufHxbXX1yZXR1cm4gbiYmKGg9K2h8fCt1fHwwLHI9blsxXT9oKyhuWzFdKzEpKm5bMl06K25bMl0saSYmKGkudW5pdD1jLGkuc3RhcnQ9aCxpLmVuZD1yKSkscn12YXIgY3Q9e307ZnVuY3Rpb24gaHQodCl7dmFyIGUsbj10Lm93bmVyRG9jdW1lbnQsaT10Lm5vZGVOYW1lLHI9Y3RbaV07cmV0dXJuIHJ8fChlPW4uYm9keS5hcHBlbmRDaGlsZChuLmNyZWF0ZUVsZW1lbnQoaSkpLHI9TS5jc3MoZSwiZGlzcGxheSIpLGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSwibm9uZSI9PT1yJiYocj0iYmxvY2siKSxjdFtpXT1yLHIpfWZ1bmN0aW9uIGx0KHQsZSl7Zm9yKHZhciBuLGkscj1bXSxvPTAscz10Lmxlbmd0aDtvPHM7bysrKShpPXRbb10pLnN0eWxlJiYobj1pLnN0eWxlLmRpc3BsYXksZT8oIm5vbmUiPT09biYmKHJbb109Wi5nZXQoaSwiZGlzcGxheSIpfHxudWxsLHJbb118fChpLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PWkuc3R5bGUuZGlzcGxheSYmc3QoaSkmJihyW29dPWh0KGkpKSk6Im5vbmUiIT09biYmKHJbb109Im5vbmUiLFouc2V0KGksImRpc3BsYXkiLG4pKSk7Zm9yKG89MDtvPHM7bysrKW51bGwhPXJbb10mJih0W29dLnN0eWxlLmRpc3BsYXk9cltvXSk7cmV0dXJuIHR9TS5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gbHQodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbih0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0P3Q/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7c3QodGhpcyk/TSh0aGlzKS5zaG93KCk6TSh0aGlzKS5oaWRlKCl9KX19KTt2YXIgZHQ9L14oPzpjaGVja2JveHxyYWRpbykkL2ksZnQ9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSspL2kscHQ9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLG10PXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07ZnVuY3Rpb24gZ3QodCxlKXt2YXIgbjtyZXR1cm4gbj12b2lkIDAhPT10LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZXx8IioiKTp2b2lkIDAhPT10LnF1ZXJ5U2VsZWN0b3JBbGw/dC5xdWVyeVNlbGVjdG9yQWxsKGV8fCIqIik6W10sdm9pZCAwPT09ZXx8ZSYmUCh0LGUpP00ubWVyZ2UoW3RdLG4pOm59ZnVuY3Rpb24gdnQodCxlKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTtuKyspWi5zZXQodFtuXSwiZ2xvYmFsRXZhbCIsIWV8fFouZ2V0KGVbbl0sImdsb2JhbEV2YWwiKSl9bXQub3B0Z3JvdXA9bXQub3B0aW9uLG10LnRib2R5PW10LnRmb290PW10LmNvbGdyb3VwPW10LmNhcHRpb249bXQudGhlYWQsbXQudGg9bXQudGQ7dmFyIGJ0LHl0LF90PS88fCYjP1x3KzsvO2Z1bmN0aW9uIHd0KHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGMsaCxsPWUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGQ9W10sZj0wLHA9dC5sZW5ndGg7ZjxwO2YrKylpZigobz10W2ZdKXx8MD09PW8paWYoIm9iamVjdCI9PT14KG8pKU0ubWVyZ2UoZCxvLm5vZGVUeXBlP1tvXTpvKTtlbHNlIGlmKF90LnRlc3Qobykpe2ZvcihzPXN8fGwuYXBwZW5kQ2hpbGQoZS5jcmVhdGVFbGVtZW50KCJkaXYiKSksYT0oZnQuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PW10W2FdfHxtdC5fZGVmYXVsdCxzLmlubmVySFRNTD11WzFdK00uaHRtbFByZWZpbHRlcihvKSt1WzJdLGg9dVswXTtoLS07KXM9cy5sYXN0Q2hpbGQ7TS5tZXJnZShkLHMuY2hpbGROb2RlcyksKHM9bC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIGQucHVzaChlLmNyZWF0ZVRleHROb2RlKG8pKTtmb3IobC50ZXh0Q29udGVudD0iIixmPTA7bz1kW2YrK107KWlmKGkmJk0uaW5BcnJheShvLGkpPi0xKXImJnIucHVzaChvKTtlbHNlIGlmKGM9TS5jb250YWlucyhvLm93bmVyRG9jdW1lbnQsbykscz1ndChsLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxjJiZ2dChzKSxuKWZvcihoPTA7bz1zW2grK107KXB0LnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKTtyZXR1cm4gbH1idD1zLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoeXQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHl0LnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSx5dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYnQuYXBwZW5kQ2hpbGQoeXQpLHYuY2hlY2tDbG9uZT1idC5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYnQuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix2Lm5vQ2xvbmVDaGVja2VkPSEhYnQuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3ZhciB4dD1zLmRvY3VtZW50RWxlbWVudCxNdD0vXmtleS8sU3Q9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLEV0PS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBBdCgpe3JldHVybiEwfWZ1bmN0aW9uIEN0KCl7cmV0dXJuITF9ZnVuY3Rpb24ga3QoKXt0cnl7cmV0dXJuIHMuYWN0aXZlRWxlbWVudH1jYXRjaCh0KXt9fWZ1bmN0aW9uIE90KHQsZSxuLGkscixvKXt2YXIgcyxhO2lmKCJvYmplY3QiPT10eXBlb2YgZSl7Zm9yKGEgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihpPWl8fG4sbj12b2lkIDApLGUpT3QodCxhLG4saSxlW2FdLG8pO3JldHVybiB0fWlmKG51bGw9PWkmJm51bGw9PXI/KHI9bixpPW49dm9pZCAwKTpudWxsPT1yJiYoInN0cmluZyI9PXR5cGVvZiBuPyhyPWksaT12b2lkIDApOihyPWksaT1uLG49dm9pZCAwKSksITE9PT1yKXI9Q3Q7ZWxzZSBpZighcilyZXR1cm4gdDtyZXR1cm4gMT09PW8mJihzPXIsKHI9ZnVuY3Rpb24odCl7cmV0dXJuIE0oKS5vZmYodCkscy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPXMuZ3VpZHx8KHMuZ3VpZD1NLmd1aWQrKykpLHQuZWFjaChmdW5jdGlvbigpe00uZXZlbnQuYWRkKHRoaXMsZSxyLGksbil9KX1NLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouZ2V0KHQpO2lmKGcpZm9yKG4uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixyPW8uc2VsZWN0b3IpLHImJk0uZmluZC5tYXRjaGVzU2VsZWN0b3IoeHQsciksbi5ndWlkfHwobi5ndWlkPU0uZ3VpZCsrKSwodT1nLmV2ZW50cyl8fCh1PWcuZXZlbnRzPXt9KSwocz1nLmhhbmRsZSl8fChzPWcuaGFuZGxlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1NJiZNLmV2ZW50LnRyaWdnZXJlZCE9PWUudHlwZT9NLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxjPShlPShlfHwiIikubWF0Y2goeil8fFsiIl0pLmxlbmd0aDtjLS07KWY9bT0oYT1FdC5leGVjKGVbY10pfHxbXSlbMV0scD0oYVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGYmJihsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30sZj0ocj9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8ZixsPU0uZXZlbnQuc3BlY2lhbFtmXXx8e30saD1NLmV4dGVuZCh7dHlwZTpmLG9yaWdUeXBlOm0sZGF0YTppLGhhbmRsZXI6bixndWlkOm4uZ3VpZCxzZWxlY3RvcjpyLG5lZWRzQ29udGV4dDpyJiZNLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QociksbmFtZXNwYWNlOnAuam9pbigiLiIpfSxvKSwoZD11W2ZdKXx8KChkPXVbZl09W10pLmRlbGVnYXRlQ291bnQ9MCxsLnNldHVwJiYhMSE9PWwuc2V0dXAuY2FsbCh0LGkscCxzKXx8dC5hZGRFdmVudExpc3RlbmVyJiZ0LmFkZEV2ZW50TGlzdGVuZXIoZixzKSksbC5hZGQmJihsLmFkZC5jYWxsKHQsaCksaC5oYW5kbGVyLmd1aWR8fChoLmhhbmRsZXIuZ3VpZD1uLmd1aWQpKSxyP2Quc3BsaWNlKGQuZGVsZWdhdGVDb3VudCsrLDAsaCk6ZC5wdXNoKGgpLE0uZXZlbnQuZ2xvYmFsW2ZdPSEwKX0scmVtb3ZlOmZ1bmN0aW9uKHQsZSxuLGkscil7dmFyIG8scyxhLHUsYyxoLGwsZCxmLHAsbSxnPVouaGFzRGF0YSh0KSYmWi5nZXQodCk7aWYoZyYmKHU9Zy5ldmVudHMpKXtmb3IoYz0oZT0oZXx8IiIpLm1hdGNoKHopfHxbIiJdKS5sZW5ndGg7Yy0tOylpZihmPW09KGE9RXQuZXhlYyhlW2NdKXx8W10pWzFdLHA9KGFbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxmKXtmb3IobD1NLmV2ZW50LnNwZWNpYWxbZl18fHt9LGQ9dVtmPShpP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxmXXx8W10sYT1hWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLHM9bz1kLmxlbmd0aDtvLS07KWg9ZFtvXSwhciYmbSE9PWgub3JpZ1R5cGV8fG4mJm4uZ3VpZCE9PWguZ3VpZHx8YSYmIWEudGVzdChoLm5hbWVzcGFjZSl8fGkmJmkhPT1oLnNlbGVjdG9yJiYoIioqIiE9PWl8fCFoLnNlbGVjdG9yKXx8KGQuc3BsaWNlKG8sMSksaC5zZWxlY3RvciYmZC5kZWxlZ2F0ZUNvdW50LS0sbC5yZW1vdmUmJmwucmVtb3ZlLmNhbGwodCxoKSk7cyYmIWQubGVuZ3RoJiYobC50ZWFyZG93biYmITEhPT1sLnRlYXJkb3duLmNhbGwodCxwLGcuaGFuZGxlKXx8TS5yZW1vdmVFdmVudCh0LGYsZy5oYW5kbGUpLGRlbGV0ZSB1W2ZdKX1lbHNlIGZvcihmIGluIHUpTS5ldmVudC5yZW1vdmUodCxmK2VbY10sbixpLCEwKTtNLmlzRW1wdHlPYmplY3QodSkmJloucmVtb3ZlKHQsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhPU0uZXZlbnQuZml4KHQpLHU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGM9KFouZ2V0KHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saD1NLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307Zm9yKHVbMF09YSxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl1W2VdPWFyZ3VtZW50c1tlXTtpZihhLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWgucHJlRGlzcGF0Y2h8fCExIT09aC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkpe2ZvcihzPU0uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsYyksZT0wOyhyPXNbZSsrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihhLmN1cnJlbnRUYXJnZXQ9ci5lbGVtLG49MDsobz1yLmhhbmRsZXJzW24rK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOylhLnJuYW1lc3BhY2UmJiFhLnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fChhLmhhbmRsZU9iaj1vLGEuZGF0YT1vLmRhdGEsdm9pZCAwIT09KGk9KChNLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoci5lbGVtLHUpKSYmITE9PT0oYS5yZXN1bHQ9aSkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBoLnBvc3REaXNwYXRjaCYmaC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGEpLGEucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsbyxzLGE9W10sdT1lLmRlbGVnYXRlQ291bnQsYz10LnRhcmdldDtpZih1JiZjLm5vZGVUeXBlJiYhKCJjbGljayI9PT10LnR5cGUmJnQuYnV0dG9uPj0xKSlmb3IoO2MhPT10aGlzO2M9Yy5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1jLm5vZGVUeXBlJiYoImNsaWNrIiE9PXQudHlwZXx8ITAhPT1jLmRpc2FibGVkKSl7Zm9yKG89W10scz17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1zW3I9KGk9ZVtuXSkuc2VsZWN0b3IrIiAiXSYmKHNbcl09aS5uZWVkc0NvbnRleHQ/TShyLHRoaXMpLmluZGV4KGMpPi0xOk0uZmluZChyLHRoaXMsbnVsbCxbY10pLmxlbmd0aCksc1tyXSYmby5wdXNoKGkpO28ubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczpvfSl9cmV0dXJuIGM9dGhpcyx1PGUubGVuZ3RoJiZhLnB1c2goe2VsZW06YyxoYW5kbGVyczplLnNsaWNlKHUpfSksYX0sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShNLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6YihlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRbTS5leHBhbmRvXT90Om5ldyBNLkV2ZW50KHQpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09a3QoKSYmdGhpcy5mb2N1cylyZXR1cm4gdGhpcy5mb2N1cygpLCExfSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7aWYodGhpcz09PWt0KCkmJnRoaXMuYmx1cilyZXR1cm4gdGhpcy5ibHVyKCksITF9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKCJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2smJlAodGhpcywiaW5wdXQiKSlyZXR1cm4gdGhpcy5jbGljaygpLCExfSxfZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gUCh0LnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24odCl7dm9pZCAwIT09dC5yZXN1bHQmJnQub3JpZ2luYWxFdmVudCYmKHQub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT10LnJlc3VsdCl9fX19LE0ucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24odCxlLG4pe3QucmVtb3ZlRXZlbnRMaXN0ZW5lciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsbil9LE0uRXZlbnQ9ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBNLkV2ZW50KSlyZXR1cm4gbmV3IE0uRXZlbnQodCxlKTt0JiZ0LnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD10LHRoaXMudHlwZT10LnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9dC5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT10LmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09dC5yZXR1cm5WYWx1ZT9BdDpDdCx0aGlzLnRhcmdldD10LnRhcmdldCYmMz09PXQudGFyZ2V0Lm5vZGVUeXBlP3QudGFyZ2V0LnBhcmVudE5vZGU6dC50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PXQuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9dCxlJiZNLmV4dGVuZCh0aGlzLGUpLHRoaXMudGltZVN0YW1wPXQmJnQudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbTS5leHBhbmRvXT0hMH0sTS5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk0uRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOkN0LGlzUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOkN0LGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUF0LHQmJiF0aGlzLmlzU2ltdWxhdGVkJiZ0LnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1BdCx0JiYhdGhpcy5pc1NpbXVsYXRlZCYmdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sTS5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLGNoYXI6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ZnVuY3Rpb24odCl7dmFyIGU9dC5idXR0b247cmV0dXJuIG51bGw9PXQud2hpY2gmJk10LnRlc3QodC50eXBlKT9udWxsIT10LmNoYXJDb2RlP3QuY2hhckNvZGU6dC5rZXlDb2RlOiF0LndoaWNoJiZ2b2lkIDAhPT1lJiZTdC50ZXN0KHQudHlwZSk/MSZlPzE6MiZlPzM6NCZlPzI6MDp0LndoaWNofX0sTS5ldmVudC5hZGRQcm9wKSxNLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKHQsZSl7TS5ldmVudC5zcGVjaWFsW3RdPXtkZWxlZ2F0ZVR5cGU6ZSxiaW5kVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXt2YXIgbixpPXQucmVsYXRlZFRhcmdldCxyPXQuaGFuZGxlT2JqO3JldHVybiBpJiYoaT09PXRoaXN8fE0uY29udGFpbnModGhpcyxpKSl8fCh0LnR5cGU9ci5vcmlnVHlwZSxuPXIuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC50eXBlPWUpLG59fX0pLE0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gT3QodGhpcyx0LGUsbixpKX0sb25lOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBPdCh0aGlzLHQsZSxuLGksMSl9LG9mZjpmdW5jdGlvbih0LGUsbil7dmFyIGkscjtpZih0JiZ0LnByZXZlbnREZWZhdWx0JiZ0LmhhbmRsZU9iailyZXR1cm4gaT10LmhhbmRsZU9iaixNKHQuZGVsZWdhdGVUYXJnZXQpLm9mZihpLm5hbWVzcGFjZT9pLm9yaWdUeXBlKyIuIitpLm5hbWVzcGFjZTppLm9yaWdUeXBlLGkuc2VsZWN0b3IsaS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHIgaW4gdCl0aGlzLm9mZihyLGUsdFtyXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZXx8KG49ZSxlPXZvaWQgMCksITE9PT1uJiYobj1DdCksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7TS5ldmVudC5yZW1vdmUodGhpcyx0LG4sZSl9KX19KTt2YXIgUHQ9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLFR0PS88c2NyaXB0fDxzdHlsZXw8bGluay9pLGp0PS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLEl0PS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBMdCh0LGUpe3JldHVybiBQKHQsInRhYmxlIikmJlAoMTEhPT1lLm5vZGVUeXBlP2U6ZS5maXJzdENoaWxkLCJ0ciIpJiZNKHQpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHx0fWZ1bmN0aW9uIEJ0KHQpe3JldHVybiB0LnR5cGU9KG51bGwhPT10LmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrdC50eXBlLHR9ZnVuY3Rpb24gRHQodCl7cmV0dXJuInRydWUvIj09PSh0LnR5cGV8fCIiKS5zbGljZSgwLDUpP3QudHlwZT10LnR5cGUuc2xpY2UoNSk6dC5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSx0fWZ1bmN0aW9uIFJ0KHQsZSl7dmFyIG4saSxyLG8scyxhLHUsYztpZigxPT09ZS5ub2RlVHlwZSl7aWYoWi5oYXNEYXRhKHQpJiYobz1aLmFjY2Vzcyh0KSxzPVouc2V0KGUsbyksYz1vLmV2ZW50cykpZm9yKHIgaW4gZGVsZXRlIHMuaGFuZGxlLHMuZXZlbnRzPXt9LGMpZm9yKG49MCxpPWNbcl0ubGVuZ3RoO248aTtuKyspTS5ldmVudC5hZGQoZSxyLGNbcl1bbl0pO1EuaGFzRGF0YSh0KSYmKGE9US5hY2Nlc3ModCksdT1NLmV4dGVuZCh7fSxhKSxRLnNldChlLHUpKX19ZnVuY3Rpb24genQodCxlLG4saSl7ZT1jLmFwcGx5KFtdLGUpO3ZhciByLG8scyxhLHUsaCxsPTAsZD10Lmxlbmd0aCxmPWQtMSxwPWVbMF0sbT1iKHApO2lmKG18fGQ+MSYmInN0cmluZyI9PXR5cGVvZiBwJiYhdi5jaGVja0Nsb25lJiZqdC50ZXN0KHApKXJldHVybiB0LmVhY2goZnVuY3Rpb24ocil7dmFyIG89dC5lcShyKTttJiYoZVswXT1wLmNhbGwodGhpcyxyLG8uaHRtbCgpKSksenQobyxlLG4saSl9KTtpZihkJiYobz0ocj13dChlLHRbMF0ub3duZXJEb2N1bWVudCwhMSx0LGkpKS5maXJzdENoaWxkLDE9PT1yLmNoaWxkTm9kZXMubGVuZ3RoJiYocj1vKSxvfHxpKSl7Zm9yKGE9KHM9TS5tYXAoZ3Qociwic2NyaXB0IiksQnQpKS5sZW5ndGg7bDxkO2wrKyl1PXIsbCE9PWYmJih1PU0uY2xvbmUodSwhMCwhMCksYSYmTS5tZXJnZShzLGd0KHUsInNjcmlwdCIpKSksbi5jYWxsKHRbbF0sdSxsKTtpZihhKWZvcihoPXNbcy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxNLm1hcChzLER0KSxsPTA7bDxhO2wrKyl1PXNbbF0scHQudGVzdCh1LnR5cGV8fCIiKSYmIVouYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmTS5jb250YWlucyhoLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/TS5fZXZhbFVybCYmTS5fZXZhbFVybCh1LnNyYyk6dyh1LnRleHRDb250ZW50LnJlcGxhY2UoSXQsIiIpLGgsdSkpfXJldHVybiB0fWZ1bmN0aW9uIE50KHQsZSxuKXtmb3IodmFyIGkscj1lP00uZmlsdGVyKGUsdCk6dCxvPTA7bnVsbCE9KGk9cltvXSk7bysrKW58fDEhPT1pLm5vZGVUeXBlfHxNLmNsZWFuRGF0YShndChpKSksaS5wYXJlbnROb2RlJiYobiYmTS5jb250YWlucyhpLm93bmVyRG9jdW1lbnQsaSkmJnZ0KGd0KGksInNjcmlwdCIpKSxpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSkpO3JldHVybiB0fU0uZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoUHQsIjwkMT48LyQyPiIpfSxjbG9uZTpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGMsaD10LmNsb25lTm9kZSghMCksbD1NLmNvbnRhaW5zKHQub3duZXJEb2N1bWVudCx0KTtpZighKHYubm9DbG9uZUNoZWNrZWR8fDEhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGV8fE0uaXNYTUxEb2ModCkpKWZvcihzPWd0KGgpLGk9MCxyPShvPWd0KHQpKS5sZW5ndGg7aTxyO2krKylhPW9baV0sdT1zW2ldLGM9dm9pZCAwLCJpbnB1dCI9PT0oYz11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZkdC50ZXN0KGEudHlwZSk/dS5jaGVja2VkPWEuY2hlY2tlZDoiaW5wdXQiIT09YyYmInRleHRhcmVhIiE9PWN8fCh1LmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZSk7aWYoZSlpZihuKWZvcihvPW98fGd0KHQpLHM9c3x8Z3QoaCksaT0wLHI9by5sZW5ndGg7aTxyO2krKylSdChvW2ldLHNbaV0pO2Vsc2UgUnQodCxoKTtyZXR1cm4ocz1ndChoLCJzY3JpcHQiKSkubGVuZ3RoPjAmJnZ0KHMsIWwmJmd0KHQsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG4saSxyPU0uZXZlbnQuc3BlY2lhbCxvPTA7dm9pZCAwIT09KG49dFtvXSk7bysrKWlmKEcobikpe2lmKGU9bltaLmV4cGFuZG9dKXtpZihlLmV2ZW50cylmb3IoaSBpbiBlLmV2ZW50cylyW2ldP00uZXZlbnQucmVtb3ZlKG4saSk6TS5yZW1vdmVFdmVudChuLGksZS5oYW5kbGUpO25bWi5leHBhbmRvXT12b2lkIDB9bltRLmV4cGFuZG9dJiYobltRLmV4cGFuZG9dPXZvaWQgMCl9fX0pLE0uZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIE50KHRoaXMsdCwhMCl9LHJlbW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnQodGhpcyx0KX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P00udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD10KX0pfSxudWxsLHQsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB6dCh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbih0KXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8THQodGhpcyx0KS5hcHBlbmRDaGlsZCh0KX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgZT1MdCh0aGlzLHQpO2UuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHp0KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9MDtudWxsIT0odD10aGlzW2VdKTtlKyspMT09PXQubm9kZVR5cGUmJihNLmNsZWFuRGF0YShndCh0LCExKSksdC50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bnVsbCE9dCYmdCxlPW51bGw9PWU/dDplLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIE0uY2xvbmUodGhpcyx0LGUpfSl9LGh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0KXt2YXIgZT10aGlzWzBdfHx7fSxuPTAsaT10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT10JiYxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZS5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYhVHQudGVzdCh0KSYmIW10WyhmdC5leGVjKHQpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7dD1NLmh0bWxQcmVmaWx0ZXIodCk7dHJ5e2Zvcig7bjxpO24rKykxPT09KGU9dGhpc1tuXXx8e30pLm5vZGVUeXBlJiYoTS5jbGVhbkRhdGEoZ3QoZSwhMSkpLGUuaW5uZXJIVE1MPXQpO2U9MH1jYXRjaCh0KXt9fWUmJnRoaXMuZW1wdHkoKS5hcHBlbmQodCl9LG51bGwsdCxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4genQodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5wYXJlbnROb2RlO00uaW5BcnJheSh0aGlzLHQpPDAmJihNLmNsZWFuRGF0YShndCh0aGlzKSksbiYmbi5yZXBsYWNlQ2hpbGQoZSx0aGlzKSl9LHQpfX0pLE0uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKHQsZSl7TS5mblt0XT1mdW5jdGlvbih0KXtmb3IodmFyIG4saT1bXSxyPU0odCksbz1yLmxlbmd0aC0xLHM9MDtzPD1vO3MrKyluPXM9PT1vP3RoaXM6dGhpcy5jbG9uZSghMCksTShyW3NdKVtlXShuKSxoLmFwcGx5KGksbi5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGkpfX0pO3ZhciBXdD1uZXcgUmVnRXhwKCJeKCIraXQrIikoPyFweClbYS16JV0rJCIsImkiKSxxdD1mdW5jdGlvbih0KXt2YXIgZT10Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGUmJmUub3BlbmVyfHwoZT1uKSxlLmdldENvbXB1dGVkU3R5bGUodCl9LEh0PW5ldyBSZWdFeHAob3Quam9pbigifCIpLCJpIik7ZnVuY3Rpb24gRnQodCxlLG4pe3ZhciBpLHIsbyxzLGE9dC5zdHlsZTtyZXR1cm4obj1ufHxxdCh0KSkmJigiIiE9PShzPW4uZ2V0UHJvcGVydHlWYWx1ZShlKXx8bltlXSl8fE0uY29udGFpbnModC5vd25lckRvY3VtZW50LHQpfHwocz1NLnN0eWxlKHQsZSkpLCF2LnBpeGVsQm94U3R5bGVzKCkmJld0LnRlc3QocykmJkh0LnRlc3QoZSkmJihpPWEud2lkdGgscj1hLm1pbldpZHRoLG89YS5tYXhXaWR0aCxhLm1pbldpZHRoPWEubWF4V2lkdGg9YS53aWR0aD1zLHM9bi53aWR0aCxhLndpZHRoPWksYS5taW5XaWR0aD1yLGEubWF4V2lkdGg9bykpLHZvaWQgMCE9PXM/cysiIjpzfWZ1bmN0aW9uIFZ0KHQsZSl7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCF0KCkpcmV0dXJuKHRoaXMuZ2V0PWUpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX0hZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7aWYoaCl7Yy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIixoLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiLHh0LmFwcGVuZENoaWxkKGMpLmFwcGVuZENoaWxkKGgpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShoKTtpPSIxJSIhPT10LnRvcCx1PTEyPT09ZSh0Lm1hcmdpbkxlZnQpLGguc3R5bGUucmlnaHQ9IjYwJSIsYT0zNj09PWUodC5yaWdodCkscj0zNj09PWUodC53aWR0aCksaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG89MzY9PT1oLm9mZnNldFdpZHRofHwiYWJzb2x1dGUiLHh0LnJlbW92ZUNoaWxkKGMpLGg9bnVsbH19ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KHQpKX12YXIgaSxyLG8sYSx1LGM9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5zdHlsZSYmKGguc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixoLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsdi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWguc3R5bGUuYmFja2dyb3VuZENsaXAsTS5leHRlbmQodix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxhfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxpfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHV9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLG99fSkpfSgpO3ZhciBVdD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sS3Q9L14tLS8sWXQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFh0PXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifSwkdD1bIldlYmtpdCIsIk1veiIsIm1zIl0sR3Q9cy5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBKdCh0KXt2YXIgZT1NLmNzc1Byb3BzW3RdO3JldHVybiBlfHwoZT1NLmNzc1Byb3BzW3RdPWZ1bmN0aW9uKHQpe2lmKHQgaW4gR3QpcmV0dXJuIHQ7Zm9yKHZhciBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpLG49JHQubGVuZ3RoO24tLTspaWYoKHQ9JHRbbl0rZSlpbiBHdClyZXR1cm4gdH0odCl8fHQpLGV9ZnVuY3Rpb24gWnQodCxlLG4pe3ZhciBpPXJ0LmV4ZWMoZSk7cmV0dXJuIGk/TWF0aC5tYXgoMCxpWzJdLShufHwwKSkrKGlbM118fCJweCIpOmV9ZnVuY3Rpb24gUXQodCxlLG4saSxyLG8pe3ZhciBzPSJ3aWR0aCI9PT1lPzE6MCxhPTAsdT0wO2lmKG49PT0oaT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7czw0O3MrPTIpIm1hcmdpbiI9PT1uJiYodSs9TS5jc3ModCxuK290W3NdLCEwLHIpKSxpPygiY29udGVudCI9PT1uJiYodS09TS5jc3ModCwicGFkZGluZyIrb3Rbc10sITAscikpLCJtYXJnaW4iIT09biYmKHUtPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKSkpOih1Kz1NLmNzcyh0LCJwYWRkaW5nIitvdFtzXSwhMCxyKSwicGFkZGluZyIhPT1uP3UrPU0uY3NzKHQsImJvcmRlciIrb3Rbc10rIldpZHRoIiwhMCxyKTphKz1NLmNzcyh0LCJib3JkZXIiK290W3NdKyJXaWR0aCIsITAscikpO3JldHVybiFpJiZvPj0wJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwodFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0tby11LWEtLjUpKSksdX1mdW5jdGlvbiB0ZSh0LGUsbil7dmFyIGk9cXQodCkscj1GdCh0LGUsaSksbz0iYm9yZGVyLWJveCI9PT1NLmNzcyh0LCJib3hTaXppbmciLCExLGkpLHM9bztpZihXdC50ZXN0KHIpKXtpZighbilyZXR1cm4gcjtyPSJhdXRvIn1yZXR1cm4gcz1zJiYodi5ib3hTaXppbmdSZWxpYWJsZSgpfHxyPT09dC5zdHlsZVtlXSksKCJhdXRvIj09PXJ8fCFwYXJzZUZsb2F0KHIpJiYiaW5saW5lIj09PU0uY3NzKHQsImRpc3BsYXkiLCExLGkpKSYmKHI9dFsib2Zmc2V0IitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKV0scz0hMCksKHI9cGFyc2VGbG9hdChyKXx8MCkrUXQodCxlLG58fChvPyJib3JkZXIiOiJjb250ZW50IikscyxpLHIpKyJweCJ9ZnVuY3Rpb24gZWUodCxlLG4saSxyKXtyZXR1cm4gbmV3IGVlLnByb3RvdHlwZS5pbml0KHQsZSxuLGkscil9TS5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj1GdCh0LCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1uPyIxIjpufX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQmJjMhPT10Lm5vZGVUeXBlJiY4IT09dC5ub2RlVHlwZSYmdC5zdHlsZSl7dmFyIHIsbyxzLGE9JChlKSx1PUt0LnRlc3QoZSksYz10LnN0eWxlO2lmKHV8fChlPUp0KGEpKSxzPU0uY3NzSG9va3NbZV18fE0uY3NzSG9va3NbYV0sdm9pZCAwPT09bilyZXR1cm4gcyYmImdldCJpbiBzJiZ2b2lkIDAhPT0ocj1zLmdldCh0LCExLGkpKT9yOmNbZV07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihyPXJ0LmV4ZWMobikpJiZyWzFdJiYobj11dCh0LGUsciksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiPT09byYmKG4rPXImJnJbM118fChNLmNzc051bWJlclthXT8iIjoicHgiKSksdi5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PWUuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoY1tlXT0iaW5oZXJpdCIpLHMmJiJzZXQiaW4gcyYmdm9pZCAwPT09KG49cy5zZXQodCxuLGkpKXx8KHU/Yy5zZXRQcm9wZXJ0eShlLG4pOmNbZV09bikpfX0sY3NzOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLG8scyxhPSQoZSk7cmV0dXJuIEt0LnRlc3QoZSl8fChlPUp0KGEpKSwocz1NLmNzc0hvb2tzW2VdfHxNLmNzc0hvb2tzW2FdKSYmImdldCJpbiBzJiYocj1zLmdldCh0LCEwLG4pKSx2b2lkIDA9PT1yJiYocj1GdCh0LGUsaSkpLCJub3JtYWwiPT09ciYmZSBpbiBYdCYmKHI9WHRbZV0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KHIpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDpyKTpyfX0pLE0uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW2VdPXtnZXQ6ZnVuY3Rpb24odCxuLGkpe2lmKG4pcmV0dXJuIVV0LnRlc3QoTS5jc3ModCwiZGlzcGxheSIpKXx8dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD90ZSh0LGUsaSk6YXQodCxZdCxmdW5jdGlvbigpe3JldHVybiB0ZSh0LGUsaSl9KX0sc2V0OmZ1bmN0aW9uKHQsbixpKXt2YXIgcixvPXF0KHQpLHM9ImJvcmRlci1ib3giPT09TS5jc3ModCwiYm94U2l6aW5nIiwhMSxvKSxhPWkmJlF0KHQsZSxpLHMsbyk7cmV0dXJuIHMmJnYuc2Nyb2xsYm94U2l6ZSgpPT09by5wb3NpdGlvbiYmKGEtPU1hdGguY2VpbCh0WyJvZmZzZXQiK2VbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpXS1wYXJzZUZsb2F0KG9bZV0pLVF0KHQsZSwiYm9yZGVyIiwhMSxvKS0uNSkpLGEmJihyPXJ0LmV4ZWMobikpJiYicHgiIT09KHJbM118fCJweCIpJiYodC5zdHlsZVtlXT1uLG49TS5jc3ModCxlKSksWnQoMCxuLGEpfX19KSxNLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VnQodi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24odCxlKXtpZihlKXJldHVybihwYXJzZUZsb2F0KEZ0KHQsIm1hcmdpbkxlZnQiKSl8fHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1hdCh0LHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksTS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmNzc0hvb2tzW3QrZV09e2V4cGFuZDpmdW5jdGlvbihuKXtmb3IodmFyIGk9MCxyPXt9LG89InN0cmluZyI9PXR5cGVvZiBuP24uc3BsaXQoIiAiKTpbbl07aTw0O2krKylyW3Qrb3RbaV0rZV09b1tpXXx8b1tpLTJdfHxvWzBdO3JldHVybiByfX0sIm1hcmdpbiIhPT10JiYoTS5jc3NIb29rc1t0K2VdLnNldD1adCl9KSxNLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXt9LHM9MDtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IoaT1xdCh0KSxyPWUubGVuZ3RoO3M8cjtzKyspb1tlW3NdXT1NLmNzcyh0LGVbc10sITEsaSk7cmV0dXJuIG99cmV0dXJuIHZvaWQgMCE9PW4/TS5zdHlsZSh0LGUsbik6TS5jc3ModCxlKX0sdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9fSksTS5Ud2Vlbj1lZSxlZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmVlLGluaXQ6ZnVuY3Rpb24odCxlLG4saSxyLG8pe3RoaXMuZWxlbT10LHRoaXMucHJvcD1uLHRoaXMuZWFzaW5nPXJ8fE0uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1lLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1pLHRoaXMudW5pdD1vfHwoTS5jc3NOdW1iZXJbbl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciB0PWVlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0JiZ0LmdldD90LmdldCh0aGlzKTplZS5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24odCl7dmFyIGUsbj1lZS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWU9TS5lYXNpbmdbdGhpcy5lYXNpbmddKHQsdGhpcy5vcHRpb25zLmR1cmF0aW9uKnQsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9ZT10LHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSplK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOmVlLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGVlLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1lZS5wcm90b3R5cGUsZWUucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiAxIT09dC5lbGVtLm5vZGVUeXBlfHxudWxsIT10LmVsZW1bdC5wcm9wXSYmbnVsbD09dC5lbGVtLnN0eWxlW3QucHJvcF0/dC5lbGVtW3QucHJvcF06KGU9TS5jc3ModC5lbGVtLHQucHJvcCwiIikpJiYiYXV0byIhPT1lP2U6MH0sc2V0OmZ1bmN0aW9uKHQpe00uZnguc3RlcFt0LnByb3BdP00uZnguc3RlcFt0LnByb3BdKHQpOjEhPT10LmVsZW0ubm9kZVR5cGV8fG51bGw9PXQuZWxlbS5zdHlsZVtNLmNzc1Byb3BzW3QucHJvcF1dJiYhTS5jc3NIb29rc1t0LnByb3BdP3QuZWxlbVt0LnByb3BdPXQubm93Ok0uc3R5bGUodC5lbGVtLHQucHJvcCx0Lm5vdyt0LnVuaXQpfX19LGVlLnByb3BIb29rcy5zY3JvbGxUb3A9ZWUucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbih0KXt0LmVsZW0ubm9kZVR5cGUmJnQuZWxlbS5wYXJlbnROb2RlJiYodC5lbGVtW3QucHJvcF09dC5ub3cpfX0sTS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdH0sc3dpbmc6ZnVuY3Rpb24odCl7cmV0dXJuLjUtTWF0aC5jb3ModCpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxNLmZ4PWVlLnByb3RvdHlwZS5pbml0LE0uZnguc3RlcD17fTt2YXIgbmUsaWUscmU9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLG9lPS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gc2UoKXtpZSYmKCExPT09cy5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lP24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlKTpuLnNldFRpbWVvdXQoc2UsTS5meC5pbnRlcnZhbCksTS5meC50aWNrKCkpfWZ1bmN0aW9uIGFlKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe25lPXZvaWQgMH0pLG5lPURhdGUubm93KCl9ZnVuY3Rpb24gdWUodCxlKXt2YXIgbixpPTAscj17aGVpZ2h0OnR9O2ZvcihlPWU/MTowO2k8NDtpKz0yLWUpclsibWFyZ2luIisobj1vdFtpXSldPXJbInBhZGRpbmciK25dPXQ7cmV0dXJuIGUmJihyLm9wYWNpdHk9ci53aWR0aD10KSxyfWZ1bmN0aW9uIGNlKHQsZSxuKXtmb3IodmFyIGkscj0oaGUudHdlZW5lcnNbZV18fFtdKS5jb25jYXQoaGUudHdlZW5lcnNbIioiXSksbz0wLHM9ci5sZW5ndGg7bzxzO28rKylpZihpPXJbb10uY2FsbChuLGUsdCkpcmV0dXJuIGl9ZnVuY3Rpb24gaGUodCxlLG4pe3ZhciBpLHIsbz0wLHM9aGUucHJlZmlsdGVycy5sZW5ndGgsYT1NLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIHUuZWxlbX0pLHU9ZnVuY3Rpb24oKXtpZihyKXJldHVybiExO2Zvcih2YXIgZT1uZXx8YWUoKSxuPU1hdGgubWF4KDAsYy5zdGFydFRpbWUrYy5kdXJhdGlvbi1lKSxpPTEtKG4vYy5kdXJhdGlvbnx8MCksbz0wLHM9Yy50d2VlbnMubGVuZ3RoO288cztvKyspYy50d2VlbnNbb10ucnVuKGkpO3JldHVybiBhLm5vdGlmeVdpdGgodCxbYyxpLG5dKSxpPDEmJnM/bjooc3x8YS5ub3RpZnlXaXRoKHQsW2MsMSwwXSksYS5yZXNvbHZlV2l0aCh0LFtjXSksITEpfSxjPWEucHJvbWlzZSh7ZWxlbTp0LHByb3BzOk0uZXh0ZW5kKHt9LGUpLG9wdHM6TS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOk0uZWFzaW5nLl9kZWZhdWx0fSxuKSxvcmlnaW5hbFByb3BlcnRpZXM6ZSxvcmlnaW5hbE9wdGlvbnM6bixzdGFydFRpbWU6bmV8fGFlKCksZHVyYXRpb246bi5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24oZSxuKXt2YXIgaT1NLlR3ZWVuKHQsYy5vcHRzLGUsbixjLm9wdHMuc3BlY2lhbEVhc2luZ1tlXXx8Yy5vcHRzLmVhc2luZyk7cmV0dXJuIGMudHdlZW5zLnB1c2goaSksaX0sc3RvcDpmdW5jdGlvbihlKXt2YXIgbj0wLGk9ZT9jLnR3ZWVucy5sZW5ndGg6MDtpZihyKXJldHVybiB0aGlzO2ZvcihyPSEwO248aTtuKyspYy50d2VlbnNbbl0ucnVuKDEpO3JldHVybiBlPyhhLm5vdGlmeVdpdGgodCxbYywxLDBdKSxhLnJlc29sdmVXaXRoKHQsW2MsZV0pKTphLnJlamVjdFdpdGgodCxbYyxlXSksdGhpc319KSxoPWMucHJvcHM7Zm9yKCFmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM7Zm9yKG4gaW4gdClpZihyPWVbaT0kKG4pXSxvPXRbbl0sQXJyYXkuaXNBcnJheShvKSYmKHI9b1sxXSxvPXRbbl09b1swXSksbiE9PWkmJih0W2ldPW8sZGVsZXRlIHRbbl0pLChzPU0uY3NzSG9va3NbaV0pJiYiZXhwYW5kImluIHMpZm9yKG4gaW4gbz1zLmV4cGFuZChvKSxkZWxldGUgdFtpXSxvKW4gaW4gdHx8KHRbbl09b1tuXSxlW25dPXIpO2Vsc2UgZVtpXT1yfShoLGMub3B0cy5zcGVjaWFsRWFzaW5nKTtvPHM7bysrKWlmKGk9aGUucHJlZmlsdGVyc1tvXS5jYWxsKGMsdCxoLGMub3B0cykpcmV0dXJuIGIoaS5zdG9wKSYmKE0uX3F1ZXVlSG9va3MoYy5lbGVtLGMub3B0cy5xdWV1ZSkuc3RvcD1pLnN0b3AuYmluZChpKSksaTtyZXR1cm4gTS5tYXAoaCxjZSxjKSxiKGMub3B0cy5zdGFydCkmJmMub3B0cy5zdGFydC5jYWxsKHQsYyksYy5wcm9ncmVzcyhjLm9wdHMucHJvZ3Jlc3MpLmRvbmUoYy5vcHRzLmRvbmUsYy5vcHRzLmNvbXBsZXRlKS5mYWlsKGMub3B0cy5mYWlsKS5hbHdheXMoYy5vcHRzLmFsd2F5cyksTS5meC50aW1lcihNLmV4dGVuZCh1LHtlbGVtOnQsYW5pbTpjLHF1ZXVlOmMub3B0cy5xdWV1ZX0pKSxjfU0uQW5pbWF0aW9uPU0uZXh0ZW5kKGhlLHt0d2VlbmVyczp7IioiOltmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4odCxlKTtyZXR1cm4gdXQobi5lbGVtLHQscnQuZXhlYyhlKSxuKSxufV19LHR3ZWVuZXI6ZnVuY3Rpb24odCxlKXtiKHQpPyhlPXQsdD1bIioiXSk6dD10Lm1hdGNoKHopO2Zvcih2YXIgbixpPTAscj10Lmxlbmd0aDtpPHI7aSsrKW49dFtpXSxoZS50d2VlbmVyc1tuXT1oZS50d2VlbmVyc1tuXXx8W10saGUudHdlZW5lcnNbbl0udW5zaGlmdChlKX0scHJlZmlsdGVyczpbZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbyxzLGEsdSxjLGgsbD0id2lkdGgiaW4gZXx8ImhlaWdodCJpbiBlLGQ9dGhpcyxmPXt9LHA9dC5zdHlsZSxtPXQubm9kZVR5cGUmJnN0KHQpLGc9Wi5nZXQodCwiZnhzaG93Iik7Zm9yKGkgaW4gbi5xdWV1ZXx8KG51bGw9PShzPU0uX3F1ZXVlSG9va3ModCwiZngiKSkudW5xdWV1ZWQmJihzLnVucXVldWVkPTAsYT1zLmVtcHR5LmZpcmUscy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7cy51bnF1ZXVlZHx8YSgpfSkscy51bnF1ZXVlZCsrLGQuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5hbHdheXMoZnVuY3Rpb24oKXtzLnVucXVldWVkLS0sTS5xdWV1ZSh0LCJmeCIpLmxlbmd0aHx8cy5lbXB0eS5maXJlKCl9KX0pKSxlKWlmKHI9ZVtpXSxyZS50ZXN0KHIpKXtpZihkZWxldGUgZVtpXSxvPW98fCJ0b2dnbGUiPT09cixyPT09KG0/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PXJ8fCFnfHx2b2lkIDA9PT1nW2ldKWNvbnRpbnVlO209ITB9ZltpXT1nJiZnW2ldfHxNLnN0eWxlKHQsaSl9aWYoKHU9IU0uaXNFbXB0eU9iamVjdChlKSl8fCFNLmlzRW1wdHlPYmplY3QoZikpZm9yKGkgaW4gbCYmMT09PXQubm9kZVR5cGUmJihuLm92ZXJmbG93PVtwLm92ZXJmbG93LHAub3ZlcmZsb3dYLHAub3ZlcmZsb3dZXSxudWxsPT0oYz1nJiZnLmRpc3BsYXkpJiYoYz1aLmdldCh0LCJkaXNwbGF5IikpLCJub25lIj09PShoPU0uY3NzKHQsImRpc3BsYXkiKSkmJihjP2g9YzoobHQoW3RdLCEwKSxjPXQuc3R5bGUuZGlzcGxheXx8YyxoPU0uY3NzKHQsImRpc3BsYXkiKSxsdChbdF0pKSksKCJpbmxpbmUiPT09aHx8ImlubGluZS1ibG9jayI9PT1oJiZudWxsIT1jKSYmIm5vbmUiPT09TS5jc3ModCwiZmxvYXQiKSYmKHV8fChkLmRvbmUoZnVuY3Rpb24oKXtwLmRpc3BsYXk9Y30pLG51bGw9PWMmJihoPXAuZGlzcGxheSxjPSJub25lIj09PWg/IiI6aCkpLHAuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLG4ub3ZlcmZsb3cmJihwLm92ZXJmbG93PSJoaWRkZW4iLGQuYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1uLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPW4ub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9bi5vdmVyZmxvd1syXX0pKSx1PSExLGYpdXx8KGc/ImhpZGRlbiJpbiBnJiYobT1nLmhpZGRlbik6Zz1aLmFjY2Vzcyh0LCJmeHNob3ciLHtkaXNwbGF5OmN9KSxvJiYoZy5oaWRkZW49IW0pLG0mJmx0KFt0XSwhMCksZC5kb25lKGZ1bmN0aW9uKCl7Zm9yKGkgaW4gbXx8bHQoW3RdKSxaLnJlbW92ZSh0LCJmeHNob3ciKSxmKU0uc3R5bGUodCxpLGZbaV0pfSkpLHU9Y2UobT9nW2ldOjAsaSxkKSxpIGluIGd8fChnW2ldPXUuc3RhcnQsbSYmKHUuZW5kPXUuc3RhcnQsdS5zdGFydD0wKSl9XSxwcmVmaWx0ZXI6ZnVuY3Rpb24odCxlKXtlP2hlLnByZWZpbHRlcnMudW5zaGlmdCh0KTpoZS5wcmVmaWx0ZXJzLnB1c2godCl9fSksTS5zcGVlZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dCYmIm9iamVjdCI9PXR5cGVvZiB0P00uZXh0ZW5kKHt9LHQpOntjb21wbGV0ZTpufHwhbiYmZXx8Yih0KSYmdCxkdXJhdGlvbjp0LGVhc2luZzpuJiZlfHxlJiYhYihlKSYmZX07cmV0dXJuIE0uZngub2ZmP2kuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGkuZHVyYXRpb24mJihpLmR1cmF0aW9uIGluIE0uZnguc3BlZWRzP2kuZHVyYXRpb249TS5meC5zcGVlZHNbaS5kdXJhdGlvbl06aS5kdXJhdGlvbj1NLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9aS5xdWV1ZSYmITAhPT1pLnF1ZXVlfHwoaS5xdWV1ZT0iZngiKSxpLm9sZD1pLmNvbXBsZXRlLGkuY29tcGxldGU9ZnVuY3Rpb24oKXtiKGkub2xkKSYmaS5vbGQuY2FsbCh0aGlzKSxpLnF1ZXVlJiZNLmRlcXVldWUodGhpcyxpLnF1ZXVlKX0saX0sTS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5maWx0ZXIoc3QpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6ZX0sdCxuLGkpfSxhbmltYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPU0uaXNFbXB0eU9iamVjdCh0KSxvPU0uc3BlZWQoZSxuLGkpLHM9ZnVuY3Rpb24oKXt2YXIgZT1oZSh0aGlzLE0uZXh0ZW5kKHt9LHQpLG8pOyhyfHxaLmdldCh0aGlzLCJmaW5pc2giKSkmJmUuc3RvcCghMCl9O3JldHVybiBzLmZpbmlzaD1zLHJ8fCExPT09by5xdWV1ZT90aGlzLmVhY2gocyk6dGhpcy5xdWV1ZShvLnF1ZXVlLHMpfSxzdG9wOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1mdW5jdGlvbih0KXt2YXIgZT10LnN0b3A7ZGVsZXRlIHQuc3RvcCxlKG4pfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPWUsZT10LHQ9dm9pZCAwKSxlJiYhMSE9PXQmJnRoaXMucXVldWUodHx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ITAscj1udWxsIT10JiZ0KyJxdWV1ZUhvb2tzIixvPU0udGltZXJzLHM9Wi5nZXQodGhpcyk7aWYocilzW3JdJiZzW3JdLnN0b3AmJmkoc1tyXSk7ZWxzZSBmb3IociBpbiBzKXNbcl0mJnNbcl0uc3RvcCYmb2UudGVzdChyKSYmaShzW3JdKTtmb3Iocj1vLmxlbmd0aDtyLS07KW9bcl0uZWxlbSE9PXRoaXN8fG51bGwhPXQmJm9bcl0ucXVldWUhPT10fHwob1tyXS5hbmltLnN0b3AobiksZT0hMSxvLnNwbGljZShyLDEpKTshZSYmbnx8TS5kZXF1ZXVlKHRoaXMsdCl9KX0sZmluaXNoOmZ1bmN0aW9uKHQpe3JldHVybiExIT09dCYmKHQ9dHx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUsbj1aLmdldCh0aGlzKSxpPW5bdCsicXVldWUiXSxyPW5bdCsicXVldWVIb29rcyJdLG89TS50aW1lcnMscz1pP2kubGVuZ3RoOjA7Zm9yKG4uZmluaXNoPSEwLE0ucXVldWUodGhpcyx0LFtdKSxyJiZyLnN0b3AmJnIuc3RvcC5jYWxsKHRoaXMsITApLGU9by5sZW5ndGg7ZS0tOylvW2VdLmVsZW09PT10aGlzJiZvW2VdLnF1ZXVlPT09dCYmKG9bZV0uYW5pbS5zdG9wKCEwKSxvLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8cztlKyspaVtlXSYmaVtlXS5maW5pc2gmJmlbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIG4uZmluaXNofSl9fSksTS5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbih0LGUpe3ZhciBuPU0uZm5bZV07TS5mbltlXT1mdW5jdGlvbih0LGkscil7cmV0dXJuIG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHQ/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKHVlKGUsITApLHQsaSxyKX19KSxNLmVhY2goe3NsaWRlRG93bjp1ZSgic2hvdyIpLHNsaWRlVXA6dWUoImhpZGUiKSxzbGlkZVRvZ2dsZTp1ZSgidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbih0LGUpe00uZm5bdF09ZnVuY3Rpb24odCxuLGkpe3JldHVybiB0aGlzLmFuaW1hdGUoZSx0LG4saSl9fSksTS50aW1lcnM9W10sTS5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIHQsZT0wLG49TS50aW1lcnM7Zm9yKG5lPURhdGUubm93KCk7ZTxuLmxlbmd0aDtlKyspKHQ9bltlXSkoKXx8bltlXSE9PXR8fG4uc3BsaWNlKGUtLSwxKTtuLmxlbmd0aHx8TS5meC5zdG9wKCksbmU9dm9pZCAwfSxNLmZ4LnRpbWVyPWZ1bmN0aW9uKHQpe00udGltZXJzLnB1c2godCksTS5meC5zdGFydCgpfSxNLmZ4LmludGVydmFsPTEzLE0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpZXx8KGllPSEwLHNlKCkpfSxNLmZ4LnN0b3A9ZnVuY3Rpb24oKXtpZT1udWxsfSxNLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxNLmZuLmRlbGF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9TS5meCYmTS5meC5zcGVlZHNbdF18fHQsZT1lfHwiZngiLHRoaXMucXVldWUoZSxmdW5jdGlvbihlLGkpe3ZhciByPW4uc2V0VGltZW91dChlLHQpO2kuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KHIpfX0pfSxmdW5jdGlvbigpe3ZhciB0PXMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxlPXMuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQocy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7dC50eXBlPSJjaGVja2JveCIsdi5jaGVja09uPSIiIT09dC52YWx1ZSx2Lm9wdFNlbGVjdGVkPWUuc2VsZWN0ZWQsKHQ9cy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS52YWx1ZT0idCIsdC50eXBlPSJyYWRpbyIsdi5yYWRpb1ZhbHVlPSJ0Ij09PXQudmFsdWV9KCk7dmFyIGxlLGRlPU0uZXhwci5hdHRySGFuZGxlO00uZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLmF0dHIsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00ucmVtb3ZlQXR0cih0aGlzLHQpfSl9fSksTS5leHRlbmQoe2F0dHI6ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbz10Lm5vZGVUeXBlO2lmKDMhPT1vJiY4IT09byYmMiE9PW8pcmV0dXJuIHZvaWQgMD09PXQuZ2V0QXR0cmlidXRlP00ucHJvcCh0LGUsbik6KDE9PT1vJiZNLmlzWE1MRG9jKHQpfHwocj1NLmF0dHJIb29rc1tlLnRvTG93ZXJDYXNlKCldfHwoTS5leHByLm1hdGNoLmJvb2wudGVzdChlKT9sZTp2b2lkIDApKSx2b2lkIDAhPT1uP251bGw9PT1uP3ZvaWQgTS5yZW1vdmVBdHRyKHQsZSk6ciYmInNldCJpbiByJiZ2b2lkIDAhPT0oaT1yLnNldCh0LG4sZSkpP2k6KHQuc2V0QXR0cmlidXRlKGUsbisiIiksbik6ciYmImdldCJpbiByJiZudWxsIT09KGk9ci5nZXQodCxlKSk/aTpudWxsPT0oaT1NLmZpbmQuYXR0cih0LGUpKT92b2lkIDA6aSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKHQsZSl7aWYoIXYucmFkaW9WYWx1ZSYmInJhZGlvIj09PWUmJlAodCwiaW5wdXQiKSl7dmFyIG49dC52YWx1ZTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoInR5cGUiLGUpLG4mJih0LnZhbHVlPW4pLGV9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCxlKXt2YXIgbixpPTAscj1lJiZlLm1hdGNoKHopO2lmKHImJjE9PT10Lm5vZGVUeXBlKWZvcig7bj1yW2krK107KXQucmVtb3ZlQXR0cmlidXRlKG4pfX0pLGxlPXtzZXQ6ZnVuY3Rpb24odCxlLG4pe3JldHVybiExPT09ZT9NLnJlbW92ZUF0dHIodCxuKTp0LnNldEF0dHJpYnV0ZShuLG4pLG59fSxNLmVhY2goTS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKC9cdysvZyksZnVuY3Rpb24odCxlKXt2YXIgbj1kZVtlXXx8TS5maW5kLmF0dHI7ZGVbZV09ZnVuY3Rpb24odCxlLGkpe3ZhciByLG8scz1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGl8fChvPWRlW3NdLGRlW3NdPXIscj1udWxsIT1uKHQsZSxpKT9zOm51bGwsZGVbc109bykscn19KTt2YXIgZmU9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxwZT0vXig/OmF8YXJlYSkkL2k7ZnVuY3Rpb24gbWUodCl7cmV0dXJuKHQubWF0Y2goeil8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIHQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gdmUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDoic3RyaW5nIj09dHlwZW9mIHQmJnQubWF0Y2goeil8fFtdfU0uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFUodGhpcyxNLnByb3AsdCxlLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW00ucHJvcEZpeFt0XXx8dF19KX19KSxNLmV4dGVuZCh7cHJvcDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvPXQubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm4gMT09PW8mJk0uaXNYTUxEb2ModCl8fChlPU0ucHJvcEZpeFtlXXx8ZSxyPU0ucHJvcEhvb2tzW2VdKSx2b2lkIDAhPT1uP3ImJiJzZXQiaW4gciYmdm9pZCAwIT09KGk9ci5zZXQodCxuLGUpKT9pOnRbZV09bjpyJiYiZ2V0ImluIHImJm51bGwhPT0oaT1yLmdldCh0LGUpKT9pOnRbZV19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ0YWJpbmRleCIpO3JldHVybiBlP3BhcnNlSW50KGUsMTApOmZlLnRlc3QodC5ub2RlTmFtZSl8fHBlLnRlc3QodC5ub2RlTmFtZSkmJnQuaHJlZj8wOi0xfX19LHByb3BGaXg6e2ZvcjoiaHRtbEZvciIsY2xhc3M6ImNsYXNzTmFtZSJ9fSksdi5vcHRTZWxlY3RlZHx8KE0ucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnROb2RlO3JldHVybiBlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudE5vZGU7ZSYmKGUuc2VsZWN0ZWRJbmRleCxlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxNLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe00ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxNLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpLHIsbyxzLGEsdT0wO2lmKGIodCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtNKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ2UodGhpcykpKX0pO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylpLmluZGV4T2YoIiAiK28rIiAiKTwwJiYoaSs9bysiICIpO3IhPT0oYT1tZShpKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIsYSl9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG8scyxhLHU9MDtpZihiKHQpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7TSh0aGlzKS5yZW1vdmVDbGFzcyh0LmNhbGwodGhpcyxlLGdlKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKChlPXZlKHQpKS5sZW5ndGgpZm9yKDtuPXRoaXNbdSsrXTspaWYocj1nZShuKSxpPTE9PT1uLm5vZGVUeXBlJiYiICIrbWUocikrIiAiKXtmb3Iocz0wO289ZVtzKytdOylmb3IoO2kuaW5kZXhPZigiICIrbysiICIpPi0xOylpPWkucmVwbGFjZSgiICIrbysiICIsIiAiKTtyIT09KGE9bWUoaSkpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGEpfXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbih0LGUpe3ZhciBuPXR5cGVvZiB0LGk9InN0cmluZyI9PT1ufHxBcnJheS5pc0FycmF5KHQpO3JldHVybiJib29sZWFuIj09dHlwZW9mIGUmJmk/ZT90aGlzLmFkZENsYXNzKHQpOnRoaXMucmVtb3ZlQ2xhc3ModCk6Yih0KT90aGlzLmVhY2goZnVuY3Rpb24obil7TSh0aGlzKS50b2dnbGVDbGFzcyh0LmNhbGwodGhpcyxuLGdlKHRoaXMpLGUpLGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGUscixvLHM7aWYoaSlmb3Iocj0wLG89TSh0aGlzKSxzPXZlKHQpO2U9c1tyKytdOylvLmhhc0NsYXNzKGUpP28ucmVtb3ZlQ2xhc3MoZSk6by5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PXQmJiJib29sZWFuIiE9PW58fCgoZT1nZSh0aGlzKSkmJlouc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09dD8iIjpaLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixpPTA7Zm9yKGU9IiAiK3QrIiAiO249dGhpc1tpKytdOylpZigxPT09bi5ub2RlVHlwZSYmKCIgIittZShnZShuKSkrIiAiKS5pbmRleE9mKGUpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBiZT0vXHIvZztNLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Yih0KSx0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIHI7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0ocj1pP3QuY2FsbCh0aGlzLG4sTSh0aGlzKS52YWwoKSk6dCk/cj0iIjoibnVtYmVyIj09dHlwZW9mIHI/cis9IiI6QXJyYXkuaXNBcnJheShyKSYmKHI9TS5tYXAocixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjp0KyIifSkpLChlPU0udmFsSG9va3NbdGhpcy50eXBlXXx8TS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBlJiZ2b2lkIDAhPT1lLnNldCh0aGlzLHIsInZhbHVlIil8fCh0aGlzLnZhbHVlPXIpKX0pKTpyPyhlPU0udmFsSG9va3Nbci50eXBlXXx8TS52YWxIb29rc1tyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmImdldCJpbiBlJiZ2b2lkIDAhPT0obj1lLmdldChyLCJ2YWx1ZSIpKT9uOiJzdHJpbmciPT10eXBlb2Yobj1yLnZhbHVlKT9uLnJlcGxhY2UoYmUsIiIpOm51bGw9PW4/IiI6bjp2b2lkIDB9fSksTS5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbih0KXt2YXIgZT1NLmZpbmQuYXR0cih0LCJ2YWx1ZSIpO3JldHVybiBudWxsIT1lP2U6bWUoTS50ZXh0KHQpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyPXQub3B0aW9ucyxvPXQuc2VsZWN0ZWRJbmRleCxzPSJzZWxlY3Qtb25lIj09PXQudHlwZSxhPXM/bnVsbDpbXSx1PXM/bysxOnIubGVuZ3RoO2ZvcihpPW88MD91OnM/bzowO2k8dTtpKyspaWYoKChuPXJbaV0pLnNlbGVjdGVkfHxpPT09bykmJiFuLmRpc2FibGVkJiYoIW4ucGFyZW50Tm9kZS5kaXNhYmxlZHx8IVAobi5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoZT1NKG4pLnZhbCgpLHMpcmV0dXJuIGU7YS5wdXNoKGUpfXJldHVybiBhfSxzZXQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4saSxyPXQub3B0aW9ucyxvPU0ubWFrZUFycmF5KGUpLHM9ci5sZW5ndGg7cy0tOykoKGk9cltzXSkuc2VsZWN0ZWQ9TS5pbkFycmF5KE0udmFsSG9va3Mub3B0aW9uLmdldChpKSxvKT4tMSkmJihuPSEwKTtyZXR1cm4gbnx8KHQuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLE0uZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe00udmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQuY2hlY2tlZD1NLmluQXJyYXkoTSh0KS52YWwoKSxlKT4tMX19LHYuY2hlY2tPbnx8KE0udmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dC5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjp0LnZhbHVlfSl9KSx2LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBuO3ZhciB5ZT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sX2U9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX07TS5leHRlbmQoTS5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbih0LGUsaSxyKXt2YXIgbyxhLHUsYyxoLGwsZCxmLG09W2l8fHNdLGc9cC5jYWxsKHQsInR5cGUiKT90LnR5cGU6dCx2PXAuY2FsbCh0LCJuYW1lc3BhY2UiKT90Lm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGE9Zj11PWk9aXx8cywzIT09aS5ub2RlVHlwZSYmOCE9PWkubm9kZVR5cGUmJiF5ZS50ZXN0KGcrTS5ldmVudC50cmlnZ2VyZWQpJiYoZy5pbmRleE9mKCIuIik+LTEmJih2PWcuc3BsaXQoIi4iKSxnPXYuc2hpZnQoKSx2LnNvcnQoKSksaD1nLmluZGV4T2YoIjoiKTwwJiYib24iK2csKHQ9dFtNLmV4cGFuZG9dP3Q6bmV3IE0uRXZlbnQoZywib2JqZWN0Ij09dHlwZW9mIHQmJnQpKS5pc1RyaWdnZXI9cj8yOjMsdC5uYW1lc3BhY2U9di5qb2luKCIuIiksdC5ybmFtZXNwYWNlPXQubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Yuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCx0LnJlc3VsdD12b2lkIDAsdC50YXJnZXR8fCh0LnRhcmdldD1pKSxlPW51bGw9PWU/W3RdOk0ubWFrZUFycmF5KGUsW3RdKSxkPU0uZXZlbnQuc3BlY2lhbFtnXXx8e30scnx8IWQudHJpZ2dlcnx8ITEhPT1kLnRyaWdnZXIuYXBwbHkoaSxlKSkpe2lmKCFyJiYhZC5ub0J1YmJsZSYmIXkoaSkpe2ZvcihjPWQuZGVsZWdhdGVUeXBlfHxnLHllLnRlc3QoYytnKXx8KGE9YS5wYXJlbnROb2RlKTthO2E9YS5wYXJlbnROb2RlKW0ucHVzaChhKSx1PWE7dT09PShpLm93bmVyRG9jdW1lbnR8fHMpJiZtLnB1c2godS5kZWZhdWx0Vmlld3x8dS5wYXJlbnRXaW5kb3d8fG4pfWZvcihvPTA7KGE9bVtvKytdKSYmIXQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZj1hLHQudHlwZT1vPjE/YzpkLmJpbmRUeXBlfHxnLChsPShaLmdldChhLCJldmVudHMiKXx8e30pW3QudHlwZV0mJlouZ2V0KGEsImhhbmRsZSIpKSYmbC5hcHBseShhLGUpLChsPWgmJmFbaF0pJiZsLmFwcGx5JiZHKGEpJiYodC5yZXN1bHQ9bC5hcHBseShhLGUpLCExPT09dC5yZXN1bHQmJnQucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIHQudHlwZT1nLHJ8fHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fGQuX2RlZmF1bHQmJiExIT09ZC5fZGVmYXVsdC5hcHBseShtLnBvcCgpLGUpfHwhRyhpKXx8aCYmYihpW2ddKSYmIXkoaSkmJigodT1pW2hdKSYmKGlbaF09bnVsbCksTS5ldmVudC50cmlnZ2VyZWQ9Zyx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihnLF9lKSxpW2ddKCksdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZyxfZSksTS5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLHUmJihpW2hdPXUpKSx0LnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1NLmV4dGVuZChuZXcgTS5FdmVudCxuLHt0eXBlOnQsaXNTaW11bGF0ZWQ6ITB9KTtNLmV2ZW50LnRyaWdnZXIoaSxudWxsLGUpfX0pLE0uZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe00uZXZlbnQudHJpZ2dlcih0LGUsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIE0uZXZlbnQudHJpZ2dlcih0LGUsbiwhMCl9fSksdi5mb2N1c2lufHxNLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7TS5ldmVudC5zaW11bGF0ZShlLHQudGFyZ2V0LE0uZXZlbnQuZml4KHQpKX07TS5ldmVudC5zcGVjaWFsW2VdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBpPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxyPVouYWNjZXNzKGksZSk7cnx8aS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMCksWi5hY2Nlc3MoaSxlLChyfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMscj1aLmFjY2VzcyhpLGUpLTE7cj9aLmFjY2VzcyhpLGUscik6KGkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sITApLFoucmVtb3ZlKGksZSkpfX19KTt2YXIgd2U9bi5sb2NhdGlvbix4ZT1EYXRlLm5vdygpLE1lPS9cPy87TS5wYXJzZVhNTD1mdW5jdGlvbih0KXt2YXIgZTtpZighdHx8InN0cmluZyIhPXR5cGVvZiB0KXJldHVybiBudWxsO3RyeXtlPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyh0LCJ0ZXh0L3htbCIpfWNhdGNoKHQpe2U9dm9pZCAwfXJldHVybiBlJiYhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyc2VyZXJyb3IiKS5sZW5ndGh8fE0uZXJyb3IoIkludmFsaWQgWE1MOiAiK3QpLGV9O3ZhciBTZT0vXFtcXSQvLEVlPS9ccj9cbi9nLEFlPS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxDZT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZnVuY3Rpb24ga2UodCxlLG4saSl7dmFyIHI7aWYoQXJyYXkuaXNBcnJheShlKSlNLmVhY2goZSxmdW5jdGlvbihlLHIpe258fFNlLnRlc3QodCk/aSh0LHIpOmtlKHQrIlsiKygib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPXI/ZToiIikrIl0iLHIsbixpKX0pO2Vsc2UgaWYobnx8Im9iamVjdCIhPT14KGUpKWkodCxlKTtlbHNlIGZvcihyIGluIGUpa2UodCsiWyIrcisiXSIsZVtyXSxuLGkpfU0ucGFyYW09ZnVuY3Rpb24odCxlKXt2YXIgbixpPVtdLHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1iKGUpP2UoKTplO2lbaS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudCh0KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PW4/IiI6bil9O2lmKEFycmF5LmlzQXJyYXkodCl8fHQuanF1ZXJ5JiYhTS5pc1BsYWluT2JqZWN0KHQpKU0uZWFjaCh0LGZ1bmN0aW9uKCl7cih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIHQpa2Uobix0W25dLGUscik7cmV0dXJuIGkuam9pbigiJiIpfSxNLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIE0ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgdD1NLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gdD9NLm1ha2VBcnJheSh0KTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFNKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmQ2UudGVzdCh0aGlzLm5vZGVOYW1lKSYmIUFlLnRlc3QodCkmJih0aGlzLmNoZWNrZWR8fCFkdC50ZXN0KHQpKX0pLm1hcChmdW5jdGlvbih0LGUpe3ZhciBuPU0odGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP00ubWFwKG4sZnVuY3Rpb24odCl7cmV0dXJue25hbWU6ZS5uYW1lLHZhbHVlOnQucmVwbGFjZShFZSwiXHJcbiIpfX0pOntuYW1lOmUubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRWUsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgT2U9LyUyMC9nLFBlPS8jLiokLyxUZT0vKFs/Jl0pXz1bXiZdKi8samU9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxJZT0vXig/OkdFVHxIRUFEKSQvLExlPS9eXC9cLy8sQmU9e30sRGU9e30sUmU9IiovIi5jb25jYXQoIioiKSx6ZT1zLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBOZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXsic3RyaW5nIiE9dHlwZW9mIGUmJihuPWUsZT0iKiIpO3ZhciBpLHI9MCxvPWUudG9Mb3dlckNhc2UoKS5tYXRjaCh6KXx8W107aWYoYihuKSlmb3IoO2k9b1tyKytdOykiKyI9PT1pWzBdPyhpPWkuc2xpY2UoMSl8fCIqIiwodFtpXT10W2ldfHxbXSkudW5zaGlmdChuKSk6KHRbaV09dFtpXXx8W10pLnB1c2gobil9fWZ1bmN0aW9uIFdlKHQsZSxuLGkpe3ZhciByPXt9LG89dD09PURlO2Z1bmN0aW9uIHMoYSl7dmFyIHU7cmV0dXJuIHJbYV09ITAsTS5lYWNoKHRbYV18fFtdLGZ1bmN0aW9uKHQsYSl7dmFyIGM9YShlLG4saSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBjfHxvfHxyW2NdP28/ISh1PWMpOnZvaWQgMDooZS5kYXRhVHlwZXMudW5zaGlmdChjKSxzKGMpLCExKX0pLHV9cmV0dXJuIHMoZS5kYXRhVHlwZXNbMF0pfHwhclsiKiJdJiZzKCIqIil9ZnVuY3Rpb24gcWUodCxlKXt2YXIgbixpLHI9TS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIGUpdm9pZCAwIT09ZVtuXSYmKChyW25dP3Q6aXx8KGk9e30pKVtuXT1lW25dKTtyZXR1cm4gaSYmTS5leHRlbmQoITAsdCxpKSx0fXplLmhyZWY9d2UuaHJlZixNLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6d2UuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdCh3ZS5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSZSx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6TS5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/cWUocWUodCxNLmFqYXhTZXR0aW5ncyksZSk6cWUoTS5hamF4U2V0dGluZ3MsdCl9LGFqYXhQcmVmaWx0ZXI6TmUoQmUpLGFqYXhUcmFuc3BvcnQ6TmUoRGUpLGFqYXg6ZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIHQmJihlPXQsdD12b2lkIDApLGU9ZXx8e307dmFyIGkscixvLGEsdSxjLGgsbCxkLGYscD1NLmFqYXhTZXR1cCh7fSxlKSxtPXAuY29udGV4dHx8cCxnPXAuY29udGV4dCYmKG0ubm9kZVR5cGV8fG0uanF1ZXJ5KT9NKG0pOk0uZXZlbnQsdj1NLkRlZmVycmVkKCksYj1NLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx5PXAuc3RhdHVzQ29kZXx8e30sXz17fSx3PXt9LHg9ImNhbmNlbGVkIixTPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24odCl7dmFyIGU7aWYoaCl7aWYoIWEpZm9yKGE9e307ZT1qZS5leGVjKG8pOylhW2VbMV0udG9Mb3dlckNhc2UoKV09ZVsyXTtlPWFbdC50b0xvd2VyQ2FzZSgpXX1yZXR1cm4gbnVsbD09ZT9udWxsOmV9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBoP286bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT1oJiYodD13W3QudG9Mb3dlckNhc2UoKV09d1t0LnRvTG93ZXJDYXNlKCldfHx0LF9bdF09ZSksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09aCYmKHAubWltZVR5cGU9dCksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbih0KXt2YXIgZTtpZih0KWlmKGgpUy5hbHdheXModFtTLnN0YXR1c10pO2Vsc2UgZm9yKGUgaW4gdCl5W2VdPVt5W2VdLHRbZV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbih0KXt2YXIgZT10fHx4O3JldHVybiBpJiZpLmFib3J0KGUpLEUoMCxlKSx0aGlzfX07aWYodi5wcm9taXNlKFMpLHAudXJsPSgodHx8cC51cmx8fHdlLmhyZWYpKyIiKS5yZXBsYWNlKExlLHdlLnByb3RvY29sKyIvLyIpLHAudHlwZT1lLm1ldGhvZHx8ZS50eXBlfHxwLm1ldGhvZHx8cC50eXBlLHAuZGF0YVR5cGVzPShwLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goeil8fFsiIl0sbnVsbD09cC5jcm9zc0RvbWFpbil7Yz1zLmNyZWF0ZUVsZW1lbnQoImEiKTt0cnl7Yy5ocmVmPXAudXJsLGMuaHJlZj1jLmhyZWYscC5jcm9zc0RvbWFpbj16ZS5wcm90b2NvbCsiLy8iK3plLmhvc3QhPWMucHJvdG9jb2wrIi8vIitjLmhvc3R9Y2F0Y2godCl7cC5jcm9zc0RvbWFpbj0hMH19aWYocC5kYXRhJiZwLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIHAuZGF0YSYmKHAuZGF0YT1NLnBhcmFtKHAuZGF0YSxwLnRyYWRpdGlvbmFsKSksV2UoQmUscCxlLFMpLGgpcmV0dXJuIFM7Zm9yKGQgaW4obD1NLmV2ZW50JiZwLmdsb2JhbCkmJjA9PU0uYWN0aXZlKysmJk0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0IikscC50eXBlPXAudHlwZS50b1VwcGVyQ2FzZSgpLHAuaGFzQ29udGVudD0hSWUudGVzdChwLnR5cGUpLHI9cC51cmwucmVwbGFjZShQZSwiIikscC5oYXNDb250ZW50P3AuZGF0YSYmcC5wcm9jZXNzRGF0YSYmMD09PShwLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihwLmRhdGE9cC5kYXRhLnJlcGxhY2UoT2UsIisiKSk6KGY9cC51cmwuc2xpY2Uoci5sZW5ndGgpLHAuZGF0YSYmKHAucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2YgcC5kYXRhKSYmKHIrPShNZS50ZXN0KHIpPyImIjoiPyIpK3AuZGF0YSxkZWxldGUgcC5kYXRhKSwhMT09PXAuY2FjaGUmJihyPXIucmVwbGFjZShUZSwiJDEiKSxmPShNZS50ZXN0KHIpPyImIjoiPyIpKyJfPSIreGUrKytmKSxwLnVybD1yK2YpLHAuaWZNb2RpZmllZCYmKE0ubGFzdE1vZGlmaWVkW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixNLmxhc3RNb2RpZmllZFtyXSksTS5ldGFnW3JdJiZTLnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLE0uZXRhZ1tyXSkpLChwLmRhdGEmJnAuaGFzQ29udGVudCYmITEhPT1wLmNvbnRlbnRUeXBlfHxlLmNvbnRlbnRUeXBlKSYmUy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHAuY29udGVudFR5cGUpLFMuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixwLmRhdGFUeXBlc1swXSYmcC5hY2NlcHRzW3AuZGF0YVR5cGVzWzBdXT9wLmFjY2VwdHNbcC5kYXRhVHlwZXNbMF1dKygiKiIhPT1wLmRhdGFUeXBlc1swXT8iLCAiK1JlKyI7IHE9MC4wMSI6IiIpOnAuYWNjZXB0c1siKiJdKSxwLmhlYWRlcnMpUy5zZXRSZXF1ZXN0SGVhZGVyKGQscC5oZWFkZXJzW2RdKTtpZihwLmJlZm9yZVNlbmQmJighMT09PXAuYmVmb3JlU2VuZC5jYWxsKG0sUyxwKXx8aCkpcmV0dXJuIFMuYWJvcnQoKTtpZih4PSJhYm9ydCIsYi5hZGQocC5jb21wbGV0ZSksUy5kb25lKHAuc3VjY2VzcyksUy5mYWlsKHAuZXJyb3IpLGk9V2UoRGUscCxlLFMpKXtpZihTLnJlYWR5U3RhdGU9MSxsJiZnLnRyaWdnZXIoImFqYXhTZW5kIixbUyxwXSksaClyZXR1cm4gUztwLmFzeW5jJiZwLnRpbWVvdXQ+MCYmKHU9bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uy5hYm9ydCgidGltZW91dCIpfSxwLnRpbWVvdXQpKTt0cnl7aD0hMSxpLnNlbmQoXyxFKX1jYXRjaCh0KXtpZihoKXRocm93IHQ7RSgtMSx0KX19ZWxzZSBFKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBFKHQsZSxzLGEpe3ZhciBjLGQsZixfLHcseD1lO2h8fChoPSEwLHUmJm4uY2xlYXJUaW1lb3V0KHUpLGk9dm9pZCAwLG89YXx8IiIsUy5yZWFkeVN0YXRlPXQ+MD80OjAsYz10Pj0yMDAmJnQ8MzAwfHwzMDQ9PT10LHMmJihfPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkscixvLHMsYT10LmNvbnRlbnRzLHU9dC5kYXRhVHlwZXM7IioiPT09dVswXTspdS5zaGlmdCgpLHZvaWQgMD09PWkmJihpPXQubWltZVR5cGV8fGUuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihpKWZvcihyIGluIGEpaWYoYVtyXSYmYVtyXS50ZXN0KGkpKXt1LnVuc2hpZnQocik7YnJlYWt9aWYodVswXWluIG4pbz11WzBdO2Vsc2V7Zm9yKHIgaW4gbil7aWYoIXVbMF18fHQuY29udmVydGVyc1tyKyIgIit1WzBdXSl7bz1yO2JyZWFrfXN8fChzPXIpfW89b3x8c31pZihvKXJldHVybiBvIT09dVswXSYmdS51bnNoaWZ0KG8pLG5bb119KHAsUyxzKSksXz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcixvLHMsYSx1LGM9e30saD10LmRhdGFUeXBlcy5zbGljZSgpO2lmKGhbMV0pZm9yKHMgaW4gdC5jb252ZXJ0ZXJzKWNbcy50b0xvd2VyQ2FzZSgpXT10LmNvbnZlcnRlcnNbc107Zm9yKG89aC5zaGlmdCgpO287KWlmKHQucmVzcG9uc2VGaWVsZHNbb10mJihuW3QucmVzcG9uc2VGaWVsZHNbb11dPWUpLCF1JiZpJiZ0LmRhdGFGaWx0ZXImJihlPXQuZGF0YUZpbHRlcihlLHQuZGF0YVR5cGUpKSx1PW8sbz1oLnNoaWZ0KCkpaWYoIioiPT09bylvPXU7ZWxzZSBpZigiKiIhPT11JiZ1IT09byl7aWYoIShzPWNbdSsiICIrb118fGNbIiogIitvXSkpZm9yKHIgaW4gYylpZigoYT1yLnNwbGl0KCIgIikpWzFdPT09byYmKHM9Y1t1KyIgIithWzBdXXx8Y1siKiAiK2FbMF1dKSl7ITA9PT1zP3M9Y1tyXTohMCE9PWNbcl0mJihvPWFbMF0saC51bnNoaWZ0KGFbMV0pKTticmVha31pZighMCE9PXMpaWYocyYmdC50aHJvd3MpZT1zKGUpO2Vsc2UgdHJ5e2U9cyhlKX1jYXRjaCh0KXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpzP3Q6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK3UrIiB0byAiK299fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6ZX19KHAsXyxTLGMpLGM/KHAuaWZNb2RpZmllZCYmKCh3PVMuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSkmJihNLmxhc3RNb2RpZmllZFtyXT13KSwodz1TLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoTS5ldGFnW3JdPXcpKSwyMDQ9PT10fHwiSEVBRCI9PT1wLnR5cGU/eD0ibm9jb250ZW50IjozMDQ9PT10P3g9Im5vdG1vZGlmaWVkIjooeD1fLnN0YXRlLGQ9Xy5kYXRhLGM9IShmPV8uZXJyb3IpKSk6KGY9eCwhdCYmeHx8KHg9ImVycm9yIix0PDAmJih0PTApKSksUy5zdGF0dXM9dCxTLnN0YXR1c1RleHQ9KGV8fHgpKyIiLGM/di5yZXNvbHZlV2l0aChtLFtkLHgsU10pOnYucmVqZWN0V2l0aChtLFtTLHgsZl0pLFMuc3RhdHVzQ29kZSh5KSx5PXZvaWQgMCxsJiZnLnRyaWdnZXIoYz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFtTLHAsYz9kOmZdKSxiLmZpcmVXaXRoKG0sW1MseF0pLGwmJihnLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW1MscF0pLC0tTS5hY3RpdmV8fE0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiBTfSxnZXRKU09OOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTS5nZXQodCxlLG4sImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE0uZ2V0KHQsdm9pZCAwLGUsInNjcmlwdCIpfX0pLE0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbih0LGUpe01bZV09ZnVuY3Rpb24odCxuLGkscil7cmV0dXJuIGIobikmJihyPXJ8fGksaT1uLG49dm9pZCAwKSxNLmFqYXgoTS5leHRlbmQoe3VybDp0LHR5cGU6ZSxkYXRhVHlwZTpyLGRhdGE6bixzdWNjZXNzOml9LE0uaXNQbGFpbk9iamVjdCh0KSYmdCkpfX0pLE0uX2V2YWxVcmw9ZnVuY3Rpb24odCl7cmV0dXJuIE0uYWpheCh7dXJsOnQsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsdGhyb3dzOiEwfSl9LE0uZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzWzBdJiYoYih0KSYmKHQ9dC5jYWxsKHRoaXNbMF0pKSxlPU0odCx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmUuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGUubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXM7dC5maXJzdEVsZW1lbnRDaGlsZDspdD10LmZpcnN0RWxlbWVudENoaWxkO3JldHVybiB0fSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGIodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe00odGhpcykud3JhcElubmVyKHQuY2FsbCh0aGlzLGUpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPU0odGhpcyksbj1lLmNvbnRlbnRzKCk7bi5sZW5ndGg/bi53cmFwQWxsKHQpOmUuYXBwZW5kKHQpfSl9LHdyYXA6ZnVuY3Rpb24odCl7dmFyIGU9Yih0KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe00odGhpcykud3JhcEFsbChlP3QuY2FsbCh0aGlzLG4pOnQpfSl9LHVud3JhcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnQodCkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe00odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSksTS5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKHQpe3JldHVybiFNLmV4cHIucHNldWRvcy52aXNpYmxlKHQpfSxNLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQub2Zmc2V0V2lkdGh8fHQub2Zmc2V0SGVpZ2h0fHx0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX0sTS5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaCh0KXt9fTt2YXIgSGU9ezA6MjAwLDEyMjM6MjA0fSxGZT1NLmFqYXhTZXR0aW5ncy54aHIoKTt2LmNvcnM9ISFGZSYmIndpdGhDcmVkZW50aWFscyJpbiBGZSx2LmFqYXg9RmU9ISFGZSxNLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24odCl7dmFyIGUsaTtpZih2LmNvcnN8fEZlJiYhdC5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihyLG8pe3ZhciBzLGE9dC54aHIoKTtpZihhLm9wZW4odC50eXBlLHQudXJsLHQuYXN5bmMsdC51c2VybmFtZSx0LnBhc3N3b3JkKSx0LnhockZpZWxkcylmb3IocyBpbiB0LnhockZpZWxkcylhW3NdPXQueGhyRmllbGRzW3NdO2ZvcihzIGluIHQubWltZVR5cGUmJmEub3ZlcnJpZGVNaW1lVHlwZSYmYS5vdmVycmlkZU1pbWVUeXBlKHQubWltZVR5cGUpLHQuY3Jvc3NEb21haW58fHJbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KHJbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKSxyKWEuc2V0UmVxdWVzdEhlYWRlcihzLHJbc10pO2U9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZSYmKGU9aT1hLm9ubG9hZD1hLm9uZXJyb3I9YS5vbmFib3J0PWEub250aW1lb3V0PWEub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsImFib3J0Ij09PXQ/YS5hYm9ydCgpOiJlcnJvciI9PT10PyJudW1iZXIiIT10eXBlb2YgYS5zdGF0dXM/bygwLCJlcnJvciIpOm8oYS5zdGF0dXMsYS5zdGF0dXNUZXh0KTpvKEhlW2Euc3RhdHVzXXx8YS5zdGF0dXMsYS5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShhLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBhLnJlc3BvbnNlVGV4dD97YmluYXJ5OmEucmVzcG9uc2V9Ont0ZXh0OmEucmVzcG9uc2VUZXh0fSxhLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fSxhLm9ubG9hZD1lKCksaT1hLm9uZXJyb3I9YS5vbnRpbWVvdXQ9ZSgiZXJyb3IiKSx2b2lkIDAhPT1hLm9uYWJvcnQ/YS5vbmFib3J0PWk6YS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09YS5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlJiZpKCl9KX0sZT1lKCJhYm9ydCIpO3RyeXthLnNlbmQodC5oYXNDb250ZW50JiZ0LmRhdGF8fG51bGwpfWNhdGNoKHQpe2lmKGUpdGhyb3cgdH19LGFib3J0OmZ1bmN0aW9uKCl7ZSYmZSgpfX19KSxNLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24odCl7dC5jcm9zc0RvbWFpbiYmKHQuY29udGVudHMuc2NyaXB0PSExKX0pLE0uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKHQpe3JldHVybiBNLmdsb2JhbEV2YWwodCksdH19fSksTS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQuY2FjaGUmJih0LmNhY2hlPSExKSx0LmNyb3NzRG9tYWluJiYodC50eXBlPSJHRVQiKX0pLE0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbih0KXt2YXIgZSxuO2lmKHQuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oaSxyKXtlPU0oIjxzY3JpcHQ+IikucHJvcCh7Y2hhcnNldDp0LnNjcmlwdENoYXJzZXQsc3JjOnQudXJsfSkub24oImxvYWQgZXJyb3IiLG49ZnVuY3Rpb24odCl7ZS5yZW1vdmUoKSxuPW51bGwsdCYmcigiZXJyb3IiPT09dC50eXBlPzQwNDoyMDAsdC50eXBlKX0pLHMuaGVhZC5hcHBlbmRDaGlsZChlWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtuJiZuKCl9fX0pO3ZhciBWZSxVZT1bXSxLZT0vKD0pXD8oPz0mfCQpfFw/XD8vO00uYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdD1VZS5wb3AoKXx8TS5leHBhbmRvKyJfIit4ZSsrO3JldHVybiB0aGlzW3RdPSEwLHR9fSksTS5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbih0LGUsaSl7dmFyIHIsbyxzLGE9ITEhPT10Lmpzb25wJiYoS2UudGVzdCh0LnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiB0LmRhdGEmJjA9PT0odC5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZLZS50ZXN0KHQuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PXQuZGF0YVR5cGVzWzBdKXJldHVybiByPXQuanNvbnBDYWxsYmFjaz1iKHQuanNvbnBDYWxsYmFjayk/dC5qc29ucENhbGxiYWNrKCk6dC5qc29ucENhbGxiYWNrLGE/dFthXT10W2FdLnJlcGxhY2UoS2UsIiQxIityKTohMSE9PXQuanNvbnAmJih0LnVybCs9KE1lLnRlc3QodC51cmwpPyImIjoiPyIpK3QuanNvbnArIj0iK3IpLHQuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBzfHxNLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLHNbMF19LHQuZGF0YVR5cGVzWzBdPSJqc29uIixvPW5bcl0sbltyXT1mdW5jdGlvbigpe3M9YXJndW1lbnRzfSxpLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PW8/TShuKS5yZW1vdmVQcm9wKHIpOm5bcl09byx0W3JdJiYodC5qc29ucENhbGxiYWNrPWUuanNvbnBDYWxsYmFjayxVZS5wdXNoKHIpKSxzJiZiKG8pJiZvKHNbMF0pLHM9bz12b2lkIDB9KSwic2NyaXB0In0pLHYuY3JlYXRlSFRNTERvY3VtZW50PSgoVmU9cy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1WZS5jaGlsZE5vZGVzLmxlbmd0aCksTS5wYXJzZUhUTUw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgdD9bXTooImJvb2xlYW4iPT10eXBlb2YgZSYmKG49ZSxlPSExKSxlfHwodi5jcmVhdGVIVE1MRG9jdW1lbnQ/KChpPShlPXMuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPXMubG9jYXRpb24uaHJlZixlLmhlYWQuYXBwZW5kQ2hpbGQoaSkpOmU9cyksbz0hbiYmW10sKHI9VC5leGVjKHQpKT9bZS5jcmVhdGVFbGVtZW50KHJbMV0pXToocj13dChbdF0sZSxvKSxvJiZvLmxlbmd0aCYmTShvKS5yZW1vdmUoKSxNLm1lcmdlKFtdLHIuY2hpbGROb2RlcykpKTt2YXIgaSxyLG99LE0uZm4ubG9hZD1mdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHM9dGhpcyxhPXQuaW5kZXhPZigiICIpO3JldHVybiBhPi0xJiYoaT1tZSh0LnNsaWNlKGEpKSx0PXQuc2xpY2UoMCxhKSksYihlKT8obj1lLGU9dm9pZCAwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJihyPSJQT1NUIikscy5sZW5ndGg+MCYmTS5hamF4KHt1cmw6dCx0eXBlOnJ8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmV9KS5kb25lKGZ1bmN0aW9uKHQpe289YXJndW1lbnRzLHMuaHRtbChpP00oIjxkaXY+IikuYXBwZW5kKE0ucGFyc2VIVE1MKHQpKS5maW5kKGkpOnQpfSkuYWx3YXlzKG4mJmZ1bmN0aW9uKHQsZSl7cy5lYWNoKGZ1bmN0aW9uKCl7bi5hcHBseSh0aGlzLG98fFt0LnJlc3BvbnNlVGV4dCxlLHRdKX0pfSksdGhpc30sTS5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24odCxlKXtNLmZuW2VdPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9uKGUsdCl9fSksTS5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIE0uZ3JlcChNLnRpbWVycyxmdW5jdGlvbihlKXtyZXR1cm4gdD09PWUuZWxlbX0pLmxlbmd0aH0sTS5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbih0LGUsbil7dmFyIGkscixvLHMsYSx1LGM9TS5jc3ModCwicG9zaXRpb24iKSxoPU0odCksbD17fTsic3RhdGljIj09PWMmJih0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpLGE9aC5vZmZzZXQoKSxvPU0uY3NzKHQsInRvcCIpLHU9TS5jc3ModCwibGVmdCIpLCgiYWJzb2x1dGUiPT09Y3x8ImZpeGVkIj09PWMpJiYobyt1KS5pbmRleE9mKCJhdXRvIik+LTE/KHM9KGk9aC5wb3NpdGlvbigpKS50b3Ascj1pLmxlZnQpOihzPXBhcnNlRmxvYXQobyl8fDAscj1wYXJzZUZsb2F0KHUpfHwwKSxiKGUpJiYoZT1lLmNhbGwodCxuLE0uZXh0ZW5kKHt9LGEpKSksbnVsbCE9ZS50b3AmJihsLnRvcD1lLnRvcC1hLnRvcCtzKSxudWxsIT1lLmxlZnQmJihsLmxlZnQ9ZS5sZWZ0LWEubGVmdCtyKSwidXNpbmciaW4gZT9lLnVzaW5nLmNhbGwodCxsKTpoLmNzcyhsKX19LE0uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24odCl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihlKXtNLm9mZnNldC5zZXRPZmZzZXQodGhpcyx0LGUpfSk7dmFyIGUsbixpPXRoaXNbMF07cmV0dXJuIGk/aS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49aS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6ZS50b3Arbi5wYWdlWU9mZnNldCxsZWZ0OmUubGVmdCtuLnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH06dm9pZCAwfSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciB0LGUsbixpPXRoaXNbMF0scj17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09TS5jc3MoaSwicG9zaXRpb24iKSllPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZWxzZXtmb3IoZT10aGlzLm9mZnNldCgpLG49aS5vd25lckRvY3VtZW50LHQ9aS5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3QmJih0PT09bi5ib2R5fHx0PT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PU0uY3NzKHQsInBvc2l0aW9uIik7KXQ9dC5wYXJlbnROb2RlO3QmJnQhPT1pJiYxPT09dC5ub2RlVHlwZSYmKChyPU0odCkub2Zmc2V0KCkpLnRvcCs9TS5jc3ModCwiYm9yZGVyVG9wV2lkdGgiLCEwKSxyLmxlZnQrPU0uY3NzKHQsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLXIudG9wLU0uY3NzKGksIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LXIubGVmdC1NLmNzcyhpLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMub2Zmc2V0UGFyZW50O3QmJiJzdGF0aWMiPT09TS5jc3ModCwicG9zaXRpb24iKTspdD10Lm9mZnNldFBhcmVudDtyZXR1cm4gdHx8eHR9KX19KSxNLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24odCxlKXt2YXIgbj0icGFnZVlPZmZzZXQiPT09ZTtNLmZuW3RdPWZ1bmN0aW9uKGkpe3JldHVybiBVKHRoaXMsZnVuY3Rpb24odCxpLHIpe3ZhciBvO2lmKHkodCk/bz10Ojk9PT10Lm5vZGVUeXBlJiYobz10LmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1yKXJldHVybiBvP29bZV06dFtpXTtvP28uc2Nyb2xsVG8obj9vLnBhZ2VYT2Zmc2V0OnIsbj9yOm8ucGFnZVlPZmZzZXQpOnRbaV09cn0sdCxpLGFyZ3VtZW50cy5sZW5ndGgpfX0pLE0uZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbih0LGUpe00uY3NzSG9va3NbZV09VnQodi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKHQsbil7aWYobilyZXR1cm4gbj1GdCh0LGUpLFd0LnRlc3Qobik/TSh0KS5wb3NpdGlvbigpW2VdKyJweCI6bn0pfSksTS5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24odCxlKXtNLmVhY2goe3BhZGRpbmc6ImlubmVyIit0LGNvbnRlbnQ6ZSwiIjoib3V0ZXIiK3R9LGZ1bmN0aW9uKG4saSl7TS5mbltpXT1mdW5jdGlvbihyLG8pe3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgmJihufHwiYm9vbGVhbiIhPXR5cGVvZiByKSxhPW58fCghMD09PXJ8fCEwPT09bz8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFUodGhpcyxmdW5jdGlvbihlLG4scil7dmFyIG87cmV0dXJuIHkoZSk/MD09PWkuaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrdF06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrdF06OT09PWUubm9kZVR5cGU/KG89ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK3RdLG9bInNjcm9sbCIrdF0sZS5ib2R5WyJvZmZzZXQiK3RdLG9bIm9mZnNldCIrdF0sb1siY2xpZW50Iit0XSkpOnZvaWQgMD09PXI/TS5jc3MoZSxuLGEpOk0uc3R5bGUoZSxuLHIsYSl9LGUscz9yOnZvaWQgMCxzKX19KX0pLE0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih0LGUpe00uZm5bZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oZSxudWxsLHQsbik6dGhpcy50cmlnZ2VyKGUpfX0pLE0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIodCkubW91c2VsZWF2ZShlfHx0KX19KSxNLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMub24odCxudWxsLGUsbil9LHVuYmluZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm9mZih0LG51bGwsZSl9LGRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0aGlzLm9uKGUsdCxuLGkpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYodCwiKioiKTp0aGlzLm9mZihlLHR8fCIqKiIsbil9fSksTS5wcm94eT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscjtpZigic3RyaW5nIj09dHlwZW9mIGUmJihuPXRbZV0sZT10LHQ9biksYih0KSlyZXR1cm4gaT11LmNhbGwoYXJndW1lbnRzLDIpLChyPWZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZXx8dGhpcyxpLmNvbmNhdCh1LmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD10Lmd1aWQ9dC5ndWlkfHxNLmd1aWQrKyxyfSxNLmhvbGRSZWFkeT1mdW5jdGlvbih0KXt0P00ucmVhZHlXYWl0Kys6TS5yZWFkeSghMCl9LE0uaXNBcnJheT1BcnJheS5pc0FycmF5LE0ucGFyc2VKU09OPUpTT04ucGFyc2UsTS5ub2RlTmFtZT1QLE0uaXNGdW5jdGlvbj1iLE0uaXNXaW5kb3c9eSxNLmNhbWVsQ2FzZT0kLE0udHlwZT14LE0ubm93PURhdGUubm93LE0uaXNOdW1lcmljPWZ1bmN0aW9uKHQpe3ZhciBlPU0udHlwZSh0KTtyZXR1cm4oIm51bWJlciI9PT1lfHwic3RyaW5nIj09PWUpJiYhaXNOYU4odC1wYXJzZUZsb2F0KHQpKX0sdm9pZCAwPT09KGk9ZnVuY3Rpb24oKXtyZXR1cm4gTX0uYXBwbHkoZSxbXSkpfHwodC5leHBvcnRzPWkpO3ZhciBZZT1uLmpRdWVyeSxYZT1uLiQ7cmV0dXJuIE0ubm9Db25mbGljdD1mdW5jdGlvbih0KXtyZXR1cm4gbi4kPT09TSYmKG4uJD1YZSksdCYmbi5qUXVlcnk9PT1NJiYobi5qUXVlcnk9WWUpLE19LHJ8fChuLmpRdWVyeT1uLiQ9TSksTX0pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDgpO2UudXVpZD1pLnV1aWQsZS5XcmFwcGVkRXJyb3I9aS5XcmFwcGVkRXJyb3IsZS5yZXNvbHZlUHJvbWlzZXNEaWN0PWkucmVzb2x2ZVByb21pc2VzRGljdDt2YXIgcj1uKDgpO2UucmVqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPW5ldyByLldyYXBwZWRFcnJvcih0LG4pO3JldHVybiBlJiZjb25zb2xlLmVycm9yKGkpLFByb21pc2UucmVqZWN0KGkpfX0sZS50eXBlc2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwIT09ZSYmKHQudGV4dENvbnRlbnQ9ZSksdm9pZCAwIT09d2luZG93Lk1hdGhKYXgmJk1hdGhKYXguSHViLlF1ZXVlKFsiVHlwZXNldCIsTWF0aEpheC5IdWIsdF0pfSxlLmVzY2FwZV9odG1sPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnRleHRDb250ZW50PXQsZS5pbm5lckhUTUx9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKTtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIDU1Mjk2PT0oNjQ1MTImdC5jaGFyQ29kZUF0KGUpKSYmKCEoZTwwfHxlKzE+PXQubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZ0LmNoYXJDb2RlQXQoZSsxKSkpfWZ1bmN0aW9uIHModCl7cmV0dXJuKHQ+Pj4yNHx0Pj4+OCY2NTI4MHx0PDw4JjE2NzExNjgwfCgyNTUmdCk8PDI0KT4+PjB9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoPyIwIit0OnR9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gNz09PXQubGVuZ3RoPyIwIit0OjY9PT10Lmxlbmd0aD8iMDAiK3Q6NT09PXQubGVuZ3RoPyIwMDAiK3Q6ND09PXQubGVuZ3RoPyIwMDAwIit0OjM9PT10Lmxlbmd0aD8iMDAwMDAiK3Q6Mj09PXQubGVuZ3RoPyIwMDAwMDAiK3Q6MT09PXQubGVuZ3RoPyIwMDAwMDAwIit0OnR9ZS5pbmhlcml0cz1yLGUudG9BcnJheT1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQuc2xpY2UoKTtpZighdClyZXR1cm5bXTt2YXIgbj1bXTtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYoZSl7aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLHI9MDtyPHQubGVuZ3RoO3IrPTIpbi5wdXNoKHBhcnNlSW50KHRbcl0rdFtyKzFdLDE2KSl9ZWxzZSBmb3IodmFyIGk9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBzPXQuY2hhckNvZGVBdChyKTtzPDEyOD9uW2krK109czpzPDIwNDg/KG5baSsrXT1zPj42fDE5MixuW2krK109NjMmc3wxMjgpOm8odCxyKT8ocz02NTUzNisoKDEwMjMmcyk8PDEwKSsoMTAyMyZ0LmNoYXJDb2RlQXQoKytyKSksbltpKytdPXM+PjE4fDI0MCxuW2krK109cz4+MTImNjN8MTI4LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpOihuW2krK109cz4+MTJ8MjI0LG5baSsrXT1zPj42JjYzfDEyOCxuW2krK109NjMmc3wxMjgpfWVsc2UgZm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluW3JdPTB8dFtyXTtyZXR1cm4gbn0sZS50b0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dC5sZW5ndGg7bisrKWUrPWEodFtuXS50b1N0cmluZygxNikpO3JldHVybiBlfSxlLmh0b25sPXMsZS50b0hleDMyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dFtpXTsibGl0dGxlIj09PWUmJihyPXMocikpLG4rPXUoci50b1N0cmluZygxNikpfXJldHVybiBufSxlLnplcm8yPWEsZS56ZXJvOD11LGUuam9pbjMyPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPW4tZTtpKG8lND09MCk7Zm9yKHZhciBzPW5ldyBBcnJheShvLzQpLGE9MCx1PWU7YTxzLmxlbmd0aDthKyssdSs9NCl7dmFyIGM7Yz0iYmlnIj09PXI/dFt1XTw8MjR8dFt1KzFdPDwxNnx0W3UrMl08PDh8dFt1KzNdOnRbdSszXTw8MjR8dFt1KzJdPDwxNnx0W3UrMV08PDh8dFt1XSxzW2FdPWM+Pj4wfXJldHVybiBzfSxlLnNwbGl0MzI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49bmV3IEFycmF5KDQqdC5sZW5ndGgpLGk9MCxyPTA7aTx0Lmxlbmd0aDtpKysscis9NCl7dmFyIG89dFtpXTsiYmlnIj09PWU/KG5bcl09bz4+PjI0LG5bcisxXT1vPj4+MTYmMjU1LG5bcisyXT1vPj4+OCYyNTUsbltyKzNdPTI1NSZvKToobltyKzNdPW8+Pj4yNCxuW3IrMl09bz4+PjE2JjI1NSxuW3IrMV09bz4+PjgmMjU1LG5bcl09MjU1Jm8pfXJldHVybiBufSxlLnJvdHIzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfSxlLnJvdGwzMj1mdW5jdGlvbih0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfSxlLnN1bTMyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZT4+PjB9LGUuc3VtMzJfMz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQrZStuPj4+MH0sZS5zdW0zMl80PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0K2UrbitpPj4+MH0sZS5zdW0zMl81PWZ1bmN0aW9uKHQsZSxuLGkscil7cmV0dXJuIHQrZStuK2krcj4+PjB9LGUuc3VtNjQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dFtlXSxvPWkrdFtlKzFdPj4+MCxzPShvPGk/MTowKStuK3I7dFtlXT1zPj4+MCx0W2UrMV09b30sZS5zdW02NF9oaT1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4oZStpPj4+MDxlPzE6MCkrdCtuPj4+MH0sZS5zdW02NF9sbz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZStpPj4+MH0sZS5zdW02NF80X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSl7dmFyIHU9MCxjPWU7cmV0dXJuIHUrPShjPWMraT4+PjApPGU/MTowLHUrPShjPWMrbz4+PjApPG8/MTowLHQrbityK3MrKHUrPShjPWMrYT4+PjApPGE/MTowKT4+PjB9LGUuc3VtNjRfNF9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEpe3JldHVybiBlK2krbythPj4+MH0sZS5zdW02NF81X2hpPWZ1bmN0aW9uKHQsZSxuLGkscixvLHMsYSx1LGMpe3ZhciBoPTAsbD1lO3JldHVybiBoKz0obD1sK2k+Pj4wKTxlPzE6MCxoKz0obD1sK28+Pj4wKTxvPzE6MCxoKz0obD1sK2E+Pj4wKTxhPzE6MCx0K24rcitzK3UrKGgrPShsPWwrYz4+PjApPGM/MTowKT4+PjB9LGUuc3VtNjRfNV9sbz1mdW5jdGlvbih0LGUsbixpLHIsbyxzLGEsdSxjKXtyZXR1cm4gZStpK28rYStjPj4+MH0sZS5yb3RyNjRfaGk9ZnVuY3Rpb24odCxlLG4pe3JldHVybihlPDwzMi1ufHQ+Pj5uKT4+PjB9LGUucm90cjY0X2xvPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4odDw8MzItbnxlPj4+bik+Pj4wfSxlLnNocjY0X2hpPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD4+Pm59LGUuc2hyNjRfbG89ZnVuY3Rpb24odCxlLG4pe3JldHVybih0PDwzMi1ufGU+Pj5uKT4+PjB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuaXRlcj90Lml0ZXIoKTpuZXcgcih0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pdGVyPWksZS5lYWNoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9MCxvPWkodCk7dm9pZCAwIT09KG49by5uZXh0KCkpOylpZighMT09PWUobixyKyspKXJldHVybn0sZS5ldmVyeT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyPTAsbz1pKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoIWUobixyKyspKXJldHVybiExO3JldHVybiEwfSxlLnNvbWU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aSh0KTt2b2lkIDAhPT0obj1vLm5leHQoKSk7KWlmKGUobixyKyspKXJldHVybiEwO3JldHVybiExfSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MCxyPVtdLG89aSh0KTt2b2lkIDAhPT0oZT1vLm5leHQoKSk7KXJbbisrXT1lO3JldHVybiByfTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBlPW5ldyB0KHRoaXMuX3NvdXJjZSk7cmV0dXJuIGUuX2luZGV4PXRoaXMuX2luZGV4LGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2luZGV4Pj10aGlzLl9zb3VyY2UubGVuZ3RoKSlyZXR1cm4gdGhpcy5fc291cmNlW3RoaXMuX2luZGV4KytdfSx0fSgpO2UuQXJyYXlJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMjApLHI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixvPWl8fHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7dC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyPXQuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gYSh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2k9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXtpPXN9fSgpO3ZhciB1LGM9W10saD0hMSxsPS0xO2Z1bmN0aW9uIGQoKXtoJiZ1JiYoaD0hMSx1Lmxlbmd0aD9jPXUuY29uY2F0KGMpOmw9LTEsYy5sZW5ndGgmJmYoKSl9ZnVuY3Rpb24gZigpe2lmKCFoKXt2YXIgdD1hKGQpO2g9ITA7Zm9yKHZhciBlPWMubGVuZ3RoO2U7KXtmb3IodT1jLGM9W107KytsPGU7KXUmJnVbbF0ucnVuKCk7bD0tMSxlPWMubGVuZ3RofXU9bnVsbCxoPSExLGZ1bmN0aW9uKHQpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoaT09PXN8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2kodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gaS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIHAodCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBtKCl7fXIubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtjLnB1c2gobmV3IHAodCxlKSksMSE9PWMubGVuZ3RofHxofHxhKGYpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxyLnRpdGxlPSJicm93c2VyIixyLmJyb3dzZXI9ITAsci5lbnY9e30sci5hcmd2PVtdLHIudmVyc2lvbj0iIixyLnZlcnNpb25zPXt9LHIub249bSxyLmFkZExpc3RlbmVyPW0sci5vbmNlPW0sci5vZmY9bSxyLnJlbW92ZUxpc3RlbmVyPW0sci5yZW1vdmVBbGxMaXN0ZW5lcnM9bSxyLmVtaXQ9bSxyLnByZXBlbmRMaXN0ZW5lcj1tLHIucHJlcGVuZE9uY2VMaXN0ZW5lcj1tLHIubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxyLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxyLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sci5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxyLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm0sbz1uKDYzKS5TdHJpbmdEZWNvZGVyO2Z1bmN0aW9uIHModCl7ci5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiB0LHRoaXMuaGFzaE1vZGU/dGhpc1t0XT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1uKDApKHMscikscy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIHQmJih0PWkuZnJvbSh0LGUpKTt2YXIgcj10aGlzLl91cGRhdGUodCk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczoobiYmKHI9dGhpcy5fdG9TdHJpbmcocixuKSkscil9LHMucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKCl7fSxzLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LHMucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0scy5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxzLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaTt0cnl7dGhpcy5oYXNoTW9kZT90aGlzLl91cGRhdGUodCk6dGhpcy5wdXNoKHRoaXMuX3VwZGF0ZSh0KSl9Y2F0Y2godCl7aT10fWZpbmFsbHl7bihpKX19LHMucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbih0KXt2YXIgZTt0cnl7dGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKX1jYXRjaCh0KXtlPXR9dChlKX0scy5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2ZpbmFsKCl8fGkuYWxsb2MoMCk7cmV0dXJuIHQmJihlPXRoaXMuX3RvU3RyaW5nKGUsdCwhMCkpLGV9LHMucHJvdG90eXBlLl90b1N0cmluZz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5fZGVjb2Rlcnx8KHRoaXMuX2RlY29kZXI9bmV3IG8oZSksdGhpcy5fZW5jb2Rpbmc9ZSksdGhpcy5fZW5jb2RpbmchPT1lKXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc3dpdGNoIGVuY29kaW5ncyIpO3ZhciBpPXRoaXMuX2RlY29kZXIud3JpdGUodCk7cmV0dXJuIG4mJihpKz10aGlzLl9kZWNvZGVyLmVuZCgpKSxpfSx0LmV4cG9ydHM9c30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oOSksbz1uKDUpLHM9bigzMCksYT1uKDExKSx1PW4oNyksYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2Rpc3Bvc2VkPSExLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuX2ZpdFBvbGljeT10LmZpdFBvbGljeXx8InNldC1taW4tc2l6ZSJ9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9kaXNwb3NlZD0hMCxhLlNpZ25hbC5jbGVhckRhdGEodGhpcykscy5BdHRhY2hlZFByb3BlcnR5LmNsZWFyRGF0YSh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudH0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3BhcmVudCE9PXQpe2lmKHRoaXMuX3BhcmVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjaGFuZ2UgcGFyZW50IHdpZGdldC4iKTtpZih0LmxheW91dCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHBhcmVudCB3aWRnZXQuIik7dGhpcy5fcGFyZW50PXQsdGhpcy5pbml0KCl9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZml0UG9saWN5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpdFBvbGljeX0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpdFBvbGljeSE9PXQmJih0aGlzLl9maXRQb2xpY3k9dCx0aGlzLl9wYXJlbnQpKXt2YXIgZT10aGlzLl9wYXJlbnQubm9kZS5zdHlsZTtlLm1pbldpZHRoPSIiLGUubWluSGVpZ2h0PSIiLGUubWF4V2lkdGg9IiIsZS5tYXhIZWlnaHQ9IiIsdGhpcy5fcGFyZW50LmZpdCgpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5wcm9jZXNzUGFyZW50TWVzc2FnZT1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlInJlc2l6ZSI6dGhpcy5vblJlc2l6ZSh0KTticmVhaztjYXNlInVwZGF0ZS1yZXF1ZXN0Ijp0aGlzLm9uVXBkYXRlUmVxdWVzdCh0KTticmVhaztjYXNlImZpdC1yZXF1ZXN0Ijp0aGlzLm9uRml0UmVxdWVzdCh0KTticmVhaztjYXNlImJlZm9yZS1zaG93Ijp0aGlzLm9uQmVmb3JlU2hvdyh0KTticmVhaztjYXNlImFmdGVyLXNob3ciOnRoaXMub25BZnRlclNob3codCk7YnJlYWs7Y2FzZSJiZWZvcmUtaGlkZSI6dGhpcy5vbkJlZm9yZUhpZGUodCk7YnJlYWs7Y2FzZSJhZnRlci1oaWRlIjp0aGlzLm9uQWZ0ZXJIaWRlKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWF0dGFjaCI6dGhpcy5vbkJlZm9yZUF0dGFjaCh0KTticmVhaztjYXNlImFmdGVyLWF0dGFjaCI6dGhpcy5vbkFmdGVyQXR0YWNoKHQpO2JyZWFrO2Nhc2UiYmVmb3JlLWRldGFjaCI6dGhpcy5vbkJlZm9yZURldGFjaCh0KTticmVhaztjYXNlImFmdGVyLWRldGFjaCI6dGhpcy5vbkFmdGVyRGV0YWNoKHQpO2JyZWFrO2Nhc2UiY2hpbGQtcmVtb3ZlZCI6dGhpcy5vbkNoaWxkUmVtb3ZlZCh0KTticmVhaztjYXNlImNoaWxkLXNob3duIjp0aGlzLm9uQ2hpbGRTaG93bih0KTticmVhaztjYXNlImNoaWxkLWhpZGRlbiI6dGhpcy5vbkNoaWxkSGlkZGVuKHQpfX0sdC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5wYXJlbnQ9dC5wYXJlbnR9KX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24odCl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9LHQucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpLmVhY2godGhpcyxmdW5jdGlvbih0KXtvLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KX0sdC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJBdHRhY2g9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQmVmb3JlRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkFmdGVyRGV0YWNoPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe28uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJTaG93PWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkJlZm9yZUhpZGU9ZnVuY3Rpb24odCl7aS5lYWNoKHRoaXMsZnVuY3Rpb24oZSl7ZS5pc0hpZGRlbnx8by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHQpfSl9LHQucHJvdG90eXBlLm9uQWZ0ZXJIaWRlPWZ1bmN0aW9uKHQpe2kuZWFjaCh0aGlzLGZ1bmN0aW9uKGUpe2UuaXNIaWRkZW58fG8uTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx0KX0pfSx0LnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldCh0LmNoaWxkKX0sdC5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe30sdC5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt9LHR9KCk7ZS5MYXlvdXQ9YyxmdW5jdGlvbih0KXt0LmdldEhvcml6b250YWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGguaG9yaXpvbnRhbEFsaWdubWVudFByb3BlcnR5LmdldCh0KX0sdC5zZXRIb3Jpem9udGFsQWxpZ25tZW50PWZ1bmN0aW9uKHQsZSl7aC5ob3Jpem9udGFsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGgudmVydGljYWxBbGlnbm1lbnRQcm9wZXJ0eS5nZXQodCl9LHQuc2V0VmVydGljYWxBbGlnbm1lbnQ9ZnVuY3Rpb24odCxlKXtoLnZlcnRpY2FsQWxpZ25tZW50UHJvcGVydHkuc2V0KHQsZSl9fShjPWUuTGF5b3V0fHwoZS5MYXlvdXQ9e30pKSxlLkxheW91dD1jO3ZhciBoLGw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3RvcD1OYU4sdGhpcy5fbGVmdD1OYU4sdGhpcy5fd2lkdGg9TmFOLHRoaXMuX2hlaWdodD1OYU4sdGhpcy5fbWluV2lkdGg9MCx0aGlzLl9taW5IZWlnaHQ9MCx0aGlzLl9tYXhXaWR0aD0xLzAsdGhpcy5fbWF4SGVpZ2h0PTEvMCx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLndpZGdldD10LHRoaXMud2lkZ2V0Lm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaXNwb3NlZCl7dGhpcy5fZGlzcG9zZWQ9ITA7dmFyIHQ9dGhpcy53aWRnZXQubm9kZS5zdHlsZTt0LnBvc2l0aW9uPSIiLHQudG9wPSIiLHQubGVmdD0iIix0LndpZHRoPSIiLHQuaGVpZ2h0PSIifX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtaW5XaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5XaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1pbkhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5IZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJtYXhXaWR0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhXaWR0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1heEhlaWdodCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhIZWlnaHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0Rpc3Bvc2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpc3Bvc2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNIaWRkZW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNIaWRkZW59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuaXNWaXNpYmxlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNBdHRhY2hlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndpZGdldC5pc0F0dGFjaGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZpdD1mdW5jdGlvbigpe3ZhciB0PXIuRWxlbWVudEV4dC5zaXplTGltaXRzKHRoaXMud2lkZ2V0Lm5vZGUpO3RoaXMuX21pbldpZHRoPXQubWluV2lkdGgsdGhpcy5fbWluSGVpZ2h0PXQubWluSGVpZ2h0LHRoaXMuX21heFdpZHRoPXQubWF4V2lkdGgsdGhpcy5fbWF4SGVpZ2h0PXQubWF4SGVpZ2h0fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9TWF0aC5tYXgodGhpcy5fbWluV2lkdGgsTWF0aC5taW4obix0aGlzLl9tYXhXaWR0aCkpLHM9TWF0aC5tYXgodGhpcy5fbWluSGVpZ2h0LE1hdGgubWluKGksdGhpcy5fbWF4SGVpZ2h0KSk7aWYocjxuKXN3aXRjaChjLmdldEhvcml6b250YWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlImxlZnQiOmJyZWFrO2Nhc2UiY2VudGVyIjp0Kz0obi1yKS8yO2JyZWFrO2Nhc2UicmlnaHQiOnQrPW4tcjticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1pZihzPGkpc3dpdGNoKGMuZ2V0VmVydGljYWxBbGlnbm1lbnQodGhpcy53aWRnZXQpKXtjYXNlInRvcCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmUrPShpLXMpLzI7YnJlYWs7Y2FzZSJib3R0b20iOmUrPWktczticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgYT0hMSxoPXRoaXMud2lkZ2V0Lm5vZGUuc3R5bGU7aWYodGhpcy5fdG9wIT09ZSYmKHRoaXMuX3RvcD1lLGgudG9wPWUrInB4IiksdGhpcy5fbGVmdCE9PXQmJih0aGlzLl9sZWZ0PXQsaC5sZWZ0PXQrInB4IiksdGhpcy5fd2lkdGghPT1yJiYoYT0hMCx0aGlzLl93aWR0aD1yLGgud2lkdGg9cisicHgiKSx0aGlzLl9oZWlnaHQhPT1zJiYoYT0hMCx0aGlzLl9oZWlnaHQ9cyxoLmhlaWdodD1zKyJweCIpLGEpe3ZhciBsPW5ldyB1LldpZGdldC5SZXNpemVNZXNzYWdlKHIscyk7by5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLndpZGdldCxsKX19LHR9KCk7ZS5MYXlvdXRJdGVtPWwsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0LnBhcmVudCYmdC5wYXJlbnQubGF5b3V0JiZ0LnBhcmVudC51cGRhdGUoKX10Lmhvcml6b250YWxBbGlnbm1lbnRQcm9wZXJ0eT1uZXcgcy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJob3Jpem9udGFsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4iY2VudGVyIn0sY2hhbmdlZDplfSksdC52ZXJ0aWNhbEFsaWdubWVudFByb3BlcnR5PW5ldyBzLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6InZlcnRpY2FsQWxpZ25tZW50IixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4idG9wIn0sY2hhbmdlZDplfSl9KGh8fChoPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpLGE9bigxNiksdT1uKDU3KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25TdHlsZU1vZGVsIixfbW9kZWxfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246dS5KVVBZVEVSX0NPTlRST0xTX1ZFUlNJT059KX0sZS5zdHlsZVByb3BlcnRpZXM9e2Rlc2NyaXB0aW9uX3dpZHRoOntzZWxlY3RvcjoiLndpZGdldC1sYWJlbCIsYXR0cmlidXRlOiJ3aWR0aCIsZGVmYXVsdDpudWxsfX0sZX0ocy5TdHlsZU1vZGVsKTtlLkRlc2NyaXB0aW9uU3R5bGVNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRGVzY3JpcHRpb25Nb2RlbCIsX3ZpZXdfbmFtZToiRGVzY3JpcHRpb25WaWV3Iixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF9tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLF92aWV3X21vZHVsZV92ZXJzaW9uOnUuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjp1LkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTixkZXNjcmlwdGlvbjoiIixkZXNjcmlwdGlvbl90b29sdGlwOm51bGx9KX0sZX0ocy5ET01XaWRnZXRNb2RlbCk7ZS5EZXNjcmlwdGlvbk1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxhYmVsKSx0aGlzLmxhYmVsLmNsYXNzTmFtZT0id2lkZ2V0LWxhYmVsIix0aGlzLmxhYmVsLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmRlc2NyaXB0aW9uIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpkZXNjcmlwdGlvbl90b29sdGlwIix0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCl9LGUucHJvdG90eXBlLnR5cGVzZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEudHlwZXNldCh0LGUpfSl9LGUucHJvdG90eXBlLnVwZGF0ZURlc2NyaXB0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb25fdG9vbHRpcCIpO251bGw9PT1lJiYoZT10KSwwPT09dC5sZW5ndGg/dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSJub25lIjoodGhpcy5sYWJlbC5pbm5lckhUTUw9dCx0aGlzLnR5cGVzZXQodGhpcy5sYWJlbCksdGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmxhYmVsLnRpdGxlPWV9LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5EZXNjcmlwdGlvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGV9KGgpO2UuTGFiZWxlZERPTVdpZGdldE1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkxhYmVsZWRET01XaWRnZXRWaWV3PWZ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0Mykscj1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciBuIGluIHQpZS5wdXNoKG4pO3JldHVybiBlfTt0LmV4cG9ydHM9bDt2YXIgbz1uKDMyKTtvLmluaGVyaXRzPW4oMCk7dmFyIHM9big4NSksYT1uKDYyKTtvLmluaGVyaXRzKGwscyk7Zm9yKHZhciB1PXIoYS5wcm90b3R5cGUpLGM9MDtjPHUubGVuZ3RoO2MrKyl7dmFyIGg9dVtjXTtsLnByb3RvdHlwZVtoXXx8KGwucHJvdG90eXBlW2hdPWEucHJvdG90eXBlW2hdKX1mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbCh0KTtzLmNhbGwodGhpcyx0KSxhLmNhbGwodGhpcyx0KSx0JiYhMT09PXQucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSx0JiYhMT09PXQud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsdCYmITE9PT10LmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEpLHRoaXMub25jZSgiZW5kIixkKX1mdW5jdGlvbiBkKCl7dGhpcy5hbGxvd0hhbGZPcGVufHx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxpLm5leHRUaWNrKGYsdGhpcyl9ZnVuY3Rpb24gZih0KXt0LmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLnByb3RvdHlwZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQpfSxzZXQ6ZnVuY3Rpb24odCl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXQsdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSksbC5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odCxlKXt0aGlzLnB1c2gobnVsbCksdGhpcy5lbmQoKSxpLm5leHRUaWNrKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4MSksYT1uKDI2KSx1PW4oMjMxKSxjPW4oMjk4KTtlLmRpZmZlcmVuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuLTE9PT1lLmluZGV4T2YodCl9KX0sZS5pc0VxdWFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUodCxlKX0sZS5hc3NpZ249T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgaSBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpJiYodFtpXT1uW2ldKX1yZXR1cm4gdH0sZS51dWlkPWZ1bmN0aW9uKCl7cmV0dXJuIGEuVVVJRC51dWlkNCgpfTt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4saSl7dmFyIHI9dC5jYWxsKHRoaXMsbil8fHRoaXM7cmV0dXJuIGNvbnNvbGUud2FybigiV3JhcHBlZEVycm9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQhIiksci5lcnJvcl9zdGFjaz1pIGluc3RhbmNlb2YgZT9pLmVycm9yX3N0YWNrOltpXSxyLmVycm9yX3N0YWNrLnB1c2gocikscn1yZXR1cm4gcihlLHQpLGV9KEVycm9yKTtlLldyYXBwZWRFcnJvcj1oLGUucmVzb2x2ZVByb21pc2VzRGljdD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyh0KSxuPVtdO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7bi5wdXNoKHRbZV0pfSksUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbihuKXt0PXt9O2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXRbZVtpXV09bltpXTtyZXR1cm4gdH0pfSxlLnJlamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXt0aHJvdyBlJiZjb25zb2xlLmVycm9yKG5ldyBFcnJvcih0KSksbn19LGUucHV0X2J1ZmZlcnM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXtmb3IodmFyIHI9ZVtpXSxvPXQscz0wO3M8ci5sZW5ndGgtMTtzKyspbz1vW3Jbc11dO29bcltyLmxlbmd0aC0xXV09bltpXX19LGUucmVtb3ZlX2J1ZmZlcnM9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1bXTtyZXR1cm57c3RhdGU6ZnVuY3Rpb24gdChpLHIpe2lmKGkudG9KU09OJiYoaT1pLnRvSlNPTigpKSxBcnJheS5pc0FycmF5KGkpKWZvcih2YXIgcz0hMSxhPTA7YTxpLmxlbmd0aDthKyspKGg9aVthXSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9aS5zbGljZSgpLHM9ITApLGUucHVzaChBcnJheUJ1ZmZlci5pc1ZpZXcoaCk/aC5idWZmZXI6aCksbi5wdXNoKHIuY29uY2F0KFthXSkpLGlbYV09bnVsbCk6KGw9dChoLHIuY29uY2F0KFthXSkpKSE9PWgmJihzfHwoaT1pLnNsaWNlKCkscz0hMCksaVthXT1sKSk7ZWxzZSBpZihjKGkpKWZvcih2YXIgdSBpbiBpKXt2YXIgaCxsO3M9ITEsaS5oYXNPd25Qcm9wZXJ0eSh1KSYmKGg9aVt1XSkmJihoIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyLmlzVmlldyhoKT8oc3x8KGk9byh7fSxpKSxzPSEwKSxlLnB1c2goQXJyYXlCdWZmZXIuaXNWaWV3KGgpP2guYnVmZmVyOmgpLG4ucHVzaChyLmNvbmNhdChbdV0pKSxkZWxldGUgaVt1XSk6KGw9dChoLHIuY29uY2F0KFt1XSkpKSE9PWgmJihzfHwoaT1vKHt9LGkpLHM9ITApLGlbdV09bCkpfXJldHVybiBpfSh0LFtdKSxidWZmZXJzOmUsYnVmZmVyX3BhdGhzOm59fTt2YXIgbD1bIjAwIiwiMDEiLCIwMiIsIjAzIiwiMDQiLCIwNSIsIjA2IiwiMDciLCIwOCIsIjA5IiwiMEEiLCIwQiIsIjBDIiwiMEQiLCIwRSIsIjBGIiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyIsIjE4IiwiMTkiLCIxQSIsIjFCIiwiMUMiLCIxRCIsIjFFIiwiMUYiLCIyMCIsIjIxIiwiMjIiLCIyMyIsIjI0IiwiMjUiLCIyNiIsIjI3IiwiMjgiLCIyOSIsIjJBIiwiMkIiLCIyQyIsIjJEIiwiMkUiLCIyRiIsIjMwIiwiMzEiLCIzMiIsIjMzIiwiMzQiLCIzNSIsIjM2IiwiMzciLCIzOCIsIjM5IiwiM0EiLCIzQiIsIjNDIiwiM0QiLCIzRSIsIjNGIiwiNDAiLCI0MSIsIjQyIiwiNDMiLCI0NCIsIjQ1IiwiNDYiLCI0NyIsIjQ4IiwiNDkiLCI0QSIsIjRCIiwiNEMiLCI0RCIsIjRFIiwiNEYiLCI1MCIsIjUxIiwiNTIiLCI1MyIsIjU0IiwiNTUiLCI1NiIsIjU3IiwiNTgiLCI1OSIsIjVBIiwiNUIiLCI1QyIsIjVEIiwiNUUiLCI1RiIsIjYwIiwiNjEiLCI2MiIsIjYzIiwiNjQiLCI2NSIsIjY2IiwiNjciLCI2OCIsIjY5IiwiNkEiLCI2QiIsIjZDIiwiNkQiLCI2RSIsIjZGIiwiNzAiLCI3MSIsIjcyIiwiNzMiLCI3NCIsIjc1IiwiNzYiLCI3NyIsIjc4IiwiNzkiLCI3QSIsIjdCIiwiN0MiLCI3RCIsIjdFIiwiN0YiLCI4MCIsIjgxIiwiODIiLCI4MyIsIjg0IiwiODUiLCI4NiIsIjg3IiwiODgiLCI4OSIsIjhBIiwiOEIiLCI4QyIsIjhEIiwiOEUiLCI4RiIsIjkwIiwiOTEiLCI5MiIsIjkzIiwiOTQiLCI5NSIsIjk2IiwiOTciLCI5OCIsIjk5IiwiOUEiLCI5QiIsIjlDIiwiOUQiLCI5RSIsIjlGIiwiQTAiLCJBMSIsIkEyIiwiQTMiLCJBNCIsIkE1IiwiQTYiLCJBNyIsIkE4IiwiQTkiLCJBQSIsIkFCIiwiQUMiLCJBRCIsIkFFIiwiQUYiLCJCMCIsIkIxIiwiQjIiLCJCMyIsIkI0IiwiQjUiLCJCNiIsIkI3IiwiQjgiLCJCOSIsIkJBIiwiQkIiLCJCQyIsIkJEIiwiQkUiLCJCRiIsIkMwIiwiQzEiLCJDMiIsIkMzIiwiQzQiLCJDNSIsIkM2IiwiQzciLCJDOCIsIkM5IiwiQ0EiLCJDQiIsIkNDIiwiQ0QiLCJDRSIsIkNGIiwiRDAiLCJEMSIsIkQyIiwiRDMiLCJENCIsIkQ1IiwiRDYiLCJENyIsIkQ4IiwiRDkiLCJEQSIsIkRCIiwiREMiLCJERCIsIkRFIiwiREYiLCJFMCIsIkUxIiwiRTIiLCJFMyIsIkU0IiwiRTUiLCJFNiIsIkU3IiwiRTgiLCJFOSIsIkVBIiwiRUIiLCJFQyIsIkVEIiwiRUUiLCJFRiIsIkYwIiwiRjEiLCJGMiIsIkYzIiwiRjQiLCJGNSIsIkY2IiwiRjciLCJGOCIsIkY5IiwiRkEiLCJGQiIsIkZDIiwiRkQiLCJGRSIsIkZGIl07ZS5idWZmZXJUb0hleD1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCksbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspbi5wdXNoKGxbZVtpXV0pO3JldHVybiBuLmpvaW4oIiIpfSxlLmhleFRvQnVmZmVyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aC8yKSxuPTA7bjx0Lmxlbmd0aDtuKz0yKWVbbi8yXT1wYXJzZUludCh0LnNsaWNlKG4sbisyKSwxNik7cmV0dXJuIGUuYnVmZmVyfSxlLmJ1ZmZlclRvQmFzZTY0PWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb21CeXRlQXJyYXkobmV3IFVpbnQ4QXJyYXkodCkpfSxlLmJhc2U2NFRvQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBzLnRvQnl0ZUFycmF5KHQpLmJ1ZmZlcn19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE0MikpLGkobigxNDMpKSxpKG4oMTQ0KSksaShuKDgyKSksaShuKDIyOSkpLGkobigyMzApKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpKXt2YXIgcj1uKDEpLkJ1ZmZlcixvPWUuY3J5cHRvfHxlLm1zQ3J5cHRvO28mJm8uZ2V0UmFuZG9tVmFsdWVzP3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe2lmKHQ+NjU1MzYpdGhyb3cgbmV3IEVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIHM9bmV3IGUuVWludDhBcnJheSh0KTt0PjAmJm8uZ2V0UmFuZG9tVmFsdWVzKHMpO3ZhciBhPXIuZnJvbShzLmJ1ZmZlcik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXtuKG51bGwsYSl9KTtyZXR1cm4gYX06dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSl7dGhpcy5fYmxvY2s9aS5hbGxvYyh0KSx0aGlzLl9maW5hbFNpemU9ZSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9sZW49MH1yLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09dHlwZW9mIHQmJihlPWV8fCJ1dGY4Iix0PWkuZnJvbSh0LGUpKTtmb3IodmFyIG49dGhpcy5fYmxvY2sscj10aGlzLl9ibG9ja1NpemUsbz10Lmxlbmd0aCxzPXRoaXMuX2xlbixhPTA7YTxvOyl7Zm9yKHZhciB1PXMlcixjPU1hdGgubWluKG8tYSxyLXUpLGg9MDtoPGM7aCsrKW5bdStoXT10W2EraF07YSs9Yywocys9Yyklcj09MCYmdGhpcy5fdXBkYXRlKG4pfXJldHVybiB0aGlzLl9sZW4rPW8sdGhpc30sci5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxlKzEpLGU+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIG49OCp0aGlzLl9sZW47aWYobjw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKG4sdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIGk9KDQyOTQ5NjcyOTUmbik+Pj4wLHI9KG4taSkvNDI5NDk2NzI5Njt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKHIsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoaSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgbz10aGlzLl9oYXNoKCk7cmV0dXJuIHQ/by50b1N0cmluZyh0KTpvfSxyLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI0NSkscj1uKDI1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0LGUpO3JldHVybiBpKG4pP246dm9pZCAwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fcGlkPWkubmV4dFBJRCgpLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5fY3JlYXRlPXQuY3JlYXRlLHRoaXMuX2NvZXJjZT10LmNvZXJjZXx8bnVsbCx0aGlzLl9jb21wYXJlPXQuY29tcGFyZXx8bnVsbCx0aGlzLl9jaGFuZ2VkPXQuY2hhbmdlZHx8bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPWkuZW5zdXJlTWFwKHQpO3JldHVybiB0aGlzLl9waWQgaW4gZT9lW3RoaXMuX3BpZF06ZVt0aGlzLl9waWRdPXRoaXMuX2NyZWF0ZVZhbHVlKHQpfSx0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWkuZW5zdXJlTWFwKHQpO249dGhpcy5fcGlkIGluIHI/clt0aGlzLl9waWRdOnJbdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgbz10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsbixyW3RoaXMuX3BpZF09byl9LHQucHJvdG90eXBlLmNvZXJjZT1mdW5jdGlvbih0KXt2YXIgZSxuPWkuZW5zdXJlTWFwKHQpO2U9dGhpcy5fcGlkIGluIG4/blt0aGlzLl9waWRdOm5bdGhpcy5fcGlkXT10aGlzLl9jcmVhdGVWYWx1ZSh0KTt2YXIgcj10aGlzLl9jb2VyY2VWYWx1ZSh0LGUpO3RoaXMuX21heWJlTm90aWZ5KHQsZSxuW3RoaXMuX3BpZF09cil9LHQucHJvdG90eXBlLl9jcmVhdGVWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLl9jcmVhdGUpKHQpfSx0LnByb3RvdHlwZS5fY29lcmNlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb2VyY2U7cmV0dXJuIG4/bih0LGUpOmV9LHQucHJvdG90eXBlLl9jb21wYXJlVmFsdWU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9jb21wYXJlO3JldHVybiBuP24odCxlKTp0PT09ZX0sdC5wcm90b3R5cGUuX21heWJlTm90aWZ5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9jaGFuZ2VkO2kmJiF0aGlzLl9jb21wYXJlVmFsdWUoZSxuKSYmaSh0LGUsbil9LHR9KCk7ZS5BdHRhY2hlZFByb3BlcnR5PXIsZnVuY3Rpb24odCl7dC5jbGVhckRhdGE9ZnVuY3Rpb24odCl7aS5vd25lckRhdGEuZGVsZXRlKHQpfX0ocj1lLkF0dGFjaGVkUHJvcGVydHl8fChlLkF0dGFjaGVkUHJvcGVydHk9e30pKSxlLkF0dGFjaGVkUHJvcGVydHk9cixmdW5jdGlvbih0KXt2YXIgZTt0Lm93bmVyRGF0YT1uZXcgV2Vha01hcCx0Lm5leHRQSUQ9KGU9MCxmdW5jdGlvbigpe3JldHVybiJwaWQtIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMikrIi0iK2UrK30pLHQuZW5zdXJlTWFwPWZ1bmN0aW9uKGUpe3ZhciBuPXQub3duZXJEYXRhLmdldChlKTtyZXR1cm4gbnx8KG49T2JqZWN0LmNyZWF0ZShudWxsKSx0Lm93bmVyRGF0YS5zZXQoZSxuKSxuKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oNTgpLG89big2NCkscz1uKDY1KSxhPW4oMjEpO2Z1bmN0aW9uIHUodCl7YS5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9dH1pKHUsYSksdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sdS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibWQ1Ij09PSh0PXQudG9Mb3dlckNhc2UoKSk/bmV3IHI6InJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/bmV3IG86bmV3IHUocyh0KSl9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1lLmlzQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheSh0KToiW29iamVjdCBBcnJheV0iPT09bih0KX0sZS5pc0Jvb2xlYW49ZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH0sZS5pc051bGw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fSxlLmlzTnVsbE9yVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fSxlLmlzTnVtYmVyPWZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdH0sZS5pc1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9LGUuaXNTeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fSxlLmlzVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10fSxlLmlzUmVnRXhwPWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09bih0KX0sZS5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fSxlLmlzRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1uKHQpfSxlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09PW4odCl8fHQgaW5zdGFuY2VvZiBFcnJvcn0sZS5pc0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxlLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8dm9pZCAwPT09dH0sZS5pc0J1ZmZlcj10LmlzQnVmZmVyfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLHI9bmV3IGUoaSksbz0wO288aTsrK28pcltvXT10W29dXm5bb107cmV0dXJuIHJ9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8oKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfWUuQmxvY2tIYXNoPW8sby5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYodD1pLnRvQXJyYXkodCxlKSx0aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nPXRoaXMucGVuZGluZy5jb25jYXQodCk6dGhpcy5wZW5kaW5nPXQsdGhpcy5wZW5kaW5nVG90YWwrPXQubGVuZ3RoLHRoaXMucGVuZGluZy5sZW5ndGg+PXRoaXMuX2RlbHRhOCl7dmFyIG49KHQ9dGhpcy5wZW5kaW5nKS5sZW5ndGgldGhpcy5fZGVsdGE4O3RoaXMucGVuZGluZz10LnNsaWNlKHQubGVuZ3RoLW4sdC5sZW5ndGgpLDA9PT10aGlzLnBlbmRpbmcubGVuZ3RoJiYodGhpcy5wZW5kaW5nPW51bGwpLHQ9aS5qb2luMzIodCwwLHQubGVuZ3RoLW4sdGhpcy5lbmRpYW4pO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cis9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUodCxyLHIrdGhpcy5fZGVsdGEzMil9cmV0dXJuIHRoaXN9LG8ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy51cGRhdGUodGhpcy5fcGFkKCkpLHIobnVsbD09PXRoaXMucGVuZGluZyksdGhpcy5fZGlnZXN0KHQpfSxvLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wZW5kaW5nVG90YWwsZT10aGlzLl9kZWx0YTgsbj1lLSh0K3RoaXMucGFkTGVuZ3RoKSVlLGk9bmV3IEFycmF5KG4rdGhpcy5wYWRMZW5ndGgpO2lbMF09MTI4O2Zvcih2YXIgcj0xO3I8bjtyKyspaVtyXT0wO2lmKHQ8PD0zLCJiaWciPT09dGhpcy5lbmRpYW4pe2Zvcih2YXIgbz04O288dGhpcy5wYWRMZW5ndGg7bysrKWlbcisrXT0wO2lbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+OCYyNTUsaVtyKytdPTI1NSZ0fWVsc2UgZm9yKGlbcisrXT0yNTUmdCxpW3IrK109dD4+PjgmMjU1LGlbcisrXT10Pj4+MTYmMjU1LGlbcisrXT10Pj4+MjQmMjU1LGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLGlbcisrXT0wLG89ODtvPHRoaXMucGFkTGVuZ3RoO28rKylpW3IrK109MDtyZXR1cm4gaX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuYmlnbnVtPW4oMyksaS5kZWZpbmU9bigyMTApLmRlZmluZSxpLmJhc2U9bigzNiksaS5jb25zdGFudHM9bigxMTEpLGkuZGVjb2RlcnM9bigyMTYpLGkuZW5jb2RlcnM9bigyMTgpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLlJlcG9ydGVyPW4oMjEzKS5SZXBvcnRlcixpLkRlY29kZXJCdWZmZXI9bigxMTApLkRlY29kZXJCdWZmZXIsaS5FbmNvZGVyQnVmZmVyPW4oMTEwKS5FbmNvZGVyQnVmZmVyLGkuTm9kZT1uKDIxNCl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPW4oMjQ2KSxvPW4oMjQ3KSxzPSJbb2JqZWN0IE51bGxdIixhPSJbb2JqZWN0IFVuZGVmaW5lZF0iLHU9aT9pLnRvU3RyaW5nVGFnOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9hOnM6dSYmdSBpbiBPYmplY3QodCk/cih0KTpvKHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDQwKSksaShuKDc2KSksaShuKDMyMikpLGkobigzMjMpKSxpKG4oMzI0KSksaShuKDEzMikpLGkobigzMjUpKSxpKG4oMzI2KSksaShuKDMyNykpLGkobigyMikpLGkobigxMzEpKSxpKG4oMzI4KSksaShuKDU0KSksaShuKDQxKSksaShuKDMyOSkpLGkobigzMzApKSxpKG4oMTMzKSksaShuKDMzMSkpLGkobigxMzQpKSxpKG4oMTM1KSksaShuKDgwKSksaShuKDMzMikpLGkobig3NykpLGkobig3KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zaXplSGludD0wLHRoaXMubWluU2l6ZT0wLHRoaXMubWF4U2l6ZT0xLzAsdGhpcy5zdHJldGNoPTEsdGhpcy5zaXplPTAsdGhpcy5kb25lPSExfX0oKTtlLkJveFNpemVyPWksZnVuY3Rpb24odCl7dC5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5sZW5ndGg7aWYoMD09PW4pcmV0dXJuIGU7Zm9yKHZhciBpPTAscj0wLG89MCxzPTAsYT0wLHU9MDt1PG47Kyt1KXt2YXIgYz0odj10W3VdKS5taW5TaXplLGg9di5tYXhTaXplLGw9di5zaXplSGludDt2LmRvbmU9ITEsdi5zaXplPU1hdGgubWF4KGMsTWF0aC5taW4obCxoKSksbys9di5zaXplLGkrPWMscis9aCx2LnN0cmV0Y2g+MCYmKHMrPXYuc3RyZXRjaCxhKyspfWlmKGU9PT1vKXJldHVybiAwO2lmKGU8PWkpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWluU2l6ZTtyZXR1cm4gZS1pfWlmKGU+PXIpe2Zvcih1PTA7dTxuOysrdSkodj10W3VdKS5zaXplPXYubWF4U2l6ZTtyZXR1cm4gZS1yfXZhciBkPW47aWYoZTxvKXtmb3IodmFyIGY9by1lO2E+MCYmZj4uMDE7KXt2YXIgcD1mLG09cztmb3IodT0wO3U8bjsrK3UpaWYoISh2PXRbdV0pLmRvbmUmJjAhPT12LnN0cmV0Y2gpe3ZhciBnPXYuc3RyZXRjaCpwL207di5zaXplLWc8PXYubWluU2l6ZT8oZi09di5zaXplLXYubWluU2l6ZSxzLT12LnN0cmV0Y2gsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tLGEtLSk6KGYtPWcsdi5zaXplLT1nKX19Zm9yKDtkPjAmJmY+LjAxOylmb3IoZz1mL2QsdT0wO3U8bjsrK3UpKHY9dFt1XSkuZG9uZXx8KHYuc2l6ZS1nPD12Lm1pblNpemU/KGYtPXYuc2l6ZS12Lm1pblNpemUsdi5zaXplPXYubWluU2l6ZSx2LmRvbmU9ITAsZC0tKTooZi09Zyx2LnNpemUtPWcpKX1lbHNle2ZvcihmPWUtbzthPjAmJmY+LjAxOylmb3IocD1mLG09cyx1PTA7dTxuOysrdSkodj10W3VdKS5kb25lfHwwPT09di5zdHJldGNofHwoZz12LnN0cmV0Y2gqcC9tLHYuc2l6ZStnPj12Lm1heFNpemU/KGYtPXYubWF4U2l6ZS12LnNpemUscy09di5zdHJldGNoLHYuc2l6ZT12Lm1heFNpemUsdi5kb25lPSEwLGQtLSxhLS0pOihmLT1nLHYuc2l6ZSs9ZykpO2Zvcig7ZD4wJiZmPi4wMTspZm9yKGc9Zi9kLHU9MDt1PG47Kyt1KXt2YXIgdjsodj10W3VdKS5kb25lfHwodi5zaXplK2c+PXYubWF4U2l6ZT8oZi09di5tYXhTaXplLXYuc2l6ZSx2LnNpemU9di5tYXhTaXplLHYuZG9uZT0hMCxkLS0pOihmLT1nLHYuc2l6ZSs9ZykpfX1yZXR1cm4gMH0sdC5hZGp1c3Q9ZnVuY3Rpb24odCxlLG4pezAhPT10Lmxlbmd0aCYmMCE9PW4mJihuPjA/ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9MDtyPD1lOysrcil7dmFyIG89dFtyXTtpKz1vLm1heFNpemUtby5zaXplfWZvcih2YXIgcz0wLHI9ZSsxLGE9dC5sZW5ndGg7cjxhOysrcil7dmFyIG89dFtyXTtzKz1vLnNpemUtby5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxzKSxyPWU7cj49MCYmdT4wOy0tcil7dmFyIG89dFtyXSxjPW8ubWF4U2l6ZS1vLnNpemU7Yz49dT8oby5zaXplSGludD1vLnNpemUrdSx1PTApOihvLnNpemVIaW50PW8uc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZSsxLGE9dC5sZW5ndGg7cjxhJiZoPjA7KytyKXt2YXIgbz10W3JdLGM9by5zaXplLW8ubWluU2l6ZTtjPj1oPyhvLnNpemVIaW50PW8uc2l6ZS1oLGg9MCk6KG8uc2l6ZUhpbnQ9by5zaXplLWMsaC09Yyl9fSh0LGUsbik6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT0wLHI9ZSsxLG89dC5sZW5ndGg7cjxvOysrcil7dmFyIHM9dFtyXTtpKz1zLm1heFNpemUtcy5zaXplfWZvcih2YXIgYT0wLHI9MDtyPD1lOysrcil7dmFyIHM9dFtyXTthKz1zLnNpemUtcy5taW5TaXplfWZvcih2YXIgdT1uPU1hdGgubWluKG4saSxhKSxyPWUrMSxvPXQubGVuZ3RoO3I8byYmdT4wOysrcil7dmFyIHM9dFtyXSxjPXMubWF4U2l6ZS1zLnNpemU7Yz49dT8ocy5zaXplSGludD1zLnNpemUrdSx1PTApOihzLnNpemVIaW50PXMuc2l6ZStjLHUtPWMpfWZvcih2YXIgaD1uLHI9ZTtyPj0wJiZoPjA7LS1yKXt2YXIgcz10W3JdLGM9cy5zaXplLXMubWluU2l6ZTtjPj1oPyhzLnNpemVIaW50PXMuc2l6ZS1oLGg9MCk6KHMuc2l6ZUhpbnQ9cy5zaXplLWMsaC09Yyl9fSh0LGUsLW4pKX19KGUuQm94RW5naW5lfHwoZS5Cb3hFbmdpbmU9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyKSxzPW4oNSksYT1uKDIyKSx1PW4oNyksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl93aWRnZXRzPVtdLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl93aWRnZXRzLmxlbmd0aD4wOyl0aGlzLl93aWRnZXRzLnBvcCgpLmRpc3Bvc2UoKTt0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gby5pdGVyKHRoaXMuX3dpZGdldHMpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy5fd2lkZ2V0cy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbih0LGUpe2UucGFyZW50PXRoaXMucGFyZW50O3ZhciBuPXRoaXMuX3dpZGdldHMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl93aWRnZXRzLmxlbmd0aCkpO2lmKC0xPT09bilyZXR1cm4gby5BcnJheUV4dC5pbnNlcnQodGhpcy5fd2lkZ2V0cyxpLGUpLHZvaWQodGhpcy5wYXJlbnQmJnRoaXMuYXR0YWNoV2lkZ2V0KGksZSkpO2k9PT10aGlzLl93aWRnZXRzLmxlbmd0aCYmaS0tLG4hPT1pJiYoby5BcnJheUV4dC5tb3ZlKHRoaXMuX3dpZGdldHMsbixpKSx0aGlzLnBhcmVudCYmdGhpcy5tb3ZlV2lkZ2V0KG4saSxlKSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZVdpZGdldEF0KHRoaXMuX3dpZGdldHMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldEF0PWZ1bmN0aW9uKHQpe3ZhciBlPW8uQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fd2lkZ2V0cyx0KTtlJiZ0aGlzLnBhcmVudCYmdGhpcy5kZXRhY2hXaWRnZXQodCxlKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQsbil7ZS5hdHRhY2hXaWRnZXQobix0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnBhcmVudC5ub2RlLmNoaWxkcmVuW3RdO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmluc2VydEJlZm9yZShlLm5vZGUsbiksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLHUuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKG4ubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShuLHUuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCk7dmFyIGk9dGhpcy5wYXJlbnQubm9kZS5jaGlsZHJlbltlXTt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKG4sdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5pbnNlcnRCZWZvcmUobi5ub2RlLGkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2Uobix1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsdS5XaWRnZXQuTXNnLkJlZm9yZURldGFjaCksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSx1LldpZGdldC5Nc2cuQWZ0ZXJEZXRhY2gpfSxlfShhLkxheW91dCk7ZS5QYW5lbExheW91dD1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvO3I9W24oMTUpXSx2b2lkIDA9PT0obz0iZnVuY3Rpb24iPT10eXBlb2YoaT1mdW5jdGlvbih0KXtyZXR1cm4gdC51aT10LnVpfHx7fSx0LnVpLnZlcnNpb249IjEuMTIuMSJ9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUpeyFlLnZlcnNpb258fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjAuIil8fDA9PT1lLnZlcnNpb24uaW5kZXhPZigidjEuIikmJjAhPT1lLnZlcnNpb24uaW5kZXhPZigidjEuOC4iKT90LmV4cG9ydHM9e25leHRUaWNrOmZ1bmN0aW9uKHQsbixpLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYWxsYmFjayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7dmFyIG8scyxhPWFyZ3VtZW50cy5sZW5ndGg7c3dpdGNoKGEpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIGUubmV4dFRpY2sodCk7Y2FzZSAyOnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbil9KTtjYXNlIDM6cmV0dXJuIGUubmV4dFRpY2soZnVuY3Rpb24oKXt0LmNhbGwobnVsbCxuLGkpfSk7Y2FzZSA0OnJldHVybiBlLm5leHRUaWNrKGZ1bmN0aW9uKCl7dC5jYWxsKG51bGwsbixpLHIpfSk7ZGVmYXVsdDpmb3Iobz1uZXcgQXJyYXkoYS0xKSxzPTA7czxvLmxlbmd0aDspb1tzKytdPWFyZ3VtZW50c1tzXTtyZXR1cm4gZS5uZXh0VGljayhmdW5jdGlvbigpe3QuYXBwbHkobnVsbCxvKX0pfX19OnQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0KXt2YXIgaT12b2lkIDAhPT10JiZ0fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHdpbmRvdyxyPUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTtmdW5jdGlvbiBvKHQsZSl7dGhpcy5faWQ9dCx0aGlzLl9jbGVhckZuPWV9ZS5zZXRUaW1lb3V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRUaW1lb3V0LGksYXJndW1lbnRzKSxjbGVhclRpbWVvdXQpfSxlLnNldEludGVydmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvKHIuY2FsbChzZXRJbnRlcnZhbCxpLGFyZ3VtZW50cyksY2xlYXJJbnRlcnZhbCl9LGUuY2xlYXJUaW1lb3V0PWUuY2xlYXJJbnRlcnZhbD1mdW5jdGlvbih0KXt0JiZ0LmNsb3NlKCl9LG8ucHJvdG90eXBlLnVucmVmPW8ucHJvdG90eXBlLnJlZj1mdW5jdGlvbigpe30sby5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckZuLmNhbGwoaSx0aGlzLl9pZCl9LGUuZW5yb2xsPWZ1bmN0aW9uKHQsZSl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PWV9LGUudW5lbnJvbGw9ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PS0xfSxlLl91bnJlZkFjdGl2ZT1lLmFjdGl2ZT1mdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCk7dmFyIGU9dC5faWRsZVRpbWVvdXQ7ZT49MCYmKHQuX2lkbGVUaW1lb3V0SWQ9c2V0VGltZW91dChmdW5jdGlvbigpe3QuX29uVGltZW91dCYmdC5fb25UaW1lb3V0KCl9LGUpKX0sbigxNTApLGUuc2V0SW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5zZXRJbW1lZGlhdGV8fHZvaWQgMCE9PXQmJnQuc2V0SW1tZWRpYXRlfHx0aGlzJiZ0aGlzLnNldEltbWVkaWF0ZSxlLmNsZWFySW1tZWRpYXRlPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jbGVhckltbWVkaWF0ZXx8dm9pZCAwIT09dCYmdC5jbGVhckltbWVkaWF0ZXx8dGhpcyYmdGhpcy5jbGVhckltbWVkaWF0ZX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQpe2kuaXNCdWZmZXIodCl8fCh0PWkuZnJvbSh0KSk7Zm9yKHZhciBlPXQubGVuZ3RoLzR8MCxuPW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXQucmVhZFVJbnQzMkJFKDQqcik7cmV0dXJuIG59ZnVuY3Rpb24gbyh0KXtmb3IoOzA8dC5sZW5ndGg7dCsrKXRbMF09MH1mdW5jdGlvbiBzKHQsZSxuLGkscil7Zm9yKHZhciBvLHMsYSx1LGM9blswXSxoPW5bMV0sbD1uWzJdLGQ9blszXSxmPXRbMF1eZVswXSxwPXRbMV1eZVsxXSxtPXRbMl1eZVsyXSxnPXRbM11eZVszXSx2PTQsYj0xO2I8cjtiKyspbz1jW2Y+Pj4yNF1eaFtwPj4+MTYmMjU1XV5sW20+Pj44JjI1NV1eZFsyNTUmZ11eZVt2KytdLHM9Y1twPj4+MjRdXmhbbT4+PjE2JjI1NV1ebFtnPj4+OCYyNTVdXmRbMjU1JmZdXmVbdisrXSxhPWNbbT4+PjI0XV5oW2c+Pj4xNiYyNTVdXmxbZj4+PjgmMjU1XV5kWzI1NSZwXV5lW3YrK10sdT1jW2c+Pj4yNF1eaFtmPj4+MTYmMjU1XV5sW3A+Pj44JjI1NV1eZFsyNTUmbV1eZVt2KytdLGY9byxwPXMsbT1hLGc9dTtyZXR1cm4gbz0oaVtmPj4+MjRdPDwyNHxpW3A+Pj4xNiYyNTVdPDwxNnxpW20+Pj44JjI1NV08PDh8aVsyNTUmZ10pXmVbdisrXSxzPShpW3A+Pj4yNF08PDI0fGlbbT4+PjE2JjI1NV08PDE2fGlbZz4+PjgmMjU1XTw8OHxpWzI1NSZmXSleZVt2KytdLGE9KGlbbT4+PjI0XTw8MjR8aVtnPj4+MTYmMjU1XTw8MTZ8aVtmPj4+OCYyNTVdPDw4fGlbMjU1JnBdKV5lW3YrK10sdT0oaVtnPj4+MjRdPDwyNHxpW2Y+Pj4xNiYyNTVdPDwxNnxpW3A+Pj44JjI1NV08PDh8aVsyNTUmbV0pXmVbdisrXSxbbz4+Pj0wLHM+Pj49MCxhPj4+PTAsdT4+Pj0wXX12YXIgYT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMjU2KSxlPTA7ZTwyNTY7ZSsrKXRbZV09ZTwxMjg/ZTw8MTplPDwxXjI4Mztmb3IodmFyIG49W10saT1bXSxyPVtbXSxbXSxbXSxbXV0sbz1bW10sW10sW10sW11dLHM9MCxhPTAsdT0wO3U8MjU2OysrdSl7dmFyIGM9YV5hPDwxXmE8PDJeYTw8M15hPDw0O2M9Yz4+PjheMjU1JmNeOTksbltzXT1jLGlbY109czt2YXIgaD10W3NdLGw9dFtoXSxkPXRbbF0sZj0yNTcqdFtjXV4xNjg0MzAwOCpjO3JbMF1bc109Zjw8MjR8Zj4+PjgsclsxXVtzXT1mPDwxNnxmPj4+MTYsclsyXVtzXT1mPDw4fGY+Pj4yNCxyWzNdW3NdPWYsZj0xNjg0MzAwOSpkXjY1NTM3KmxeMjU3KmheMTY4NDMwMDgqcyxvWzBdW2NdPWY8PDI0fGY+Pj44LG9bMV1bY109Zjw8MTZ8Zj4+PjE2LG9bMl1bY109Zjw8OHxmPj4+MjQsb1szXVtjXT1mLDA9PT1zP3M9YT0xOihzPWhedFt0W3RbZF5oXV1dLGFePXRbdFthXV0pfXJldHVybntTQk9YOm4sSU5WX1NCT1g6aSxTVUJfTUlYOnIsSU5WX1NVQl9NSVg6b319KCk7ZnVuY3Rpb24gYyh0KXt0aGlzLl9rZXk9cih0KSx0aGlzLl9yZXNldCgpfWMuYmxvY2tTaXplPTE2LGMua2V5U2l6ZT0zMixjLnByb3RvdHlwZS5ibG9ja1NpemU9Yy5ibG9ja1NpemUsYy5wcm90b3R5cGUua2V5U2l6ZT1jLmtleVNpemUsYy5wcm90b3R5cGUuX3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleSxlPXQubGVuZ3RoLG49ZSs2LGk9NCoobisxKSxyPVtdLG89MDtvPGU7bysrKXJbb109dFtvXTtmb3Iobz1lO288aTtvKyspe3ZhciBzPXJbby0xXTtvJWU9PTA/KHM9czw8OHxzPj4+MjQscz11LlNCT1hbcz4+PjI0XTw8MjR8dS5TQk9YW3M+Pj4xNiYyNTVdPDwxNnx1LlNCT1hbcz4+PjgmMjU1XTw8OHx1LlNCT1hbMjU1JnNdLHNePWFbby9lfDBdPDwyNCk6ZT42JiZvJWU9PTQmJihzPXUuU0JPWFtzPj4+MjRdPDwyNHx1LlNCT1hbcz4+PjE2JjI1NV08PDE2fHUuU0JPWFtzPj4+OCYyNTVdPDw4fHUuU0JPWFsyNTUmc10pLHJbb109cltvLWVdXnN9Zm9yKHZhciBjPVtdLGg9MDtoPGk7aCsrKXt2YXIgbD1pLWgsZD1yW2wtKGglND8wOjQpXTtjW2hdPWg8NHx8bDw9ND9kOnUuSU5WX1NVQl9NSVhbMF1bdS5TQk9YW2Q+Pj4yNF1dXnUuSU5WX1NVQl9NSVhbMV1bdS5TQk9YW2Q+Pj4xNiYyNTVdXV51LklOVl9TVUJfTUlYWzJdW3UuU0JPWFtkPj4+OCYyNTVdXV51LklOVl9TVUJfTUlYWzNdW3UuU0JPWFsyNTUmZF1dfXRoaXMuX25Sb3VuZHM9bix0aGlzLl9rZXlTY2hlZHVsZT1yLHRoaXMuX2ludktleVNjaGVkdWxlPWN9LGMucHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jhdz1mdW5jdGlvbih0KXtyZXR1cm4gcyh0PXIodCksdGhpcy5fa2V5U2NoZWR1bGUsdS5TVUJfTUlYLHUuU0JPWCx0aGlzLl9uUm91bmRzKX0sYy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KHQpLG49aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG4ud3JpdGVVSW50MzJCRShlWzBdLDApLG4ud3JpdGVVSW50MzJCRShlWzFdLDQpLG4ud3JpdGVVSW50MzJCRShlWzJdLDgpLG4ud3JpdGVVSW50MzJCRShlWzNdLDEyKSxufSxjLnByb3RvdHlwZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9cih0KSlbMV07dFsxXT10WzNdLHRbM109ZTt2YXIgbj1zKHQsdGhpcy5faW52S2V5U2NoZWR1bGUsdS5JTlZfU1VCX01JWCx1LklOVl9TQk9YLHRoaXMuX25Sb3VuZHMpLG89aS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG8ud3JpdGVVSW50MzJCRShuWzBdLDApLG8ud3JpdGVVSW50MzJCRShuWzNdLDQpLG8ud3JpdGVVSW50MzJCRShuWzJdLDgpLG8ud3JpdGVVSW50MzJCRShuWzFdLDEyKSxvfSxjLnByb3RvdHlwZS5zY3J1Yj1mdW5jdGlvbigpe28odGhpcy5fa2V5U2NoZWR1bGUpLG8odGhpcy5faW52S2V5U2NoZWR1bGUpLG8odGhpcy5fa2V5KX0sdC5leHBvcnRzLkFFUz1jfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbyl7aWYoaS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsImJpbmFyeSIpKSxlJiYoaS5pc0J1ZmZlcihlKXx8KGU9aS5mcm9tKGUsImJpbmFyeSIpKSw4IT09ZS5sZW5ndGgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBzPW4vOCxhPWkuYWxsb2MocyksdT1pLmFsbG9jKG98fDApLGM9aS5hbGxvYygwKTtzPjB8fG8+MDspe3ZhciBoPW5ldyByO2gudXBkYXRlKGMpLGgudXBkYXRlKHQpLGUmJmgudXBkYXRlKGUpLGM9aC5kaWdlc3QoKTt2YXIgbD0wO2lmKHM+MCl7dmFyIGQ9YS5sZW5ndGgtcztsPU1hdGgubWluKHMsYy5sZW5ndGgpLGMuY29weShhLGQsMCxsKSxzLT1sfWlmKGw8Yy5sZW5ndGgmJm8+MCl7dmFyIGY9dS5sZW5ndGgtbyxwPU1hdGgubWluKG8sYy5sZW5ndGgtbCk7Yy5jb3B5KHUsZixsLGwrcCksby09cH19cmV0dXJuIGMuZmlsbCgwKSx7a2V5OmEsaXY6dX19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC53ZWJwYWNrUG9seWZpbGx8fCh0LmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sdC5wYXRocz1bXSx0LmNoaWxkcmVufHwodC5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0Lml9fSksdC53ZWJwYWNrUG9seWZpbGw9MSksdH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtpLmJhc2U9bigxOTApLGkuc2hvcnQ9bigxOTEpLGkubW9udD1uKDE5MiksaS5lZHdhcmRzPW4oMTkzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDIwOSkscj1uKDIyMSksbz1uKDIyMikscz1uKDY3KSxhPW4oOTQpO2Z1bmN0aW9uIHUodCl7dmFyIG47Im9iamVjdCIhPXR5cGVvZiB0fHxlLmlzQnVmZmVyKHQpfHwobj10LnBhc3NwaHJhc2UsdD10LmtleSksInN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgZSh0KSk7dmFyIHUsYyxoPW8odCxuKSxsPWgudGFnLGQ9aC5kYXRhO3N3aXRjaChsKXtjYXNlIkNFUlRJRklDQVRFIjpjPWkuY2VydGlmaWNhdGUuZGVjb2RlKGQsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKGN8fChjPWkuUHVibGljS2V5LmRlY29kZShkLCJkZXIiKSksdT1jLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGMuc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gYy5zdWJqZWN0UHJpdmF0ZUtleT1jLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixkYXRhOmN9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBjLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5cGU6ImRzYSIsZGF0YTpjLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK3UpfXRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgdHlwZSAiK2wpO2Nhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpkPWZ1bmN0aW9uKHQsbil7dmFyIGk9dC5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsbz1wYXJzZUludCh0LmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCksdT1yW3QuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxjPXQuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLml2LGg9dC5zdWJqZWN0UHJpdmF0ZUtleSxsPXBhcnNlSW50KHUuc3BsaXQoIi0iKVsxXSwxMCkvOCxkPWEucGJrZGYyU3luYyhuLGksbyxsKSxmPXMuY3JlYXRlRGVjaXBoZXJpdih1LGQsYykscD1bXTtyZXR1cm4gcC5wdXNoKGYudXBkYXRlKGgpKSxwLnB1c2goZi5maW5hbCgpKSxlLmNvbmNhdChwKX0oZD1pLkVuY3J5cHRlZFByaXZhdGVLZXkuZGVjb2RlKGQsImRlciIpLG4pO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaCh1PShjPWkuUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Yy5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTppLkVDUHJpdmF0ZUtleS5kZWNvZGUoYy5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIGMuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1pLkRTQXBhcmFtLmRlY29kZShjLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6Yy5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIit1KX10aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitsKTtjYXNlIlJTQSBQVUJMSUMgS0VZIjpyZXR1cm4gaS5SU0FQdWJsaWNLZXkuZGVjb2RlKGQsImRlciIpO2Nhc2UiUlNBIFBSSVZBVEUgS0VZIjpyZXR1cm4gaS5SU0FQcml2YXRlS2V5LmRlY29kZShkLCJkZXIiKTtjYXNlIkRTQSBQUklWQVRFIEtFWSI6cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOmkuRFNBUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIil9O2Nhc2UiRUMgUFJJVkFURSBLRVkiOnJldHVybntjdXJ2ZTooZD1pLkVDUHJpdmF0ZUtleS5kZWNvZGUoZCwiZGVyIikpLnBhcmFtZXRlcnMudmFsdWUscHJpdmF0ZUtleTpkLnByaXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrbCl9fXQuZXhwb3J0cz11LHUuc2lnbmF0dXJlPWkuc2lnbmF0dXJlfSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjM1KSxyPW4oMjM2KSxvPW4oMjM3KSxzPW4oMjM4KSxhPW4oMjM5KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExOCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoaSh0W25dWzBdLGUpKXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjkpKE9iamVjdCwiY3JlYXRlIik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fX2RhdGFfXztyZXR1cm4gaShlKT9uWyJzdHJpbmciPT10eXBlb2YgZT8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDQxKSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1QYW5lbCIpLG4ubGF5b3V0PW8uY3JlYXRlTGF5b3V0KGUpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIndpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuYWRkV2lkZ2V0KHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dC5pbnNlcnRXaWRnZXQodCxlKX0sZX0obig3KS5XaWRnZXQpO2UuUGFuZWw9YSxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyBzLlBhbmVsTGF5b3V0fX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMudHlwZT0idGV4dCIsdGhpcy5jb250ZW50PXR9fSgpO2UuVmlydHVhbFRleHQ9cjt2YXIgbyxzPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnR5cGU9ImVsZW1lbnQiLHRoaXMudGFnPXQsdGhpcy5hdHRycz1lLHRoaXMuY2hpbGRyZW49bn19KCk7ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9e30sbj1bXSxpPTEsbz1hcmd1bWVudHMubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPWFyZ3VtZW50c1tpXTsic3RyaW5nIj09dHlwZW9mIGE/bi5wdXNoKG5ldyByKGEpKTphIGluc3RhbmNlb2Ygcj9uLnB1c2goYSk6YSBpbnN0YW5jZW9mIHM/bi5wdXNoKGEpOmEgaW5zdGFuY2VvZiBBcnJheT91KG4sYSk6MT09PWkmJmEmJiJvYmplY3QiPT10eXBlb2YgYSYmKGU9YSl9cmV0dXJuIG5ldyBzKHQsZSxuKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bisrKXt2YXIgbz1pW25dOyJzdHJpbmciPT10eXBlb2Ygbz90LnB1c2gobmV3IHIobykpOm8gaW5zdGFuY2VvZiByP3QucHVzaChvKTpvIGluc3RhbmNlb2YgcyYmdC5wdXNoKG8pfX19ZS5WaXJ0dWFsRWxlbWVudD1zLGUuaD1hLGZ1bmN0aW9uKHQpe3QuYT10LmJpbmQodm9pZCAwLCJhIiksdC5hYmJyPXQuYmluZCh2b2lkIDAsImFiYnIiKSx0LmFkZHJlc3M9dC5iaW5kKHZvaWQgMCwiYWRkcmVzcyIpLHQuYXJlYT10LmJpbmQodm9pZCAwLCJhcmVhIiksdC5hcnRpY2xlPXQuYmluZCh2b2lkIDAsImFydGljbGUiKSx0LmFzaWRlPXQuYmluZCh2b2lkIDAsImFzaWRlIiksdC5hdWRpbz10LmJpbmQodm9pZCAwLCJhdWRpbyIpLHQuYj10LmJpbmQodm9pZCAwLCJiIiksdC5iZGk9dC5iaW5kKHZvaWQgMCwiYmRpIiksdC5iZG89dC5iaW5kKHZvaWQgMCwiYmRvIiksdC5ibG9ja3F1b3RlPXQuYmluZCh2b2lkIDAsImJsb2NrcXVvdGUiKSx0LmJyPXQuYmluZCh2b2lkIDAsImJyIiksdC5idXR0b249dC5iaW5kKHZvaWQgMCwiYnV0dG9uIiksdC5jYW52YXM9dC5iaW5kKHZvaWQgMCwiY2FudmFzIiksdC5jYXB0aW9uPXQuYmluZCh2b2lkIDAsImNhcHRpb24iKSx0LmNpdGU9dC5iaW5kKHZvaWQgMCwiY2l0ZSIpLHQuY29kZT10LmJpbmQodm9pZCAwLCJjb2RlIiksdC5jb2w9dC5iaW5kKHZvaWQgMCwiY29sIiksdC5jb2xncm91cD10LmJpbmQodm9pZCAwLCJjb2xncm91cCIpLHQuZGF0YT10LmJpbmQodm9pZCAwLCJkYXRhIiksdC5kYXRhbGlzdD10LmJpbmQodm9pZCAwLCJkYXRhbGlzdCIpLHQuZGQ9dC5iaW5kKHZvaWQgMCwiZGQiKSx0LmRlbD10LmJpbmQodm9pZCAwLCJkZWwiKSx0LmRmbj10LmJpbmQodm9pZCAwLCJkZm4iKSx0LmRpdj10LmJpbmQodm9pZCAwLCJkaXYiKSx0LmRsPXQuYmluZCh2b2lkIDAsImRsIiksdC5kdD10LmJpbmQodm9pZCAwLCJkdCIpLHQuZW09dC5iaW5kKHZvaWQgMCwiZW0iKSx0LmVtYmVkPXQuYmluZCh2b2lkIDAsImVtYmVkIiksdC5maWVsZHNldD10LmJpbmQodm9pZCAwLCJmaWVsZHNldCIpLHQuZmlnY2FwdGlvbj10LmJpbmQodm9pZCAwLCJmaWdjYXB0aW9uIiksdC5maWd1cmU9dC5iaW5kKHZvaWQgMCwiZmlndXJlIiksdC5mb290ZXI9dC5iaW5kKHZvaWQgMCwiZm9vdGVyIiksdC5mb3JtPXQuYmluZCh2b2lkIDAsImZvcm0iKSx0LmgxPXQuYmluZCh2b2lkIDAsImgxIiksdC5oMj10LmJpbmQodm9pZCAwLCJoMiIpLHQuaDM9dC5iaW5kKHZvaWQgMCwiaDMiKSx0Lmg0PXQuYmluZCh2b2lkIDAsImg0IiksdC5oNT10LmJpbmQodm9pZCAwLCJoNSIpLHQuaDY9dC5iaW5kKHZvaWQgMCwiaDYiKSx0LmhlYWRlcj10LmJpbmQodm9pZCAwLCJoZWFkZXIiKSx0LmhyPXQuYmluZCh2b2lkIDAsImhyIiksdC5pPXQuYmluZCh2b2lkIDAsImkiKSx0LmlmcmFtZT10LmJpbmQodm9pZCAwLCJpZnJhbWUiKSx0LmltZz10LmJpbmQodm9pZCAwLCJpbWciKSx0LmlucHV0PXQuYmluZCh2b2lkIDAsImlucHV0IiksdC5pbnM9dC5iaW5kKHZvaWQgMCwiaW5zIiksdC5rYmQ9dC5iaW5kKHZvaWQgMCwia2JkIiksdC5sYWJlbD10LmJpbmQodm9pZCAwLCJsYWJlbCIpLHQubGVnZW5kPXQuYmluZCh2b2lkIDAsImxlZ2VuZCIpLHQubGk9dC5iaW5kKHZvaWQgMCwibGkiKSx0Lm1haW49dC5iaW5kKHZvaWQgMCwibWFpbiIpLHQubWFwPXQuYmluZCh2b2lkIDAsIm1hcCIpLHQubWFyaz10LmJpbmQodm9pZCAwLCJtYXJrIiksdC5tZXRlcj10LmJpbmQodm9pZCAwLCJtZXRlciIpLHQubmF2PXQuYmluZCh2b2lkIDAsIm5hdiIpLHQubm9zY3JpcHQ9dC5iaW5kKHZvaWQgMCwibm9zY3JpcHQiKSx0Lm9iamVjdD10LmJpbmQodm9pZCAwLCJvYmplY3QiKSx0Lm9sPXQuYmluZCh2b2lkIDAsIm9sIiksdC5vcHRncm91cD10LmJpbmQodm9pZCAwLCJvcHRncm91cCIpLHQub3B0aW9uPXQuYmluZCh2b2lkIDAsIm9wdGlvbiIpLHQub3V0cHV0PXQuYmluZCh2b2lkIDAsIm91dHB1dCIpLHQucD10LmJpbmQodm9pZCAwLCJwIiksdC5wYXJhbT10LmJpbmQodm9pZCAwLCJwYXJhbSIpLHQucHJlPXQuYmluZCh2b2lkIDAsInByZSIpLHQucHJvZ3Jlc3M9dC5iaW5kKHZvaWQgMCwicHJvZ3Jlc3MiKSx0LnE9dC5iaW5kKHZvaWQgMCwicSIpLHQucnA9dC5iaW5kKHZvaWQgMCwicnAiKSx0LnJ0PXQuYmluZCh2b2lkIDAsInJ0IiksdC5ydWJ5PXQuYmluZCh2b2lkIDAsInJ1YnkiKSx0LnM9dC5iaW5kKHZvaWQgMCwicyIpLHQuc2FtcD10LmJpbmQodm9pZCAwLCJzYW1wIiksdC5zZWN0aW9uPXQuYmluZCh2b2lkIDAsInNlY3Rpb24iKSx0LnNlbGVjdD10LmJpbmQodm9pZCAwLCJzZWxlY3QiKSx0LnNtYWxsPXQuYmluZCh2b2lkIDAsInNtYWxsIiksdC5zb3VyY2U9dC5iaW5kKHZvaWQgMCwic291cmNlIiksdC5zcGFuPXQuYmluZCh2b2lkIDAsInNwYW4iKSx0LnN0cm9uZz10LmJpbmQodm9pZCAwLCJzdHJvbmciKSx0LnN1Yj10LmJpbmQodm9pZCAwLCJzdWIiKSx0LnN1bW1hcnk9dC5iaW5kKHZvaWQgMCwic3VtbWFyeSIpLHQuc3VwPXQuYmluZCh2b2lkIDAsInN1cCIpLHQudGFibGU9dC5iaW5kKHZvaWQgMCwidGFibGUiKSx0LnRib2R5PXQuYmluZCh2b2lkIDAsInRib2R5IiksdC50ZD10LmJpbmQodm9pZCAwLCJ0ZCIpLHQudGV4dGFyZWE9dC5iaW5kKHZvaWQgMCwidGV4dGFyZWEiKSx0LnRmb290PXQuYmluZCh2b2lkIDAsInRmb290IiksdC50aD10LmJpbmQodm9pZCAwLCJ0aCIpLHQudGhlYWQ9dC5iaW5kKHZvaWQgMCwidGhlYWQiKSx0LnRpbWU9dC5iaW5kKHZvaWQgMCwidGltZSIpLHQudGl0bGU9dC5iaW5kKHZvaWQgMCwidGl0bGUiKSx0LnRyPXQuYmluZCh2b2lkIDAsInRyIiksdC50cmFjaz10LmJpbmQodm9pZCAwLCJ0cmFjayIpLHQudT10LmJpbmQodm9pZCAwLCJ1IiksdC51bD10LmJpbmQodm9pZCAwLCJ1bCIpLHQudmFyXz10LmJpbmQodm9pZCAwLCJ2YXIiKSx0LnZpZGVvPXQuYmluZCh2b2lkIDAsInZpZGVvIiksdC53YnI9dC5iaW5kKHZvaWQgMCwid2JyIil9KGE9ZS5ofHwoZS5oPXt9KSksZnVuY3Rpb24odCl7dC5yZWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZURPTU5vZGUodCl9LHQucmVuZGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49by5ob3N0TWFwLmdldChlKXx8W10saT1vLmFzQ29udGVudEFycmF5KHQpO28uaG9zdE1hcC5zZXQoZSxpKSxvLnVwZGF0ZUNvbnRlbnQoZSxuLGkpfX0oZS5WaXJ0dWFsRE9NfHwoZS5WaXJ0dWFsRE9NPXt9KSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtpZigidGV4dCI9PT10LnR5cGUpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQuY29udGVudCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LnRhZyk7IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpIGluIGUpaSBpbiBufHwoIm9uIj09PWkuc3Vic3RyKDAsMik/dFtpXT1lW2ldOnQuc2V0QXR0cmlidXRlKGksZVtpXSkpO3ZvaWQgMCE9PWUuY2xhc3NOYW1lJiZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGUuY2xhc3NOYW1lKTt2b2lkIDAhPT1lLmh0bWxGb3ImJnQuc2V0QXR0cmlidXRlKCJmb3IiLGUuaHRtbEZvcik7ZS5kYXRhc2V0JiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXQuc2V0QXR0cmlidXRlKCJkYXRhLSIrbixlW25dKX0odCxlLmRhdGFzZXQpO2Uuc3R5bGUmJmZ1bmN0aW9uKHQsZSl7dmFyIG4saT10LnN0eWxlO2ZvcihuIGluIGUpaVtuXT1lW25dfSh0LGUuc3R5bGUpfShpLHQuYXR0cnMpO2Zvcih2YXIgcj0wLG89dC5jaGlsZHJlbi5sZW5ndGg7cjxvOysrcilpLmFwcGVuZENoaWxkKGUodC5jaGlsZHJlbltyXSkpO3JldHVybiBpfXQuaG9zdE1hcD1uZXcgV2Vha01hcCx0LmFzQ29udGVudEFycmF5PWZ1bmN0aW9uKHQpe3JldHVybiB0P3QgaW5zdGFuY2VvZiBBcnJheT90Olt0XTpbXX0sdC5jcmVhdGVET01Ob2RlPWUsdC51cGRhdGVDb250ZW50PWZ1bmN0aW9uIHQobixvLHMpe2lmKG8hPT1zKXtmb3IodmFyIGE9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5maXJzdENoaWxkLGk9T2JqZWN0LmNyZWF0ZShudWxsKSxyPTAsbz1lO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdOyJlbGVtZW50Ij09PXMudHlwZSYmcy5hdHRycy5rZXkmJihpW3MuYXR0cnMua2V5XT17dk5vZGU6cyxlbGVtZW50Om59KSxuPW4ubmV4dFNpYmxpbmd9cmV0dXJuIGl9KG4sbyksdT1vLnNsaWNlKCksYz1uLmZpcnN0Q2hpbGQsaD1zLmxlbmd0aCxsPTA7bDxoOysrbClpZihsPj11Lmxlbmd0aCluLmFwcGVuZENoaWxkKGUoc1tsXSkpO2Vsc2V7dmFyIGQ9dVtsXSxmPXNbbF07aWYoZCE9PWYpaWYoInRleHQiIT09ZC50eXBlfHwidGV4dCIhPT1mLnR5cGUpaWYoInRleHQiIT09ZC50eXBlJiYidGV4dCIhPT1mLnR5cGUpe3ZhciBwPWYuYXR0cnMua2V5O2lmKHAmJnAgaW4gYSl7dmFyIG09YVtwXTttLnZOb2RlIT09ZCYmKGkuQXJyYXlFeHQubW92ZSh1LHUuaW5kZXhPZihtLnZOb2RlLGwrMSksbCksbi5pbnNlcnRCZWZvcmUobS5lbGVtZW50LGMpLGQ9bS52Tm9kZSxjPW0uZWxlbWVudCl9aWYoZCE9PWYpe3ZhciBnPWQuYXR0cnMua2V5O2cmJmchPT1wPyhpLkFycmF5RXh0Lmluc2VydCh1LGwsZiksbi5pbnNlcnRCZWZvcmUoZShmKSxjKSk6ZC50YWc9PT1mLnRhZz8ocihjLGQuYXR0cnMsZi5hdHRycyksdChjLGQuY2hpbGRyZW4sZi5jaGlsZHJlbiksYz1jLm5leHRTaWJsaW5nKTooaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYykpfWVsc2UgYz1jLm5leHRTaWJsaW5nfWVsc2UgaS5BcnJheUV4dC5pbnNlcnQodSxsLGYpLG4uaW5zZXJ0QmVmb3JlKGUoZiksYyk7ZWxzZSBjLnRleHRDb250ZW50PWYuY29udGVudCxjPWMubmV4dFNpYmxpbmc7ZWxzZSBjPWMubmV4dFNpYmxpbmd9Zm9yKGw9dS5sZW5ndGgtaDtsPjA7LS1sKW4ucmVtb3ZlQ2hpbGQobi5sYXN0Q2hpbGQpfX07dmFyIG49e2tleTohMCxjbGFzc05hbWU6ITAsaHRtbEZvcjohMCxkYXRhc2V0OiEwLHN0eWxlOiEwfTtmdW5jdGlvbiByKHQsZSxpKXtpZihlIT09aSl7dmFyIHI7Zm9yKHIgaW4gZSlyIGluIG58fHIgaW4gaXx8KCJvbiI9PT1yLnN1YnN0cigwLDIpP3Rbcl09bnVsbDp0LnJlbW92ZUF0dHJpYnV0ZShyKSk7Zm9yKHIgaW4gaSlyIGluIG58fGVbcl09PT1pW3JdfHwoIm9uIj09PXIuc3Vic3RyKDAsMik/dFtyXT1pW3JdOnQuc2V0QXR0cmlidXRlKHIsaVtyXSkpO2UuY2xhc3NOYW1lIT09aS5jbGFzc05hbWUmJih2b2lkIDAhPT1pLmNsYXNzTmFtZT90LnNldEF0dHJpYnV0ZSgiY2xhc3MiLGkuY2xhc3NOYW1lKTp0LnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKSksZS5odG1sRm9yIT09aS5odG1sRm9yJiYodm9pZCAwIT09aS5odG1sRm9yP3Quc2V0QXR0cmlidXRlKCJmb3IiLGkuaHRtbEZvcik6dC5yZW1vdmVBdHRyaWJ1dGUoImZvciIpKSxlLmRhdGFzZXQhPT1pLmRhdGFzZXQmJmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gZSlpIGluIG58fHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLSIraSk7Zm9yKHZhciByIGluIG4pZVtyXSE9PW5bcl0mJnQuc2V0QXR0cmlidXRlKCJkYXRhLSIrcixuW3JdKX0odCxlLmRhdGFzZXR8fHt9LGkuZGF0YXNldHx8e30pLGUuc3R5bGUhPT1pLnN0eWxlJiZmdW5jdGlvbih0LGUsbil7dmFyIGkscj10LnN0eWxlO2ZvcihpIGluIGUpaSBpbiBufHwocltpXT0iIik7Zm9yKGkgaW4gbillW2ldIT09bltpXSYmKHJbaV09bltpXSl9KHQsZS5zdHlsZXx8e30saS5zdHlsZXx8e30pfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9big3OCksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLl9vblNjcm9sbEZyYW1lPWZ1bmN0aW9uKCl7aWYoZS5fc2Nyb2xsVGFyZ2V0KXt2YXIgdD1lLl9zY3JvbGxUYXJnZXQsbj10LmVsZW1lbnQscj10LmVkZ2Usbz10LmRpc3RhbmNlLHM9aS5TQ1JPTExfRURHRV9TSVpFLW8sYT1NYXRoLnBvdyhzL2kuU0NST0xMX0VER0VfU0laRSwyKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZChhKmkuU0NST0xMX0VER0VfU0laRSkpO3N3aXRjaChyKXtjYXNlInRvcCI6bi5zY3JvbGxUb3AtPXU7YnJlYWs7Y2FzZSJsZWZ0IjpuLnNjcm9sbExlZnQtPXU7YnJlYWs7Y2FzZSJyaWdodCI6bi5zY3JvbGxMZWZ0Kz11O2JyZWFrO2Nhc2UiYm90dG9tIjpuLnNjcm9sbFRvcCs9dX1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZS5fb25TY3JvbGxGcmFtZSl9fSx0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9kcm9wQWN0aW9uPSJub25lIix0aGlzLl9vdmVycmlkZT1udWxsLHRoaXMuX2N1cnJlbnRUYXJnZXQ9bnVsbCx0aGlzLl9jdXJyZW50RWxlbWVudD1udWxsLHRoaXMuX3Byb21pc2U9bnVsbCx0aGlzLl9zY3JvbGxUYXJnZXQ9bnVsbCx0aGlzLl9yZXNvbHZlPW51bGwsdGhpcy5taW1lRGF0YT10Lm1pbWVEYXRhLHRoaXMuZHJhZ0ltYWdlPXQuZHJhZ0ltYWdlfHxudWxsLHRoaXMucHJvcG9zZWRBY3Rpb249dC5wcm9wb3NlZEFjdGlvbnx8ImNvcHkiLHRoaXMuc3VwcG9ydGVkQWN0aW9ucz10LnN1cHBvcnRlZEFjdGlvbnN8fCJhbGwiLHRoaXMuc291cmNlPXQuc291cmNlfHxudWxsfXJldHVybiB0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rpc3Bvc2VkKXtpZih0aGlzLl9kaXNwb3NlZD0hMCx0aGlzLl9jdXJyZW50VGFyZ2V0KXt2YXIgdD1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNldXAiLC0xLC0xKTtpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCxudWxsLHQpfXRoaXMuX2ZpbmFsaXplKCJub25lIil9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHRoaXMuX2Rpc3Bvc2VkKXJldHVybiBQcm9taXNlLnJlc29sdmUoIm5vbmUiKTtpZih0aGlzLl9wcm9taXNlKXJldHVybiB0aGlzLl9wcm9taXNlO3RoaXMuX2FkZExpc3RlbmVycygpLHRoaXMuX2F0dGFjaERyYWdJbWFnZSh0LGUpLHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLl9yZXNvbHZlPXR9KTt2YXIgcj1pLmNyZWF0ZU1vdXNlRXZlbnQoIm1vdXNlbW92ZSIsdCxlKTtyZXR1cm4gZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChyKSx0aGlzLl9wcm9taXNlfSx0LnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7ZGVmYXVsdDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHQucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fdXBkYXRlQ3VycmVudFRhcmdldCh0KSx0aGlzLl91cGRhdGVEcmFnU2Nyb2xsKHQpLHRoaXMuX21vdmVEcmFnSW1hZ2UodC5jbGllbnRYLHQuY2xpZW50WSl9LHQucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDA9PT10LmJ1dHRvbilpZih0aGlzLl91cGRhdGVDdXJyZW50VGFyZ2V0KHQpLHRoaXMuX2N1cnJlbnRUYXJnZXQpe2lmKCJub25lIj09PXRoaXMuX2Ryb3BBY3Rpb24pcmV0dXJuIGkuZGlzcGF0Y2hEcmFnTGVhdmUodGhpcyx0aGlzLl9jdXJyZW50VGFyZ2V0LG51bGwsdCksdm9pZCB0aGlzLl9maW5hbGl6ZSgibm9uZSIpO3ZhciBlPWkuZGlzcGF0Y2hEcm9wKHRoaXMsdGhpcy5fY3VycmVudFRhcmdldCx0KTt0aGlzLl9maW5hbGl6ZShlKX1lbHNlIHRoaXMuX2ZpbmFsaXplKCJub25lIil9LHQucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLmRpc3Bvc2UoKX0sdC5wcm90b3R5cGUuX2FkZExpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3JlbW92ZUxpc3RlbmVycz1mdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKX0sdC5wcm90b3R5cGUuX3VwZGF0ZURyYWdTY3JvbGw9ZnVuY3Rpb24odCl7dmFyIGU9aS5maW5kU2Nyb2xsVGFyZ2V0KHQpOyh0aGlzLl9zY3JvbGxUYXJnZXR8fGUpJiYodGhpcy5fc2Nyb2xsVGFyZ2V0fHxzZXRUaW1lb3V0KHRoaXMuX29uU2Nyb2xsRnJhbWUsNTAwKSx0aGlzLl9zY3JvbGxUYXJnZXQ9ZSl9LHQucHJvdG90eXBlLl91cGRhdGVDdXJyZW50VGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2N1cnJlbnRUYXJnZXQsbj10aGlzLl9jdXJyZW50VGFyZ2V0LHI9dGhpcy5fY3VycmVudEVsZW1lbnQsbz1kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHQuY2xpZW50WCx0LmNsaWVudFkpO3RoaXMuX2N1cnJlbnRFbGVtZW50PW8sbyE9PXImJm8hPT1uJiZpLmRpc3BhdGNoRHJhZ0V4aXQodGhpcyxuLG8sdCksbyE9PXImJm8hPT1uJiYobj1pLmRpc3BhdGNoRHJhZ0VudGVyKHRoaXMsbyxuLHQpKSxuIT09ZSYmKHRoaXMuX2N1cnJlbnRUYXJnZXQ9bixpLmRpc3BhdGNoRHJhZ0xlYXZlKHRoaXMsZSxuLHQpKTt2YXIgcz1pLmRpc3BhdGNoRHJhZ092ZXIodGhpcyxuLHQpO3RoaXMuX3NldERyb3BBY3Rpb24ocyl9LHQucHJvdG90eXBlLl9hdHRhY2hEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dGhpcy5kcmFnSW1hZ2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtZHJhZy1pbWFnZSIpO3ZhciBuPXRoaXMuZHJhZ0ltYWdlLnN0eWxlO24ucG9pbnRlckV2ZW50cz0ibm9uZSIsbi5wb3NpdGlvbj0iZml4ZWQiLG4udG9wPWUrInB4IixuLmxlZnQ9dCsicHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kcmFnSW1hZ2UpfX0sdC5wcm90b3R5cGUuX21vdmVEcmFnSW1hZ2U9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmRyYWdJbWFnZSl7dmFyIG49dGhpcy5kcmFnSW1hZ2Uuc3R5bGU7bi50b3A9ZSsicHgiLG4ubGVmdD10KyJweCJ9fSx0LnByb3RvdHlwZS5fZGV0YWNoRHJhZ0ltYWdlPWZ1bmN0aW9uKCl7aWYodGhpcy5kcmFnSW1hZ2Upe3ZhciB0PXRoaXMuZHJhZ0ltYWdlLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzLmRyYWdJbWFnZSl9fSx0LnByb3RvdHlwZS5fc2V0RHJvcEFjdGlvbj1mdW5jdGlvbihlKXtpZihlPWkudmFsaWRhdGVBY3Rpb24oZSx0aGlzLnN1cHBvcnRlZEFjdGlvbnMpLCF0aGlzLl9vdmVycmlkZXx8dGhpcy5fZHJvcEFjdGlvbiE9PWUpc3dpdGNoKGUpe2Nhc2Uibm9uZSI6dGhpcy5fZHJvcEFjdGlvbj1lLHRoaXMuX292ZXJyaWRlPXQub3ZlcnJpZGVDdXJzb3IoIm5vLWRyb3AiKTticmVhaztjYXNlImNvcHkiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJjb3B5Iik7YnJlYWs7Y2FzZSJsaW5rIjp0aGlzLl9kcm9wQWN0aW9uPWUsdGhpcy5fb3ZlcnJpZGU9dC5vdmVycmlkZUN1cnNvcigiYWxpYXMiKTticmVhaztjYXNlIm1vdmUiOnRoaXMuX2Ryb3BBY3Rpb249ZSx0aGlzLl9vdmVycmlkZT10Lm92ZXJyaWRlQ3Vyc29yKCJtb3ZlIil9fSx0LnByb3RvdHlwZS5fZmluYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVzb2x2ZTt0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl9kZXRhY2hEcmFnSW1hZ2UoKSx0aGlzLl9vdmVycmlkZSYmKHRoaXMuX292ZXJyaWRlLmRpc3Bvc2UoKSx0aGlzLl9vdmVycmlkZT1udWxsKSx0aGlzLm1pbWVEYXRhLmNsZWFyKCksdGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5fZHJvcEFjdGlvbj0ibm9uZSIsdGhpcy5fY3VycmVudFRhcmdldD1udWxsLHRoaXMuX2N1cnJlbnRFbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsVGFyZ2V0PW51bGwsdGhpcy5fcHJvbWlzZT1udWxsLHRoaXMuX3Jlc29sdmU9bnVsbCxlJiZlKHQpfSx0fSgpO2UuRHJhZz1vLGZ1bmN0aW9uKHQpe3Qub3ZlcnJpZGVDdXJzb3I9ZnVuY3Rpb24odCl7dmFyIG49KytlO3JldHVybiBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj10LGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgicC1tb2Qtb3ZlcnJpZGUtY3Vyc29yIiksbmV3IHIuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7bj09PWUmJihkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLW92ZXJyaWRlLWN1cnNvciIpKX0pfTt2YXIgZT0wfShvPWUuRHJhZ3x8KGUuRHJhZz17fSkpLGUuRHJhZz1vLGZ1bmN0aW9uKHQpe3QuU0NST0xMX0VER0VfU0laRT0yMCx0LnZhbGlkYXRlQWN0aW9uPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIGVbdF0mbltpXT90OiJub25lIn0sdC5jcmVhdGVNb3VzZUV2ZW50PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO3JldHVybiBpLmluaXRNb3VzZUV2ZW50KHQsITAsITAsd2luZG93LDAsMCwwLGUsbiwhMSwhMSwhMSwhMSwwLG51bGwpLGl9LHQuZmluZFNjcm9sbFRhcmdldD1mdW5jdGlvbihlKXtmb3IodmFyIG49ZS5jbGllbnRYLGk9ZS5jbGllbnRZLHI9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChuLGkpO3I7cj1yLnBhcmVudEVsZW1lbnQpaWYoci5oYXNBdHRyaWJ1dGUoImRhdGEtcC1kcmFnc2Nyb2xsIikpe3ZhciBvPTAscz0wO3I9PT1kb2N1bWVudC5ib2R5JiYobz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQpO3ZhciBhPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1hLnRvcCtzLGM9YS5sZWZ0K28saD1jK2Eud2lkdGgsbD11K2EuaGVpZ2h0O2lmKCEobjxjfHxuPj1ofHxpPHV8fGk+PWwpKXt2YXIgZD1uLWMrMSxmPWktdSsxLHA9aC1uLG09bC1pLGc9TWF0aC5taW4oZCxmLHAsbSk7aWYoIShnPnQuU0NST0xMX0VER0VfU0laRSkpe3ZhciB2PXZvaWQgMDtzd2l0Y2goZyl7Y2FzZSBtOnY9ImJvdHRvbSI7YnJlYWs7Y2FzZSBmOnY9InRvcCI7YnJlYWs7Y2FzZSBwOnY9InJpZ2h0IjticmVhaztjYXNlIGQ6dj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dmFyIGI9ci5zY3JvbGxXaWR0aC1yLmNsaWVudFdpZHRoLHk9ci5zY3JvbGxIZWlnaHQtci5jbGllbnRIZWlnaHQsXz12b2lkIDA7c3dpdGNoKHYpe2Nhc2UidG9wIjpfPXk+MCYmci5zY3JvbGxUb3A+MDticmVhaztjYXNlImxlZnQiOl89Yj4wJiZyLnNjcm9sbExlZnQ+MDticmVhaztjYXNlInJpZ2h0IjpfPWI+MCYmci5zY3JvbGxMZWZ0PGI7YnJlYWs7Y2FzZSJib3R0b20iOl89eT4wJiZyLnNjcm9sbFRvcDx5O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWlmKF8pcmV0dXJue2VsZW1lbnQ6cixlZGdlOnYsZGlzdGFuY2U6Z319fX1yZXR1cm4gbnVsbH0sdC5kaXNwYXRjaERyYWdFbnRlcj1mdW5jdGlvbih0LGUsbixyKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgbz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pO3JldHVybiBlLmRpc3BhdGNoRXZlbnQobyk/ZT09PWRvY3VtZW50LmJvZHk/bjoobz1pKCJwLWRyYWdlbnRlciIsdCxyLG4pLGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChvKSxkb2N1bWVudC5ib2R5KTplfSx0LmRpc3BhdGNoRHJhZ0V4aXQ9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnZXhpdCIsdCxyLG4pO2UuZGlzcGF0Y2hFdmVudChvKX19LHQuZGlzcGF0Y2hEcmFnTGVhdmU9ZnVuY3Rpb24odCxlLG4scil7aWYoZSl7dmFyIG89aSgicC1kcmFnbGVhdmUiLHQscixuKTtlLmRpc3BhdGNoRXZlbnQobyl9fSx0LmRpc3BhdGNoRHJhZ092ZXI9ZnVuY3Rpb24odCxlLG4pe2lmKCFlKXJldHVybiJub25lIjt2YXIgcj1pKCJwLWRyYWdvdmVyIix0LG4sbnVsbCk7cmV0dXJuIGUuZGlzcGF0Y2hFdmVudChyKT8ibm9uZSI6ci5kcm9wQWN0aW9ufSx0LmRpc3BhdGNoRHJvcD1mdW5jdGlvbih0LGUsbil7aWYoIWUpcmV0dXJuIm5vbmUiO3ZhciByPWkoInAtZHJvcCIsdCxuLG51bGwpO3JldHVybiBlLmRpc3BhdGNoRXZlbnQocik/Im5vbmUiOnIuZHJvcEFjdGlvbn07dmFyIGU9e25vbmU6MCxjb3B5OjEsbGluazoyLG1vdmU6NH0sbj17bm9uZTplLm5vbmUsY29weTplLmNvcHksbGluazplLmxpbmssbW92ZTplLm1vdmUsImNvcHktbGluayI6ZS5jb3B5fGUubGluaywiY29weS1tb3ZlIjplLmNvcHl8ZS5tb3ZlLCJsaW5rLW1vdmUiOmUubGlua3xlLm1vdmUsYWxsOmUuY29weXxlLmxpbmt8ZS5tb3ZlfTtmdW5jdGlvbiBpKHQsZSxuLGkpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7cmV0dXJuIHIuaW5pdE1vdXNlRXZlbnQodCwhMCwhMCx3aW5kb3csMCxuLnNjcmVlblgsbi5zY3JlZW5ZLG4uY2xpZW50WCxuLmNsaWVudFksbi5jdHJsS2V5LG4uYWx0S2V5LG4uc2hpZnRLZXksbi5tZXRhS2V5LG4uYnV0dG9uLGkpLHIuZHJvcEFjdGlvbj0ibm9uZSIsci5taW1lRGF0YT1lLm1pbWVEYXRhLHIucHJvcG9zZWRBY3Rpb249ZS5wcm9wb3NlZEFjdGlvbixyLnN1cHBvcnRlZEFjdGlvbnM9ZS5zdXBwb3J0ZWRBY3Rpb25zLHIuc291cmNlPWUuc291cmNlLHJ9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkpVUFlURVJfQ09OVFJPTFNfVkVSU0lPTj0iMS40LjAifSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMCkscj1uKDg0KSxvPW4oMSkuQnVmZmVyLHM9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBhKCl7ci5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX1mdW5jdGlvbiBjKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKGUmbnx+ZSZpKStyK298MCxzKStlfDB9ZnVuY3Rpb24gaCh0LGUsbixpLHIsbyxzKXtyZXR1cm4gdSh0KyhlJml8biZ+aSkrcitvfDAscykrZXwwfWZ1bmN0aW9uIGwodCxlLG4saSxyLG8scyl7cmV0dXJuIHUodCsoZV5uXmkpK3Irb3wwLHMpK2V8MH1mdW5jdGlvbiBkKHQsZSxuLGkscixvLHMpe3JldHVybiB1KHQrKG5eKGV8fmkpKStyK298MCxzKStlfDB9aShhLHIpLGEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9cyxlPTA7ZTwxNjsrK2UpdFtlXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KmUpO3ZhciBuPXRoaXMuX2EsaT10aGlzLl9iLHI9dGhpcy5fYyxvPXRoaXMuX2Q7bj1jKG4saSxyLG8sdFswXSwzNjE0MDkwMzYwLDcpLG89YyhvLG4saSxyLHRbMV0sMzkwNTQwMjcxMCwxMikscj1jKHIsbyxuLGksdFsyXSw2MDYxMDU4MTksMTcpLGk9YyhpLHIsbyxuLHRbM10sMzI1MDQ0MTk2NiwyMiksbj1jKG4saSxyLG8sdFs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLG4saSxyLHRbNV0sMTIwMDA4MDQyNiwxMikscj1jKHIsbyxuLGksdFs2XSwyODIxNzM1OTU1LDE3KSxpPWMoaSxyLG8sbix0WzddLDQyNDkyNjEzMTMsMjIpLG49YyhuLGkscixvLHRbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxuLGkscix0WzldLDIzMzY1NTI4NzksMTIpLHI9YyhyLG8sbixpLHRbMTBdLDQyOTQ5MjUyMzMsMTcpLGk9YyhpLHIsbyxuLHRbMTFdLDIzMDQ1NjMxMzQsMjIpLG49YyhuLGkscixvLHRbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8sbixpLHIsdFsxM10sNDI1NDYyNjE5NSwxMikscj1jKHIsbyxuLGksdFsxNF0sMjc5Mjk2NTAwNiwxNyksbj1oKG4saT1jKGkscixvLG4sdFsxNV0sMTIzNjUzNTMyOSwyMikscixvLHRbMV0sNDEyOTE3MDc4Niw1KSxvPWgobyxuLGkscix0WzZdLDMyMjU0NjU2NjQsOSkscj1oKHIsbyxuLGksdFsxMV0sNjQzNzE3NzEzLDE0KSxpPWgoaSxyLG8sbix0WzBdLDM5MjEwNjk5OTQsMjApLG49aChuLGkscixvLHRbNV0sMzU5MzQwODYwNSw1KSxvPWgobyxuLGkscix0WzEwXSwzODAxNjA4Myw5KSxyPWgocixvLG4saSx0WzE1XSwzNjM0NDg4OTYxLDE0KSxpPWgoaSxyLG8sbix0WzRdLDM4ODk0Mjk0NDgsMjApLG49aChuLGkscixvLHRbOV0sNTY4NDQ2NDM4LDUpLG89aChvLG4saSxyLHRbMTRdLDMyNzUxNjM2MDYsOSkscj1oKHIsbyxuLGksdFszXSw0MTA3NjAzMzM1LDE0KSxpPWgoaSxyLG8sbix0WzhdLDExNjM1MzE1MDEsMjApLG49aChuLGkscixvLHRbMTNdLDI4NTAyODU4MjksNSksbz1oKG8sbixpLHIsdFsyXSw0MjQzNTYzNTEyLDkpLHI9aChyLG8sbixpLHRbN10sMTczNTMyODQ3MywxNCksbj1sKG4saT1oKGkscixvLG4sdFsxMl0sMjM2ODM1OTU2MiwyMCkscixvLHRbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxuLGkscix0WzhdLDIyNzIzOTI4MzMsMTEpLHI9bChyLG8sbixpLHRbMTFdLDE4MzkwMzA1NjIsMTYpLGk9bChpLHIsbyxuLHRbMTRdLDQyNTk2NTc3NDAsMjMpLG49bChuLGkscixvLHRbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxuLGkscix0WzRdLDEyNzI4OTMzNTMsMTEpLHI9bChyLG8sbixpLHRbN10sNDEzOTQ2OTY2NCwxNiksaT1sKGkscixvLG4sdFsxMF0sMzIwMDIzNjY1NiwyMyksbj1sKG4saSxyLG8sdFsxM10sNjgxMjc5MTc0LDQpLG89bChvLG4saSxyLHRbMF0sMzkzNjQzMDA3NCwxMSkscj1sKHIsbyxuLGksdFszXSwzNTcyNDQ1MzE3LDE2KSxpPWwoaSxyLG8sbix0WzZdLDc2MDI5MTg5LDIzKSxuPWwobixpLHIsbyx0WzldLDM2NTQ2MDI4MDksNCksbz1sKG8sbixpLHIsdFsxMl0sMzg3MzE1MTQ2MSwxMSkscj1sKHIsbyxuLGksdFsxNV0sNTMwNzQyNTIwLDE2KSxuPWQobixpPWwoaSxyLG8sbix0WzJdLDMyOTk2Mjg2NDUsMjMpLHIsbyx0WzBdLDQwOTYzMzY0NTIsNiksbz1kKG8sbixpLHIsdFs3XSwxMTI2ODkxNDE1LDEwKSxyPWQocixvLG4saSx0WzE0XSwyODc4NjEyMzkxLDE1KSxpPWQoaSxyLG8sbix0WzVdLDQyMzc1MzMyNDEsMjEpLG49ZChuLGkscixvLHRbMTJdLDE3MDA0ODU1NzEsNiksbz1kKG8sbixpLHIsdFszXSwyMzk5OTgwNjkwLDEwKSxyPWQocixvLG4saSx0WzEwXSw0MjkzOTE1NzczLDE1KSxpPWQoaSxyLG8sbix0WzFdLDIyNDAwNDQ0OTcsMjEpLG49ZChuLGkscixvLHRbOF0sMTg3MzMxMzM1OSw2KSxvPWQobyxuLGkscix0WzE1XSw0MjY0MzU1NTUyLDEwKSxyPWQocixvLG4saSx0WzZdLDI3MzQ3Njg5MTYsMTUpLGk9ZChpLHIsbyxuLHRbMTNdLDEzMDkxNTE2NDksMjEpLG49ZChuLGkscixvLHRbNF0sNDE0OTQ0NDIyNiw2KSxvPWQobyxuLGkscix0WzExXSwzMTc0NzU2OTE3LDEwKSxyPWQocixvLG4saSx0WzJdLDcxODc4NzI1OSwxNSksaT1kKGkscixvLG4sdFs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErbnwwLHRoaXMuX2I9dGhpcy5fYitpfDAsdGhpcy5fYz10aGlzLl9jK3J8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxhLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIHQ9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIHQud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksdC53cml0ZUludDMyTEUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLHR9LHQuZXhwb3J0cz1hfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPXI7dmFyIGk9big2MCkuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIHIoKXtpLmNhbGwodGhpcyl9bigwKShyLGkpLHIuUmVhZGFibGU9big2MSksci5Xcml0YWJsZT1uKDE1Myksci5EdXBsZXg9bigxNTQpLHIuVHJhbnNmb3JtPW4oMTU1KSxyLlBhc3NUaHJvdWdoPW4oMTU2KSxyLlN0cmVhbT1yLHIucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoZSl7dC53cml0YWJsZSYmITE9PT10LndyaXRlKGUpJiZuLnBhdXNlJiZuLnBhdXNlKCl9ZnVuY3Rpb24gbygpe24ucmVhZGFibGUmJm4ucmVzdW1lJiZuLnJlc3VtZSgpfW4ub24oImRhdGEiLHIpLHQub24oImRyYWluIixvKSx0Ll9pc1N0ZGlvfHxlJiYhMT09PWUuZW5kfHwobi5vbigiZW5kIixhKSxuLm9uKCJjbG9zZSIsdSkpO3ZhciBzPSExO2Z1bmN0aW9uIGEoKXtzfHwocz0hMCx0LmVuZCgpKX1mdW5jdGlvbiB1KCl7c3x8KHM9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVzdHJveSYmdC5kZXN0cm95KCkpfWZ1bmN0aW9uIGModCl7aWYoaCgpLDA9PT1pLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyB0fWZ1bmN0aW9uIGgoKXtuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixyKSx0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIixhKSxuLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksbi5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxuLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGgpLG4ucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixoKSx0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsaCl9cmV0dXJuIG4ub24oImVycm9yIixjKSx0Lm9uKCJlcnJvciIsYyksbi5vbigiZW5kIixoKSxuLm9uKCJjbG9zZSIsaCksdC5vbigiY2xvc2UiLGgpLHQuZW1pdCgicGlwZSIsbiksdH19LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuX2V2ZW50cz10aGlzLl9ldmVudHN8fHt9LHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH1mdW5jdGlvbiBpKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBvKHQpe3JldHVybiB2b2lkIDA9PT10fXQuZXhwb3J0cz1uLG4uRXZlbnRFbWl0dGVyPW4sbi5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsbi5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDAsbi5kZWZhdWx0TWF4TGlzdGVuZXJzPTEwLG4ucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8aXNOYU4odCkpdGhyb3cgVHlwZUVycm9yKCJuIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt2YXIgZSxuLHMsYSx1LGM7aWYodGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSwiZXJyb3IiPT09dCYmKCF0aGlzLl9ldmVudHMuZXJyb3J8fHIodGhpcy5fZXZlbnRzLmVycm9yKSYmIXRoaXMuX2V2ZW50cy5lcnJvci5sZW5ndGgpKXtpZigoZT1hcmd1bWVudHNbMV0paW5zdGFuY2VvZiBFcnJvcil0aHJvdyBlO3ZhciBoPW5ldyBFcnJvcignVW5jYXVnaHQsIHVuc3BlY2lmaWVkICJlcnJvciIgZXZlbnQuICgnK2UrIikiKTt0aHJvdyBoLmNvbnRleHQ9ZSxofWlmKG8obj10aGlzLl9ldmVudHNbdF0pKXJldHVybiExO2lmKGkobikpc3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTpuLmNhbGwodGhpcyk7YnJlYWs7Y2FzZSAyOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSk7YnJlYWs7Y2FzZSAzOm4uY2FsbCh0aGlzLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0pO2JyZWFrO2RlZmF1bHQ6YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbi5hcHBseSh0aGlzLGEpfWVsc2UgaWYocihuKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscz0oYz1uLnNsaWNlKCkpLmxlbmd0aCx1PTA7dTxzO3UrKyljW3VdLmFwcGx5KHRoaXMsYSk7cmV0dXJuITB9LG4ucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHM7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4gdGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSx0aGlzLl9ldmVudHMubmV3TGlzdGVuZXImJnRoaXMuZW1pdCgibmV3TGlzdGVuZXIiLHQsaShlLmxpc3RlbmVyKT9lLmxpc3RlbmVyOmUpLHRoaXMuX2V2ZW50c1t0XT9yKHRoaXMuX2V2ZW50c1t0XSk/dGhpcy5fZXZlbnRzW3RdLnB1c2goZSk6dGhpcy5fZXZlbnRzW3RdPVt0aGlzLl9ldmVudHNbdF0sZV06dGhpcy5fZXZlbnRzW3RdPWUscih0aGlzLl9ldmVudHNbdF0pJiYhdGhpcy5fZXZlbnRzW3RdLndhcm5lZCYmKHM9byh0aGlzLl9tYXhMaXN0ZW5lcnMpP24uZGVmYXVsdE1heExpc3RlbmVyczp0aGlzLl9tYXhMaXN0ZW5lcnMpJiZzPjAmJnRoaXMuX2V2ZW50c1t0XS5sZW5ndGg+cyYmKHRoaXMuX2V2ZW50c1t0XS53YXJuZWQ9ITAsY29uc29sZS5lcnJvcigiKG5vZGUpIHdhcm5pbmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4iLHRoaXMuX2V2ZW50c1t0XS5sZW5ndGgpLCJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLnRyYWNlJiZjb25zb2xlLnRyYWNlKCkpLHRoaXN9LG4ucHJvdG90eXBlLm9uPW4ucHJvdG90eXBlLmFkZExpc3RlbmVyLG4ucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odCxlKXtpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBuPSExO2Z1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUxpc3RlbmVyKHQsciksbnx8KG49ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXJldHVybiByLmxpc3RlbmVyPWUsdGhpcy5vbih0LHIpLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxzLGE7aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtpZighdGhpcy5fZXZlbnRzfHwhdGhpcy5fZXZlbnRzW3RdKXJldHVybiB0aGlzO2lmKHM9KG49dGhpcy5fZXZlbnRzW3RdKS5sZW5ndGgsbz0tMSxuPT09ZXx8aShuLmxpc3RlbmVyKSYmbi5saXN0ZW5lcj09PWUpZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsZSk7ZWxzZSBpZihyKG4pKXtmb3IoYT1zO2EtLSA+MDspaWYoblthXT09PWV8fG5bYV0ubGlzdGVuZXImJm5bYV0ubGlzdGVuZXI9PT1lKXtvPWE7YnJlYWt9aWYobzwwKXJldHVybiB0aGlzOzE9PT1uLmxlbmd0aD8obi5sZW5ndGg9MCxkZWxldGUgdGhpcy5fZXZlbnRzW3RdKTpuLnNwbGljZShvLDEpLHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxlKX1yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLG47aWYoIXRoaXMuX2V2ZW50cylyZXR1cm4gdGhpcztpZighdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9ldmVudHM9e306dGhpcy5fZXZlbnRzW3RdJiZkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe2ZvcihlIGluIHRoaXMuX2V2ZW50cykicmVtb3ZlTGlzdGVuZXIiIT09ZSYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoZSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz17fSx0aGlzfWlmKGkobj10aGlzLl9ldmVudHNbdF0pKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxuKTtlbHNlIGlmKG4pZm9yKDtuLmxlbmd0aDspdGhpcy5yZW1vdmVMaXN0ZW5lcih0LG5bbi5sZW5ndGgtMV0pO3JldHVybiBkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHNbdF0/aSh0aGlzLl9ldmVudHNbdF0pP1t0aGlzLl9ldmVudHNbdF1dOnRoaXMuX2V2ZW50c1t0XS5zbGljZSgpOltdfSxuLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2V2ZW50cyl7dmFyIGU9dGhpcy5fZXZlbnRzW3RdO2lmKGkoZSkpcmV0dXJuIDE7aWYoZSlyZXR1cm4gZS5sZW5ndGh9cmV0dXJuIDB9LG4ubGlzdGVuZXJDb3VudD1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxpc3RlbmVyQ291bnQoZSl9fSxmdW5jdGlvbih0LGUsbil7KGU9dC5leHBvcnRzPW4oODUpKS5TdHJlYW09ZSxlLlJlYWRhYmxlPWUsZS5Xcml0YWJsZT1uKDYyKSxlLkR1cGxleD1uKDI0KSxlLlRyYW5zZm9ybT1uKDg4KSxlLlBhc3NUaHJvdWdoPW4oMTUyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSxpLHIpe3ZhciBvPW4oNDMpO2Z1bmN0aW9uIHModCl7dmFyIGU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuZW50cnk7dC5lbnRyeT1udWxsO2Zvcig7aTspe3ZhciByPWkuY2FsbGJhY2s7ZS5wZW5kaW5nY2ItLSxyKG4pLGk9aS5uZXh0fWUuY29ya2VkUmVxdWVzdHNGcmVlP2UuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9dDplLmNvcmtlZFJlcXVlc3RzRnJlZT10fShlLHQpfX10LmV4cG9ydHM9Yjt2YXIgYSx1PSFlLmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YoZS52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP2k6by5uZXh0VGljaztiLldyaXRhYmxlU3RhdGU9djt2YXIgYz1uKDMyKTtjLmluaGVyaXRzPW4oMCk7dmFyIGg9e2RlcHJlY2F0ZTpuKDE1MSl9LGw9big4NiksZD1uKDEpLkJ1ZmZlcixmPXIuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBwLG09big4Nyk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KHQsZSl7YT1hfHxuKDI0KSx0PXR8fHt9O3ZhciBpPWUgaW5zdGFuY2VvZiBhO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLGM9dC53cml0YWJsZUhpZ2hXYXRlck1hcmssaD10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKGN8fDA9PT1jKT9jOmgsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PXQuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe3ZhciBuPXQuX3dyaXRhYmxlU3RhdGUsaT1uLnN5bmMscj1uLndyaXRlY2I7aWYoZnVuY3Rpb24odCl7dC53cml0aW5nPSExLHQud3JpdGVjYj1udWxsLHQubGVuZ3RoLT10LndyaXRlbGVuLHQud3JpdGVsZW49MH0obiksZSkhZnVuY3Rpb24odCxlLG4saSxyKXstLWUucGVuZGluZ2NiLG4/KG8ubmV4dFRpY2socixpKSxvLm5leHRUaWNrKFMsdCxlKSx0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx0LmVtaXQoImVycm9yIixpKSk6KHIoaSksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdC5lbWl0KCJlcnJvciIsaSksUyh0LGUpKX0odCxuLGksZSxyKTtlbHNle3ZhciBzPXgobik7c3x8bi5jb3JrZWR8fG4uYnVmZmVyUHJvY2Vzc2luZ3x8IW4uYnVmZmVyZWRSZXF1ZXN0fHx3KHQsbiksaT91KF8sdCxuLHMscik6Xyh0LG4scyxyKX19KGUsdCl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IHModGhpcyl9ZnVuY3Rpb24gYih0KXtpZihhPWF8fG4oMjQpLCEocC5jYWxsKGIsdGhpcyl8fHRoaXMgaW5zdGFuY2VvZiBhKSlyZXR1cm4gbmV3IGIodCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgdih0LHRoaXMpLHRoaXMud3JpdGFibGU9ITAsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LndyaXRlJiYodGhpcy5fd3JpdGU9dC53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIHQud3JpdGV2JiYodGhpcy5fd3JpdGV2PXQud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmZpbmFsJiYodGhpcy5fZmluYWw9dC5maW5hbCkpLGwuY2FsbCh0aGlzKX1mdW5jdGlvbiB5KHQsZSxuLGkscixvLHMpe2Uud3JpdGVsZW49aSxlLndyaXRlY2I9cyxlLndyaXRpbmc9ITAsZS5zeW5jPSEwLG4/dC5fd3JpdGV2KHIsZS5vbndyaXRlKTp0Ll93cml0ZShyLG8sZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gXyh0LGUsbixpKXtufHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0saSgpLFModCxlKX1mdW5jdGlvbiB3KHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciBuPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmbiYmbi5uZXh0KXt2YXIgaT1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LHI9bmV3IEFycmF5KGkpLG89ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1uO2Zvcih2YXIgYT0wLHU9ITA7bjspclthXT1uLG4uaXNCdWZ8fCh1PSExKSxuPW4ubmV4dCxhKz0xO3IuYWxsQnVmZmVycz11LHkodCxlLCEwLGUubGVuZ3RoLHIsIiIsby5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBzKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7bjspe3ZhciBjPW4uY2h1bmssaD1uLmVuY29kaW5nLGw9bi5jYWxsYmFjaztpZih5KHQsZSwhMSxlLm9iamVjdE1vZGU/MTpjLmxlbmd0aCxjLGgsbCksbj1uLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09biYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1uLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiB4KHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJiYhdC53cml0aW5nfWZ1bmN0aW9uIE0odCxlKXt0Ll9maW5hbChmdW5jdGlvbihuKXtlLnBlbmRpbmdjYi0tLG4mJnQuZW1pdCgiZXJyb3IiLG4pLGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSxTKHQsZSl9KX1mdW5jdGlvbiBTKHQsZSl7dmFyIG49eChlKTtyZXR1cm4gbiYmKCFmdW5jdGlvbih0LGUpe2UucHJlZmluaXNoZWR8fGUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iPT10eXBlb2YgdC5fZmluYWw/KGUucGVuZGluZ2NiKyssZS5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKE0sdCxlKSk6KGUucHJlZmluaXNoZWQ9ITAsdC5lbWl0KCJwcmVmaW5pc2giKSkpfSh0LGUpLDA9PT1lLnBlbmRpbmdjYiYmKGUuZmluaXNoZWQ9ITAsdC5lbWl0KCJmaW5pc2giKSkpLG59Yy5pbmhlcml0cyhiLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1ZmZlcmVkUmVxdWVzdCxlPVtdO3Q7KWUucHVzaCh0KSx0PXQubmV4dDtyZXR1cm4gZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6aC5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2godCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8ocD1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYixTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiEhcC5jYWxsKHRoaXMsdCl8fHRoaXM9PT1iJiYodCYmdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIHYpfX0pKTpwPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpc30sYi5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpKX0sYi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9dGhpcy5fd3JpdGFibGVTdGF0ZSxzPSExLGE9IXIub2JqZWN0TW9kZSYmKGk9dCxkLmlzQnVmZmVyKGkpfHxpIGluc3RhbmNlb2YgZik7cmV0dXJuIGEmJiFkLmlzQnVmZmVyKHQpJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZC5mcm9tKHQpfSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihuPWUsZT1udWxsKSxhP2U9ImJ1ZmZlciI6ZXx8KGU9ci5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBuJiYobj1nKSxyLmVuZGVkP2Z1bmN0aW9uKHQsZSl7dmFyIG49bmV3IEVycm9yKCJ3cml0ZSBhZnRlciBlbmQiKTt0LmVtaXQoImVycm9yIixuKSxvLm5leHRUaWNrKGUsbil9KHRoaXMsbik6KGF8fGZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPSEwLHM9ITE7cmV0dXJuIG51bGw9PT1uP3M9bmV3IFR5cGVFcnJvcigiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iKToic3RyaW5nIj09dHlwZW9mIG58fHZvaWQgMD09PW58fGUub2JqZWN0TW9kZXx8KHM9bmV3IFR5cGVFcnJvcigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpKSxzJiYodC5lbWl0KCJlcnJvciIscyksby5uZXh0VGljayhpLHMpLHI9ITEpLHJ9KHRoaXMscix0LG4pKSYmKHIucGVuZGluZ2NiKysscz1mdW5jdGlvbih0LGUsbixpLHIsbyl7aWYoIW4pe3ZhciBzPWZ1bmN0aW9uKHQsZSxuKXt0Lm9iamVjdE1vZGV8fCExPT09dC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGV8fChlPWQuZnJvbShlLG4pKTtyZXR1cm4gZX0oZSxpLHIpO2khPT1zJiYobj0hMCxyPSJidWZmZXIiLGk9cyl9dmFyIGE9ZS5vYmplY3RNb2RlPzE6aS5sZW5ndGg7ZS5sZW5ndGgrPWE7dmFyIHU9ZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrO3V8fChlLm5lZWREcmFpbj0hMCk7aWYoZS53cml0aW5nfHxlLmNvcmtlZCl7dmFyIGM9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O2UubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6aSxlbmNvZGluZzpyLGlzQnVmOm4sY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDplLmJ1ZmZlcmVkUmVxdWVzdD1lLmxhc3RCdWZmZXJlZFJlcXVlc3QsZS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIHkodCxlLCExLGEsaSxyLG8pO3JldHVybiB1fSh0aGlzLHIsYSx0LGUsbikpLHN9LGIucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxiLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93cml0YWJsZVN0YXRlO3QuY29ya2VkJiYodC5jb3JrZWQtLSx0LndyaXRpbmd8fHQuY29ya2VkfHx0LmZpbmlzaGVkfHx0LmJ1ZmZlclByb2Nlc3Npbmd8fCF0LmJ1ZmZlcmVkUmVxdWVzdHx8dyh0aGlzLHQpKX0sYi5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKCh0KyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9dCx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxiLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe24obmV3IEVycm9yKCJfd3JpdGUoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LGIucHJvdG90eXBlLl93cml0ZXY9bnVsbCxiLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGU7ImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx0PW51bGwsZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLG51bGwhPXQmJnRoaXMud3JpdGUodCxlKSxpLmNvcmtlZCYmKGkuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksaS5lbmRpbmd8fGkuZmluaXNoZWR8fGZ1bmN0aW9uKHQsZSxuKXtlLmVuZGluZz0hMCxTKHQsZSksbiYmKGUuZmluaXNoZWQ/by5uZXh0VGljayhuKTp0Lm9uY2UoImZpbmlzaCIsbikpO2UuZW5kZWQ9ITAsdC53cml0YWJsZT0hMX0odGhpcyxpLG4pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD10KX19KSxiLnByb3RvdHlwZS5kZXN0cm95PW0uZGVzdHJveSxiLnByb3RvdHlwZS5fdW5kZXN0cm95PW0udW5kZXN0cm95LGIucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dGhpcy5lbmQoKSxlKHQpfX0pLmNhbGwodGhpcyxuKDIwKSxuKDQ0KS5zZXRJbW1lZGlhdGUsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXtzd2l0Y2goKHQ9IiIrdCkmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBvKHQpe3ZhciBlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiJ1dGY4Ijtmb3IodmFyIGU7Oylzd2l0Y2godCl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGU9ITB9fSh0KTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihpLmlzRW5jb2Rpbmc9PT1yfHwhcih0KSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3JldHVybiBlfHx0fSh0KSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1hLGU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWgsdGhpcy5lbmQ9bCxlPTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1kLHZvaWQodGhpcy5lbmQ9Zil9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1pLmFsbG9jVW5zYWZlKGUpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQ8PTEyNz8wOnQ+PjU9PTY/Mjp0Pj40PT0xND8zOnQ+PjM9PTMwPzQ6dD4+Nj09Mj8tMTotMn1mdW5jdGlvbiBhKHQpe3ZhciBlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsbj1mdW5jdGlvbih0LGUsbil7aWYoMTI4IT0oMTkyJmVbMF0pKXJldHVybiB0Lmxhc3ROZWVkPTAsIu+/vSI7aWYodC5sYXN0TmVlZD4xJiZlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZVsxXSkpcmV0dXJuIHQubGFzdE5lZWQ9MSwi77+9IjtpZih0Lmxhc3ROZWVkPjImJmUubGVuZ3RoPjImJjEyOCE9KDE5MiZlWzJdKSlyZXR1cm4gdC5sYXN0TmVlZD0yLCLvv70ifX0odGhpcyx0KTtyZXR1cm4gdm9pZCAwIT09bj9uOnRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoPyh0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToodC5jb3B5KHRoaXMubGFzdENoYXIsZSwwLHQubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXQubGVuZ3RoKSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT0wKXt2YXIgbj10LnRvU3RyaW5nKCJ1dGYxNmxlIixlKTtpZihuKXt2YXIgaT1uLmNoYXJDb2RlQXQobi5sZW5ndGgtMSk7aWYoaT49NTUyOTYmJmk8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdLG4uc2xpY2UoMCwtMSl9cmV0dXJuIG59cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXSx0LnRvU3RyaW5nKCJ1dGYxNmxlIixlLHQubGVuZ3RoLTEpfWZ1bmN0aW9uIGModCl7dmFyIGU9dCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgbj10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAsbil9cmV0dXJuIGV9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuPSh0Lmxlbmd0aC1lKSUzO3JldHVybiAwPT09bj90LnRvU3RyaW5nKCJiYXNlNjQiLGUpOih0aGlzLmxhc3ROZWVkPTMtbix0aGlzLmxhc3RUb3RhbD0zLDE9PT1uP3RoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXSksdC50b1N0cmluZygiYmFzZTY0IixlLHQubGVuZ3RoLW4pKX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTplfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIn1lLlN0cmluZ0RlY29kZXI9byxvLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIiI7dmFyIGUsbjtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZT10aGlzLmZpbGxMYXN0KHQpKSlyZXR1cm4iIjtuPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2Ugbj0wO3JldHVybiBuPHQubGVuZ3RoP2U/ZSt0aGlzLnRleHQodCxuKTp0aGlzLnRleHQodCxuKTplfHwiIn0sby5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSsi77+9IjplfSxvLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWUubGVuZ3RoLTE7aWYoaTxuKXJldHVybiAwO3ZhciByPXMoZVtpXSk7aWYocj49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTEpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYodC5sYXN0TmVlZD1yLTIpLHI7aWYoLS1pPG58fC0yPT09cilyZXR1cm4gMDtpZigocj1zKGVbaV0pKT49MClyZXR1cm4gcj4wJiYoMj09PXI/cj0wOnQubGFzdE5lZWQ9ci0zKSxyO3JldHVybiAwfSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoInV0ZjgiLGUpO3RoaXMubGFzdFRvdGFsPW47dmFyIGk9dC5sZW5ndGgtKG4tdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLDAsaSksdC50b1N0cmluZygidXRmOCIsZSxpKX0sby5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpcmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7dC5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHQubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT10Lmxlbmd0aH19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0KS5CdWZmZXIscj1uKDApLG89big4NCkscz1uZXcgQXJyYXkoMTYpLGE9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sdT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxjPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxoPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxsPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLGQ9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gZigpe28uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfWZ1bmN0aW9uIG0odCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXm5eaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGcodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJm58fmUmaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHYodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KygoZXx+bileaSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIGIodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlJml8biZ+aSkrbytzfDAsYSkrcnwwfWZ1bmN0aW9uIHkodCxlLG4saSxyLG8scyxhKXtyZXR1cm4gcCh0KyhlXihufH5pKSkrbytzfDAsYSkrcnwwfXIoZixvKSxmLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMsZT0wO2U8MTY7KytlKXRbZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCplKTtmb3IodmFyIG49MHx0aGlzLl9hLGk9MHx0aGlzLl9iLHI9MHx0aGlzLl9jLG89MHx0aGlzLl9kLGY9MHx0aGlzLl9lLF89MHx0aGlzLl9hLHc9MHx0aGlzLl9iLHg9MHx0aGlzLl9jLE09MHx0aGlzLl9kLFM9MHx0aGlzLl9lLEU9MDtFPDgwO0UrPTEpe3ZhciBBLEM7RTwxNj8oQT1tKG4saSxyLG8sZix0W2FbRV1dLGxbMF0sY1tFXSksQz15KF8sdyx4LE0sUyx0W3VbRV1dLGRbMF0saFtFXSkpOkU8MzI/KEE9ZyhuLGkscixvLGYsdFthW0VdXSxsWzFdLGNbRV0pLEM9YihfLHcseCxNLFMsdFt1W0VdXSxkWzFdLGhbRV0pKTpFPDQ4PyhBPXYobixpLHIsbyxmLHRbYVtFXV0sbFsyXSxjW0VdKSxDPXYoXyx3LHgsTSxTLHRbdVtFXV0sZFsyXSxoW0VdKSk6RTw2ND8oQT1iKG4saSxyLG8sZix0W2FbRV1dLGxbM10sY1tFXSksQz1nKF8sdyx4LE0sUyx0W3VbRV1dLGRbM10saFtFXSkpOihBPXkobixpLHIsbyxmLHRbYVtFXV0sbFs0XSxjW0VdKSxDPW0oXyx3LHgsTSxTLHRbdVtFXV0sZFs0XSxoW0VdKSksbj1mLGY9byxvPXAociwxMCkscj1pLGk9QSxfPVMsUz1NLE09cCh4LDEwKSx4PXcsdz1DfXZhciBrPXRoaXMuX2IrcitNfDA7dGhpcy5fYj10aGlzLl9jK28rU3wwLHRoaXMuX2M9dGhpcy5fZCtmK198MCx0aGlzLl9kPXRoaXMuX2Urbit3fDAsdGhpcy5fZT10aGlzLl9hK2kreHwwLHRoaXMuX2E9a30sZi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciB0PWkuYWxsb2M/aS5hbGxvYygyMCk6bmV3IGkoMjApO3JldHVybiB0LndyaXRlSW50MzJMRSh0aGlzLl9hLDApLHQud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksdC53cml0ZUludDMyTEUodGhpcy5fYyw4KSx0LndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSx0fSx0LmV4cG9ydHM9Zn0sZnVuY3Rpb24odCxlLG4peyhlPXQuZXhwb3J0cz1mdW5jdGlvbih0KXt0PXQudG9Mb3dlckNhc2UoKTt2YXIgbj1lW3RdO2lmKCFuKXRocm93IG5ldyBFcnJvcih0KyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBufSkuc2hhPW4oMTU3KSxlLnNoYTE9bigxNTgpLGUuc2hhMjI0PW4oMTU5KSxlLnNoYTI1Nj1uKDg5KSxlLnNoYTM4ND1uKDE2MCksZS5zaGE1MTI9big5MCl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS51dGlscz1uKDE2NiksZS5DaXBoZXI9bigxNjcpLGUuREVTPW4oMTY4KSxlLkNCQz1uKDE2OSksZS5FREU9bigxNzApfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNzEpLHI9bigxNzkpLG89bigxMDApO2UuY3JlYXRlQ2lwaGVyPWUuQ2lwaGVyPWkuY3JlYXRlQ2lwaGVyLGUuY3JlYXRlQ2lwaGVyaXY9ZS5DaXBoZXJpdj1pLmNyZWF0ZUNpcGhlcml2LGUuY3JlYXRlRGVjaXBoZXI9ZS5EZWNpcGhlcj1yLmNyZWF0ZURlY2lwaGVyLGUuY3JlYXRlRGVjaXBoZXJpdj1lLkRlY2lwaGVyaXY9ci5jcmVhdGVEZWNpcGhlcml2LGUubGlzdENpcGhlcnM9ZS5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPXtFQ0I6bigxNzIpLENCQzpuKDE3MyksQ0ZCOm4oMTc0KSxDRkI4Om4oMTc1KSxDRkIxOm4oMTc2KSxPRkI6bigxNzcpLENUUjpuKDk4KSxHQ006big5OCl9LHI9bigxMDApO2Zvcih2YXIgbyBpbiByKXJbb10ubW9kdWxlPWlbcltvXS5tb2RlXTt0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigyNyk7ZnVuY3Rpb24gbyh0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlPXModCk7cmV0dXJue2JsaW5kZXI6ZS50b1JlZChpLm1vbnQodC5tb2R1bHVzKSkucmVkUG93KG5ldyBpKHQucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCksdW5ibGluZGVyOmUuaW52bSh0Lm1vZHVsdXMpfX0obiksbz1uLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGE9KGkubW9udChuLm1vZHVsdXMpLG5ldyBpKHQpLm11bChyLmJsaW5kZXIpLnVtb2Qobi5tb2R1bHVzKSksdT1hLnRvUmVkKGkubW9udChuLnByaW1lMSkpLGM9YS50b1JlZChpLm1vbnQobi5wcmltZTIpKSxoPW4uY29lZmZpY2llbnQsbD1uLnByaW1lMSxkPW4ucHJpbWUyLGY9dS5yZWRQb3cobi5leHBvbmVudDEpLHA9Yy5yZWRQb3cobi5leHBvbmVudDIpO2Y9Zi5mcm9tUmVkKCkscD1wLmZyb21SZWQoKTt2YXIgbT1mLmlzdWIocCkuaW11bChoKS51bW9kKGwpO3JldHVybiBtLmltdWwoZCkscC5pYWRkKG0pLG5ldyBlKHAuaW11bChyLnVuYmxpbmRlcikudW1vZChuLm1vZHVsdXMpLnRvQXJyYXkoITEsbykpfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksbj1uZXcgaShyKGUpKTtuLmNtcCh0Lm1vZHVsdXMpPj0wfHwhbi51bW9kKHQucHJpbWUxKXx8IW4udW1vZCh0LnByaW1lMik7KW49bmV3IGkocihlKSk7cmV0dXJuIG59dC5leHBvcnRzPW8sby5nZXRyPXN9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9ZTtpLnV0aWxzPW4oMTcpLGkuY29tbW9uPW4oMzQpLGkuc2hhPW4oMTk1KSxpLnJpcGVtZD1uKDE5OSksaS5obWFjPW4oMjAwKSxpLnNoYTE9aS5zaGEuc2hhMSxpLnNoYTI1Nj1pLnNoYS5zaGEyNTYsaS5zaGEyMjQ9aS5zaGEuc2hhMjI0LGkuc2hhMzg0PWkuc2hhLnNoYTM4NCxpLnNoYTUxMj1pLnNoYS5zaGE1MTIsaS5yaXBlbWQxNjA9aS5yaXBlbWQucmlwZW1kMTYwfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIk1hcCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxOSkuU3ltYm9sO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3ZhciBuPUFycmF5LmlzQXJyYXk7dC5leHBvcnRzPW59LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT049IjEuMS4wIixlLlBST1RPQ09MX1ZFUlNJT049IjIuMC4wIn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMjUpLGE9bigzMDApLHU9bigxMjkpLGM9bigxNSksaD1uKDMwMSksbD1uKDM5KSxkPW4oNSksZj1uKDc0KTtmdW5jdGlvbiBwKHQsZSl7dmFyIG47cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/KG49W10sdC5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7bi5wdXNoKHAodCxlKSl9KSxQcm9taXNlLmFsbChuKSk6dCBpbnN0YW5jZW9mIE9iamVjdD8obj17fSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGkpe25baV09cCh0W2ldLGUpfSkscy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pKToic3RyaW5nIj09dHlwZW9mIHQmJiJJUFlfTU9ERUxfIj09PXQuc2xpY2UoMCwxMCk/ZS5nZXRfbW9kZWwodC5zbGljZSgxMCx0Lmxlbmd0aCkpOlByb21pc2UucmVzb2x2ZSh0KX1lLnVucGFja19tb2RlbHM9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJue19tb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX21vZGVsX25hbWU6IldpZGdldE1vZGVsIixfbW9kZWxfbW9kdWxlX3ZlcnNpb246Zi5KVVBZVEVSX1dJREdFVFNfVkVSU0lPTixfdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvYmFzZSIsX3ZpZXdfbmFtZTpudWxsLF92aWV3X21vZHVsZV92ZXJzaW9uOmYuSlVQWVRFUl9XSURHRVRTX1ZFUlNJT04sX3ZpZXdfY291bnQ6bnVsbH19LGUucHJvdG90eXBlLmlzTmV3PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pLHRoaXMud2lkZ2V0X21hbmFnZXI9bi53aWRnZXRfbWFuYWdlcix0aGlzLm1vZGVsX2lkPW4ubW9kZWxfaWQ7dmFyIGk9bi5jb21tO3RoaXMudmlld3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLnN0YXRlX2NoYW5nZT1Qcm9taXNlLnJlc29sdmUoKSx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5fc3RhdGVfbG9jaz1udWxsLHRoaXMuX21zZ19idWZmZXI9bnVsbCx0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1udWxsLHRoaXMuX3BlbmRpbmdfbXNncz0wLHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmY9e30saT8odGhpcy5jb21tPWksaS5vbl9jbG9zZSh0aGlzLl9oYW5kbGVfY29tbV9jbG9zZWQuYmluZCh0aGlzKSksaS5vbl9tc2codGhpcy5faGFuZGxlX2NvbW1fbXNnLmJpbmQodGhpcykpLHRoaXMuY29tbV9saXZlPSEwKTp0aGlzLmNvbW1fbGl2ZT0hMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb21tX2xpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbV9saXZlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fY29tbV9saXZlPXQsdGhpcy50cmlnZ2VyKCJjb21tX2xpdmVfdXBkYXRlIil9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0LGUsbil7aWYodm9pZCAwIT09dGhpcy5jb21tKXt2YXIgaT17bWV0aG9kOiJjdXN0b20iLGNvbnRlbnQ6dH07dGhpcy5jb21tLnNlbmQoaSxlLHt9LG4pfX0sZS5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih2b2lkIDA9PT10JiYodD0hMSksIXRoaXMuX2Nsb3NlZCl7dGhpcy5fY2xvc2VkPSEwLHRoaXMuY29tbSYmIXQmJnRoaXMuY29tbS5jbG9zZSgpLHRoaXMuc3RvcExpc3RlbmluZygpLHRoaXMudHJpZ2dlcigiZGVzdHJveSIsdGhpcyksdGhpcy5jb21tJiZkZWxldGUgdGhpcy5jb21tO3ZhciBuPU9iamVjdC5rZXlzKHRoaXMudmlld3MpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS52aWV3c1t0XS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbW92ZSgpfSl9KTtyZXR1cm4gZGVsZXRlIHRoaXMudmlld3MsUHJvbWlzZS5hbGwobikudGhlbihmdW5jdGlvbigpe30pfX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX2Nsb3NlZD1mdW5jdGlvbih0KXt0aGlzLnRyaWdnZXIoImNvbW06Y2xvc2UiKSx0aGlzLmNsb3NlKCEwKX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jb21tX21zZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3N3aXRjaCh0LmNvbnRlbnQuZGF0YS5tZXRob2Qpe2Nhc2UidXBkYXRlIjpyZXR1cm4gdGhpcy5zdGF0ZV9jaGFuZ2U9dGhpcy5zdGF0ZV9jaGFuZ2UudGhlbihmdW5jdGlvbigpe3ZhciBuPXQuY29udGVudC5kYXRhLnN0YXRlLGk9dC5jb250ZW50LmRhdGEuYnVmZmVyX3BhdGhzfHxbXSxyPSh0LmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhuLGksciksZS5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUobixlLndpZGdldF9tYW5hZ2VyKX0pLnRoZW4oZnVuY3Rpb24odCl7ZS5zZXRfc3RhdGUodCl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IHByb2Nlc3MgdXBkYXRlIG1zZyBmb3IgbW9kZWwgaWQ6ICIrdGhpcy5tb2RlbF9pZCwhMCkpLHRoaXMuc3RhdGVfY2hhbmdlO2Nhc2UiY3VzdG9tIjpyZXR1cm4gdGhpcy50cmlnZ2VyKCJtc2c6Y3VzdG9tIix0LmNvbnRlbnQuZGF0YS5jb250ZW50LHQuYnVmZmVycyksUHJvbWlzZS5yZXNvbHZlKCl9fSxlLnByb3RvdHlwZS5zZXRfc3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5fc3RhdGVfbG9jaz10O3RyeXt0aGlzLnNldCh0KX1jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJFcnJvciBzZXR0aW5nIHN0YXRlOiAiK3QubWVzc2FnZSl9ZmluYWxseXt0aGlzLl9zdGF0ZV9sb2NrPW51bGx9fSxlLnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdHRyaWJ1dGVzO2lmKHQpe3ZhciBuPXRoaXMuZGVmYXVsdHMsaT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmNhbGwodGhpcyk6bixyPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MuaXNFcXVhbChlW3RdLGlbdF0pfHwoclt0XT1lW3RdKX0pLHJ9cmV0dXJuIG8oe30sZSl9LGUucHJvdG90eXBlLl9oYW5kbGVfc3RhdHVzPWZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXRoaXMuY29tbSYmImlkbGUiPT09dC5jb250ZW50LmV4ZWN1dGlvbl9zdGF0ZSYmKHRoaXMuX3BlbmRpbmdfbXNncy0tLG51bGwhPT10aGlzLl9tc2dfYnVmZmVyJiZ0aGlzLl9wZW5kaW5nX21zZ3M8MSYmKHRoaXMuc2VuZF9zeW5jX21lc3NhZ2UodGhpcy5fbXNnX2J1ZmZlcix0aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcyksdGhpcy5fbXNnX2J1ZmZlcj1udWxsLHRoaXMuX21zZ19idWZmZXJfY2FsbGJhY2tzPW51bGwpKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndpZGdldF9tYW5hZ2VyLmNhbGxiYWNrcyh0KX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1hLnNldC5jYWxsKHRoaXMsdCxlLG4pO2lmKHZvaWQgMCE9PXRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYpe3ZhciByPXRoaXMuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e307aWYodGhpcy5fc3RhdGVfbG9jaylmb3IodmFyIG89MCx1PU9iamVjdC5rZXlzKHRoaXMuX3N0YXRlX2xvY2spO288dS5sZW5ndGg7bysrKXt2YXIgYz11W29dO3JbY109PT10aGlzLl9zdGF0ZV9sb2NrW2NdJiZkZWxldGUgcltjXX10aGlzLl9idWZmZXJlZF9zdGF0ZV9kaWZmPXMuYXNzaWduKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYscil9cmV0dXJuIGl9LGUucHJvdG90eXBlLnN5bmM9ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSx2b2lkIDA9PT10aGlzLmNvbW0pdGhyb3ciU3luY2luZyBlcnJvcjogbm8gY29tbSBjaGFubmVsIGRlZmluZWQiO3ZhciBpPSJwYXRjaCI9PT10P24uYXR0cnM6ZS5nZXRfc3RhdGUobi5kcm9wX2RlZmF1bHRzKTtpZih0aGlzLl9zdGF0ZV9sb2NrKWZvcih2YXIgcj0wLG89T2JqZWN0LmtleXModGhpcy5fc3RhdGVfbG9jayk7cjxvLmxlbmd0aDtyKyspe3ZhciBhPW9bcl07aVthXT09PXRoaXMuX3N0YXRlX2xvY2tbYV0mJmRlbGV0ZSBpW2FdfXZhciB1PXRoaXMuc2VyaWFsaXplKGkpO2lmKE9iamVjdC5rZXlzKHUpLmxlbmd0aD4wKXt2YXIgYz1uLmNhbGxiYWNrc3x8dGhpcy5jYWxsYmFja3MoKTtpZih0aGlzLl9wZW5kaW5nX21zZ3M+PTEpe3N3aXRjaCh0KXtjYXNlInBhdGNoIjp0aGlzLl9tc2dfYnVmZmVyPXMuYXNzaWduKHRoaXMuX21zZ19idWZmZXJ8fHt9LHUpO2JyZWFrO2Nhc2UidXBkYXRlIjpjYXNlImNyZWF0ZSI6dGhpcy5fbXNnX2J1ZmZlcj11O2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWNvZ25pemVkIHN5bmNpbmcgbWV0aG9kIn10aGlzLl9tc2dfYnVmZmVyX2NhbGxiYWNrcz1jfWVsc2UgdGhpcy5zZW5kX3N5bmNfbWVzc2FnZShpLGMpfX0sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmNvbnN0cnVjdG9yLnNlcmlhbGl6ZXJzfHx7fSxuPTAsaT1PYmplY3Qua2V5cyh0KTtuPGkubGVuZ3RoO24rKyl7dmFyIHI9aVtuXTt0cnl7ZVtyXSYmZVtyXS5zZXJpYWxpemU/dFtyXT1lW3JdLnNlcmlhbGl6ZSh0W3JdLHRoaXMpOnRbcl09SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0W3JdKSksdFtyXSYmdFtyXS50b0pTT04mJih0W3JdPXRbcl0udG9KU09OKCkpfWNhdGNoKHQpe3Rocm93IGNvbnNvbGUuZXJyb3IoIkVycm9yIHNlcmlhbGl6aW5nIHdpZGdldCBzdGF0ZSBhdHRyaWJ1dGU6ICIsciksdH19cmV0dXJuIHR9LGUucHJvdG90eXBlLnNlbmRfc3luY19tZXNzYWdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt2b2lkIDA9PT1lJiYoZT17fSk7dHJ5e2UuaW9wdWI9ZS5pb3B1Ynx8e307dmFyIGk9ZS5pb3B1Yi5zdGF0dXM7ZS5pb3B1Yi5zdGF0dXM9ZnVuY3Rpb24odCl7bi5faGFuZGxlX3N0YXR1cyh0KSxpJiZpKHQpfTt2YXIgcj1zLnJlbW92ZV9idWZmZXJzKHQpO3RoaXMuY29tbS5zZW5kKHttZXRob2Q6InVwZGF0ZSIsc3RhdGU6ci5zdGF0ZSxidWZmZXJfcGF0aHM6ci5idWZmZXJfcGF0aHN9LGUse30sci5idWZmZXJzKSx0aGlzLl9wZW5kaW5nX21zZ3MrK31jYXRjaCh0KXtjb25zb2xlLmVycm9yKCJDb3VsZCBub3Qgc2VuZCB3aWRnZXQgc3luYyBtZXNzYWdlIix0KX19LGUucHJvdG90eXBlLnNhdmVfY2hhbmdlcz1mdW5jdGlvbih0KXtpZih0aGlzLmNvbW1fbGl2ZSl7dmFyIGU9e3BhdGNoOiEwfTt0JiYoZS5jYWxsYmFja3M9dCksdGhpcy5zYXZlKHRoaXMuX2J1ZmZlcmVkX3N0YXRlX2RpZmYsZSksdGhpcy5fYnVmZmVyZWRfc3RhdGVfZGlmZj17fX19LGUucHJvdG90eXBlLm9uX3NvbWVfY2hhbmdlPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dC5zb21lKHRoaXMuaGFzQ2hhbmdlZCx0aGlzKSYmZS5hcHBseShuLGFyZ3VtZW50cyl9LHRoaXMpfSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24odCl7cmV0dXJuIklQWV9NT0RFTF8iK3RoaXMubW9kZWxfaWR9LGUuX2Rlc2VyaWFsaXplX3N0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLnNlcmlhbGl6ZXJzO2lmKGkpZm9yKHZhciByIGluIG49e30sdClpW3JdJiZpW3JdLmRlc2VyaWFsaXplP25bcl09aVtyXS5kZXNlcmlhbGl6ZSh0W3JdLGUpOm5bcl09dFtyXTtlbHNlIG49dDtyZXR1cm4gcy5yZXNvbHZlUHJvbWlzZXNEaWN0KG4pfSxlfSh1Lk1vZGVsKTtlLldpZGdldE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfZG9tX2NsYXNzZXM6W119KX0sZS5zZXJpYWxpemVycz1vKHt9LG0uc2VyaWFsaXplcnMse2xheW91dDp7ZGVzZXJpYWxpemU6cH0sc3R5bGU6e2Rlc2VyaWFsaXplOnB9fSksZX0obSk7ZS5ET01XaWRnZXRNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuY2FsbCh0aGlzLGUpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlIixmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5rZXlzKGUubW9kZWwuY2hhbmdlZEF0dHJpYnV0ZXMoKXx8e30pOyJfdmlld19jb3VudCI9PT10WzBdJiYxPT09dC5sZW5ndGh8fGUudXBkYXRlKCl9KSx0aGlzLm9wdGlvbnM9dC5vcHRpb25zLHRoaXMub25jZSgicmVtb3ZlIixmdW5jdGlvbigpeyJudW1iZXIiPT10eXBlb2YgZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikmJihlLm1vZGVsLnNldCgiX3ZpZXdfY291bnQiLGUubW9kZWwuZ2V0KCJfdmlld19jb3VudCIpLTEpLGUubW9kZWwuc2F2ZV9jaGFuZ2VzKCkpfSksdGhpcy5vbmNlKCJkaXNwbGF5ZWQiLGZ1bmN0aW9uKCl7Im51bWJlciI9PXR5cGVvZiBlLm1vZGVsLmdldCgiX3ZpZXdfY291bnQiKSYmKGUubW9kZWwuc2V0KCJfdmlld19jb3VudCIsZS5tb2RlbC5nZXQoIl92aWV3X2NvdW50IikrMSksZS5tb2RlbC5zYXZlX2NoYW5nZXMoKSl9KSx0aGlzLmRpc3BsYXllZD1uZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uub25jZSgiZGlzcGxheWVkIix0KX0pfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7fSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmNyZWF0ZV9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3JldHVybiBlPW8oe3BhcmVudDp0aGlzfSxlKSx0aGlzLm1vZGVsLndpZGdldF9tYW5hZ2VyLmNyZWF0ZV92aWV3KHQsZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgY2hpbGQgdmlldyIsITApKX0sZS5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuY2FsbGJhY2tzKHRoaXMpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbC5zZW5kKHQsdGhpcy5jYWxsYmFja3MoKSxlKX0sZS5wcm90b3R5cGUudG91Y2g9ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnNhdmVfY2hhbmdlcyh0aGlzLmNhbGxiYWNrcygpKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpLHRoaXMudHJpZ2dlcigicmVtb3ZlIiksdGhpc30sZX0oaC5OYXRpdmVWaWV3KTtlLldpZGdldFZpZXc9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlfShsLldpZGdldCk7ZS5KdXB5dGVyUGhvc3Bob3JXaWRnZXQ9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfZG9tX2NsYXNzZXMiLGZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5wcmV2aW91cygiX2RvbV9jbGFzc2VzIik7bi51cGRhdGVfY2xhc3NlcyhpLGUpfSksdGhpcy5sYXlvdXRQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmxheW91dCIsZnVuY3Rpb24odCxlKXtuLnNldExheW91dChlLHQucHJldmlvdXMoImxheW91dCIpKX0pLHRoaXMuc3R5bGVQcm9taXNlPVByb21pc2UucmVzb2x2ZSgpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOnN0eWxlIixmdW5jdGlvbih0LGUpe24uc2V0U3R5bGUoZSx0LnByZXZpb3VzKCJzdHlsZSIpKX0pLHRoaXMuZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtuLnVwZGF0ZV9jbGFzc2VzKFtdLG4ubW9kZWwuZ2V0KCJfZG9tX2NsYXNzZXMiKSksbi5zZXRMYXlvdXQobi5tb2RlbC5nZXQoImxheW91dCIpKSxuLnNldFN0eWxlKG4ubW9kZWwuZ2V0KCJzdHlsZSIpKX0pLHRoaXMuX2NvbW1fbGl2ZV91cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNvbW1fbGl2ZV91cGRhdGUiLGZ1bmN0aW9uKCl7bi5fY29tbV9saXZlX3VwZGF0ZSgpfSl9LGUucHJvdG90eXBlLnNldExheW91dD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dCYmKHRoaXMubGF5b3V0UHJvbWlzZT10aGlzLmxheW91dFByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5sYXlvdXQoKSxuLnN0b3BMaXN0ZW5pbmcoZS5tb2RlbCksZS5yZW1vdmUoKSksbi5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudHJpZ2dlcigiZGlzcGxheWVkIiksbi5saXN0ZW5Ubyh0Lm1vZGVsLCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZShuLnBXaWRnZXQsbC5XaWRnZXQuUmVzaXplTWVzc2FnZS5Vbmtub3duU2l6ZSl9KSxkLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKG4ucFdpZGdldCxsLldpZGdldC5SZXNpemVNZXNzYWdlLlVua25vd25TaXplKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBMYXlvdXRWaWV3IHRvIERPTVdpZGdldFZpZXciLCEwKSl9KSl9LGUucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0JiYodGhpcy5zdHlsZVByb21pc2U9dGhpcy5zdHlsZVByb21pc2UudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZSYmKGUudW5zdHlsZSgpLG4uc3RvcExpc3RlbmluZyhlLm1vZGVsKSxlLnJlbW92ZSgpKSxuLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG4uZGlzcGxheWVkLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC50cmlnZ2VyKCJkaXNwbGF5ZWQiKSx0fSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGFkZCBzdHlsZVZpZXcgdG8gRE9NV2lkZ2V0VmlldyIsITApKX0pKX0sZS5wcm90b3R5cGUudXBkYXRlX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPXRoaXMuZWwpLHMuZGlmZmVyZW5jZSh0LGUpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5yZW1vdmUodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5yZXBsYWNlKHQsIiIpKX0pLHMuZGlmZmVyZW5jZShlLHQpLm1hcChmdW5jdGlvbih0KXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5hZGQodCk6bi5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5jb25jYXQoIiAiLHQpKX0pfSxlLnByb3RvdHlwZS51cGRhdGVfbWFwcGVkX2NsYXNzZXM9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMubW9kZWwucHJldmlvdXMoZSkscj10W2ldP3RbaV06W10sbz10W2k9dGhpcy5tb2RlbC5nZXQoZSldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhyLG8sbnx8dGhpcy5lbCl9LGUucHJvdG90eXBlLnNldF9tYXBwZWRfY2xhc3Nlcz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5tb2RlbC5nZXQoZSkscj10W2ldP3RbaV06W107dGhpcy51cGRhdGVfY2xhc3NlcyhbXSxyLG58fHRoaXMuZWwpfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXt0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdGhpcy4kZWw9dCBpbnN0YW5jZW9mIGM/dDpjKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF0sdGhpcy5wV2lkZ2V0PW5ldyBiKHtub2RlOnQsdmlldzp0aGlzfSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBXaWRnZXQmJnRoaXMucFdpZGdldC5kaXNwb3NlKCksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnByb2Nlc3NQaG9zcGhvck1lc3NhZ2U9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJhZnRlci1hdHRhY2giOnRoaXMudHJpZ2dlcigiZGlzcGxheWVkIil9fSxlLnByb3RvdHlwZS5fY29tbV9saXZlX3VwZGF0ZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuY29tbV9saXZlP3RoaXMucFdpZGdldC5yZW1vdmVDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpOnRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzLWRpc2Nvbm5lY3RlZCIpfSxlfSh2KTtlLkRPTVdpZGdldFZpZXc9eX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDIpLGE9big5KSx1PW4oNSksYz1uKDMwKSxoPW4oNDApLGw9bigyMiksZD1uKDQxKSxmPW4oNykscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9ib3g9bnVsbCxuLl9hbGlnbm1lbnQ9InN0YXJ0IixuLl9kaXJlY3Rpb249InRvcC10by1ib3R0b20iLHZvaWQgMCE9PWUuZGlyZWN0aW9uJiYobi5fZGlyZWN0aW9uPWUuZGlyZWN0aW9uKSx2b2lkIDAhPT1lLmFsaWdubWVudCYmKG4uX2FsaWdubWVudD1lLmFsaWdubWVudCksdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3MuZWFjaCh0aGlzLl9pdGVtcyxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2JveD1udWxsLHRoaXMuX2l0ZW1zLmxlbmd0aD0wLHRoaXMuX3NpemVycy5sZW5ndGg9MCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiZGlyZWN0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RpcmVjdGlvbiE9PXQmJih0aGlzLl9kaXJlY3Rpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXQsdGhpcy5wYXJlbnQuZml0KCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9hbGlnbm1lbnQhPT10JiYodGhpcy5fYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQmJih0aGlzLnBhcmVudC5kYXRhc2V0LmFsaWdubWVudD10LHRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMucGFyZW50LmRhdGFzZXQuZGlyZWN0aW9uPXRoaXMuZGlyZWN0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7cy5BcnJheUV4dC5pbnNlcnQodGhpcy5faXRlbXMsdCxuZXcgbC5MYXlvdXRJdGVtKGUpKSxzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9zaXplcnMsdCxuZXcgaC5Cb3hTaXplciksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoZS5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUubW92ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7cy5BcnJheUV4dC5tb3ZlKHRoaXMuX2l0ZW1zLHQsZSkscy5BcnJheUV4dC5tb3ZlKHRoaXMuX3NpemVycyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49MCxpPXRoaXMuX2l0ZW1zLmxlbmd0aDtuPGk7KytuKXQrPSshdGhpcy5faXRlbXNbbl0uaXNIaWRkZW47dGhpcy5fZml4ZWQ9dGhpcy5fc3BhY2luZypNYXRoLm1heCgwLHQtMSk7dmFyIHI9by5pc0hvcml6b250YWwodGhpcy5fZGlyZWN0aW9uKSxzPXI/dGhpcy5fZml4ZWQ6MCxjPXI/MDp0aGlzLl9maXhlZDtmb3Iobj0wLGk9dGhpcy5faXRlbXMubGVuZ3RoO248aTsrK24pe3ZhciBoPXRoaXMuX2l0ZW1zW25dLGw9dGhpcy5fc2l6ZXJzW25dO2guaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnNpemVIaW50PWUuZ2V0U2l6ZUJhc2lzKGgud2lkZ2V0KSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxyPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW07c3dpdGNoKHRoaXMuX2RpcmVjdGlvbil7Y2FzZSJsZWZ0LXRvLXJpZ2h0IjpvPWguQm94RW5naW5lLmNhbGModGhpcy5fc2l6ZXJzLE1hdGgubWF4KDAsYy10aGlzLl9maXhlZCkpO2JyZWFrO2Nhc2UidG9wLXRvLWJvdHRvbSI6bz1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpKTticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKSksdSs9YzticmVhaztjYXNlImJvdHRvbS10by10b3AiOm89aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9zaXplcnMsTWF0aC5tYXgoMCxsLXRoaXMuX2ZpeGVkKSkscys9bDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn12YXIgZD0wLGY9MDtpZihvPjApc3dpdGNoKHRoaXMuX2FsaWdubWVudCl7Y2FzZSJzdGFydCI6YnJlYWs7Y2FzZSJjZW50ZXIiOmQ9MCxmPW8vMjticmVhaztjYXNlImVuZCI6ZD0wLGY9bzticmVhaztjYXNlImp1c3RpZnkiOmQ9by9uLGY9MDticmVhaztkZWZhdWx0OnRocm93InVucmVhY2hhYmxlIn1mb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBwPXRoaXMuX2l0ZW1zW2ldO2lmKCFwLmlzSGlkZGVuKXt2YXIgbT10aGlzLl9zaXplcnNbaV0uc2l6ZTtzd2l0Y2godGhpcy5fZGlyZWN0aW9uKXtjYXNlImxlZnQtdG8tcmlnaHQiOnAudXBkYXRlKHUrZixzLG0rZCxsKSx1Kz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInRvcC10by1ib3R0b20iOnAudXBkYXRlKHUscytmLGMsbStkKSxzKz1tK2QrdGhpcy5fc3BhY2luZzticmVhaztjYXNlInJpZ2h0LXRvLWxlZnQiOnAudXBkYXRlKHUtZi1tLWQscyxtK2QsbCksdS09bStkK3RoaXMuX3NwYWNpbmc7YnJlYWs7Y2FzZSJib3R0b20tdG8tdG9wIjpwLnVwZGF0ZSh1LHMtZi1tLWQsYyxtK2QpLHMtPW0rZCt0aGlzLl9zcGFjaW5nO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifX19fX0sZX0oZC5QYW5lbExheW91dCk7ZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LmdldFN0cmV0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIG8uc3RyZXRjaFByb3BlcnR5LmdldCh0KX0sdC5zZXRTdHJldGNoPWZ1bmN0aW9uKHQsZSl7by5zdHJldGNoUHJvcGVydHkuc2V0KHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBvLnNpemVCYXNpc1Byb3BlcnR5LmdldCh0KX0sdC5zZXRTaXplQmFzaXM9ZnVuY3Rpb24odCxlKXtvLnNpemVCYXNpc1Byb3BlcnR5LnNldCh0LGUpfX0ocD1lLkJveExheW91dHx8KGUuQm94TGF5b3V0PXt9KSksZS5Cb3hMYXlvdXQ9cCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBwJiZ0LnBhcmVudC5maXQoKX10LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuc2l6ZUJhc2lzUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToic2l6ZUJhc2lzIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZX0pLHQuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKHQpe3JldHVybiJsZWZ0LXRvLXJpZ2h0Ij09PXR8fCJyaWdodC10by1sZWZ0Ij09PXR9LHQuY2xhbXBTcGFjaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGguZmxvb3IodCkpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxMSkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fbGFiZWw9IiIsdGhpcy5fY2FwdGlvbj0iIix0aGlzLl9tbmVtb25pYz0tMSx0aGlzLl9pY29uQ2xhc3M9IiIsdGhpcy5faWNvbkxhYmVsPSIiLHRoaXMuX2NsYXNzTmFtZT0iIix0aGlzLl9jbG9zYWJsZT0hMSx0aGlzLl9jaGFuZ2VkPW5ldyBpLlNpZ25hbCh0aGlzKSx0aGlzLm93bmVyPXQub3duZXIsdm9pZCAwIT09dC5sYWJlbCYmKHRoaXMuX2xhYmVsPXQubGFiZWwpLHZvaWQgMCE9PXQubW5lbW9uaWMmJih0aGlzLl9tbmVtb25pYz10Lm1uZW1vbmljKSx2b2lkIDAhPT10Lmljb24mJih0aGlzLl9pY29uQ2xhc3M9dC5pY29uKSx2b2lkIDAhPT10Lmljb25DbGFzcyYmKHRoaXMuX2ljb25DbGFzcz10Lmljb25DbGFzcyksdm9pZCAwIT09dC5pY29uTGFiZWwmJih0aGlzLl9pY29uTGFiZWw9dC5pY29uTGFiZWwpLHZvaWQgMCE9PXQuY2FwdGlvbiYmKHRoaXMuX2NhcHRpb249dC5jYXB0aW9uKSx2b2lkIDAhPT10LmNsYXNzTmFtZSYmKHRoaXMuX2NsYXNzTmFtZT10LmNsYXNzTmFtZSksdm9pZCAwIT09dC5jbG9zYWJsZSYmKHRoaXMuX2Nsb3NhYmxlPXQuY2xvc2FibGUpLHRoaXMuX2RhdGFzZXQ9dC5kYXRhc2V0fHx7fX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJsYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYWJlbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2xhYmVsIT09dCYmKHRoaXMuX2xhYmVsPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibW5lbW9uaWMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW5lbW9uaWN9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9tbmVtb25pYyE9PXQmJih0aGlzLl9tbmVtb25pYz10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LHNldDpmdW5jdGlvbih0KXt0aGlzLmljb25DbGFzcz10fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ljb25DbGFzc30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2ljb25DbGFzcyE9PXQmJih0aGlzLl9pY29uQ2xhc3M9dCx0aGlzLl9jaGFuZ2VkLmVtaXQodm9pZCAwKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faWNvbkxhYmVsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faWNvbkxhYmVsIT09dCYmKHRoaXMuX2ljb25MYWJlbD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNhcHRpb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FwdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2NhcHRpb24hPT10JiYodGhpcy5fY2FwdGlvbj10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNsYXNzTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jbGFzc05hbWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbGFzc05hbWUhPT10JiYodGhpcy5fY2xhc3NOYW1lPXQsdGhpcy5fY2hhbmdlZC5lbWl0KHZvaWQgMCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY2xvc2FibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xvc2FibGV9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9jbG9zYWJsZSE9PXQmJih0aGlzLl9jbG9zYWJsZT10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImRhdGFzZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YXNldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2RhdGFzZXQhPT10JiYodGhpcy5fZGF0YXNldD10LHRoaXMuX2NoYW5nZWQuZW1pdCh2b2lkIDApKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpO2UuVGl0bGU9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9mbj10fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5fZm59LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKHRoaXMuX2ZuKXt2YXIgdD10aGlzLl9mbjt0aGlzLl9mbj1udWxsLHQoKX19LHR9KCk7ZS5EaXNwb3NhYmxlRGVsZWdhdGU9cjt2YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9pdGVtcz1uZXcgU2V0fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzRGlzcG9zZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzcG9zZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5faXRlbXMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHRoaXMuX2l0ZW1zLmNsZWFyKCkpfSx0LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXMuaGFzKHQpfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuYWRkKHQpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5faXRlbXMuZGVsZXRlKHQpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX2l0ZW1zLmNsZWFyKCl9LHR9KCk7ZS5EaXNwb3NhYmxlU2V0PW8sZnVuY3Rpb24odCl7dC5mcm9tPWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyB0O3JldHVybiBpLmVhY2goZSxmdW5jdGlvbih0KXtuLmFkZCh0KX0pLG59fShvPWUuRGlzcG9zYWJsZVNldHx8KGUuRGlzcG9zYWJsZVNldD17fSkpLGUuRGlzcG9zYWJsZVNldD1vfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEtleWJvYXJkTGF5b3V0PWZ1bmN0aW9uKCl7cmV0dXJuIGkua2V5Ym9hcmRMYXlvdXR9LGUuc2V0S2V5Ym9hcmRMYXlvdXQ9ZnVuY3Rpb24odCl7aS5rZXlib2FyZExheW91dD10fTt2YXIgaSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3RoaXMubmFtZT1lLHRoaXMuX2NvZGVzPW4sdGhpcy5fa2V5cz10LmV4dHJhY3RLZXlzKG4pfXJldHVybiB0LnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2tleXMpfSx0LnByb3RvdHlwZS5pc1ZhbGlkS2V5PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluIHRoaXMuX2tleXN9LHQucHJvdG90eXBlLmtleUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY29kZXNbdC5rZXlDb2RlXXx8IiJ9LHR9KCk7ZS5LZXljb2RlTGF5b3V0PXIsZnVuY3Rpb24odCl7dC5leHRyYWN0S2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcih2YXIgbiBpbiB0KWVbdFtuXV09ITA7cmV0dXJuIGV9fShyPWUuS2V5Y29kZUxheW91dHx8KGUuS2V5Y29kZUxheW91dD17fSkpLGUuS2V5Y29kZUxheW91dD1yLGUuRU5fVVM9bmV3IHIoImVuLXVzIix7ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEzOiJFbnRlciIsMTk6IlBhdXNlIiwyNzoiRXNjYXBlIiwzMjoiU3BhY2UiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsNDg6IjAiLDQ5OiIxIiw1MDoiMiIsNTE6IjMiLDUyOiI0Iiw1MzoiNSIsNTQ6IjYiLDU1OiI3Iiw1NjoiOCIsNTc6IjkiLDU5OiI7Iiw2MToiPSIsNjU6IkEiLDY2OiJCIiw2NzoiQyIsNjg6IkQiLDY5OiJFIiw3MDoiRiIsNzE6IkciLDcyOiJIIiw3MzoiSSIsNzQ6IkoiLDc1OiJLIiw3NjoiTCIsNzc6Ik0iLDc4OiJOIiw3OToiTyIsODA6IlAiLDgxOiJRIiw4MjoiUiIsODM6IlMiLDg0OiJUIiw4NToiVSIsODY6IlYiLDg3OiJXIiw4ODoiWCIsODk6IlkiLDkwOiJaIiw5MzoiQ29udGV4dE1lbnUiLDk2OiIwIiw5NzoiMSIsOTg6IjIiLDk5OiIzIiwxMDA6IjQiLDEwMToiNSIsMTAyOiI2IiwxMDM6IjciLDEwNDoiOCIsMTA1OiI5IiwxMDY6IioiLDEwNzoiKyIsMTA5OiItIiwxMTA6Ii4iLDExMToiLyIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTczOiItIiwxODY6IjsiLDE4NzoiPSIsMTg4OiIsIiwxODk6Ii0iLDE5MDoiLiIsMTkxOiIvIiwxOTI6ImAiLDIxOToiWyIsMjIwOiJcXCIsMjIxOiJdIiwyMjI6IicifSksZnVuY3Rpb24odCl7dC5rZXlib2FyZExheW91dD1lLkVOX1VTfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1NiksYz1uKDUpLGg9bigxMSksbD1uKDU1KSxkPW4oNzcpLGY9big3KSxwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOm8uY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2N1cnJlbnRJbmRleD0tMSxpLl90aXRsZXM9W10saS5fcHJldmlvdXNUaXRsZT1udWxsLGkuX2RyYWdEYXRhPW51bGwsaS5fdGFiTW92ZWQ9bmV3IGguU2lnbmFsKGkpLGkuX2N1cnJlbnRDaGFuZ2VkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJDbG9zZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5fdGFiRGV0YWNoUmVxdWVzdGVkPW5ldyBoLlNpZ25hbChpKSxpLl90YWJBY3RpdmF0ZVJlcXVlc3RlZD1uZXcgaC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1UYWJCYXIiKSxpLnNldEZsYWcoZi5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS50YWJzTW92YWJsZT1uLnRhYnNNb3ZhYmxlfHwhMSxpLmFsbG93RGVzZWxlY3Q9bi5hbGxvd0Rlc2VsZWN0fHwhMSxpLmluc2VydEJlaGF2aW9yPW4uaW5zZXJ0QmVoYXZpb3J8fCJzZWxlY3QtdGFiLWlmLW5lZWRlZCIsaS5yZW1vdmVCZWhhdmlvcj1uLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LXRhYi1hZnRlciIsaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLl9vcmllbnRhdGlvbj1uLm9yaWVudGF0aW9ufHwiaG9yaXpvbnRhbCIsaS5kYXRhc2V0Lm9yaWVudGF0aW9uPWkuX29yaWVudGF0aW9uLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fdGl0bGVzLmxlbmd0aD0wLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJNb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYkFjdGl2YXRlUmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RhYkFjdGl2YXRlUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFiQ2xvc2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiQ2xvc2VSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJEZXRhY2hSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGFiRGV0YWNoUmVxdWVzdGVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFRpdGxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpdGxlc1t0aGlzLl9jdXJyZW50SW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdXJyZW50SW5kZXg9dD90aGlzLl90aXRsZXMuaW5kZXhPZih0KTotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImN1cnJlbnRJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50SW5kZXh9LHNldDpmdW5jdGlvbih0KXtpZigodDwwfHx0Pj10aGlzLl90aXRsZXMubGVuZ3RoKSYmKHQ9LTEpLHRoaXMuX2N1cnJlbnRJbmRleCE9PXQpe3ZhciBlPXRoaXMuX2N1cnJlbnRJbmRleCxuPXRoaXMuX3RpdGxlc1tlXXx8bnVsbCxpPXQscj10aGlzLl90aXRsZXNbaV18fG51bGw7dGhpcy5fY3VycmVudEluZGV4PWksdGhpcy5fcHJldmlvdXNUaXRsZT1uLHRoaXMudXBkYXRlKCksdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDplLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6aSxjdXJyZW50VGl0bGU6cn0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0aXRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGl0bGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29udGVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtVGFiQmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRUYWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5zZXJ0VGFiKHRoaXMuX3RpdGxlcy5sZW5ndGgsdCl9LGUucHJvdG90eXBlLmluc2VydFRhYj1mdW5jdGlvbih0LGUpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBuPW8uYXNUaXRsZShlKSxpPXRoaXMuX3RpdGxlcy5pbmRleE9mKG4pLHI9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX3RpdGxlcy5sZW5ndGgpKTtyZXR1cm4tMT09PWk/KHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3RpdGxlcyxyLG4pLG4uY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHRoaXMudXBkYXRlKCksdGhpcy5fYWRqdXN0Q3VycmVudEZvckluc2VydChyLG4pLG4pOihyPT09dGhpcy5fdGl0bGVzLmxlbmd0aCYmci0tLGk9PT1yP246KHMuQXJyYXlFeHQubW92ZSh0aGlzLl90aXRsZXMsaSxyKSx0aGlzLnVwZGF0ZSgpLHRoaXMuX2FkanVzdEN1cnJlbnRGb3JNb3ZlKGksciksbikpfSxlLnByb3RvdHlwZS5yZW1vdmVUYWI9ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVUYWJBdCh0aGlzLl90aXRsZXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZVRhYkF0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbGVhc2VNb3VzZSgpO3ZhciBlPXMuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fdGl0bGVzLHQpO2UmJihlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlPT09dGhpcy5fcHJldmlvdXNUaXRsZSYmKHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCksdGhpcy51cGRhdGUoKSx0aGlzLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlKHQsZSkpfSxlLnByb3RvdHlwZS5jbGVhclRhYnM9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fdGl0bGVzLmxlbmd0aCl7dGhpcy5fcmVsZWFzZU1vdXNlKCk7Zm9yKHZhciB0PTAsZT10aGlzLl90aXRsZXM7dDxlLmxlbmd0aDt0Kyspe2VbdF0uY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpfXZhciBuPXRoaXMuY3VycmVudEluZGV4LGk9dGhpcy5jdXJyZW50VGl0bGU7dGhpcy5fY3VycmVudEluZGV4PS0xLHRoaXMuX3ByZXZpb3VzVGl0bGU9bnVsbCx0aGlzLl90aXRsZXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSwtMSE9PW4mJnRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6bixwcmV2aW91c1RpdGxlOmksY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSl9fSxlLnByb3RvdHlwZS5yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJtb3VzZWRvd24iOnRoaXMuX2V2dE1vdXNlRG93bih0KTticmVhaztjYXNlIm1vdXNlbW92ZSI6dGhpcy5fZXZ0TW91c2VNb3ZlKHQpO2JyZWFrO2Nhc2UibW91c2V1cCI6dGhpcy5fZXZ0TW91c2VVcCh0KTticmVhaztjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl90aXRsZXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5jdXJyZW50VGl0bGUscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10sdT1hPT09aSxjPXU/czpzLW8tMTtyW29dPW4ucmVuZGVyVGFiKHt0aXRsZTphLGN1cnJlbnQ6dSx6SW5kZXg6Y30pfWwuVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksMjc9PT10LmtleUNvZGUmJnRoaXMuX3JlbGVhc2VNb3VzZSgpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VEb3duPWZ1bmN0aW9uKHQpe2lmKCgwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbikmJiF0aGlzLl9kcmFnRGF0YSl7dmFyIGU9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixuPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoZSxmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2lmKC0xIT09biYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2RyYWdEYXRhPXt0YWI6ZVtuXSxpbmRleDpuLHByZXNzWDp0LmNsaWVudFgscHJlc3NZOnQuY2xpZW50WSx0YWJQb3M6LTEsdGFiU2l6ZTotMSx0YWJQcmVzc1BvczotMSx0YXJnZXRJbmRleDotMSx0YWJMYXlvdXQ6bnVsbCxjb250ZW50UmVjdDpudWxsLG92ZXJyaWRlOm51bGwsZHJhZ0FjdGl2ZTohMSxkcmFnQWJvcnRlZDohMSxkZXRhY2hSZXF1ZXN0ZWQ6ITF9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLDEhPT10LmJ1dHRvbikpe3ZhciBpPWVbbl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8KHRoaXMudGFic01vdmFibGUmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKSksdGhpcy5hbGxvd0Rlc2VsZWN0JiZ0aGlzLmN1cnJlbnRJbmRleD09PW4/dGhpcy5jdXJyZW50SW5kZXg9LTE6dGhpcy5jdXJyZW50SW5kZXg9biwtMSE9PXRoaXMuY3VycmVudEluZGV4JiZ0aGlzLl90YWJBY3RpdmF0ZVJlcXVlc3RlZC5lbWl0KHtpbmRleDp0aGlzLmN1cnJlbnRJbmRleCx0aXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pKX19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2RyYWdEYXRhO2lmKGUpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW47aWYoZS5kcmFnQWN0aXZlfHxvLmRyYWdFeGNlZWRlZChlLHQpKXtpZighZS5kcmFnQWN0aXZlKXt2YXIgaT1lLnRhYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsiaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbj8oZS50YWJQb3M9ZS50YWIub2Zmc2V0TGVmdCxlLnRhYlNpemU9aS53aWR0aCxlLnRhYlByZXNzUG9zPWUucHJlc3NYLWkubGVmdCk6KGUudGFiUG9zPWUudGFiLm9mZnNldFRvcCxlLnRhYlNpemU9aS5oZWlnaHQsZS50YWJQcmVzc1Bvcz1lLnByZXNzWS1pLnRvcCksZS50YWJMYXlvdXQ9by5zbmFwVGFiTGF5b3V0KG4sdGhpcy5fb3JpZW50YXRpb24pLGUuY29udGVudFJlY3Q9dGhpcy5jb250ZW50Tm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlLm92ZXJyaWRlPXUuRHJhZy5vdmVycmlkZUN1cnNvcigiZGVmYXVsdCIpLGUudGFiLmNsYXNzTGlzdC5hZGQoInAtbW9kLWRyYWdnaW5nIiksdGhpcy5hZGRDbGFzcygicC1tb2QtZHJhZ2dpbmciKSxlLmRyYWdBY3RpdmU9ITB9aWYoIWUuZGV0YWNoUmVxdWVzdGVkJiZvLmRldGFjaEV4Y2VlZGVkKGUsdCkpe2UuZGV0YWNoUmVxdWVzdGVkPSEwO3ZhciByPWUuaW5kZXgscz10LmNsaWVudFgsYT10LmNsaWVudFksYz1uW3JdLGg9dGhpcy5fdGl0bGVzW3JdO2lmKHRoaXMuX3RhYkRldGFjaFJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOmgsdGFiOmMsY2xpZW50WDpzLGNsaWVudFk6YX0pLGUuZHJhZ0Fib3J0ZWQpcmV0dXJufW8ubGF5b3V0VGFicyhuLGUsdCx0aGlzLl9vcmllbnRhdGlvbil9fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigwPT09dC5idXR0b258fDE9PT10LmJ1dHRvbil7dmFyIG49dGhpcy5fZHJhZ0RhdGE7aWYobil7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcywhMCksIW4uZHJhZ0FjdGl2ZSl7dGhpcy5fZHJhZ0RhdGE9bnVsbDt2YXIgaT10aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHI9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChpLGZ1bmN0aW9uKGUpe3JldHVybiBhLkVsZW1lbnRFeHQuaGl0VGVzdChlLHQuY2xpZW50WCx0LmNsaWVudFkpfSk7aWYociE9PW4uaW5kZXgpcmV0dXJuO3ZhciB1PXRoaXMuX3RpdGxlc1tyXTtpZighdS5jbG9zYWJsZSlyZXR1cm47aWYoMT09PXQuYnV0dG9uKXJldHVybiB2b2lkIHRoaXMuX3RhYkNsb3NlUmVxdWVzdGVkLmVtaXQoe2luZGV4OnIsdGl0bGU6dX0pO3ZhciBoPWlbcl0ucXVlcnlTZWxlY3Rvcih0aGlzLnJlbmRlcmVyLmNsb3NlSWNvblNlbGVjdG9yKTtyZXR1cm4gaCYmaC5jb250YWlucyh0LnRhcmdldCk/dm9pZCB0aGlzLl90YWJDbG9zZVJlcXVlc3RlZC5lbWl0KHtpbmRleDpyLHRpdGxlOnV9KTp2b2lkIDB9aWYoMD09PXQuYnV0dG9uKXtvLmZpbmFsaXplVGFiUG9zaXRpb24obix0aGlzLl9vcmllbnRhdGlvbiksbi50YWIuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtZHJhZ2dpbmciKTt2YXIgbD1vLnBhcnNlVHJhbnNpdGlvbkR1cmF0aW9uKG4udGFiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIW4uZHJhZ0Fib3J0ZWQpe2UuX2RyYWdEYXRhPW51bGwsby5yZXNldFRhYlBvc2l0aW9ucyhlLmNvbnRlbnROb2RlLmNoaWxkcmVuLGUuX29yaWVudGF0aW9uKSxuLm92ZXJyaWRlLmRpc3Bvc2UoKSxlLnJlbW92ZUNsYXNzKCJwLW1vZC1kcmFnZ2luZyIpO3ZhciB0PW4uaW5kZXgsaT1uLnRhcmdldEluZGV4Oy0xIT09aSYmdCE9PWkmJihzLkFycmF5RXh0Lm1vdmUoZS5fdGl0bGVzLHQsaSksZS5fYWRqdXN0Q3VycmVudEZvck1vdmUodCxpKSxlLl90YWJNb3ZlZC5lbWl0KHtmcm9tSW5kZXg6dCx0b0luZGV4OmksdGl0bGU6ZS5fdGl0bGVzW2ldfSksYy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KSl9fSxsKX19fX0sZS5wcm90b3R5cGUuX3JlbGVhc2VNb3VzZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RyYWdEYXRhO3QmJih0aGlzLl9kcmFnRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHQuZHJhZ0Fib3J0ZWQ9ITAsdC5kcmFnQWN0aXZlJiYoby5yZXNldFRhYlBvc2l0aW9ucyh0aGlzLmNvbnRlbnROb2RlLmNoaWxkcmVuLHRoaXMuX29yaWVudGF0aW9uKSx0Lm92ZXJyaWRlLmRpc3Bvc2UoKSx0LnRhYi5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1kcmFnZ2luZyIpLHRoaXMucmVtb3ZlQ2xhc3MoInAtbW9kLWRyYWdnaW5nIikpKX0sZS5wcm90b3R5cGUuX2FkanVzdEN1cnJlbnRGb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmN1cnJlbnRUaXRsZSxpPXRoaXMuX2N1cnJlbnRJbmRleCxyPXRoaXMuaW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC10YWIiPT09cnx8InNlbGVjdC10YWItaWYtbmVlZGVkIj09PXImJi0xPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PXQsdGhpcy5fcHJldmlvdXNUaXRsZT1uLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDppLHByZXZpb3VzVGl0bGU6bixjdXJyZW50SW5kZXg6dCxjdXJyZW50VGl0bGU6ZX0pO2k+PXQmJnRoaXMuX2N1cnJlbnRJbmRleCsrfSxlLnByb3RvdHlwZS5fYWRqdXN0Q3VycmVudEZvck1vdmU9ZnVuY3Rpb24odCxlKXt0aGlzLl9jdXJyZW50SW5kZXg9PT10P3RoaXMuX2N1cnJlbnRJbmRleD1lOnRoaXMuX2N1cnJlbnRJbmRleDx0JiZ0aGlzLl9jdXJyZW50SW5kZXg+PWU/dGhpcy5fY3VycmVudEluZGV4Kys6dGhpcy5fY3VycmVudEluZGV4PnQmJnRoaXMuX2N1cnJlbnRJbmRleDw9ZSYmdGhpcy5fY3VycmVudEluZGV4LS19LGUucHJvdG90eXBlLl9hZGp1c3RDdXJyZW50Rm9yUmVtb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudEluZGV4LGk9dGhpcy5yZW1vdmVCZWhhdmlvcjtpZihuPT09dCl7aWYoMD09PXRoaXMuX3RpdGxlcy5sZW5ndGgpcmV0dXJuIHRoaXMuX2N1cnJlbnRJbmRleD0tMSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4Oi0xLGN1cnJlbnRUaXRsZTpudWxsfSk7aWYoInNlbGVjdC10YWItYWZ0ZXIiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWluKHQsdGhpcy5fdGl0bGVzLmxlbmd0aC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXRhYi1iZWZvcmUiPT09aSlyZXR1cm4gdGhpcy5fY3VycmVudEluZGV4PU1hdGgubWF4KDAsdC0xKSx2b2lkIHRoaXMuX2N1cnJlbnRDaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1RpdGxlOmUsY3VycmVudEluZGV4OnRoaXMuX2N1cnJlbnRJbmRleCxjdXJyZW50VGl0bGU6dGhpcy5jdXJyZW50VGl0bGV9KTtpZigic2VsZWN0LXByZXZpb3VzLXRhYiI9PT1pKXJldHVybiB0aGlzLl9wcmV2aW91c1RpdGxlPyh0aGlzLl9jdXJyZW50SW5kZXg9dGhpcy5fdGl0bGVzLmluZGV4T2YodGhpcy5fcHJldmlvdXNUaXRsZSksdGhpcy5fcHJldmlvdXNUaXRsZT1udWxsKTp0aGlzLl9jdXJyZW50SW5kZXg9TWF0aC5taW4odCx0aGlzLl90aXRsZXMubGVuZ3RoLTEpLHZvaWQgdGhpcy5fY3VycmVudENoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVGl0bGU6ZSxjdXJyZW50SW5kZXg6dGhpcy5fY3VycmVudEluZGV4LGN1cnJlbnRUaXRsZTp0aGlzLmN1cnJlbnRUaXRsZX0pO3RoaXMuX2N1cnJlbnRJbmRleD0tMSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNUaXRsZTplLGN1cnJlbnRJbmRleDotMSxjdXJyZW50VGl0bGU6bnVsbH0pfWVsc2Ugbj50JiZ0aGlzLl9jdXJyZW50SW5kZXgtLX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMudXBkYXRlKCl9LGV9KGYuV2lkZ2V0KTtlLlRhYkJhcj1wLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY2xvc2VJY29uU2VsZWN0b3I9Ii5wLVRhYkJhci10YWJDbG9zZUljb24iLHRoaXMuX3RhYklEPTAsdGhpcy5fdGFiS2V5cz1uZXcgV2Vha01hcH1yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVyVGFiPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUuY2FwdGlvbixuPXRoaXMuY3JlYXRlVGFiS2V5KHQpLGk9dGhpcy5jcmVhdGVUYWJTdHlsZSh0KSxyPXRoaXMuY3JlYXRlVGFiQ2xhc3ModCksbz10aGlzLmNyZWF0ZVRhYkRhdGFzZXQodCk7cmV0dXJuIGwuaC5saSh7a2V5Om4sY2xhc3NOYW1lOnIsdGl0bGU6ZSxzdHlsZTppLGRhdGFzZXQ6b30sdGhpcy5yZW5kZXJJY29uKHQpLHRoaXMucmVuZGVyTGFiZWwodCksdGhpcy5yZW5kZXJDbG9zZUljb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJY29uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSWNvbkNsYXNzKHQpO3JldHVybiBsLmguZGl2KHtjbGFzc05hbWU6ZX0sdC50aXRsZS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLVRhYkJhci10YWJMYWJlbCJ9LHQudGl0bGUubGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJDbG9zZUljb249ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1UYWJCYXItdGFiQ2xvc2VJY29uIn0pfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJLZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGFiS2V5cy5nZXQodC50aXRsZSk7cmV0dXJuIHZvaWQgMD09PWUmJihlPSJ0YWIta2V5LSIrdGhpcy5fdGFiSUQrKyx0aGlzLl90YWJLZXlzLnNldCh0LnRpdGxlLGUpKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVUYWJTdHlsZT1mdW5jdGlvbih0KXtyZXR1cm57ekluZGV4OiIiK3QuekluZGV4fX0sdC5wcm90b3R5cGUuY3JlYXRlVGFiQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtVGFiQmFyLXRhYiI7cmV0dXJuIHQudGl0bGUuY2xhc3NOYW1lJiYoZSs9IiAiK3QudGl0bGUuY2xhc3NOYW1lKSx0LnRpdGxlLmNsb3NhYmxlJiYoZSs9IiBwLW1vZC1jbG9zYWJsZSIpLHQuY3VycmVudCYmKGUrPSIgcC1tb2QtY3VycmVudCIpLGV9LHQucHJvdG90eXBlLmNyZWF0ZVRhYkRhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGl0bGUuZGF0YXNldH0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLVRhYkJhci10YWJJY29uIixuPXQudGl0bGUuaWNvbkNsYXNzO3JldHVybiBuP2UrIiAiK246ZX0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KHA9ZS5UYWJCYXJ8fChlLlRhYkJhcj17fSkpLGUuVGFiQmFyPXAsZnVuY3Rpb24odCl7dC5EUkFHX1RIUkVTSE9MRD01LHQuREVUQUNIX1RIUkVTSE9MRD0yMCx0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLVRhYkJhci1jb250ZW50Iix0LmFwcGVuZENoaWxkKGUpLHR9LHQuYXNUaXRsZT1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGQuVGl0bGU/dDpuZXcgZC5UaXRsZSh0KX0sdC5wYXJzZVRyYW5zaXRpb25EdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gMWUzKihwYXJzZUZsb2F0KGUudHJhbnNpdGlvbkR1cmF0aW9uKXx8MCl9LHQuc25hcFRhYkxheW91dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgpLGk9MCxyPXQubGVuZ3RoO2k8cjsrK2kpe3ZhciBvPXRbaV0scz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvKTtuW2ldPSJob3Jpem9udGFsIj09PWU/e3BvczpvLm9mZnNldExlZnQsc2l6ZTpvLm9mZnNldFdpZHRoLG1hcmdpbjpwYXJzZUZsb2F0KHMubWFyZ2luTGVmdCl8fDB9Ontwb3M6by5vZmZzZXRUb3Asc2l6ZTpvLm9mZnNldEhlaWdodCxtYXJnaW46cGFyc2VGbG9hdChzLm1hcmdpblRvcCl8fDB9fXJldHVybiBufSx0LmRyYWdFeGNlZWRlZD1mdW5jdGlvbihlLG4pe3ZhciBpPU1hdGguYWJzKG4uY2xpZW50WC1lLnByZXNzWCkscj1NYXRoLmFicyhuLmNsaWVudFktZS5wcmVzc1kpO3JldHVybiBpPj10LkRSQUdfVEhSRVNIT0xEfHxyPj10LkRSQUdfVEhSRVNIT0xEfSx0LmRldGFjaEV4Y2VlZGVkPWZ1bmN0aW9uKGUsbil7dmFyIGk9ZS5jb250ZW50UmVjdDtyZXR1cm4gbi5jbGllbnRYPGkubGVmdC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WD49aS5yaWdodCt0LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WTxpLnRvcC10LkRFVEFDSF9USFJFU0hPTER8fG4uY2xpZW50WT49aS5ib3R0b20rdC5ERVRBQ0hfVEhSRVNIT0xEfSx0LmxheW91dFRhYnM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsbyxzLGE7Imhvcml6b250YWwiPT09aT8ocj1lLnByZXNzWCxvPW4uY2xpZW50WC1lLmNvbnRlbnRSZWN0LmxlZnQscz1uLmNsaWVudFgsYT1lLmNvbnRlbnRSZWN0LndpZHRoKToocj1lLnByZXNzWSxvPW4uY2xpZW50WS1lLmNvbnRlbnRSZWN0LnRvcCxzPW4uY2xpZW50WSxhPWUuY29udGVudFJlY3QuaGVpZ2h0KTtmb3IodmFyIHU9ZS5pbmRleCxjPW8tZS50YWJQcmVzc1BvcyxoPWMrZS50YWJTaXplLGw9MCxkPXQubGVuZ3RoO2w8ZDsrK2wpe3ZhciBmPXZvaWQgMCxwPWUudGFiTGF5b3V0W2xdLG09cC5wb3MrKHAuc2l6ZT4+MSk7aWYobDxlLmluZGV4JiZjPG0pZj1lLnRhYlNpemUrZS50YWJMYXlvdXRbbCsxXS5tYXJnaW4rInB4Iix1PU1hdGgubWluKHUsbCk7ZWxzZSBpZihsPmUuaW5kZXgmJmg+bSlmPS1lLnRhYlNpemUtcC5tYXJnaW4rInB4Iix1PU1hdGgubWF4KHUsbCk7ZWxzZSBpZihsPT09ZS5pbmRleCl7dmFyIGc9cy1yLHY9YS0oZS50YWJQb3MrZS50YWJTaXplKTtmPU1hdGgubWF4KC1lLnRhYlBvcyxNYXRoLm1pbihnLHYpKSsicHgifWVsc2UgZj0iIjsiaG9yaXpvbnRhbCI9PT1pP3RbbF0uc3R5bGUubGVmdD1mOnRbbF0uc3R5bGUudG9wPWZ9ZS50YXJnZXRJbmRleD11fSx0LmZpbmFsaXplVGFiUG9zaXRpb249ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKG49Imhvcml6b250YWwiPT09ZT90LmNvbnRlbnRSZWN0LndpZHRoOnQuY29udGVudFJlY3QuaGVpZ2h0LHQudGFyZ2V0SW5kZXg9PT10LmluZGV4KWk9MDtlbHNlIGlmKHQudGFyZ2V0SW5kZXg+dC5pbmRleClpPShyPXQudGFiTGF5b3V0W3QudGFyZ2V0SW5kZXhdKS5wb3Mrci5zaXplLXQudGFiU2l6ZS10LnRhYlBvcztlbHNle3ZhciByO2k9KHI9dC50YWJMYXlvdXRbdC50YXJnZXRJbmRleF0pLnBvcy10LnRhYlBvc312YXIgbz1uLSh0LnRhYlBvcyt0LnRhYlNpemUpLHM9TWF0aC5tYXgoLXQudGFiUG9zLE1hdGgubWluKGksbykpOyJob3Jpem9udGFsIj09PWU/dC50YWIuc3R5bGUubGVmdD1zKyJweCI6dC50YWIuc3R5bGUudG9wPXMrInB4In0sdC5yZXNldFRhYlBvc2l0aW9ucz1mdW5jdGlvbih0LGUpe3MuZWFjaCh0LGZ1bmN0aW9uKHQpeyJob3Jpem9udGFsIj09PWU/dC5zdHlsZS5sZWZ0PSIiOnQuc3R5bGUudG9wPSIifSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2UuYnl0ZUxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT1jKHQpLG49ZVswXSxpPWVbMV07cmV0dXJuIDMqKG4raSkvNC1pfSxlLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPWModCksaT1uWzBdLHM9blsxXSxhPW5ldyBvKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gMyooZStuKS80LW59KDAsaSxzKSksdT0wLGg9cz4wP2ktNDppLGw9MDtsPGg7bCs9NCllPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTh8clt0LmNoYXJDb2RlQXQobCsxKV08PDEyfHJbdC5jaGFyQ29kZUF0KGwrMildPDw2fHJbdC5jaGFyQ29kZUF0KGwrMyldLGFbdSsrXT1lPj4xNiYyNTUsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZTsyPT09cyYmKGU9clt0LmNoYXJDb2RlQXQobCldPDwyfHJbdC5jaGFyQ29kZUF0KGwrMSldPj40LGFbdSsrXT0yNTUmZSk7MT09PXMmJihlPXJbdC5jaGFyQ29kZUF0KGwpXTw8MTB8clt0LmNoYXJDb2RlQXQobCsxKV08PDR8clt0LmNoYXJDb2RlQXQobCsyKV0+PjIsYVt1KytdPWU+PjgmMjU1LGFbdSsrXT0yNTUmZSk7cmV0dXJuIGF9LGUuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10Lmxlbmd0aCxyPW4lMyxvPVtdLHM9MCxhPW4tcjtzPGE7cys9MTYzODMpby5wdXNoKGgodCxzLHMrMTYzODM+YT9hOnMrMTYzODMpKTsxPT09cj8oZT10W24tMV0sby5wdXNoKGlbZT4+Ml0raVtlPDw0JjYzXSsiPT0iKSk6Mj09PXImJihlPSh0W24tMl08PDgpK3Rbbi0xXSxvLnB1c2goaVtlPj4xMF0raVtlPj40JjYzXStpW2U8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIGk9W10scj1bXSxvPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LHM9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGE9MCx1PXMubGVuZ3RoO2E8dTsrK2EpaVthXT1zW2FdLHJbcy5jaGFyQ29kZUF0KGEpXT1hO2Z1bmN0aW9uIGModCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIG49dC5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1uJiYobj1lKSxbbixuPT09ZT8wOjQtbiU0XX1mdW5jdGlvbiBoKHQsZSxuKXtmb3IodmFyIHIsbyxzPVtdLGE9ZTthPG47YSs9MylyPSh0W2FdPDwxNiYxNjcxMTY4MCkrKHRbYSsxXTw8OCY2NTI4MCkrKDI1NSZ0W2ErMl0pLHMucHVzaChpWyhvPXIpPj4xOCY2M10raVtvPj4xMiY2M10raVtvPj42JjYzXStpWzYzJm9dKTtyZXR1cm4gcy5qb2luKCIiKX1yWyItIi5jaGFyQ29kZUF0KDApXT02MixyWyJfIi5jaGFyQ29kZUF0KDApXT02M30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dmFyIGU7dC5nZXRSYW5kb21WYWx1ZXM9KGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuY3J5cHRvfHx3aW5kb3cubXNDcnlwdG8pfHxuKDE0NSl8fG51bGwpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRSYW5kb21WYWx1ZXM/ZnVuY3Rpb24odCl7cmV0dXJuIGUuZ2V0UmFuZG9tVmFsdWVzKHQpfTplJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5yYW5kb21GaWxsU3luYz9mdW5jdGlvbih0KXtyZXR1cm4gZS5yYW5kb21GaWxsU3luYyh0KX06ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmFuZG9tQnl0ZXM/ZnVuY3Rpb24odCl7Zm9yKHZhciBuPWUucmFuZG9tQnl0ZXModC5sZW5ndGgpLGk9MCxyPW4ubGVuZ3RoO2k8cjsrK2kpdFtpXT1uW2ldfTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKW4lND09MCYmKGU9NDI5NDk2NzI5NSpNYXRoLnJhbmRvbSgpPj4+MCksdFtuXT0yNTUmZSxlPj4+PTh9fShlLlJhbmRvbXx8KGUuUmFuZG9tPXt9KSl9LGZ1bmN0aW9uKHQsZSl7dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PW4uY2FsbCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxKS5CdWZmZXIscj1uKDU5KS5UcmFuc2Zvcm07ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyksdGhpcy5fYmxvY2s9aS5hbGxvY1Vuc2FmZSh0KSx0aGlzLl9ibG9ja1NpemU9dCx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfW4oMCkobyxyKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1udWxsO3RyeXt0aGlzLnVwZGF0ZSh0LGUpfWNhdGNoKHQpe2k9dH1uKGkpfSxvLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKHQpe2U9dH10KGUpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZihmdW5jdGlvbih0LGUpe2lmKCFpLmlzQnVmZmVyKHQpJiYic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfSh0LCJEYXRhIiksdGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7aS5pc0J1ZmZlcih0KXx8KHQ9aS5mcm9tKHQsZSkpO2Zvcih2YXIgbj10aGlzLl9ibG9jayxyPTA7dGhpcy5fYmxvY2tPZmZzZXQrdC5sZW5ndGgtcj49dGhpcy5fYmxvY2tTaXplOyl7Zm9yKHZhciBvPXRoaXMuX2Jsb2NrT2Zmc2V0O288dGhpcy5fYmxvY2tTaXplOyluW28rK109dFtyKytdO3RoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTB9Zm9yKDtyPHQubGVuZ3RoOyluW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPXRbcisrXTtmb3IodmFyIHM9MCxhPTgqdC5sZW5ndGg7YT4wOysrcyl0aGlzLl9sZW5ndGhbc10rPWEsKGE9dGhpcy5fbGVuZ3RoW3NdLzQyOTQ5NjcyOTZ8MCk+MCYmKHRoaXMuX2xlbmd0aFtzXS09NDI5NDk2NzI5NiphKTtyZXR1cm4gdGhpc30sby5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQiKX0sby5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMDt2YXIgZT10aGlzLl9kaWdlc3QoKTt2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9ibG9jay5maWxsKDApLHRoaXMuX2Jsb2NrT2Zmc2V0PTA7Zm9yKHZhciBuPTA7bjw0Oysrbil0aGlzLl9sZW5ndGhbbl09MDtyZXR1cm4gZX0sby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX2RpZ2VzdCBpcyBub3QgaW1wbGVtZW50ZWQiKX0sdC5leHBvcnRzPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKGUsaSl7dmFyIHI9big0Myk7dC5leHBvcnRzPXk7dmFyIG8scz1uKDgzKTt5LlJlYWRhYmxlU3RhdGU9YjtuKDYwKS5FdmVudEVtaXR0ZXI7dmFyIGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saXN0ZW5lcnMoZSkubGVuZ3RofSx1PW4oODYpLGM9bigxKS5CdWZmZXIsaD1lLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgbD1uKDMyKTtsLmluaGVyaXRzPW4oMCk7dmFyIGQ9bigxNDcpLGY9dm9pZCAwO2Y9ZCYmZC5kZWJ1Z2xvZz9kLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIHAsbT1uKDE0OCksZz1uKDg3KTtsLmluaGVyaXRzKHksdSk7dmFyIHY9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gYih0LGUpe3Q9dHx8e307dmFyIGk9ZSBpbnN0YW5jZW9mKG89b3x8bigyNCkpO3RoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxpJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LnJlYWRhYmxlT2JqZWN0TW9kZSk7dmFyIHI9dC5oaWdoV2F0ZXJNYXJrLHM9dC5yZWFkYWJsZUhpZ2hXYXRlck1hcmssYT10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPXJ8fDA9PT1yP3I6aSYmKHN8fDA9PT1zKT9zOmEsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmJ1ZmZlcj1uZXcgbSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCx0LmVuY29kaW5nJiYocHx8KHA9big2MykuU3RyaW5nRGVjb2RlciksdGhpcy5kZWNvZGVyPW5ldyBwKHQuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9dC5lbmNvZGluZyl9ZnVuY3Rpb24geSh0KXtpZihvPW98fG4oMjQpLCEodGhpcyBpbnN0YW5jZW9mIHkpKXJldHVybiBuZXcgeSh0KTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBiKHQsdGhpcyksdGhpcy5yZWFkYWJsZT0hMCx0JiYoImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZCYmKHRoaXMuX3JlYWQ9dC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT10LmRlc3Ryb3kpKSx1LmNhbGwodGhpcyl9ZnVuY3Rpb24gXyh0LGUsbixpLHIpe3ZhciBvLHM9dC5fcmVhZGFibGVTdGF0ZTtudWxsPT09ZT8ocy5yZWFkaW5nPSExLGZ1bmN0aW9uKHQsZSl7aWYoZS5lbmRlZClyZXR1cm47aWYoZS5kZWNvZGVyKXt2YXIgbj1lLmRlY29kZXIuZW5kKCk7biYmbi5sZW5ndGgmJihlLmJ1ZmZlci5wdXNoKG4pLGUubGVuZ3RoKz1lLm9iamVjdE1vZGU/MTpuLmxlbmd0aCl9ZS5lbmRlZD0hMCxTKHQpfSh0LHMpKToocnx8KG89ZnVuY3Rpb24odCxlKXt2YXIgbjtpPWUsYy5pc0J1ZmZlcihpKXx8aSBpbnN0YW5jZW9mIGh8fCJzdHJpbmciPT10eXBlb2YgZXx8dm9pZCAwPT09ZXx8dC5vYmplY3RNb2RlfHwobj1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpO3ZhciBpO3JldHVybiBufShzLGUpKSxvP3QuZW1pdCgiZXJyb3IiLG8pOnMub2JqZWN0TW9kZXx8ZSYmZS5sZW5ndGg+MD8oInN0cmluZyI9PXR5cGVvZiBlfHxzLm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PWMucHJvdG90eXBlfHwoZT1mdW5jdGlvbih0KXtyZXR1cm4gYy5mcm9tKHQpfShlKSksaT9zLmVuZEVtaXR0ZWQ/dC5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpKTp3KHQscyxlLCEwKTpzLmVuZGVkP3QuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSk6KHMucmVhZGluZz0hMSxzLmRlY29kZXImJiFuPyhlPXMuZGVjb2Rlci53cml0ZShlKSxzLm9iamVjdE1vZGV8fDAhPT1lLmxlbmd0aD93KHQscyxlLCExKTpBKHQscykpOncodCxzLGUsITEpKSk6aXx8KHMucmVhZGluZz0hMSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4hdC5lbmRlZCYmKHQubmVlZFJlYWRhYmxlfHx0Lmxlbmd0aDx0LmhpZ2hXYXRlck1hcmt8fDA9PT10Lmxlbmd0aCl9KHMpfWZ1bmN0aW9uIHcodCxlLG4saSl7ZS5mbG93aW5nJiYwPT09ZS5sZW5ndGgmJiFlLnN5bmM/KHQuZW1pdCgiZGF0YSIsbiksdC5yZWFkKDApKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoLGk/ZS5idWZmZXIudW5zaGlmdChuKTplLmJ1ZmZlci5wdXNoKG4pLGUubmVlZFJlYWRhYmxlJiZTKHQpKSxBKHQsZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHkucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSkseS5wcm90b3R5cGUuZGVzdHJveT1nLmRlc3Ryb3kseS5wcm90b3R5cGUuX3VuZGVzdHJveT1nLnVuZGVzdHJveSx5LnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe3RoaXMucHVzaChudWxsKSxlKHQpfSx5LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBpLm9iamVjdE1vZGU/bj0hMDoic3RyaW5nIj09dHlwZW9mIHQmJigoZT1lfHxpLmRlZmF1bHRFbmNvZGluZykhPT1pLmVuY29kaW5nJiYodD1jLmZyb20odCxlKSxlPSIiKSxuPSEwKSxfKHRoaXMsdCxlLCExLG4pfSx5LnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBfKHRoaXMsdCxudWxsLCEwLCExKX0seS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30seS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHB8fChwPW4oNjMpLlN0cmluZ0RlY29kZXIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1uZXcgcCh0KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXQsdGhpc307dmFyIHg9ODM4ODYwODtmdW5jdGlvbiBNKHQsZSl7cmV0dXJuIHQ8PTB8fDA9PT1lLmxlbmd0aCYmZS5lbmRlZD8wOmUub2JqZWN0TW9kZT8xOnQhPXQ/ZS5mbG93aW5nJiZlLmxlbmd0aD9lLmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoOmUubGVuZ3RoOih0PmUuaGlnaFdhdGVyTWFyayYmKGUuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gdD49eD90PXg6KHQtLSx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCx0fD10Pj4+MTYsdCsrKSx0fSh0KSksdDw9ZS5sZW5ndGg/dDplLmVuZGVkP2UubGVuZ3RoOihlLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gUyh0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2UubmVlZFJlYWRhYmxlPSExLGUuZW1pdHRlZFJlYWRhYmxlfHwoZigiZW1pdFJlYWRhYmxlIixlLmZsb3dpbmcpLGUuZW1pdHRlZFJlYWRhYmxlPSEwLGUuc3luYz9yLm5leHRUaWNrKEUsdCk6RSh0KSl9ZnVuY3Rpb24gRSh0KXtmKCJlbWl0IHJlYWRhYmxlIiksdC5lbWl0KCJyZWFkYWJsZSIpLFAodCl9ZnVuY3Rpb24gQSh0LGUpe2UucmVhZGluZ01vcmV8fChlLnJlYWRpbmdNb3JlPSEwLHIubmV4dFRpY2soQyx0LGUpKX1mdW5jdGlvbiBDKHQsZSl7Zm9yKHZhciBuPWUubGVuZ3RoOyFlLnJlYWRpbmcmJiFlLmZsb3dpbmcmJiFlLmVuZGVkJiZlLmxlbmd0aDxlLmhpZ2hXYXRlck1hcmsmJihmKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHQucmVhZCgwKSxuIT09ZS5sZW5ndGgpOyluPWUubGVuZ3RoO2UucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gayh0KXtmKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSx0LnJlYWQoMCl9ZnVuY3Rpb24gTyh0LGUpe2UucmVhZGluZ3x8KGYoInJlc3VtZSByZWFkIDAiKSx0LnJlYWQoMCkpLGUucmVzdW1lU2NoZWR1bGVkPSExLGUuYXdhaXREcmFpbj0wLHQuZW1pdCgicmVzdW1lIiksUCh0KSxlLmZsb3dpbmcmJiFlLnJlYWRpbmcmJnQucmVhZCgwKX1mdW5jdGlvbiBQKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7Zm9yKGYoImZsb3ciLGUuZmxvd2luZyk7ZS5mbG93aW5nJiZudWxsIT09dC5yZWFkKCk7KTt9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDooZS5vYmplY3RNb2RlP249ZS5idWZmZXIuc2hpZnQoKTohdHx8dD49ZS5sZW5ndGg/KG49ZS5kZWNvZGVyP2UuYnVmZmVyLmpvaW4oIiIpOjE9PT1lLmJ1ZmZlci5sZW5ndGg/ZS5idWZmZXIuaGVhZC5kYXRhOmUuYnVmZmVyLmNvbmNhdChlLmxlbmd0aCksZS5idWZmZXIuY2xlYXIoKSk6bj1mdW5jdGlvbih0LGUsbil7dmFyIGk7dDxlLmhlYWQuZGF0YS5sZW5ndGg/KGk9ZS5oZWFkLmRhdGEuc2xpY2UoMCx0KSxlLmhlYWQuZGF0YT1lLmhlYWQuZGF0YS5zbGljZSh0KSk6aT10PT09ZS5oZWFkLmRhdGEubGVuZ3RoP2Uuc2hpZnQoKTpuP2Z1bmN0aW9uKHQsZSl7dmFyIG49ZS5oZWFkLGk9MSxyPW4uZGF0YTt0LT1yLmxlbmd0aDtmb3IoO249bi5uZXh0Oyl7dmFyIG89bi5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKHM9PT1vLmxlbmd0aD9yKz1vOnIrPW8uc2xpY2UoMCx0KSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsraSxuLm5leHQ/ZS5oZWFkPW4ubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9bixuLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytpfXJldHVybiBlLmxlbmd0aC09aSxyfSh0LGUpOmZ1bmN0aW9uKHQsZSl7dmFyIG49Yy5hbGxvY1Vuc2FmZSh0KSxpPWUuaGVhZCxyPTE7aS5kYXRhLmNvcHkobiksdC09aS5kYXRhLmxlbmd0aDtmb3IoO2k9aS5uZXh0Oyl7dmFyIG89aS5kYXRhLHM9dD5vLmxlbmd0aD9vLmxlbmd0aDp0O2lmKG8uY29weShuLG4ubGVuZ3RoLXQsMCxzKSwwPT09KHQtPXMpKXtzPT09by5sZW5ndGg/KCsrcixpLm5leHQ/ZS5oZWFkPWkubmV4dDplLmhlYWQ9ZS50YWlsPW51bGwpOihlLmhlYWQ9aSxpLmRhdGE9by5zbGljZShzKSk7YnJlYWt9KytyfXJldHVybiBlLmxlbmd0aC09cixufSh0LGUpO3JldHVybiBpfSh0LGUuYnVmZmVyLGUuZGVjb2Rlciksbik7dmFyIG59ZnVuY3Rpb24gaih0KXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2lmKGUubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCciZW5kUmVhZGFibGUoKSIgY2FsbGVkIG9uIG5vbi1lbXB0eSBzdHJlYW0nKTtlLmVuZEVtaXR0ZWR8fChlLmVuZGVkPSEwLHIubmV4dFRpY2soSSxlLHQpKX1mdW5jdGlvbiBJKHQsZSl7dC5lbmRFbWl0dGVkfHwwIT09dC5sZW5ndGh8fCh0LmVuZEVtaXR0ZWQ9ITAsZS5yZWFkYWJsZT0hMSxlLmVtaXQoImVuZCIpKX1mdW5jdGlvbiBMKHQsZSl7Zm9yKHZhciBuPTAsaT10Lmxlbmd0aDtuPGk7bisrKWlmKHRbbl09PT1lKXJldHVybiBuO3JldHVybi0xfXkucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24odCl7ZigicmVhZCIsdCksdD1wYXJzZUludCh0LDEwKTt2YXIgZT10aGlzLl9yZWFkYWJsZVN0YXRlLG49dDtpZigwIT09dCYmKGUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09dCYmZS5uZWVkUmVhZGFibGUmJihlLmxlbmd0aD49ZS5oaWdoV2F0ZXJNYXJrfHxlLmVuZGVkKSlyZXR1cm4gZigicmVhZDogZW1pdFJlYWRhYmxlIixlLmxlbmd0aCxlLmVuZGVkKSwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/aih0aGlzKTpTKHRoaXMpLG51bGw7aWYoMD09PSh0PU0odCxlKSkmJmUuZW5kZWQpcmV0dXJuIDA9PT1lLmxlbmd0aCYmaih0aGlzKSxudWxsO3ZhciBpLHI9ZS5uZWVkUmVhZGFibGU7cmV0dXJuIGYoIm5lZWQgcmVhZGFibGUiLHIpLCgwPT09ZS5sZW5ndGh8fGUubGVuZ3RoLXQ8ZS5oaWdoV2F0ZXJNYXJrKSYmZigibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLHI9ITApLGUuZW5kZWR8fGUucmVhZGluZz9mKCJyZWFkaW5nIG9yIGVuZGVkIixyPSExKTpyJiYoZigiZG8gcmVhZCIpLGUucmVhZGluZz0hMCxlLnN5bmM9ITAsMD09PWUubGVuZ3RoJiYoZS5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoZS5oaWdoV2F0ZXJNYXJrKSxlLnN5bmM9ITEsZS5yZWFkaW5nfHwodD1NKG4sZSkpKSxudWxsPT09KGk9dD4wP1QodCxlKTpudWxsKT8oZS5uZWVkUmVhZGFibGU9ITAsdD0wKTplLmxlbmd0aC09dCwwPT09ZS5sZW5ndGgmJihlLmVuZGVkfHwoZS5uZWVkUmVhZGFibGU9ITApLG4hPT10JiZlLmVuZGVkJiZqKHRoaXMpKSxudWxsIT09aSYmdGhpcy5lbWl0KCJkYXRhIixpKSxpfSx5LnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbih0KXt0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIl9yZWFkKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSx5LnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKG8ucGlwZXNDb3VudCl7Y2FzZSAwOm8ucGlwZXM9dDticmVhaztjYXNlIDE6by5waXBlcz1bby5waXBlcyx0XTticmVhaztkZWZhdWx0Om8ucGlwZXMucHVzaCh0KX1vLnBpcGVzQ291bnQrPTEsZigicGlwZSBjb3VudD0lZCBvcHRzPSVqIixvLnBpcGVzQ291bnQsZSk7dmFyIHU9KCFlfHwhMSE9PWUuZW5kKSYmdCE9PWkuc3Rkb3V0JiZ0IT09aS5zdGRlcnI/aDp5O2Z1bmN0aW9uIGMoZSxpKXtmKCJvbnVucGlwZSIpLGU9PT1uJiZpJiYhMT09PWkuaGFzVW5waXBlZCYmKGkuaGFzVW5waXBlZD0hMCxmKCJjbGVhbnVwIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHQucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsYiksdC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGwpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSx0LnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLGMpLG4ucmVtb3ZlTGlzdGVuZXIoImVuZCIsaCksbi5yZW1vdmVMaXN0ZW5lcigiZW5kIix5KSxuLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixtKSxkPSEwLCFvLmF3YWl0RHJhaW58fHQuX3dyaXRhYmxlU3RhdGUmJiF0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbnx8bCgpKX1mdW5jdGlvbiBoKCl7Zigib25lbmQiKSx0LmVuZCgpfW8uZW5kRW1pdHRlZD9yLm5leHRUaWNrKHUpOm4ub25jZSgiZW5kIix1KSx0Lm9uKCJ1bnBpcGUiLGMpO3ZhciBsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7ZigicGlwZU9uRHJhaW4iLGUuYXdhaXREcmFpbiksZS5hd2FpdERyYWluJiZlLmF3YWl0RHJhaW4tLSwwPT09ZS5hd2FpdERyYWluJiZhKHQsImRhdGEiKSYmKGUuZmxvd2luZz0hMCxQKHQpKX19KG4pO3Qub24oImRyYWluIixsKTt2YXIgZD0hMTt2YXIgcD0hMTtmdW5jdGlvbiBtKGUpe2YoIm9uZGF0YSIpLHA9ITEsITEhPT10LndyaXRlKGUpfHxwfHwoKDE9PT1vLnBpcGVzQ291bnQmJm8ucGlwZXM9PT10fHxvLnBpcGVzQ291bnQ+MSYmLTEhPT1MKG8ucGlwZXMsdCkpJiYhZCYmKGYoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsbi5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKSxuLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKyxwPSEwKSxuLnBhdXNlKCkpfWZ1bmN0aW9uIGcoZSl7Zigib25lcnJvciIsZSkseSgpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixnKSwwPT09YSh0LCJlcnJvciIpJiZ0LmVtaXQoImVycm9yIixlKX1mdW5jdGlvbiB2KCl7dC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixiKSx5KCl9ZnVuY3Rpb24gYigpe2YoIm9uZmluaXNoIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHYpLHkoKX1mdW5jdGlvbiB5KCl7ZigidW5waXBlIiksbi51bnBpcGUodCl9cmV0dXJuIG4ub24oImRhdGEiLG0pLGZ1bmN0aW9uKHQsZSxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHQucHJlcGVuZExpc3RlbmVyKGUsbik7dC5fZXZlbnRzJiZ0Ll9ldmVudHNbZV0/cyh0Ll9ldmVudHNbZV0pP3QuX2V2ZW50c1tlXS51bnNoaWZ0KG4pOnQuX2V2ZW50c1tlXT1bbix0Ll9ldmVudHNbZV1dOnQub24oZSxuKX0odCwiZXJyb3IiLGcpLHQub25jZSgiY2xvc2UiLHYpLHQub25jZSgiZmluaXNoIixiKSx0LmVtaXQoInBpcGUiLG4pLG8uZmxvd2luZ3x8KGYoInBpcGUgcmVzdW1lIiksbi5yZXN1bWUoKSksdH0seS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj17aGFzVW5waXBlZDohMX07aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlcz90aGlzOih0fHwodD1lLnBpcGVzKSxlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExLHQmJnQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpO2lmKCF0KXt2YXIgaT1lLnBpcGVzLHI9ZS5waXBlc0NvdW50O2UucGlwZXM9bnVsbCxlLnBpcGVzQ291bnQ9MCxlLmZsb3dpbmc9ITE7Zm9yKHZhciBvPTA7bzxyO28rKylpW29dLmVtaXQoInVucGlwZSIsdGhpcyxuKTtyZXR1cm4gdGhpc312YXIgcz1MKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zP3RoaXM6KGUucGlwZXMuc3BsaWNlKHMsMSksZS5waXBlc0NvdW50LT0xLDE9PT1lLnBpcGVzQ291bnQmJihlLnBpcGVzPWUucGlwZXNbMF0pLHQuZW1pdCgidW5waXBlIix0aGlzLG4pLHRoaXMpfSx5LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3ZhciBuPXUucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LGUpO2lmKCJkYXRhIj09PXQpITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJnRoaXMucmVzdW1lKCk7ZWxzZSBpZigicmVhZGFibGUiPT09dCl7dmFyIGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtpLmVuZEVtaXR0ZWR8fGkucmVhZGFibGVMaXN0ZW5pbmd8fChpLnJlYWRhYmxlTGlzdGVuaW5nPWkubmVlZFJlYWRhYmxlPSEwLGkuZW1pdHRlZFJlYWRhYmxlPSExLGkucmVhZGluZz9pLmxlbmd0aCYmUyh0aGlzKTpyLm5leHRUaWNrKGssdGhpcykpfXJldHVybiBufSx5LnByb3RvdHlwZS5hZGRMaXN0ZW5lcj15LnByb3RvdHlwZS5vbix5LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiB0LmZsb3dpbmd8fChmKCJyZXN1bWUiKSx0LmZsb3dpbmc9ITAsZnVuY3Rpb24odCxlKXtlLnJlc3VtZVNjaGVkdWxlZHx8KGUucmVzdW1lU2NoZWR1bGVkPSEwLHIubmV4dFRpY2soTyx0LGUpKX0odGhpcyx0KSksdGhpc30seS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gZigiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoZigicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzfSx5LnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9yZWFkYWJsZVN0YXRlLGk9ITE7Zm9yKHZhciByIGluIHQub24oImVuZCIsZnVuY3Rpb24oKXtpZihmKCJ3cmFwcGVkIGVuZCIpLG4uZGVjb2RlciYmIW4uZW5kZWQpe3ZhciB0PW4uZGVjb2Rlci5lbmQoKTt0JiZ0Lmxlbmd0aCYmZS5wdXNoKHQpfWUucHVzaChudWxsKX0pLHQub24oImRhdGEiLGZ1bmN0aW9uKHIpeyhmKCJ3cmFwcGVkIGRhdGEiKSxuLmRlY29kZXImJihyPW4uZGVjb2Rlci53cml0ZShyKSksbi5vYmplY3RNb2RlJiZudWxsPT1yKXx8KG4ub2JqZWN0TW9kZXx8ciYmci5sZW5ndGgpJiYoZS5wdXNoKHIpfHwoaT0hMCx0LnBhdXNlKCkpKX0pLHQpdm9pZCAwPT09dGhpc1tyXSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbcl0mJih0aGlzW3JdPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdLmFwcGx5KHQsYXJndW1lbnRzKX19KHIpKTtmb3IodmFyIG89MDtvPHYubGVuZ3RoO28rKyl0Lm9uKHZbb10sdGhpcy5lbWl0LmJpbmQodGhpcyx2W29dKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oZSl7Zigid3JhcHBlZCBfcmVhZCIsZSksaSYmKGk9ITEsdC5yZXN1bWUoKSl9LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLHkuX2Zyb21MaXN0PVR9KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjApLkV2ZW50RW1pdHRlcn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQzKTtmdW5jdGlvbiByKHQsZSl7dC5lbWl0KCJlcnJvciIsZSl9dC5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxvPXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkLHM9dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7cmV0dXJuIG98fHM/KGU/ZSh0KTohdHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fGkubmV4dFRpY2socix0aGlzLHQpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLGZ1bmN0aW9uKHQpeyFlJiZ0PyhpLm5leHRUaWNrKHIsbix0KSxuLl93cml0YWJsZVN0YXRlJiYobi5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITApKTplJiZlKHQpfSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXM7dmFyIGk9bigyNCkscj1uKDMyKTtmdW5jdGlvbiBvKHQsZSl7dmFyIG49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bi50cmFuc2Zvcm1pbmc9ITE7dmFyIGk9bi53cml0ZWNiO2lmKCFpKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgRXJyb3IoIndyaXRlIGNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpKTtuLndyaXRlY2h1bms9bnVsbCxuLndyaXRlY2I9bnVsbCxudWxsIT1lJiZ0aGlzLnB1c2goZSksaSh0KTt2YXIgcj10aGlzLl9yZWFkYWJsZVN0YXRlO3IucmVhZGluZz0hMSwoci5uZWVkUmVhZGFibGV8fHIubGVuZ3RoPHIuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoci5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTtpLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06by5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT10LnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIHQuZmx1c2gmJih0aGlzLl9mbHVzaD10LmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixhKX1mdW5jdGlvbiBhKCl7dmFyIHQ9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fZmx1c2g/dGhpcy5fZmx1c2goZnVuY3Rpb24oZSxuKXt1KHQsZSxuKX0pOnUodGhpcyxudWxsLG51bGwpfWZ1bmN0aW9uIHUodCxlLG4pe2lmKGUpcmV0dXJuIHQuZW1pdCgiZXJyb3IiLGUpO2lmKG51bGwhPW4mJnQucHVzaChuKSx0Ll93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiB3cy5sZW5ndGggIT0gMCIpO2lmKHQuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgRXJyb3IoIkNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiBzdGlsbCB0cmFuc2Zvcm1pbmciKTtyZXR1cm4gdC5wdXNoKG51bGwpfXIuaW5oZXJpdHM9bigwKSxyLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGkucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LHMucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLG4pe3Rocm93IG5ldyBFcnJvcigiX3RyYW5zZm9ybSgpIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxzLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKGkud3JpdGVjYj1uLGkud3JpdGVjaHVuaz10LGkud3JpdGVlbmNvZGluZz1lLCFpLnRyYW5zZm9ybWluZyl7dmFyIHI9dGhpcy5fcmVhZGFibGVTdGF0ZTsoaS5uZWVkVHJhbnNmb3JtfHxyLm5lZWRSZWFkYWJsZXx8ci5sZW5ndGg8ci5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChyLmhpZ2hXYXRlck1hcmspfX0scy5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbCE9PWUud3JpdGVjaHVuayYmZS53cml0ZWNiJiYhZS50cmFuc2Zvcm1pbmc/KGUudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShlLndyaXRlY2h1bmssZS53cml0ZWVuY29kaW5nLGUuYWZ0ZXJUcmFuc2Zvcm0pKTplLm5lZWRUcmFuc2Zvcm09ITB9LHMucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsdCxmdW5jdGlvbih0KXtlKHQpLG4uZW1pdCgiY2xvc2UiKX0pfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0sYT1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PWEsci5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGModCxlLG4pe3JldHVybiBuXnQmKGVebil9ZnVuY3Rpb24gaCh0LGUsbil7cmV0dXJuIHQmZXxuJih0fGUpfWZ1bmN0aW9uIGwodCl7cmV0dXJuKHQ+Pj4yfHQ8PDMwKV4odD4+PjEzfHQ8PDE5KV4odD4+PjIyfHQ8PDEwKX1mdW5jdGlvbiBkKHQpe3JldHVybih0Pj4+Nnx0PDwyNileKHQ+Pj4xMXx0PDwyMSleKHQ+Pj4yNXx0PDw3KX1mdW5jdGlvbiBmKHQpe3JldHVybih0Pj4+N3x0PDwyNSleKHQ+Pj4xOHx0PDwxNCledD4+PjN9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxwPTB8dGhpcy5fZixtPTB8dGhpcy5fZyxnPTB8dGhpcy5faCx2PTA7djwxNjsrK3Ypblt2XT10LnJlYWRJbnQzMkJFKDQqdik7Zm9yKDt2PDY0OysrdiluW3ZdPTB8KCgoZT1uW3YtMl0pPj4+MTd8ZTw8MTUpXihlPj4+MTl8ZTw8MTMpXmU+Pj4xMCkrblt2LTddK2Yoblt2LTE1XSkrblt2LTE2XTtmb3IodmFyIGI9MDtiPDY0OysrYil7dmFyIHk9ZytkKHUpK2ModSxwLG0pK3NbYl0rbltiXXwwLF89bChpKStoKGkscixvKXwwO2c9bSxtPXAscD11LHU9YSt5fDAsYT1vLG89cixyPWksaT15K198MH10aGlzLl9hPWkrdGhpcy5fYXwwLHRoaXMuX2I9cit0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPWErdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDAsdGhpcy5fZj1wK3RoaXMuX2Z8MCx0aGlzLl9nPW0rdGhpcy5fZ3wwLHRoaXMuX2g9Zyt0aGlzLl9ofDB9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9by5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIHQud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksdC53cml0ZUludDMyQkUodGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLHQud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gbl50JihlXm4pfWZ1bmN0aW9uIGgodCxlLG4pe3JldHVybiB0JmV8biYodHxlKX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuKHQ+Pj4yOHxlPDw0KV4oZT4+PjJ8dDw8MzApXihlPj4+N3x0PDwyNSl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybih0Pj4+MTR8ZTw8MTgpXih0Pj4+MTh8ZTw8MTQpXihlPj4+OXx0PDwyMyl9ZnVuY3Rpb24gZih0LGUpe3JldHVybih0Pj4+MXxlPDwzMSleKHQ+Pj44fGU8PDI0KV50Pj4+N31mdW5jdGlvbiBwKHQsZSl7cmV0dXJuKHQ+Pj4xfGU8PDMxKV4odD4+Pjh8ZTw8MjQpXih0Pj4+N3xlPDwyNSl9ZnVuY3Rpb24gbSh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyledD4+PjZ9ZnVuY3Rpb24gZyh0LGUpe3JldHVybih0Pj4+MTl8ZTw8MTMpXihlPj4+Mjl8dDw8MyleKHQ+Pj42fGU8PDI2KX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQ+Pj4wPGU+Pj4wPzE6MH1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3csbj0wfHRoaXMuX2FoLGk9MHx0aGlzLl9iaCxyPTB8dGhpcy5fY2gsbz0wfHRoaXMuX2RoLGE9MHx0aGlzLl9laCx1PTB8dGhpcy5fZmgsYj0wfHRoaXMuX2doLHk9MHx0aGlzLl9oaCxfPTB8dGhpcy5fYWwsdz0wfHRoaXMuX2JsLHg9MHx0aGlzLl9jbCxNPTB8dGhpcy5fZGwsUz0wfHRoaXMuX2VsLEU9MHx0aGlzLl9mbCxBPTB8dGhpcy5fZ2wsQz0wfHRoaXMuX2hsLGs9MDtrPDMyO2srPTIpZVtrXT10LnJlYWRJbnQzMkJFKDQqayksZVtrKzFdPXQucmVhZEludDMyQkUoNCprKzQpO2Zvcig7azwxNjA7ays9Mil7dmFyIE89ZVtrLTMwXSxQPWVbay0zMCsxXSxUPWYoTyxQKSxqPXAoUCxPKSxJPW0oTz1lW2stNF0sUD1lW2stNCsxXSksTD1nKFAsTyksQj1lW2stMTRdLEQ9ZVtrLTE0KzFdLFI9ZVtrLTMyXSx6PWVbay0zMisxXSxOPWorRHwwLFc9VCtCK3YoTixqKXwwO1c9KFc9VytJK3YoTj1OK0x8MCxMKXwwKStSK3YoTj1OK3p8MCx6KXwwLGVba109VyxlW2srMV09Tn1mb3IodmFyIHE9MDtxPDE2MDtxKz0yKXtXPWVbcV0sTj1lW3ErMV07dmFyIEg9aChuLGksciksRj1oKF8sdyx4KSxWPWwobixfKSxVPWwoXyxuKSxLPWQoYSxTKSxZPWQoUyxhKSxYPXNbcV0sJD1zW3ErMV0sRz1jKGEsdSxiKSxKPWMoUyxFLEEpLFo9QytZfDAsUT15K0srdihaLEMpfDA7UT0oUT0oUT1RK0crdihaPVorSnwwLEopfDApK1grdihaPVorJHwwLCQpfDApK1crdihaPVorTnwwLE4pfDA7dmFyIHR0PVUrRnwwLGV0PVYrSCt2KHR0LFUpfDA7eT1iLEM9QSxiPXUsQT1FLHU9YSxFPVMsYT1vK1ErdihTPU0rWnwwLE0pfDAsbz1yLE09eCxyPWkseD13LGk9bix3PV8sbj1RK2V0K3YoXz1aK3R0fDAsWil8MH10aGlzLl9hbD10aGlzLl9hbCtffDAsdGhpcy5fYmw9dGhpcy5fYmwrd3wwLHRoaXMuX2NsPXRoaXMuX2NsK3h8MCx0aGlzLl9kbD10aGlzLl9kbCtNfDAsdGhpcy5fZWw9dGhpcy5fZWwrU3wwLHRoaXMuX2ZsPXRoaXMuX2ZsK0V8MCx0aGlzLl9nbD10aGlzLl9nbCtBfDAsdGhpcy5faGw9dGhpcy5faGwrQ3wwLHRoaXMuX2FoPXRoaXMuX2FoK24rdih0aGlzLl9hbCxfKXwwLHRoaXMuX2JoPXRoaXMuX2JoK2krdih0aGlzLl9ibCx3KXwwLHRoaXMuX2NoPXRoaXMuX2NoK3Irdih0aGlzLl9jbCx4KXwwLHRoaXMuX2RoPXRoaXMuX2RoK28rdih0aGlzLl9kbCxNKXwwLHRoaXMuX2VoPXRoaXMuX2VoK2Erdih0aGlzLl9lbCxTKXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK3Urdih0aGlzLl9mbCxFKXwwLHRoaXMuX2doPXRoaXMuX2doK2Irdih0aGlzLl9nbCxBKXwwLHRoaXMuX2hoPXRoaXMuX2hoK3krdih0aGlzLl9obCxDKXwwfSx1LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciB0PW8uYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIGUoZSxuLGkpe3Qud3JpdGVJbnQzMkJFKGUsaSksdC53cml0ZUludDMyQkUobixpKzQpfXJldHVybiBlKHRoaXMuX2FoLHRoaXMuX2FsLDApLGUodGhpcy5fYmgsdGhpcy5fYmwsOCksZSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksZSh0aGlzLl9maCx0aGlzLl9mbCw0MCksZSh0aGlzLl9naCx0aGlzLl9nbCw0OCksZSh0aGlzLl9oaCx0aGlzLl9obCw1NiksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigwKSxyPW4oMTYxKSxvPW4oMjEpLHM9bigxKS5CdWZmZXIsYT1uKDkyKSx1PW4oNjQpLGM9big2NSksaD1zLmFsbG9jKDEyOCk7ZnVuY3Rpb24gbCh0LGUpe28uY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIGUmJihlPXMuZnJvbShlKSk7dmFyIG49InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0Oyh0aGlzLl9hbGc9dCx0aGlzLl9rZXk9ZSxlLmxlbmd0aD5uKT9lPSgicm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSkudXBkYXRlKGUpLmRpZ2VzdCgpOmUubGVuZ3RoPG4mJihlPXMuY29uY2F0KFtlLGhdLG4pKTtmb3IodmFyIGk9dGhpcy5faXBhZD1zLmFsbG9jVW5zYWZlKG4pLHI9dGhpcy5fb3BhZD1zLmFsbG9jVW5zYWZlKG4pLGE9MDthPG47YSsrKWlbYV09NTReZVthXSxyW2FdPTkyXmVbYV07dGhpcy5faGFzaD0icm1kMTYwIj09PXQ/bmV3IHU6Yyh0KSx0aGlzLl9oYXNoLnVwZGF0ZShpKX1pKGwsbyksbC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl9oYXNoLnVwZGF0ZSh0KX0sbC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IHU6Yyh0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKHQpLmRpZ2VzdCgpfSx0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4icm1kMTYwIj09PSh0PXQudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09dD9uZXcgbCgicm1kMTYwIixlKToibWQ1Ij09PXQ/bmV3IHIoYSxlKTpuZXcgbCh0LGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4obmV3IGkpLnVwZGF0ZSh0KS5kaWdlc3QoKX19LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17c2hhMjI0V2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhMjI0IixpZDoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSxzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJSU0EtU0hBMjU2Ijp7c2lnbjoiZWNkc2EvcnNhIixoYXNoOiJzaGEyNTYiLGlkOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LHNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uOntzaWduOiJyc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOntzaWduOiJlY2RzYS9yc2EiLGhhc2g6InNoYTM4NCIsaWQ6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sc2hhNTEyV2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6e3NpZ246ImVjZHNhL3JzYSIsaGFzaDoic2hhNTEyIixpZDoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOntzaWduOiJyc2EiLGhhc2g6InNoYTEiLGlkOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7c2lnbjoiZWNkc2EiLGhhc2g6InNoYTEiLGlkOiIifSxzaGEyNTY6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSxzaGEyMjQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEyMjQiLGlkOiIifSxzaGEzODQ6e3NpZ246ImVjZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSxzaGE1MTI6e3NpZ246ImVjZHNhIixoYXNoOiJzaGE1MTIiLGlkOiIifSwiRFNBLVNIQSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LCJEU0EtU0hBMSI6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LERTQTp7c2lnbjoiZHNhIixoYXNoOiJzaGExIixpZDoiIn0sIkRTQS1XSVRILVNIQTIyNCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMjI0IixpZDoiIn0sIkRTQS1TSEEyMjQiOntzaWduOiJkc2EiLGhhc2g6InNoYTIyNCIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOntzaWduOiJkc2EiLGhhc2g6InNoYTI1NiIsaWQ6IiJ9LCJEU0EtU0hBMjU2Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEzODQiLGlkOiIifSwiRFNBLVNIQTM4NCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sIkRTQS1XSVRILVNIQTUxMiI6e3NpZ246ImRzYSIsaGFzaDoic2hhNTEyIixpZDoiIn0sIkRTQS1TSEE1MTIiOntzaWduOiJkc2EiLGhhc2g6InNoYTUxMiIsaWQ6IiJ9LCJEU0EtUklQRU1EMTYwIjp7c2lnbjoiZHNhIixoYXNoOiJybWQxNjAiLGlkOiIifSxyaXBlbWQxNjBXaXRoUlNBOntzaWduOiJyc2EiLGhhc2g6InJtZDE2MCIsaWQ6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7c2lnbjoicnNhIixoYXNoOiJybWQxNjAiLGlkOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSxtZDVXaXRoUlNBRW5jcnlwdGlvbjp7c2lnbjoicnNhIixoYXNoOiJtZDUiLGlkOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifSwiUlNBLU1ENSI6e3NpZ246InJzYSIsaGFzaDoibWQ1IixpZDoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn19fSxmdW5jdGlvbih0LGUsbil7ZS5wYmtkZjI9bigxNjMpLGUucGJrZGYyU3luYz1uKDk3KX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgbj1NYXRoLnBvdygyLDMwKS0xO2Z1bmN0aW9uIGkodCxuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQmJiFlLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IobisiIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2lmKGkodCwiUGFzc3dvcmQiKSxpKGUsIlNhbHQiKSwibnVtYmVyIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihyPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihvPDB8fG8+bnx8byE9byl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG47ZS5icm93c2VyP249InV0Zi04IjpuPXBhcnNlSW50KGUudmVyc2lvbi5zcGxpdCgiLiIpWzBdLnNsaWNlKDEpLDEwKT49Nj8idXRmLTgiOiJiaW5hcnkiO3QuZXhwb3J0cz1ufSkuY2FsbCh0aGlzLG4oMjApKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oOTIpLHI9big2NCksbz1uKDY1KSxzPW4oOTUpLGE9big5NiksdT1uKDEpLkJ1ZmZlcixjPXUuYWxsb2MoMTI4KSxoPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gbCh0LGUsbil7dmFyIHM9ZnVuY3Rpb24odCl7cmV0dXJuInJtZDE2MCI9PT10fHwicmlwZW1kMTYwIj09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyByKS51cGRhdGUodCkuZGlnZXN0KCl9OiJtZDUiPT09dD9pOmZ1bmN0aW9uKGUpe3JldHVybiBvKHQpLnVwZGF0ZShlKS5kaWdlc3QoKX19KHQpLGE9InNoYTUxMiI9PT10fHwic2hhMzg0Ij09PXQ/MTI4OjY0O2UubGVuZ3RoPmE/ZT1zKGUpOmUubGVuZ3RoPGEmJihlPXUuY29uY2F0KFtlLGNdLGEpKTtmb3IodmFyIGw9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGQ9dS5hbGxvY1Vuc2FmZShhK2hbdF0pLGY9MDtmPGE7ZisrKWxbZl09NTReZVtmXSxkW2ZdPTkyXmVbZl07dmFyIHA9dS5hbGxvY1Vuc2FmZShhK24rNCk7bC5jb3B5KHAsMCwwLGEpLHRoaXMuaXBhZDE9cCx0aGlzLmlwYWQyPWwsdGhpcy5vcGFkPWQsdGhpcy5hbGc9dCx0aGlzLmJsb2Nrc2l6ZT1hLHRoaXMuaGFzaD1zLHRoaXMuc2l6ZT1oW3RdfWwucHJvdG90eXBlLnJ1bj1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNvcHkoZSx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKGUpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGkscil7cyh0LGUsbixpKSx1LmlzQnVmZmVyKHQpfHwodD11LmZyb20odCxhKSksdS5pc0J1ZmZlcihlKXx8KGU9dS5mcm9tKGUsYSkpO3ZhciBvPW5ldyBsKHI9cnx8InNoYTEiLHQsZS5sZW5ndGgpLGM9dS5hbGxvY1Vuc2FmZShpKSxkPXUuYWxsb2NVbnNhZmUoZS5sZW5ndGgrNCk7ZS5jb3B5KGQsMCwwLGUubGVuZ3RoKTtmb3IodmFyIGY9MCxwPWhbcl0sbT1NYXRoLmNlaWwoaS9wKSxnPTE7Zzw9bTtnKyspe2Qud3JpdGVVSW50MzJCRShnLGUubGVuZ3RoKTtmb3IodmFyIHY9by5ydW4oZCxvLmlwYWQxKSxiPXYseT0xO3k8bjt5Kyspe2I9by5ydW4oYixvLmlwYWQyKTtmb3IodmFyIF89MDtfPHA7XysrKXZbX11ePWJbX119di5jb3B5KGMsZiksZis9cH1yZXR1cm4gY319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKSxyPW4oMSkuQnVmZmVyLG89big5OSk7ZnVuY3Rpb24gcyh0KXt2YXIgZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrUmF3KHQuX3ByZXYpO3JldHVybiBvKHQuX3ByZXYpLGV9ZS5lbmNyeXB0PWZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5jZWlsKGUubGVuZ3RoLzE2KSxvPXQuX2NhY2hlLmxlbmd0aDt0Ll9jYWNoZT1yLmNvbmNhdChbdC5fY2FjaGUsci5hbGxvY1Vuc2FmZSgxNipuKV0pO2Zvcih2YXIgYT0wO2E8bjthKyspe3ZhciB1PXModCksYz1vKzE2KmE7dC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzBdLGMrMCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzFdLGMrNCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzJdLGMrOCksdC5fY2FjaGUud3JpdGVVSW50MzJCRSh1WzNdLGMrMTIpfXZhciBoPXQuX2NhY2hlLnNsaWNlKDAsZS5sZW5ndGgpO3JldHVybiB0Ll9jYWNoZT10Ll9jYWNoZS5zbGljZShlLmxlbmd0aCksaShlLGgpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dC5sZW5ndGg7bi0tOyl7aWYoMjU1IT09KGU9dC5yZWFkVUludDgobikpKXtlKyssdC53cml0ZVVJbnQ4KGUsbik7YnJlYWt9dC53cml0ZVVJbnQ4KDAsbil9fX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiYWVzLTEyOC1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTE5Mi1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjowLG1vZGU6IkVDQiIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jYmMiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDQkMiLHR5cGU6ImJsb2NrIn0sImFlcy0xOTItY2JjIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxMjg6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMxOTI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSxhZXMyNTY6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSwiYWVzLTEyOC1jZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCOCIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiOCI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjgiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkI4Iix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0ZCMSIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiMSI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNGQjEiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkIxIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJPRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLW9mYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6Ik9GQiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiT0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDVFIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTkyLWN0ciI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjE2LG1vZGU6IkNUUiIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ1RSIix0eXBlOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTE5Mi1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifSwiYWVzLTI1Ni1nY20iOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxMixtb2RlOiJHQ00iLHR5cGU6ImF1dGgifX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ1KSxyPW4oMSkuQnVmZmVyLG89bigyMSkscz1uKDApLGE9bigxNzgpLHU9bigzMyksYz1uKDk5KTtmdW5jdGlvbiBoKHQsZSxuLHMpe28uY2FsbCh0aGlzKTt2YXIgdT1yLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpLkFFUyhlKTt2YXIgaD10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHUpO3RoaXMuX2doYXNoPW5ldyBhKGgpLG49ZnVuY3Rpb24odCxlLG4pe2lmKDEyPT09ZS5sZW5ndGgpcmV0dXJuIHQuX2ZpbklEPXIuY29uY2F0KFtlLHIuZnJvbShbMCwwLDAsMV0pXSksci5jb25jYXQoW2Usci5mcm9tKFswLDAsMCwyXSldKTt2YXIgaT1uZXcgYShuKSxvPWUubGVuZ3RoLHM9byUxNjtpLnVwZGF0ZShlKSxzJiYocz0xNi1zLGkudXBkYXRlKHIuYWxsb2MocywwKSkpLGkudXBkYXRlKHIuYWxsb2MoOCwwKSk7dmFyIHU9OCpvLGg9ci5hbGxvYyg4KTtoLndyaXRlVUludEJFKHUsMCw4KSxpLnVwZGF0ZShoKSx0Ll9maW5JRD1pLnN0YXRlO3ZhciBsPXIuZnJvbSh0Ll9maW5JRCk7cmV0dXJuIGMobCksbH0odGhpcyxuLGgpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9dCx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfXMoaCxvKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBlPTE2LXRoaXMuX2FsZW4lMTY7ZTwxNiYmKGU9ci5hbGxvYyhlLDApLHRoaXMuX2doYXNoLnVwZGF0ZShlKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciBuPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLHQpO3JldHVybiB0aGlzLl9kZWNyeXB0P3RoaXMuX2doYXNoLnVwZGF0ZSh0KTp0aGlzLl9naGFzaC51cGRhdGUobiksdGhpcy5fbGVuKz10Lmxlbmd0aCxufSxoLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWNyeXB0JiYhdGhpcy5fYXV0aFRhZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3ZhciB0PXUodGhpcy5fZ2hhc2guZmluYWwoOCp0aGlzLl9hbGVuLDgqdGhpcy5fbGVuKSx0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHRoaXMuX2ZpbklEKSk7aWYodGhpcy5fZGVjcnlwdCYmZnVuY3Rpb24odCxlKXt2YXIgbj0wO3QubGVuZ3RoIT09ZS5sZW5ndGgmJm4rKztmb3IodmFyIGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLHI9MDtyPGk7KytyKW4rPXRbcl1eZVtyXTtyZXR1cm4gbn0odCx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9dCx0aGlzLl9jaXBoZXIuc2NydWIoKX0saC5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFyLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30saC5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbih0KXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz10fSxoLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKHQpLHRoaXMuX2FsZW4rPXQubGVuZ3RofSx0LmV4cG9ydHM9aH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNDUpLHI9bigxKS5CdWZmZXIsbz1uKDIxKTtmdW5jdGlvbiBzKHQsZSxuLHMpe28uY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IGkuQUVTKGUpLHRoaXMuX3ByZXY9ci5mcm9tKG4pLHRoaXMuX2NhY2hlPXIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9ci5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXMsdGhpcy5fbW9kZT10fW4oMCkocyxvKSxzLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyx0LHRoaXMuX2RlY3J5cHQpfSxzLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sdC5leHBvcnRzPXN9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3KTt0LmV4cG9ydHM9YixiLnNpbXBsZVNpZXZlPWcsYi5mZXJtYXRUZXN0PXY7dmFyIHI9bigzKSxvPW5ldyByKDI0KSxzPW5ldyhuKDEwNCkpLGE9bmV3IHIoMSksdT1uZXcgcigyKSxjPW5ldyByKDUpLGg9KG5ldyByKDE2KSxuZXcgcig4KSxuZXcgcigxMCkpLGw9bmV3IHIoMyksZD0obmV3IHIoNyksbmV3IHIoMTEpKSxmPW5ldyByKDQpLHA9KG5ldyByKDEyKSxudWxsKTtmdW5jdGlvbiBtKCl7aWYobnVsbCE9PXApcmV0dXJuIHA7dmFyIHQ9W107dFswXT0yO2Zvcih2YXIgZT0xLG49MztuPDEwNDg1NzY7bis9Mil7Zm9yKHZhciBpPU1hdGguY2VpbChNYXRoLnNxcnQobikpLHI9MDtyPGUmJnRbcl08PWkmJm4ldFtyXSE9MDtyKyspO2UhPT1yJiZ0W3JdPD1pfHwodFtlKytdPW4pfXJldHVybiBwPXQsdH1mdW5jdGlvbiBnKHQpe2Zvcih2YXIgZT1tKCksbj0wO248ZS5sZW5ndGg7bisrKWlmKDA9PT10Lm1vZG4oZVtuXSkpcmV0dXJuIDA9PT10LmNtcG4oZVtuXSk7cmV0dXJuITB9ZnVuY3Rpb24gdih0KXt2YXIgZT1yLm1vbnQodCk7cmV0dXJuIDA9PT11LnRvUmVkKGUpLnJlZFBvdyh0LnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIGIodCxlKXtpZih0PDE2KXJldHVybiBuZXcgcigyPT09ZXx8NT09PWU/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgbixwO2ZvcihlPW5ldyByKGUpOzspe2ZvcihuPW5ldyByKGkoTWF0aC5jZWlsKHQvOCkpKTtuLmJpdExlbmd0aCgpPnQ7KW4uaXNocm4oMSk7aWYobi5pc0V2ZW4oKSYmbi5pYWRkKGEpLG4udGVzdG4oMSl8fG4uaWFkZCh1KSxlLmNtcCh1KSl7aWYoIWUuY21wKGMpKWZvcig7bi5tb2QoaCkuY21wKGwpOyluLmlhZGQoZil9ZWxzZSBmb3IoO24ubW9kKG8pLmNtcChkKTspbi5pYWRkKGYpO2lmKGcocD1uLnNocm4oMSkpJiZnKG4pJiZ2KHApJiZ2KG4pJiZzLnRlc3QocCkmJnMudGVzdChuKSlyZXR1cm4gbn19fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzKSxyPW4oMTA1KTtmdW5jdGlvbiBvKHQpe3RoaXMucmFuZD10fHxuZXcgci5SYW5kfXQuZXhwb3J0cz1vLG8uY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbyh0KX0sby5wcm90b3R5cGUuX3JhbmRiZWxvdz1mdW5jdGlvbih0KXt2YXIgZT10LmJpdExlbmd0aCgpLG49TWF0aC5jZWlsKGUvOCk7ZG97dmFyIHI9bmV3IGkodGhpcy5yYW5kLmdlbmVyYXRlKG4pKX13aGlsZShyLmNtcCh0KT49MCk7cmV0dXJuIHJ9LG8ucHJvdG90eXBlLl9yYW5kcmFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnN1Yih0KTtyZXR1cm4gdC5hZGQodGhpcy5fcmFuZGJlbG93KG4pKX0sby5wcm90b3R5cGUudGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIHI9dC5iaXRMZW5ndGgoKSxvPWkubW9udCh0KSxzPW5ldyBpKDEpLnRvUmVkKG8pO2V8fChlPU1hdGgubWF4KDEsci80OHwwKSk7Zm9yKHZhciBhPXQuc3VibigxKSx1PTA7IWEudGVzdG4odSk7dSsrKTtmb3IodmFyIGM9dC5zaHJuKHUpLGg9YS50b1JlZChvKTtlPjA7ZS0tKXt2YXIgbD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMiksYSk7biYmbihsKTt2YXIgZD1sLnRvUmVkKG8pLnJlZFBvdyhjKTtpZigwIT09ZC5jbXAocykmJjAhPT1kLmNtcChoKSl7Zm9yKHZhciBmPTE7Zjx1O2YrKyl7aWYoMD09PShkPWQucmVkU3FyKCkpLmNtcChzKSlyZXR1cm4hMTtpZigwPT09ZC5jbXAoaCkpYnJlYWt9aWYoZj09PXUpcmV0dXJuITF9fXJldHVybiEwfSxvLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5iaXRMZW5ndGgoKSxyPWkubW9udCh0KSxvPW5ldyBpKDEpLnRvUmVkKHIpO2V8fChlPU1hdGgubWF4KDEsbi80OHwwKSk7Zm9yKHZhciBzPXQuc3VibigxKSxhPTA7IXMudGVzdG4oYSk7YSsrKTtmb3IodmFyIHU9dC5zaHJuKGEpLGM9cy50b1JlZChyKTtlPjA7ZS0tKXt2YXIgaD10aGlzLl9yYW5kcmFuZ2UobmV3IGkoMikscyksbD10LmdjZChoKTtpZigwIT09bC5jbXBuKDEpKXJldHVybiBsO3ZhciBkPWgudG9SZWQocikucmVkUG93KHUpO2lmKDAhPT1kLmNtcChvKSYmMCE9PWQuY21wKGMpKXtmb3IodmFyIGY9MTtmPGE7ZisrKXtpZigwPT09KGQ9ZC5yZWRTcXIoKSkuY21wKG8pKXJldHVybiBkLmZyb21SZWQoKS5zdWJuKDEpLmdjZCh0KTtpZigwPT09ZC5jbXAoYykpYnJlYWt9aWYoZj09PWEpcmV0dXJuKGQ9ZC5yZWRTcXIoKSkuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKHQpfX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaTtmdW5jdGlvbiByKHQpe3RoaXMucmFuZD10fWlmKHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaXx8KGk9bmV3IHIobnVsbCkpLGkuZ2VuZXJhdGUodCl9LHQuZXhwb3J0cy5SYW5kPXIsci5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhbmQodCl9LHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKHQpO2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0KSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBlfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz9yLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGUpLGV9OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP3IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKSxlfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRyeXt2YXIgbz1uKDE4Myk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIik7ci5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8ucmFuZG9tQnl0ZXModCl9fWNhdGNoKHQpe319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9ZTtmdW5jdGlvbiByKHQpe3JldHVybiAxPT09dC5sZW5ndGg/IjAiK3Q6dH1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0Lmxlbmd0aDtuKyspZSs9cih0W25dLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGV9aS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5zbGljZSgpO2lmKCF0KXJldHVybltdO3ZhciBuPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspbltpXT0wfHRbaV07cmV0dXJuIG59aWYoImhleCI9PT1lKWZvcigodD10LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHQ9IjAiK3QpLGk9MDtpPHQubGVuZ3RoO2krPTIpbi5wdXNoKHBhcnNlSW50KHRbaV0rdFtpKzFdLDE2KSk7ZWxzZSBmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgcj10LmNoYXJDb2RlQXQoaSksbz1yPj44LHM9MjU1JnI7bz9uLnB1c2gobyxzKTpuLnB1c2gocyl9cmV0dXJuIG59LGkuemVybzI9cixpLnRvSGV4PW8saS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4iaGV4Ij09PWU/byh0KTp0fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KS5yb3RyMzI7ZnVuY3Rpb24gcih0LGUsbil7cmV0dXJuIHQmZV5+dCZufWZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiB0JmVedCZuXmUmbn1mdW5jdGlvbiBzKHQsZSxuKXtyZXR1cm4gdF5lXm59ZS5mdF8xPWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiAwPT09dD9yKGUsbixpKToxPT09dHx8Mz09PXQ/cyhlLG4saSk6Mj09PXQ/byhlLG4saSk6dm9pZCAwfSxlLmNoMzI9cixlLm1hajMyPW8sZS5wMzI9cyxlLnMwXzI1Nj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LDIpXmkodCwxMyleaSh0LDIyKX0sZS5zMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCw2KV5pKHQsMTEpXmkodCwyNSl9LGUuZzBfMjU2PWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsNyleaSh0LDE4KV50Pj4+M30sZS5nMV8yNTY9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCwxNyleaSh0LDE5KV50Pj4+MTB9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDEwNykscz1uKDE0KSxhPWkuc3VtMzIsdT1pLnN1bTMyXzQsYz1pLnN1bTMyXzUsaD1vLmNoMzIsbD1vLm1hajMyLGQ9by5zMF8yNTYsZj1vLnMxXzI1NixwPW8uZzBfMjU2LG09by5nMV8yNTYsZz1yLkJsb2NrSGFzaCx2PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIGIoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBiKSlyZXR1cm4gbmV3IGI7Zy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz12LHRoaXMuVz1uZXcgQXJyYXkoNjQpfWkuaW5oZXJpdHMoYixnKSx0LmV4cG9ydHM9YixiLmJsb2NrU2l6ZT01MTIsYi5vdXRTaXplPTI1NixiLmhtYWNTdHJlbmd0aD0xOTIsYi5wYWRMZW5ndGg9NjQsYi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLlcsaT0wO2k8MTY7aSsrKW5baV09dFtlK2ldO2Zvcig7aTxuLmxlbmd0aDtpKyspbltpXT11KG0obltpLTJdKSxuW2ktN10scChuW2ktMTVdKSxuW2ktMTZdKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0sZz10aGlzLmhbMl0sdj10aGlzLmhbM10sYj10aGlzLmhbNF0seT10aGlzLmhbNV0sXz10aGlzLmhbNl0sdz10aGlzLmhbN107Zm9yKHModGhpcy5rLmxlbmd0aD09PW4ubGVuZ3RoKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciB4PWModyxmKGIpLGgoYix5LF8pLHRoaXMua1tpXSxuW2ldKSxNPWEoZChyKSxsKHIsbyxnKSk7dz1fLF89eSx5PWIsYj1hKHYseCksdj1nLGc9byxvPXIscj1hKHgsTSl9dGhpcy5oWzBdPWEodGhpcy5oWzBdLHIpLHRoaXMuaFsxXT1hKHRoaXMuaFsxXSxvKSx0aGlzLmhbMl09YSh0aGlzLmhbMl0sZyksdGhpcy5oWzNdPWEodGhpcy5oWzNdLHYpLHRoaXMuaFs0XT1hKHRoaXMuaFs0XSxiKSx0aGlzLmhbNV09YSh0aGlzLmhbNV0seSksdGhpcy5oWzZdPWEodGhpcy5oWzZdLF8pLHRoaXMuaFs3XT1hKHRoaXMuaFs3XSx3KX0sYi5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTcpLHI9bigzNCksbz1uKDE0KSxzPWkucm90cjY0X2hpLGE9aS5yb3RyNjRfbG8sdT1pLnNocjY0X2hpLGM9aS5zaHI2NF9sbyxoPWkuc3VtNjQsbD1pLnN1bTY0X2hpLGQ9aS5zdW02NF9sbyxmPWkuc3VtNjRfNF9oaSxwPWkuc3VtNjRfNF9sbyxtPWkuc3VtNjRfNV9oaSxnPWkuc3VtNjRfNV9sbyx2PXIuQmxvY2tIYXNoLGI9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiB5KCl7aWYoISh0aGlzIGluc3RhbmNlb2YgeSkpcmV0dXJuIG5ldyB5O3YuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1iLHRoaXMuVz1uZXcgQXJyYXkoMTYwKX1mdW5jdGlvbiBfKHQsZSxuLGkscil7dmFyIG89dCZuXn50JnI7cmV0dXJuIG88MCYmKG8rPTQyOTQ5NjcyOTYpLG99ZnVuY3Rpb24gdyh0LGUsbixpLHIsbyl7dmFyIHM9ZSZpXn5lJm87cmV0dXJuIHM8MCYmKHMrPTQyOTQ5NjcyOTYpLHN9ZnVuY3Rpb24geCh0LGUsbixpLHIpe3ZhciBvPXQmbl50JnJebiZyO3JldHVybiBvPDAmJihvKz00Mjk0OTY3Mjk2KSxvfWZ1bmN0aW9uIE0odCxlLG4saSxyLG8pe3ZhciBzPWUmaV5lJm9eaSZvO3JldHVybiBzPDAmJihzKz00Mjk0OTY3Mjk2KSxzfWZ1bmN0aW9uIFModCxlKXt2YXIgbj1zKHQsZSwyOClecyhlLHQsMilecyhlLHQsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gRSh0LGUpe3ZhciBuPWEodCxlLDI4KV5hKGUsdCwyKV5hKGUsdCw3KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBBKHQsZSl7dmFyIG49cyh0LGUsMTQpXnModCxlLDE4KV5zKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBDKHQsZSl7dmFyIG49YSh0LGUsMTQpXmEodCxlLDE4KV5hKGUsdCw5KTtyZXR1cm4gbjwwJiYobis9NDI5NDk2NzI5Niksbn1mdW5jdGlvbiBrKHQsZSl7dmFyIG49cyh0LGUsMSlecyh0LGUsOCledSh0LGUsNyk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gTyh0LGUpe3ZhciBuPWEodCxlLDEpXmEodCxlLDgpXmModCxlLDcpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFAodCxlKXt2YXIgbj1zKHQsZSwxOSlecyhlLHQsMjkpXnUodCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWZ1bmN0aW9uIFQodCxlKXt2YXIgbj1hKHQsZSwxOSleYShlLHQsMjkpXmModCxlLDYpO3JldHVybiBuPDAmJihuKz00Mjk0OTY3Mjk2KSxufWkuaW5oZXJpdHMoeSx2KSx0LmV4cG9ydHM9eSx5LmJsb2NrU2l6ZT0xMDI0LHkub3V0U2l6ZT01MTIseS5obWFjU3RyZW5ndGg9MTkyLHkucGFkTGVuZ3RoPTEyOCx5LnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMuVyxpPTA7aTwzMjtpKyspbltpXT10W2UraV07Zm9yKDtpPG4ubGVuZ3RoO2krPTIpe3ZhciByPVAobltpLTRdLG5baS0zXSksbz1UKG5baS00XSxuW2ktM10pLHM9bltpLTE0XSxhPW5baS0xM10sdT1rKG5baS0zMF0sbltpLTI5XSksYz1PKG5baS0zMF0sbltpLTI5XSksaD1uW2ktMzJdLGw9bltpLTMxXTtuW2ldPWYocixvLHMsYSx1LGMsaCxsKSxuW2krMV09cChyLG8scyxhLHUsYyxoLGwpfX0seS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ByZXBhcmVCbG9jayh0LGUpO3ZhciBuPXRoaXMuVyxpPXRoaXMuaFswXSxyPXRoaXMuaFsxXSxzPXRoaXMuaFsyXSxhPXRoaXMuaFszXSx1PXRoaXMuaFs0XSxjPXRoaXMuaFs1XSxmPXRoaXMuaFs2XSxwPXRoaXMuaFs3XSx2PXRoaXMuaFs4XSxiPXRoaXMuaFs5XSx5PXRoaXMuaFsxMF0saz10aGlzLmhbMTFdLE89dGhpcy5oWzEyXSxQPXRoaXMuaFsxM10sVD10aGlzLmhbMTRdLGo9dGhpcy5oWzE1XTtvKHRoaXMuay5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciBJPTA7STxuLmxlbmd0aDtJKz0yKXt2YXIgTD1ULEI9aixEPUEodixiKSxSPUModixiKSx6PV8odixiLHksayxPKSxOPXcodixiLHksayxPLFApLFc9dGhpcy5rW0ldLHE9dGhpcy5rW0krMV0sSD1uW0ldLEY9bltJKzFdLFY9bShMLEIsRCxSLHosTixXLHEsSCxGKSxVPWcoTCxCLEQsUix6LE4sVyxxLEgsRik7TD1TKGksciksQj1FKGksciksRD14KGkscixzLGEsdSksUj1NKGkscixzLGEsdSxjKTt2YXIgSz1sKEwsQixELFIpLFk9ZChMLEIsRCxSKTtUPU8saj1QLE89eSxQPWsseT12LGs9Yix2PWwoZixwLFYsVSksYj1kKHAscCxWLFUpLGY9dSxwPWMsdT1zLGM9YSxzPWksYT1yLGk9bChWLFUsSyxZKSxyPWQoVixVLEssWSl9aCh0aGlzLmgsMCxpLHIpLGgodGhpcy5oLDIscyxhKSxoKHRoaXMuaCw0LHUsYyksaCh0aGlzLmgsNixmLHApLGgodGhpcy5oLDgsdixiKSxoKHRoaXMuaCwxMCx5LGspLGgodGhpcy5oLDEyLE8sUCksaCh0aGlzLmgsMTQsVCxqKX0seS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaCwiYmlnIik6aS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzYpLlJlcG9ydGVyLG89big0KS5CdWZmZXI7ZnVuY3Rpb24gcyh0LGUpe3IuY2FsbCh0aGlzLGUpLG8uaXNCdWZmZXIodCk/KHRoaXMuYmFzZT10LHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9dC5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBhKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhfHwodD1uZXcgYSh0LGUpKSx0aGlzLmxlbmd0aCs9dC5sZW5ndGgsdH0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCEoMDw9dCYmdDw9MjU1KSlyZXR1cm4gZS5lcnJvcigibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZSIpO3RoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KXRoaXMudmFsdWU9dCx0aGlzLmxlbmd0aD1vLmJ5dGVMZW5ndGgodCk7ZWxzZXtpZighby5pc0J1ZmZlcih0KSlyZXR1cm4gZS5lcnJvcigiVW5zdXBwb3J0ZWQgdHlwZTogIit0eXBlb2YgdCk7dGhpcy52YWx1ZT10LHRoaXMubGVuZ3RoPXQubGVuZ3RofX1pKHMsciksZS5EZWNvZGVyQnVmZmVyPXMscy5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6dGhpcy5vZmZzZXQscmVwb3J0ZXI6ci5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0scy5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBlLm9mZnNldD10Lm9mZnNldCxlLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD10Lm9mZnNldCxyLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyx0LnJlcG9ydGVyKSxlfSxzLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LHMucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKHR8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0scy5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbih0LGUpe2lmKCEodGhpcy5vZmZzZXQrdDw9dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzLmVycm9yKGV8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKTt2YXIgbj1uZXcgcyh0aGlzLmJhc2UpO3JldHVybiBuLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsbi5vZmZzZXQ9dGhpcy5vZmZzZXQsbi5sZW5ndGg9dGhpcy5vZmZzZXQrdCx0aGlzLm9mZnNldCs9dCxufSxzLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZSh0P3Qub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sZS5FbmNvZGVyQnVmZmVyPWEsYS5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0LGUpe3JldHVybiB0fHwodD1uZXcgbyh0aGlzLmxlbmd0aCkpLGV8fChlPTApLDA9PT10aGlzLmxlbmd0aD90OihBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihuKXtuLmpvaW4odCxlKSxlKz1uLmxlbmd0aH0pOigibnVtYmVyIj09dHlwZW9mIHRoaXMudmFsdWU/dFtlXT10aGlzLnZhbHVlOiJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZT90LndyaXRlKHRoaXMudmFsdWUsZSk6by5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KHQsZSksZSs9dGhpcy5sZW5ndGgpLHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5fcmV2ZXJzZT1mdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXsoMHxuKT09biYmKG58PTApO3ZhciBpPXRbbl07ZVtpXT1ufSksZX0saS5kZXI9bigyMTUpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMzUpLG89ci5iYXNlLHM9ci5iaWdudW0sYT1yLmNvbnN0YW50cy5kZXI7ZnVuY3Rpb24gdSh0KXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9dC5uYW1lLHRoaXMuZW50aXR5PXQsdGhpcy50cmVlPW5ldyBjLHRoaXMudHJlZS5faW5pdCh0LmJvZHkpfWZ1bmN0aW9uIGModCl7by5Ob2RlLmNhbGwodGhpcywiZGVyIix0KX1mdW5jdGlvbiBoKHQsZSl7dmFyIG49dC5yZWFkVUludDgoZSk7aWYodC5pc0Vycm9yKG4pKXJldHVybiBuO3ZhciBpPWEudGFnQ2xhc3Nbbj4+Nl0scj0wPT0oMzImbik7aWYoMzE9PSgzMSZuKSl7dmFyIG89bjtmb3Iobj0wOzEyOD09KDEyOCZvKTspe2lmKG89dC5yZWFkVUludDgoZSksdC5pc0Vycm9yKG8pKXJldHVybiBvO248PD03LG58PTEyNyZvfX1lbHNlIG4mPTMxO3JldHVybntjbHM6aSxwcmltaXRpdmU6cix0YWc6bix0YWdTdHI6YS50YWdbbl19fWZ1bmN0aW9uIGwodCxlLG4pe3ZhciBpPXQucmVhZFVJbnQ4KG4pO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZighZSYmMTI4PT09aSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JmkpKXJldHVybiBpO3ZhciByPTEyNyZpO2lmKHI+NClyZXR1cm4gdC5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO2k9MDtmb3IodmFyIG89MDtvPHI7bysrKXtpPDw9ODt2YXIgcz10LnJlYWRVSW50OChuKTtpZih0LmlzRXJyb3IocykpcmV0dXJuIHM7aXw9c31yZXR1cm4gaX10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIG8uRGVjb2RlckJ1ZmZlcnx8KHQ9bmV3IG8uRGVjb2RlckJ1ZmZlcih0LGUpKSx0aGlzLnRyZWUuX2RlY29kZSh0LGUpfSxpKGMsby5Ob2RlKSxjLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbih0LGUsbil7aWYodC5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIGk9dC5zYXZlKCkscj1oKHQsJ0ZhaWxlZCB0byBwZWVrIHRhZzogIicrZSsnIicpO3JldHVybiB0LmlzRXJyb3Iocik/cjoodC5yZXN0b3JlKGkpLHIudGFnPT09ZXx8ci50YWdTdHI9PT1lfHxyLnRhZ1N0cisib2YiPT09ZXx8bil9LGMucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPWgodCwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrZSsnIicpO2lmKHQuaXNFcnJvcihpKSlyZXR1cm4gaTt2YXIgcj1sKHQsaS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK2UrJyInKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoIW4mJmkudGFnIT09ZSYmaS50YWdTdHIhPT1lJiZpLnRhZ1N0cisib2YiIT09ZSlyZXR1cm4gdC5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrZSsnIicpO2lmKGkucHJpbWl0aXZlfHxudWxsIT09cilyZXR1cm4gdC5za2lwKHIsJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytlKyciJyk7dmFyIG89dC5zYXZlKCkscz10aGlzLl9za2lwVW50aWxFbmQodCwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gdC5pc0Vycm9yKHMpP3M6KHI9dC5vZmZzZXQtby5vZmZzZXQsdC5yZXN0b3JlKG8pLHQuc2tpcChyLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrZSsnIicpKX0sYy5wcm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbih0LGUpe2Zvcig7Oyl7dmFyIG49aCh0LGUpO2lmKHQuaXNFcnJvcihuKSlyZXR1cm4gbjt2YXIgaSxyPWwodCxuLnByaW1pdGl2ZSxlKTtpZih0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYoaT1uLnByaW1pdGl2ZXx8bnVsbCE9PXI/dC5za2lwKHIpOnRoaXMuX3NraXBVbnRpbEVuZCh0LGUpLHQuaXNFcnJvcihpKSlyZXR1cm4gaTtpZigiZW5kIj09PW4udGFnU3RyKWJyZWFrfX0sYy5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPVtdOyF0LmlzRW1wdHkoKTspe3ZhciBvPXRoaXMuX3BlZWtUYWcodCwiZW5kIik7aWYodC5pc0Vycm9yKG8pKXJldHVybiBvO3ZhciBzPW4uZGVjb2RlKHQsImRlciIsaSk7aWYodC5pc0Vycm9yKHMpJiZvKWJyZWFrO3IucHVzaChzKX1yZXR1cm4gcn0sYy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbih0LGUpe2lmKCJiaXRzdHIiPT09ZSl7dmFyIG49dC5yZWFkVUludDgoKTtyZXR1cm4gdC5pc0Vycm9yKG4pP246e3VudXNlZDpuLGRhdGE6dC5yYXcoKX19aWYoImJtcHN0ciI9PT1lKXt2YXIgaT10LnJhdygpO2lmKGkubGVuZ3RoJTI9PTEpcmV0dXJuIHQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7Zm9yKHZhciByPSIiLG89MDtvPGkubGVuZ3RoLzI7bysrKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoaS5yZWFkVUludDE2QkUoMipvKSk7cmV0dXJuIHJ9aWYoIm51bXN0ciI9PT1lKXt2YXIgcz10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihzKT9zOnQuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09ZSlyZXR1cm4gdC5yYXcoKTtpZigib2JqRGVzYyI9PT1lKXJldHVybiB0LnJhdygpO2lmKCJwcmludHN0ciI9PT1lKXt2YXIgYT10LnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGEpP2E6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1yZXR1cm4vc3RyJC8udGVzdChlKT90LnJhdygpLnRvU3RyaW5nKCk6dC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrZSsiIHVuc3VwcG9ydGVkIil9LGMucHJvdG90eXBlLl9kZWNvZGVPYmppZD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpLHI9W10sbz0wOyF0LmlzRW1wdHkoKTspe3ZhciBzPXQucmVhZFVJbnQ4KCk7bzw8PTcsb3w9MTI3JnMsMD09KDEyOCZzKSYmKHIucHVzaChvKSxvPTApfTEyOCZzJiZyLnB1c2gobyk7dmFyIGE9clswXS80MHwwLHU9clswXSU0MDtpZihpPW4/cjpbYSx1XS5jb25jYXQoci5zbGljZSgxKSksZSl7dmFyIGM9ZVtpLmpvaW4oIiAiKV07dm9pZCAwPT09YyYmKGM9ZVtpLmpvaW4oIi4iKV0pLHZvaWQgMCE9PWMmJihpPWMpfXJldHVybiBpfSxjLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCkudG9TdHJpbmcoKTtpZigiZ2VudGltZSI9PT1lKXZhciBpPTB8bi5zbGljZSgwLDQpLHI9MHxuLnNsaWNlKDQsNiksbz0wfG4uc2xpY2UoNiw4KSxzPTB8bi5zbGljZSg4LDEwKSxhPTB8bi5zbGljZSgxMCwxMiksdT0wfG4uc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3RpbWUiIT09ZSlyZXR1cm4gdC5lcnJvcigiRGVjb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpO2k9MHxuLnNsaWNlKDAsMikscj0wfG4uc2xpY2UoMiw0KSxvPTB8bi5zbGljZSg0LDYpLHM9MHxuLnNsaWNlKDYsOCksYT0wfG4uc2xpY2UoOCwxMCksdT0wfG4uc2xpY2UoMTAsMTIpO2k9aTw3MD8yZTMraToxOTAwK2l9cmV0dXJuIERhdGUuVVRDKGksci0xLG8scyxhLHUsMCl9LGMucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxjLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbih0KXt2YXIgZT10LnJlYWRVSW50OCgpO3JldHVybiB0LmlzRXJyb3IoZSk/ZTowIT09ZX0sYy5wcm90b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbih0LGUpe3ZhciBuPXQucmF3KCksaT1uZXcgcyhuKTtyZXR1cm4gZSYmKGk9ZVtpLnRvU3RyaW5nKDEwKV18fGkpLGl9LGMucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dChlKSksdC5fZ2V0RGVjb2RlcigiZGVyIikudHJlZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDM1KSxzPW8uYmFzZSxhPW8uY29uc3RhbnRzLmRlcjtmdW5jdGlvbiB1KHQpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT10Lm5hbWUsdGhpcy5lbnRpdHk9dCx0aGlzLnRyZWU9bmV3IGMsdGhpcy50cmVlLl9pbml0KHQuYm9keSl9ZnVuY3Rpb24gYyh0KXtzLk5vZGUuY2FsbCh0aGlzLCJkZXIiLHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQ8MTA/IjAiK3Q6dH10LmV4cG9ydHM9dSx1LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUodCxlKS5qb2luKCl9LGkoYyxzLk5vZGUpLGMucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIG8scz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcjsic2Vxb2YiPT09dD90PSJzZXEiOiJzZXRvZiI9PT10JiYodD0ic2V0Iik7aWYoYS50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkodCkpcj1hLnRhZ0J5TmFtZVt0XTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgdHx8KDB8dCkhPT10KXJldHVybiBpLmVycm9yKCJVbmtub3duIHRhZzogIit0KTtyPXR9aWYocj49MzEpcmV0dXJuIGkuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpO2V8fChyfD0zMik7cmV0dXJuIHJ8PWEudGFnQ2xhc3NCeU5hbWVbbnx8InVuaXZlcnNhbCJdPDw2fSh0LGUsbix0aGlzLnJlcG9ydGVyKTtpZihpLmxlbmd0aDwxMjgpcmV0dXJuKG89bmV3IHIoMikpWzBdPXMsb1sxXT1pLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtvLGldKTtmb3IodmFyIHU9MSxjPWkubGVuZ3RoO2M+PTI1NjtjPj49OCl1Kys7KG89bmV3IHIoMit1KSlbMF09cyxvWzFdPTEyOHx1O2M9MSt1O2Zvcih2YXIgaD1pLmxlbmd0aDtoPjA7Yy0tLGg+Pj04KW9bY109MjU1Jmg7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW28saV0pfSxjLnByb3RvdHlwZS5fZW5jb2RlU3RyPWZ1bmN0aW9uKHQsZSl7aWYoImJpdHN0ciI9PT1lKXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfHQudW51c2VkLHQuZGF0YV0pO2lmKCJibXBzdHIiPT09ZSl7Zm9yKHZhciBuPW5ldyByKDIqdC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoO2krKyluLndyaXRlVUludDE2QkUodC5jaGFyQ29kZUF0KGkpLDIqaSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobil9cmV0dXJuIm51bXN0ciI9PT1lP3RoaXMuX2lzTnVtc3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09ZT90aGlzLl9pc1ByaW50c3RyKHQpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChlKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpOiJvYmpEZXNjIj09PWU/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcih0KTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitlKyIgdW5zdXBwb3J0ZWQiKX0sYy5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKHQsZSxuKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7dD1lW3RdLnNwbGl0KC9bXHNcLl0rL2cpO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt0PXQuc2xpY2UoKTtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV18PTB9aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeSh0KSk7aWYoIW4pe2lmKHRbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTt0LnNwbGljZSgwLDIsNDAqdFswXSt0WzFdKX12YXIgbz0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBzPXRbaV07Zm9yKG8rKztzPj0xMjg7cz4+PTcpbysrfXZhciBhPW5ldyByKG8pLHU9YS5sZW5ndGgtMTtmb3IoaT10Lmxlbmd0aC0xO2k+PTA7aS0tKXtzPXRbaV07Zm9yKGFbdS0tXT0xMjcmczsocz4+PTcpPjA7KWFbdS0tXT0xMjh8MTI3JnN9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoYSl9LGMucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uZXcgRGF0ZSh0KTtyZXR1cm4iZ2VudGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpKSxoKGkuZ2V0VVRDTW9udGgoKSsxKSxoKGkuZ2V0VVRDRGF0ZSgpKSxoKGkuZ2V0VVRDSG91cnMoKSksaChpLmdldFVUQ01pbnV0ZXMoKSksaChpLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKToidXRjdGltZSI9PT1lP249W2goaS5nZXRGdWxsWWVhcigpJTEwMCksaChpLmdldFVUQ01vbnRoKCkrMSksaChpLmdldFVUQ0RhdGUoKSksaChpLmdldFVUQ0hvdXJzKCkpLGgoaS5nZXRVVENNaW51dGVzKCkpLGgoaS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitlKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpLHRoaXMuX2VuY29kZVN0cihuLCJvY3RzdHIiKX0sYy5wcm90b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGMucHJvdG90eXBlLl9lbmNvZGVJbnQ9ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIWUuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlZhbHVlcyBtYXAgZG9lc24ndCBjb250YWluOiAiK0pTT04uc3RyaW5naWZ5KHQpKTt0PWVbdF19aWYoIm51bWJlciIhPXR5cGVvZiB0JiYhci5pc0J1ZmZlcih0KSl7dmFyIG49dC50b0FycmF5KCk7IXQuc2lnbiYmMTI4Jm5bMF0mJm4udW5zaGlmdCgwKSx0PW5ldyByKG4pfWlmKHIuaXNCdWZmZXIodCkpe3ZhciBpPXQubGVuZ3RoOzA9PT10Lmxlbmd0aCYmaSsrO3ZhciBvPW5ldyByKGkpO3JldHVybiB0LmNvcHkobyksMD09PXQubGVuZ3RoJiYob1swXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG8pfWlmKHQ8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQpO2lmKHQ8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLHRdKTtpPTE7Zm9yKHZhciBzPXQ7cz49MjU2O3M+Pj04KWkrKztmb3Iocz0obz1uZXcgQXJyYXkoaSkpLmxlbmd0aC0xO3M+PTA7cy0tKW9bc109MjU1JnQsdD4+PTg7cmV0dXJuIDEyOCZvWzBdJiZvLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihuZXcgcihvKSl9LGMucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHQ/MjU1OjApfSxjLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQoZSkpLHQuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LGMucHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5jdGlvbih0LGUsbil7dmFyIGkscj10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PXIuZGVmYXVsdClyZXR1cm4hMTt2YXIgbz10LmpvaW4oKTtpZih2b2lkIDA9PT1yLmRlZmF1bHRCdWZmZXImJihyLmRlZmF1bHRCdWZmZXI9dGhpcy5fZW5jb2RlVmFsdWUoci5kZWZhdWx0LGUsbikuam9pbigpKSxvLmxlbmd0aCE9PXIuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpcmV0dXJuITE7Zm9yKGk9MDtpPG8ubGVuZ3RoO2krKylpZihvW2ldIT09ci5kZWZhdWx0QnVmZmVyW2ldKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXsiMS4zLjEzMi4wLjEwIjoic2VjcDI1NmsxIiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1IjoicDUyMSJ9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzMSkscj1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiBvKHQpe3ZhciBlPXIuYWxsb2NVbnNhZmUoNCk7cmV0dXJuIGUud3JpdGVVSW50MzJCRSh0LDApLGV9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHM9ci5hbGxvYygwKSxhPTA7cy5sZW5ndGg8ZTspbj1vKGErKykscz1yLmNvbmNhdChbcyxpKCJzaGExIikudXBkYXRlKHQpLnVwZGF0ZShuKS5kaWdlc3QoKV0pO3JldHVybiBzLnNsaWNlKDAsZSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxpPS0xOysraTxuOyl0W2ldXj1lW2ldO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMykscj1uKDEpLkJ1ZmZlcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5mcm9tKHQudG9SZWQoaS5tb250KGUubW9kdWx1cykpLnJlZFBvdyhuZXcgaShlLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8dCE9dCYmZSE9ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTIxKSxvPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixzPSJbb2JqZWN0IEZ1bmN0aW9uXSIsYT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHU9IltvYmplY3QgUHJveHldIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpcmV0dXJuITE7dmFyIGU9aSh0KTtyZXR1cm4gZT09c3x8ZT09YXx8ZT09b3x8ZT09dX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIG49Im9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLk9iamVjdD09PU9iamVjdCYmZTt0LmV4cG9ydHM9bn0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PWV8fCJmdW5jdGlvbiI9PWUpfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gbi5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1MSkscj1uKDI1OCksbz1uKDI2MCkscz1uKDI2MSksYT1uKDI2Mik7ZnVuY3Rpb24gdSh0KXt2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZTxuOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX11LnByb3RvdHlwZS5jbGVhcj1pLHUucHJvdG90eXBlLmRlbGV0ZT1yLHUucHJvdG90eXBlLmdldD1vLHUucHJvdG90eXBlLmhhcz1zLHUucHJvdG90eXBlLnNldD1hLHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNjMpLHI9bigyNjYpLG89bigyNjcpLHM9MSxhPTI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHUsYyxoKXt2YXIgbD1uJnMsZD10Lmxlbmd0aCxmPWUubGVuZ3RoO2lmKGQhPWYmJiEobCYmZj5kKSlyZXR1cm4hMTt2YXIgcD1oLmdldCh0KTtpZihwJiZoLmdldChlKSlyZXR1cm4gcD09ZTt2YXIgbT0tMSxnPSEwLHY9biZhP25ldyBpOnZvaWQgMDtmb3IoaC5zZXQodCxlKSxoLnNldChlLHQpOysrbTxkOyl7dmFyIGI9dFttXSx5PWVbbV07aWYodSl2YXIgXz1sP3UoeSxiLG0sZSx0LGgpOnUoYix5LG0sdCxlLGgpO2lmKHZvaWQgMCE9PV8pe2lmKF8pY29udGludWU7Zz0hMTticmVha31pZih2KXtpZighcihlLGZ1bmN0aW9uKHQsZSl7aWYoIW8odixlKSYmKGI9PT10fHxjKGIsdCxuLHUsaCkpKXJldHVybiB2LnB1c2goZSl9KSl7Zz0hMTticmVha319ZWxzZSBpZihiIT09eSYmIWMoYix5LG4sdSxoKSl7Zz0hMTticmVha319cmV0dXJuIGguZGVsZXRlKHQpLGguZGVsZXRlKGUpLGd9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTkpLHI9bigyODQpLG89ZSYmIWUubm9kZVR5cGUmJmUscz1vJiYib2JqZWN0Ij09dHlwZW9mIHQmJnQmJiF0Lm5vZGVUeXBlJiZ0LGE9cyYmcy5leHBvcnRzPT09bz9pLkJ1ZmZlcjp2b2lkIDAsdT0oYT9hLmlzQnVmZmVyOnZvaWQgMCl8fHI7dC5leHBvcnRzPXV9KS5jYWxsKHRoaXMsbig0NykodCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODYpLHI9bigyODcpLG89bigyODgpLHM9byYmby5pc1R5cGVkQXJyYXksYT1zP3Iocyk6aTt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9bn19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KGUobikpfX19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oaSl7dmFyIHIsbyxzO3M9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PXNlbGYmJnNlbGZ8fCJvYmplY3QiPT10eXBlb2YgaSYmaS5nbG9iYWw9PWkmJmkscj1bbig2KSxuKDE1KSxlXSx2b2lkIDA9PT0obz1mdW5jdGlvbih0LGUsbil7cy5CYWNrYm9uZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10LkJhY2tib25lLG89QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuVkVSU0lPTj0iMS4yLjMiLGUuJD1pLGUubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0LkJhY2tib25lPXIsdGhpc30sZS5lbXVsYXRlSFRUUD0hMSxlLmVtdWxhdGVKU09OPSExO3ZhciBzPWZ1bmN0aW9uKHQsZSxpKXtuLmVhY2goZSxmdW5jdGlvbihlLHIpe25bcl0mJih0LnByb3RvdHlwZVtyXT1mdW5jdGlvbih0LGUsaSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbltlXSh0aGlzW2ldKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbltlXSh0aGlzW2ldLHQpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIG5bZV0odGhpc1tpXSxhKHQsdGhpcykscil9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24odCxyLG8pe3JldHVybiBuW2VdKHRoaXNbaV0sYSh0LHRoaXMpLHIsbyl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9by5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQudW5zaGlmdCh0aGlzW2ldKSxuW2VdLmFwcGx5KG4sdCl9fX0oZSxyLGkpKX0pfSxhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbih0KT90Om4uaXNPYmplY3QodCkmJiFlLl9pc01vZGVsKHQpP3UodCk6bi5pc1N0cmluZyh0KT9mdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQodCl9OnR9LHU9ZnVuY3Rpb24odCl7dmFyIGU9bi5tYXRjaGVzKHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0LmF0dHJpYnV0ZXMpfX0sYz1lLkV2ZW50cz17fSxoPS9ccysvLGw9ZnVuY3Rpb24odCxlLGkscixvKXt2YXIgcyxhPTA7aWYoaSYmIm9iamVjdCI9PXR5cGVvZiBpKXt2b2lkIDAhPT1yJiYiY29udGV4dCJpbiBvJiZ2b2lkIDA9PT1vLmNvbnRleHQmJihvLmNvbnRleHQ9cik7Zm9yKHM9bi5rZXlzKGkpO2E8cy5sZW5ndGg7YSsrKWU9bCh0LGUsc1thXSxpW3NbYV1dLG8pfWVsc2UgaWYoaSYmaC50ZXN0KGkpKWZvcihzPWkuc3BsaXQoaCk7YTxzLmxlbmd0aDthKyspZT10KGUsc1thXSxyLG8pO2Vsc2UgZT10KGUsaSxyLG8pO3JldHVybiBlfTtjLm9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZCh0aGlzLHQsZSxuKX07dmFyIGQ9ZnVuY3Rpb24odCxlLG4saSxyKXtpZih0Ll9ldmVudHM9bChmLHQuX2V2ZW50c3x8e30sZSxuLHtjb250ZXh0OmksY3R4OnQsbGlzdGVuaW5nOnJ9KSxyKXt2YXIgbz10Ll9saXN0ZW5lcnN8fCh0Ll9saXN0ZW5lcnM9e30pO29bci5pZF09cn1yZXR1cm4gdH07Yy5saXN0ZW5Ubz1mdW5jdGlvbih0LGUsaSl7aWYoIXQpcmV0dXJuIHRoaXM7dmFyIHI9dC5fbGlzdGVuSWR8fCh0Ll9saXN0ZW5JZD1uLnVuaXF1ZUlkKCJsIikpLG89dGhpcy5fbGlzdGVuaW5nVG98fCh0aGlzLl9saXN0ZW5pbmdUbz17fSkscz1vW3JdO2lmKCFzKXt2YXIgYT10aGlzLl9saXN0ZW5JZHx8KHRoaXMuX2xpc3RlbklkPW4udW5pcXVlSWQoImwiKSk7cz1vW3JdPXtvYmo6dCxvYmpJZDpyLGlkOmEsbGlzdGVuaW5nVG86byxjb3VudDowfX1yZXR1cm4gZCh0LGUsaSx0aGlzLHMpLHRoaXN9O3ZhciBmPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKG4pe3ZhciByPXRbZV18fCh0W2VdPVtdKSxvPWkuY29udGV4dCxzPWkuY3R4LGE9aS5saXN0ZW5pbmc7YSYmYS5jb3VudCsrLHIucHVzaCh7Y2FsbGJhY2s6bixjb250ZXh0Om8sY3R4Om98fHMsbGlzdGVuaW5nOmF9KX1yZXR1cm4gdH07Yy5vZmY9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLl9ldmVudHM/KHRoaXMuX2V2ZW50cz1sKHAsdGhpcy5fZXZlbnRzLHQsZSx7Y29udGV4dDpuLGxpc3RlbmVyczp0aGlzLl9saXN0ZW5lcnN9KSx0aGlzKTp0aGlzfSxjLnN0b3BMaXN0ZW5pbmc9ZnVuY3Rpb24odCxlLGkpe3ZhciByPXRoaXMuX2xpc3RlbmluZ1RvO2lmKCFyKXJldHVybiB0aGlzO2Zvcih2YXIgbz10P1t0Ll9saXN0ZW5JZF06bi5rZXlzKHIpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGE9cltvW3NdXTtpZighYSlicmVhazthLm9iai5vZmYoZSxpLHRoaXMpfXJldHVybiBuLmlzRW1wdHkocikmJih0aGlzLl9saXN0ZW5pbmdUbz12b2lkIDApLHRoaXN9O3ZhciBwPWZ1bmN0aW9uKHQsZSxpLHIpe2lmKHQpe3ZhciBvLHM9MCxhPXIuY29udGV4dCx1PXIubGlzdGVuZXJzO2lmKGV8fGl8fGEpe2Zvcih2YXIgYz1lP1tlXTpuLmtleXModCk7czxjLmxlbmd0aDtzKyspe2U9Y1tzXTt2YXIgaD10W2VdO2lmKCFoKWJyZWFrO2Zvcih2YXIgbD1bXSxkPTA7ZDxoLmxlbmd0aDtkKyspe3ZhciBmPWhbZF07aSYmaSE9PWYuY2FsbGJhY2smJmkhPT1mLmNhbGxiYWNrLl9jYWxsYmFja3x8YSYmYSE9PWYuY29udGV4dD9sLnB1c2goZik6KG89Zi5saXN0ZW5pbmcpJiYwPT0tLW8uY291bnQmJihkZWxldGUgdVtvLmlkXSxkZWxldGUgby5saXN0ZW5pbmdUb1tvLm9iaklkXSl9bC5sZW5ndGg/dFtlXT1sOmRlbGV0ZSB0W2VdfXJldHVybiBuLnNpemUodCk/dDp2b2lkIDB9Zm9yKHZhciBwPW4ua2V5cyh1KTtzPHAubGVuZ3RoO3MrKylvPXVbcFtzXV0sZGVsZXRlIHVbby5pZF0sZGVsZXRlIG8ubGlzdGVuaW5nVG9bby5vYmpJZF19fTtjLm9uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSx0LGUsbi5iaW5kKHRoaXMub2ZmLHRoaXMpKTtyZXR1cm4gdGhpcy5vbihyLHZvaWQgMCxpKX0sYy5saXN0ZW5Ub09uY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciByPWwobSx7fSxlLGksbi5iaW5kKHRoaXMuc3RvcExpc3RlbmluZyx0aGlzLHQpKTtyZXR1cm4gdGhpcy5saXN0ZW5Ubyh0LHIpfTt2YXIgbT1mdW5jdGlvbih0LGUsaSxyKXtpZihpKXt2YXIgbz10W2VdPW4ub25jZShmdW5jdGlvbigpe3IoZSxvKSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO28uX2NhbGxiYWNrPWl9cmV0dXJuIHR9O2MudHJpZ2dlcj1mdW5jdGlvbih0KXtpZighdGhpcy5fZXZlbnRzKXJldHVybiB0aGlzO2Zvcih2YXIgZT1NYXRoLm1heCgwLGFyZ3VtZW50cy5sZW5ndGgtMSksbj1BcnJheShlKSxpPTA7aTxlO2krKyluW2ldPWFyZ3VtZW50c1tpKzFdO3JldHVybiBsKGcsdGhpcy5fZXZlbnRzLHQsdm9pZCAwLG4pLHRoaXN9O3ZhciBnPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQpe3ZhciByPXRbZV0sbz10LmFsbDtyJiZvJiYobz1vLnNsaWNlKCkpLHImJnYocixpKSxvJiZ2KG8sW2VdLmNvbmNhdChpKSl9cmV0dXJuIHR9LHY9ZnVuY3Rpb24odCxlKXt2YXIgbixpPS0xLHI9dC5sZW5ndGgsbz1lWzBdLHM9ZVsxXSxhPWVbMl07c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCk7cmV0dXJuO2Nhc2UgMTpmb3IoOysraTxyOykobj10W2ldKS5jYWxsYmFjay5jYWxsKG4uY3R4LG8pO3JldHVybjtjYXNlIDI6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMpO3JldHVybjtjYXNlIDM6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suY2FsbChuLmN0eCxvLHMsYSk7cmV0dXJuO2RlZmF1bHQ6Zm9yKDsrK2k8cjspKG49dFtpXSkuY2FsbGJhY2suYXBwbHkobi5jdHgsZSk7cmV0dXJufX07Yy5iaW5kPWMub24sYy51bmJpbmQ9Yy5vZmYsbi5leHRlbmQoZSxjKTt2YXIgYj1lLk1vZGVsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dHx8e307ZXx8KGU9e30pLHRoaXMuY2lkPW4udW5pcXVlSWQodGhpcy5jaWRQcmVmaXgpLHRoaXMuYXR0cmlidXRlcz17fSxlLmNvbGxlY3Rpb24mJih0aGlzLmNvbGxlY3Rpb249ZS5jb2xsZWN0aW9uKSxlLnBhcnNlJiYoaT10aGlzLnBhcnNlKGksZSl8fHt9KSxpPW4uZGVmYXVsdHMoe30saSxuLnJlc3VsdCh0aGlzLCJkZWZhdWx0cyIpKSx0aGlzLnNldChpLGUpLHRoaXMuY2hhbmdlZD17fSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtuLmV4dGVuZChiLnByb3RvdHlwZSxjLHtjaGFuZ2VkOm51bGwsdmFsaWRhdGlvbkVycm9yOm51bGwsaWRBdHRyaWJ1dGU6ImlkIixjaWRQcmVmaXg6ImMiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9LHRvSlNPTjpmdW5jdGlvbih0KXtyZXR1cm4gbi5jbG9uZSh0aGlzLmF0dHJpYnV0ZXMpfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW3RdfSxlc2NhcGU6ZnVuY3Rpb24odCl7cmV0dXJuIG4uZXNjYXBlKHRoaXMuZ2V0KHQpKX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10aGlzLmdldCh0KX0sbWF0Y2hlczpmdW5jdGlvbih0KXtyZXR1cm4hIW4uaXRlcmF0ZWUodCx0aGlzKSh0aGlzLmF0dHJpYnV0ZXMpfSxzZXQ6ZnVuY3Rpb24odCxlLGkpe2lmKG51bGw9PXQpcmV0dXJuIHRoaXM7dmFyIHI7aWYoIm9iamVjdCI9PXR5cGVvZiB0PyhyPXQsaT1lKToocj17fSlbdF09ZSxpfHwoaT17fSksIXRoaXMuX3ZhbGlkYXRlKHIsaSkpcmV0dXJuITE7dmFyIG89aS51bnNldCxzPWkuc2lsZW50LGE9W10sdT10aGlzLl9jaGFuZ2luZzt0aGlzLl9jaGFuZ2luZz0hMCx1fHwodGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzPW4uY2xvbmUodGhpcy5hdHRyaWJ1dGVzKSx0aGlzLmNoYW5nZWQ9e30pO3ZhciBjPXRoaXMuYXR0cmlidXRlcyxoPXRoaXMuY2hhbmdlZCxsPXRoaXMuX3ByZXZpb3VzQXR0cmlidXRlcztmb3IodmFyIGQgaW4gcillPXJbZF0sbi5pc0VxdWFsKGNbZF0sZSl8fGEucHVzaChkKSxuLmlzRXF1YWwobFtkXSxlKT9kZWxldGUgaFtkXTpoW2RdPWUsbz9kZWxldGUgY1tkXTpjW2RdPWU7aWYodGhpcy5pZD10aGlzLmdldCh0aGlzLmlkQXR0cmlidXRlKSwhcyl7YS5sZW5ndGgmJih0aGlzLl9wZW5kaW5nPWkpO2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXRoaXMudHJpZ2dlcigiY2hhbmdlOiIrYVtmXSx0aGlzLGNbYVtmXV0saSl9aWYodSlyZXR1cm4gdGhpcztpZighcylmb3IoO3RoaXMuX3BlbmRpbmc7KWk9dGhpcy5fcGVuZGluZyx0aGlzLl9wZW5kaW5nPSExLHRoaXMudHJpZ2dlcigiY2hhbmdlIix0aGlzLGkpO3JldHVybiB0aGlzLl9wZW5kaW5nPSExLHRoaXMuX2NoYW5naW5nPSExLHRoaXN9LHVuc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0KHQsdm9pZCAwLG4uZXh0ZW5kKHt9LGUse3Vuc2V0OiEwfSkpfSxjbGVhcjpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIGkgaW4gdGhpcy5hdHRyaWJ1dGVzKWVbaV09dm9pZCAwO3JldHVybiB0aGlzLnNldChlLG4uZXh0ZW5kKHt9LHQse3Vuc2V0OiEwfSkpfSxoYXNDaGFuZ2VkOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyFuLmlzRW1wdHkodGhpcy5jaGFuZ2VkKTpuLmhhcyh0aGlzLmNoYW5nZWQsdCl9LGNoYW5nZWRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiEhdGhpcy5oYXNDaGFuZ2VkKCkmJm4uY2xvbmUodGhpcy5jaGFuZ2VkKTt2YXIgZT10aGlzLl9jaGFuZ2luZz90aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM6dGhpcy5hdHRyaWJ1dGVzLGk9e307Zm9yKHZhciByIGluIHQpe3ZhciBvPXRbcl07bi5pc0VxdWFsKGVbcl0sbyl8fChpW3JdPW8pfXJldHVybiEhbi5zaXplKGkpJiZpfSxwcmV2aW91czpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmdGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzP3RoaXMuX3ByZXZpb3VzQXR0cmlidXRlc1t0XTpudWxsfSxwcmV2aW91c0F0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXMpfSxmZXRjaDpmdW5jdGlvbih0KXt0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCk7dmFyIGU9dGhpcyxpPXQuc3VjY2VzcztyZXR1cm4gdC5zdWNjZXNzPWZ1bmN0aW9uKG4pe3ZhciByPXQucGFyc2U/ZS5wYXJzZShuLHQpOm47aWYoIWUuc2V0KHIsdCkpcmV0dXJuITE7aSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS50cmlnZ2VyKCJzeW5jIixlLG4sdCl9LFIodGhpcyx0KSx0aGlzLnN5bmMoInJlYWQiLHRoaXMsdCl9LHNhdmU6ZnVuY3Rpb24odCxlLGkpe3ZhciByO251bGw9PXR8fCJvYmplY3QiPT10eXBlb2YgdD8ocj10LGk9ZSk6KHI9e30pW3RdPWU7dmFyIG89KGk9bi5leHRlbmQoe3ZhbGlkYXRlOiEwLHBhcnNlOiEwfSxpKSkud2FpdDtpZihyJiYhbyl7aWYoIXRoaXMuc2V0KHIsaSkpcmV0dXJuITF9ZWxzZSBpZighdGhpcy5fdmFsaWRhdGUocixpKSlyZXR1cm4hMTt2YXIgcz10aGlzLGE9aS5zdWNjZXNzLHU9dGhpcy5hdHRyaWJ1dGVzO2kuc3VjY2Vzcz1mdW5jdGlvbih0KXtzLmF0dHJpYnV0ZXM9dTt2YXIgZT1pLnBhcnNlP3MucGFyc2UodCxpKTp0O2lmKG8mJihlPW4uZXh0ZW5kKHt9LHIsZSkpLGUmJiFzLnNldChlLGkpKXJldHVybiExO2EmJmEuY2FsbChpLmNvbnRleHQscyx0LGkpLHMudHJpZ2dlcigic3luYyIscyx0LGkpfSxSKHRoaXMsaSksciYmbyYmKHRoaXMuYXR0cmlidXRlcz1uLmV4dGVuZCh7fSx1LHIpKTt2YXIgYz10aGlzLmlzTmV3KCk/ImNyZWF0ZSI6aS5wYXRjaD8icGF0Y2giOiJ1cGRhdGUiOyJwYXRjaCIhPT1jfHxpLmF0dHJzfHwoaS5hdHRycz1yKTt2YXIgaD10aGlzLnN5bmMoYyx0aGlzLGkpO3JldHVybiB0aGlzLmF0dHJpYnV0ZXM9dSxofSxkZXN0cm95OmZ1bmN0aW9uKHQpe3Q9dD9uLmNsb25lKHQpOnt9O3ZhciBlPXRoaXMsaT10LnN1Y2Nlc3Mscj10LndhaXQsbz1mdW5jdGlvbigpe2Uuc3RvcExpc3RlbmluZygpLGUudHJpZ2dlcigiZGVzdHJveSIsZSxlLmNvbGxlY3Rpb24sdCl9O3Quc3VjY2Vzcz1mdW5jdGlvbihuKXtyJiZvKCksaSYmaS5jYWxsKHQuY29udGV4dCxlLG4sdCksZS5pc05ldygpfHxlLnRyaWdnZXIoInN5bmMiLGUsbix0KX07dmFyIHM9ITE7cmV0dXJuIHRoaXMuaXNOZXcoKT9uLmRlZmVyKHQuc3VjY2Vzcyk6KFIodGhpcyx0KSxzPXRoaXMuc3luYygiZGVsZXRlIix0aGlzLHQpKSxyfHxvKCksc30sdXJsOmZ1bmN0aW9uKCl7dmFyIHQ9bi5yZXN1bHQodGhpcywidXJsUm9vdCIpfHxuLnJlc3VsdCh0aGlzLmNvbGxlY3Rpb24sInVybCIpfHxEKCk7aWYodGhpcy5pc05ldygpKXJldHVybiB0O3ZhciBlPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpO3JldHVybiB0LnJlcGxhY2UoL1teXC9dJC8sIiQmLyIpK2VuY29kZVVSSUNvbXBvbmVudChlKX0scGFyc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5hdHRyaWJ1dGVzKX0saXNOZXc6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXModGhpcy5pZEF0dHJpYnV0ZSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHt9LG4uZGVmYXVsdHMoe3ZhbGlkYXRlOiEwfSx0KSl9LF92YWxpZGF0ZTpmdW5jdGlvbih0LGUpe2lmKCFlLnZhbGlkYXRlfHwhdGhpcy52YWxpZGF0ZSlyZXR1cm4hMDt0PW4uZXh0ZW5kKHt9LHRoaXMuYXR0cmlidXRlcyx0KTt2YXIgaT10aGlzLnZhbGlkYXRpb25FcnJvcj10aGlzLnZhbGlkYXRlKHQsZSl8fG51bGw7cmV0dXJuIWl8fCh0aGlzLnRyaWdnZXIoImludmFsaWQiLHRoaXMsaSxuLmV4dGVuZChlLHt2YWxpZGF0aW9uRXJyb3I6aX0pKSwhMSl9fSkscyhiLHtrZXlzOjEsdmFsdWVzOjEscGFpcnM6MSxpbnZlcnQ6MSxwaWNrOjAsb21pdDowLGNoYWluOjEsaXNFbXB0eToxfSwiYXR0cmlidXRlcyIpO3ZhciB5PWUuQ29sbGVjdGlvbj1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSxlLm1vZGVsJiYodGhpcy5tb2RlbD1lLm1vZGVsKSx2b2lkIDAhPT1lLmNvbXBhcmF0b3ImJih0aGlzLmNvbXBhcmF0b3I9ZS5jb21wYXJhdG9yKSx0aGlzLl9yZXNldCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdCYmdGhpcy5yZXNldCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKX0sXz17YWRkOiEwLHJlbW92ZTohMCxtZXJnZTohMH0sdz17YWRkOiEwLHJlbW92ZTohMX0seD1mdW5jdGlvbih0LGUsbil7bj1NYXRoLm1pbihNYXRoLm1heChuLDApLHQubGVuZ3RoKTtmb3IodmFyIGk9QXJyYXkodC5sZW5ndGgtbikscj1lLmxlbmd0aCxvPTA7bzxpLmxlbmd0aDtvKyspaVtvXT10W28rbl07Zm9yKG89MDtvPHI7bysrKXRbbytuXT1lW29dO2ZvcihvPTA7bzxpLmxlbmd0aDtvKyspdFtvK3Irbl09aVtvXX07bi5leHRlbmQoeS5wcm90b3R5cGUsYyx7bW9kZWw6Yixpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvSlNPTih0KX0pfSxzeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc3luYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGFkZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNldCh0LG4uZXh0ZW5kKHttZXJnZTohMX0sZSx3KSl9LHJlbW92ZTpmdW5jdGlvbih0LGUpe2U9bi5leHRlbmQoe30sZSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOm4uY2xvbmUodCk7dmFyIHI9dGhpcy5fcmVtb3ZlTW9kZWxzKHQsZSk7cmV0dXJuIWUuc2lsZW50JiZyJiZ0aGlzLnRyaWdnZXIoInVwZGF0ZSIsdGhpcyxlKSxpP3JbMF06cn0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCl7KGU9bi5kZWZhdWx0cyh7fSxlLF8pKS5wYXJzZSYmIXRoaXMuX2lzTW9kZWwodCkmJih0PXRoaXMucGFyc2UodCxlKSk7dmFyIGk9IW4uaXNBcnJheSh0KTt0PWk/W3RdOnQuc2xpY2UoKTt2YXIgcj1lLmF0O251bGwhPXImJihyPStyKSxyPDAmJihyKz10aGlzLmxlbmd0aCsxKTtmb3IodmFyIG8scz1bXSxhPVtdLHU9W10sYz17fSxoPWUuYWRkLGw9ZS5tZXJnZSxkPWUucmVtb3ZlLGY9ITEscD10aGlzLmNvbXBhcmF0b3ImJm51bGw9PXImJiExIT09ZS5zb3J0LG09bi5pc1N0cmluZyh0aGlzLmNvbXBhcmF0b3IpP3RoaXMuY29tcGFyYXRvcjpudWxsLGc9MDtnPHQubGVuZ3RoO2crKyl7bz10W2ddO3ZhciB2PXRoaXMuZ2V0KG8pO2lmKHYpe2lmKGwmJm8hPT12KXt2YXIgYj10aGlzLl9pc01vZGVsKG8pP28uYXR0cmlidXRlczpvO2UucGFyc2UmJihiPXYucGFyc2UoYixlKSksdi5zZXQoYixlKSxwJiYhZiYmKGY9di5oYXNDaGFuZ2VkKG0pKX1jW3YuY2lkXXx8KGNbdi5jaWRdPSEwLHMucHVzaCh2KSksdFtnXT12fWVsc2UgaCYmKG89dFtnXT10aGlzLl9wcmVwYXJlTW9kZWwobyxlKSkmJihhLnB1c2gobyksdGhpcy5fYWRkUmVmZXJlbmNlKG8sZSksY1tvLmNpZF09ITAscy5wdXNoKG8pKX1pZihkKXtmb3IoZz0wO2c8dGhpcy5sZW5ndGg7ZysrKW89dGhpcy5tb2RlbHNbZ10sY1tvLmNpZF18fHUucHVzaChvKTt1Lmxlbmd0aCYmdGhpcy5fcmVtb3ZlTW9kZWxzKHUsZSl9dmFyIHk9ITEsdz0hcCYmaCYmZDtpZihzLmxlbmd0aCYmdz8oeT10aGlzLmxlbmd0aCE9cy5sZW5ndGh8fG4uc29tZSh0aGlzLm1vZGVscyxmdW5jdGlvbih0LGUpe3JldHVybiB0IT09c1tlXX0pLHRoaXMubW9kZWxzLmxlbmd0aD0wLHgodGhpcy5tb2RlbHMscywwKSx0aGlzLmxlbmd0aD10aGlzLm1vZGVscy5sZW5ndGgpOmEubGVuZ3RoJiYocCYmKGY9ITApLHgodGhpcy5tb2RlbHMsYSxudWxsPT1yP3RoaXMubGVuZ3RoOnIpLHRoaXMubGVuZ3RoPXRoaXMubW9kZWxzLmxlbmd0aCksZiYmdGhpcy5zb3J0KHtzaWxlbnQ6ITB9KSwhZS5zaWxlbnQpe2ZvcihnPTA7ZzxhLmxlbmd0aDtnKyspbnVsbCE9ciYmKGUuaW5kZXg9citnKSwobz1hW2ddKS50cmlnZ2VyKCJhZGQiLG8sdGhpcyxlKTsoZnx8eSkmJnRoaXMudHJpZ2dlcigic29ydCIsdGhpcyxlKSwoYS5sZW5ndGh8fHUubGVuZ3RoKSYmdGhpcy50cmlnZ2VyKCJ1cGRhdGUiLHRoaXMsZSl9cmV0dXJuIGk/dFswXTp0fX0scmVzZXQ6ZnVuY3Rpb24odCxlKXtlPWU/bi5jbG9uZShlKTp7fTtmb3IodmFyIGk9MDtpPHRoaXMubW9kZWxzLmxlbmd0aDtpKyspdGhpcy5fcmVtb3ZlUmVmZXJlbmNlKHRoaXMubW9kZWxzW2ldLGUpO3JldHVybiBlLnByZXZpb3VzTW9kZWxzPXRoaXMubW9kZWxzLHRoaXMuX3Jlc2V0KCksdD10aGlzLmFkZCh0LG4uZXh0ZW5kKHtzaWxlbnQ6ITB9LGUpKSxlLnNpbGVudHx8dGhpcy50cmlnZ2VyKCJyZXNldCIsdGhpcyxlKSx0fSxwdXNoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OnRoaXMubGVuZ3RofSxlKSl9LHBvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmF0KHRoaXMubGVuZ3RoLTEpO3JldHVybiB0aGlzLnJlbW92ZShlLHQpfSx1bnNoaWZ0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsbi5leHRlbmQoe2F0OjB9LGUpKX0sc2hpZnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hdCgwKTtyZXR1cm4gdGhpcy5yZW1vdmUoZSx0KX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0aGlzLm1vZGVscyxhcmd1bWVudHMpfSxnZXQ6ZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dmFyIGU9dGhpcy5tb2RlbElkKHRoaXMuX2lzTW9kZWwodCk/dC5hdHRyaWJ1dGVzOnQpO3JldHVybiB0aGlzLl9ieUlkW3RdfHx0aGlzLl9ieUlkW2VdfHx0aGlzLl9ieUlkW3QuY2lkXX19LGF0OmZ1bmN0aW9uKHQpe3JldHVybiB0PDAmJih0Kz10aGlzLmxlbmd0aCksdGhpcy5tb2RlbHNbdF19LHdoZXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbZT8iZmluZCI6ImZpbHRlciJdKHQpfSxmaW5kV2hlcmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2hlcmUodCwhMCl9LHNvcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb21wYXJhdG9yO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNvcnQgYSBzZXQgd2l0aG91dCBhIGNvbXBhcmF0b3IiKTt0fHwodD17fSk7dmFyIGk9ZS5sZW5ndGg7cmV0dXJuIG4uaXNGdW5jdGlvbihlKSYmKGU9bi5iaW5kKGUsdGhpcykpLDE9PT1pfHxuLmlzU3RyaW5nKGUpP3RoaXMubW9kZWxzPXRoaXMuc29ydEJ5KGUpOnRoaXMubW9kZWxzLnNvcnQoZSksdC5zaWxlbnR8fHRoaXMudHJpZ2dlcigic29ydCIsdGhpcyx0KSx0aGlzfSxwbHVjazpmdW5jdGlvbih0KXtyZXR1cm4gbi5pbnZva2UodGhpcy5tb2RlbHMsImdldCIsdCl9LGZldGNoOmZ1bmN0aW9uKHQpe3ZhciBlPSh0PW4uZXh0ZW5kKHtwYXJzZTohMH0sdCkpLnN1Y2Nlc3MsaT10aGlzO3JldHVybiB0LnN1Y2Nlc3M9ZnVuY3Rpb24obil7dmFyIHI9dC5yZXNldD8icmVzZXQiOiJzZXQiO2lbcl0obix0KSxlJiZlLmNhbGwodC5jb250ZXh0LGksbix0KSxpLnRyaWdnZXIoInN5bmMiLGksbix0KX0sUih0aGlzLHQpLHRoaXMuc3luYygicmVhZCIsdGhpcyx0KX0sY3JlYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9KGU9ZT9uLmNsb25lKGUpOnt9KS53YWl0O2lmKCEodD10aGlzLl9wcmVwYXJlTW9kZWwodCxlKSkpcmV0dXJuITE7aXx8dGhpcy5hZGQodCxlKTt2YXIgcj10aGlzLG89ZS5zdWNjZXNzO3JldHVybiBlLnN1Y2Nlc3M9ZnVuY3Rpb24odCxlLG4pe2kmJnIuYWRkKHQsbiksbyYmby5jYWxsKG4uY29udGV4dCx0LGUsbil9LHQuc2F2ZShudWxsLGUpLHR9LHBhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMubW9kZWxzLHttb2RlbDp0aGlzLm1vZGVsLGNvbXBhcmF0b3I6dGhpcy5jb21wYXJhdG9yfSl9LG1vZGVsSWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRbdGhpcy5tb2RlbC5wcm90b3R5cGUuaWRBdHRyaWJ1dGV8fCJpZCJdfSxfcmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wLHRoaXMubW9kZWxzPVtdLHRoaXMuX2J5SWQ9e319LF9wcmVwYXJlTW9kZWw6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9pc01vZGVsKHQpKXJldHVybiB0LmNvbGxlY3Rpb258fCh0LmNvbGxlY3Rpb249dGhpcyksdDsoZT1lP24uY2xvbmUoZSk6e30pLmNvbGxlY3Rpb249dGhpczt2YXIgaT1uZXcgdGhpcy5tb2RlbCh0LGUpO3JldHVybiBpLnZhbGlkYXRpb25FcnJvcj8odGhpcy50cmlnZ2VyKCJpbnZhbGlkIix0aGlzLGkudmFsaWRhdGlvbkVycm9yLGUpLCExKTppfSxfcmVtb3ZlTW9kZWxzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5nZXQodFtpXSk7aWYocil7dmFyIG89dGhpcy5pbmRleE9mKHIpO3RoaXMubW9kZWxzLnNwbGljZShvLDEpLHRoaXMubGVuZ3RoLS0sZS5zaWxlbnR8fChlLmluZGV4PW8sci50cmlnZ2VyKCJyZW1vdmUiLHIsdGhpcyxlKSksbi5wdXNoKHIpLHRoaXMuX3JlbW92ZVJlZmVyZW5jZShyLGUpfX1yZXR1cm4hIW4ubGVuZ3RoJiZufSxfaXNNb2RlbDpmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGJ9LF9hZGRSZWZlcmVuY2U6ZnVuY3Rpb24odCxlKXt0aGlzLl9ieUlkW3QuY2lkXT10O3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJih0aGlzLl9ieUlkW25dPXQpLHQub24oImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfcmVtb3ZlUmVmZXJlbmNlOmZ1bmN0aW9uKHQsZSl7ZGVsZXRlIHRoaXMuX2J5SWRbdC5jaWRdO3ZhciBuPXRoaXMubW9kZWxJZCh0LmF0dHJpYnV0ZXMpO251bGwhPW4mJmRlbGV0ZSB0aGlzLl9ieUlkW25dLHRoaXM9PT10LmNvbGxlY3Rpb24mJmRlbGV0ZSB0LmNvbGxlY3Rpb24sdC5vZmYoImFsbCIsdGhpcy5fb25Nb2RlbEV2ZW50LHRoaXMpfSxfb25Nb2RlbEV2ZW50OmZ1bmN0aW9uKHQsZSxuLGkpe2lmKCJhZGQiIT09dCYmInJlbW92ZSIhPT10fHxuPT09dGhpcyl7aWYoImRlc3Ryb3kiPT09dCYmdGhpcy5yZW1vdmUoZSxpKSwiY2hhbmdlIj09PXQpe3ZhciByPXRoaXMubW9kZWxJZChlLnByZXZpb3VzQXR0cmlidXRlcygpKSxvPXRoaXMubW9kZWxJZChlLmF0dHJpYnV0ZXMpO3IhPT1vJiYobnVsbCE9ciYmZGVsZXRlIHRoaXMuX2J5SWRbcl0sbnVsbCE9byYmKHRoaXMuX2J5SWRbb109ZSkpfXRoaXMudHJpZ2dlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0pLHMoeSx7Zm9yRWFjaDozLGVhY2g6MyxtYXA6Myxjb2xsZWN0OjMscmVkdWNlOjQsZm9sZGw6NCxpbmplY3Q6NCxyZWR1Y2VSaWdodDo0LGZvbGRyOjQsZmluZDozLGRldGVjdDozLGZpbHRlcjozLHNlbGVjdDozLHJlamVjdDozLGV2ZXJ5OjMsYWxsOjMsc29tZTozLGFueTozLGluY2x1ZGU6MyxpbmNsdWRlczozLGNvbnRhaW5zOjMsaW52b2tlOjAsbWF4OjMsbWluOjMsdG9BcnJheToxLHNpemU6MSxmaXJzdDozLGhlYWQ6Myx0YWtlOjMsaW5pdGlhbDozLHJlc3Q6Myx0YWlsOjMsZHJvcDozLGxhc3Q6Myx3aXRob3V0OjAsZGlmZmVyZW5jZTowLGluZGV4T2Y6MyxzaHVmZmxlOjEsbGFzdEluZGV4T2Y6Myxpc0VtcHR5OjEsY2hhaW46MSxzYW1wbGU6MyxwYXJ0aXRpb246Myxncm91cEJ5OjMsY291bnRCeTozLHNvcnRCeTozLGluZGV4Qnk6M30sIm1vZGVscyIpO3ZhciBNPWUuVmlldz1mdW5jdGlvbih0KXt0aGlzLmNpZD1uLnVuaXF1ZUlkKCJ2aWV3Iiksbi5leHRlbmQodGhpcyxuLnBpY2sodCxFKSksdGhpcy5fZW5zdXJlRWxlbWVudCgpLHRoaXMuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9L14oXFMrKVxzKiguKikkLyxFPVsibW9kZWwiLCJjb2xsZWN0aW9uIiwiZWwiLCJpZCIsImF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJ0YWdOYW1lIiwiZXZlbnRzIl07bi5leHRlbmQoTS5wcm90b3R5cGUsYyx7dGFnTmFtZToiZGl2IiwkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLiRlbC5maW5kKHQpfSxpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUVsZW1lbnQoKSx0aGlzLnN0b3BMaXN0ZW5pbmcoKSx0aGlzfSxfcmVtb3ZlRWxlbWVudDpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZSgpfSxzZXRFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVuZGVsZWdhdGVFdmVudHMoKSx0aGlzLl9zZXRFbGVtZW50KHQpLHRoaXMuZGVsZWdhdGVFdmVudHMoKSx0aGlzfSxfc2V0RWxlbWVudDpmdW5jdGlvbih0KXt0aGlzLiRlbD10IGluc3RhbmNlb2YgZS4kP3Q6ZS4kKHQpLHRoaXMuZWw9dGhpcy4kZWxbMF19LGRlbGVnYXRlRXZlbnRzOmZ1bmN0aW9uKHQpe2lmKHR8fCh0PW4ucmVzdWx0KHRoaXMsImV2ZW50cyIpKSwhdClyZXR1cm4gdGhpcztmb3IodmFyIGUgaW4gdGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdCl7dmFyIGk9dFtlXTtpZihuLmlzRnVuY3Rpb24oaSl8fChpPXRoaXNbaV0pLGkpe3ZhciByPWUubWF0Y2goUyk7dGhpcy5kZWxlZ2F0ZShyWzFdLHJbMl0sbi5iaW5kKGksdGhpcykpfX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLiRlbC5vbih0KyIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkLGUsbiksdGhpc30sdW5kZWxlZ2F0ZUV2ZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbCYmdGhpcy4kZWwub2ZmKCIuZGVsZWdhdGVFdmVudHMiK3RoaXMuY2lkKSx0aGlzfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy4kZWwub2ZmKHQrIi5kZWxlZ2F0ZUV2ZW50cyIrdGhpcy5jaWQsZSxuKSx0aGlzfSxfY3JlYXRlRWxlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KX0sX2Vuc3VyZUVsZW1lbnQ6ZnVuY3Rpb24oKXtpZih0aGlzLmVsKXRoaXMuc2V0RWxlbWVudChuLnJlc3VsdCh0aGlzLCJlbCIpKTtlbHNle3ZhciB0PW4uZXh0ZW5kKHt9LG4ucmVzdWx0KHRoaXMsImF0dHJpYnV0ZXMiKSk7dGhpcy5pZCYmKHQuaWQ9bi5yZXN1bHQodGhpcywiaWQiKSksdGhpcy5jbGFzc05hbWUmJih0LmNsYXNzPW4ucmVzdWx0KHRoaXMsImNsYXNzTmFtZSIpKSx0aGlzLnNldEVsZW1lbnQodGhpcy5fY3JlYXRlRWxlbWVudChuLnJlc3VsdCh0aGlzLCJ0YWdOYW1lIikpKSx0aGlzLl9zZXRBdHRyaWJ1dGVzKHQpfX0sX3NldEF0dHJpYnV0ZXM6ZnVuY3Rpb24odCl7dGhpcy4kZWwuYXR0cih0KX19KSxlLnN5bmM9ZnVuY3Rpb24odCxpLHIpe3ZhciBvPUFbdF07bi5kZWZhdWx0cyhyfHwocj17fSkse2VtdWxhdGVIVFRQOmUuZW11bGF0ZUhUVFAsZW11bGF0ZUpTT046ZS5lbXVsYXRlSlNPTn0pO3ZhciBzPXt0eXBlOm8sZGF0YVR5cGU6Impzb24ifTtpZihyLnVybHx8KHMudXJsPW4ucmVzdWx0KGksInVybCIpfHxEKCkpLG51bGwhPXIuZGF0YXx8IWl8fCJjcmVhdGUiIT09dCYmInVwZGF0ZSIhPT10JiYicGF0Y2giIT09dHx8KHMuY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24iLHMuZGF0YT1KU09OLnN0cmluZ2lmeShyLmF0dHJzfHxpLnRvSlNPTihyKSkpLHIuZW11bGF0ZUpTT04mJihzLmNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHMuZGF0YT1zLmRhdGE/e21vZGVsOnMuZGF0YX06e30pLHIuZW11bGF0ZUhUVFAmJigiUFVUIj09PW98fCJERUxFVEUiPT09b3x8IlBBVENIIj09PW8pKXtzLnR5cGU9IlBPU1QiLHIuZW11bGF0ZUpTT04mJihzLmRhdGEuX21ldGhvZD1vKTt2YXIgYT1yLmJlZm9yZVNlbmQ7ci5iZWZvcmVTZW5kPWZ1bmN0aW9uKHQpe2lmKHQuc2V0UmVxdWVzdEhlYWRlcigiWC1IVFRQLU1ldGhvZC1PdmVycmlkZSIsbyksYSlyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSJHRVQiPT09cy50eXBlfHxyLmVtdWxhdGVKU09OfHwocy5wcm9jZXNzRGF0YT0hMSk7dmFyIHU9ci5lcnJvcjtyLmVycm9yPWZ1bmN0aW9uKHQsZSxuKXtyLnRleHRTdGF0dXM9ZSxyLmVycm9yVGhyb3duPW4sdSYmdS5jYWxsKHIuY29udGV4dCx0LGUsbil9O3ZhciBjPXIueGhyPWUuYWpheChuLmV4dGVuZChzLHIpKTtyZXR1cm4gaS50cmlnZ2VyKCJyZXF1ZXN0IixpLGMsciksY307dmFyIEE9e2NyZWF0ZToiUE9TVCIsdXBkYXRlOiJQVVQiLHBhdGNoOiJQQVRDSCIsZGVsZXRlOiJERUxFVEUiLHJlYWQ6IkdFVCJ9O2UuYWpheD1mdW5jdGlvbigpe3JldHVybiBlLiQuYWpheC5hcHBseShlLiQsYXJndW1lbnRzKX07dmFyIEM9ZS5Sb3V0ZXI9ZnVuY3Rpb24odCl7dHx8KHQ9e30pLHQucm91dGVzJiYodGhpcy5yb3V0ZXM9dC5yb3V0ZXMpLHRoaXMuX2JpbmRSb3V0ZXMoKSx0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxrPS9cKCguKj8pXCkvZyxPPS8oXChcPyk/Olx3Ky9nLFA9L1wqXHcrL2csVD0vW1wte31cW1xdKz8uLFxcXF4kfCNcc10vZztuLmV4dGVuZChDLnByb3RvdHlwZSxjLHtpbml0aWFsaXplOmZ1bmN0aW9uKCl7fSxyb3V0ZTpmdW5jdGlvbih0LGkscil7bi5pc1JlZ0V4cCh0KXx8KHQ9dGhpcy5fcm91dGVUb1JlZ0V4cCh0KSksbi5pc0Z1bmN0aW9uKGkpJiYocj1pLGk9IiIpLHJ8fChyPXRoaXNbaV0pO3ZhciBvPXRoaXM7cmV0dXJuIGUuaGlzdG9yeS5yb3V0ZSh0LGZ1bmN0aW9uKG4pe3ZhciBzPW8uX2V4dHJhY3RQYXJhbWV0ZXJzKHQsbik7ITEhPT1vLmV4ZWN1dGUocixzLGkpJiYoby50cmlnZ2VyLmFwcGx5KG8sWyJyb3V0ZToiK2ldLmNvbmNhdChzKSksby50cmlnZ2VyKCJyb3V0ZSIsaSxzKSxlLmhpc3RvcnkudHJpZ2dlcigicm91dGUiLG8saSxzKSl9KSx0aGlzfSxleGVjdXRlOmZ1bmN0aW9uKHQsZSxuKXt0JiZ0LmFwcGx5KHRoaXMsZSl9LG5hdmlnYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuaGlzdG9yeS5uYXZpZ2F0ZSh0LG4pLHRoaXN9LF9iaW5kUm91dGVzOmZ1bmN0aW9uKCl7aWYodGhpcy5yb3V0ZXMpe3RoaXMucm91dGVzPW4ucmVzdWx0KHRoaXMsInJvdXRlcyIpO2Zvcih2YXIgdCxlPW4ua2V5cyh0aGlzLnJvdXRlcyk7bnVsbCE9KHQ9ZS5wb3AoKSk7KXRoaXMucm91dGUodCx0aGlzLnJvdXRlc1t0XSl9fSxfcm91dGVUb1JlZ0V4cDpmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UoVCwiXFwkJiIpLnJlcGxhY2UoaywiKD86JDEpPyIpLnJlcGxhY2UoTyxmdW5jdGlvbih0LGUpe3JldHVybiBlP3Q6IihbXi8/XSspIn0pLnJlcGxhY2UoUCwiKFteP10qPykiKSxuZXcgUmVnRXhwKCJeIit0KyIoPzpcXD8oW1xcc1xcU10qKSk/JCIpfSxfZXh0cmFjdFBhcmFtZXRlcnM6ZnVuY3Rpb24odCxlKXt2YXIgaT10LmV4ZWMoZSkuc2xpY2UoMSk7cmV0dXJuIG4ubWFwKGksZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PWkubGVuZ3RoLTE/dHx8bnVsbDp0P2RlY29kZVVSSUNvbXBvbmVudCh0KTpudWxsfSl9fSk7dmFyIGo9ZS5IaXN0b3J5PWZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVycz1bXSx0aGlzLmNoZWNrVXJsPW4uYmluZCh0aGlzLmNoZWNrVXJsLHRoaXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYodGhpcy5sb2NhdGlvbj13aW5kb3cubG9jYXRpb24sdGhpcy5oaXN0b3J5PXdpbmRvdy5oaXN0b3J5KX0sST0vXlsjXC9dfFxzKyQvZyxMPS9eXC8rfFwvKyQvZyxCPS8jLiokLztqLnN0YXJ0ZWQ9ITEsbi5leHRlbmQoai5wcm90b3R5cGUsYyx7aW50ZXJ2YWw6NTAsYXRSb290OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9bXlwvXSQvLCIkJi8iKTtyZXR1cm4gdD09PXRoaXMucm9vdCYmIXRoaXMuZ2V0U2VhcmNoKCl9LG1hdGNoUm9vdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZGVjb2RlRnJhZ21lbnQodGhpcy5sb2NhdGlvbi5wYXRobmFtZSksZT10LnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aC0xKSsiLyI7cmV0dXJuIGU9PT10aGlzLnJvb3R9LGRlY29kZUZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUkkodC5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSl9LGdldFNlYXJjaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubG9jYXRpb24uaHJlZi5yZXBsYWNlKC8jLiovLCIiKS5tYXRjaCgvXD8uKy8pO3JldHVybiB0P3RbMF06IiJ9LGdldEhhc2g6ZnVuY3Rpb24odCl7dmFyIGU9KHR8fHRoaXMpLmxvY2F0aW9uLmhyZWYubWF0Y2goLyMoLiopJC8pO3JldHVybiBlP2VbMV06IiJ9LGdldFBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRlY29kZUZyYWdtZW50KHRoaXMubG9jYXRpb24ucGF0aG5hbWUrdGhpcy5nZXRTZWFyY2goKSkuc2xpY2UodGhpcy5yb290Lmxlbmd0aC0xKTtyZXR1cm4iLyI9PT10LmNoYXJBdCgwKT90LnNsaWNlKDEpOnR9LGdldEZyYWdtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10JiYodD10aGlzLl91c2VQdXNoU3RhdGV8fCF0aGlzLl93YW50c0hhc2hDaGFuZ2U/dGhpcy5nZXRQYXRoKCk6dGhpcy5nZXRIYXNoKCkpLHQucmVwbGFjZShJLCIiKX0sc3RhcnQ6ZnVuY3Rpb24odCl7aWYoai5zdGFydGVkKXRocm93IG5ldyBFcnJvcigiQmFja2JvbmUuaGlzdG9yeSBoYXMgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQiKTtpZihqLnN0YXJ0ZWQ9ITAsdGhpcy5vcHRpb25zPW4uZXh0ZW5kKHtyb290OiIvIn0sdGhpcy5vcHRpb25zLHQpLHRoaXMucm9vdD10aGlzLm9wdGlvbnMucm9vdCx0aGlzLl93YW50c0hhc2hDaGFuZ2U9ITEhPT10aGlzLm9wdGlvbnMuaGFzaENoYW5nZSx0aGlzLl9oYXNIYXNoQ2hhbmdlPSJvbmhhc2hjaGFuZ2UiaW4gd2luZG93JiYodm9pZCAwPT09ZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU+NyksdGhpcy5fdXNlSGFzaENoYW5nZT10aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX2hhc0hhc2hDaGFuZ2UsdGhpcy5fd2FudHNQdXNoU3RhdGU9ISF0aGlzLm9wdGlvbnMucHVzaFN0YXRlLHRoaXMuX2hhc1B1c2hTdGF0ZT0hKCF0aGlzLmhpc3Rvcnl8fCF0aGlzLmhpc3RvcnkucHVzaFN0YXRlKSx0aGlzLl91c2VQdXNoU3RhdGU9dGhpcy5fd2FudHNQdXNoU3RhdGUmJnRoaXMuX2hhc1B1c2hTdGF0ZSx0aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQoKSx0aGlzLnJvb3Q9KCIvIit0aGlzLnJvb3QrIi8iKS5yZXBsYWNlKEwsIi8iKSx0aGlzLl93YW50c0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzUHVzaFN0YXRlKXtpZighdGhpcy5faGFzUHVzaFN0YXRlJiYhdGhpcy5hdFJvb3QoKSl7dmFyIGU9dGhpcy5yb290LnNsaWNlKDAsLTEpfHwiLyI7cmV0dXJuIHRoaXMubG9jYXRpb24ucmVwbGFjZShlKyIjIit0aGlzLmdldFBhdGgoKSksITB9dGhpcy5faGFzUHVzaFN0YXRlJiZ0aGlzLmF0Um9vdCgpJiZ0aGlzLm5hdmlnYXRlKHRoaXMuZ2V0SGFzaCgpLHtyZXBsYWNlOiEwfSl9aWYoIXRoaXMuX2hhc0hhc2hDaGFuZ2UmJnRoaXMuX3dhbnRzSGFzaENoYW5nZSYmIXRoaXMuX3VzZVB1c2hTdGF0ZSl7dGhpcy5pZnJhbWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksdGhpcy5pZnJhbWUuc3JjPSJqYXZhc2NyaXB0OjAiLHRoaXMuaWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaWZyYW1lLnRhYkluZGV4PS0xO3ZhciBpPWRvY3VtZW50LmJvZHkscj1pLmluc2VydEJlZm9yZSh0aGlzLmlmcmFtZSxpLmZpcnN0Q2hpbGQpLmNvbnRlbnRXaW5kb3c7ci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpLHIubG9jYXRpb24uaGFzaD0iIyIrdGhpcy5mcmFnbWVudH12YXIgbz13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXR0YWNoRXZlbnQoIm9uIit0LGUpfTtpZih0aGlzLl91c2VQdXNoU3RhdGU/bygicG9wc3RhdGUiLHRoaXMuY2hlY2tVcmwsITEpOnRoaXMuX3VzZUhhc2hDaGFuZ2UmJiF0aGlzLmlmcmFtZT9vKCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKTp0aGlzLl93YW50c0hhc2hDaGFuZ2UmJih0aGlzLl9jaGVja1VybEludGVydmFsPXNldEludGVydmFsKHRoaXMuY2hlY2tVcmwsdGhpcy5pbnRlcnZhbCkpLCF0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB0aGlzLmxvYWRVcmwoKX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyfHxmdW5jdGlvbih0LGUpe3JldHVybiBkZXRhY2hFdmVudCgib24iK3QsZSl9O3RoaXMuX3VzZVB1c2hTdGF0ZT90KCJwb3BzdGF0ZSIsdGhpcy5jaGVja1VybCwhMSk6dGhpcy5fdXNlSGFzaENoYW5nZSYmIXRoaXMuaWZyYW1lJiZ0KCJoYXNoY2hhbmdlIix0aGlzLmNoZWNrVXJsLCExKSx0aGlzLmlmcmFtZSYmKGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5pZnJhbWUpLHRoaXMuaWZyYW1lPW51bGwpLHRoaXMuX2NoZWNrVXJsSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5fY2hlY2tVcmxJbnRlcnZhbCksai5zdGFydGVkPSExfSxyb3V0ZTpmdW5jdGlvbih0LGUpe3RoaXMuaGFuZGxlcnMudW5zaGlmdCh7cm91dGU6dCxjYWxsYmFjazplfSl9LGNoZWNrVXJsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0RnJhZ21lbnQoKTtpZihlPT09dGhpcy5mcmFnbWVudCYmdGhpcy5pZnJhbWUmJihlPXRoaXMuZ2V0SGFzaCh0aGlzLmlmcmFtZS5jb250ZW50V2luZG93KSksZT09PXRoaXMuZnJhZ21lbnQpcmV0dXJuITE7dGhpcy5pZnJhbWUmJnRoaXMubmF2aWdhdGUoZSksdGhpcy5sb2FkVXJsKCl9LGxvYWRVcmw6ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLm1hdGNoUm9vdCgpJiYodD10aGlzLmZyYWdtZW50PXRoaXMuZ2V0RnJhZ21lbnQodCksbi5zb21lKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oZSl7aWYoZS5yb3V0ZS50ZXN0KHQpKXJldHVybiBlLmNhbGxiYWNrKHQpLCEwfSkpfSxuYXZpZ2F0ZTpmdW5jdGlvbih0LGUpe2lmKCFqLnN0YXJ0ZWQpcmV0dXJuITE7ZSYmITAhPT1lfHwoZT17dHJpZ2dlcjohIWV9KSx0PXRoaXMuZ2V0RnJhZ21lbnQodHx8IiIpO3ZhciBuPXRoaXMucm9vdDsiIiE9PXQmJiI/IiE9PXQuY2hhckF0KDApfHwobj1uLnNsaWNlKDAsLTEpfHwiLyIpO3ZhciBpPW4rdDtpZih0PXRoaXMuZGVjb2RlRnJhZ21lbnQodC5yZXBsYWNlKEIsIiIpKSx0aGlzLmZyYWdtZW50IT09dCl7aWYodGhpcy5mcmFnbWVudD10LHRoaXMuX3VzZVB1c2hTdGF0ZSl0aGlzLmhpc3RvcnlbZS5yZXBsYWNlPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXSh7fSxkb2N1bWVudC50aXRsZSxpKTtlbHNle2lmKCF0aGlzLl93YW50c0hhc2hDaGFuZ2UpcmV0dXJuIHRoaXMubG9jYXRpb24uYXNzaWduKGkpO2lmKHRoaXMuX3VwZGF0ZUhhc2godGhpcy5sb2NhdGlvbix0LGUucmVwbGFjZSksdGhpcy5pZnJhbWUmJnQhPT10aGlzLmdldEhhc2godGhpcy5pZnJhbWUuY29udGVudFdpbmRvdykpe3ZhciByPXRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3c7ZS5yZXBsYWNlfHwoci5kb2N1bWVudC5vcGVuKCksci5kb2N1bWVudC5jbG9zZSgpKSx0aGlzLl91cGRhdGVIYXNoKHIubG9jYXRpb24sdCxlLnJlcGxhY2UpfX1yZXR1cm4gZS50cmlnZ2VyP3RoaXMubG9hZFVybCh0KTp2b2lkIDB9fSxfdXBkYXRlSGFzaDpmdW5jdGlvbih0LGUsbil7aWYobil7dmFyIGk9dC5ocmVmLnJlcGxhY2UoLyhqYXZhc2NyaXB0OnwjKS4qJC8sIiIpO3QucmVwbGFjZShpKyIjIitlKX1lbHNlIHQuaGFzaD0iIyIrZX19KSxlLmhpc3Rvcnk9bmV3IGosYi5leHRlbmQ9eS5leHRlbmQ9Qy5leHRlbmQ9TS5leHRlbmQ9ai5leHRlbmQ9ZnVuY3Rpb24odCxlKXt2YXIgaSxyPXRoaXM7aT10JiZuLmhhcyh0LCJjb25zdHJ1Y3RvciIpP3QuY29uc3RydWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG4uZXh0ZW5kKGkscixlKTt2YXIgbz1mdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3I9aX07cmV0dXJuIG8ucHJvdG90eXBlPXIucHJvdG90eXBlLGkucHJvdG90eXBlPW5ldyBvLHQmJm4uZXh0ZW5kKGkucHJvdG90eXBlLHQpLGkuX19zdXBlcl9fPXIucHJvdG90eXBlLGl9O3ZhciBEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCdBICJ1cmwiIHByb3BlcnR5IG9yIGZ1bmN0aW9uIG11c3QgYmUgc3BlY2lmaWVkJyl9LFI9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmVycm9yO2UuZXJyb3I9ZnVuY3Rpb24oaSl7biYmbi5jYWxsKGUuY29udGV4dCx0LGksZSksdC50cmlnZ2VyKCJlcnJvciIsdCxpLGUpfX07cmV0dXJuIGV9KHMsbix0LGUpfS5hcHBseShlLHIpKXx8KHQuZXhwb3J0cz1vKX0pLmNhbGwodGhpcyxuKDEzKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpLHI9bigyKSxvPW4oMjYpLHM9big3OCksYT1uKDkpLHU9big3OSksYz1uKDExKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9yZXBsYXlpbmc9ITEsdGhpcy5fa2V5c3Ryb2tlcz1bXSx0aGlzLl9rZXlkb3duRXZlbnRzPVtdLHRoaXMuX2tleUJpbmRpbmdzPVtdLHRoaXMuX2V4YWN0S2V5TWF0Y2g9bnVsbCx0aGlzLl9jb21tYW5kcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2NvbW1hbmRDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKSx0aGlzLl9jb21tYW5kRXhlY3V0ZWQ9bmV3IGMuU2lnbmFsKHRoaXMpLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkPW5ldyBjLlNpZ25hbCh0aGlzKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjb21tYW5kQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNvbW1hbmRFeGVjdXRlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kRXhlY3V0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rZXlCaW5kaW5nQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImtleUJpbmRpbmdzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleUJpbmRpbmdzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmxpc3RDb21tYW5kcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jb21tYW5kcyl9LHQucHJvdG90eXBlLmhhc0NvbW1hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5fY29tbWFuZHN9LHQucHJvdG90eXBlLmFkZENvbW1hbmQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHQgaW4gdGhpcy5fY29tbWFuZHMpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgYWxyZWFkeSByZWdpc3RlcmVkLiIpO3JldHVybiB0aGlzLl9jb21tYW5kc1t0XT1pLmNyZWF0ZUNvbW1hbmQoZSksdGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtkZWxldGUgbi5fY29tbWFuZHNbdF0sbi5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOiJyZW1vdmVkIn0pfSl9LHQucHJvdG90eXBlLm5vdGlmeUNvbW1hbmRDaGFuZ2VkPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQmJiEodCBpbiB0aGlzLl9jb21tYW5kcykpdGhyb3cgbmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgaXMgbm90IHJlZ2lzdGVyZWQuIik7dGhpcy5fY29tbWFuZENoYW5nZWQuZW1pdCh7aWQ6dCx0eXBlOnQ/ImNoYW5nZWQiOiJtYW55LWNoYW5nZWQifSl9LHQucHJvdG90eXBlLmxhYmVsPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4gbj9uLmxhYmVsLmNhbGwodm9pZCAwLGUpOiIifSx0LnByb3RvdHlwZS5tbmVtb25pYz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5tbmVtb25pYy5jYWxsKHZvaWQgMCxlKTotMX0sdC5wcm90b3R5cGUuaWNvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpLHRoaXMuaWNvbkNsYXNzKHQsZSl9LHQucHJvdG90eXBlLmljb25DbGFzcz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uQ2xhc3MuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmljb25MYWJlbD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5pY29uTGFiZWwuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNhcHRpb249ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uY2FwdGlvbi5jYWxsKHZvaWQgMCxlKToiIn0sdC5wcm90b3R5cGUudXNhZ2U9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24udXNhZ2UuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmNsYXNzTmFtZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuIG4/bi5jbGFzc05hbWUuY2FsbCh2b2lkIDAsZSk6IiJ9LHQucHJvdG90eXBlLmRhdGFzZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiBuP24uZGF0YXNldC5jYWxsKHZvaWQgMCxlKTp7fX0sdC5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9by5KU09ORXh0LmVtcHR5T2JqZWN0KTt2YXIgbj10aGlzLl9jb21tYW5kc1t0XTtyZXR1cm4hIW4mJm4uaXNFbmFibGVkLmNhbGwodm9pZCAwLGUpfSx0LnByb3RvdHlwZS5pc1RvZ2dsZWQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT1vLkpTT05FeHQuZW1wdHlPYmplY3QpO3ZhciBuPXRoaXMuX2NvbW1hbmRzW3RdO3JldHVybiEhbiYmbi5pc1RvZ2dsZWQuY2FsbCh2b2lkIDAsZSl9LHQucHJvdG90eXBlLmlzVmlzaWJsZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG49dGhpcy5fY29tbWFuZHNbdF07cmV0dXJuISFuJiZuLmlzVmlzaWJsZS5jYWxsKHZvaWQgMCxlKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW8uSlNPTkV4dC5lbXB0eU9iamVjdCk7dmFyIG4saT10aGlzLl9jb21tYW5kc1t0XTtpZighaSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJDb21tYW5kICciK3QrIicgbm90IHJlZ2lzdGVyZWQuIikpO3RyeXtuPWkuZXhlY3V0ZS5jYWxsKHZvaWQgMCxlKX1jYXRjaCh0KXtuPVByb21pc2UucmVqZWN0KHQpfXZhciByPVByb21pc2UucmVzb2x2ZShuKTtyZXR1cm4gdGhpcy5fY29tbWFuZEV4ZWN1dGVkLmVtaXQoe2lkOnQsYXJnczplLHJlc3VsdDpyfSkscn0sdC5wcm90b3R5cGUuYWRkS2V5QmluZGluZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49aS5jcmVhdGVLZXlCaW5kaW5nKHQpO3JldHVybiB0aGlzLl9rZXlCaW5kaW5ncy5wdXNoKG4pLHRoaXMuX2tleUJpbmRpbmdDaGFuZ2VkLmVtaXQoe2JpbmRpbmc6bix0eXBlOiJhZGRlZCJ9KSxuZXcgcy5EaXNwb3NhYmxlRGVsZWdhdGUoZnVuY3Rpb24oKXtyLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YoZS5fa2V5QmluZGluZ3MsbiksZS5fa2V5QmluZGluZ0NoYW5nZWQuZW1pdCh7YmluZGluZzpuLHR5cGU6InJlbW92ZWQifSl9KX0sdC5wcm90b3R5cGUucHJvY2Vzc0tleWRvd25FdmVudD1mdW5jdGlvbihlKXtpZighdGhpcy5fcmVwbGF5aW5nKXt2YXIgbj10LmtleXN0cm9rZUZvcktleWRvd25FdmVudChlKTtpZighbilyZXR1cm4gdGhpcy5fcmVwbGF5S2V5ZG93bkV2ZW50cygpLHZvaWQgdGhpcy5fY2xlYXJQZW5kaW5nU3RhdGUoKTt0aGlzLl9rZXlzdHJva2VzLnB1c2gobik7dmFyIHI9aS5tYXRjaEtleUJpbmRpbmcodGhpcy5fa2V5QmluZGluZ3MsdGhpcy5fa2V5c3Ryb2tlcyxlKSxvPXIuZXhhY3Qscz1yLnBhcnRpYWw7aWYoIW8mJiFzKXJldHVybiB0aGlzLl9yZXBsYXlLZXlkb3duRXZlbnRzKCksdm9pZCB0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpO2lmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG8mJiFzKXJldHVybiB0aGlzLl9leGVjdXRlS2V5QmluZGluZyhvKSx2b2lkIHRoaXMuX2NsZWFyUGVuZGluZ1N0YXRlKCk7byYmKHRoaXMuX2V4YWN0S2V5TWF0Y2g9byksdGhpcy5fa2V5ZG93bkV2ZW50cy5wdXNoKGUpLHRoaXMuX3N0YXJ0VGltZXIoKX19LHQucHJvdG90eXBlLl9zdGFydFRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9jbGVhclRpbWVyKCksdGhpcy5fdGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb25QZW5kaW5nVGltZW91dCgpfSxpLkNIT1JEX1RJTUVPVVQpfSx0LnByb3RvdHlwZS5fY2xlYXJUaW1lcj1mdW5jdGlvbigpezAhPT10aGlzLl90aW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySUQpLHRoaXMuX3RpbWVySUQ9MCl9LHQucHJvdG90eXBlLl9yZXBsYXlLZXlkb3duRXZlbnRzPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX2tleWRvd25FdmVudHMubGVuZ3RoJiYodGhpcy5fcmVwbGF5aW5nPSEwLHRoaXMuX2tleWRvd25FdmVudHMuZm9yRWFjaChpLnJlcGxheUtleUV2ZW50KSx0aGlzLl9yZXBsYXlpbmc9ITEpfSx0LnByb3RvdHlwZS5fZXhlY3V0ZUtleUJpbmRpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO2lmKHRoaXMuaGFzQ29tbWFuZChlKSYmdGhpcy5pc0VuYWJsZWQoZSxuKSl0aGlzLmV4ZWN1dGUoZSxuKTtlbHNle3ZhciBpPXRoaXMuaGFzQ29tbWFuZChlKT8iZW5hYmxlZCI6InJlZ2lzdGVyZWQiLHI9IkNhbm5vdCBleGVjdXRlIGtleSBiaW5kaW5nICciK3Qua2V5cy5qb2luKCIsICIpKyInOiIsbz0iY29tbWFuZCAnIitlKyInIGlzIG5vdCAiK2krIi4iO2NvbnNvbGUud2FybihyKyIgIitvKX19LHQucHJvdG90eXBlLl9jbGVhclBlbmRpbmdTdGF0ZT1mdW5jdGlvbigpe3RoaXMuX2NsZWFyVGltZXIoKSx0aGlzLl9leGFjdEtleU1hdGNoPW51bGwsdGhpcy5fa2V5c3Ryb2tlcy5sZW5ndGg9MCx0aGlzLl9rZXlkb3duRXZlbnRzLmxlbmd0aD0wfSx0LnByb3RvdHlwZS5fb25QZW5kaW5nVGltZW91dD1mdW5jdGlvbigpe3RoaXMuX3RpbWVySUQ9MCx0aGlzLl9leGFjdEtleU1hdGNoP3RoaXMuX2V4ZWN1dGVLZXlCaW5kaW5nKHRoaXMuX2V4YWN0S2V5TWF0Y2gpOnRoaXMuX3JlcGxheUtleWRvd25FdmVudHMoKSx0aGlzLl9jbGVhclBlbmRpbmdTdGF0ZSgpfSx0fSgpO2UuQ29tbWFuZFJlZ2lzdHJ5PWgsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtmb3IodmFyIGU9IiIsbj0hMSxpPSExLHI9ITEsbz0hMSxzPTAsdT10LnNwbGl0KC9ccysvKTtzPHUubGVuZ3RoO3MrKyl7dmFyIGM9dVtzXTsiQWNjZWwiPT09Yz9hLlBsYXRmb3JtLklTX01BQz9pPSEwOnI9ITA6IkFsdCI9PT1jP249ITA6IkNtZCI9PT1jP2k9ITA6IkN0cmwiPT09Yz9yPSEwOiJTaGlmdCI9PT1jP289ITA6Yy5sZW5ndGg+MCYmKGU9Yyl9cmV0dXJue2NtZDppLGN0cmw6cixhbHQ6bixzaGlmdDpvLGtleTplfX10LnBhcnNlS2V5c3Ryb2tlPWUsdC5ub3JtYWxpemVLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIG49IiIsaT1lKHQpO3JldHVybiBpLmN0cmwmJihuKz0iQ3RybCAiKSxpLmFsdCYmKG4rPSJBbHQgIiksaS5zaGlmdCYmKG4rPSJTaGlmdCAiKSxpLmNtZCYmYS5QbGF0Zm9ybS5JU19NQUMmJihuKz0iQ21kICIpLG4raS5rZXl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBuPSIiLGk9ZSh0KTtyZXR1cm4gYS5QbGF0Zm9ybS5JU19NQUM/KGkuY3RybCYmKG4rPSLijIMgIiksaS5hbHQmJihuKz0i4oylICIpLGkuc2hpZnQmJihuKz0i4oenICIpLGkuY21kJiYobis9IuKMmCAiKSk6KGkuY3RybCYmKG4rPSJDdHJsKyIpLGkuYWx0JiYobis9IkFsdCsiKSxpLnNoaWZ0JiYobis9IlNoaWZ0KyIpKSxuK2kua2V5fSx0LmtleXN0cm9rZUZvcktleWRvd25FdmVudD1mdW5jdGlvbih0KXt2YXIgZT11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKCFlKXJldHVybiIiO3ZhciBuPSIiO3JldHVybiB0LmN0cmxLZXkmJihuKz0iQ3RybCAiKSx0LmFsdEtleSYmKG4rPSJBbHQgIiksdC5zaGlmdEtleSYmKG4rPSJTaGlmdCAiKSx0Lm1ldGFLZXkmJmEuUGxhdGZvcm0uSVNfTUFDJiYobis9IkNtZCAiKSxuK2V9fShoPWUuQ29tbWFuZFJlZ2lzdHJ5fHwoZS5Db21tYW5kUmVnaXN0cnk9e30pKSxlLkNvbW1hbmRSZWdpc3RyeT1oLGZ1bmN0aW9uKHQpe3QuQ0hPUkRfVElNRU9VVD0xZTMsdC5jcmVhdGVDb21tYW5kPWZ1bmN0aW9uKHQpe3JldHVybntleGVjdXRlOnQuZXhlY3V0ZSxsYWJlbDp1KHQubGFiZWwsZSksbW5lbW9uaWM6dSh0Lm1uZW1vbmljLG4pLGljb25DbGFzczp1KHQuaWNvbkNsYXNzfHx0Lmljb24sZSksaWNvbkxhYmVsOnUodC5pY29uTGFiZWwsZSksY2FwdGlvbjp1KHQuY2FwdGlvbixlKSx1c2FnZTp1KHQudXNhZ2UsZSksY2xhc3NOYW1lOnUodC5jbGFzc05hbWUsZSksZGF0YXNldDp1KHQuZGF0YXNldCxzKSxpc0VuYWJsZWQ6dC5pc0VuYWJsZWR8fGksaXNUb2dnbGVkOnQuaXNUb2dnbGVkfHxyLGlzVmlzaWJsZTp0LmlzVmlzaWJsZXx8aX19LHQuY3JlYXRlS2V5QmluZGluZz1mdW5jdGlvbih0KXtyZXR1cm57a2V5czpjKHQpLHNlbGVjdG9yOmwodCksY29tbWFuZDp0LmNvbW1hbmQsYXJnczp0LmFyZ3N8fG8uSlNPTkV4dC5lbXB0eU9iamVjdH19LHQubWF0Y2hLZXlCaW5kaW5nPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9bnVsbCxyPSExLG89MS8wLHM9MCx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD10W3VdLGw9ZChoLmtleXMsZSk7aWYoMCE9PWwpaWYoMiE9PWwpe3ZhciBwPWYoaC5zZWxlY3RvcixuKTtpZighKC0xPT09cHx8cD5vKSl7dmFyIG09YS5TZWxlY3Rvci5jYWxjdWxhdGVTcGVjaWZpY2l0eShoLnNlbGVjdG9yKTsoIWl8fHA8b3x8bT49cykmJihpPWgsbz1wLHM9bSl9fWVsc2Ugcnx8LTE9PT1mKGguc2VsZWN0b3Isbil8fChyPSEwKX1yZXR1cm57ZXhhY3Q6aSxwYXJ0aWFsOnJ9fSx0LnJlcGxheUtleUV2ZW50PWZ1bmN0aW9uKHQpe3QudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksbj10LmJ1YmJsZXN8fCEwLGk9dC5jYW5jZWxhYmxlfHwhMDtyZXR1cm4gZS5pbml0RXZlbnQodC50eXBlfHwia2V5ZG93biIsbixpKSxlLmtleT10LmtleXx8IiIsZS5rZXlDb2RlPXQua2V5Q29kZXx8MCxlLndoaWNoPXQua2V5Q29kZXx8MCxlLmN0cmxLZXk9dC5jdHJsS2V5fHwhMSxlLmFsdEtleT10LmFsdEtleXx8ITEsZS5zaGlmdEtleT10LnNoaWZ0S2V5fHwhMSxlLm1ldGFLZXk9dC5tZXRhS2V5fHwhMSxlLnZpZXc9dC52aWV3fHx3aW5kb3csZX0odCkpfTt2YXIgZT1mdW5jdGlvbigpe3JldHVybiIifSxuPWZ1bmN0aW9uKCl7cmV0dXJuLTF9LGk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0scj1mdW5jdGlvbigpe3JldHVybiExfSxzPWZ1bmN0aW9uKCl7cmV0dXJue319O2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gdm9pZCAwPT09dD9lOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gYyh0KXtyZXR1cm4oYS5QbGF0Zm9ybS5JU19XSU4/dC53aW5LZXlzfHx0LmtleXM6YS5QbGF0Zm9ybS5JU19NQUM/dC5tYWNLZXlzfHx0LmtleXM6dC5saW51eEtleXN8fHQua2V5cykubWFwKGgubm9ybWFsaXplS2V5c3Ryb2tlKX1mdW5jdGlvbiBsKHQpe2lmKC0xIT09dC5zZWxlY3Rvci5pbmRleE9mKCIsIikpdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RvciBjYW5ub3QgY29udGFpbiBjb21tYXM6ICIrdC5zZWxlY3Rvcik7aWYoIWEuU2VsZWN0b3IuaXNWYWxpZCh0LnNlbGVjdG9yKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VsZWN0b3I6ICIrdC5zZWxlY3Rvcik7cmV0dXJuIHQuc2VsZWN0b3J9ZnVuY3Rpb24gZCh0LGUpe2lmKHQubGVuZ3RoPGUubGVuZ3RoKXJldHVybiAwO2Zvcih2YXIgbj0wLGk9ZS5sZW5ndGg7bjxpOysrbilpZih0W25dIT09ZVtuXSlyZXR1cm4gMDtyZXR1cm4gdC5sZW5ndGg+ZS5sZW5ndGg/MjoxfWZ1bmN0aW9uIGYodCxlKXtmb3IodmFyIG49ZS50YXJnZXQsaT1lLmN1cnJlbnRUYXJnZXQscj0wO251bGwhPT1uO249bi5wYXJlbnRFbGVtZW50LCsrcil7aWYoYS5TZWxlY3Rvci5tYXRjaGVzKG4sdCkpcmV0dXJuIHI7aWYobj09PWkpcmV0dXJuLTF9cmV0dXJuLTF9fShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHMsYT1uKDIpLHU9bigxMzApLGM9bigyNiksaD1uKDkpLGw9big3OSksZD1uKDUpLGY9bigxMSkscD1uKDU1KSxtPW4oNyksZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZhciBpPXQuY2FsbCh0aGlzLHtub2RlOnMuY3JlYXRlTm9kZSgpfSl8fHRoaXM7cmV0dXJuIGkuX2NoaWxkSW5kZXg9LTEsaS5fYWN0aXZlSW5kZXg9LTEsaS5fb3BlblRpbWVySUQ9MCxpLl9jbG9zZVRpbWVySUQ9MCxpLl9pdGVtcz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLl9wYXJlbnRNZW51PW51bGwsaS5fYWJvdXRUb0Nsb3NlPW5ldyBmLlNpZ25hbChpKSxpLl9tZW51UmVxdWVzdGVkPW5ldyBmLlNpZ25hbChpKSxpLmFkZENsYXNzKCJwLU1lbnUiKSxpLnNldEZsYWcobS5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFib3V0VG9DbG9zZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hYm91dFRvQ2xvc2V9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtZW51UmVxdWVzdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21lbnVSZXF1ZXN0ZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYXJlbnRNZW51Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjaGlsZE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hpbGRNZW51fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicm9vdE1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpczt0Ll9wYXJlbnRNZW51Oyl0PXQuX3BhcmVudE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsZWFmTWVudSIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzO3QuX2NoaWxkTWVudTspdD10Ll9jaGlsZE1lbnU7cmV0dXJuIHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51LWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZUl0ZW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXRlbXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX2l0ZW1zLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX2l0ZW1zLmxlbmd0aCkmJih0PS0xKSwtMT09PXR8fHMuY2FuQWN0aXZhdGUodGhpcy5faXRlbXNbdF0pfHwodD0tMSksdGhpcy5fYWN0aXZlSW5kZXghPT10JiYodGhpcy5fYWN0aXZlSW5kZXg9dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIml0ZW1zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2l0ZW1zfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFjdGl2YXRlTmV4dEl0ZW09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pdGVtcy5sZW5ndGgsZT10aGlzLl9hY3RpdmVJbmRleCxuPWU8dC0xP2UrMTowLGk9MD09PW4/dC0xOm4tMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMscy5jYW5BY3RpdmF0ZSxuLGkpfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVByZXZpb3VzSXRlbT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1zLmxlbmd0aCxlPXRoaXMuX2FjdGl2ZUluZGV4LG49ZTw9MD90LTE6ZS0xLGk9bj09PXQtMT8wOm4rMTt0aGlzLmFjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9pdGVtcyxzLmNhbkFjdGl2YXRlLG4saSl9LGUucHJvdG90eXBlLnRyaWdnZXJBY3RpdmVJdGVtPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0F0dGFjaGVkKXt2YXIgdD10aGlzLmFjdGl2ZUl0ZW07aWYodClpZih0aGlzLl9jYW5jZWxPcGVuVGltZXIoKSx0aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCksInN1Ym1lbnUiIT09dC50eXBlKXt0aGlzLnJvb3RNZW51LmNsb3NlKCk7dmFyIGU9dC5jb21tYW5kLG49dC5hcmdzO3RoaXMuY29tbWFuZHMuaXNFbmFibGVkKGUsbik/dGhpcy5jb21tYW5kcy5leGVjdXRlKGUsbik6Y29uc29sZS5sb2coIkNvbW1hbmQgJyIrZSsiJyBpcyBkaXNhYmxlZC4iKX1lbHNlIHRoaXMuX29wZW5DaGlsZE1lbnUoITApfX0sZS5wcm90b3R5cGUuYWRkSXRlbT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnNlcnRJdGVtKHRoaXMuX2l0ZW1zLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0SXRlbT1mdW5jdGlvbih0LGUpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTE7dmFyIG49TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX2l0ZW1zLmxlbmd0aCkpLGk9cy5jcmVhdGVJdGVtKHRoaXMsZSk7cmV0dXJuIGEuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2l0ZW1zLG4saSksdGhpcy51cGRhdGUoKSxpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlSXRlbUF0KHRoaXMuX2l0ZW1zLmluZGV4T2YodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVJdGVtQXQ9ZnVuY3Rpb24odCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSxhLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5jbGVhckl0ZW1zPWZ1bmN0aW9uKCl7dGhpcy5pc0F0dGFjaGVkJiZ0aGlzLmNsb3NlKCksdGhpcy5hY3RpdmVJbmRleD0tMSwwIT09dGhpcy5faXRlbXMubGVuZ3RoJiYodGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy51cGRhdGUoKSl9LGUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PW4mJihuPXt9KSwhdGhpcy5pc0F0dGFjaGVkKXt2YXIgaT1uLmZvcmNlWHx8ITEscj1uLmZvcmNlWXx8ITE7cy5vcGVuUm9vdE1lbnUodGhpcyx0LGUsaSxyKSx0aGlzLmFjdGl2YXRlKCl9fSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImtleWRvd24iOnRoaXMuX2V2dEtleURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZWVudGVyIjp0aGlzLl9ldnRNb3VzZUVudGVyKHQpO2JyZWFrO2Nhc2UibW91c2VsZWF2ZSI6dGhpcy5fZXZ0TW91c2VMZWF2ZSh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcyksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLmlzQXR0YWNoZWQmJnRoaXMubm9kZS5mb2N1cygpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2l0ZW1zLG49dGhpcy5yZW5kZXJlcixpPXRoaXMuX2FjdGl2ZUluZGV4LHI9cy5jb21wdXRlQ29sbGFwc2VkKGUpLG89bmV3IEFycmF5KGUubGVuZ3RoKSxhPTAsdT1lLmxlbmd0aDthPHU7KythKXt2YXIgYz1lW2FdLGg9YT09PWksbD1yW2FdO29bYV09bi5yZW5kZXJJdGVtKHtpdGVtOmMsYWN0aXZlOmgsY29sbGFwc2VkOmx9KX1wLlZpcnR1YWxET00ucmVuZGVyKG8sdGhpcy5jb250ZW50Tm9kZSl9LGUucHJvdG90eXBlLm9uQ2xvc2VSZXF1ZXN0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHRoaXMuX2NhbmNlbENsb3NlVGltZXIoKSx0aGlzLmFjdGl2ZUluZGV4PS0xO3ZhciBuPXRoaXMuX2NoaWxkTWVudTtuJiYodGhpcy5fY2hpbGRJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnU9bnVsbCxuLl9wYXJlbnRNZW51PW51bGwsbi5jbG9zZSgpKTt2YXIgaT10aGlzLl9wYXJlbnRNZW51O2kmJih0aGlzLl9wYXJlbnRNZW51PW51bGwsaS5fY2hpbGRJbmRleD0tMSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFjdGl2YXRlKCkpLHRoaXMuaXNBdHRhY2hlZCYmdGhpcy5fYWJvdXRUb0Nsb3NlLmVtaXQodm9pZCAwKSx0LnByb3RvdHlwZS5vbkNsb3NlUmVxdWVzdC5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQua2V5Q29kZTtpZigxMyE9PWUpaWYoMjchPT1lKWlmKDM3IT09ZSlpZigzOCE9PWUpaWYoMzkhPT1lKWlmKDQwIT09ZSl7dmFyIG49bC5nZXRLZXlib2FyZExheW91dCgpLmtleUZvcktleWRvd25FdmVudCh0KTtpZihuKXt2YXIgaT10aGlzLl9hY3RpdmVJbmRleCsxLHI9cy5maW5kTW5lbW9uaWModGhpcy5faXRlbXMsbixpKTstMT09PXIuaW5kZXh8fHIubXVsdGlwbGU/LTEhPT1yLmluZGV4P3RoaXMuYWN0aXZlSW5kZXg9ci5pbmRleDotMSE9PXIuYXV0byYmKHRoaXMuYWN0aXZlSW5kZXg9ci5hdXRvKToodGhpcy5hY3RpdmVJbmRleD1yLmluZGV4LHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKSl9fWVsc2UgdGhpcy5hY3RpdmF0ZU5leHRJdGVtKCk7ZWxzZXt2YXIgbz10aGlzLmFjdGl2ZUl0ZW07byYmInN1Ym1lbnUiPT09by50eXBlP3RoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKTp0aGlzLnJvb3RNZW51Ll9tZW51UmVxdWVzdGVkLmVtaXQoIm5leHQiKX1lbHNlIHRoaXMuYWN0aXZhdGVQcmV2aW91c0l0ZW0oKTtlbHNlIHRoaXMuX3BhcmVudE1lbnU/dGhpcy5jbG9zZSgpOnRoaXMuX21lbnVSZXF1ZXN0ZWQuZW1pdCgicHJldmlvdXMiKTtlbHNlIHRoaXMuY2xvc2UoKTtlbHNlIHRoaXMudHJpZ2dlckFjdGl2ZUl0ZW0oKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy50cmlnZ2VyQWN0aXZlSXRlbSgpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGguRWxlbWVudEV4dC5oaXRUZXN0KGUsdC5jbGllbnRYLHQuY2xpZW50WSl9KTtpZihlIT09dGhpcy5fYWN0aXZlSW5kZXgpe2lmKHRoaXMuYWN0aXZlSW5kZXg9ZSwoZT10aGlzLmFjdGl2ZUluZGV4KT09PXRoaXMuX2NoaWxkSW5kZXgpcmV0dXJuIHRoaXMuX2NhbmNlbE9wZW5UaW1lcigpLHZvaWQgdGhpcy5fY2FuY2VsQ2xvc2VUaW1lcigpOy0xIT09dGhpcy5fY2hpbGRJbmRleCYmdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCksdGhpcy5fY2FuY2VsT3BlblRpbWVyKCk7dmFyIG49dGhpcy5hY3RpdmVJdGVtO24mJiJzdWJtZW51Ij09PW4udHlwZSYmbi5zdWJtZW51JiZ0aGlzLl9zdGFydE9wZW5UaW1lcigpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRW50ZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX3BhcmVudE1lbnU7ZTtlPWUuX3BhcmVudE1lbnUpZS5fY2FuY2VsT3BlblRpbWVyKCksZS5fY2FuY2VsQ2xvc2VUaW1lcigpLGUuYWN0aXZlSW5kZXg9ZS5fY2hpbGRJbmRleH0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTGVhdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FuY2VsT3BlblRpbWVyKCksdGhpcy5fY2hpbGRNZW51KXt2YXIgZT10LmNsaWVudFgsbj10LmNsaWVudFk7aC5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5fY2hpbGRNZW51Lm5vZGUsZSxuKT90aGlzLl9jYW5jZWxDbG9zZVRpbWVyKCk6KHRoaXMuYWN0aXZlSW5kZXg9LTEsdGhpcy5fc3RhcnRDbG9zZVRpbWVyKCkpfWVsc2UgdGhpcy5hY3RpdmVJbmRleD0tMX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXt0aGlzLl9wYXJlbnRNZW51fHwocy5oaXRUZXN0TWVudXModGhpcyx0LmNsaWVudFgsdC5jbGllbnRZKT8odC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpOnRoaXMuY2xvc2UoKSl9LGUucHJvdG90eXBlLl9vcGVuQ2hpbGRNZW51PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSExKTt2YXIgZT10aGlzLmFjdGl2ZUl0ZW07aWYoZSYmInN1Ym1lbnUiPT09ZS50eXBlJiZlLnN1Ym1lbnUpe3ZhciBuPWUuc3VibWVudTtpZihuIT09dGhpcy5fY2hpbGRNZW51KXt0aGlzLl9jbG9zZUNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudT1uLHRoaXMuX2NoaWxkSW5kZXg9dGhpcy5fYWN0aXZlSW5kZXgsbi5fcGFyZW50TWVudT10aGlzLGQuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcyxtLldpZGdldC5Nc2cuVXBkYXRlUmVxdWVzdCk7dmFyIGk9dGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlblt0aGlzLl9hY3RpdmVJbmRleF07cy5vcGVuU3VibWVudShuLGkpLHQmJihuLmFjdGl2ZUluZGV4PS0xLG4uYWN0aXZhdGVOZXh0SXRlbSgpKSxuLmFjdGl2YXRlKCl9fWVsc2UgdGhpcy5fY2xvc2VDaGlsZE1lbnUoKX0sZS5wcm90b3R5cGUuX2Nsb3NlQ2hpbGRNZW51PWZ1bmN0aW9uKCl7dGhpcy5fY2hpbGRNZW51JiZ0aGlzLl9jaGlsZE1lbnUuY2xvc2UoKX0sZS5wcm90b3R5cGUuX3N0YXJ0T3BlblRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczswPT09dGhpcy5fb3BlblRpbWVySUQmJih0aGlzLl9vcGVuVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fb3BlblRpbWVySUQ9MCx0Ll9vcGVuQ2hpbGRNZW51KCl9LHMuVElNRVJfREVMQVkpKX0sZS5wcm90b3R5cGUuX3N0YXJ0Q2xvc2VUaW1lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7MD09PXRoaXMuX2Nsb3NlVGltZXJJRCYmKHRoaXMuX2Nsb3NlVGltZXJJRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fY2xvc2VUaW1lcklEPTAsdC5fY2xvc2VDaGlsZE1lbnUoKX0scy5USU1FUl9ERUxBWSkpfSxlLnByb3RvdHlwZS5fY2FuY2VsT3BlblRpbWVyPWZ1bmN0aW9uKCl7MCE9PXRoaXMuX29wZW5UaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lcklEKSx0aGlzLl9vcGVuVGltZXJJRD0wKX0sZS5wcm90b3R5cGUuX2NhbmNlbENsb3NlVGltZXI9ZnVuY3Rpb24oKXswIT09dGhpcy5fY2xvc2VUaW1lcklEJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZXJJRCksdGhpcy5fY2xvc2VUaW1lcklEPTApfSxlfShtLldpZGdldCk7ZS5NZW51PWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5yZW5kZXJJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3JlYXRlSXRlbUNsYXNzKHQpLG49dGhpcy5jcmVhdGVJdGVtRGF0YXNldCh0KTtyZXR1cm4gcC5oLmxpKHtjbGFzc05hbWU6ZSxkYXRhc2V0Om59LHRoaXMucmVuZGVySWNvbih0KSx0aGlzLnJlbmRlckxhYmVsKHQpLHRoaXMucmVuZGVyU2hvcnRjdXQodCksdGhpcy5yZW5kZXJTdWJtZW51KHQpKX0sdC5wcm90b3R5cGUucmVuZGVySWNvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUljb25DbGFzcyh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOmV9LHQuaXRlbS5pY29uTGFiZWwpfSx0LnByb3RvdHlwZS5yZW5kZXJMYWJlbD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdExhYmVsKHQpO3JldHVybiBwLmguZGl2KHtjbGFzc05hbWU6InAtTWVudS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVyU2hvcnRjdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRTaG9ydGN1dCh0KTtyZXR1cm4gcC5oLmRpdih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbVNob3J0Y3V0In0sZSl9LHQucHJvdG90eXBlLnJlbmRlclN1Ym1lbnU9ZnVuY3Rpb24odCl7cmV0dXJuIHAuaC5kaXYoe2NsYXNzTmFtZToicC1NZW51LWl0ZW1TdWJtZW51SWNvbiJ9KX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbUNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5pdGVtLmlzVmlzaWJsZXx8KGUrPSIgcC1tb2QtaGlkZGVuIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpLHQuY29sbGFwc2VkJiYoZSs9IiBwLW1vZC1jb2xsYXBzZWQiKTt2YXIgbj10Lml0ZW0uY2xhc3NOYW1lO3JldHVybiBuJiYoZSs9IiAiK24pLGV9LHQucHJvdG90eXBlLmNyZWF0ZUl0ZW1EYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUudHlwZSxpPWUuY29tbWFuZCxyPWUuZGF0YXNldDtyZXR1cm4gbyh7fSxyLCJjb21tYW5kIj09PW4/e3R5cGU6bixjb21tYW5kOml9Ont0eXBlOm59KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLU1lbnUtaXRlbUljb24iLG49dC5pdGVtLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbSxuPWUubGFiZWwsaT1lLm1uZW1vbmljO2lmKGk8MHx8aT49bi5sZW5ndGgpcmV0dXJuIG47dmFyIHI9bi5zbGljZSgwLGkpLG89bi5zbGljZShpKzEpLHM9bltpXTtyZXR1cm5bcixwLmguc3Bhbih7Y2xhc3NOYW1lOiJwLU1lbnUtaXRlbU1uZW1vbmljIn0scyksb119LHQucHJvdG90eXBlLmZvcm1hdFNob3J0Y3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXRlbS5rZXlCaW5kaW5nO3JldHVybiBlP2Uua2V5cy5tYXAocy5mb3JtYXRLZXlzdHJva2UpLmpvaW4oIiwgIik6bnVsbH0sdH0oKTt0LlJlbmRlcmVyPWUsdC5kZWZhdWx0UmVuZGVyZXI9bmV3IGV9KGc9ZS5NZW51fHwoZS5NZW51PXt9KSksZS5NZW51PWcsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4ic2VwYXJhdG9yIiE9PXQudHlwZSYmdC5pc0VuYWJsZWQmJnQuaXNWaXNpYmxlfXQuVElNRVJfREVMQVk9MzAwLHQuU1VCTUVOVV9PVkVSTEFQPTMsdC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1NZW51LWNvbnRlbnQiLHQuYXBwZW5kQ2hpbGQoZSksdC50YWJJbmRleD0tMSx0fSx0LmNhbkFjdGl2YXRlPWUsdC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBuKHQuY29tbWFuZHMsZSl9LHQuZm9ybWF0S2V5c3Ryb2tlPWZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49dS5Db21tYW5kUmVnaXN0cnkucGFyc2VLZXlzdHJva2UodCk7cmV0dXJuIGguUGxhdGZvcm0uSVNfTUFDPyhuLmN0cmwmJihlKz0i4oyDICIpLG4uYWx0JiYoZSs9IuKMpSAiKSxuLnNoaWZ0JiYoZSs9IuKHpyAiKSxuLmNtZCYmKGUrPSLijJggIikpOihuLmN0cmwmJihlKz0iQ3RybCsiKSxuLmFsdCYmKGUrPSJBbHQrIiksbi5zaGlmdCYmKGUrPSJTaGlmdCsiKSksZStuLmtleX0sdC5oaXRUZXN0TWVudXM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10O2k7aT1pLmNoaWxkTWVudSlpZihoLkVsZW1lbnRFeHQuaGl0VGVzdChpLm5vZGUsZSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5jb21wdXRlQ29sbGFwc2VkPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCk7YS5BcnJheUV4dC5maWxsKGUsITEpO2Zvcih2YXIgbj0wLGk9dC5sZW5ndGg7bjxpOysrbilpZigocz10W25dKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbbl09ITB9Zm9yKHZhciByPWktMTtyPj0wOy0tcilpZigocz10W3JdKS5pc1Zpc2libGUpe2lmKCJzZXBhcmF0b3IiIT09cy50eXBlKWJyZWFrO2Vbcl09ITB9Zm9yKHZhciBvPSExOysrbjxyOyl7dmFyIHM7KHM9dFtuXSkuaXNWaXNpYmxlJiYoInNlcGFyYXRvciIhPT1zLnR5cGU/bz0hMTpvP2Vbbl09ITA6bz0hMCl9cmV0dXJuIGV9LHQub3BlblJvb3RNZW51PWZ1bmN0aW9uKHQsZSxuLGkscil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgbz13aW5kb3cucGFnZVhPZmZzZXQscz13aW5kb3cucGFnZVlPZmZzZXQsYT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGM9dS0ocj9uOjApLGg9dC5ub2RlLGw9aC5zdHlsZTtsLnRvcD0iIixsLmxlZnQ9IiIsbC53aWR0aD0iIixsLmhlaWdodD0iIixsLnZpc2liaWxpdHk9ImhpZGRlbiIsbC5tYXhIZWlnaHQ9YysicHgiLG0uV2lkZ2V0LmF0dGFjaCh0LGRvY3VtZW50LmJvZHkpO3ZhciBmPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscD1mLndpZHRoLGc9Zi5oZWlnaHQ7IWkmJmUrcD5vK2EmJihlPW8rYS1wKSwhciYmbitnPnMrdSYmKG4+cyt1P249cyt1LWc6bi09ZyksbC50b3A9TWF0aC5tYXgoMCxuKSsicHgiLGwubGVmdD1NYXRoLm1heCgwLGUpKyJweCIsbC52aXNpYmlsaXR5PSIifSx0Lm9wZW5TdWJtZW51PWZ1bmN0aW9uKGUsbil7ZC5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLG0uV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KTt2YXIgaT13aW5kb3cucGFnZVhPZmZzZXQscj13aW5kb3cucGFnZVlPZmZzZXQsbz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgscz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGE9cyx1PWUubm9kZSxjPXUuc3R5bGU7Yy50b3A9IiIsYy5sZWZ0PSIiLGMud2lkdGg9IiIsYy5oZWlnaHQ9IiIsYy52aXNpYmlsaXR5PSJoaWRkZW4iLGMubWF4SGVpZ2h0PWErInB4IixtLldpZGdldC5hdHRhY2goZSxkb2N1bWVudC5ib2R5KTt2YXIgbD11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9bC53aWR0aCxwPWwuaGVpZ2h0LGc9aC5FbGVtZW50RXh0LmJveFNpemluZyhlLm5vZGUpLHY9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPXYucmlnaHQtdC5TVUJNRU5VX09WRVJMQVA7YitmPmkrbyYmKGI9di5sZWZ0K3QuU1VCTUVOVV9PVkVSTEFQLWYpO3ZhciB5PXYudG9wLWcuYm9yZGVyVG9wLWcucGFkZGluZ1RvcDt5K3A+citzJiYoeT12LmJvdHRvbStnLmJvcmRlckJvdHRvbStnLnBhZGRpbmdCb3R0b20tcCksYy50b3A9TWF0aC5tYXgoMCx5KSsicHgiLGMubGVmdD1NYXRoLm1heCgwLGIpKyJweCIsYy52aXNpYmlsaXR5PSIifSx0LmZpbmRNbmVtb25pYz1mdW5jdGlvbih0LG4saSl7Zm9yKHZhciByPS0xLG89LTEscz0hMSxhPW4udG9VcHBlckNhc2UoKSx1PTAsYz10Lmxlbmd0aDt1PGM7Kyt1KXt2YXIgaD0odStpKSVjLGw9dFtoXTtpZihlKGwpKXt2YXIgZD1sLmxhYmVsO2lmKDAhPT1kLmxlbmd0aCl7dmFyIGY9bC5tbmVtb25pYztmPj0wJiZmPGQubGVuZ3RoP2RbZl0udG9VcHBlckNhc2UoKT09PWEmJigtMT09PXI/cj1oOnM9ITApOi0xPT09byYmZFswXS50b1VwcGVyQ2FzZSgpPT09YSYmKG89aCl9fX1yZXR1cm57aW5kZXg6cixtdWx0aXBsZTpzLGF1dG86b319O3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMuX2NvbW1hbmRzPXQsdGhpcy50eXBlPWUudHlwZXx8ImNvbW1hbmQiLHRoaXMuY29tbWFuZD1lLmNvbW1hbmR8fCIiLHRoaXMuYXJncz1lLmFyZ3N8fGMuSlNPTkV4dC5lbXB0eU9iamVjdCx0aGlzLnN1Ym1lbnU9ZS5zdWJtZW51fHxudWxsfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5sYWJlbDoiIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm1uZW1vbmljIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLm1uZW1vbmljKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5tbmVtb25pYzotMX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uQ2xhc3N9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uQ2xhc3MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkNsYXNzKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uQ2xhc3M6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpY29uTGFiZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaWNvbkxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5pY29uTGFiZWw6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmNhcHRpb246IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51Ij09PXRoaXMudHlwZSYmdGhpcy5zdWJtZW51P3RoaXMuc3VibWVudS50aXRsZS5jbGFzc05hbWU6IiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJkYXRhc2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmRhdGFzZXQodGhpcy5jb21tYW5kLHRoaXMuYXJncyk6InN1Ym1lbnUiPT09dGhpcy50eXBlJiZ0aGlzLnN1Ym1lbnU/dGhpcy5zdWJtZW51LnRpdGxlLmRhdGFzZXQ6e319LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc0VuYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY29tbWFuZCI9PT10aGlzLnR5cGU/dGhpcy5fY29tbWFuZHMuaXNFbmFibGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpOiJzdWJtZW51IiE9PXRoaXMudHlwZXx8bnVsbCE9PXRoaXMuc3VibWVudX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiJjb21tYW5kIj09PXRoaXMudHlwZSYmdGhpcy5fY29tbWFuZHMuaXNUb2dnbGVkKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNWaXNpYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNvbW1hbmQiPT09dGhpcy50eXBlP3RoaXMuX2NvbW1hbmRzLmlzVmlzaWJsZSh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKToic3VibWVudSIhPT10aGlzLnR5cGV8fG51bGwhPT10aGlzLnN1Ym1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJrZXlCaW5kaW5nIix7Z2V0OmZ1bmN0aW9uKCl7aWYoImNvbW1hbmQiPT09dGhpcy50eXBlKXt2YXIgdD10aGlzLmNvbW1hbmQsZT10aGlzLmFyZ3M7cmV0dXJuIGEuQXJyYXlFeHQuZmluZExhc3RWYWx1ZSh0aGlzLl9jb21tYW5kcy5rZXlCaW5kaW5ncyxmdW5jdGlvbihuKXtyZXR1cm4gbi5jb21tYW5kPT09dCYmYy5KU09ORXh0LmRlZXBFcXVhbChuLmFyZ3MsZSl9KXx8bnVsbH1yZXR1cm4gbnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0fSgpfShzfHwocz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDkpLHU9big1KSxjPW4oNDApLGg9bigyMiksbD1uKDcpLGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX3NwYWNpbmc9NCxuLl9kaXJ0eT0hMSxuLl9yb290PW51bGwsbi5fYm94PW51bGwsbi5faXRlbXM9bmV3IE1hcCxuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5zcGFjaW5nJiYobi5fc3BhY2luZz1vLmNsYW1wU3BhY2luZyhlLnNwYWNpbmcpKSxufXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuaXRlcigpO3RoaXMuX2l0ZW1zLmZvckVhY2goZnVuY3Rpb24odCl7dC5kaXNwb3NlKCl9KSx0aGlzLl9ib3g9bnVsbCx0aGlzLl9yb290PW51bGwsdGhpcy5faXRlbXMuY2xlYXIoKSxzLmVhY2goZSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBTcGFjaW5nKHQpLHRoaXMuX3NwYWNpbmchPT10JiYodGhpcy5fc3BhY2luZz10LHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpc0VtcHR5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLl9yb290fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJBbGxXaWRnZXRzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3Q/dGhpcy5fcm9vdC5pdGVyVXNlcldpZGdldHMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLnNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclNlbGVjdGVkV2lkZ2V0cygpOnMuZW1wdHkoKX0sZS5wcm90b3R5cGUudGFiQmFycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290P3RoaXMuX3Jvb3QuaXRlclRhYkJhcnMoKTpzLmVtcHR5KCl9LGUucHJvdG90eXBlLmhhbmRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdD90aGlzLl9yb290Lml0ZXJIYW5kbGVzKCk6cy5lbXB0eSgpfSxlLnByb3RvdHlwZS5tb3ZlSGFuZGxlPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9yb290JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpKXt2YXIgaSxyPXRoaXMuX3Jvb3QuZmluZFNwbGl0Tm9kZSh0KTtpZihyKTAhPT0oaT0iaG9yaXpvbnRhbCI9PT1yLm5vZGUub3JpZW50YXRpb24/ZS10Lm9mZnNldExlZnQ6bi10Lm9mZnNldFRvcCkmJihyLm5vZGUuaG9sZFNpemVzKCksYy5Cb3hFbmdpbmUuYWRqdXN0KHIubm9kZS5zaXplcnMsci5pbmRleCxpKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpfX0sZS5wcm90b3R5cGUuc2F2ZUxheW91dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290Pyh0aGlzLl9yb290LmhvbGRBbGxTaXplcygpLHttYWluOnRoaXMuX3Jvb3QuY3JlYXRlQ29uZmlnKCl9KTp7bWFpbjpudWxsfX0sZS5wcm90b3R5cGUucmVzdG9yZUxheW91dD1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1uZXcgU2V0O2U9dC5tYWluP28ubm9ybWFsaXplQXJlYUNvbmZpZyh0Lm1haW4saSk6bnVsbDt2YXIgcj10aGlzLndpZGdldHMoKSxhPXRoaXMudGFiQmFycygpLHU9dGhpcy5oYW5kbGVzKCk7dGhpcy5fcm9vdD1udWxsLHMuZWFjaChyLGZ1bmN0aW9uKHQpe2kuaGFzKHQpfHwodC5wYXJlbnQ9bnVsbCl9KSxzLmVhY2goYSxmdW5jdGlvbih0KXt0LmRpc3Bvc2UoKX0pLHMuZWFjaCh1LGZ1bmN0aW9uKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QucGFyZW50PW4ucGFyZW50fSksdGhpcy5fcm9vdD1lP28ucmVhbGl6ZUFyZWFDb25maWcoZSx7Y3JlYXRlVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIG4uX2NyZWF0ZVRhYkJhcigpfSxjcmVhdGVIYW5kbGU6ZnVuY3Rpb24oKXtyZXR1cm4gbi5fY3JlYXRlSGFuZGxlKCl9fSk6bnVsbCx0aGlzLnBhcmVudCYmKGkuZm9yRWFjaChmdW5jdGlvbih0KXtuLmF0dGFjaFdpZGdldCh0KX0pLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuYWRkV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPWUucmVmfHxudWxsLGk9ZS5tb2RlfHwidGFiLWFmdGVyIixyPW51bGw7aWYodGhpcy5fcm9vdCYmbiYmKHI9dGhpcy5fcm9vdC5maW5kVGFiTm9kZShuKSksbiYmIXIpdGhyb3cgbmV3IEVycm9yKCJSZWZlcmVuY2Ugd2lkZ2V0IGlzIG5vdCBpbiB0aGUgbGF5b3V0LiIpO3N3aXRjaCh0LnBhcmVudD10aGlzLnBhcmVudCxpKXtjYXNlInRhYi1hZnRlciI6dGhpcy5faW5zZXJ0VGFiKHQsbixyLCEwKTticmVhaztjYXNlInRhYi1iZWZvcmUiOnRoaXMuX2luc2VydFRhYih0LG4sciwhMSk7YnJlYWs7Y2FzZSJzcGxpdC10b3AiOnRoaXMuX2luc2VydFNwbGl0KHQsbixyLCJ2ZXJ0aWNhbCIsITEpO2JyZWFrO2Nhc2Uic3BsaXQtbGVmdCI6dGhpcy5faW5zZXJ0U3BsaXQodCxuLHIsImhvcml6b250YWwiLCExKTticmVhaztjYXNlInNwbGl0LXJpZ2h0Ijp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwiaG9yaXpvbnRhbCIsITApO2JyZWFrO2Nhc2Uic3BsaXQtYm90dG9tIjp0aGlzLl9pbnNlcnRTcGxpdCh0LG4sciwidmVydGljYWwiLCEwKX10aGlzLnBhcmVudCYmKHRoaXMuYXR0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZVdpZGdldCh0KSx0aGlzLnBhcmVudCYmKHRoaXMuZGV0YWNoV2lkZ2V0KHQpLHRoaXMucGFyZW50LmZpdCgpKX0sZS5wcm90b3R5cGUuaGl0VGVzdFRhYkFyZWFzPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX3Jvb3R8fCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmlzVmlzaWJsZSlyZXR1cm4gbnVsbDt0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIG49dGhpcy5wYXJlbnQubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQtbi5sZWZ0LXRoaXMuX2JveC5ib3JkZXJMZWZ0LHI9ZS1uLnRvcC10aGlzLl9ib3guYm9yZGVyVG9wLG89dGhpcy5fcm9vdC5oaXRUZXN0VGFiTm9kZXMoaSxyKTtpZighbylyZXR1cm4gbnVsbDt2YXIgcz1vLnRhYkJhcix1PW8udG9wLGM9by5sZWZ0LGg9by53aWR0aCxsPW8uaGVpZ2h0LGQ9dGhpcy5fYm94LmJvcmRlckxlZnQrdGhpcy5fYm94LmJvcmRlclJpZ2h0LGY9dGhpcy5fYm94LmJvcmRlclRvcCt0aGlzLl9ib3guYm9yZGVyQm90dG9tO3JldHVybnt0YWJCYXI6cyx4OmkseTpyLHRvcDp1LGxlZnQ6YyxyaWdodDpuLndpZHRoLWQtKGMraCksYm90dG9tOm4uaGVpZ2h0LWYtKHUrbCksd2lkdGg6aCxoZWlnaHQ6bH19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pLHMuZWFjaCh0aGlzLmhhbmRsZXMoKSxmdW5jdGlvbih0KXtlLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpfSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5ub2RlIT09dC5ub2RlLnBhcmVudE5vZGUmJih0aGlzLl9pdGVtcy5zZXQodCxuZXcgaC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxsLldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe2lmKHRoaXMucGFyZW50Lm5vZGU9PT10Lm5vZGUucGFyZW50Tm9kZSl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGwuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsbC5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKTt2YXIgZT10aGlzLl9pdGVtcy5nZXQodCk7ZSYmKHRoaXMuX2l0ZW1zLmRlbGV0ZSh0KSxlLmRpc3Bvc2UoKSl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZVNob3c9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVTaG93LmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUub25CZWZvcmVBdHRhY2guY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkU2hvd249ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRIaWRkZW49ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uUmVzaXplPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKHQud2lkdGgsdC5oZWlnaHQpfSxlLnByb3RvdHlwZS5vblVwZGF0ZVJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUoLTEsLTEpfSxlLnByb3RvdHlwZS5vbkZpdFJlcXVlc3Q9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdGhpcy5fZml0KCl9LGUucHJvdG90eXBlLl9yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fcm9vdCl7dmFyIGU9dGhpcy5fcm9vdC5maW5kVGFiTm9kZSh0KTtpZihlKWlmKGUudGFiQmFyLnRpdGxlcy5sZW5ndGg+MSllLnRhYkJhci5yZW1vdmVUYWIodC50aXRsZSk7ZWxzZSBpZihlLnRhYkJhci5kaXNwb3NlKCksdGhpcy5fcm9vdCE9PWUpe3RoaXMuX3Jvb3QuaG9sZEFsbFNpemVzKCk7dmFyIG49ZS5wYXJlbnQ7ZS5wYXJlbnQ9bnVsbDt2YXIgaT1zLkFycmF5RXh0LnJlbW92ZUZpcnN0T2Yobi5jaGlsZHJlbixlKSxyPXMuQXJyYXlFeHQucmVtb3ZlQXQobi5oYW5kbGVzLGkpO2lmKHMuQXJyYXlFeHQucmVtb3ZlQXQobi5zaXplcnMsaSksci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksbi5jaGlsZHJlbi5sZW5ndGg+MSluLnN5bmNIYW5kbGVzKCk7ZWxzZXt2YXIgYT1uLnBhcmVudDtuLnBhcmVudD1udWxsO3ZhciB1PW4uY2hpbGRyZW5bMF0sYz1uLmhhbmRsZXNbMF07aWYobi5jaGlsZHJlbi5sZW5ndGg9MCxuLmhhbmRsZXMubGVuZ3RoPTAsbi5zaXplcnMubGVuZ3RoPTAsYy5wYXJlbnROb2RlJiZjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyksdGhpcy5fcm9vdD09PW4pcmV0dXJuIHUucGFyZW50PW51bGwsdm9pZCh0aGlzLl9yb290PXUpO3ZhciBoPWEsbD1oLmNoaWxkcmVuLmluZGV4T2Yobik7aWYodSBpbnN0YW5jZW9mIG8uVGFiTGF5b3V0Tm9kZSlyZXR1cm4gdS5wYXJlbnQ9aCx2b2lkKGguY2hpbGRyZW5bbF09dSk7dmFyIGQ9cy5BcnJheUV4dC5yZW1vdmVBdChoLmhhbmRsZXMsbCk7cy5BcnJheUV4dC5yZW1vdmVBdChoLmNoaWxkcmVuLGwpLHMuQXJyYXlFeHQucmVtb3ZlQXQoaC5zaXplcnMsbCksZC5wYXJlbnROb2RlJiZkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7Zm9yKHZhciBmPTAscD11LmNoaWxkcmVuLmxlbmd0aDtmPHA7KytmKXt2YXIgbT11LmNoaWxkcmVuW2ZdLGc9dS5oYW5kbGVzW2ZdLHY9dS5zaXplcnNbZl07cy5BcnJheUV4dC5pbnNlcnQoaC5jaGlsZHJlbixsK2YsbSkscy5BcnJheUV4dC5pbnNlcnQoaC5oYW5kbGVzLGwrZixnKSxzLkFycmF5RXh0Lmluc2VydChoLnNpemVycyxsK2YsdiksbS5wYXJlbnQ9aH11LmNoaWxkcmVuLmxlbmd0aD0wLHUuaGFuZGxlcy5sZW5ndGg9MCx1LnNpemVycy5sZW5ndGg9MCx1LnBhcmVudD1udWxsLGguc3luY0hhbmRsZXMoKX19ZWxzZSB0aGlzLl9yb290PW51bGx9fSxlLnByb3RvdHlwZS5faW5zZXJ0VGFiPWZ1bmN0aW9uKHQsZSxuLGkpe2lmKHQhPT1lKXtpZighdGhpcy5fcm9vdCl7dmFyIHI9bmV3IG8uVGFiTGF5b3V0Tm9kZSh0aGlzLl9jcmVhdGVUYWJCYXIoKSk7cmV0dXJuIHIudGFiQmFyLmFkZFRhYih0LnRpdGxlKSx2b2lkKHRoaXMuX3Jvb3Q9cil9dmFyIHM7bnx8KG49dGhpcy5fcm9vdC5maW5kRmlyc3RUYWJOb2RlKCkpLC0xPT09bi50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSkmJih0aGlzLl9yZW1vdmVXaWRnZXQodCksdC5oaWRlKCkpLHM9ZT9uLnRhYkJhci50aXRsZXMuaW5kZXhPZihlLnRpdGxlKTpuLnRhYkJhci5jdXJyZW50SW5kZXgsbi50YWJCYXIuaW5zZXJ0VGFiKHMrKGk/MTowKSx0LnRpdGxlKX19LGUucHJvdG90eXBlLl9pbnNlcnRTcGxpdD1mdW5jdGlvbih0LGUsbixpLHIpe2lmKHQhPT1lfHwhbnx8MSE9PW4udGFiQmFyLnRpdGxlcy5sZW5ndGgpe3RoaXMuX3JlbW92ZVdpZGdldCh0KTt2YXIgYT1uZXcgby5UYWJMYXlvdXROb2RlKHRoaXMuX2NyZWF0ZVRhYkJhcigpKTtpZihhLnRhYkJhci5hZGRUYWIodC50aXRsZSksdGhpcy5fcm9vdCl7aWYoIW58fCFuLnBhcmVudCl7dmFyIHU9dGhpcy5fc3BsaXRSb290KGkpLGM9cj91LmNoaWxkcmVuLmxlbmd0aDowO3Uubm9ybWFsaXplU2l6ZXMoKTt2YXIgaD1vLmNyZWF0ZVNpemVyKG4/MTpvLkdPTERFTl9SQVRJTyk7cmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHUuY2hpbGRyZW4sYyxhKSxzLkFycmF5RXh0Lmluc2VydCh1LnNpemVycyxjLGgpLHMuQXJyYXlFeHQuaW5zZXJ0KHUuaGFuZGxlcyxjLHRoaXMuX2NyZWF0ZUhhbmRsZSgpKSxhLnBhcmVudD11LHUubm9ybWFsaXplU2l6ZXMoKSx2b2lkIHUuc3luY0hhbmRsZXMoKX12YXIgbD1uLnBhcmVudDtpZihsLm9yaWVudGF0aW9uPT09aSl7dmFyIGQ9bC5jaGlsZHJlbi5pbmRleE9mKG4pO2wubm9ybWFsaXplU2l6ZXMoKTt2YXIgZj1sLnNpemVyc1tkXS5zaXplSGludC89MixwPWQrKHI/MTowKTtyZXR1cm4gcy5BcnJheUV4dC5pbnNlcnQobC5jaGlsZHJlbixwLGEpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuc2l6ZXJzLHAsby5jcmVhdGVTaXplcihmKSkscy5BcnJheUV4dC5pbnNlcnQobC5oYW5kbGVzLHAsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWwsdm9pZCBsLnN5bmNIYW5kbGVzKCl9dmFyIG09cy5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGwuY2hpbGRyZW4sbiksZz1uZXcgby5TcGxpdExheW91dE5vZGUoaSk7Zy5ub3JtYWxpemVkPSEwLGcuY2hpbGRyZW4ucHVzaChuKSxnLnNpemVycy5wdXNoKG8uY3JlYXRlU2l6ZXIoLjUpKSxnLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksbi5wYXJlbnQ9Zzt2YXIgdj1yPzE6MDtzLkFycmF5RXh0Lmluc2VydChnLmNoaWxkcmVuLHYsYSkscy5BcnJheUV4dC5pbnNlcnQoZy5zaXplcnMsdixvLmNyZWF0ZVNpemVyKC41KSkscy5BcnJheUV4dC5pbnNlcnQoZy5oYW5kbGVzLHYsdGhpcy5fY3JlYXRlSGFuZGxlKCkpLGEucGFyZW50PWcsZy5zeW5jSGFuZGxlcygpLHMuQXJyYXlFeHQuaW5zZXJ0KGwuY2hpbGRyZW4sbSxnKSxnLnBhcmVudD1sfWVsc2UgdGhpcy5fcm9vdD1hfX0sZS5wcm90b3R5cGUuX3NwbGl0Um9vdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yb290O2lmKGUgaW5zdGFuY2VvZiBvLlNwbGl0TGF5b3V0Tm9kZSYmZS5vcmllbnRhdGlvbj09PXQpcmV0dXJuIGU7dmFyIG49dGhpcy5fcm9vdD1uZXcgby5TcGxpdExheW91dE5vZGUodCk7cmV0dXJuIGUmJihuLmNoaWxkcmVuLnB1c2goZSksbi5zaXplcnMucHVzaChvLmNyZWF0ZVNpemVyKDApKSxuLmhhbmRsZXMucHVzaCh0aGlzLl9jcmVhdGVIYW5kbGUoKSksZS5wYXJlbnQ9biksbn0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO2lmKHRoaXMuX3Jvb3Qpe3ZhciBuPXRoaXMuX3Jvb3QuZml0KHRoaXMuX3NwYWNpbmcsdGhpcy5faXRlbXMpO3Q9bi5taW5XaWR0aCxlPW4ubWluSGVpZ2h0fXZhciBpPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPWkuaG9yaXpvbnRhbFN1bSxlKz1pLnZlcnRpY2FsU3VtO3ZhciByPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7ci5taW5XaWR0aD10KyJweCIsci5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsbC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGwuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKHRoaXMuX2RpcnR5PSExLHRoaXMuX3Jvb3Qpe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBuPXRoaXMuX2JveC5wYWRkaW5nVG9wLGk9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHI9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxvPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO3RoaXMuX3Jvb3QudXBkYXRlKG4saSxyLG8sdGhpcy5fc3BhY2luZyx0aGlzLl9pdGVtcyl9fSxlLnByb3RvdHlwZS5fY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gdC5vcmllbnRhdGlvbj0iaG9yaXpvbnRhbCIsdGhpcy5wYXJlbnQmJih0LnBhcmVudD10aGlzLnBhcmVudCx0aGlzLmF0dGFjaFdpZGdldCh0KSksdH0sZS5wcm90b3R5cGUuX2NyZWF0ZUhhbmRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmVuZGVyZXIuY3JlYXRlSGFuZGxlKCksZT10LnN0eWxlO3JldHVybiBlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS50b3A9IjAiLGUubGVmdD0iMCIsZS53aWR0aD0iMCIsZS5oZWlnaHQ9IjAiLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKHQpLHR9LGV9KGguTGF5b3V0KTtlLkRvY2tMYXlvdXQ9ZCxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPW5ldyBjLkJveFNpemVyO3JldHVybiBlLnNpemVIaW50PXQsZS5zaXplPXQsZX1mdW5jdGlvbiBuKHQsZSl7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe2lmKDA9PT10LndpZGdldHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBuPVtdO2lmKHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7ZS5oYXModCl8fChlLmFkZCh0KSxuLnB1c2godCkpfSksMD09PW4ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBpPXQuY3VycmVudEluZGV4Oy0xIT09aSYmKGk8MHx8aT49bi5sZW5ndGgpJiYoaT0wKTtyZXR1cm57dHlwZToidGFiLWFyZWEiLHdpZGdldHM6bixjdXJyZW50SW5kZXg6aX19KHQsZSk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9dC5vcmllbnRhdGlvbixyPVtdLG89W10scz0wLGE9dC5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9bih0LmNoaWxkcmVuW3NdLGUpO3UmJigidGFiLWFyZWEiPT09dS50eXBlfHx1Lm9yaWVudGF0aW9uIT09aT8oci5wdXNoKHUpLG8ucHVzaChNYXRoLmFicyh0LnNpemVzW3NdfHwwKSkpOihyLnB1c2guYXBwbHkocix1LmNoaWxkcmVuKSxvLnB1c2guYXBwbHkobyx1LnNpemVzKSkpfWlmKDA9PT1yLmxlbmd0aClyZXR1cm4gbnVsbDtpZigxPT09ci5sZW5ndGgpcmV0dXJuIHJbMF07cmV0dXJue3R5cGU6InNwbGl0LWFyZWEiLG9yaWVudGF0aW9uOmksY2hpbGRyZW46cixzaXplczpvfX0odCxlKX1mdW5jdGlvbiBpKHQsbil7cmV0dXJuInRhYi1hcmVhIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe3ZhciBuPWUuY3JlYXRlVGFiQmFyKCk7cmV0dXJuIHMuZWFjaCh0LndpZGdldHMsZnVuY3Rpb24odCl7dC5oaWRlKCksbi5hZGRUYWIodC50aXRsZSl9KSxuLmN1cnJlbnRJbmRleD10LmN1cnJlbnRJbmRleCxuZXcgcihuKX0odCxuKTpmdW5jdGlvbih0LG4pe3ZhciByPW5ldyBvKHQub3JpZW50YXRpb24pO3JldHVybiBzLmVhY2godC5jaGlsZHJlbixmdW5jdGlvbihvLHMpe3ZhciBhPWkobyxuKSx1PWUodC5zaXplc1tzXSksYz1uLmNyZWF0ZUhhbmRsZSgpO3IuY2hpbGRyZW4ucHVzaChhKSxyLmhhbmRsZXMucHVzaChjKSxyLnNpemVycy5wdXNoKHUpLGEucGFyZW50PXJ9KSxyLnN5bmNIYW5kbGVzKCksci5ub3JtYWxpemVTaXplcygpLHJ9KHQsbil9dC5HT0xERU5fUkFUSU89LjYxOCx0LmNsYW1wU3BhY2luZz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5jcmVhdGVTaXplcj1lLHQubm9ybWFsaXplQXJlYUNvbmZpZz1uLHQucmVhbGl6ZUFyZWFDb25maWc9aTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLl90b3A9MCx0aGlzLl9sZWZ0PTAsdGhpcy5fd2lkdGg9MCx0aGlzLl9oZWlnaHQ9MDt2YXIgZT1uZXcgYy5Cb3hTaXplcixuPW5ldyBjLkJveFNpemVyO2Uuc3RyZXRjaD0wLG4uc3RyZXRjaD0xLHRoaXMudGFiQmFyPXQsdGhpcy5zaXplcnM9W2Usbl19cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidG9wIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RvcH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGVmdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIndpZHRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZHRofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaGVpZ2h0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlaWdodH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5pdGVyQWxsV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLmNoYWluKHMub25jZSh0aGlzLnRhYkJhciksdGhpcy5pdGVyVXNlcldpZGdldHMoKSl9LHQucHJvdG90eXBlLml0ZXJVc2VyV2lkZ2V0cz1mdW5jdGlvbigpe3JldHVybiBzLm1hcCh0aGlzLnRhYkJhci50aXRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQub3duZXJ9KX0sdC5wcm90b3R5cGUuaXRlclNlbGVjdGVkV2lkZ2V0cz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD9zLm9uY2UodC5vd25lcik6cy5lbXB0eSgpfSx0LnByb3RvdHlwZS5pdGVyVGFiQmFycz1mdW5jdGlvbigpe3JldHVybiBzLm9uY2UodGhpcy50YWJCYXIpfSx0LnByb3RvdHlwZS5pdGVySGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiBzLmVtcHR5KCl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09dGhpcy50YWJCYXIudGl0bGVzLmluZGV4T2YodC50aXRsZSk/dGhpczpudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kRmlyc3RUYWJOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe3JldHVybiB0PHRoaXMuX2xlZnR8fHQ+PXRoaXMuX2xlZnQrdGhpcy5fd2lkdGg/bnVsbDplPHRoaXMuX3RvcHx8ZT49dGhpcy5fdG9wK3RoaXMuX2hlaWdodD9udWxsOnRoaXN9LHQucHJvdG90eXBlLmNyZWF0ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJ0YWItYXJlYSIsd2lkZ2V0czp0aGlzLnRhYkJhci50aXRsZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bmVyfSksY3VycmVudEluZGV4OnRoaXMudGFiQmFyLmN1cnJlbnRJbmRleH19LHQucHJvdG90eXBlLmhvbGRBbGxTaXplcz1mdW5jdGlvbigpe30sdC5wcm90b3R5cGUuZml0PWZ1bmN0aW9uKHQsZSl7dmFyIG49MCxpPTAscj1lLmdldCh0aGlzLnRhYkJhciksbz10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUscz1vP2UuZ2V0KG8ub3duZXIpOnZvaWQgMCxhPXRoaXMuc2l6ZXJzLHU9YVswXSxjPWFbMV07cmV0dXJuIHImJnIuZml0KCkscyYmcy5maXQoKSxyJiYhci5pc0hpZGRlbj8obj1NYXRoLm1heChuLHIubWluV2lkdGgpLGkrPXIubWluSGVpZ2h0LHUubWluU2l6ZT1yLm1pbkhlaWdodCx1Lm1heFNpemU9ci5tYXhIZWlnaHQpOih1Lm1pblNpemU9MCx1Lm1heFNpemU9MCkscyYmIXMuaXNIaWRkZW4/KG49TWF0aC5tYXgobixzLm1pbldpZHRoKSxpKz1zLm1pbkhlaWdodCxjLm1pblNpemU9cy5taW5IZWlnaHQsYy5tYXhTaXplPTEvMCk6KGMubWluU2l6ZT0wLGMubWF4U2l6ZT0xLzApLHttaW5XaWR0aDpuLG1pbkhlaWdodDppLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt0aGlzLl90b3A9ZSx0aGlzLl9sZWZ0PXQsdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9aTt2YXIgcz1vLmdldCh0aGlzLnRhYkJhciksYT10aGlzLnRhYkJhci5jdXJyZW50VGl0bGUsdT1hP28uZ2V0KGEub3duZXIpOnZvaWQgMDtpZihjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGkpLHMmJiFzLmlzSGlkZGVuKXt2YXIgaD10aGlzLnNpemVyc1swXS5zaXplO3MudXBkYXRlKHQsZSxuLGgpLGUrPWh9aWYodSYmIXUuaXNIaWRkZW4pe2g9dGhpcy5zaXplcnNbMV0uc2l6ZTt1LnVwZGF0ZSh0LGUsbixoKX19LHR9KCk7dC5UYWJMYXlvdXROb2RlPXI7dmFyIG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMucGFyZW50PW51bGwsdGhpcy5ub3JtYWxpemVkPSExLHRoaXMuY2hpbGRyZW49W10sdGhpcy5zaXplcnM9W10sdGhpcy5oYW5kbGVzPVtdLHRoaXMub3JpZW50YXRpb249dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlckFsbFdpZGdldHM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJBbGxXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclVzZXJXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyVXNlcldpZGdldHMoKX0pO3JldHVybiBuZXcgcy5DaGFpbkl0ZXJhdG9yKHQpfSx0LnByb3RvdHlwZS5pdGVyU2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7dmFyIHQ9cy5tYXAodGhpcy5jaGlsZHJlbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVyU2VsZWN0ZWRXaWRnZXRzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlclRhYkJhcnM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJUYWJCYXJzKCl9KTtyZXR1cm4gbmV3IHMuQ2hhaW5JdGVyYXRvcih0KX0sdC5wcm90b3R5cGUuaXRlckhhbmRsZXM9ZnVuY3Rpb24oKXt2YXIgdD1zLm1hcCh0aGlzLmNoaWxkcmVuLGZ1bmN0aW9uKHQpe3JldHVybiB0Lml0ZXJIYW5kbGVzKCl9KTtyZXR1cm4gcy5jaGFpbih0aGlzLmhhbmRsZXMsbmV3IHMuQ2hhaW5JdGVyYXRvcih0KSl9LHQucHJvdG90eXBlLmZpbmRUYWJOb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5jaGlsZHJlbi5sZW5ndGg7ZTxuOysrZSl7dmFyIGk9dGhpcy5jaGlsZHJlbltlXS5maW5kVGFiTm9kZSh0KTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5maW5kU3BsaXROb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFuZGxlcy5pbmRleE9mKHQpO2lmKC0xIT09ZSlyZXR1cm57aW5kZXg6ZSxub2RlOnRoaXN9O2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5maW5kU3BsaXROb2RlKHQpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZpbmRGaXJzdFRhYk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY2hpbGRyZW4ubGVuZ3RoP251bGw6dGhpcy5jaGlsZHJlblswXS5maW5kRmlyc3RUYWJOb2RlKCl9LHQucHJvdG90eXBlLmhpdFRlc3RUYWJOb2Rlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLGk9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5jaGlsZHJlbltuXS5oaXRUZXN0VGFiTm9kZXModCxlKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5jcmVhdGVDb25maWc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9yaWVudGF0aW9uLGU9dGhpcy5jcmVhdGVOb3JtYWxpemVkU2l6ZXMoKTtyZXR1cm57dHlwZToic3BsaXQtYXJlYSIsb3JpZW50YXRpb246dCxjaGlsZHJlbjp0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5jcmVhdGVDb25maWcoKX0pLHNpemVzOmV9fSx0LnByb3RvdHlwZS5zeW5jSGFuZGxlcz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cy5lYWNoKHRoaXMuaGFuZGxlcyxmdW5jdGlvbihlLG4pe2Uuc2V0QXR0cmlidXRlKCJkYXRhLW9yaWVudGF0aW9uIix0Lm9yaWVudGF0aW9uKSxuPT09dC5oYW5kbGVzLmxlbmd0aC0xP2UuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik6ZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfSx0LnByb3RvdHlwZS5ob2xkU2l6ZXM9ZnVuY3Rpb24oKXtzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplSGludD10LnNpemV9KX0sdC5wcm90b3R5cGUuaG9sZEFsbFNpemVzPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuY2hpbGRyZW4sZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9sZEFsbFNpemVzKCl9KSx0aGlzLmhvbGRTaXplcygpfSx0LnByb3RvdHlwZS5ub3JtYWxpemVTaXplcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2l6ZXJzLmxlbmd0aDtpZigwIT09dCl7dGhpcy5ob2xkU2l6ZXMoKTt2YXIgZT1zLnJlZHVjZSh0aGlzLnNpemVycyxmdW5jdGlvbih0LGUpe3JldHVybiB0K2Uuc2l6ZUhpbnR9LDApOzA9PT1lP3MuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbihlKXtlLnNpemU9ZS5zaXplSGludD0xL3R9KTpzLmVhY2godGhpcy5zaXplcnMsZnVuY3Rpb24odCl7dC5zaXplPXQuc2l6ZUhpbnQvPWV9KSx0aGlzLm5vcm1hbGl6ZWQ9ITB9fSx0LnByb3RvdHlwZS5jcmVhdGVOb3JtYWxpemVkU2l6ZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNpemVycy5sZW5ndGg7aWYoMD09PXQpcmV0dXJuW107dmFyIGU9dGhpcy5zaXplcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9KSxuPXMucmVkdWNlKGUsZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKTtyZXR1cm4gMD09PW4/cy5lYWNoKGUsZnVuY3Rpb24obixpKXtlW2ldPTEvdH0pOnMuZWFjaChlLGZ1bmN0aW9uKHQsaSl7ZVtpXT10L259KSxlfSx0LnByb3RvdHlwZS5maXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbixpPU1hdGgubWF4KDAsdGhpcy5jaGlsZHJlbi5sZW5ndGgtMSkqdCxyPW4/aTowLG89bj8wOmkscz0wLGE9dGhpcy5jaGlsZHJlbi5sZW5ndGg7czxhOysrcyl7dmFyIHU9dGhpcy5jaGlsZHJlbltzXS5maXQodCxlKTtuPyhvPU1hdGgubWF4KG8sdS5taW5IZWlnaHQpLHIrPXUubWluV2lkdGgsdGhpcy5zaXplcnNbc10ubWluU2l6ZT11Lm1pbldpZHRoKToocj1NYXRoLm1heChyLHUubWluV2lkdGgpLG8rPXUubWluSGVpZ2h0LHRoaXMuc2l6ZXJzW3NdLm1pblNpemU9dS5taW5IZWlnaHQpfXJldHVybnttaW5XaWR0aDpyLG1pbkhlaWdodDpvLG1heFdpZHRoOjEvMCxtYXhIZWlnaHQ6MS8wfX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuLGkscixvKXt2YXIgYT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uLHU9TWF0aC5tYXgoMCx0aGlzLmNoaWxkcmVuLmxlbmd0aC0xKSpyLGg9TWF0aC5tYXgoMCwoYT9uOmkpLXUpO3RoaXMubm9ybWFsaXplZCYmKHMuZWFjaCh0aGlzLnNpemVycyxmdW5jdGlvbih0KXt0LnNpemVIaW50Kj1ofSksdGhpcy5ub3JtYWxpemVkPSExKSxjLkJveEVuZ2luZS5jYWxjKHRoaXMuc2l6ZXJzLGgpO2Zvcih2YXIgbD0wLGQ9dGhpcy5jaGlsZHJlbi5sZW5ndGg7bDxkOysrbCl7dmFyIGY9dGhpcy5jaGlsZHJlbltsXSxwPXRoaXMuc2l6ZXJzW2xdLnNpemUsbT10aGlzLmhhbmRsZXNbbF0uc3R5bGU7YT8oZi51cGRhdGUodCxlLHAsaSxyLG8pLHQrPXAsbS50b3A9ZSsicHgiLG0ubGVmdD10KyJweCIsbS53aWR0aD1yKyJweCIsbS5oZWlnaHQ9aSsicHgiLHQrPXIpOihmLnVwZGF0ZSh0LGUsbixwLHIsbyksZSs9cCxtLnRvcD1lKyJweCIsbS5sZWZ0PXQrInB4IixtLndpZHRoPW4rInB4IixtLmhlaWdodD1yKyJweCIsZSs9cil9fSx0fSgpO3QuU3BsaXRMYXlvdXROb2RlPW99KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big0MSksZj1uKDcpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uX2ZpeGVkPTAsbi5fc3BhY2luZz00LG4uX2RpcnR5PSExLG4uX2hhc05vcm1lZFNpemVzPSExLG4uX3NpemVycz1bXSxuLl9pdGVtcz1bXSxuLl9oYW5kbGVzPVtdLG4uX2JveD1udWxsLG4uX2FsaWdubWVudD0ic3RhcnQiLG4uX29yaWVudGF0aW9uPSJob3Jpem9udGFsIixuLnJlbmRlcmVyPWUucmVuZGVyZXIsdm9pZCAwIT09ZS5vcmllbnRhdGlvbiYmKG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb24pLHZvaWQgMCE9PWUuYWxpZ25tZW50JiYobi5fYWxpZ25tZW50PWUuYWxpZ25tZW50KSx2b2lkIDAhPT1lLnNwYWNpbmcmJihuLl9zcGFjaW5nPW8uY2xhbXBTcGFjaW5nKGUuc3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fc2l6ZXJzLmxlbmd0aD0wLHRoaXMuX2hhbmRsZXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fb3JpZW50YXRpb249dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnBhcmVudC5maXQoKSkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiYWxpZ25tZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsaWdubWVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2FsaWdubWVudCE9PXQmJih0aGlzLl9hbGlnbm1lbnQ9dCx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXQsdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3Q9by5jbGFtcFNwYWNpbmcodCksdGhpcy5fc3BhY2luZyE9PXQmJih0aGlzLl9zcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImhhbmRsZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGFuZGxlc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKCl7cmV0dXJuIG8ubm9ybWFsaXplKHRoaXMuX3NpemVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX0pKX0sZS5wcm90b3R5cGUuc2V0UmVsYXRpdmVTaXplcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fc2l6ZXJzLmxlbmd0aCxuPXQuc2xpY2UoMCxlKTtuLmxlbmd0aDxlOyluLnB1c2goMCk7Zm9yKHZhciBpPW8ubm9ybWFsaXplKG4pLHI9MDtyPGU7KytyKXt2YXIgcz10aGlzLl9zaXplcnNbcl07cy5zaXplSGludD1pW3JdLHMuc2l6ZT1pW3JdfXRoaXMuX2hhc05vcm1lZFNpemVzPSEwLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC51cGRhdGUoKX0sZS5wcm90b3R5cGUubW92ZUhhbmRsZT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9dGhpcy5faGFuZGxlc1t0XTtpZihpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoInAtbW9kLWhpZGRlbiIpJiYwIT09KG49Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/ZS1pLm9mZnNldExlZnQ6ZS1pLm9mZnNldFRvcCkpe2Zvcih2YXIgcj0wLG89dGhpcy5fc2l6ZXJzO3I8by5sZW5ndGg7cisrKXt2YXIgcz1vW3JdO3Muc2l6ZT4wJiYocy5zaXplSGludD1zLnNpemUpfWguQm94RW5naW5lLmFkanVzdCh0aGlzLl9zaXplcnMsdCxuKSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuZGF0YXNldC5vcmllbnRhdGlvbj10aGlzLm9yaWVudGF0aW9uLHRoaXMucGFyZW50LmRhdGFzZXQuYWxpZ25tZW50PXRoaXMuYWxpZ25tZW50LHQucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuYXR0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IGwuTGF5b3V0SXRlbShlKSxpPW8uY3JlYXRlSGFuZGxlKHRoaXMucmVuZGVyZXIpLHI9by5hdmVyYWdlU2l6ZSh0aGlzLl9zaXplcnMpLGE9by5jcmVhdGVTaXplcihyKTtzLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG4pLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX3NpemVycyx0LGEpLHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX2hhbmRsZXMsdCxpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZChlLm5vZGUpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQoaSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGYuV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe3MuQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHMuQXJyYXlFeHQubW92ZSh0aGlzLl9zaXplcnMsdCxlKSxzLkFycmF5RXh0Lm1vdmUodGhpcy5faGFuZGxlcyx0LGUpLHRoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpLGk9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9oYW5kbGVzLHQpO3MuQXJyYXlFeHQucmVtb3ZlQXQodGhpcy5fc2l6ZXJzLHQpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxmLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQubm9kZS5yZW1vdmVDaGlsZChpKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKGUsZi5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKSxuLmRpc3Bvc2UoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25CZWZvcmVTaG93PWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlU2hvdy5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQudXBkYXRlKCl9LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoLmNhbGwodGhpcyxlKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZFNob3duPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vbkNoaWxkSGlkZGVuPWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmZpdCgpfSxlLnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSh0LndpZHRoLHQuaGVpZ2h0KX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzVmlzaWJsZSYmdGhpcy5fdXBkYXRlKC0xLC0xKX0sZS5wcm90b3R5cGUub25GaXRSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnRoaXMuX2ZpdCgpfSxlLnByb3RvdHlwZS5fZml0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsbj0tMSxpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl0aGlzLl9pdGVtc1tpXS5pc0hpZGRlbj90aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpOih0aGlzLl9oYW5kbGVzW2ldLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWhpZGRlbiIpLG49aSx0KyspOy0xIT09biYmdGhpcy5faGFuZGxlc1tuXS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLl9maXhlZD10aGlzLl9zcGFjaW5nKk1hdGgubWF4KDAsdC0xKTt2YXIgbz0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbixzPW8/dGhpcy5fZml4ZWQ6MCxjPW8/MDp0aGlzLl9maXhlZDtmb3IoaT0wLHI9dGhpcy5faXRlbXMubGVuZ3RoO2k8cjsrK2kpe3ZhciBoPXRoaXMuX2l0ZW1zW2ldLGw9dGhpcy5fc2l6ZXJzW2ldO2wuc2l6ZT4wJiYobC5zaXplSGludD1sLnNpemUpLGguaXNIaWRkZW4/KGwubWluU2l6ZT0wLGwubWF4U2l6ZT0wKTooaC5maXQoKSxsLnN0cmV0Y2g9ZS5nZXRTdHJldGNoKGgud2lkZ2V0KSxvPyhsLm1pblNpemU9aC5taW5XaWR0aCxsLm1heFNpemU9aC5tYXhXaWR0aCxzKz1oLm1pbldpZHRoLGM9TWF0aC5tYXgoYyxoLm1pbkhlaWdodCkpOihsLm1pblNpemU9aC5taW5IZWlnaHQsbC5tYXhTaXplPWgubWF4SGVpZ2h0LGMrPWgubWluSGVpZ2h0LHM9TWF0aC5tYXgocyxoLm1pbldpZHRoKSkpfXZhciBkPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3MrPWQuaG9yaXpvbnRhbFN1bSxjKz1kLnZlcnRpY2FsU3VtO3ZhciBwPXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7cC5taW5XaWR0aD1zKyJweCIscC5taW5IZWlnaHQ9YysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZi5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGYuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PWEuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvLHM9dGhpcy5fYm94LnBhZGRpbmdUb3AsdT10aGlzLl9ib3gucGFkZGluZ0xlZnQsYz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLGw9ZS10aGlzLl9ib3gudmVydGljYWxTdW0sZD0iaG9yaXpvbnRhbCI9PT10aGlzLl9vcmllbnRhdGlvbjtpZihvPWQ/TWF0aC5tYXgoMCxjLXRoaXMuX2ZpeGVkKTpNYXRoLm1heCgwLGwtdGhpcy5fZml4ZWQpLHRoaXMuX2hhc05vcm1lZFNpemVzKXtmb3IodmFyIGY9MCxwPXRoaXMuX3NpemVycztmPHAubGVuZ3RoO2YrKyl7cFtmXS5zaXplSGludCo9b310aGlzLl9oYXNOb3JtZWRTaXplcz0hMX12YXIgbT1oLkJveEVuZ2luZS5jYWxjKHRoaXMuX3NpemVycyxvKSxnPTAsdj0wO2lmKG0+MClzd2l0Y2godGhpcy5fYWxpZ25tZW50KXtjYXNlInN0YXJ0IjpicmVhaztjYXNlImNlbnRlciI6Zz0wLHY9bS8yO2JyZWFrO2Nhc2UiZW5kIjpnPTAsdj1tO2JyZWFrO2Nhc2UianVzdGlmeSI6Zz1tL24sdj0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cidW5yZWFjaGFibGUifWZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGI9dGhpcy5faXRlbXNbaV07aWYoIWIuaXNIaWRkZW4pe3ZhciB5PXRoaXMuX3NpemVyc1tpXS5zaXplLF89dGhpcy5faGFuZGxlc1tpXS5zdHlsZTtkPyhiLnVwZGF0ZSh1K3Yscyx5K2csbCksdSs9eStnLF8udG9wPXMrInB4IixfLmxlZnQ9dSt2KyJweCIsXy53aWR0aD10aGlzLl9zcGFjaW5nKyJweCIsXy5oZWlnaHQ9bCsicHgiLHUrPXRoaXMuX3NwYWNpbmcpOihiLnVwZGF0ZSh1LHMrdixjLHkrZykscys9eStnLF8udG9wPXMrdisicHgiLF8ubGVmdD11KyJweCIsXy53aWR0aD1jKyJweCIsXy5oZWlnaHQ9dGhpcy5fc3BhY2luZysicHgiLHMrPXRoaXMuX3NwYWNpbmcpfX19fSxlfShkLlBhbmVsTGF5b3V0KTtlLlNwbGl0TGF5b3V0PXAsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBvLnN0cmV0Y2hQcm9wZXJ0eS5nZXQodCl9LHQuc2V0U3RyZXRjaD1mdW5jdGlvbih0LGUpe28uc3RyZXRjaFByb3BlcnR5LnNldCh0LGUpfX0ocD1lLlNwbGl0TGF5b3V0fHwoZS5TcGxpdExheW91dD17fSkpLGUuU3BsaXRMYXlvdXQ9cCxmdW5jdGlvbih0KXt0LnN0cmV0Y2hQcm9wZXJ0eT1uZXcgYy5BdHRhY2hlZFByb3BlcnR5KHtuYW1lOiJzdHJldGNoIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sY29lcmNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LGNoYW5nZWQ6ZnVuY3Rpb24odCl7dC5wYXJlbnQmJnQucGFyZW50LmxheW91dCBpbnN0YW5jZW9mIHAmJnQucGFyZW50LmZpdCgpfX0pLHQuY3JlYXRlU2l6ZXI9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGguQm94U2l6ZXI7cmV0dXJuIGUuc2l6ZUhpbnQ9TWF0aC5mbG9vcih0KSxlfSx0LmNyZWF0ZUhhbmRsZT1mdW5jdGlvbih0KXt2YXIgZT10LmNyZWF0ZUhhbmRsZSgpO3JldHVybiBlLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZX0sdC5jbGFtcFNwYWNpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5mbG9vcih0KSl9LHQuYXZlcmFnZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS5zaXplfSwwKS90Lmxlbmd0aHx8MH0sdC5ub3JtYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107dmFyIG49dC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLmFicyhlKX0sMCk7cmV0dXJuIDA9PT1uP3QubWFwKGZ1bmN0aW9uKHQpe3JldHVybiAxL2V9KTp0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC9ufSl9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9big5KSxhPW4oNSksdT1uKDIyKSxjPW4oNDEpLGg9big3KSxsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX2RpcnR5PSExLGUuX2l0ZW1zPVtdLGUuX2JveD1udWxsLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3QuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXtvLkFycmF5RXh0Lmluc2VydCh0aGlzLl9pdGVtcyx0LG5ldyB1LkxheW91dEl0ZW0oZSkpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlQXR0YWNoKSx0aGlzLnBhcmVudC5ub2RlLmFwcGVuZENoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckF0dGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm1vdmVXaWRnZXQ9ZnVuY3Rpb24odCxlLG4pe28uQXJyYXlFeHQubW92ZSh0aGlzLl9pdGVtcyx0LGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1vLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpO3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJmEuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UoZSxoLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKGUubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZShlLGguV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksbi53aWRnZXQubm9kZS5zdHlsZS56SW5kZXg9IiIsbi5kaXNwb3NlKCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9MCxuPTAsaT10aGlzLl9pdGVtcy5sZW5ndGg7bjxpOysrbil7dmFyIHI9dGhpcy5faXRlbXNbbl07ci5pc0hpZGRlbnx8KHIuZml0KCksdD1NYXRoLm1heCh0LHIubWluV2lkdGgpLGU9TWF0aC5tYXgoZSxyLm1pbkhlaWdodCkpfXZhciBvPXRoaXMuX2JveD1zLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3QrPW8uaG9yaXpvbnRhbFN1bSxlKz1vLnZlcnRpY2FsU3VtO3ZhciB1PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7dS5taW5XaWR0aD10KyJweCIsdS5taW5IZWlnaHQ9ZSsicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmYS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsaC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZhLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGguV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX0sZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUpe3RoaXMuX2RpcnR5PSExO2Zvcih2YXIgbj0wLGk9MCxyPXRoaXMuX2l0ZW1zLmxlbmd0aDtpPHI7KytpKW4rPSshdGhpcy5faXRlbXNbaV0uaXNIaWRkZW47aWYoMCE9PW4pe3Q8MCYmKHQ9dGhpcy5wYXJlbnQubm9kZS5vZmZzZXRXaWR0aCksZTwwJiYoZT10aGlzLnBhcmVudC5ub2RlLm9mZnNldEhlaWdodCksdGhpcy5fYm94fHwodGhpcy5fYm94PXMuRWxlbWVudEV4dC5ib3hTaXppbmcodGhpcy5wYXJlbnQubm9kZSkpO3ZhciBvPXRoaXMuX2JveC5wYWRkaW5nVG9wLGE9dGhpcy5fYm94LnBhZGRpbmdMZWZ0LHU9dC10aGlzLl9ib3guaG9yaXpvbnRhbFN1bSxjPWUtdGhpcy5fYm94LnZlcnRpY2FsU3VtO2ZvcihpPTAscj10aGlzLl9pdGVtcy5sZW5ndGg7aTxyOysraSl7dmFyIGg9dGhpcy5faXRlbXNbaV07aC5pc0hpZGRlbnx8KGgud2lkZ2V0Lm5vZGUuc3R5bGUuekluZGV4PSIiK2ksaC51cGRhdGUoYSxvLHUsYykpfX19LGV9KGMuUGFuZWxMYXlvdXQpO2UuU3RhY2tlZExheW91dD1sfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMTEpLGE9big1NCksdT1uKDEzNCksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3dpZGdldFJlbW92ZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU3RhY2tlZFBhbmVsIiksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLVN0YWNrZWRQYW5lbC1jaGlsZCIpLHRoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0oYS5QYW5lbCk7ZS5TdGFja2VkUGFuZWw9YyxmdW5jdGlvbih0KXt0LmNyZWF0ZUxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5sYXlvdXR8fG5ldyB1LlN0YWNrZWRMYXlvdXR9fShvfHwobz17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9bigxNiksYz1uKDIpLGg9big1KSxsPW4oMzkpLGQ9big2KSxmPW4oMTUpLHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSksdGhpcy5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpfSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Rpc3Bvc2VkfHwodC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpLHRoaXMuX3ZpZXcmJnRoaXMuX3ZpZXcucmVtb3ZlKCksdGhpcy5fdmlldz1udWxsKX0sZX0obC5QYW5lbCk7ZS5KdXB5dGVyUGhvc3Bob3JQYW5lbFdpZGdldD1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiQm94VmlldyIsX21vZGVsX25hbWU6IkJveE1vZGVsIixjaGlsZHJlbjpbXSxib3hfc3R5bGU6IiJ9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtjaGlsZHJlbjp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkJveE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJIQm94VmlldyIsX21vZGVsX25hbWU6IkhCb3hNb2RlbCJ9KX0sZX0obSk7ZS5IQm94TW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGQuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlZCb3hWaWV3IixfbW9kZWxfbmFtZToiVkJveE1vZGVsIn0pfSxlfShtKTtlLlZCb3hNb2RlbD12O3ZhciBiPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX2NyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucFdpZGdldD1uZXcgcCh7dmlldzp0aGlzfSksdGhpcy5wV2lkZ2V0Lm5vZGV9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuZWx8fHQhPT10aGlzLnBXaWRnZXQubm9kZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXNldCB0aGUgRE9NIGVsZW1lbnQuIik7dGhpcy5lbD10aGlzLnBXaWRnZXQubm9kZSx0aGlzLiRlbD1mKHRoaXMucFdpZGdldC5ub2RlKX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBzLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX21vZGVsLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLHRoaXMudXBkYXRlX2NoaWxkcmVuKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpib3hfc3R5bGUiLHRoaXMudXBkYXRlX2JveF9zdHlsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1jb250YWluZXIiKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC1ib3giKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy51cGRhdGVfY2hpbGRyZW4oKSx0aGlzLnNldF9ib3hfc3R5bGUoKX0sZS5wcm90b3R5cGUudXBkYXRlX2NoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLnRoZW4oZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2guTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodC5wV2lkZ2V0LGwuV2lkZ2V0LlJlc2l6ZU1lc3NhZ2UuVW5rbm93blNpemUpfSl9KX0sZS5wcm90b3R5cGUudXBkYXRlX2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuc2V0X2JveF9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJib3hfc3R5bGUiKX0sZS5wcm90b3R5cGUuYWRkX2NoaWxkX21vZGVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgbC5XaWRnZXQ7cmV0dXJuIHRoaXMucFdpZGdldC5hZGRXaWRnZXQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBpPWMuQXJyYXlFeHQuZmlyc3RJbmRleE9mKGUucFdpZGdldC53aWRnZXRzLG4pO3JldHVybiBlLnBXaWRnZXQuaW5zZXJ0V2lkZ2V0KGksdC5wV2lkZ2V0KSxuLmRpc3Bvc2UoKSx0fSkuY2F0Y2godS5yZWplY3QoIkNvdWxkIG5vdCBhZGQgY2hpbGQgdmlldyB0byBib3giLCEwKSl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuY2hpbGRyZW5fdmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJhbGVydCIsImFsZXJ0LXN1Y2Nlc3MiXSxpbmZvOlsiYWxlcnQiLCJhbGVydC1pbmZvIl0sd2FybmluZzpbImFsZXJ0IiwiYWxlcnQtd2FybmluZyJdLGRhbmdlcjpbImFsZXJ0IiwiYWxlcnQtZGFuZ2VyIl19LGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5Cb3hWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWhib3giKX0sZX0oYik7ZS5IQm94Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoIndpZGdldC12Ym94Iil9LGV9KGIpO2UuVkJveFZpZXc9Xzt2YXIgdz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtZ3JpZGJveCIpLHRoaXMucFdpZGdldC5yZW1vdmVDbGFzcygid2lkZ2V0LWJveCIpfSxlfShiKTtlLkdyaWRCb3hWaWV3PXc7dmFyIHg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJHcmlkQm94VmlldyIsX21vZGVsX25hbWU6IkdyaWRCb3hNb2RlbCJ9KX0sZX0obSk7ZS5HcmlkQm94TW9kZWw9eH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDgpLGM9bigxNiksaD1uKDEzOSksbD1uKDYpLGQ9bigxNSk7bigzNDcpO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludE1vZGVsIix2YWx1ZTowfSl9LGV9KHMuQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuSW50TW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50TW9kZWwiLG1heDoxMDAsbWluOjB9KX0sZX0oZik7ZS5Cb3VuZGVkSW50TW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNsaWRlclN0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtoYW5kbGVfY29sb3I6e3NlbGVjdG9yOiIudWktc2xpZGVyLWhhbmRsZSIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuU2xpZGVyU3R5bGVNb2RlbD1tO3ZhciBnPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkludFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJJbnRTbGlkZXJWaWV3IixzdGVwOjEsb3JpZW50YXRpb246Imhvcml6b250YWwiLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6ImQiLGNvbnRpbnVvdXNfdXBkYXRlOiEwLHN0eWxlOm51bGwsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPWguZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0ocCk7ZS5JbnRTbGlkZXJNb2RlbD1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZX0oZyk7ZS5JbnRSYW5nZVNsaWRlck1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VJbnQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1zbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1kKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5jb250ZW50RWRpdGFibGU9InRydWUiLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgbj10aGlzO24uJHNsaWRlci5zbGlkZXIoe30pLFsic3RlcCIsImRpc2FibGVkIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLm1vZGVsLmdldCh0KTt2b2lkIDAhPT1lJiZuLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLHQsZSl9KSx0aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKT90aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPSJmYWxzZSI6dGhpcy5yZWFkb3V0LmNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI7dmFyIGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoIm1pbiIpO3I8PWkmJih2b2lkIDAhPT1pJiZ0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJtYXgiLGkpLHZvaWQgMCE9PXImJnRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1pbiIscikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm9yaWVudGF0aW9uIixvKSwidmVydGljYWwiPT09bz8odGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS12Ym94IikpOih0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC12c2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSksdGhpcy5tb2RlbC5nZXQoInJlYWRvdXQiKT8odGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe24ucmVhZG91dF9vdmVyZmxvdygpP24ucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJvdmVyZmxvdyIpOm4ucmVhZG91dC5jbGFzc0xpc3QucmVtb3ZlKCJvdmVyZmxvdyIpfSkpOnRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIn1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlYWRvdXRfb3ZlcmZsb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkb3V0LnNjcm9sbFdpZHRoPnRoaXMucmVhZG91dC5jbGllbnRXaWR0aH0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCIsImJsdXIgW2NvbnRlbnRFZGl0YWJsZT10cnVlXSI6ImhhbmRsZVRleHRDaGFuZ2UiLCJrZXlkb3duIFtjb250ZW50RWRpdGFibGU9dHJ1ZV0iOiJoYW5kbGVLZXlEb3duIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVUZXh0Q2hhbmdlKCkpfSxlLnByb3RvdHlwZS5fdmFsaWRhdGVfc2xpZGVfdmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkJhc2VJbnRTbGlkZXJWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcmFuZ2VfcmVnZXg9L15ccyooWystXT9cZCspXHMqWy064oCTXVxzKihbKy1dP1xkKykvLGV9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJyYW5nZSIsITApO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsbi5zbGljZSgpKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKG4pLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09biYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsbix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXI7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkuam9pbigiIOKAkyAiKX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yYW5nZV9yZWdleC5leGVjKHQpO3JldHVybiBlP1t0aGlzLl9wYXJzZV92YWx1ZShlWzFdKSx0aGlzLl9wYXJzZV92YWx1ZShlWzJdKV06bnVsbH0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO251bGw9PT10fHxpc05hTih0WzBdKXx8aXNOYU4odFsxXSl8fHRbMF0+dFsxXT90aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKToodD1bTWF0aC5tYXgoTWF0aC5taW4odFswXSxuKSxlKSxNYXRoLm1heChNYXRoLm1pbih0WzFdLG4pLGUpXSlbMF0hPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKVswXXx8dFsxXSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpWzFdPyh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHQpLHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdCx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpOnRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnZhbHVlcy5tYXAodGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS52YWx1ZXMubWFwKHRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLG4se3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShiKTtlLkludFJhbmdlU2xpZGVyVmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMsZSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoIm1pbiIpLGk9dGhpcy5tb2RlbC5nZXQoIm1heCIpLHI9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7cj5pP3I9aTpyPG4mJihyPW4pLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlIixyKSx0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpIT09ciYmKHRoaXMubW9kZWwuc2V0KCJ2YWx1ZSIscix7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCkpfSxlLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybigwLHRoaXMubW9kZWwucmVhZG91dF9mb3JtYXR0ZXIpKHQpfSxlLnByb3RvdHlwZS5zdHJpbmdUb1ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJzZV92YWx1ZSh0KX0sZS5wcm90b3R5cGUuaGFuZGxlVGV4dENoYW5nZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RyaW5nVG9WYWx1ZSh0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQpLGU9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpO2lzTmFOKHQpP3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodGhpcy5tb2RlbC5nZXQoInZhbHVlIikpOih0PU1hdGgubWF4KE1hdGgubWluKHQsbiksZSkpIT09dGhpcy5tb2RlbC5nZXQoInZhbHVlIik/KHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcodCksdGhpcy5tb2RlbC5zZXQoInZhbHVlIix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSk6dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSl9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlKGUudmFsdWUpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcobiksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSk7dGhpcy5tb2RlbC5zZXQoInZhbHVlIixuLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oYik7ZS5JbnRTbGlkZXJWaWV3PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITF9KX0sZX0oZik7ZS5JbnRUZXh0TW9kZWw9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGwuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJCb3VuZGVkSW50VGV4dE1vZGVsIixfdmlld19uYW1lOiJJbnRUZXh0VmlldyIsZGlzYWJsZWQ6ITEsY29udGludW91c191cGRhdGU6ITEsc3RlcDoxfSl9LGV9KHApO2UuQm91bmRlZEludFRleHRNb2RlbD14O3ZhciBNPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlSW50LGUuX2RlZmF1bHRfc3RlcD0iMSIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnR5cGU9Im51bWJlciIsdGhpcy50ZXh0Ym94LnJlcXVpcmVkPSEwLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9Yy51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9PXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX3BhcnNlX3ZhbHVlKHRoaXMudGV4dGJveC52YWx1ZSkhPT1uJiYodGhpcy50ZXh0Ym94LnZhbHVlPW4udG9TdHJpbmcoKSksdm9pZCAwIT09dGhpcy5tb2RlbC5nZXQoIm1pbiIpJiYodGhpcy50ZXh0Ym94Lm1pbj10aGlzLm1vZGVsLmdldCgibWluIikpLHZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKHRoaXMudGV4dGJveC5tYXg9dGhpcy5tb2RlbC5nZXQoIm1heCIpKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgic3RlcCIpJiZudWxsIT09dGhpcy5tb2RlbC5nZXQoInN0ZXAiKT90aGlzLnRleHRib3guc3RlcD10aGlzLm1vZGVsLmdldCgic3RlcCIpOnRoaXMudGV4dGJveC5zdGVwPXRoaXMuX2RlZmF1bHRfc3RlcCx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IGlucHV0IjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgaW5wdXQiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQudmFsdWUudHJpbSgpOyIiPT09ZXx8WyItIiwiLS4iLCIuIiwiKy4iLCIrIl0uaW5kZXhPZihlKT49MHx8dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZV92YWx1ZSh0LnRhcmdldC52YWx1ZSk7aWYoaXNOYU4oZSkpdC50YXJnZXQudmFsdWU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7ZWxzZXt2YXIgbj1lO3ZvaWQgMCE9PXRoaXMubW9kZWwuZ2V0KCJtYXgiKSYmKG49TWF0aC5taW4odGhpcy5tb2RlbC5nZXQoIm1heCIpLG4pKSx2b2lkIDAhPT10aGlzLm1vZGVsLmdldCgibWluIikmJihuPU1hdGgubWF4KHRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuKSksbiE9PWUmJih0LnRhcmdldC52YWx1ZT1uLGU9biksZSE9PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpJiYodGhpcy5tb2RlbC5zZXQoInZhbHVlIixlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKSl9fSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5JbnRUZXh0Vmlldz1NO3ZhciBTPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUHJvZ3Jlc3NTdHlsZU1vZGVsIn0pfSxlLnN0eWxlUHJvcGVydGllcz1vKHt9LGEuRGVzY3JpcHRpb25TdHlsZU1vZGVsLnN0eWxlUHJvcGVydGllcyx7YmFyX2NvbG9yOntzZWxlY3RvcjoiLnByb2dyZXNzLWJhciIsYXR0cmlidXRlOiJiYWNrZ3JvdW5kLWNvbG9yIixkZWZhdWx0Om51bGx9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuUHJvZ3Jlc3NTdHlsZU1vZGVsPVM7dmFyIEU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiSW50UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0ocCk7ZS5JbnRQcm9ncmVzc01vZGVsPUU7dmFyIEE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJhcl9zdHlsZSIsdGhpcy51cGRhdGVfYmFyX3N0eWxlKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT0iaG9yaXpvbnRhbCI9PT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKT8id2lkZ2V0LWhwcm9ncmVzcyI6IndpZGdldC12cHJvZ3Jlc3MiO3RoaXMuZWwuY2xhc3NMaXN0LmFkZChlKSx0aGlzLnByb2dyZXNzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMucHJvZ3Jlc3MuY2xhc3NMaXN0LmFkZCgicHJvZ3Jlc3MiKSx0aGlzLnByb2dyZXNzLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnByb2dyZXNzKSx0aGlzLmJhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmJhci5jbGFzc0xpc3QuYWRkKCJwcm9ncmVzcy1iYXIiKSx0aGlzLmJhci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5sZWZ0PSIwcHgiLHRoaXMucHJvZ3Jlc3MuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5zZXRfYmFyX3N0eWxlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG49dGhpcy5tb2RlbC5nZXQoIm1heCIpLGk9dGhpcy5tb2RlbC5nZXQoIm1pbiIpLHI9MTAwKihlLWkpLyhuLWkpO3JldHVybiJob3Jpem9udGFsIj09PXRoaXMubW9kZWwuZ2V0KCJvcmllbnRhdGlvbiIpPyh0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtdmJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LXZwcm9ncmVzcyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5iYXIuc3R5bGUud2lkdGg9cisiJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PSIxMDAlIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtaHByb2dyZXNzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLXZib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC12cHJvZ3Jlc3MiKSx0aGlzLmJhci5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5iYXIuc3R5bGUuaGVpZ2h0PXIrIiUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUudXBkYXRlX2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMudXBkYXRlX21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5wcm90b3R5cGUuc2V0X2Jhcl9zdHlsZT1mdW5jdGlvbigpe3RoaXMuc2V0X21hcHBlZF9jbGFzc2VzKGUuY2xhc3NfbWFwLCJiYXJfc3R5bGUiLHRoaXMuYmFyKX0sZS5jbGFzc19tYXA9e3N1Y2Nlc3M6WyJwcm9ncmVzcy1iYXItc3VjY2VzcyJdLGluZm86WyJwcm9ncmVzcy1iYXItaW5mbyJdLHdhcm5pbmc6WyJwcm9ncmVzcy1iYXItd2FybmluZyJdLGRhbmdlcjpbInByb2dyZXNzLWJhci1kYW5nZXIiXX0sZX0oYS5EZXNjcmlwdGlvblZpZXcpO2UuUHJvZ3Jlc3NWaWV3PUE7dmFyIEM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBsLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiUGxheU1vZGVsIixfdmlld19uYW1lOiJQbGF5VmlldyIsX3BsYXlpbmc6ITEsX3JlcGVhdDohMSxzaG93X3JlcGVhdDohMCxpbnRlcnZhbDoxMDAsc3RlcDoxLGRpc2FibGVkOiExfSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSxuKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlLG4pfSxlLnByb3RvdHlwZS5sb29wPWZ1bmN0aW9uKCl7aWYodGhpcy5nZXQoIl9wbGF5aW5nIikpe3ZhciB0PXRoaXMuZ2V0KCJ2YWx1ZSIpK3RoaXMuZ2V0KCJzdGVwIik7dDw9dGhpcy5nZXQoIm1heCIpPyh0aGlzLnNldCgidmFsdWUiLHQpLHRoaXMuc2NoZWR1bGVfbmV4dCgpKTp0aGlzLmdldCgiX3JlcGVhdCIpPyh0aGlzLnNldCgidmFsdWUiLHRoaXMuZ2V0KCJtaW4iKSksdGhpcy5zY2hlZHVsZV9uZXh0KCkpOnRoaXMuc2V0KCJfcGxheWluZyIsITEpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9fSxlLnByb3RvdHlwZS5zY2hlZHVsZV9uZXh0PWZ1bmN0aW9uKCl7d2luZG93LnNldFRpbWVvdXQodGhpcy5sb29wLmJpbmQodGhpcyksdGhpcy5nZXQoImludGVydmFsIikpfSxlLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zZXQoInZhbHVlIix0aGlzLmdldCgibWluIikpLHRoaXMuc2F2ZV9jaGFuZ2VzKCl9LGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9wbGF5aW5nIiwhMSksdGhpcy5zYXZlX2NoYW5nZXMoKX0sZS5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMuc2V0KCJfcGxheWluZyIsITApLHRoaXMuZ2V0KCJ2YWx1ZSIpPT10aGlzLmdldCgibWF4Iik/KHRoaXMuc2V0KCJ2YWx1ZSIsdGhpcy5nZXQoIm1pbiIpKSx0aGlzLnNjaGVkdWxlX25leHQoKSx0aGlzLnNhdmVfY2hhbmdlcygpKTp0aGlzLmxvb3AoKX0sZS5wcm90b3R5cGUucmVwZWF0PWZ1bmN0aW9uKCl7dGhpcy5zZXQoIl9yZXBlYXQiLCF0aGlzLmdldCgiX3JlcGVhdCIpKSx0aGlzLnNhdmVfY2hhbmdlcygpfSxlfShwKTtlLlBsYXlNb2RlbD1DO3ZhciBrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXBsYXkiKSx0aGlzLnBsYXlCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wYXVzZUJ1dHRvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSx0aGlzLnN0b3BCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5yZXBlYXRCdXR0b249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksdGhpcy5wbGF5QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucGF1c2VCdXR0b24uY2xhc3NOYW1lPSJqdXB5dGVyLWJ1dHRvbiIsdGhpcy5zdG9wQnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMucmVwZWF0QnV0dG9uLmNsYXNzTmFtZT0ianVweXRlci1idXR0b24iLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5wbGF5QnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucGF1c2VCdXR0b24pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdG9wQnV0dG9uKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMucmVwZWF0QnV0dG9uKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7ZS5jbGFzc05hbWU9ImZhIGZhLXBsYXkiLHRoaXMucGxheUJ1dHRvbi5hcHBlbmRDaGlsZChlKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7bi5jbGFzc05hbWU9ImZhIGZhLXBhdXNlIix0aGlzLnBhdXNlQnV0dG9uLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtpLmNsYXNzTmFtZT0iZmEgZmEtc3RvcCIsdGhpcy5zdG9wQnV0dG9uLmFwcGVuZENoaWxkKGkpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtyLmNsYXNzTmFtZT0iZmEgZmEtcmV0d2VldCIsdGhpcy5yZXBlYXRCdXR0b24uYXBwZW5kQ2hpbGQociksdGhpcy5wbGF5QnV0dG9uLm9uY2xpY2s9dGhpcy5tb2RlbC5wbGF5LmJpbmQodGhpcy5tb2RlbCksdGhpcy5wYXVzZUJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucGF1c2UuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnN0b3BCdXR0b24ub25jbGljaz10aGlzLm1vZGVsLnN0b3AuYmluZCh0aGlzLm1vZGVsKSx0aGlzLnJlcGVhdEJ1dHRvbi5vbmNsaWNrPXRoaXMubW9kZWwucmVwZWF0LmJpbmQodGhpcy5tb2RlbCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3BsYXlpbmciLHRoaXMudXBkYXRlX3BsYXlpbmcpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOl9yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2hvd19yZXBlYXQiLHRoaXMudXBkYXRlX3JlcGVhdCksdGhpcy51cGRhdGVfcGxheWluZygpLHRoaXMudXBkYXRlX3JlcGVhdCgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMucGxheUJ1dHRvbi5kaXNhYmxlZD10LHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnN0b3BCdXR0b24uZGlzYWJsZWQ9dCx0aGlzLnJlcGVhdEJ1dHRvbi5kaXNhYmxlZD10LHRoaXMudXBkYXRlX3BsYXlpbmcoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYXlpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3BsYXlpbmciKSxlPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3Q/KGV8fCh0aGlzLnBhdXNlQnV0dG9uLmRpc2FibGVkPSExKSx0aGlzLnBsYXlCdXR0b24uY2xhc3NMaXN0LmFkZCgibW9kLWFjdGl2ZSIpKTooZXx8KHRoaXMucGF1c2VCdXR0b24uZGlzYWJsZWQ9ITApLHRoaXMucGxheUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVwZWF0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXQoIl9yZXBlYXQiKTt0aGlzLnJlcGVhdEJ1dHRvbi5zdHlsZS5kaXNwbGF5PXRoaXMubW9kZWwuZ2V0KCJzaG93X3JlcGVhdCIpP3RoaXMucGxheUJ1dHRvbi5zdHlsZS5kaXNwbGF5OiJub25lIix0P3RoaXMucmVwZWF0QnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTp0aGlzLnJlcGVhdEJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIil9LGV9KHUuRE9NV2lkZ2V0Vmlldyk7ZS5QbGF5Vmlldz1rfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFdpZGdldCAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbig0MildLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlLG49MCxpPUFycmF5LnByb3RvdHlwZS5zbGljZTtyZXR1cm4gdC5jbGVhbkRhdGE9KGU9dC5jbGVhbkRhdGEsZnVuY3Rpb24obil7dmFyIGkscixvO2ZvcihvPTA7bnVsbCE9KHI9bltvXSk7bysrKXRyeXsoaT10Ll9kYXRhKHIsImV2ZW50cyIpKSYmaS5yZW1vdmUmJnQocikudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpfWNhdGNoKHQpe31lKG4pfSksdC53aWRnZXQ9ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scyxhPXt9LHU9ZS5zcGxpdCgiLiIpWzBdLGM9dSsiLSIrKGU9ZS5zcGxpdCgiLiIpWzFdKTtyZXR1cm4gaXx8KGk9bixuPXQuV2lkZ2V0KSx0LmlzQXJyYXkoaSkmJihpPXQuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQoaSkpKSx0LmV4cHJbIjoiXVtjLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdC5kYXRhKGUsYyl9LHRbdV09dFt1XXx8e30scj10W3VdW2VdLG89dFt1XVtlXT1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9jcmVhdGVXaWRnZXQpcmV0dXJuIG5ldyBvKHQsZSk7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KHQsZSl9LHQuZXh0ZW5kKG8scix7dmVyc2lvbjppLnZlcnNpb24sX3Byb3RvOnQuZXh0ZW5kKHt9LGkpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLChzPW5ldyBuKS5vcHRpb25zPXQud2lkZ2V0LmV4dGVuZCh7fSxzLm9wdGlvbnMpLHQuZWFjaChpLGZ1bmN0aW9uKGUsaSl7dC5pc0Z1bmN0aW9uKGkpP2FbZV09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIG4ucHJvdG90eXBlW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByKHQpe3JldHVybiBuLnByb3RvdHlwZVtlXS5hcHBseSh0aGlzLHQpfXJldHVybiBmdW5jdGlvbigpe3ZhciBlLG49dGhpcy5fc3VwZXIsbz10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj10LHRoaXMuX3N1cGVyQXBwbHk9cixlPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPW4sdGhpcy5fc3VwZXJBcHBseT1vLGV9fSgpOmFbZV09aX0pLG8ucHJvdG90eXBlPXQud2lkZ2V0LmV4dGVuZChzLHt3aWRnZXRFdmVudFByZWZpeDpyJiZzLndpZGdldEV2ZW50UHJlZml4fHxlfSxhLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTp1LHdpZGdldE5hbWU6ZSx3aWRnZXRGdWxsTmFtZTpjfSkscj8odC5lYWNoKHIuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKGUsbil7dmFyIGk9bi5wcm90b3R5cGU7dC53aWRnZXQoaS5uYW1lc3BhY2UrIi4iK2kud2lkZ2V0TmFtZSxvLG4uX3Byb3RvKX0pLGRlbGV0ZSByLl9jaGlsZENvbnN0cnVjdG9ycyk6bi5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSx0LndpZGdldC5icmlkZ2UoZSxvKSxvfSx0LndpZGdldC5leHRlbmQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuLHIsbz1pLmNhbGwoYXJndW1lbnRzLDEpLHM9MCxhPW8ubGVuZ3RoO3M8YTtzKyspZm9yKG4gaW4gb1tzXSlyPW9bc11bbl0sb1tzXS5oYXNPd25Qcm9wZXJ0eShuKSYmdm9pZCAwIT09ciYmKHQuaXNQbGFpbk9iamVjdChyKT9lW25dPXQuaXNQbGFpbk9iamVjdChlW25dKT90LndpZGdldC5leHRlbmQoe30sZVtuXSxyKTp0LndpZGdldC5leHRlbmQoe30scik6ZVtuXT1yKTtyZXR1cm4gZX0sdC53aWRnZXQuYnJpZGdlPWZ1bmN0aW9uKGUsbil7dmFyIHI9bi5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWV8fGU7dC5mbltlXT1mdW5jdGlvbihvKXt2YXIgcz0ic3RyaW5nIj09dHlwZW9mIG8sYT1pLmNhbGwoYXJndW1lbnRzLDEpLHU9dGhpcztyZXR1cm4gcz90aGlzLmxlbmd0aHx8Imluc3RhbmNlIiE9PW8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG4saT10LmRhdGEodGhpcyxyKTtyZXR1cm4iaW5zdGFuY2UiPT09bz8odT1pLCExKTppP3QuaXNGdW5jdGlvbihpW29dKSYmIl8iIT09by5jaGFyQXQoMCk/KG49aVtvXS5hcHBseShpLGEpKSE9PWkmJnZvaWQgMCE9PW4/KHU9biYmbi5qcXVlcnk/dS5wdXNoU3RhY2sobi5nZXQoKSk6biwhMSk6dm9pZCAwOnQuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK28rIicgZm9yICIrZSsiIHdpZGdldCBpbnN0YW5jZSIpOnQuZXJyb3IoImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIitlKyIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIitvKyInIil9KTp1PXZvaWQgMDooYS5sZW5ndGgmJihvPXQud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtvXS5jb25jYXQoYSkpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT10LmRhdGEodGhpcyxyKTtlPyhlLm9wdGlvbihvfHx7fSksZS5faW5pdCYmZS5faW5pdCgpKTp0LmRhdGEodGhpcyxyLG5ldyBuKG8sdGhpcykpfSkpLHV9fSx0LldpZGdldD1mdW5jdGlvbigpe30sdC5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzPVtdLHQuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixkZWZhdWx0RWxlbWVudDoiPGRpdj4iLG9wdGlvbnM6e2NsYXNzZXM6e30sZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oZSxpKXtpPXQoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PXQoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9dCgpLHRoaXMuaG92ZXJhYmxlPXQoKSx0aGlzLmZvY3VzYWJsZT10KCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSxpIT09dGhpcyYmKHQuZGF0YShpLHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1pJiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PXQoaS5zdHlsZT9pLm93bmVyRG9jdW1lbnQ6aS5kb2N1bWVudHx8aSksdGhpcy53aW5kb3c9dCh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz10LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxlKSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9nZXRDcmVhdGVFdmVudERhdGE6dC5ub29wLF9jcmVhdGU6dC5ub29wLF9pbml0OnQubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9kZXN0cm95KCksdC5lYWNoKHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24odCxuKXtlLl9yZW1vdmVDbGFzcyhuLHQpfSksdGhpcy5lbGVtZW50Lm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0RnVsbE5hbWUpLHRoaXMud2lkZ2V0KCkub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKSx0aGlzLmJpbmRpbmdzLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKX0sX2Rlc3Ryb3k6dC5ub29wLHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHIsbyxzPWU7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZihzPXt9LGk9ZS5zcGxpdCgiLiIpLGU9aS5zaGlmdCgpLGkubGVuZ3RoKXtmb3Iocj1zW2VdPXQud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnNbZV0pLG89MDtvPGkubGVuZ3RoLTE7bysrKXJbaVtvXV09cltpW29dXXx8e30scj1yW2lbb11dO2lmKGU9aS5wb3AoKSwxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09cltlXT9udWxsOnJbZV07cltlXT1ufWVsc2V7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9uc1tlXT9udWxsOnRoaXMub3B0aW9uc1tlXTtzW2VdPW59cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMocyksdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gdCl0aGlzLl9zZXRPcHRpb24oZSx0W2VdKTtyZXR1cm4gdGhpc30sX3NldE9wdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiJjbGFzc2VzIj09PXQmJnRoaXMuX3NldE9wdGlvbkNsYXNzZXMoZSksdGhpcy5vcHRpb25zW3RdPWUsImRpc2FibGVkIj09PXQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKGUpLHRoaXN9LF9zZXRPcHRpb25DbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciBuLGkscjtmb3IobiBpbiBlKXI9dGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cFtuXSxlW25dIT09dGhpcy5vcHRpb25zLmNsYXNzZXNbbl0mJnImJnIubGVuZ3RoJiYoaT10KHIuZ2V0KCkpLHRoaXMuX3JlbW92ZUNsYXNzKHIsbiksaS5hZGRDbGFzcyh0aGlzLl9jbGFzc2VzKHtlbGVtZW50Omksa2V5czpuLGNsYXNzZXM6ZSxhZGQ6ITB9KSkpfSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24odCl7dGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy53aWRnZXQoKSx0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLG51bGwsISF0KSx0JiYodGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5ob3ZlcmFibGUsbnVsbCwidWktc3RhdGUtaG92ZXIiKSx0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmZvY3VzYWJsZSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpKX0sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX2NsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIG49W10saT10aGlzO2Z1bmN0aW9uIHIocixvKXt2YXIgcyxhO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspcz1pLmNsYXNzZXNFbGVtZW50TG9va3VwW3JbYV1dfHx0KCkscz1lLmFkZD90KHQudW5pcXVlKHMuZ2V0KCkuY29uY2F0KGUuZWxlbWVudC5nZXQoKSkpKTp0KHMubm90KGUuZWxlbWVudCkuZ2V0KCkpLGkuY2xhc3Nlc0VsZW1lbnRMb29rdXBbclthXV09cyxuLnB1c2goclthXSksbyYmZS5jbGFzc2VzW3JbYV1dJiZuLnB1c2goZS5jbGFzc2VzW3JbYV1dKX1yZXR1cm4gZT10LmV4dGVuZCh7ZWxlbWVudDp0aGlzLmVsZW1lbnQsY2xhc3Nlczp0aGlzLm9wdGlvbnMuY2xhc3Nlc3x8e319LGUpLHRoaXMuX29uKGUuZWxlbWVudCx7cmVtb3ZlOiJfdW50cmFja0NsYXNzZXNFbGVtZW50In0pLGUua2V5cyYmcihlLmtleXMubWF0Y2goL1xTKy9nKXx8W10sITApLGUuZXh0cmEmJnIoZS5leHRyYS5tYXRjaCgvXFMrL2cpfHxbXSksbi5qb2luKCIgIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LmVhY2gobi5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihpLHIpey0xIT09dC5pbkFycmF5KGUudGFyZ2V0LHIpJiYobi5jbGFzc2VzRWxlbWVudExvb2t1cFtpXT10KHIubm90KGUudGFyZ2V0KS5nZXQoKSkpfSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKHQsZSxuLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3ModCxlLG4sITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCxlLG4saSl7aT0iYm9vbGVhbiI9PXR5cGVvZiBpP2k6bjt2YXIgcj0ic3RyaW5nIj09dHlwZW9mIHR8fG51bGw9PT10LG89e2V4dHJhOnI/ZTpuLGtleXM6cj90OmUsZWxlbWVudDpyP3RoaXMuZWxlbWVudDp0LGFkZDppfTtyZXR1cm4gby5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXMobyksaSksdGhpc30sX29uOmZ1bmN0aW9uKGUsbixpKXt2YXIgcixvPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgZSYmKGk9bixuPWUsZT0hMSksaT8obj1yPXQobiksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChuKSk6KGk9bixuPXRoaXMuZWxlbWVudCxyPXRoaXMud2lkZ2V0KCkpLHQuZWFjaChpLGZ1bmN0aW9uKGkscyl7ZnVuY3Rpb24gYSgpe2lmKGV8fCEwIT09by5vcHRpb25zLmRpc2FibGVkJiYhdCh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKSlyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBzP29bc106cykuYXBwbHkobyxhcmd1bWVudHMpfSJzdHJpbmciIT10eXBlb2YgcyYmKGEuZ3VpZD1zLmd1aWQ9cy5ndWlkfHxhLmd1aWR8fHQuZ3VpZCsrKTt2YXIgdT1pLm1hdGNoKC9eKFtcdzotXSopXHMqKC4qKSQvKSxjPXVbMV0rby5ldmVudE5hbWVzcGFjZSxoPXVbMl07aD9yLm9uKGMsaCxhKTpuLm9uKGMsYSl9KX0sX29mZjpmdW5jdGlvbihlLG4pe249KG58fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsZS5vZmYobikub2ZmKG4pLHRoaXMuYmluZGluZ3M9dCh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dCh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXQodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIHQ/blt0XTp0KS5hcHBseShuLGFyZ3VtZW50cyl9LGV8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHQoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh0KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSxuLGkpe3ZhciByLG8scz10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwobj10LkV2ZW50KG4pKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSxuLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbz1uLm9yaWdpbmFsRXZlbnQpZm9yKHIgaW4gbylyIGluIG58fChuW3JdPW9bcl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihuLGkpLCEodC5pc0Z1bmN0aW9uKHMpJiYhMT09PXMuYXBwbHkodGhpcy5lbGVtZW50WzBdLFtuXS5jb25jYXQoaSkpfHxuLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LHQuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24oZSxuKXt0LldpZGdldC5wcm90b3R5cGVbIl8iK2VdPWZ1bmN0aW9uKGkscixvKXt2YXIgczsic3RyaW5nIj09dHlwZW9mIHImJihyPXtlZmZlY3Q6cn0pO3ZhciBhPXI/ITA9PT1yfHwibnVtYmVyIj09dHlwZW9mIHI/bjpyLmVmZmVjdHx8bjplOyJudW1iZXIiPT10eXBlb2Yocj1yfHx7fSkmJihyPXtkdXJhdGlvbjpyfSkscz0hdC5pc0VtcHR5T2JqZWN0KHIpLHIuY29tcGxldGU9byxyLmRlbGF5JiZpLmRlbGF5KHIuZGVsYXkpLHMmJnQuZWZmZWN0cyYmdC5lZmZlY3RzLmVmZmVjdFthXT9pW2VdKHIpOmEhPT1lJiZpW2FdP2lbYV0oci5kdXJhdGlvbixyLmVhc2luZyxvKTppLnF1ZXVlKGZ1bmN0aW9uKG4pe3QodGhpcylbZV0oKSxvJiZvLmNhbGwoaVswXSksbigpfSl9fSksdC53aWRnZXR9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciBpPWZ1bmN0aW9uKHQsZSl7aWYoKG49KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBuLGk9dC5zbGljZSgwLG4pO3JldHVybltpLmxlbmd0aD4xP2lbMF0raS5zbGljZSgyKTppLCt0LnNsaWNlKG4rMSldfSxyPWZ1bmN0aW9uKHQpe3JldHVybih0PWkoTWF0aC5hYnModCkpKT90WzFdOk5hTn0sbz0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBzKHQpe3JldHVybiBuZXcgYSh0KX1mdW5jdGlvbiBhKHQpe2lmKCEoZT1vLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7dGhpcy5maWxsPWVbMV18fCIgIix0aGlzLmFsaWduPWVbMl18fCI+Iix0aGlzLnNpZ249ZVszXXx8Ii0iLHRoaXMuc3ltYm9sPWVbNF18fCIiLHRoaXMuemVybz0hIWVbNV0sdGhpcy53aWR0aD1lWzZdJiYrZVs2XSx0aGlzLmNvbW1hPSEhZVs3XSx0aGlzLnByZWNpc2lvbj1lWzhdJiYrZVs4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFlWzldLHRoaXMudHlwZT1lWzEwXXx8IiJ9cy5wcm90b3R5cGU9YS5wcm90b3R5cGUsYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsobnVsbD09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKG51bGw9PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgdSxjLGgsbCxkPWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBlLG49dC5sZW5ndGgsaT0xLHI9LTE7aTxuOysraSlzd2l0Y2godFtpXSl7Y2FzZSIuIjpyPWU9aTticmVhaztjYXNlIjAiOjA9PT1yJiYocj1pKSxlPWk7YnJlYWs7ZGVmYXVsdDppZihyPjApe2lmKCErdFtpXSlicmVhayB0O3I9MH19cmV0dXJuIHI+MD90LnNsaWNlKDAscikrdC5zbGljZShlKzEpOnR9LGY9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKHQsZSk7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIHI9blswXSxvPW5bMV07cmV0dXJuIG88MD8iMC4iK25ldyBBcnJheSgtbykuam9pbigiMCIpK3I6ci5sZW5ndGg+bysxP3Iuc2xpY2UoMCxvKzEpKyIuIityLnNsaWNlKG8rMSk6cituZXcgQXJyYXkoby1yLmxlbmd0aCsyKS5qb2luKCIwIil9LHA9eyIlIjpmdW5jdGlvbih0LGUpe3JldHVybigxMDAqdCkudG9GaXhlZChlKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCsiIn0sZDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKGUpfSxmOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9GaXhlZChlKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYoMTAwKnQsZSl9LHI6ZixzOmZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0LGUpO2lmKCFuKXJldHVybiB0KyIiO3ZhciByPW5bMF0sbz1uWzFdLHM9by0odT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihvLzMpKSkpKzEsYT1yLmxlbmd0aDtyZXR1cm4gcz09PWE/cjpzPmE/cituZXcgQXJyYXkocy1hKzEpLmpvaW4oIjAiKTpzPjA/ci5zbGljZSgwLHMpKyIuIityLnNsaWNlKHMpOiIwLiIrbmV3IEFycmF5KDEtcykuam9pbigiMCIpK2kodCxNYXRoLm1heCgwLGUrcy0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX0sbT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZz1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIsK1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0sdj1mdW5jdGlvbih0KXt2YXIgZSxuLGk9dC5ncm91cGluZyYmdC50aG91c2FuZHM/KGU9dC5ncm91cGluZyxuPXQudGhvdXNhbmRzLGZ1bmN0aW9uKHQsaSl7Zm9yKHZhciByPXQubGVuZ3RoLG89W10scz0wLGE9ZVswXSx1PTA7cj4wJiZhPjAmJih1K2ErMT5pJiYoYT1NYXRoLm1heCgxLGktdSkpLG8ucHVzaCh0LnN1YnN0cmluZyhyLT1hLHIrYSkpLCEoKHUrPWErMSk+aSkpOylhPWVbcz0ocysxKSVlLmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4obil9KTptLG89dC5jdXJyZW5jeSxhPXQuZGVjaW1hbCxjPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24oZSl7cmV0dXJuIHRbK2VdfSl9fSh0Lm51bWVyYWxzKTptLGg9dC5wZXJjZW50fHwiJSI7ZnVuY3Rpb24gbCh0KXt2YXIgZT0odD1zKHQpKS5maWxsLG49dC5hbGlnbixyPXQuc2lnbixsPXQuc3ltYm9sLGY9dC56ZXJvLG09dC53aWR0aCx2PXQuY29tbWEsYj10LnByZWNpc2lvbix5PXQudHJpbSxfPXQudHlwZTsibiI9PT1fPyh2PSEwLF89ImciKTpwW19dfHwobnVsbD09YiYmKGI9MTIpLHk9ITAsXz0iZyIpLChmfHwiMCI9PT1lJiYiPSI9PT1uKSYmKGY9ITAsZT0iMCIsbj0iPSIpO3ZhciB3PSIkIj09PWw/b1swXToiIyI9PT1sJiYvW2JveFhdLy50ZXN0KF8pPyIwIitfLnRvTG93ZXJDYXNlKCk6IiIseD0iJCI9PT1sP29bMV06L1slcF0vLnRlc3QoXyk/aDoiIixNPXBbX10sUz0vW2RlZmdwcnMlXS8udGVzdChfKTtmdW5jdGlvbiBFKHQpe3ZhciBvLHMsaCxsPXcscD14O2lmKCJjIj09PV8pcD1NKHQpK3AsdD0iIjtlbHNle3ZhciBFPSh0PSt0KTwwO2lmKHQ9TShNYXRoLmFicyh0KSxiKSx5JiYodD1kKHQpKSxFJiYwPT0rdCYmKEU9ITEpLGw9KEU/IigiPT09cj9yOiItIjoiLSI9PT1yfHwiKCI9PT1yPyIiOnIpK2wscD0oInMiPT09Xz9nWzgrdS8zXToiIikrcCsoRSYmIigiPT09cj8iKSI6IiIpLFMpZm9yKG89LTEscz10Lmxlbmd0aDsrK288czspaWYoNDg+KGg9dC5jaGFyQ29kZUF0KG8pKXx8aD41Nyl7cD0oNDY9PT1oP2ErdC5zbGljZShvKzEpOnQuc2xpY2UobykpK3AsdD10LnNsaWNlKDAsbyk7YnJlYWt9fXYmJiFmJiYodD1pKHQsMS8wKSk7dmFyIEE9bC5sZW5ndGgrdC5sZW5ndGgrcC5sZW5ndGgsQz1BPG0/bmV3IEFycmF5KG0tQSsxKS5qb2luKGUpOiIiO3N3aXRjaCh2JiZmJiYodD1pKEMrdCxDLmxlbmd0aD9tLXAubGVuZ3RoOjEvMCksQz0iIiksbil7Y2FzZSI8Ijp0PWwrdCtwK0M7YnJlYWs7Y2FzZSI9Ijp0PWwrQyt0K3A7YnJlYWs7Y2FzZSJeIjp0PUMuc2xpY2UoMCxBPUMubGVuZ3RoPj4xKStsK3QrcCtDLnNsaWNlKEEpO2JyZWFrO2RlZmF1bHQ6dD1DK2wrdCtwfXJldHVybiBjKHQpfXJldHVybiBiPW51bGw9PWI/NjovW2dwcnNdLy50ZXN0KF8pP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpLEUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sRX1yZXR1cm57Zm9ybWF0OmwsZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIG49bCgoKHQ9cyh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IocihlKS8zKSkpLG89TWF0aC5wb3coMTAsLWkpLGE9Z1s4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKG8qdCkrYX19fX07ZnVuY3Rpb24gYih0KXtyZXR1cm4gYz12KHQpLGg9Yy5mb3JtYXQsbD1jLmZvcm1hdFByZWZpeCxjfWIoe2RlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7dmFyIHk9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDAsLXIoTWF0aC5hYnModCkpKX0sXz1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIoZSkvMykpKS1yKE1hdGguYWJzKHQpKSl9LHc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxyKGUpLXIodCkpKzF9O24uZChlLCJmb3JtYXREZWZhdWx0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiBifSksbi5kKGUsImZvcm1hdCIsZnVuY3Rpb24oKXtyZXR1cm4gaH0pLG4uZChlLCJmb3JtYXRQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KSxuLmQoZSwiZm9ybWF0TG9jYWxlIixmdW5jdGlvbigpe3JldHVybiB2fSksbi5kKGUsImZvcm1hdFNwZWNpZmllciIsZnVuY3Rpb24oKXtyZXR1cm4gc30pLG4uZChlLCJwcmVjaXNpb25GaXhlZCIsZnVuY3Rpb24oKXtyZXR1cm4geX0pLG4uZChlLCJwcmVjaXNpb25QcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIF99KSxuLmQoZSwicHJlY2lzaW9uUm91bmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHd9KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Zm9yKHZhciBpPW4oOCkscj1uKDMzOCksbz1uKDM2MCkscz17fSxhPTAsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKTthPHUubGVuZ3RoO2ErKyl7dmFyIGM9dVthXTsoYy5lbmRzV2l0aCgiTW9kZWwiKXx8Yy5lbmRzV2l0aCgiVmlldyIpKSYmKHNbY109aVtjXSl9Zm9yKHZhciBoPTAsbD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyKTtoPGwubGVuZ3RoO2grKyl7dmFyIGQ9bFtoXTsoZC5lbmRzV2l0aCgiTW9kZWwiKXx8ZC5lbmRzV2l0aCgiVmlldyIpKSYmKHNbZF09cltkXSl9Zm9yKHZhciBmPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvKTtmPHAubGVuZ3RoO2YrKyl7dmFyIG09cFtmXTsobS5lbmRzV2l0aCgiTW9kZWwiKXx8bS5lbmRzV2l0aCgiVmlldyIpKSYmKHNbbV09b1ttXSl9ZS5kZWZhdWx0PXN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fSxyPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDI1KSxhPW4oNzQpLHU9YS5QUk9UT0NPTF9WRVJTSU9OLnNwbGl0KCIuIiwxKVswXSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuY29tbV90YXJnZXRfbmFtZT0ianVweXRlci53aWRnZXQiLHRoaXMuX21vZGVscz1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiB0LnByb3RvdHlwZS5kaXNwbGF5X21vZGVsPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzO3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksdGhpcy5jcmVhdGVfdmlldyhlLG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGlzcGxheV92aWV3KHQsZSxuKX0pLmNhdGNoKHMucmVqZWN0KCJDb3VsZCBub3QgY3JlYXRlIHZpZXciLCEwKSl9LHQucHJvdG90eXBlLnNldFZpZXdPcHRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD17fSksdH0sdC5wcm90b3R5cGUuY3JlYXRlX3ZpZXc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgaT10LnN0YXRlX2NoYW5nZT10LnN0YXRlX2NoYW5nZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ubG9hZENsYXNzKHQuZ2V0KCJfdmlld19uYW1lIiksdC5nZXQoIl92aWV3X21vZHVsZSIpLHQuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpKS50aGVuKGZ1bmN0aW9uKGkpe3ZhciByPW5ldyBpKHttb2RlbDp0LG9wdGlvbnM6bi5zZXRWaWV3T3B0aW9ucyhlKX0pO3JldHVybiByLmxpc3RlblRvKHQsImRlc3Ryb3kiLHIucmVtb3ZlKSxQcm9taXNlLnJlc29sdmUoci5yZW5kZXIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiByfSl9KS5jYXRjaChzLnJlamVjdCgiQ291bGQgbm90IGNyZWF0ZSBhIHZpZXcgZm9yIG1vZGVsIGlkICIrdC5tb2RlbF9pZCwhMCkpfSkscj1zLnV1aWQoKTtyZXR1cm4gdC52aWV3c1tyXT1pLGkudGhlbihmdW5jdGlvbih0KXt0Lm9uY2UoInJlbW92ZSIsZnVuY3Rpb24oKXtkZWxldGUgdC5tb2RlbC52aWV3c1tyXX0sbil9KSx0LnN0YXRlX2NoYW5nZX0sdC5wcm90b3R5cGUuY2FsbGJhY2tzPWZ1bmN0aW9uKHQpe3JldHVybnt9fSx0LnByb3RvdHlwZS5nZXRfbW9kZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21vZGVsc1t0XX0sdC5wcm90b3R5cGUuaGFuZGxlX2NvbW1fb3Blbj1mdW5jdGlvbih0LGUpe3ZhciBuPShlLm1ldGFkYXRhfHx7fSkudmVyc2lvbnx8IiI7aWYobi5zcGxpdCgiLiIsMSlbMF0hPT11KXt2YXIgaT0iV3Jvbmcgd2lkZ2V0IHByb3RvY29sIHZlcnNpb246IHJlY2VpdmVkIHByb3RvY29sIHZlcnNpb24gJyIrbisiJywgYnV0IHdhcyBleHBlY3RpbmcgbWFqb3IgdmVyc2lvbiAnIit1KyInIjtyZXR1cm4gY29uc29sZS5lcnJvcihpKSxQcm9taXNlLnJlamVjdChpKX12YXIgcj1lLmNvbnRlbnQuZGF0YSxvPXIuYnVmZmVyX3BhdGhzfHxbXSxhPShlLmJ1ZmZlcnN8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRhVmlldz90Om5ldyBEYXRhVmlldyh0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/dDp0LmJ1ZmZlcil9KTtyZXR1cm4gcy5wdXRfYnVmZmVycyhyLnN0YXRlLG8sYSksdGhpcy5uZXdfbW9kZWwoe21vZGVsX25hbWU6ci5zdGF0ZS5fbW9kZWxfbmFtZSxtb2RlbF9tb2R1bGU6ci5zdGF0ZS5fbW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuc3RhdGUuX21vZGVsX21vZHVsZV92ZXJzaW9uLGNvbW06dH0sci5zdGF0ZSkuY2F0Y2gocy5yZWplY3QoIkNvdWxkIG5vdCBjcmVhdGUgYSBtb2RlbC4iLCEwKSl9LHQucHJvdG90eXBlLm5ld193aWRnZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXM7aWYodm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXQudmlld19uYW1lfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlfHx2b2lkIDA9PT10LnZpZXdfbW9kdWxlX3ZlcnNpb24pcmV0dXJuIFByb21pc2UucmVqZWN0KCJuZXdfd2lkZ2V0KC4uLikgbXVzdCBiZSBnaXZlbiB2aWV3IGluZm9ybWF0aW9uIGluIHRoZSBvcHRpb25zLiIpO249dC5jb21tP1Byb21pc2UucmVzb2x2ZSh0LmNvbW0pOnRoaXMuX2NyZWF0ZV9jb21tKHRoaXMuY29tbV90YXJnZXRfbmFtZSx0Lm1vZGVsX2lkLHtzdGF0ZTp7X21vZGVsX21vZHVsZTp0Lm1vZGVsX21vZHVsZSxfbW9kZWxfbW9kdWxlX3ZlcnNpb246dC5tb2RlbF9tb2R1bGVfdmVyc2lvbixfbW9kZWxfbmFtZTp0Lm1vZGVsX25hbWUsX3ZpZXdfbW9kdWxlOnQudmlld19tb2R1bGUsX3ZpZXdfbW9kdWxlX3ZlcnNpb246dC52aWV3X21vZHVsZV92ZXJzaW9uLF92aWV3X25hbWU6dC52aWV3X25hbWV9fSx7dmVyc2lvbjphLlBST1RPQ09MX1ZFUlNJT059KTt2YXIgbz1pKHt9LHQpO3JldHVybiBuLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG8uY29tbT10LHIubmV3X21vZGVsKG8sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5zeW5jKCJjcmVhdGUiLHQpLHR9KX0sZnVuY3Rpb24oKXtyZXR1cm4gby5tb2RlbF9pZHx8KG8ubW9kZWxfaWQ9cy51dWlkKCkpLHIubmV3X21vZGVsKG8sZSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfbW9kZWw9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuX21vZGVsc1t0XT1lLGUudGhlbihmdW5jdGlvbihlKXtlLm9uY2UoImNvbW06Y2xvc2UiLGZ1bmN0aW9uKCl7ZGVsZXRlIG4uX21vZGVsc1t0XX0pfSl9LHQucHJvdG90eXBlLm5ld19tb2RlbD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkscih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixpO3JldHVybiBvKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDppZih0Lm1vZGVsX2lkKW49dC5tb2RlbF9pZDtlbHNle2lmKCF0LmNvbW0pdGhyb3cgbmV3IEVycm9yKCJOZWl0aGVyIGNvbW0gbm9yIG1vZGVsX2lkIHByb3ZpZGVkIGluIG9wdGlvbnMgb2JqZWN0LiBBdCBsZWFzdCBvbmUgbXVzdCBleGlzdC4iKTtuPXQubW9kZWxfaWQ9dC5jb21tLmNvbW1faWR9cmV0dXJuIGk9dGhpcy5fbWFrZV9tb2RlbCh0LGUpLHRoaXMucmVnaXN0ZXJfbW9kZWwobixpKSxbNCxpXTtjYXNlIDE6cmV0dXJuWzIsci5zZW50KCldfX0pfSl9LHQucHJvdG90eXBlLl9tYWtlX21vZGVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxyKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGkscixzLGEsdSxjO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpuPXQubW9kZWxfaWQsaT10aGlzLmxvYWRDbGFzcyh0Lm1vZGVsX25hbWUsdC5tb2RlbF9tb2R1bGUsdC5tb2RlbF9tb2R1bGVfdmVyc2lvbiksby5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gby50cnlzLnB1c2goWzEsMywsNF0pLFs0LGldO2Nhc2UgMjpyZXR1cm4gcj1vLnNlbnQoKSxbMyw0XTtjYXNlIDM6dGhyb3cgcz1vLnNlbnQoKSxjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgaW5zdGFudGlhdGUgd2lkZ2V0IikscztjYXNlIDQ6aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2RlbCBtb2R1bGUgIit0Lm1vZGVsX21vZHVsZSsiQCIrdC5tb2RlbF9tb2R1bGVfdmVyc2lvbisiLCAiK3QubW9kZWxfbmFtZSk7cmV0dXJuWzQsci5fZGVzZXJpYWxpemVfc3RhdGUoZSx0aGlzKV07Y2FzZSA1OnJldHVybiBhPW8uc2VudCgpLHU9e3dpZGdldF9tYW5hZ2VyOnRoaXMsbW9kZWxfaWQ6bixjb21tOnQuY29tbX0sKGM9bmV3IHIoYSx1KSkubmFtZT10Lm1vZGVsX25hbWUsYy5tb2R1bGU9dC5tb2RlbF9tb2R1bGUsWzIsY119fSl9KX0sdC5wcm90b3R5cGUuY2xlYXJfc3RhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGVbdF0uY2xvc2UoKX0pLHQuX21vZGVscz17fX0pfSx0LnByb3RvdHlwZS5nZXRfc3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxzLnJlc29sdmVQcm9taXNlc0RpY3QodGhpcy5fbW9kZWxzKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciByPWVbaV0sbz1zLnJlbW92ZV9idWZmZXJzKHIuc2VyaWFsaXplKHIuZ2V0X3N0YXRlKHQuZHJvcF9kZWZhdWx0cykpKSxhPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm57ZGF0YTpzLmJ1ZmZlclRvQmFzZTY0KHQpLHBhdGg6by5idWZmZXJfcGF0aHNbZV0sZW5jb2Rpbmc6ImJhc2U2NCJ9fSk7bltpXT17bW9kZWxfbmFtZTpyLm5hbWUsbW9kZWxfbW9kdWxlOnIubW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOnIuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSxzdGF0ZTpvLnN0YXRlfSxhLmxlbmd0aD4wJiYobltpXS5idWZmZXJzPWEpfSkse3ZlcnNpb25fbWFqb3I6Mix2ZXJzaW9uX21pbm9yOjAsc3RhdGU6bn19KX0sdC5wcm90b3R5cGUuc2V0X3N0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoISh0LnZlcnNpb25fbWFqb3ImJnQudmVyc2lvbl9tYWpvcjw9MikpdGhyb3ciVW5zdXBwb3J0ZWQgd2lkZ2V0IHN0YXRlIGZvcm1hdCI7dmFyIG49dC5zdGF0ZTtyZXR1cm4gdGhpcy5fZ2V0X2NvbW1faW5mbygpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKG4pLm1hcChmdW5jdGlvbihpKXt2YXIgcj17YmFzZTY0OnMuYmFzZTY0VG9CdWZmZXIsaGV4OnMuaGV4VG9CdWZmZXJ9LG89bltpXSxhPW8uc3RhdGU7aWYoby5idWZmZXJzKXt2YXIgdT1vLmJ1ZmZlcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGh9KSxjPW8uYnVmZmVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRhVmlldyhyW3QuZW5jb2RpbmddKHQuZGF0YSkpfSk7cy5wdXRfYnVmZmVycyhvLnN0YXRlLHUsYyl9aWYoZS5fbW9kZWxzW2ldKXJldHVybiBlLl9tb2RlbHNbaV0udGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5fZGVzZXJpYWxpemVfc3RhdGUoYXx8e30sZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRfc3RhdGUoZSksdH0pfSk7dmFyIGg9e21vZGVsX2lkOmksbW9kZWxfbmFtZTpvLm1vZGVsX25hbWUsbW9kZWxfbW9kdWxlOm8ubW9kZWxfbW9kdWxlLG1vZGVsX21vZHVsZV92ZXJzaW9uOm8ubW9kZWxfbW9kdWxlX3ZlcnNpb259O3JldHVybiB0Lmhhc093blByb3BlcnR5KGkpP2UuX2NyZWF0ZV9jb21tKGUuY29tbV90YXJnZXRfbmFtZSxpKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBoLmNvbW09dCxlLm5ld19tb2RlbChoKX0pOmUubmV3X21vZGVsKGgsYSl9KSl9KX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5fbW9kZWxzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuX21vZGVsc1tlXS50aGVuKGZ1bmN0aW9uKHQpe3QuY29tbV9saXZlPSExfSl9KX0sdC5wcm90b3R5cGUucmVzb2x2ZVVybD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpfSx0fSgpO2UuTWFuYWdlckJhc2U9Y30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbnVsbD09PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIG4odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gaSh0LHIpe2lmKHQ9PT1yKXJldHVybiEwO2lmKGUodCl8fGUocikpcmV0dXJuITE7dmFyIG89bih0KSxzPW4ocik7cmV0dXJuIG89PT1zJiYobyYmcz9mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KytuKWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscik6ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4hMDtmb3IodmFyIG4gaW4gdClpZighKG4gaW4gZSkpcmV0dXJuITE7Zm9yKHZhciBuIGluIGUpaWYoIShuIGluIHQpKXJldHVybiExO2Zvcih2YXIgbiBpbiB0KWlmKCFpKHRbbl0sZVtuXSkpcmV0dXJuITE7cmV0dXJuITB9KHQscikpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIGUodCk/dDpuKHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLG49MCxpPXQubGVuZ3RoO248aTsrK24pZVtuXT1yKHRbbl0pO3JldHVybiBlfSh0KTpmdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCllW25dPXIodFtuXSk7cmV0dXJuIGV9KHQpfXQuZW1wdHlPYmplY3Q9T2JqZWN0LmZyZWV6ZSh7fSksdC5lbXB0eUFycmF5PU9iamVjdC5mcmVlemUoW10pLHQuaXNQcmltaXRpdmU9ZSx0LmlzQXJyYXk9bix0LmlzT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiFlKHQpJiYhbih0KX0sdC5kZWVwRXF1YWw9aSx0LmRlZXBDb3B5PXJ9KGUuSlNPTkV4dHx8KGUuSlNPTkV4dD17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLl90eXBlcz1bXSx0aGlzLl92YWx1ZXM9W119cmV0dXJuIHQucHJvdG90eXBlLnR5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3R5cGVzLnNsaWNlKCl9LHQucHJvdG90eXBlLmhhc0RhdGE9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT10aGlzLl90eXBlcy5pbmRleE9mKHQpfSx0LnByb3RvdHlwZS5nZXREYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3R5cGVzLmluZGV4T2YodCk7cmV0dXJuLTEhPT1lP3RoaXMuX3ZhbHVlc1tlXTp2b2lkIDB9LHQucHJvdG90eXBlLnNldERhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLmNsZWFyRGF0YSh0KSx0aGlzLl90eXBlcy5wdXNoKHQpLHRoaXMuX3ZhbHVlcy5wdXNoKGUpfSx0LnByb3RvdHlwZS5jbGVhckRhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdHlwZXMuaW5kZXhPZih0KTstMSE9PWUmJih0aGlzLl90eXBlcy5zcGxpY2UoZSwxKSx0aGlzLl92YWx1ZXMuc3BsaWNlKGUsMSkpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3R5cGVzLmxlbmd0aD0wLHRoaXMuX3ZhbHVlcy5sZW5ndGg9MH0sdH0oKTtlLk1pbWVEYXRhPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dC5fcmVzb2x2ZT1lLHQuX3JlamVjdD1ufSl9cmV0dXJuIHQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCl7KDAsdGhpcy5fcmVzb2x2ZSkodCl9LHQucHJvdG90eXBlLnJlamVjdD1mdW5jdGlvbih0KXsoMCx0aGlzLl9yZWplY3QpKHQpfSx0fSgpO2UuUHJvbWlzZURlbGVnYXRlPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5yYW5kb21CeXRlcz1lLnJuZz1lLnBzZXVkb1JhbmRvbUJ5dGVzPWUucHJuZz1uKDI3KSxlLmNyZWF0ZUhhc2g9ZS5IYXNoPW4oMzEpLGUuY3JlYXRlSG1hYz1lLkhtYWM9big5MSk7dmFyIGk9bigxNjIpLHI9T2JqZWN0LmtleXMoaSksbz1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQocik7ZS5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gb307dmFyIHM9big5NCk7ZS5wYmtkZjI9cy5wYmtkZjIsZS5wYmtkZjJTeW5jPXMucGJrZGYyU3luYzt2YXIgYT1uKDE2NCk7ZS5DaXBoZXI9YS5DaXBoZXIsZS5jcmVhdGVDaXBoZXI9YS5jcmVhdGVDaXBoZXIsZS5DaXBoZXJpdj1hLkNpcGhlcml2LGUuY3JlYXRlQ2lwaGVyaXY9YS5jcmVhdGVDaXBoZXJpdixlLkRlY2lwaGVyPWEuRGVjaXBoZXIsZS5jcmVhdGVEZWNpcGhlcj1hLmNyZWF0ZURlY2lwaGVyLGUuRGVjaXBoZXJpdj1hLkRlY2lwaGVyaXYsZS5jcmVhdGVEZWNpcGhlcml2PWEuY3JlYXRlRGVjaXBoZXJpdixlLmdldENpcGhlcnM9YS5nZXRDaXBoZXJzLGUubGlzdENpcGhlcnM9YS5saXN0Q2lwaGVyczt2YXIgdT1uKDE4MSk7ZS5EaWZmaWVIZWxsbWFuR3JvdXA9dS5EaWZmaWVIZWxsbWFuR3JvdXAsZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9dS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAsZS5nZXREaWZmaWVIZWxsbWFuPXUuZ2V0RGlmZmllSGVsbG1hbixlLmNyZWF0ZURpZmZpZUhlbGxtYW49dS5jcmVhdGVEaWZmaWVIZWxsbWFuLGUuRGlmZmllSGVsbG1hbj11LkRpZmZpZUhlbGxtYW47dmFyIGM9bigxODYpO2UuY3JlYXRlU2lnbj1jLmNyZWF0ZVNpZ24sZS5TaWduPWMuU2lnbixlLmNyZWF0ZVZlcmlmeT1jLmNyZWF0ZVZlcmlmeSxlLlZlcmlmeT1jLlZlcmlmeSxlLmNyZWF0ZUVDREg9bigyMjQpO3ZhciBoPW4oMjI1KTtlLnB1YmxpY0VuY3J5cHQ9aC5wdWJsaWNFbmNyeXB0LGUucHJpdmF0ZUVuY3J5cHQ9aC5wcml2YXRlRW5jcnlwdCxlLnB1YmxpY0RlY3J5cHQ9aC5wdWJsaWNEZWNyeXB0LGUucHJpdmF0ZURlY3J5cHQ9aC5wcml2YXRlRGVjcnlwdDt2YXIgbD1uKDIyOCk7ZS5yYW5kb21GaWxsPWwucmFuZG9tRmlsbCxlLnJhbmRvbUZpbGxTeW5jPWwucmFuZG9tRmlsbFN5bmMsZS5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSxmdW5jdGlvbih0LGUpe2UucmVhZD1mdW5jdGlvbih0LGUsbixpLHIpe3ZhciBvLHMsYT04KnItaS0xLHU9KDE8PGEpLTEsYz11Pj4xLGg9LTcsbD1uP3ItMTowLGQ9bj8tMToxLGY9dFtlK2xdO2ZvcihsKz1kLG89ZiYoMTw8LWgpLTEsZj4+PS1oLGgrPWE7aD4wO289MjU2Km8rdFtlK2xdLGwrPWQsaC09OCk7Zm9yKHM9byYoMTw8LWgpLTEsbz4+PS1oLGgrPWk7aD4wO3M9MjU2KnMrdFtlK2xdLGwrPWQsaC09OCk7aWYoMD09PW8pbz0xLWM7ZWxzZXtpZihvPT09dSlyZXR1cm4gcz9OYU46MS8wKihmPy0xOjEpO3MrPU1hdGgucG93KDIsaSksby09Y31yZXR1cm4oZj8tMToxKSpzKk1hdGgucG93KDIsby1pKX0sZS53cml0ZT1mdW5jdGlvbih0LGUsbixpLHIsbyl7dmFyIHMsYSx1LGM9OCpvLXItMSxoPSgxPDxjKS0xLGw9aD4+MSxkPTIzPT09cj9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsZj1pPzA6by0xLHA9aT8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhhPWlzTmFOKGUpPzE6MCxzPWgpOihzPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKHU9TWF0aC5wb3coMiwtcykpPDEmJihzLS0sdSo9MiksKGUrPXMrbD49MT9kL3U6ZCpNYXRoLnBvdygyLDEtbCkpKnU+PTImJihzKyssdS89MikscytsPj1oPyhhPTAscz1oKTpzK2w+PTE/KGE9KGUqdS0xKSpNYXRoLnBvdygyLHIpLHMrPWwpOihhPWUqTWF0aC5wb3coMixsLTEpKk1hdGgucG93KDIscikscz0wKSk7cj49ODt0W24rZl09MjU1JmEsZis9cCxhLz0yNTYsci09OCk7Zm9yKHM9czw8cnxhLGMrPXI7Yz4wO3RbbitmXT0yNTUmcyxmKz1wLHMvPTI1NixjLT04KTt0W24rZi1wXXw9MTI4Km19fSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEpLkJ1ZmZlcixyPW4oMTQ5KTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0KXt2YXIgZT17ZGF0YTp0LG5leHQ6bnVsbH07dGhpcy5sZW5ndGg+MD90aGlzLnRhaWwubmV4dD1lOnRoaXMuaGVhZD1lLHRoaXMudGFpbD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWUpLHRoaXMuaGVhZD1lLCsrdGhpcy5sZW5ndGh9LHQucHJvdG90eXBlLnNoaWZ0PWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgdD10aGlzLmhlYWQuZGF0YTtyZXR1cm4gMT09PXRoaXMubGVuZ3RoP3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCx0fX0sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH0sdC5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBlPXRoaXMuaGVhZCxuPSIiK2UuZGF0YTtlPWUubmV4dDspbis9dCtlLmRhdGE7cmV0dXJuIG59LHQucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIGkuYWxsb2MoMCk7aWYoMT09PXRoaXMubGVuZ3RoKXJldHVybiB0aGlzLmhlYWQuZGF0YTtmb3IodmFyIGUsbixyLG89aS5hbGxvY1Vuc2FmZSh0Pj4+MCkscz10aGlzLmhlYWQsYT0wO3M7KWU9cy5kYXRhLG49byxyPWEsZS5jb3B5KG4sciksYSs9cy5kYXRhLmxlbmd0aCxzPXMubmV4dDtyZXR1cm4gb30sdH0oKSxyJiZyLmluc3BlY3QmJnIuaW5zcGVjdC5jdXN0b20mJih0LmV4cG9ydHMucHJvdG90eXBlW3IuaW5zcGVjdC5jdXN0b21dPWZ1bmN0aW9uKCl7dmFyIHQ9ci5pbnNwZWN0KHtsZW5ndGg6dGhpcy5sZW5ndGh9KTtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKyIgIit0fSl9LGZ1bmN0aW9uKHQsZSl7fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHQsbil7InVzZSBzdHJpY3QiO2lmKCF0LnNldEltbWVkaWF0ZSl7dmFyIGkscixvLHMsYSx1PTEsYz17fSxoPSExLGw9dC5kb2N1bWVudCxkPU9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO2Q9ZCYmZC5zZXRUaW1lb3V0P2Q6dCwiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKHQucHJvY2Vzcyk/aT1mdW5jdGlvbih0KXtlLm5leHRUaWNrKGZ1bmN0aW9uKCl7cCh0KX0pfTohZnVuY3Rpb24oKXtpZih0LnBvc3RNZXNzYWdlJiYhdC5pbXBvcnRTY3JpcHRzKXt2YXIgZT0hMCxuPXQub25tZXNzYWdlO3JldHVybiB0Lm9ubWVzc2FnZT1mdW5jdGlvbigpe2U9ITF9LHQucG9zdE1lc3NhZ2UoIiIsIioiKSx0Lm9ubWVzc2FnZT1uLGV9fSgpP3QuTWVzc2FnZUNoYW5uZWw/KChvPW5ldyBNZXNzYWdlQ2hhbm5lbCkucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3AodC5kYXRhKX0saT1mdW5jdGlvbih0KXtvLnBvcnQyLnBvc3RNZXNzYWdlKHQpfSk6bCYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBsLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpPyhyPWwuZG9jdW1lbnRFbGVtZW50LGk9ZnVuY3Rpb24odCl7dmFyIGU9bC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3AodCksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxyLnJlbW92ZUNoaWxkKGUpLGU9bnVsbH0sci5hcHBlbmRDaGlsZChlKX0pOmk9ZnVuY3Rpb24odCl7c2V0VGltZW91dChwLDAsdCl9OihzPSJzZXRJbW1lZGlhdGUkIitNYXRoLnJhbmRvbSgpKyIkIixhPWZ1bmN0aW9uKGUpe2Uuc291cmNlPT09dCYmInN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT1lLmRhdGEuaW5kZXhPZihzKSYmcCgrZS5kYXRhLnNsaWNlKHMubGVuZ3RoKSl9LHQuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEsITEpOnQuYXR0YWNoRXZlbnQoIm9ubWVzc2FnZSIsYSksaT1mdW5jdGlvbihlKXt0LnBvc3RNZXNzYWdlKHMrZSwiKiIpfSksZC5zZXRJbW1lZGlhdGU9ZnVuY3Rpb24odCl7ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PW5ldyBGdW5jdGlvbigiIit0KSk7Zm9yKHZhciBlPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49MDtuPGUubGVuZ3RoO24rKyllW25dPWFyZ3VtZW50c1tuKzFdO3ZhciByPXtjYWxsYmFjazp0LGFyZ3M6ZX07cmV0dXJuIGNbdV09cixpKHUpLHUrK30sZC5jbGVhckltbWVkaWF0ZT1mfWZ1bmN0aW9uIGYodCl7ZGVsZXRlIGNbdF19ZnVuY3Rpb24gcCh0KXtpZihoKXNldFRpbWVvdXQocCwwLHQpO2Vsc2V7dmFyIGU9Y1t0XTtpZihlKXtoPSEwO3RyeXshZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxsYmFjayxpPXQuYXJncztzd2l0Y2goaS5sZW5ndGgpe2Nhc2UgMDplKCk7YnJlYWs7Y2FzZSAxOmUoaVswXSk7YnJlYWs7Y2FzZSAyOmUoaVswXSxpWzFdKTticmVhaztjYXNlIDM6ZShpWzBdLGlbMV0saVsyXSk7YnJlYWs7ZGVmYXVsdDplLmFwcGx5KG4saSl9fShlKX1maW5hbGx5e2YodCksaD0hMX19fX19KCJ1bmRlZmluZWQiPT10eXBlb2Ygc2VsZj92b2lkIDA9PT10P3RoaXM6dDpzZWxmKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbih0KXt0cnl7aWYoIWUubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKHQpe3JldHVybiExfXZhciBuPWUubG9jYWxTdG9yYWdlW3RdO3JldHVybiBudWxsIT1uJiYidHJ1ZSI9PT1TdHJpbmcobikudG9Mb3dlckNhc2UoKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKCJub0RlcHJlY2F0aW9uIikpcmV0dXJuIHQ7dmFyIGk9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWkpe2lmKG4oInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoZSk7bigidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoZSk6Y29uc29sZS53YXJuKGUpLGk9ITB9cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KS5jYWxsKHRoaXMsbigxMykpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1vO3ZhciBpPW4oODgpLHI9bigzMik7ZnVuY3Rpb24gbyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBvKSlyZXR1cm4gbmV3IG8odCk7aS5jYWxsKHRoaXMsdCl9ci5pbmhlcml0cz1uKDApLHIuaW5oZXJpdHMobyxpKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXtuKG51bGwsdCl9fSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjIpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oMjQpfSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNjEpLlRyYW5zZm9ybX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDYxKS5QYXNzVGhyb3VnaH0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDI4KSxvPW4oMSkuQnVmZmVyLHM9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxhPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxyLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdDw8MzB8dD4+PjJ9ZnVuY3Rpb24gaCh0LGUsbixpKXtyZXR1cm4gMD09PXQ/ZSZufH5lJmk6Mj09PXQ/ZSZufGUmaXxuJmk6ZV5uXml9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5fdyxpPTB8dGhpcy5fYSxyPTB8dGhpcy5fYixvPTB8dGhpcy5fYyxhPTB8dGhpcy5fZCx1PTB8dGhpcy5fZSxsPTA7bDwxNjsrK2wpbltsXT10LnJlYWRJbnQzMkJFKDQqbCk7Zm9yKDtsPDgwOysrbCluW2xdPW5bbC0zXV5uW2wtOF1ebltsLTE0XV5uW2wtMTZdO2Zvcih2YXIgZD0wO2Q8ODA7KytkKXt2YXIgZj1+fihkLzIwKSxwPTB8KChlPWkpPDw1fGU+Pj4yNykraChmLHIsbyxhKSt1K25bZF0rc1tmXTt1PWEsYT1vLG89YyhyKSxyPWksaT1wfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oMjgpLG89bigxKS5CdWZmZXIscz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLGE9bmV3IEFycmF5KDgwKTtmdW5jdGlvbiB1KCl7dGhpcy5pbml0KCksdGhpcy5fdz1hLHIuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBjKHQpe3JldHVybiB0PDw1fHQ+Pj4yN31mdW5jdGlvbiBoKHQpe3JldHVybiB0PDwzMHx0Pj4+Mn1mdW5jdGlvbiBsKHQsZSxuLGkpe3JldHVybiAwPT09dD9lJm58fmUmaToyPT09dD9lJm58ZSZpfG4maTplXm5eaX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sdS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLl93LGk9MHx0aGlzLl9hLHI9MHx0aGlzLl9iLG89MHx0aGlzLl9jLGE9MHx0aGlzLl9kLHU9MHx0aGlzLl9lLGQ9MDtkPDE2OysrZCluW2RdPXQucmVhZEludDMyQkUoNCpkKTtmb3IoO2Q8ODA7KytkKW5bZF09KGU9bltkLTNdXm5bZC04XV5uW2QtMTRdXm5bZC0xNl0pPDwxfGU+Pj4zMTtmb3IodmFyIGY9MDtmPDgwOysrZil7dmFyIHA9fn4oZi8yMCksbT1jKGkpK2wocCxyLG8sYSkrdStuW2ZdK3NbcF18MDt1PWEsYT1vLG89aChyKSxyPWksaT1tfXRoaXMuX2E9aSt0aGlzLl9hfDAsdGhpcy5fYj1yK3RoaXMuX2J8MCx0aGlzLl9jPW8rdGhpcy5fY3wwLHRoaXMuX2Q9YSt0aGlzLl9kfDAsdGhpcy5fZT11K3RoaXMuX2V8MH0sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1vLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gdC53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHQud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSx0LndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHR9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKSxyPW4oODkpLG89bigyOCkscz1uKDEpLkJ1ZmZlcixhPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcyw2NCw1Nil9aSh1LHIpLHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0zMjM4MzcxMDMyLHRoaXMuX2I9OTE0MTUwNjYzLHRoaXMuX2M9ODEyNzAyOTk5LHRoaXMuX2Q9NDE0NDkxMjY5Nyx0aGlzLl9lPTQyOTA3NzU4NTcsdGhpcy5fZj0xNzUwNjAzMDI1LHRoaXMuX2c9MTY5NDA3NjgzOSx0aGlzLl9oPTMyMDQwNzU0MjgsdGhpc30sdS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdD1zLmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gdC53cml0ZUludDMyQkUodGhpcy5fYSwwKSx0LndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHQud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksdC53cml0ZUludDMyQkUodGhpcy5fZCwxMiksdC53cml0ZUludDMyQkUodGhpcy5fZSwxNiksdC53cml0ZUludDMyQkUodGhpcy5fZiwyMCksdC53cml0ZUludDMyQkUodGhpcy5fZywyNCksdH0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big5MCksbz1uKDI4KSxzPW4oMSkuQnVmZmVyLGE9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9YSxvLmNhbGwodGhpcywxMjgsMTEyKX1pKHUsciksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHQ9cy5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gZShlLG4saSl7dC53cml0ZUludDMyQkUoZSxpKSx0LndyaXRlSW50MzJCRShuLGkrNCl9cmV0dXJuIGUodGhpcy5fYWgsdGhpcy5fYWwsMCksZSh0aGlzLl9iaCx0aGlzLl9ibCw4KSxlKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxlKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxlKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxlKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSx0fSx0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDApLHI9bigxKS5CdWZmZXIsbz1uKDIxKSxzPXIuYWxsb2MoMTI4KSxhPTY0O2Z1bmN0aW9uIHUodCxlKXtvLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLHRoaXMuX2FsZz10LHRoaXMuX2tleT1lLGUubGVuZ3RoPmE/ZT10KGUpOmUubGVuZ3RoPGEmJihlPXIuY29uY2F0KFtlLHNdLGEpKTtmb3IodmFyIG49dGhpcy5faXBhZD1yLmFsbG9jVW5zYWZlKGEpLGk9dGhpcy5fb3BhZD1yLmFsbG9jVW5zYWZlKGEpLHU9MDt1PGE7dSsrKW5bdV09NTReZVt1XSxpW3VdPTkyXmVbdV07dGhpcy5faGFzaD1bbl19aSh1LG8pLHUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5faGFzaC5wdXNoKHQpfSx1LnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hbGcoci5jb25jYXQodGhpcy5faGFzaCkpO3JldHVybiB0aGlzLl9hbGcoci5jb25jYXQoW3RoaXMuX29wYWQsdF0pKX0sdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9big5Myl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSxpKXt2YXIgcixvPW4oOTUpLHM9big5NiksYT1uKDk3KSx1PW4oMSkuQnVmZmVyLGM9ZS5jcnlwdG8mJmUuY3J5cHRvLnN1YnRsZSxoPXtzaGE6IlNIQS0xIiwic2hhLTEiOiJTSEEtMSIsc2hhMToiU0hBLTEiLHNoYTI1NjoiU0hBLTI1NiIsInNoYS0yNTYiOiJTSEEtMjU2IixzaGEzODQ6IlNIQS0zODQiLCJzaGEtMzg0IjoiU0hBLTM4NCIsInNoYS01MTIiOiJTSEEtNTEyIixzaGE1MTI6IlNIQS01MTIifSxsPVtdO2Z1bmN0aW9uIGQodCxlLG4saSxyKXtyZXR1cm4gYy5pbXBvcnRLZXkoInJhdyIsdCx7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGMuZGVyaXZlQml0cyh7bmFtZToiUEJLREYyIixzYWx0OmUsaXRlcmF0aW9uczpuLGhhc2g6e25hbWU6cn19LHQsaTw8Myl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB1LmZyb20odCl9KX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGYscCxtLGcpeyJmdW5jdGlvbiI9PXR5cGVvZiBtJiYoZz1tLG09dm9pZCAwKTt2YXIgdj1oWyhtPW18fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoIXZ8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlByb21pc2UpcmV0dXJuIGkubmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgZTt0cnl7ZT1hKHQsbixmLHAsbSl9Y2F0Y2godCl7cmV0dXJuIGcodCl9ZyhudWxsLGUpfSk7aWYobyh0LG4sZixwKSwiZnVuY3Rpb24iIT10eXBlb2YgZyl0aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpO3UuaXNCdWZmZXIodCl8fCh0PXUuZnJvbSh0LHMpKSx1LmlzQnVmZmVyKG4pfHwobj11LmZyb20obixzKSksZnVuY3Rpb24odCxlKXt0LnRoZW4oZnVuY3Rpb24odCl7aS5uZXh0VGljayhmdW5jdGlvbigpe2UobnVsbCx0KX0pfSxmdW5jdGlvbih0KXtpLm5leHRUaWNrKGZ1bmN0aW9uKCl7ZSh0KX0pfSl9KGZ1bmN0aW9uKHQpe2lmKGUucHJvY2VzcyYmIWUucHJvY2Vzcy5icm93c2VyKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKCFjfHwhYy5pbXBvcnRLZXl8fCFjLmRlcml2ZUJpdHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYodm9pZCAwIT09bFt0XSlyZXR1cm4gbFt0XTt2YXIgbj1kKHI9cnx8dS5hbGxvYyg4KSxyLDEwLDEyOCx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGxbdF09bixufSh2KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlP2QodCxuLGYscCx2KTphKHQsbixmLHAsbSl9KSxnKX19KS5jYWxsKHRoaXMsbigxMyksbigyMCkpfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxNjUpLHI9big2Nyksbz1uKDY4KSxzPW4oMTgwKSxhPW4oNDYpO2Z1bmN0aW9uIHUodCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlQ2lwaGVyaXYodCxlLG4pO2lmKHNbdF0pcmV0dXJuIG5ldyBpKHtrZXk6ZSxpdjpuLG1vZGU6dH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGModCxlLG4pe2lmKHQ9dC50b0xvd2VyQ2FzZSgpLG9bdF0pcmV0dXJuIHIuY3JlYXRlRGVjaXBoZXJpdih0LGUsbik7aWYoc1t0XSlyZXR1cm4gbmV3IGkoe2tleTplLGl2Om4sbW9kZTp0LGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1lLmNyZWF0ZUNpcGhlcj1lLkNpcGhlcj1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYodD10LnRvTG93ZXJDYXNlKCksb1t0XSluPW9bdF0ua2V5LGk9b1t0XS5pdjtlbHNle2lmKCFzW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO249OCpzW3RdLmtleSxpPXNbdF0uaXZ9dmFyIHI9YShlLCExLG4saSk7cmV0dXJuIHUodCxyLmtleSxyLml2KX0sZS5jcmVhdGVDaXBoZXJpdj1lLkNpcGhlcml2PXUsZS5jcmVhdGVEZWNpcGhlcj1lLkRlY2lwaGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZih0PXQudG9Mb3dlckNhc2UoKSxvW3RdKW49b1t0XS5rZXksaT1vW3RdLml2O2Vsc2V7aWYoIXNbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7bj04KnNbdF0ua2V5LGk9c1t0XS5pdn12YXIgcj1hKGUsITEsbixpKTtyZXR1cm4gYyh0LHIua2V5LHIuaXYpfSxlLmNyZWF0ZURlY2lwaGVyaXY9ZS5EZWNpcGhlcml2PWMsZS5saXN0Q2lwaGVycz1lLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMocykuY29uY2F0KHIuZ2V0Q2lwaGVycygpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIxKSxyPW4oNjYpLG89bigwKSxzPW4oMSkuQnVmZmVyLGE9eyJkZXMtZWRlMy1jYmMiOnIuQ0JDLmluc3RhbnRpYXRlKHIuRURFKSwiZGVzLWVkZTMiOnIuRURFLCJkZXMtZWRlLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5FREUpLCJkZXMtZWRlIjpyLkVERSwiZGVzLWNiYyI6ci5DQkMuaW5zdGFudGlhdGUoci5ERVMpLCJkZXMtZWNiIjpyLkRFU307ZnVuY3Rpb24gdSh0KXtpLmNhbGwodGhpcyk7dmFyIGUsbj10Lm1vZGUudG9Mb3dlckNhc2UoKSxyPWFbbl07ZT10LmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgbz10LmtleTtzLmlzQnVmZmVyKG8pfHwobz1zLmZyb20obykpLCJkZXMtZWRlIiE9PW4mJiJkZXMtZWRlLWNiYyIhPT1ufHwobz1zLmNvbmNhdChbbyxvLnNsaWNlKDAsOCldKSk7dmFyIHU9dC5pdjtzLmlzQnVmZmVyKHUpfHwodT1zLmZyb20odSkpLHRoaXMuX2Rlcz1yLmNyZWF0ZSh7a2V5Om8saXY6dSx0eXBlOmV9KX1hLmRlcz1hWyJkZXMtY2JjIl0sYS5kZXMzPWFbImRlcy1lZGUzLWNiYyJdLHQuZXhwb3J0cz11LG8odSxpKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLnVwZGF0ZSh0KSl9LHUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBzLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybih0WzArZV08PDI0fHRbMStlXTw8MTZ8dFsyK2VdPDw4fHRbMytlXSk+Pj4wfSxlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLG4pe3RbMCtuXT1lPj4+MjQsdFsxK25dPWU+Pj4xNiYyNTUsdFsyK25dPWU+Pj44JjI1NSx0WzMrbl09MjU1JmV9LGUuaXA9ZnVuY3Rpb24odCxlLG4saSl7Zm9yKHZhciByPTAsbz0wLHM9NjtzPj0wO3MtPTIpe2Zvcih2YXIgYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj4+YStzJjF9Zm9yKHM9NjtzPj0wO3MtPTIpe2ZvcihhPTE7YTw9MjU7YSs9OClvPDw9MSxvfD1lPj4+YStzJjE7Zm9yKGE9MTthPD0yNTthKz04KW88PD0xLG98PXQ+Pj5hK3MmMX1uW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnJpcD1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz0wO3M8NDtzKyspZm9yKHZhciBhPTI0O2E+PTA7YS09OClyPDw9MSxyfD1lPj4+YStzJjEscjw8PTEscnw9dD4+PmErcyYxO2ZvcihzPTQ7czw4O3MrKylmb3IoYT0yNDthPj0wO2EtPTgpbzw8PTEsb3w9ZT4+PmErcyYxLG88PD0xLG98PXQ+Pj5hK3MmMTtuW2krMF09cj4+PjAsbltpKzFdPW8+Pj4wfSxlLnBjMT1mdW5jdGlvbih0LGUsbixpKXtmb3IodmFyIHI9MCxvPTAscz03O3M+PTU7cy0tKXtmb3IodmFyIGE9MDthPD0yNDthKz04KXI8PD0xLHJ8PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClyPDw9MSxyfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpcjw8PTEscnw9ZT4+YStzJjE7Zm9yKHM9MTtzPD0zO3MrKyl7Zm9yKGE9MDthPD0yNDthKz04KW88PD0xLG98PWU+PmErcyYxO2ZvcihhPTA7YTw9MjQ7YSs9OClvPDw9MSxvfD10Pj5hK3MmMX1mb3IoYT0wO2E8PTI0O2ErPTgpbzw8PTEsb3w9dD4+YStzJjE7bltpKzBdPXI+Pj4wLG5baSsxXT1vPj4+MH0sZS5yMjhzaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw8ZSYyNjg0MzU0NTV8dD4+PjI4LWV9O3ZhciBpPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO2UucGMyPWZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgbz0wLHM9MCxhPWkubGVuZ3RoPj4+MSx1PTA7dTxhO3UrKylvPDw9MSxvfD10Pj4+aVt1XSYxO2Zvcih1PWE7dTxpLmxlbmd0aDt1Kyspczw8PTEsc3w9ZT4+PmlbdV0mMTtuW3IrMF09bz4+PjAsbltyKzFdPXM+Pj4wfSxlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9MCxyPTA7aT0oMSZ0KTw8NXx0Pj4+Mjc7Zm9yKHZhciBvPTIzO28+PTE1O28tPTQpaTw8PTYsaXw9dD4+Pm8mNjM7Zm9yKG89MTE7bz49MztvLT00KXJ8PXQ+Pj5vJjYzLHI8PD02O3J8PSgzMSZ0KTw8MXx0Pj4+MzEsZVtuKzBdPWk+Pj4wLGVbbisxXT1yPj4+MH07dmFyIHI9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07ZS5zdWJzdGl0dXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAsaT0wO2k8NDtpKyspe248PD00LG58PXJbNjQqaSsodD4+PjE4LTYqaSY2MyldfWZvcihpPTA7aTw0O2krKyl7bjw8PTQsbnw9clsyNTYrNjQqaSsoZT4+PjE4LTYqaSY2MyldfXJldHVybiBuPj4+MH07dmFyIG89WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO2UucGVybXV0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTA7bjxvLmxlbmd0aDtuKyspZTw8PTEsZXw9dD4+Pm9bbl0mMTtyZXR1cm4gZT4+PjB9LGUucGFkU3BsaXQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT10LnRvU3RyaW5nKDIpO2kubGVuZ3RoPGU7KWk9IjAiK2k7Zm9yKHZhciByPVtdLG89MDtvPGU7bys9bilyLnB1c2goaS5zbGljZShvLG8rbikpO3JldHVybiByLmpvaW4oIiAiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCk7ZnVuY3Rpb24gcih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsdGhpcy5ibG9ja1NpemU9OCx0aGlzLl9pbml0KCksdGhpcy5idWZmZXI9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLmJ1ZmZlck9mZj0wfXQuZXhwb3J0cz1yLHIucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7fSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10Lmxlbmd0aD9bXToiZGVjcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fdXBkYXRlRGVjcnlwdCh0KTp0aGlzLl91cGRhdGVFbmNyeXB0KHQpfSxyLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZix0Lmxlbmd0aC1lKSxpPTA7aTxuO2krKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitpXT10W2UraV07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1uLG59LHIucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LGUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5ibG9ja1NpemV9LHIucHJvdG90eXBlLl91cGRhdGVFbmNyeXB0PWZ1bmN0aW9uKHQpe3ZhciBlPTAsbj0wLGk9KHRoaXMuYnVmZmVyT2ZmK3QubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKGUrPXRoaXMuX2J1ZmZlcih0LGUpLHRoaXMuYnVmZmVyT2ZmPT09dGhpcy5idWZmZXIubGVuZ3RoJiYobis9dGhpcy5fZmx1c2hCdWZmZXIocixuKSkpO2Zvcih2YXIgbz10Lmxlbmd0aC0odC5sZW5ndGgtZSkldGhpcy5ibG9ja1NpemU7ZTxvO2UrPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZSh0LGUscixuKSxuKz10aGlzLmJsb2NrU2l6ZTtmb3IoO2U8dC5sZW5ndGg7ZSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPXRbZV07cmV0dXJuIHJ9LHIucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49MCxpPU1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYrdC5sZW5ndGgpL3RoaXMuYmxvY2tTaXplKS0xLHI9bmV3IEFycmF5KGkqdGhpcy5ibG9ja1NpemUpO2k+MDtpLS0pZSs9dGhpcy5fYnVmZmVyKHQsZSksbis9dGhpcy5fZmx1c2hCdWZmZXIocixuKTtyZXR1cm4gZSs9dGhpcy5fYnVmZmVyKHQsZSkscn0sci5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gdCYmKGU9dGhpcy51cGRhdGUodCkpLG49ImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2ZpbmFsRW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLGU/ZS5jb25jYXQobik6bn0sci5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbih0LGUpe2lmKDA9PT1lKXJldHVybiExO2Zvcig7ZTx0Lmxlbmd0aDspdFtlKytdPTA7cmV0dXJuITB9LHIucHJvdG90eXBlLl9maW5hbEVuY3J5cHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgdD1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCx0LDApLHR9LHIucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbih0KXtyZXR1cm4gdH0sci5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdD1mdW5jdGlvbigpe2kuZXF1YWwodGhpcy5idWZmZXJPZmYsdGhpcy5ibG9ja1NpemUsIk5vdCBlbm91Z2ggZGF0YSB0byBkZWNyeXB0Iik7dmFyIHQ9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fZmx1c2hCdWZmZXIodCwwKSx0aGlzLl91bnBhZCh0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89big2Nikscz1vLnV0aWxzLGE9by5DaXBoZXI7ZnVuY3Rpb24gdSgpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1O3RoaXMuX2Rlc1N0YXRlPWUsdGhpcy5kZXJpdmVLZXlzKGUsdC5rZXkpfXIoYyxhKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9O3ZhciBoPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtjLnByb3RvdHlwZS5kZXJpdmVLZXlzPWZ1bmN0aW9uKHQsZSl7dC5rZXlzPW5ldyBBcnJheSgzMiksaS5lcXVhbChlLmxlbmd0aCx0aGlzLmJsb2NrU2l6ZSwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49cy5yZWFkVUludDMyQkUoZSwwKSxyPXMucmVhZFVJbnQzMkJFKGUsNCk7cy5wYzEobixyLHQudG1wLDApLG49dC50bXBbMF0scj10LnRtcFsxXTtmb3IodmFyIG89MDtvPHQua2V5cy5sZW5ndGg7bys9Mil7dmFyIGE9aFtvPj4+MV07bj1zLnIyOHNobChuLGEpLHI9cy5yMjhzaGwocixhKSxzLnBjMihuLHIsdC5rZXlzLG8pfX0sYy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgcj10aGlzLl9kZXNTdGF0ZSxvPXMucmVhZFVJbnQzMkJFKHQsZSksYT1zLnJlYWRVSW50MzJCRSh0LGUrNCk7cy5pcChvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLCJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9lbmNyeXB0KHIsbyxhLHIudG1wLDApOnRoaXMuX2RlY3J5cHQocixvLGEsci50bXAsMCksbz1yLnRtcFswXSxhPXIudG1wWzFdLHMud3JpdGVVSW50MzJCRShuLG8saSkscy53cml0ZVVJbnQzMkJFKG4sYSxpKzQpfSxjLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLWUsaT1lO2k8dC5sZW5ndGg7aSsrKXRbaV09bjtyZXR1cm4hMH0sYy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10W3QubGVuZ3RoLTFdLG49dC5sZW5ndGgtZTtuPHQubGVuZ3RoO24rKylpLmVxdWFsKHRbbl0sZSk7cmV0dXJuIHQuc2xpY2UoMCx0Lmxlbmd0aC1lKX0sYy5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89ZSxhPW4sdT0wO3U8dC5rZXlzLmxlbmd0aDt1Kz0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChhLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9YTthPShvXnMucGVybXV0ZShsKSk+Pj4wLG89ZH1zLnJpcChhLG8saSxyKX0sYy5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24odCxlLG4saSxyKXtmb3IodmFyIG89bixhPWUsdT10LmtleXMubGVuZ3RoLTI7dT49MDt1LT0yKXt2YXIgYz10LmtleXNbdV0saD10LmtleXNbdSsxXTtzLmV4cGFuZChvLHQudG1wLDApLGNePXQudG1wWzBdLGhePXQudG1wWzFdO3ZhciBsPXMuc3Vic3RpdHV0ZShjLGgpLGQ9bztvPShhXnMucGVybXV0ZShsKSk+Pj4wLGE9ZH1zLnJpcChvLGEsaSxyKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNCkscj1uKDApLG89e307ZnVuY3Rpb24gcyh0KXtpLmVxdWFsKHQubGVuZ3RoLDgsIkludmFsaWQgSVYgbGVuZ3RoIiksdGhpcy5pdj1uZXcgQXJyYXkoOCk7Zm9yKHZhciBlPTA7ZTx0aGlzLml2Lmxlbmd0aDtlKyspdGhpcy5pdltlXT10W2VdfWUuaW5zdGFudGlhdGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlKSx0aGlzLl9jYmNJbml0KCl9cihlLHQpO2Zvcih2YXIgbj1PYmplY3Qua2V5cyhvKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07ZS5wcm90b3R5cGVbc109b1tzXX1yZXR1cm4gZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSxvLl9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHModGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0ZT10fSxvLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fY2JjU3RhdGUsbz10aGlzLmNvbnN0cnVjdG9yLnN1cGVyXy5wcm90b3R5cGUscz1yLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmJsb2NrU2l6ZTthKyspc1thXV49dFtlK2FdO28uX3VwZGF0ZS5jYWxsKHRoaXMscywwLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPW5baSthXX1lbHNle28uX3VwZGF0ZS5jYWxsKHRoaXMsdCxlLG4saSk7Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKyluW2krYV1ePXNbYV07Zm9yKGE9MDthPHRoaXMuYmxvY2tTaXplO2ErKylzW2FdPXRbZSthXX19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMTQpLHI9bigwKSxvPW4oNjYpLHM9by5DaXBoZXIsYT1vLkRFUztmdW5jdGlvbiB1KHQsZSl7aS5lcXVhbChlLmxlbmd0aCwyNCwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIG49ZS5zbGljZSgwLDgpLHI9ZS5zbGljZSg4LDE2KSxvPWUuc2xpY2UoMTYsMjQpO3RoaXMuY2lwaGVycz0iZW5jcnlwdCI9PT10P1thLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om59KSxhLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OnJ9KSxhLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om99KV06W2EuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6b30pLGEuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6cn0pLGEuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6bn0pXX1mdW5jdGlvbiBjKHQpe3MuY2FsbCh0aGlzLHQpO3ZhciBlPW5ldyB1KHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1lfXIoYyxzKSx0LmV4cG9ydHM9YyxjLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGModCl9LGMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5fZWRlU3RhdGU7ci5jaXBoZXJzWzBdLl91cGRhdGUodCxlLG4saSksci5jaXBoZXJzWzFdLl91cGRhdGUobixpLG4saSksci5jaXBoZXJzWzJdLl91cGRhdGUobixpLG4saSl9LGMucHJvdG90eXBlLl9wYWQ9YS5wcm90b3R5cGUuX3BhZCxjLnByb3RvdHlwZS5fdW5wYWQ9YS5wcm90b3R5cGUuX3VucGFkfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big2OCkscj1uKDEwMSksbz1uKDEpLkJ1ZmZlcixzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGQsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PW8uZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9bigwKShoLGEpLGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUsbjt0aGlzLl9jYWNoZS5hZGQodCk7Zm9yKHZhciBpPVtdO2U9dGhpcy5fY2FjaGUuZ2V0KCk7KW49dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiBvLmNvbmNhdChpKX07dmFyIGw9by5hbGxvYygxNiwxNik7ZnVuY3Rpb24gZCgpe3RoaXMuY2FjaGU9by5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBmKHQsZSxuKXt2YXIgYT1pW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1vLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1vLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuKToiYXV0aCI9PT1hLnR5cGU/bmV3IHIoYS5tb2R1bGUsZSxuKTpuZXcgaChhLm1vZHVsZSxlLG4pfWgucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIHQ9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsdCksdGhpcy5fY2lwaGVyLnNjcnViKCksdDtpZighdC5lcXVhbHMobCkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0saC5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhdCx0aGlzfSxkLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5jYWNoZT1vLmNvbmNhdChbdGhpcy5jYWNoZSx0XSl9LGQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgdD10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHR9cmV0dXJuIG51bGx9LGQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTE2LXRoaXMuY2FjaGUubGVuZ3RoLGU9by5hbGxvY1Vuc2FmZSh0KSxuPS0xOysrbjx0OyllLndyaXRlVUludDgodCxuKTtyZXR1cm4gby5jb25jYXQoW3RoaXMuY2FjaGUsZV0pfSxlLmNyZWF0ZUNpcGhlcml2PWYsZS5jcmVhdGVDaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1pW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIHI9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBmKHQsci5rZXksci5pdil9fSxmdW5jdGlvbih0LGUpe2UuZW5jcnlwdD1mdW5jdGlvbih0LGUpe3JldHVybiB0Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKGUpfSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fY2lwaGVyLmRlY3J5cHRCbG9jayhlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDMzKTtlLmVuY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1pKGUsdC5fcHJldik7cmV0dXJuIHQuX3ByZXY9dC5fY2lwaGVyLmVuY3J5cHRCbG9jayhuKSx0Ll9wcmV2fSxlLmRlY3J5cHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Ll9wcmV2O3QuX3ByZXY9ZTt2YXIgcj10Ll9jaXBoZXIuZGVjcnlwdEJsb2NrKGUpO3JldHVybiBpKHIsbil9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxKS5CdWZmZXIscj1uKDMzKTtmdW5jdGlvbiBvKHQsZSxuKXt2YXIgbz1lLmxlbmd0aCxzPXIoZSx0Ll9jYWNoZSk7cmV0dXJuIHQuX2NhY2hlPXQuX2NhY2hlLnNsaWNlKG8pLHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYsbj9lOnNdKSxzfWUuZW5jcnlwdD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByLHM9aS5hbGxvY1Vuc2FmZSgwKTtlLmxlbmd0aDspe2lmKDA9PT10Ll9jYWNoZS5sZW5ndGgmJih0Ll9jYWNoZT10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXY9aS5hbGxvY1Vuc2FmZSgwKSksISh0Ll9jYWNoZS5sZW5ndGg8PWUubGVuZ3RoKSl7cz1pLmNvbmNhdChbcyxvKHQsZSxuKV0pO2JyZWFrfXI9dC5fY2FjaGUubGVuZ3RoLHM9aS5jb25jYXQoW3Msbyh0LGUuc2xpY2UoMCxyKSxuKV0pLGU9ZS5zbGljZShyKX1yZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXt2YXIgcj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpWzBdXmU7cmV0dXJuIHQuX3ByZXY9aS5jb25jYXQoW3QuX3ByZXYuc2xpY2UoMSksaS5mcm9tKFtuP2U6cl0pXSkscn1lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEpLkJ1ZmZlcjtmdW5jdGlvbiByKHQsZSxuKXtmb3IodmFyIGkscixzPS0xLGE9MDsrK3M8ODspaT1lJjE8PDctcz8xMjg6MCxhKz0oMTI4JihyPXQuX2NpcGhlci5lbmNyeXB0QmxvY2sodC5fcHJldilbMF1eaSkpPj5zJTgsdC5fcHJldj1vKHQuX3ByZXYsbj9pOnIpO3JldHVybiBhfWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10Lmxlbmd0aCxyPS0xLG89aS5hbGxvY1Vuc2FmZSh0Lmxlbmd0aCk7Zm9yKHQ9aS5jb25jYXQoW3QsaS5mcm9tKFtlXSldKTsrK3I8bjspb1tyXT10W3JdPDwxfHRbcisxXT4+NztyZXR1cm4gb31lLmVuY3J5cHQ9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgbz1lLmxlbmd0aCxzPWkuYWxsb2NVbnNhZmUobyksYT0tMTsrK2E8bzspc1thXT1yKHQsZVthXSxuKTtyZXR1cm4gc319LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24odCl7dmFyIGk9bigzMyk7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5fcHJldj10Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKHQuX3ByZXYpLHQuX3ByZXZ9ZS5lbmNyeXB0PWZ1bmN0aW9uKGUsbil7Zm9yKDtlLl9jYWNoZS5sZW5ndGg8bi5sZW5ndGg7KWUuX2NhY2hlPXQuY29uY2F0KFtlLl9jYWNoZSxyKGUpXSk7dmFyIG89ZS5fY2FjaGUuc2xpY2UoMCxuLmxlbmd0aCk7cmV0dXJuIGUuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKG4ubGVuZ3RoKSxpKG4sbyl9fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMSkuQnVmZmVyLHI9aS5hbGxvYygxNiwwKTtmdW5jdGlvbiBvKHQpe3ZhciBlPWkuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBlLndyaXRlVUludDMyQkUodFswXT4+PjAsMCksZS53cml0ZVVJbnQzMkJFKHRbMV0+Pj4wLDQpLGUud3JpdGVVSW50MzJCRSh0WzJdPj4+MCw4KSxlLndyaXRlVUludDMyQkUodFszXT4+PjAsMTIpLGV9ZnVuY3Rpb24gcyh0KXt0aGlzLmg9dCx0aGlzLnN0YXRlPWkuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1pLmFsbG9jVW5zYWZlKDApfXMucHJvdG90eXBlLmdoYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMTsrK2U8dC5sZW5ndGg7KXRoaXMuc3RhdGVbZV1ePXRbZV07dGhpcy5fbXVsdGlwbHkoKX0scy5wcm90b3R5cGUuX211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsbixpPVsodD10aGlzLmgpLnJlYWRVSW50MzJCRSgwKSx0LnJlYWRVSW50MzJCRSg0KSx0LnJlYWRVSW50MzJCRSg4KSx0LnJlYWRVSW50MzJCRSgxMildLHI9WzAsMCwwLDBdLHM9LTE7KytzPDEyODspe2ZvcigwIT0odGhpcy5zdGF0ZVt+fihzLzgpXSYxPDw3LXMlOCkmJihyWzBdXj1pWzBdLHJbMV1ePWlbMV0sclsyXV49aVsyXSxyWzNdXj1pWzNdKSxuPTAhPSgxJmlbM10pLGU9MztlPjA7ZS0tKWlbZV09aVtlXT4+PjF8KDEmaVtlLTFdKTw8MzE7aVswXT1pWzBdPj4+MSxuJiYoaVswXT1pWzBdXjIyNTw8MjQpfXRoaXMuc3RhdGU9byhyKX0scy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlO2Zvcih0aGlzLmNhY2hlPWkuY29uY2F0KFt0aGlzLmNhY2hlLHRdKTt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KWU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHRoaXMuZ2hhc2goZSl9LHMucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKGkuY29uY2F0KFt0aGlzLmNhY2hlLHJdLDE2KSksdGhpcy5naGFzaChvKFswLHQsMCxlXSkpLHRoaXMuc3RhdGV9LHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMDEpLHI9bigxKS5CdWZmZXIsbz1uKDY4KSxzPW4oMTAyKSxhPW4oMjEpLHU9big0NSksYz1uKDQ2KTtmdW5jdGlvbiBoKHQsZSxuKXthLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IGwsdGhpcy5fbGFzdD12b2lkIDAsdGhpcy5fY2lwaGVyPW5ldyB1LkFFUyhlKSx0aGlzLl9wcmV2PXIuZnJvbShuKSx0aGlzLl9tb2RlPXQsdGhpcy5fYXV0b3BhZGRpbmc9ITB9ZnVuY3Rpb24gbCgpe3RoaXMuY2FjaGU9ci5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBkKHQsZSxuKXt2YXIgYT1vW3QudG9Mb3dlckNhc2UoKV07aWYoIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1yLmZyb20obikpLCJHQ00iIT09YS5tb2RlJiZuLmxlbmd0aCE9PWEuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIituLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1yLmZyb20oZSkpLGUubGVuZ3RoIT09YS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1hLnR5cGU/bmV3IHMoYS5tb2R1bGUsZSxuLCEwKToiYXV0aCI9PT1hLnR5cGU/bmV3IGkoYS5tb2R1bGUsZSxuLCEwKTpuZXcgaChhLm1vZHVsZSxlLG4pfW4oMCkoaCxhKSxoLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLG47dGhpcy5fY2FjaGUuYWRkKHQpO2Zvcih2YXIgaT1bXTtlPXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZyk7KW49dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsZSksaS5wdXNoKG4pO3JldHVybiByLmNvbmNhdChpKX0saC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dFsxNV07aWYoZTwxfHxlPjE2KXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGRlY3J5cHQgZGF0YSIpO3ZhciBuPS0xO2Zvcig7KytuPGU7KWlmKHRbbisoMTYtZSldIT09ZSl0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtpZigxNj09PWUpcmV0dXJuO3JldHVybiB0LnNsaWNlKDAsMTYtZSl9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLHQpKTtpZih0KXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGgucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIXQsdGhpc30sbC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3RoaXMuY2FjaGU9ci5jb25jYXQoW3RoaXMuY2FjaGUsdF0pfSxsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU7aWYodCl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGV9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpcmV0dXJuIGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGU7cmV0dXJuIG51bGx9LGwucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LGUuY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1vW3QudG9Mb3dlckNhc2UoKV07aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIGk9YyhlLCExLG4ua2V5LG4uaXYpO3JldHVybiBkKHQsaS5rZXksaS5pdil9LGUuY3JlYXRlRGVjaXBoZXJpdj1kfSxmdW5jdGlvbih0LGUpe2VbImRlcy1lY2IiXT17a2V5OjgsaXY6MH0sZVsiZGVzLWNiYyJdPWUuZGVzPXtrZXk6OCxpdjo4fSxlWyJkZXMtZWRlMy1jYmMiXT1lLmRlczM9e2tleToyNCxpdjo4fSxlWyJkZXMtZWRlMyJdPXtrZXk6MjQsaXY6MH0sZVsiZGVzLWVkZS1jYmMiXT17a2V5OjE2LGl2Ojh9LGVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTAzKSxyPW4oMTg0KSxvPW4oMTg1KTt2YXIgcz17YmluYXJ5OiEwLGhleDohMCxiYXNlNjQ6ITB9O2UuRGlmZmllSGVsbG1hbkdyb3VwPWUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPWUuZ2V0RGlmZmllSGVsbG1hbj1mdW5jdGlvbihlKXt2YXIgbj1uZXcgdChyW2VdLnByaW1lLCJoZXgiKSxpPW5ldyB0KHJbZV0uZ2VuLCJoZXgiKTtyZXR1cm4gbmV3IG8obixpKX0sZS5jcmVhdGVEaWZmaWVIZWxsbWFuPWUuRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBlKG4scixhLHUpe3JldHVybiB0LmlzQnVmZmVyKHIpfHx2b2lkIDA9PT1zW3JdP2UobiwiYmluYXJ5IixyLGEpOihyPXJ8fCJiaW5hcnkiLHU9dXx8ImJpbmFyeSIsYT1hfHxuZXcgdChbMl0pLHQuaXNCdWZmZXIoYSl8fChhPW5ldyB0KGEsdSkpLCJudW1iZXIiPT10eXBlb2Ygbj9uZXcgbyhpKG4sYSksYSwhMCk6KHQuaXNCdWZmZXIobil8fChuPW5ldyB0KG4scikpLG5ldyBvKG4sYSwhMCkpKX19KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUpe30sZnVuY3Rpb24odCxlKXt9LGZ1bmN0aW9uKHQpe3QuZXhwb3J0cz17bW9kcDE6e2dlbjoiMDIiLHByaW1lOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmYifSxtb2RwMjp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmYifSxtb2RwNTp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNDp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE1OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmIn0sbW9kcDE2OntnZW46IjAyIixwcmltZToiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxNzp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZiJ9LG1vZHAxODp7Z2VuOiIwMiIscHJpbWU6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDczYjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYzNmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmIn19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPW4oMykscj1uZXcobigxMDQpKSxvPW5ldyBpKDI0KSxzPW5ldyBpKDExKSxhPW5ldyBpKDEwKSx1PW5ldyBpKDMpLGM9bmV3IGkoNyksaD1uKDEwMyksbD1uKDI3KTtmdW5jdGlvbiBkKHQsbil7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLHRoaXMuX3B1Yj1uZXcgaSh0KSx0aGlzfWZ1bmN0aW9uIGYodCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fcHJpdj1uZXcgaSh0KSx0aGlzfXQuZXhwb3J0cz1tO3ZhciBwPXt9O2Z1bmN0aW9uIG0odCxlLG4pe3RoaXMuc2V0R2VuZXJhdG9yKGUpLHRoaXMuX19wcmltZT1uZXcgaSh0KSx0aGlzLl9wcmltZT1pLm1vbnQodGhpcy5fX3ByaW1lKSx0aGlzLl9wcmltZUxlbj10Lmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsbj8odGhpcy5zZXRQdWJsaWNLZXk9ZCx0aGlzLnNldFByaXZhdGVLZXk9Zik6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24gZyh0LG4pe3ZhciBpPW5ldyBlKHQudG9BcnJheSgpKTtyZXR1cm4gbj9pLnRvU3RyaW5nKG4pOml9T2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ2ZXJpZnlFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0aGlzLl9wcmltZUNvZGUmJih0aGlzLl9wcmltZUNvZGU9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnRvU3RyaW5nKCJoZXgiKSxpPVtuLHQudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYoaSBpbiBwKXJldHVybiBwW2ldO3ZhciBsLGQ9MDtpZih0LmlzRXZlbigpfHwhaC5zaW1wbGVTaWV2ZXx8IWguZmVybWF0VGVzdCh0KXx8IXIudGVzdCh0KSlyZXR1cm4gZCs9MSxkKz0iMDIiPT09bnx8IjA1Ij09PW4/ODo0LHBbaV09ZCxkO3N3aXRjaChyLnRlc3QodC5zaHJuKDEpKXx8KGQrPTIpLG4pe2Nhc2UiMDIiOnQubW9kKG8pLmNtcChzKSYmKGQrPTgpO2JyZWFrO2Nhc2UiMDUiOihsPXQubW9kKGEpKS5jbXAodSkmJmwuY21wKGMpJiYoZCs9OCk7YnJlYWs7ZGVmYXVsdDpkKz00fXJldHVybiBwW2ldPWQsZH0odGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9fSksbS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBpKGwodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxtLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKHQpe3ZhciBuPSh0PSh0PW5ldyBpKHQpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCkscj1uZXcgZShuLnRvQXJyYXkoKSksbz10aGlzLmdldFByaW1lKCk7aWYoci5sZW5ndGg8by5sZW5ndGgpe3ZhciBzPW5ldyBlKG8ubGVuZ3RoLXIubGVuZ3RoKTtzLmZpbGwoMCkscj1lLmNvbmNhdChbcyxyXSl9cmV0dXJuIHJ9LG0ucHJvdG90eXBlLmdldFB1YmxpY0tleT1mdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLl9wdWIsdCl9LG0ucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fcHJpdix0KX0sbS5wcm90b3R5cGUuZ2V0UHJpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fX3ByaW1lLHQpfSxtLnByb3RvdHlwZS5nZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcy5fZ2VuLHQpfSxtLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSksdGhpcy5fX2dlbj10LHRoaXMuX2dlbj1uZXcgaSh0KSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigzMSkscj1uKDU5KSxvPW4oMCkscz1uKDE4NyksYT1uKDIyMyksdT1uKDkzKTtmdW5jdGlvbiBjKHQpe3IuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgZT11W3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPWUuaGFzaCx0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gaCh0KXtyLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGU9dVt0XTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPWkoZS5oYXNoKSx0aGlzLl90YWc9ZS5pZCx0aGlzLl9zaWduVHlwZT1lLnNpZ259ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbmV3IGModCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbmV3IGgodCl9T2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbih0KXt1W3RdLmlkPW5ldyBlKHVbdF0uaWQsImhleCIpLHVbdC50b0xvd2VyQ2FzZSgpXT11W3RdfSksbyhjLHIuV3JpdGFibGUpLGMucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxjLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGMucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24odCxlKXt0aGlzLmVuZCgpO3ZhciBuPXRoaXMuX2hhc2guZGlnZXN0KCksaT1zKG4sdCx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiBlP2kudG9TdHJpbmcoZSk6aX0sbyhoLHIuV3JpdGFibGUpLGgucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5faGFzaC51cGRhdGUodCksbigpfSxoLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBlKHQsbikpLHRoaXMuX2hhc2gudXBkYXRlKHQpLHRoaXN9LGgucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LG4saSl7InN0cmluZyI9PXR5cGVvZiBuJiYobj1uZXcgZShuLGkpKSx0aGlzLmVuZCgpO3ZhciByPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0dXJuIGEobixyLHQsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sdC5leHBvcnRzPXtTaWduOmwsVmVyaWZ5OmQsY3JlYXRlU2lnbjpsLGNyZWF0ZVZlcmlmeTpkfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9big5MSkscj1uKDY5KSxvPW4oMTApLmVjLHM9bigzKSxhPW4oNDkpLHU9bigxMTQpO2Z1bmN0aW9uIGModCxuLHIsbyl7aWYoKHQ9bmV3IGUodC50b0FycmF5KCkpKS5sZW5ndGg8bi5ieXRlTGVuZ3RoKCkpe3ZhciBzPW5ldyBlKG4uYnl0ZUxlbmd0aCgpLXQubGVuZ3RoKTtzLmZpbGwoMCksdD1lLmNvbmNhdChbcyx0XSl9dmFyIGE9ci5sZW5ndGgsdT1mdW5jdGlvbih0LG4pe3Q9KHQ9aCh0LG4pKS5tb2Qobik7dmFyIGk9bmV3IGUodC50b0FycmF5KCkpO2lmKGkubGVuZ3RoPG4uYnl0ZUxlbmd0aCgpKXt2YXIgcj1uZXcgZShuLmJ5dGVMZW5ndGgoKS1pLmxlbmd0aCk7ci5maWxsKDApLGk9ZS5jb25jYXQoW3IsaV0pfXJldHVybiBpfShyLG4pLGM9bmV3IGUoYSk7Yy5maWxsKDEpO3ZhciBsPW5ldyBlKGEpO3JldHVybiBsLmZpbGwoMCksbD1pKG8sbCkudXBkYXRlKGMpLnVwZGF0ZShuZXcgZShbMF0pKS51cGRhdGUodCkudXBkYXRlKHUpLmRpZ2VzdCgpLGM9aShvLGwpLnVwZGF0ZShjKS5kaWdlc3QoKSx7azpsPWkobyxsKS51cGRhdGUoYykudXBkYXRlKG5ldyBlKFsxXSkpLnVwZGF0ZSh0KS51cGRhdGUodSkuZGlnZXN0KCksdjpjPWkobyxsKS51cGRhdGUoYykuZGlnZXN0KCl9fWZ1bmN0aW9uIGgodCxlKXt2YXIgbj1uZXcgcyh0KSxpPSh0Lmxlbmd0aDw8MyktZS5iaXRMZW5ndGgoKTtyZXR1cm4gaT4wJiZuLmlzaHJuKGkpLG59ZnVuY3Rpb24gbCh0LG4scil7dmFyIG8scztkb3tmb3Iobz1uZXcgZSgwKTs4Km8ubGVuZ3RoPHQuYml0TGVuZ3RoKCk7KW4udj1pKHIsbi5rKS51cGRhdGUobi52KS5kaWdlc3QoKSxvPWUuY29uY2F0KFtvLG4udl0pO3M9aChvLHQpLG4uaz1pKHIsbi5rKS51cGRhdGUobi52KS51cGRhdGUobmV3IGUoWzBdKSkuZGlnZXN0KCksbi52PWkocixuLmspLnVwZGF0ZShuLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09cy5jbXAodCkpO3JldHVybiBzfWZ1bmN0aW9uIGQodCxlLG4saSl7cmV0dXJuIHQudG9SZWQocy5tb250KG4pKS5yZWRQb3coZSkuZnJvbVJlZCgpLm1vZChpKX10LmV4cG9ydHM9ZnVuY3Rpb24odCxuLGksZixwKXt2YXIgbT1hKG4pO2lmKG0uY3VydmUpe2lmKCJlY2RzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIGk9dVtuLmN1cnZlLmpvaW4oIi4iKV07aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrbi5jdXJ2ZS5qb2luKCIuIikpO3ZhciByPW5ldyBvKGkpLmtleUZyb21Qcml2YXRlKG4ucHJpdmF0ZUtleSkuc2lnbih0KTtyZXR1cm4gbmV3IGUoci50b0RFUigpKX0odCxtKX1pZigiZHNhIj09PW0udHlwZSl7aWYoImRzYSIhPT1mKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LG4saSl7Zm9yKHZhciByLG89bi5wYXJhbXMucHJpdl9rZXksYT1uLnBhcmFtcy5wLHU9bi5wYXJhbXMucSxmPW4ucGFyYW1zLmcscD1uZXcgcygwKSxtPWgodCx1KS5tb2QodSksZz0hMSx2PWMobyx1LHQsaSk7ITE9PT1nOylyPWwodSx2LGkpLHA9ZChmLHIsYSx1KSwwPT09KGc9ci5pbnZtKHUpLmltdWwobS5hZGQoby5tdWwocCkpKS5tb2QodSkpLmNtcG4oMCkmJihnPSExLHA9bmV3IHMoMCkpO3JldHVybiBmdW5jdGlvbih0LG4pe3Q9dC50b0FycmF5KCksbj1uLnRvQXJyYXkoKSwxMjgmdFswXSYmKHQ9WzBdLmNvbmNhdCh0KSksMTI4Jm5bMF0mJihuPVswXS5jb25jYXQobikpO3ZhciBpPVs0OCx0Lmxlbmd0aCtuLmxlbmd0aCs0LDIsdC5sZW5ndGhdO3JldHVybiBpPWkuY29uY2F0KHQsWzIsbi5sZW5ndGhdLG4pLG5ldyBlKGkpfShwLGcpfSh0LG0saSl9aWYoInJzYSIhPT1mJiYiZWNkc2EvcnNhIiE9PWYpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7dD1lLmNvbmNhdChbcCx0XSk7Zm9yKHZhciBnPW0ubW9kdWx1cy5ieXRlTGVuZ3RoKCksdj1bMCwxXTt0Lmxlbmd0aCt2Lmxlbmd0aCsxPGc7KXYucHVzaCgyNTUpO3YucHVzaCgwKTtmb3IodmFyIGI9LTE7KytiPHQubGVuZ3RoOyl2LnB1c2godFtiXSk7cmV0dXJuIHIodixtKX0sdC5leHBvcnRzLmdldEtleT1jLHQuZXhwb3J0cy5tYWtlS2V5PWx9KS5jYWxsKHRoaXMsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9e25hbWU6ImVsbGlwdGljIix2ZXJzaW9uOiI2LjQuMSIsZGVzY3JpcHRpb246IkVDIGNyeXB0b2dyYXBoeSIsbWFpbjoibGliL2VsbGlwdGljLmpzIixmaWxlczpbImxpYiJdLHNjcmlwdHM6e2pzY3M6ImpzY3MgYmVuY2htYXJrcy8qLmpzIGxpYi8qLmpzIGxpYi8qKi8qLmpzIGxpYi8qKi8qKi8qLmpzIHRlc3QvaW5kZXguanMiLGpzaGludDoianNjcyBiZW5jaG1hcmtzLyouanMgbGliLyouanMgbGliLyoqLyouanMgbGliLyoqLyoqLyouanMgdGVzdC9pbmRleC5qcyIsbGludDoibnBtIHJ1biBqc2NzICYmIG5wbSBydW4ganNoaW50Iix1bml0OiJpc3RhbmJ1bCB0ZXN0IF9tb2NoYSAtLXJlcG9ydGVyPXNwZWMgdGVzdC9pbmRleC5qcyIsdGVzdDoibnBtIHJ1biBsaW50ICYmIG5wbSBydW4gdW5pdCIsdmVyc2lvbjoiZ3J1bnQgZGlzdCAmJiBnaXQgYWRkIGRpc3QvIn0scmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6ImdpdEBnaXRodWIuY29tOmluZHV0bnkvZWxsaXB0aWMifSxrZXl3b3JkczpbIkVDIiwiRWxsaXB0aWMiLCJjdXJ2ZSIsIkNyeXB0b2dyYXBoeSJdLGF1dGhvcjoiRmVkb3IgSW5kdXRueSA8ZmVkb3JAaW5kdXRueS5jb20+IixsaWNlbnNlOiJNSVQiLGJ1Z3M6e3VybDoiaHR0cHM6Ly9naXRodWIuY29tL2luZHV0bnkvZWxsaXB0aWMvaXNzdWVzIn0saG9tZXBhZ2U6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L2VsbGlwdGljIixkZXZEZXBlbmRlbmNpZXM6e2JyZnM6Il4xLjQuMyIsY292ZXJhbGxzOiJeMi4xMS4zIixncnVudDoiXjAuNC41IiwiZ3J1bnQtYnJvd3NlcmlmeSI6Il41LjAuMCIsImdydW50LWNsaSI6Il4xLjIuMCIsImdydW50LWNvbnRyaWItY29ubmVjdCI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItY29weSI6Il4xLjAuMCIsImdydW50LWNvbnRyaWItdWdsaWZ5IjoiXjEuMC4xIiwiZ3J1bnQtbW9jaGEtaXN0YW5idWwiOiJeMy4wLjEiLCJncnVudC1zYXVjZWxhYnMiOiJeOC42LjIiLGlzdGFuYnVsOiJeMC40LjIiLGpzY3M6Il4yLjkuMCIsanNoaW50OiJeMi42LjAiLG1vY2hhOiJeMi4xLjAifSxkZXBlbmRlbmNpZXM6eyJibi5qcyI6Il40LjQuMCIsYnJvcmFuZDoiXjEuMC4xIiwiaGFzaC5qcyI6Il4xLjAuMCIsImhtYWMtZHJiZyI6Il4xLjAuMCIsaW5oZXJpdHM6Il4yLjAuMSIsIm1pbmltYWxpc3RpYy1hc3NlcnQiOiJeMS4wLjAiLCJtaW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzIjoiXjEuMC4wIn0sX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lbGxpcHRpYy8tL2VsbGlwdGljLTYuNC4xLnRneiIsX2ludGVncml0eToic2hhNTEyLUJzWEx6NXNxWDhPSGNzaDdDcUJNenR5WEFSbUdRM0xXUHRHakppNkRpSkhxNUMvcXZpOVAzT3Fnc3dLU0RmdGJ1OCtJb0kvUURUQW0yZkZuUTlTWlNRPT0iLF9mcm9tOiJlbGxpcHRpY0A2LjQuMSJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPWUscj1uKDMpLG89bigxNCkscz1uKDEwNik7aS5hc3NlcnQ9byxpLnRvQXJyYXk9cy50b0FycmF5LGkuemVybzI9cy56ZXJvMixpLnRvSGV4PXMudG9IZXgsaS5lbmNvZGU9cy5lbmNvZGUsaS5nZXROQUY9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10saT0xPDxlKzEscj10LmNsb25lKCk7ci5jbXBuKDEpPj0wOyl7dmFyIG87aWYoci5pc09kZCgpKXt2YXIgcz1yLmFuZGxuKGktMSk7bz1zPihpPj4xKS0xPyhpPj4xKS1zOnMsci5pc3VibihvKX1lbHNlIG89MDtuLnB1c2gobyk7Zm9yKHZhciBhPTAhPT1yLmNtcG4oMCkmJjA9PT1yLmFuZGxuKGktMSk/ZSsxOjEsdT0xO3U8YTt1Kyspbi5wdXNoKDApO3IuaXVzaHJuKGEpfXJldHVybiBufSxpLmdldEpTRj1mdW5jdGlvbih0LGUpe3ZhciBuPVtbXSxbXV07dD10LmNsb25lKCksZT1lLmNsb25lKCk7Zm9yKHZhciBpPTAscj0wO3QuY21wbigtaSk+MHx8ZS5jbXBuKC1yKT4wOyl7dmFyIG8scyxhLHU9dC5hbmRsbigzKStpJjMsYz1lLmFuZGxuKDMpK3ImMzszPT09dSYmKHU9LTEpLDM9PT1jJiYoYz0tMSksbz0wPT0oMSZ1KT8wOjMhPShhPXQuYW5kbG4oNykraSY3KSYmNSE9PWF8fDIhPT1jP3U6LXUsblswXS5wdXNoKG8pLHM9MD09KDEmYyk/MDozIT0oYT1lLmFuZGxuKDcpK3ImNykmJjUhPT1hfHwyIT09dT9jOi1jLG5bMV0ucHVzaChzKSwyKmk9PT1vKzEmJihpPTEtaSksMipyPT09cysxJiYocj0xLXIpLHQuaXVzaHJuKDEpLGUuaXVzaHJuKDEpfXJldHVybiBufSxpLmNhY2hlZFByb3BlcnR5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0iXyIrZTt0LnByb3RvdHlwZVtlXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW2ldP3RoaXNbaV06dGhpc1tpXT1uLmNhbGwodGhpcyl9fSxpLnBhcnNlQnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2kudG9BcnJheSh0LCJoZXgiKTp0fSxpLmludEZyb21MRT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIodCwiaGV4IiwibGUiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5nZXROQUYscz1yLmdldEpTRixhPXIuYXNzZXJ0O2Z1bmN0aW9uIHUodCxlKXt0aGlzLnR5cGU9dCx0aGlzLnA9bmV3IGkoZS5wLDE2KSx0aGlzLnJlZD1lLnByaW1lP2kucmVkKGUucHJpbWUpOmkubW9udCh0aGlzLnApLHRoaXMuemVybz1uZXcgaSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IGkoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBpKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLm49ZS5uJiZuZXcgaShlLm4sMTYpLHRoaXMuZz1lLmcmJnRoaXMucG9pbnRGcm9tSlNPTihlLmcsZS5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpO3ZhciBuPXRoaXMubiYmdGhpcy5wLmRpdih0aGlzLm4pOyFufHxuLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIGModCxlKXt0aGlzLmN1cnZlPXQsdGhpcy50eXBlPWUsdGhpcy5wcmVjb21wdXRlZD1udWxsfXQuZXhwb3J0cz11LHUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sdS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSx1LnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24odCxlKXthKHQucHJlY29tcHV0ZWQpO3ZhciBuPXQuX2dldERvdWJsZXMoKSxpPW8oZSwxKSxyPSgxPDxuLnN0ZXArMSktKG4uc3RlcCUyPT0wPzI6MSk7ci89Mztmb3IodmFyIHM9W10sdT0wO3U8aS5sZW5ndGg7dSs9bi5zdGVwKXt2YXIgYz0wO2ZvcihlPXUrbi5zdGVwLTE7ZT49dTtlLS0pYz0oYzw8MSkraVtlXTtzLnB1c2goYyl9Zm9yKHZhciBoPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxsPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxkPXI7ZD4wO2QtLSl7Zm9yKHU9MDt1PHMubGVuZ3RoO3UrKyl7KGM9c1t1XSk9PT1kP2w9bC5taXhlZEFkZChuLnBvaW50c1t1XSk6Yz09PS1kJiYobD1sLm1peGVkQWRkKG4ucG9pbnRzW3VdLm5lZygpKSl9aD1oLmFkZChsKX1yZXR1cm4gaC50b1AoKX0sdS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24odCxlKXt2YXIgbj00LGk9dC5fZ2V0TkFGUG9pbnRzKG4pO249aS53bmQ7Zm9yKHZhciByPWkucG9pbnRzLHM9byhlLG4pLHU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLGM9cy5sZW5ndGgtMTtjPj0wO2MtLSl7Zm9yKGU9MDtjPj0wJiYwPT09c1tjXTtjLS0pZSsrO2lmKGM+PTAmJmUrKyx1PXUuZGJscChlKSxjPDApYnJlYWs7dmFyIGg9c1tjXTthKDAhPT1oKSx1PSJhZmZpbmUiPT09dC50eXBlP2g+MD91Lm1peGVkQWRkKHJbaC0xPj4xXSk6dS5taXhlZEFkZChyWy1oLTE+PjFdLm5lZygpKTpoPjA/dS5hZGQocltoLTE+PjFdKTp1LmFkZChyWy1oLTE+PjFdLm5lZygpKX1yZXR1cm4iYWZmaW5lIj09PXQudHlwZT91LnRvUCgpOnV9LHUucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuLGkscil7Zm9yKHZhciBhPXRoaXMuX3duYWZUMSx1PXRoaXMuX3duYWZUMixjPXRoaXMuX3duYWZUMyxoPTAsbD0wO2w8aTtsKyspe3ZhciBkPShFPWVbbF0pLl9nZXROQUZQb2ludHModCk7YVtsXT1kLnduZCx1W2xdPWQucG9pbnRzfWZvcihsPWktMTtsPj0xO2wtPTIpe3ZhciBmPWwtMSxwPWw7aWYoMT09PWFbZl0mJjE9PT1hW3BdKXt2YXIgbT1bZVtmXSxudWxsLG51bGwsZVtwXV07MD09PWVbZl0ueS5jbXAoZVtwXS55KT8obVsxXT1lW2ZdLmFkZChlW3BdKSxtWzJdPWVbZl0udG9KKCkubWl4ZWRBZGQoZVtwXS5uZWcoKSkpOjA9PT1lW2ZdLnkuY21wKGVbcF0ueS5yZWROZWcoKSk/KG1bMV09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdKSxtWzJdPWVbZl0uYWRkKGVbcF0ubmVnKCkpKToobVsxXT1lW2ZdLnRvSigpLm1peGVkQWRkKGVbcF0pLG1bMl09ZVtmXS50b0ooKS5taXhlZEFkZChlW3BdLm5lZygpKSk7dmFyIGc9Wy0zLC0xLC01LC03LDAsNyw1LDEsM10sdj1zKG5bZl0sbltwXSk7aD1NYXRoLm1heCh2WzBdLmxlbmd0aCxoKSxjW2ZdPW5ldyBBcnJheShoKSxjW3BdPW5ldyBBcnJheShoKTtmb3IodmFyIGI9MDtiPGg7YisrKXt2YXIgeT0wfHZbMF1bYl0sXz0wfHZbMV1bYl07Y1tmXVtiXT1nWzMqKHkrMSkrKF8rMSldLGNbcF1bYl09MCx1W2ZdPW19fWVsc2UgY1tmXT1vKG5bZl0sYVtmXSksY1twXT1vKG5bcF0sYVtwXSksaD1NYXRoLm1heChjW2ZdLmxlbmd0aCxoKSxoPU1hdGgubWF4KGNbcF0ubGVuZ3RoLGgpfXZhciB3PXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSx4PXRoaXMuX3duYWZUNDtmb3IobD1oO2w+PTA7bC0tKXtmb3IodmFyIE09MDtsPj0wOyl7dmFyIFM9ITA7Zm9yKGI9MDtiPGk7YisrKXhbYl09MHxjW2JdW2xdLDAhPT14W2JdJiYoUz0hMSk7aWYoIVMpYnJlYWs7TSsrLGwtLX1pZihsPj0wJiZNKyssdz13LmRibHAoTSksbDwwKWJyZWFrO2ZvcihiPTA7YjxpO2IrKyl7dmFyIEUsQT14W2JdOzAhPT1BJiYoQT4wP0U9dVtiXVtBLTE+PjFdOkE8MCYmKEU9dVtiXVstQS0xPj4xXS5uZWcoKSksdz0iYWZmaW5lIj09PUUudHlwZT93Lm1peGVkQWRkKEUpOncuYWRkKEUpKX19Zm9yKGw9MDtsPGk7bCsrKXVbbF09bnVsbDtyZXR1cm4gcj93OncudG9QKCl9LHUuQmFzZVBvaW50PWMsYy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3Q9ci50b0FycmF5KHQsZSk7dmFyIG49dGhpcy5wLmJ5dGVMZW5ndGgoKTtpZigoND09PXRbMF18fDY9PT10WzBdfHw3PT09dFswXSkmJnQubGVuZ3RoLTE9PTIqbilyZXR1cm4gNj09PXRbMF0/YSh0W3QubGVuZ3RoLTFdJTI9PTApOjc9PT10WzBdJiZhKHRbdC5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludCh0LnNsaWNlKDEsMStuKSx0LnNsaWNlKDErbiwxKzIqbikpO2lmKCgyPT09dFswXXx8Mz09PXRbMF0pJiZ0Lmxlbmd0aC0xPT09bilyZXR1cm4gdGhpcy5wb2ludEZyb21YKHQuc2xpY2UoMSwxK24pLDM9PT10WzBdKTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcG9pbnQgZm9ybWF0Iil9LGMucHJvdG90eXBlLmVuY29kZUNvbXByZXNzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZW5jb2RlKHQsITApfSxjLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCksbj10aGlzLmdldFgoKS50b0FycmF5KCJiZSIsZSk7cmV0dXJuIHQ/W3RoaXMuZ2V0WSgpLmlzRXZlbigpPzI6M10uY29uY2F0KG4pOls0XS5jb25jYXQobix0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsZSkpfSxjLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gci5lbmNvZGUodGhpcy5fZW5jb2RlKGUpLHQpfSxjLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIHRoaXM7dmFyIGU9e2RvdWJsZXM6bnVsbCxuYWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBlLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksZS5kb3VibGVzPXRoaXMuX2dldERvdWJsZXMoNCx0KSxlLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9ZSx0aGlzfSxjLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbih0KXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgZT10aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7cmV0dXJuISFlJiZlLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgodC5iaXRMZW5ndGgoKSsxKS9lLnN0ZXApfSxjLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlvbih0LGUpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgbj1bdGhpc10saT10aGlzLHI9MDtyPGU7cis9dCl7Zm9yKHZhciBvPTA7bzx0O28rKylpPWkuZGJsKCk7bi5wdXNoKGkpfXJldHVybntzdGVwOnQscG9pbnRzOm59fSxjLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKHQpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQubmFmKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtmb3IodmFyIGU9W3RoaXNdLG49KDE8PHQpLTEsaT0xPT09bj9udWxsOnRoaXMuZGJsKCkscj0xO3I8bjtyKyspZVtyXT1lW3ItMV0uYWRkKGkpO3JldHVybnt3bmQ6dCxwb2ludHM6ZX19LGMucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGMucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsbj0wO248dDtuKyspZT1lLmRibCgpO3JldHVybiBlfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDQ4KSxyPW4oMTApLG89bigzKSxzPW4oMCksYT1pLmJhc2UsdT1yLnV0aWxzLmFzc2VydDtmdW5jdGlvbiBjKHQpe2EuY2FsbCh0aGlzLCJzaG9ydCIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgbyh0LmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKHQpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIGgodCxlLG4saSl7YS5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsImFmZmluZSIpLG51bGw9PT1lJiZudWxsPT09bj8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhpcy5pbmY9ITApOih0aGlzLng9bmV3IG8oZSwxNiksdGhpcy55PW5ldyBvKG4sMTYpLGkmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9ZnVuY3Rpb24gbCh0LGUsbixpKXthLkJhc2VQb2ludC5jYWxsKHRoaXMsdCwiamFjb2JpYW4iKSxudWxsPT09ZSYmbnVsbD09PW4mJm51bGw9PT1pPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgbygwKSk6KHRoaXMueD1uZXcgbyhlLDE2KSx0aGlzLnk9bmV3IG8obiwxNiksdGhpcy56PW5ldyBvKGksMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24odCl7aWYodGhpcy56ZXJvQSYmdGhpcy5nJiZ0aGlzLm4mJjE9PT10aGlzLnAubW9kbigzKSl7dmFyIGUsbjtpZih0LmJldGEpZT1uZXcgbyh0LmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKTtlbHNle3ZhciBpPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO2U9KGU9aVswXS5jbXAoaVsxXSk8MD9pWzBdOmlbMV0pLnRvUmVkKHRoaXMucmVkKX1pZih0LmxhbWJkYSluPW5ldyBvKHQubGFtYmRhLDE2KTtlbHNle3ZhciByPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKHJbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChlKSk/bj1yWzBdOihuPXJbMV0sdSgwPT09dGhpcy5nLm11bChuKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoZSkpKSl9cmV0dXJue2JldGE6ZSxsYW1iZGE6bixiYXNpczp0LmJhc2lzP3QuYmFzaXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybnthOm5ldyBvKHQuYSwxNiksYjpuZXcgbyh0LmIsMTYpfX0pOnRoaXMuX2dldEVuZG9CYXNpcyhuKX19fSxjLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ9PT10aGlzLnA/dGhpcy5yZWQ6by5tb250KHQpLG49bmV3IG8oMikudG9SZWQoZSkucmVkSW52bSgpLGk9bi5yZWROZWcoKSxyPW5ldyBvKDMpLnRvUmVkKGUpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwobik7cmV0dXJuW2kucmVkQWRkKHIpLmZyb21SZWQoKSxpLnJlZFN1YihyKS5mcm9tUmVkKCldfSxjLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuLGkscixzLGEsdSxjLGgsbD10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLGQ9dCxmPXRoaXMubi5jbG9uZSgpLHA9bmV3IG8oMSksbT1uZXcgbygwKSxnPW5ldyBvKDApLHY9bmV3IG8oMSksYj0wOzAhPT1kLmNtcG4oMCk7KXt2YXIgeT1mLmRpdihkKTtjPWYuc3ViKHkubXVsKGQpKSxoPWcuc3ViKHkubXVsKHApKTt2YXIgXz12LnN1Yih5Lm11bChtKSk7aWYoIWkmJmMuY21wKGwpPDApZT11Lm5lZygpLG49cCxpPWMubmVnKCkscj1oO2Vsc2UgaWYoaSYmMj09KytiKWJyZWFrO3U9YyxmPWQsZD1jLGc9cCxwPWgsdj1tLG09X31zPWMubmVnKCksYT1oO3ZhciB3PWkuc3FyKCkuYWRkKHIuc3FyKCkpO3JldHVybiBzLnNxcigpLmFkZChhLnNxcigpKS5jbXAodyk+PTAmJihzPWUsYT1uKSxpLm5lZ2F0aXZlJiYoaT1pLm5lZygpLHI9ci5uZWcoKSkscy5uZWdhdGl2ZSYmKHM9cy5uZWcoKSxhPWEubmVnKCkpLFt7YTppLGI6cn0se2E6cyxiOmF9XX0sYy5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmVuZG8uYmFzaXMsbj1lWzBdLGk9ZVsxXSxyPWkuYi5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxvPW4uYi5uZWcoKS5tdWwodCkuZGl2Um91bmQodGhpcy5uKSxzPXIubXVsKG4uYSksYT1vLm11bChpLmEpLHU9ci5tdWwobi5iKSxjPW8ubXVsKGkuYik7cmV0dXJue2sxOnQuc3ViKHMpLnN1YihhKSxrMjp1LmFkZChjKS5uZWcoKX19LGMucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24odCxlKXsodD1uZXcgbyh0LDE2KSkucmVkfHwodD10LnRvUmVkKHRoaXMucmVkKSk7dmFyIG49dC5yZWRTcXIoKS5yZWRNdWwodCkucmVkSUFkZCh0LnJlZE11bCh0aGlzLmEpKS5yZWRJQWRkKHRoaXMuYiksaT1uLnJlZFNxcnQoKTtpZigwIT09aS5yZWRTcXIoKS5yZWRTdWIobikuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIHI9aS5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oZSYmIXJ8fCFlJiZyKSYmKGk9aS5yZWROZWcoKSksdGhpcy5wb2ludCh0LGkpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmluZilyZXR1cm4hMDt2YXIgZT10Lngsbj10LnksaT10aGlzLmEucmVkTXVsKGUpLHI9ZS5yZWRTcXIoKS5yZWRNdWwoZSkucmVkSUFkZChpKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1uLnJlZFNxcigpLnJlZElTdWIocikuY21wbigwKX0sYy5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9dGhpcy5fZW5kb1duYWZUMSxyPXRoaXMuX2VuZG9XbmFmVDIsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10aGlzLl9lbmRvU3BsaXQoZVtvXSksYT10W29dLHU9YS5fZ2V0QmV0YSgpO3MuazEubmVnYXRpdmUmJihzLmsxLmluZWcoKSxhPWEubmVnKCEwKSkscy5rMi5uZWdhdGl2ZSYmKHMuazIuaW5lZygpLHU9dS5uZWcoITApKSxpWzIqb109YSxpWzIqbysxXT11LHJbMipvXT1zLmsxLHJbMipvKzFdPXMuazJ9Zm9yKHZhciBjPXRoaXMuX3duYWZNdWxBZGQoMSxpLHIsMipvLG4pLGg9MDtoPDIqbztoKyspaVtoXT1udWxsLHJbaF09bnVsbDtyZXR1cm4gY30scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBoKHRoaXMsdCxlLG4pfSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGguZnJvbUpTT04odGhpcyx0LGUpfSxoLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5kbyl7dmFyIHQ9dGhpcy5wcmVjb21wdXRlZDtpZih0JiZ0LmJldGEpcmV0dXJuIHQuYmV0YTt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYodCl7dmFyIG49dGhpcy5jdXJ2ZSxpPWZ1bmN0aW9uKHQpe3JldHVybiBuLnBvaW50KHQueC5yZWRNdWwobi5lbmRvLmJldGEpLHQueSl9O3QuYmV0YT1lLGUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6dC5uYWYmJnt3bmQ6dC5uYWYud25kLHBvaW50czp0Lm5hZi5wb2ludHMubWFwKGkpfSxkb3VibGVzOnQuZG91YmxlcyYme3N0ZXA6dC5kb3VibGVzLnN0ZXAscG9pbnRzOnQuZG91Ymxlcy5wb2ludHMubWFwKGkpfX19cmV0dXJuIGV9fSxoLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSxuKXsic3RyaW5nIj09dHlwZW9mIGUmJihlPUpTT04ucGFyc2UoZSkpO3ZhciBpPXQucG9pbnQoZVswXSxlWzFdLG4pO2lmKCFlWzJdKXJldHVybiBpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQucG9pbnQoZVswXSxlWzFdLG4pfXZhciBvPWVbMl07cmV0dXJuIGkucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOm8uZG91YmxlcyYme3N0ZXA6by5kb3VibGVzLnN0ZXAscG9pbnRzOltpXS5jb25jYXQoby5kb3VibGVzLnBvaW50cy5tYXAocikpfSxuYWY6by5uYWYmJnt3bmQ6by5uYWYud25kLHBvaW50czpbaV0uY29uY2F0KG8ubmFmLnBvaW50cy5tYXAocikpfX0saX0saC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxoLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7aWYodGhpcy5pbmYpcmV0dXJuIHQ7aWYodC5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcSh0KSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKHQpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAodC54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBlPXRoaXMueS5yZWRTdWIodC55KTswIT09ZS5jbXBuKDApJiYoZT1lLnJlZE11bCh0aGlzLngucmVkU3ViKHQueCkucmVkSW52bSgpKSk7dmFyIG49ZS5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1Yih0LngpLGk9ZS5yZWRNdWwodGhpcy54LnJlZFN1YihuKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGgucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciB0PXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09dC5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGU9dGhpcy5jdXJ2ZS5hLG49dGhpcy54LnJlZFNxcigpLGk9dC5yZWRJbnZtKCkscj1uLnJlZEFkZChuKS5yZWRJQWRkKG4pLnJlZElBZGQoZSkucmVkTXVsKGkpLG89ci5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSkscz1yLnJlZE11bCh0aGlzLngucmVkU3ViKG8pKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQobyxzKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9LGgucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uZXcgbyh0LDE2KSx0aGlzLl9oYXNEb3VibGVzKHQpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsdCk6dGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKFt0aGlzXSxbdF0pOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyx0KX0saC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIpfSxoLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1bdGhpcyxlXSxyPVt0LG5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoaSxyLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsaSxyLDIsITApfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fHRoaXMuaW5mPT09dC5pbmYmJih0aGlzLmluZnx8MD09PXRoaXMueC5jbXAodC54KSYmMD09PXRoaXMueS5jbXAodC55KSl9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCkpO2lmKHQmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciBuPXRoaXMucHJlY29tcHV0ZWQsaT1mdW5jdGlvbih0KXtyZXR1cm4gdC5uZWcoKX07ZS5wcmVjb21wdXRlZD17bmFmOm4ubmFmJiZ7d25kOm4ubmFmLnduZCxwb2ludHM6bi5uYWYucG9pbnRzLm1hcChpKX0sZG91YmxlczpuLmRvdWJsZXMmJntzdGVwOm4uZG91Ymxlcy5zdGVwLHBvaW50czpuLmRvdWJsZXMucG9pbnRzLm1hcChpKX19fXJldHVybiBlfSxoLnByb3RvdHlwZS50b0o9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmY/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpfSxzKGwsYS5CYXNlUG9pbnQpLGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBsKHRoaXMsdCxlLG4pfSxsLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciB0PXRoaXMuei5yZWRJbnZtKCksZT10LnJlZFNxcigpLG49dGhpcy54LnJlZE11bChlKSxpPXRoaXMueS5yZWRNdWwoZSkucmVkTXVsKHQpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG4saSl9LGwucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LGwucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdDtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgZT10LnoucmVkU3FyKCksbj10aGlzLnoucmVkU3FyKCksaT10aGlzLngucmVkTXVsKGUpLHI9dC54LnJlZE11bChuKSxvPXRoaXMueS5yZWRNdWwoZS5yZWRNdWwodC56KSkscz10LnkucmVkTXVsKG4ucmVkTXVsKHRoaXMueikpLGE9aS5yZWRTdWIociksdT1vLnJlZFN1YihzKTtpZigwPT09YS5jbXBuKDApKXJldHVybiAwIT09dS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBjPWEucmVkU3FyKCksaD1jLnJlZE11bChhKSxsPWkucmVkTXVsKGMpLGQ9dS5yZWRTcXIoKS5yZWRJQWRkKGgpLnJlZElTdWIobCkucmVkSVN1YihsKSxmPXUucmVkTXVsKGwucmVkSVN1YihkKSkucmVkSVN1YihvLnJlZE11bChoKSkscD10aGlzLnoucmVkTXVsKHQueikucmVkTXVsKGEpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChkLGYscCl9LGwucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0LnRvSigpO2lmKHQuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXRoaXMueCxpPXQueC5yZWRNdWwoZSkscj10aGlzLnksbz10LnkucmVkTXVsKGUpLnJlZE11bCh0aGlzLnopLHM9bi5yZWRTdWIoaSksYT1yLnJlZFN1YihvKTtpZigwPT09cy5jbXBuKDApKXJldHVybiAwIT09YS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciB1PXMucmVkU3FyKCksYz11LnJlZE11bChzKSxoPW4ucmVkTXVsKHUpLGw9YS5yZWRTcXIoKS5yZWRJQWRkKGMpLnJlZElTdWIoaCkucmVkSVN1YihoKSxkPWEucmVkTXVsKGgucmVkSVN1YihsKSkucmVkSVN1YihyLnJlZE11bChjKSksZj10aGlzLnoucmVkTXVsKHMpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChsLGQsZil9LGwucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe2Zvcih2YXIgZT10aGlzLG49MDtuPHQ7bisrKWU9ZS5kYmwoKTtyZXR1cm4gZX12YXIgaT10aGlzLmN1cnZlLmEscj10aGlzLmN1cnZlLnRpbnYsbz10aGlzLngscz10aGlzLnksYT10aGlzLnosdT1hLnJlZFNxcigpLnJlZFNxcigpLGM9cy5yZWRBZGQocyk7Zm9yKG49MDtuPHQ7bisrKXt2YXIgaD1vLnJlZFNxcigpLGw9Yy5yZWRTcXIoKSxkPWwucmVkU3FyKCksZj1oLnJlZEFkZChoKS5yZWRJQWRkKGgpLnJlZElBZGQoaS5yZWRNdWwodSkpLHA9by5yZWRNdWwobCksbT1mLnJlZFNxcigpLnJlZElTdWIocC5yZWRBZGQocCkpLGc9cC5yZWRJU3ViKG0pLHY9Zi5yZWRNdWwoZyk7dj12LnJlZElBZGQodikucmVkSVN1YihkKTt2YXIgYj1jLnJlZE11bChhKTtuKzE8dCYmKHU9dS5yZWRNdWwoZCkpLG89bSxhPWIsYz12fXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChvLGMucmVkTXVsKHIpLGEpfSxsLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxsLnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbigpe3ZhciB0LGUsbjtpZih0aGlzLnpPbmUpe3ZhciBpPXRoaXMueC5yZWRTcXIoKSxyPXRoaXMueS5yZWRTcXIoKSxvPXIucmVkU3FyKCkscz10aGlzLngucmVkQWRkKHIpLnJlZFNxcigpLnJlZElTdWIoaSkucmVkSVN1YihvKTtzPXMucmVkSUFkZChzKTt2YXIgYT1pLnJlZEFkZChpKS5yZWRJQWRkKGkpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyksYz1vLnJlZElBZGQobyk7Yz0oYz1jLnJlZElBZGQoYykpLnJlZElBZGQoYyksdD11LGU9YS5yZWRNdWwocy5yZWRJU3ViKHUpKS5yZWRJU3ViKGMpLG49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGg9dGhpcy54LnJlZFNxcigpLGw9dGhpcy55LnJlZFNxcigpLGQ9bC5yZWRTcXIoKSxmPXRoaXMueC5yZWRBZGQobCkucmVkU3FyKCkucmVkSVN1YihoKS5yZWRJU3ViKGQpO2Y9Zi5yZWRJQWRkKGYpO3ZhciBwPWgucmVkQWRkKGgpLnJlZElBZGQoaCksbT1wLnJlZFNxcigpLGc9ZC5yZWRJQWRkKGQpO2c9KGc9Zy5yZWRJQWRkKGcpKS5yZWRJQWRkKGcpLHQ9bS5yZWRJU3ViKGYpLnJlZElTdWIoZiksZT1wLnJlZE11bChmLnJlZElTdWIodCkpLnJlZElTdWIoZyksbj0obj10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQobil9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX3RocmVlRGJsPWZ1bmN0aW9uKCl7dmFyIHQsZSxuO2lmKHRoaXMuek9uZSl7dmFyIGk9dGhpcy54LnJlZFNxcigpLHI9dGhpcy55LnJlZFNxcigpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQocikucmVkU3FyKCkucmVkSVN1YihpKS5yZWRJU3ViKG8pO3M9cy5yZWRJQWRkKHMpO3ZhciBhPWkucmVkQWRkKGkpLnJlZElBZGQoaSkucmVkSUFkZCh0aGlzLmN1cnZlLmEpLHU9YS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7dD11O3ZhciBjPW8ucmVkSUFkZChvKTtjPShjPWMucmVkSUFkZChjKSkucmVkSUFkZChjKSxlPWEucmVkTXVsKHMucmVkSVN1Yih1KSkucmVkSVN1YihjKSxuPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBoPXRoaXMuei5yZWRTcXIoKSxsPXRoaXMueS5yZWRTcXIoKSxkPXRoaXMueC5yZWRNdWwobCksZj10aGlzLngucmVkU3ViKGgpLnJlZE11bCh0aGlzLngucmVkQWRkKGgpKTtmPWYucmVkQWRkKGYpLnJlZElBZGQoZik7dmFyIHA9ZC5yZWRJQWRkKGQpLG09KHA9cC5yZWRJQWRkKHApKS5yZWRBZGQocCk7dD1mLnJlZFNxcigpLnJlZElTdWIobSksbj10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihsKS5yZWRJU3ViKGgpO3ZhciBnPWwucmVkU3FyKCk7Zz0oZz0oZz1nLnJlZElBZGQoZykpLnJlZElBZGQoZykpLnJlZElBZGQoZyksZT1mLnJlZE11bChwLnJlZElTdWIodCkpLnJlZElTdWIoZyl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHQsZSxuKX0sbC5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY3VydmUuYSxlPXRoaXMueCxuPXRoaXMueSxpPXRoaXMueixyPWkucmVkU3FyKCkucmVkU3FyKCksbz1lLnJlZFNxcigpLHM9bi5yZWRTcXIoKSxhPW8ucmVkQWRkKG8pLnJlZElBZGQobykucmVkSUFkZCh0LnJlZE11bChyKSksdT1lLnJlZEFkZChlKSxjPSh1PXUucmVkSUFkZCh1KSkucmVkTXVsKHMpLGg9YS5yZWRTcXIoKS5yZWRJU3ViKGMucmVkQWRkKGMpKSxsPWMucmVkSVN1YihoKSxkPXMucmVkU3FyKCk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9YS5yZWRNdWwobCkucmVkSVN1YihkKSxwPW4ucmVkQWRkKG4pLnJlZE11bChpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaCxmLHApfSxsLnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJsKCkuYWRkKHRoaXMpO3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKSxpPWUucmVkU3FyKCkscj10LnJlZEFkZCh0KS5yZWRJQWRkKHQpLG89ci5yZWRTcXIoKSxzPXRoaXMueC5yZWRBZGQoZSkucmVkU3FyKCkucmVkSVN1Yih0KS5yZWRJU3ViKGkpLGE9KHM9KHM9KHM9cy5yZWRJQWRkKHMpKS5yZWRBZGQocykucmVkSUFkZChzKSkucmVkSVN1YihvKSkucmVkU3FyKCksdT1pLnJlZElBZGQoaSk7dT0odT0odT11LnJlZElBZGQodSkpLnJlZElBZGQodSkpLnJlZElBZGQodSk7dmFyIGM9ci5yZWRJQWRkKHMpLnJlZFNxcigpLnJlZElTdWIobykucmVkSVN1YihhKS5yZWRJU3ViKHUpLGg9ZS5yZWRNdWwoYyk7aD0oaD1oLnJlZElBZGQoaCkpLnJlZElBZGQoaCk7dmFyIGw9dGhpcy54LnJlZE11bChhKS5yZWRJU3ViKGgpO2w9KGw9bC5yZWRJQWRkKGwpKS5yZWRJQWRkKGwpO3ZhciBkPXRoaXMueS5yZWRNdWwoYy5yZWRNdWwodS5yZWRJU3ViKGMpKS5yZWRJU3ViKHMucmVkTXVsKGEpKSk7ZD0oZD0oZD1kLnJlZElBZGQoZCkpLnJlZElBZGQoZCkpLnJlZElBZGQoZCk7dmFyIGY9dGhpcy56LnJlZEFkZChzKS5yZWRTcXIoKS5yZWRJU3ViKG4pLnJlZElTdWIoYSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGwsZCxmKX0sbC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bmV3IG8odCxlKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGwucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe2lmKCJhZmZpbmUiPT09dC50eXBlKXJldHVybiB0aGlzLmVxKHQudG9KKCkpO2lmKHRoaXM9PT10KXJldHVybiEwO3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChuKS5yZWRJU3ViKHQueC5yZWRNdWwoZSkpLmNtcG4oMCkpcmV0dXJuITE7dmFyIGk9ZS5yZWRNdWwodGhpcy56KSxyPW4ucmVkTXVsKHQueik7cmV0dXJuIDA9PT10aGlzLnkucmVkTXVsKHIpLnJlZElTdWIodC55LnJlZE11bChpKSkuY21wbigwKX0sbC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuei5yZWRTcXIoKSxuPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChlKTtpZigwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMDtmb3IodmFyIGk9dC5jbG9uZSgpLHI9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bChlKTs7KXtpZihpLmlhZGQodGhpcy5jdXJ2ZS5uKSxpLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKG4ucmVkSUFkZChyKSwwPT09dGhpcy54LmNtcChuKSlyZXR1cm4hMH19LGwucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBKUG9pbnQgSW5maW5pdHk+IjoiPEVDIEpQb2ludCB4OiAiK3RoaXMueC50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnoudG9TdHJpbmcoMTYsMikrIj4ifSxsLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big0OCkscj1uKDMpLG89bigwKSxzPWkuYmFzZSxhPW4oMTApLnV0aWxzO2Z1bmN0aW9uIHUodCl7cy5jYWxsKHRoaXMsIm1vbnQiLHQpLHRoaXMuYT1uZXcgcih0LmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IHIodC5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgcig0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyByKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gYyh0LGUsbil7cy5CYXNlUG9pbnQuY2FsbCh0aGlzLHQsInByb2plY3RpdmUiKSxudWxsPT09ZSYmbnVsbD09PW4/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvKToodGhpcy54PW5ldyByKGUsMTYpLHRoaXMuej1uZXcgcihuLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfW8odSxzKSx0LmV4cG9ydHM9dSx1LnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10Lm5vcm1hbGl6ZSgpLngsbj1lLnJlZFNxcigpLGk9bi5yZWRNdWwoZSkucmVkQWRkKG4ucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChlKTtyZXR1cm4gMD09PWkucmVkU3FydCgpLnJlZFNxcigpLmNtcChpKX0sbyhjLHMuQmFzZVBvaW50KSx1LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnBvaW50KGEudG9BcnJheSh0LGUpLDEpfSx1LnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgYyh0aGlzLHQsZSl9LHUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbUpTT04odGhpcyx0KX0sYy5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sYy5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LGMuZnJvbUpTT049ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGModCxlWzBdLGVbMV18fHQub25lKX0sYy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxjLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sYy5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLGU9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLG49dC5yZWRTdWIoZSksaT10LnJlZE11bChlKSxyPW4ucmVkTXVsKGUucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChuKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGkscil9LGMucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLngucmVkQWRkKHRoaXMueiksaT10aGlzLngucmVkU3ViKHRoaXMueikscj10LngucmVkQWRkKHQueiksbz10LngucmVkU3ViKHQueikucmVkTXVsKG4pLHM9ci5yZWRNdWwoaSksYT1lLnoucmVkTXVsKG8ucmVkQWRkKHMpLnJlZFNxcigpKSx1PWUueC5yZWRNdWwoby5yZWRJU3ViKHMpLnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChhLHUpfSxjLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY2xvbmUoKSxuPXRoaXMsaT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCkscj1bXTswIT09ZS5jbXBuKDApO2UuaXVzaHJuKDEpKXIucHVzaChlLmFuZGxuKDEpKTtmb3IodmFyIG89ci5sZW5ndGgtMTtvPj0wO28tLSkwPT09cltvXT8obj1uLmRpZmZBZGQoaSx0aGlzKSxpPWkuZGJsKCkpOihpPW4uZGlmZkFkZChpLHRoaXMpLG49bi5kYmwoKSk7cmV0dXJuIGl9LGMucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGMucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxjLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcCh0LmdldFgoKSl9LGMucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpc30sYy5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oNDgpLHI9bigxMCksbz1uKDMpLHM9bigwKSxhPWkuYmFzZSx1PXIudXRpbHMuYXNzZXJ0O2Z1bmN0aW9uIGModCl7dGhpcy50d2lzdGVkPTEhPSgwfHQuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHx0LmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxhLmNhbGwodGhpcywiZWR3YXJkcyIsdCksdGhpcy5hPW5ldyBvKHQuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IG8odC5jLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5jMj10aGlzLmMucmVkU3FyKCksdGhpcy5kPW5ldyBvKHQuZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLHUoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfHQuYyl9ZnVuY3Rpb24gaCh0LGUsbixpLHIpe2EuQmFzZVBvaW50LmNhbGwodGhpcyx0LCJwcm9qZWN0aXZlIiksbnVsbD09PWUmJm51bGw9PT1uJiZudWxsPT09aT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBvKGUsMTYpLHRoaXMueT1uZXcgbyhuLDE2KSx0aGlzLno9aT9uZXcgbyhpLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9ciYmbmV3IG8ociwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYmKHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9cyhjLGEpLHQuZXhwb3J0cz1jLGMucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1PbmVBP3QucmVkTmVnKCk6dGhpcy5hLnJlZE11bCh0KX0sYy5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub25lQz90OnRoaXMuYy5yZWRNdWwodCl9LGMucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gdGhpcy5wb2ludCh0LGUsbixpKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChuKSkscj10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwobikpLHM9aS5yZWRNdWwoci5yZWRJbnZtKCkpLGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciB1PWEuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKGUmJiF1fHwhZSYmdSkmJihhPWEucmVkTmVnKCkpLHRoaXMucG9pbnQodCxhKX0sYy5wcm90b3R5cGUucG9pbnRGcm9tWT1mdW5jdGlvbih0LGUpeyh0PW5ldyBvKHQsMTYpKS5yZWR8fCh0PXQudG9SZWQodGhpcy5yZWQpKTt2YXIgbj10LnJlZFNxcigpLGk9bi5yZWRTdWIodGhpcy5jMikscj1uLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5yZWRTdWIodGhpcy5hKSxzPWkucmVkTXVsKHIucmVkSW52bSgpKTtpZigwPT09cy5jbXAodGhpcy56ZXJvKSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sdCl9dmFyIGE9cy5yZWRTcXJ0KCk7aWYoMCE9PWEucmVkU3FyKCkucmVkU3ViKHMpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiBhLmZyb21SZWQoKS5pc09kZCgpIT09ZSYmKGE9YS5yZWROZWcoKSksdGhpcy5wb2ludChhLHQpfSxjLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtpZih0LmlzSW5maW5pdHkoKSlyZXR1cm4hMDt0Lm5vcm1hbGl6ZSgpO3ZhciBlPXQueC5yZWRTcXIoKSxuPXQueS5yZWRTcXIoKSxpPWUucmVkTXVsKHRoaXMuYSkucmVkQWRkKG4pLHI9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoZSkucmVkTXVsKG4pKSk7cmV0dXJuIDA9PT1pLmNtcChyKX0scyhoLGEuQmFzZVBvaW50KSxjLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHQpe3JldHVybiBoLmZyb21KU09OKHRoaXMsdCl9LGMucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBuZXcgaCh0aGlzLHQsZSxuLGkpfSxoLmZyb21KU09OPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBoKHQsZVswXSxlWzFdLGVbMl0pfSxoLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LGgucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhpcy55LmNtcCh0aGlzLmN1cnZlLmMpKX0saC5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciB0PXRoaXMueC5yZWRTcXIoKSxlPXRoaXMueS5yZWRTcXIoKSxuPXRoaXMuei5yZWRTcXIoKTtuPW4ucmVkSUFkZChuKTt2YXIgaT10aGlzLmN1cnZlLl9tdWxBKHQpLHI9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpLnJlZElTdWIodCkucmVkSVN1YihlKSxvPWkucmVkQWRkKGUpLHM9by5yZWRTdWIobiksYT1pLnJlZFN1YihlKSx1PXIucmVkTXVsKHMpLGM9by5yZWRNdWwoYSksaD1yLnJlZE11bChhKSxsPXMucmVkTXVsKG8pO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHUsYyxsLGgpfSxoLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciB0LGUsbixpPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKSxyPXRoaXMueC5yZWRTcXIoKSxvPXRoaXMueS5yZWRTcXIoKTtpZih0aGlzLmN1cnZlLnR3aXN0ZWQpe3ZhciBzPShjPXRoaXMuY3VydmUuX211bEEocikpLnJlZEFkZChvKTtpZih0aGlzLnpPbmUpdD1pLnJlZFN1YihyKS5yZWRTdWIobykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUudHdvKSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZFNxcigpLnJlZFN1YihzKS5yZWRTdWIocyk7ZWxzZXt2YXIgYT10aGlzLnoucmVkU3FyKCksdT1zLnJlZFN1YihhKS5yZWRJU3ViKGEpO3Q9aS5yZWRTdWIocikucmVkSVN1YihvKS5yZWRNdWwodSksZT1zLnJlZE11bChjLnJlZFN1YihvKSksbj1zLnJlZE11bCh1KX19ZWxzZXt2YXIgYz1yLnJlZEFkZChvKTthPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSx1PWMucmVkU3ViKGEpLnJlZFN1YihhKTt0PXRoaXMuY3VydmUuX211bEMoaS5yZWRJU3ViKGMpKS5yZWRNdWwodSksZT10aGlzLmN1cnZlLl9tdWxDKGMpLnJlZE11bChyLnJlZElTdWIobykpLG49Yy5yZWRNdWwodSl9cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodCxlLG4pfSxoLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0saC5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKHQueS5yZWRTdWIodC54KSksbj10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKHQueS5yZWRBZGQodC54KSksaT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bCh0LnQpLHI9dGhpcy56LnJlZE11bCh0LnoucmVkQWRkKHQueikpLG89bi5yZWRTdWIoZSkscz1yLnJlZFN1YihpKSxhPXIucmVkQWRkKGkpLHU9bi5yZWRBZGQoZSksYz1vLnJlZE11bChzKSxoPWEucmVkTXVsKHUpLGw9by5yZWRNdWwodSksZD1zLnJlZE11bChhKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChjLGgsZCxsKX0saC5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpPXRoaXMuei5yZWRNdWwodC56KSxyPWkucmVkU3FyKCksbz10aGlzLngucmVkTXVsKHQueCkscz10aGlzLnkucmVkTXVsKHQueSksYT10aGlzLmN1cnZlLmQucmVkTXVsKG8pLnJlZE11bChzKSx1PXIucmVkU3ViKGEpLGM9ci5yZWRBZGQoYSksaD10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKHQueC5yZWRBZGQodC55KSkucmVkSVN1YihvKS5yZWRJU3ViKHMpLGw9aS5yZWRNdWwodSkucmVkTXVsKGgpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KGU9aS5yZWRNdWwoYykucmVkTXVsKHMucmVkU3ViKHRoaXMuY3VydmUuX211bEEobykpKSxuPXUucmVkTXVsKGMpKTooZT1pLnJlZE11bChjKS5yZWRNdWwocy5yZWRTdWIobykpLG49dGhpcy5jdXJ2ZS5fbXVsQyh1KS5yZWRNdWwoYykpLHRoaXMuY3VydmUucG9pbnQobCxlLG4pfSxoLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3Q6dC5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZCh0KTp0aGlzLl9wcm9qQWRkKHQpfSxoLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXModCk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyx0KTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsdCl9LGgucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCExKX0saC5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxlXSxbdCxuXSwyLCEwKX0saC5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHQpLHRoaXMueT10aGlzLnkucmVkTXVsKHQpLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVkTXVsKHQpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LGgucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX0saC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LGgucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxoLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fDA9PT10aGlzLmdldFgoKS5jbXAodC5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKHQuZ2V0WSgpKX0saC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKHQpe3ZhciBlPXQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKDA9PT10aGlzLnguY21wKGUpKXJldHVybiEwO2Zvcih2YXIgbj10LmNsb25lKCksaT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYobi5pYWRkKHRoaXMuY3VydmUubiksbi5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihlLnJlZElBZGQoaSksMD09PXRoaXMueC5jbXAoZSkpcmV0dXJuITB9fSxoLnByb3RvdHlwZS50b1A9aC5wcm90b3R5cGUubm9ybWFsaXplLGgucHJvdG90eXBlLm1peGVkQWRkPWgucHJvdG90eXBlLmFkZH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPWUsbz1uKDcwKSxzPW4oMTApLGE9cy51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gdSh0KXsic2hvcnQiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuc2hvcnQodCk6ImVkd2FyZHMiPT09dC50eXBlP3RoaXMuY3VydmU9bmV3IHMuY3VydmUuZWR3YXJkcyh0KTp0aGlzLmN1cnZlPW5ldyBzLmN1cnZlLm1vbnQodCksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD10Lmhhc2gsYSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLGEodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlvbiBjKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIG49bmV3IHUoZSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm59KSxufX0pfXIuUHJlc2V0Q3VydmU9dSxjKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxjKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpvLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxjKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksYygicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOm8uc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pLGMoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDpvLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KSxjKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6by5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksYygiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOm8uc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7aT1uKDIwMSl9Y2F0Y2godCl7aT12b2lkIDB9Yygic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6by5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIsbGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsaV19KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLnNoYTE9bigxOTYpLGUuc2hhMjI0PW4oMTk3KSxlLnNoYTI1Nj1uKDEwOCksZS5zaGEzODQ9bigxOTgpLGUuc2hhNTEyPW4oMTA5KX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMzQpLG89bigxMDcpLHM9aS5yb3RsMzIsYT1pLnN1bTMyLHU9aS5zdW0zMl81LGM9by5mdF8xLGg9ci5CbG9ja0hhc2gsbD1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gZCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQpKXJldHVybiBuZXcgZDtoLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9aS5pbmhlcml0cyhkLGgpLHQuZXhwb3J0cz1kLGQuYmxvY2tTaXplPTUxMixkLm91dFNpemU9MTYwLGQuaG1hY1N0cmVuZ3RoPTgwLGQucGFkTGVuZ3RoPTY0LGQucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5XLGk9MDtpPDE2O2krKyluW2ldPXRbZStpXTtmb3IoO2k8bi5sZW5ndGg7aSsrKW5baV09cyhuW2ktM11ebltpLThdXm5baS0xNF1ebltpLTE2XSwxKTt2YXIgcj10aGlzLmhbMF0sbz10aGlzLmhbMV0saD10aGlzLmhbMl0sZD10aGlzLmhbM10sZj10aGlzLmhbNF07Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHA9fn4oaS8yMCksbT11KHMociw1KSxjKHAsbyxoLGQpLGYsbltpXSxsW3BdKTtmPWQsZD1oLGg9cyhvLDMwKSxvPXIscj1tfXRoaXMuaFswXT1hKHRoaXMuaFswXSxyKSx0aGlzLmhbMV09YSh0aGlzLmhbMV0sbyksdGhpcy5oWzJdPWEodGhpcy5oWzJdLGgpLHRoaXMuaFszXT1hKHRoaXMuaFszXSxkKSx0aGlzLmhbNF09YSh0aGlzLmhbNF0sZil9LGQucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P2kudG9IZXgzMih0aGlzLmgsImJpZyIpOmkuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA4KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT01MTIsby5vdXRTaXplPTIyNCxvLmhtYWNTdHJlbmd0aD0xOTIsby5wYWRMZW5ndGg9NjQsby5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih0KXtyZXR1cm4iaGV4Ij09PXQ/aS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTA5KTtmdW5jdGlvbiBvKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbykpcmV0dXJuIG5ldyBvO3IuY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2MywyNDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4MDIzMSwxNzUwNjAzMDI1LDM2NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfWkuaW5oZXJpdHMobyxyKSx0LmV4cG9ydHM9byxvLmJsb2NrU2l6ZT0xMDI0LG8ub3V0U2l6ZT0zODQsby5obWFjU3RyZW5ndGg9MTkyLG8ucGFkTGVuZ3RoPTEyOCxvLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKTppLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigxNykscj1uKDM0KSxvPWkucm90bDMyLHM9aS5zdW0zMixhPWkuc3VtMzJfMyx1PWkuc3VtMzJfNCxjPXIuQmxvY2tIYXNoO2Z1bmN0aW9uIGgoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBoKSlyZXR1cm4gbmV3IGg7Yy5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifWZ1bmN0aW9uIGwodCxlLG4saSl7cmV0dXJuIHQ8PTE1P2Vebl5pOnQ8PTMxP2Umbnx+ZSZpOnQ8PTQ3PyhlfH5uKV5pOnQ8PTYzP2UmaXxuJn5pOmVeKG58fmkpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ8PTE1PzA6dDw9MzE/MTUxODUwMDI0OTp0PD00Nz8xODU5Nzc1MzkzOnQ8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOH1mdW5jdGlvbiBmKHQpe3JldHVybiB0PD0xNT8xMzUyODI5OTI2OnQ8PTMxPzE1NDg2MDM2ODQ6dDw9NDc/MTgzNjA3MjY5MTp0PD02Mz8yMDUzOTk0MjE3OjB9aS5pbmhlcml0cyhoLGMpLGUucmlwZW1kMTYwPWgsaC5ibG9ja1NpemU9NTEyLGgub3V0U2l6ZT0xNjAsaC5obWFjU3RyZW5ndGg9MTkyLGgucGFkTGVuZ3RoPTY0LGgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5oWzBdLGk9dGhpcy5oWzFdLHI9dGhpcy5oWzJdLGM9dGhpcy5oWzNdLGg9dGhpcy5oWzRdLGI9bix5PWksXz1yLHc9Yyx4PWgsTT0wO008ODA7TSsrKXt2YXIgUz1zKG8odShuLGwoTSxpLHIsYyksdFtwW01dK2VdLGQoTSkpLGdbTV0pLGgpO249aCxoPWMsYz1vKHIsMTApLHI9aSxpPVMsUz1zKG8odShiLGwoNzktTSx5LF8sdyksdFttW01dK2VdLGYoTSkpLHZbTV0pLHgpLGI9eCx4PXcsdz1vKF8sMTApLF89eSx5PVN9Uz1hKHRoaXMuaFsxXSxyLHcpLHRoaXMuaFsxXT1hKHRoaXMuaFsyXSxjLHgpLHRoaXMuaFsyXT1hKHRoaXMuaFszXSxoLGIpLHRoaXMuaFszXT1hKHRoaXMuaFs0XSxuLHkpLHRoaXMuaFs0XT1hKHRoaXMuaFswXSxpLF8pLHRoaXMuaFswXT1TfSxoLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHQpe3JldHVybiJoZXgiPT09dD9pLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTppLnNwbGl0MzIodGhpcy5oLCJsaXR0bGUiKX07dmFyIHA9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sbT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxnPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSx2PVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDE3KSxyPW4oMTQpO2Z1bmN0aW9uIG8odCxlLG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIG8pKXJldHVybiBuZXcgbyh0LGUsbik7dGhpcy5IYXNoPXQsdGhpcy5ibG9ja1NpemU9dC5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9dC5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KGkudG9BcnJheShlLG4pKX10LmV4cG9ydHM9byxvLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt0Lmxlbmd0aD50aGlzLmJsb2NrU2l6ZSYmKHQ9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh0KS5kaWdlc3QoKSkscih0Lmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgZT10Lmxlbmd0aDtlPHRoaXMuYmxvY2tTaXplO2UrKyl0LnB1c2goMCk7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj01NDtmb3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpLGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKHQpfSxvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUodCxlKSx0aGlzfSxvLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMjAzKSxvPW4oMTApLHM9by51dGlscy5hc3NlcnQsYT1uKDIwNCksdT1uKDIwNSk7ZnVuY3Rpb24gYyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGModCk7InN0cmluZyI9PXR5cGVvZiB0JiYocyhvLmN1cnZlcy5oYXNPd25Qcm9wZXJ0eSh0KSwiVW5rbm93biBjdXJ2ZSAiK3QpLHQ9by5jdXJ2ZXNbdF0pLHQgaW5zdGFuY2VvZiBvLmN1cnZlcy5QcmVzZXRDdXJ2ZSYmKHQ9e2N1cnZlOnR9KSx0aGlzLmN1cnZlPXQuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz10LmN1cnZlLmcsdGhpcy5nLnByZWNvbXB1dGUodC5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD10Lmhhc2h8fHQuY3VydmUuaGFzaH10LmV4cG9ydHM9YyxjLnByb3RvdHlwZS5rZXlQYWlyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYSh0aGlzLHQpfSxjLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21Qcml2YXRlKHRoaXMsdCxlKX0sYy5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0LGUpe3JldHVybiBhLmZyb21QdWJsaWModGhpcyx0LGUpfSxjLnByb3RvdHlwZS5nZW5LZXlQYWlyPWZ1bmN0aW9uKHQpe3R8fCh0PXt9KTtmb3IodmFyIGU9bmV3IHIoe2hhc2g6dGhpcy5oYXNoLHBlcnM6dC5wZXJzLHBlcnNFbmM6dC5wZXJzRW5jfHwidXRmOCIsZW50cm9weTp0LmVudHJvcHl8fG8ucmFuZCh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxlbnRyb3B5RW5jOnQuZW50cm9weSYmdC5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLG49dGhpcy5uLmJ5dGVMZW5ndGgoKSxzPXRoaXMubi5zdWIobmV3IGkoMikpOzspe3ZhciBhPW5ldyBpKGUuZ2VuZXJhdGUobikpO2lmKCEoYS5jbXAocyk+MCkpcmV0dXJuIGEuaWFkZG4oMSksdGhpcy5rZXlGcm9tUHJpdmF0ZShhKX19LGMucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbih0LGUpe3ZhciBuPTgqdC5ieXRlTGVuZ3RoKCktdGhpcy5uLmJpdExlbmd0aCgpO3JldHVybiBuPjAmJih0PXQudXNocm4obikpLCFlJiZ0LmNtcCh0aGlzLm4pPj0wP3Quc3ViKHRoaXMubik6dH0sYy5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUsbixvKXsib2JqZWN0Ij09dHlwZW9mIG4mJihvPW4sbj1udWxsKSxvfHwobz17fSksZT10aGlzLmtleUZyb21Qcml2YXRlKGUsbiksdD10aGlzLl90cnVuY2F0ZVRvTihuZXcgaSh0LDE2KSk7Zm9yKHZhciBzPXRoaXMubi5ieXRlTGVuZ3RoKCksYT1lLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIscyksYz10LnRvQXJyYXkoImJlIixzKSxoPW5ldyByKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OmEsbm9uY2U6YyxwZXJzOm8ucGVycyxwZXJzRW5jOm8ucGVyc0VuY3x8InV0ZjgifSksbD10aGlzLm4uc3ViKG5ldyBpKDEpKSxkPTA7O2QrKyl7dmFyIGY9by5rP28uayhkKTpuZXcgaShoLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChmPXRoaXMuX3RydW5jYXRlVG9OKGYsITApKS5jbXBuKDEpPD0wfHxmLmNtcChsKT49MCkpe3ZhciBwPXRoaXMuZy5tdWwoZik7aWYoIXAuaXNJbmZpbml0eSgpKXt2YXIgbT1wLmdldFgoKSxnPW0udW1vZCh0aGlzLm4pO2lmKDAhPT1nLmNtcG4oMCkpe3ZhciB2PWYuaW52bSh0aGlzLm4pLm11bChnLm11bChlLmdldFByaXZhdGUoKSkuaWFkZCh0KSk7aWYoMCE9PSh2PXYudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgYj0ocC5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09bS5jbXAoZyk/MjowKTtyZXR1cm4gby5jYW5vbmljYWwmJnYuY21wKHRoaXMubmgpPjAmJih2PXRoaXMubi5zdWIodiksYl49MSksbmV3IHUoe3I6ZyxzOnYscmVjb3ZlcnlQYXJhbTpifSl9fX19fX0sYy5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKHQsZSxuLHIpe3Q9dGhpcy5fdHJ1bmNhdGVUb04obmV3IGkodCwxNikpLG49dGhpcy5rZXlGcm9tUHVibGljKG4scik7dmFyIG89KGU9bmV3IHUoZSwiaGV4IikpLnIscz1lLnM7aWYoby5jbXBuKDEpPDB8fG8uY21wKHRoaXMubik+PTApcmV0dXJuITE7aWYocy5jbXBuKDEpPDB8fHMuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIGEsYz1zLmludm0odGhpcy5uKSxoPWMubXVsKHQpLnVtb2QodGhpcy5uKSxsPWMubXVsKG8pLnVtb2QodGhpcy5uKTtyZXR1cm4gdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrPyEoYT10aGlzLmcuam11bEFkZChoLG4uZ2V0UHVibGljKCksbCkpLmlzSW5maW5pdHkoKSYmYS5lcVhUb1Aobyk6IShhPXRoaXMuZy5tdWxBZGQoaCxuLmdldFB1YmxpYygpLGwpKS5pc0luZmluaXR5KCkmJjA9PT1hLmdldFgoKS51bW9kKHRoaXMubikuY21wKG8pfSxjLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKHQsZSxuLHIpe3MoKDMmbik9PT1uLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksZT1uZXcgdShlLHIpO3ZhciBvPXRoaXMubixhPW5ldyBpKHQpLGM9ZS5yLGg9ZS5zLGw9MSZuLGQ9bj4+MTtpZihjLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmZCl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO2M9ZD90aGlzLmN1cnZlLnBvaW50RnJvbVgoYy5hZGQodGhpcy5jdXJ2ZS5uKSxsKTp0aGlzLmN1cnZlLnBvaW50RnJvbVgoYyxsKTt2YXIgZj1lLnIuaW52bShvKSxwPW8uc3ViKGEpLm11bChmKS51bW9kKG8pLG09aC5tdWwoZikudW1vZChvKTtyZXR1cm4gdGhpcy5nLm11bEFkZChwLGMsbSl9LGMucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24odCxlLG4saSl7aWYobnVsbCE9PShlPW5ldyB1KGUsaSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIGUucmVjb3ZlcnlQYXJhbTtmb3IodmFyIHI9MDtyPDQ7cisrKXt2YXIgbzt0cnl7bz10aGlzLnJlY292ZXJQdWJLZXkodCxlLHIpfWNhdGNoKHQpe2NvbnRpbnVlfWlmKG8uZXEobikpcmV0dXJuIHJ9dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3IiKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwNiksbz1uKDE0KTtmdW5jdGlvbiBzKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXJldHVybiBuZXcgcyh0KTt0aGlzLmhhc2g9dC5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIXQucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9dC5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZT1yLnRvQXJyYXkodC5lbnRyb3B5LHQuZW50cm9weUVuY3x8ImhleCIpLG49ci50b0FycmF5KHQubm9uY2UsdC5ub25jZUVuY3x8ImhleCIpLGk9ci50b0FycmF5KHQucGVycyx0LnBlcnNFbmN8fCJoZXgiKTtvKGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl9pbml0KGUsbixpKX10LmV4cG9ydHM9cyxzLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5jb25jYXQoZSkuY29uY2F0KG4pO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIHI9MDtyPHRoaXMuVi5sZW5ndGg7cisrKXRoaXMuS1tyXT0wLHRoaXMuVltyXT0xO3RoaXMuX3VwZGF0ZShpKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn0scy5wcm90b3R5cGUuX2htYWM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0scy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7dCYmKGU9ZS51cGRhdGUodCkpLHRoaXMuSz1lLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksdCYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKHQpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxzLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24odCxlLG4saSl7InN0cmluZyIhPXR5cGVvZiBlJiYoaT1uLG49ZSxlPW51bGwpLHQ9ci50b0FycmF5KHQsZSksbj1yLnRvQXJyYXkobixpKSxvKHQubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl91cGRhdGUodC5jb25jYXQobnx8W10pKSx0aGlzLl9yZXNlZWQ9MX0scy5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24odCxlLG4saSl7aWYodGhpcy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTsic3RyaW5nIiE9dHlwZW9mIGUmJihpPW4sbj1lLGU9bnVsbCksbiYmKG49ci50b0FycmF5KG4saXx8ImhleCIpLHRoaXMuX3VwZGF0ZShuKSk7Zm9yKHZhciBvPVtdO28ubGVuZ3RoPHQ7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksbz1vLmNvbmNhdCh0aGlzLlYpO3ZhciBzPW8uc2xpY2UoMCx0KTtyZXR1cm4gdGhpcy5fdXBkYXRlKG4pLHRoaXMuX3Jlc2VlZCsrLHIuZW5jb2RlKHMsZSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMykscj1uKDEwKS51dGlscy5hc3NlcnQ7ZnVuY3Rpb24gbyh0LGUpe3RoaXMuZWM9dCx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLGUucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShlLnByaXYsZS5wcml2RW5jKSxlLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKGUucHViLGUucHViRW5jKX10LmV4cG9ydHM9byxvLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3B1YjplLHB1YkVuYzpufSl9LG8uZnJvbVByaXZhdGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlIGluc3RhbmNlb2Ygbz9lOm5ldyBvKHQse3ByaXY6ZSxwcml2RW5jOm59KX0sby5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFB1YmxpYygpO3JldHVybiB0LmlzSW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06dC52YWxpZGF0ZSgpP3QubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5ICogTiAhPSBPIn06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX0sby5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoZT10LHQ9bnVsbCksdGhpcy5wdWJ8fCh0aGlzLnB1Yj10aGlzLmVjLmcubXVsKHRoaXMucHJpdikpLGU/dGhpcy5wdWIuZW5jb2RlKGUsdCk6dGhpcy5wdWJ9LG8ucHJvdG90eXBlLmdldFByaXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJuImhleCI9PT10P3RoaXMucHJpdi50b1N0cmluZygxNiwyKTp0aGlzLnByaXZ9LG8ucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5wcml2PW5ldyBpKHQsZXx8MTYpLHRoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfSxvLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uKHQsZSl7aWYodC54fHx0LnkpcmV0dXJuIm1vbnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlP3IodC54LCJOZWVkIHggY29vcmRpbmF0ZSIpOiJzaG9ydCIhPT10aGlzLmVjLmN1cnZlLnR5cGUmJiJlZHdhcmRzIiE9PXRoaXMuZWMuY3VydmUudHlwZXx8cih0LngmJnQueSwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZSIpLHZvaWQodGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludCh0LngsdC55KSk7dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludCh0LGUpfSxvLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQubXVsKHRoaXMucHJpdikuZ2V0WCgpfSxvLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5lYy5zaWduKHQsdGhpcyxlLG4pfSxvLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkodCxlLHRoaXMpfSxvLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDMpLHI9bigxMCkudXRpbHMsbz1yLmFzc2VydDtmdW5jdGlvbiBzKHQsZSl7aWYodCBpbnN0YW5jZW9mIHMpcmV0dXJuIHQ7dGhpcy5faW1wb3J0REVSKHQsZSl8fChvKHQuciYmdC5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IGkodC5yLDE2KSx0aGlzLnM9bmV3IGkodC5zLDE2KSx2b2lkIDA9PT10LnJlY292ZXJ5UGFyYW0/dGhpcy5yZWNvdmVyeVBhcmFtPW51bGw6dGhpcy5yZWNvdmVyeVBhcmFtPXQucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gYSgpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiB1KHQsZSl7dmFyIG49dFtlLnBsYWNlKytdO2lmKCEoMTI4Jm4pKXJldHVybiBuO2Zvcih2YXIgaT0xNSZuLHI9MCxvPTAscz1lLnBsYWNlO288aTtvKysscysrKXI8PD04LHJ8PXRbc107cmV0dXJuIGUucGxhY2U9cyxyfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aC0xOyF0W2VdJiYhKDEyOCZ0W2UrMV0pJiZlPG47KWUrKztyZXR1cm4gMD09PWU/dDp0LnNsaWNlKGUpfWZ1bmN0aW9uIGgodCxlKXtpZihlPDEyOCl0LnB1c2goZSk7ZWxzZXt2YXIgbj0xKyhNYXRoLmxvZyhlKS9NYXRoLkxOMj4+PjMpO2Zvcih0LnB1c2goMTI4fG4pOy0tbjspdC5wdXNoKGU+Pj4objw8MykmMjU1KTt0LnB1c2goZSl9fXQuZXhwb3J0cz1zLHMucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24odCxlKXt0PXIudG9BcnJheSh0LGUpO3ZhciBuPW5ldyBhO2lmKDQ4IT09dFtuLnBsYWNlKytdKXJldHVybiExO2lmKHUodCxuKStuLnBsYWNlIT09dC5sZW5ndGgpcmV0dXJuITE7aWYoMiE9PXRbbi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgbz11KHQsbikscz10LnNsaWNlKG4ucGxhY2UsbytuLnBsYWNlKTtpZihuLnBsYWNlKz1vLDIhPT10W24ucGxhY2UrK10pcmV0dXJuITE7dmFyIGM9dSh0LG4pO2lmKHQubGVuZ3RoIT09YytuLnBsYWNlKXJldHVybiExO3ZhciBoPXQuc2xpY2Uobi5wbGFjZSxjK24ucGxhY2UpO3JldHVybiAwPT09c1swXSYmMTI4JnNbMV0mJihzPXMuc2xpY2UoMSkpLDA9PT1oWzBdJiYxMjgmaFsxXSYmKGg9aC5zbGljZSgxKSksdGhpcy5yPW5ldyBpKHMpLHRoaXMucz1uZXcgaShoKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0scy5wcm90b3R5cGUudG9ERVI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yLnRvQXJyYXkoKSxuPXRoaXMucy50b0FycmF5KCk7Zm9yKDEyOCZlWzBdJiYoZT1bMF0uY29uY2F0KGUpKSwxMjgmblswXSYmKG49WzBdLmNvbmNhdChuKSksZT1jKGUpLG49YyhuKTshKG5bMF18fDEyOCZuWzFdKTspbj1uLnNsaWNlKDEpO3ZhciBpPVsyXTtoKGksZS5sZW5ndGgpLChpPWkuY29uY2F0KGUpKS5wdXNoKDIpLGgoaSxuLmxlbmd0aCk7dmFyIG89aS5jb25jYXQobikscz1bNDhdO3JldHVybiBoKHMsby5sZW5ndGgpLHM9cy5jb25jYXQobyksci5lbmNvZGUocyx0KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9big3MCkscj1uKDEwKSxvPXIudXRpbHMscz1vLmFzc2VydCxhPW8ucGFyc2VCeXRlcyx1PW4oMjA3KSxjPW4oMjA4KTtmdW5jdGlvbiBoKHQpe2lmKHMoImVkMjU1MTkiPT09dCwib25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhciIpLCEodGhpcyBpbnN0YW5jZW9mIGgpKXJldHVybiBuZXcgaCh0KTt0PXIuY3VydmVzW3RdLmN1cnZlO3RoaXMuY3VydmU9dCx0aGlzLmc9dC5nLHRoaXMuZy5wcmVjb21wdXRlKHQubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50Q2xhc3M9dC5wb2ludCgpLmNvbnN0cnVjdG9yLHRoaXMuZW5jb2RpbmdMZW5ndGg9TWF0aC5jZWlsKHQubi5iaXRMZW5ndGgoKS84KSx0aGlzLmhhc2g9aS5zaGE1MTJ9dC5leHBvcnRzPWgsaC5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0LGUpe3Q9YSh0KTt2YXIgbj10aGlzLmtleUZyb21TZWNyZXQoZSksaT10aGlzLmhhc2hJbnQobi5tZXNzYWdlUHJlZml4KCksdCkscj10aGlzLmcubXVsKGkpLG89dGhpcy5lbmNvZGVQb2ludChyKSxzPXRoaXMuaGFzaEludChvLG4ucHViQnl0ZXMoKSx0KS5tdWwobi5wcml2KCkpLHU9aS5hZGQocykudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6cixTOnUsUmVuY29kZWQ6b30pfSxoLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24odCxlLG4pe3Q9YSh0KSxlPXRoaXMubWFrZVNpZ25hdHVyZShlKTt2YXIgaT10aGlzLmtleUZyb21QdWJsaWMobikscj10aGlzLmhhc2hJbnQoZS5SZW5jb2RlZCgpLGkucHViQnl0ZXMoKSx0KSxvPXRoaXMuZy5tdWwoZS5TKCkpO3JldHVybiBlLlIoKS5hZGQoaS5wdWIoKS5tdWwocikpLmVxKG8pfSxoLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuaGFzaCgpLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQudXBkYXRlKGFyZ3VtZW50c1tlXSk7cmV0dXJuIG8uaW50RnJvbUxFKHQuZGlnZXN0KCkpLnVtb2QodGhpcy5jdXJ2ZS5uKX0saC5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbih0KXtyZXR1cm4gdS5mcm9tUHVibGljKHRoaXMsdCl9LGgucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHUuZnJvbVNlY3JldCh0aGlzLHQpfSxoLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgYz90Om5ldyBjKHRoaXMsdCl9LGgucHJvdG90eXBlLmVuY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0WSgpLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gZVt0aGlzLmVuY29kaW5nTGVuZ3RoLTFdfD10LmdldFgoKS5pc09kZCgpPzEyODowLGV9LGgucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKHQpe3ZhciBlPSh0PW8ucGFyc2VCeXRlcyh0KSkubGVuZ3RoLTEsbj10LnNsaWNlKDAsZSkuY29uY2F0KC0xMjkmdFtlXSksaT0wIT0oMTI4JnRbZV0pLHI9by5pbnRGcm9tTEUobik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShyLGkpfSxoLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxoLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8uaW50RnJvbUxFKHQpfSxoLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDEwKS51dGlscyxyPWkuYXNzZXJ0LG89aS5wYXJzZUJ5dGVzLHM9aS5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlvbiBhKHQsZSl7dGhpcy5lZGRzYT10LHRoaXMuX3NlY3JldD1vKGUuc2VjcmV0KSx0LmlzUG9pbnQoZS5wdWIpP3RoaXMuX3B1Yj1lLnB1Yjp0aGlzLl9wdWJCeXRlcz1vKGUucHViKX1hLmZyb21QdWJsaWM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtwdWI6ZX0pfSxhLmZyb21TZWNyZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGE/ZTpuZXcgYSh0LHtzZWNyZXQ6ZX0pfSxhLnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxzKGEsInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSkscyhhLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSkscyhhLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGRzYSxlPXRoaXMuaGFzaCgpLG49dC5lbmNvZGluZ0xlbmd0aC0xLGk9ZS5zbGljZSgwLHQuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBpWzBdJj0yNDgsaVtuXSY9MTI3LGlbbl18PTY0LGl9KSxzKGEsInByaXYiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSkscyhhLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxzKGEsIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksYS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRzYS5zaWduKHQsdGhpcyl9LGEucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeSh0LGUsdGhpcyl9LGEucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxpLmVuY29kZSh0aGlzLnNlY3JldCgpLHQpfSxhLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZW5jb2RlKHRoaXMucHViQnl0ZXMoKSx0KX0sdC5leHBvcnRzPWF9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9bigzKSxyPW4oMTApLnV0aWxzLG89ci5hc3NlcnQscz1yLmNhY2hlZFByb3BlcnR5LGE9ci5wYXJzZUJ5dGVzO2Z1bmN0aW9uIHUodCxlKXt0aGlzLmVkZHNhPXQsIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1hKGUpKSxBcnJheS5pc0FycmF5KGUpJiYoZT17UjplLnNsaWNlKDAsdC5lbmNvZGluZ0xlbmd0aCksUzplLnNsaWNlKHQuZW5jb2RpbmdMZW5ndGgpfSksbyhlLlImJmUuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksdC5pc1BvaW50KGUuUikmJih0aGlzLl9SPWUuUiksZS5TIGluc3RhbmNlb2YgaSYmKHRoaXMuX1M9ZS5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KGUuUik/ZS5SOmUuUmVuY29kZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShlLlMpP2UuUzplLlNlbmNvZGVkfXModSwiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLHModSwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSkscyh1LCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9KSxzKHUsIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSl9KSx1LnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sdS5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4gci5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9LHQuZXhwb3J0cz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPW4oMzUpO2UuY2VydGlmaWNhdGU9bigyMjApO3ZhciByPWkuZGVmaW5lKCJSU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUV4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaW1lMSIpLmludCgpLHRoaXMua2V5KCJwcmltZTIiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQxIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MiIpLmludCgpLHRoaXMua2V5KCJjb2VmZmljaWVudCIpLmludCgpKX0pO2UuUlNBUHJpdmF0ZUtleT1yO3ZhciBvPWkuZGVmaW5lKCJSU0FQdWJsaWNLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSl9KTtlLlJTQVB1YmxpY0tleT1vO3ZhciBzPWkuZGVmaW5lKCJTdWJqZWN0UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKGEpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7ZS5QdWJsaWNLZXk9czt2YXIgYT1pLmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSx1PWkuZGVmaW5lKCJQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoYSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5Qcml2YXRlS2V5PXU7dmFyIGM9aS5kZWZpbmUoIkVuY3J5cHRlZFByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgiZGVjcnlwdCIpLnNlcSgpLm9iaih0aGlzLmtleSgia2RlIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImtkZXBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgic2FsdCIpLm9jdHN0cigpLHRoaXMua2V5KCJpdGVycyIpLmludCgpKSksdGhpcy5rZXkoImNpcGhlciIpLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnbyIpLm9iamlkKCksdGhpcy5rZXkoIml2Iikub2N0c3RyKCkpKSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7ZS5FbmNyeXB0ZWRQcml2YXRlS2V5PWM7dmFyIGg9aS5kZWZpbmUoIkRTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSx0aGlzLmtleSgicHViX2tleSIpLmludCgpLHRoaXMua2V5KCJwcml2X2tleSIpLmludCgpKX0pO2UuRFNBUHJpdmF0ZUtleT1oLGUuRFNBcGFyYW09aS5kZWZpbmUoIkRTQXBhcmFtIixmdW5jdGlvbigpe3RoaXMuaW50KCl9KTt2YXIgbD1pLmRlZmluZSgiRUNQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInByaXZhdGVLZXkiKS5vY3RzdHIoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKGQpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO2UuRUNQcml2YXRlS2V5PWw7dmFyIGQ9aS5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFtZWRDdXJ2ZTp0aGlzLm9iamlkKCl9KX0pO2Uuc2lnbmF0dXJlPWkuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIiKS5pbnQoKSx0aGlzLmtleSgicyIpLmludCgpKX0pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigzNSkscj1uKDApO2Z1bmN0aW9uIG8odCxlKXt0aGlzLm5hbWU9dCx0aGlzLmJvZHk9ZSx0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319ZS5kZWZpbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8odCxlKX0sby5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXtlPW4oMjExKS5ydW5JblRoaXNDb250ZXh0KCIoZnVuY3Rpb24gIit0aGlzLm5hbWUrIihlbnRpdHkpIHtcbiAgdGhpcy5faW5pdE5hbWVkKGVudGl0eSk7XG59KSIpfWNhdGNoKHQpe2U9ZnVuY3Rpb24odCl7dGhpcy5faW5pdE5hbWVkKHQpfX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oZSl7dC5jYWxsKHRoaXMsZSl9LG5ldyBlKHRoaXMpfSxvLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD10fHwiZGVyIix0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5kZWNvZGVyc1t0XT10aGlzLl9jcmVhdGVOYW1lZChpLmRlY29kZXJzW3RdKSksdGhpcy5kZWNvZGVyc1t0XX0sby5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fZ2V0RGVjb2RlcihlKS5kZWNvZGUodCxuKX0sby5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dHx8ImRlciIsdGhpcy5lbmNvZGVycy5oYXNPd25Qcm9wZXJ0eSh0KXx8KHRoaXMuZW5jb2RlcnNbdF09dGhpcy5fY3JlYXRlTmFtZWQoaS5lbmNvZGVyc1t0XSkpLHRoaXMuZW5jb2RlcnNbdF19LG8ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZSkuZW5jb2RlKHQsbil9fSxmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaW5kZXhPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMiksT2JqZWN0X2tleXM9ZnVuY3Rpb24odCl7aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWUucHVzaChuKTtyZXR1cm4gZX0sZm9yRWFjaD1mdW5jdGlvbih0LGUpe2lmKHQuZm9yRWFjaClyZXR1cm4gdC5mb3JFYWNoKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWUodFtuXSxuLHQpfSxkZWZpbmVQcm9wPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIl8iLHt9KSxmdW5jdGlvbih0LGUsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7d3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsdmFsdWU6bn0pfX1jYXRjaCh0KXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3RbZV09bn19fSgpLGdsb2JhbHM9WyJBcnJheSIsIkJvb2xlYW4iLCJEYXRlIiwiRXJyb3IiLCJFdmFsRXJyb3IiLCJGdW5jdGlvbiIsIkluZmluaXR5IiwiSlNPTiIsIk1hdGgiLCJOYU4iLCJOdW1iZXIiLCJPYmplY3QiLCJSYW5nZUVycm9yIiwiUmVmZXJlbmNlRXJyb3IiLCJSZWdFeHAiLCJTdHJpbmciLCJTeW50YXhFcnJvciIsIlR5cGVFcnJvciIsIlVSSUVycm9yIiwiZGVjb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwiZXZhbCIsImlzRmluaXRlIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJ1bmVzY2FwZSJdO2Z1bmN0aW9uIENvbnRleHQoKXt9Q29udGV4dC5wcm90b3R5cGU9e307dmFyIFNjcmlwdD1leHBvcnRzLlNjcmlwdD1mdW5jdGlvbih0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTY3JpcHQpKXJldHVybiBuZXcgU2NyaXB0KHQpO3RoaXMuY29kZT10fTtTY3JpcHQucHJvdG90eXBlLnJ1bkluQ29udGV4dD1mdW5jdGlvbih0KXtpZighKHQgaW5zdGFuY2VvZiBDb250ZXh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJuZWVkcyBhICdjb250ZXh0JyBhcmd1bWVudC4iKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtlLnN0eWxlfHwoZS5zdHlsZT17fSksZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciBuPWUuY29udGVudFdpbmRvdyxpPW4uZXZhbCxyPW4uZXhlY1NjcmlwdDshaSYmciYmKHIuY2FsbChuLCJudWxsIiksaT1uLmV2YWwpLGZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24oZSl7bltlXT10W2VdfSksZm9yRWFjaChnbG9iYWxzLGZ1bmN0aW9uKGUpe3RbZV0mJihuW2VdPXRbZV0pfSk7dmFyIG89T2JqZWN0X2tleXMobikscz1pLmNhbGwobix0aGlzLmNvZGUpO3JldHVybiBmb3JFYWNoKE9iamVjdF9rZXlzKG4pLGZ1bmN0aW9uKGUpeyhlIGluIHR8fC0xPT09aW5kZXhPZihvLGUpKSYmKHRbZV09bltlXSl9KSxmb3JFYWNoKGdsb2JhbHMsZnVuY3Rpb24oZSl7ZSBpbiB0fHxkZWZpbmVQcm9wKHQsZSxuW2VdKX0pLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSksc30sU2NyaXB0LnByb3RvdHlwZS5ydW5JblRoaXNDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGV2YWwodGhpcy5jb2RlKX0sU2NyaXB0LnByb3RvdHlwZS5ydW5Jbk5ld0NvbnRleHQ9ZnVuY3Rpb24odCl7dmFyIGU9U2NyaXB0LmNyZWF0ZUNvbnRleHQodCksbj10aGlzLnJ1bkluQ29udGV4dChlKTtyZXR1cm4gZm9yRWFjaChPYmplY3Rfa2V5cyhlKSxmdW5jdGlvbihuKXt0W25dPWVbbl19KSxufSxmb3JFYWNoKE9iamVjdF9rZXlzKFNjcmlwdC5wcm90b3R5cGUpLGZ1bmN0aW9uKHQpe2V4cG9ydHNbdF09U2NyaXB0W3RdPWZ1bmN0aW9uKGUpe3ZhciBuPVNjcmlwdChlKTtyZXR1cm4gblt0XS5hcHBseShuLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX19KSxleHBvcnRzLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0KXtyZXR1cm4gZXhwb3J0cy5TY3JpcHQodCl9LGV4cG9ydHMuY3JlYXRlQ29udGV4dD1TY3JpcHQuY3JlYXRlQ29udGV4dD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQ29udGV4dDtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJmZvckVhY2goT2JqZWN0X2tleXModCksZnVuY3Rpb24obil7ZVtuXT10W25dfSksZX19LGZ1bmN0aW9uKHQsZSl7dmFyIG49W10uaW5kZXhPZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpaWYodFtpXT09PWUpcmV0dXJuIGk7cmV0dXJuLTF9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigwKTtmdW5jdGlvbiByKHQpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczp0fHx7fSxlcnJvcnM6W119fWZ1bmN0aW9uIG8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnJldGhyb3coZSl9ZS5SZXBvcnRlcj1yLHIucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBvfSxyLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm57b2JqOnQub2JqLHBhdGhMZW46dC5wYXRoLmxlbmd0aH19LHIucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtlLm9iaj10Lm9iaixlLnBhdGg9ZS5wYXRoLnNsaWNlKDAsdC5wYXRoTGVuKX0sci5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKHQpfSxyLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7ZS5wYXRoPWUucGF0aC5zbGljZSgwLHQtMSl9LHIucHJvdG90eXBlLmxlYXZlS2V5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9yZXBvcnRlclN0YXRlO3RoaXMuZXhpdEtleSh0KSxudWxsIT09aS5vYmomJihpLm9ialtlXT1uKX0sci5wcm90b3R5cGUucGF0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbigiLyIpfSxyLnByb3RvdHlwZS5lbnRlck9iamVjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3JlcG9ydGVyU3RhdGUsZT10Lm9iajtyZXR1cm4gdC5vYmo9e30sZX0sci5wcm90b3R5cGUubGVhdmVPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxuPWUub2JqO3JldHVybiBlLm9iaj10LG59LHIucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5fcmVwb3J0ZXJTdGF0ZSxpPXQgaW5zdGFuY2VvZiBvO2lmKGU9aT90Om5ldyBvKG4ucGF0aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5KHQpKyJdIn0pLmpvaW4oIiIpLHQubWVzc2FnZXx8dCx0LnN0YWNrKSwhbi5vcHRpb25zLnBhcnRpYWwpdGhyb3cgZTtyZXR1cm4gaXx8bi5lcnJvcnMucHVzaChlKSxlfSxyLnByb3RvdHlwZS53cmFwUmVzdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJuIGUub3B0aW9ucy5wYXJ0aWFsP3tyZXN1bHQ6dGhpcy5pc0Vycm9yKHQpP251bGw6dCxlcnJvcnM6ZS5lcnJvcnN9OnR9LGkobyxFcnJvciksby5wcm90b3R5cGUucmV0aHJvdz1mdW5jdGlvbih0KXtpZih0aGlzLm1lc3NhZ2U9dCsiIGF0OiAiKyh0aGlzLnBhdGh8fCIoc2hhbGxvdykiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxvKSwhdGhpcy5zdGFjayl0cnl7dGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSl9Y2F0Y2godCl7dGhpcy5zdGFjaz10LnN0YWNrfXJldHVybiB0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzYpLlJlcG9ydGVyLHI9bigzNikuRW5jb2RlckJ1ZmZlcixvPW4oMzYpLkRlY29kZXJCdWZmZXIscz1uKDE0KSxhPVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0ciIsInZpZGVvc3RyIl0sdT1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KGEpO2Z1bmN0aW9uIGModCxlKXt2YXIgbj17fTt0aGlzLl9iYXNlU3RhdGU9bixuLmVuYz10LG4ucGFyZW50PWV8fG51bGwsbi5jaGlsZHJlbj1udWxsLG4udGFnPW51bGwsbi5hcmdzPW51bGwsbi5yZXZlcnNlQXJncz1udWxsLG4uY2hvaWNlPW51bGwsbi5vcHRpb25hbD0hMSxuLmFueT0hMSxuLm9iaj0hMSxuLnVzZT1udWxsLG4udXNlRGVjb2Rlcj1udWxsLG4ua2V5PW51bGwsbi5kZWZhdWx0PW51bGwsbi5leHBsaWNpdD1udWxsLG4uaW1wbGljaXQ9bnVsbCxuLmNvbnRhaW5zPW51bGwsbi5wYXJlbnR8fChuLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9dC5leHBvcnRzPWM7dmFyIGg9WyJlbmMiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInRhZyIsImFyZ3MiLCJyZXZlcnNlQXJncyIsImNob2ljZSIsIm9wdGlvbmFsIiwiYW55Iiwib2JqIiwidXNlIiwiYWx0ZXJlZFVzZSIsImtleSIsImRlZmF1bHQiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiY29udGFpbnMiXTtjLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPXt9O2guZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KTt2YXIgbj1uZXcgdGhpcy5jb25zdHJ1Y3RvcihlLnBhcmVudCk7cmV0dXJuIG4uX2Jhc2VTdGF0ZT1lLG59LGMucHJvdG90eXBlLl93cmFwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYmFzZVN0YXRlO3UuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzW2VdPWZ1bmN0aW9uKCl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIHQuY2hpbGRyZW4ucHVzaChuKSxuW2VdLmFwcGx5KG4sYXJndW1lbnRzKX19LHRoaXMpfSxjLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cyhudWxsPT09ZS5wYXJlbnQpLHQuY2FsbCh0aGlzKSxlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcykscy5lcXVhbChlLmNoaWxkcmVuLmxlbmd0aCwxLCJSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQiKX0sYy5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSx0aGlzKTt0PXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiEodCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpfSx0aGlzKSwwIT09bi5sZW5ndGgmJihzKG51bGw9PT1lLmNoaWxkcmVuKSxlLmNoaWxkcmVuPW4sbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT10Lmxlbmd0aCYmKHMobnVsbD09PWUuYXJncyksZS5hcmdzPXQsZS5yZXZlcnNlQXJncz10Lm1hcChmdW5jdGlvbih0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fHQuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIHQ7dmFyIGU9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7bj09KDB8bikmJihufD0wKTt2YXIgaT10W25dO2VbaV09bn0pLGV9KSl9LFsiX3BlZWtUYWciLCJfZGVjb2RlVGFnIiwiX3VzZSIsIl9kZWNvZGVTdHIiLCJfZGVjb2RlT2JqaWQiLCJfZGVjb2RlVGltZSIsIl9kZWNvZGVOdWxsIiwiX2RlY29kZUludCIsIl9kZWNvZGVCb29sIiwiX2RlY29kZUxpc3QiLCJfZW5jb2RlQ29tcG9zaXRlIiwiX2VuY29kZVN0ciIsIl9lbmNvZGVPYmppZCIsIl9lbmNvZGVUaW1lIiwiX2VuY29kZU51bGwiLCJfZW5jb2RlSW50IiwiX2VuY29kZUJvb2wiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3Rocm93IG5ldyBFcnJvcih0KyIgbm90IGltcGxlbWVudGVkIGZvciBlbmNvZGluZzogIitlLmVuYyl9fSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2MucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gcyhudWxsPT09ZS50YWcpLGUudGFnPXQsdGhpcy5fdXNlQXJncyhuKSx0aGlzfX0pLGMucHJvdG90eXBlLnVzZT1mdW5jdGlvbih0KXtzKHQpO3ZhciBlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gcyhudWxsPT09ZS51c2UpLGUudXNlPXQsdGhpc30sYy5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LGMucHJvdG90eXBlLmRlZj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZGVmYXVsdCksZS5kZWZhdWx0PXQsZS5vcHRpb25hbD0hMCx0aGlzfSxjLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUuZXhwbGljaXQmJm51bGw9PT1lLmltcGxpY2l0KSxlLmV4cGxpY2l0PXQsdGhpc30sYy5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmV4cGxpY2l0JiZudWxsPT09ZS5pbXBsaWNpdCksZS5pbXBsaWNpdD10LHRoaXN9LGMucHJvdG90eXBlLm9iaj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2Jhc2VTdGF0ZSxlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQub2JqPSEwLDAhPT1lLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhlKSx0aGlzfSxjLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmtleSksZS5rZXk9dCx0aGlzfSxjLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxjLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBzKG51bGw9PT1lLmNob2ljZSksZS5jaG9pY2U9dCx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSx0aGlzfSxjLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIHMobnVsbD09PWUudXNlKSxlLmNvbnRhaW5zPXQsdGhpc30sYy5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09bi5wYXJlbnQpcmV0dXJuIHQud3JhcFJlc3VsdChuLmNoaWxkcmVuWzBdLl9kZWNvZGUodCxlKSk7dmFyIGkscj1uLmRlZmF1bHQscz0hMCxhPW51bGw7aWYobnVsbCE9PW4ua2V5JiYoYT10LmVudGVyS2V5KG4ua2V5KSksbi5vcHRpb25hbCl7dmFyIHU9bnVsbDtpZihudWxsIT09bi5leHBsaWNpdD91PW4uZXhwbGljaXQ6bnVsbCE9PW4uaW1wbGljaXQ/dT1uLmltcGxpY2l0Om51bGwhPT1uLnRhZyYmKHU9bi50YWcpLG51bGwhPT11fHxuLmFueSl7aWYocz10aGlzLl9wZWVrVGFnKHQsdSxuLmFueSksdC5pc0Vycm9yKHMpKXJldHVybiBzfWVsc2V7dmFyIGM9dC5zYXZlKCk7dHJ5e251bGw9PT1uLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKG4udGFnLHQsZSk6dGhpcy5fZGVjb2RlQ2hvaWNlKHQsZSkscz0hMH1jYXRjaCh0KXtzPSExfXQucmVzdG9yZShjKX19aWYobi5vYmomJnMmJihpPXQuZW50ZXJPYmplY3QoKSkscyl7aWYobnVsbCE9PW4uZXhwbGljaXQpe3ZhciBoPXRoaXMuX2RlY29kZVRhZyh0LG4uZXhwbGljaXQpO2lmKHQuaXNFcnJvcihoKSlyZXR1cm4gaDt0PWh9dmFyIGw9dC5vZmZzZXQ7aWYobnVsbD09PW4udXNlJiZudWxsPT09bi5jaG9pY2Upe2lmKG4uYW55KWM9dC5zYXZlKCk7dmFyIGQ9dGhpcy5fZGVjb2RlVGFnKHQsbnVsbCE9PW4uaW1wbGljaXQ/bi5pbXBsaWNpdDpuLnRhZyxuLmFueSk7aWYodC5pc0Vycm9yKGQpKXJldHVybiBkO24uYW55P3I9dC5yYXcoYyk6dD1kfWlmKGUmJmUudHJhY2smJm51bGwhPT1uLnRhZyYmZS50cmFjayh0LnBhdGgoKSxsLHQubGVuZ3RoLCJ0YWdnZWQiKSxlJiZlLnRyYWNrJiZudWxsIT09bi50YWcmJmUudHJhY2sodC5wYXRoKCksdC5vZmZzZXQsdC5sZW5ndGgsImNvbnRlbnQiKSxyPW4uYW55P3I6bnVsbD09PW4uY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMobi50YWcsdCxlKTp0aGlzLl9kZWNvZGVDaG9pY2UodCxlKSx0LmlzRXJyb3IocikpcmV0dXJuIHI7aWYobi5hbnl8fG51bGwhPT1uLmNob2ljZXx8bnVsbD09PW4uY2hpbGRyZW58fG4uY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9kZWNvZGUodCxlKX0pLG4uY29udGFpbnMmJigib2N0c3RyIj09PW4udGFnfHwiYml0c3RyIj09PW4udGFnKSl7dmFyIGY9bmV3IG8ocik7cj10aGlzLl9nZXRVc2Uobi5jb250YWlucyx0Ll9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShmLGUpfX1yZXR1cm4gbi5vYmomJnMmJihyPXQubGVhdmVPYmplY3QoaSkpLG51bGw9PT1uLmtleXx8bnVsbD09PXImJiEwIT09cz9udWxsIT09YSYmdC5leGl0S2V5KGEpOnQubGVhdmVLZXkoYSxuLmtleSxyKSxyfSxjLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYz1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09dHx8InNldCI9PT10P251bGw6InNlcW9mIj09PXR8fCJzZXRvZiI9PT10P3RoaXMuX2RlY29kZUxpc3QoZSx0LGkuYXJnc1swXSxuKTovc3RyJC8udGVzdCh0KT90aGlzLl9kZWNvZGVTdHIoZSx0LG4pOiJvYmppZCI9PT10JiZpLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQoZSxpLmFyZ3NbMF0saS5hcmdzWzFdLG4pOiJvYmppZCI9PT10P3RoaXMuX2RlY29kZU9iamlkKGUsbnVsbCxudWxsLG4pOiJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQ/dGhpcy5fZGVjb2RlVGltZShlLHQsbik6Im51bGxfIj09PXQ/dGhpcy5fZGVjb2RlTnVsbChlLG4pOiJib29sIj09PXQ/dGhpcy5fZGVjb2RlQm9vbChlLG4pOiJvYmpEZXNjIj09PXQ/dGhpcy5fZGVjb2RlU3RyKGUsdCxuKToiaW50Ij09PXR8fCJlbnVtIj09PXQ/dGhpcy5fZGVjb2RlSW50KGUsaS5hcmdzJiZpLmFyZ3NbMF0sbik6bnVsbCE9PWkudXNlP3RoaXMuX2dldFVzZShpLnVzZSxlLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShlLG4pOmUuZXJyb3IoInVua25vd24gdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBuLnVzZURlY29kZXI9dGhpcy5fdXNlKHQsZSkscyhudWxsPT09bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUucGFyZW50KSxuLnVzZURlY29kZXI9bi51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF0sbi5pbXBsaWNpdCE9PW4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0JiYobi51c2VEZWNvZGVyPW4udXNlRGVjb2Rlci5jbG9uZSgpLG4udXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0PW4uaW1wbGljaXQpLG4udXNlRGVjb2Rlcn0sYy5wcm90b3R5cGUuX2RlY29kZUNob2ljZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Jhc2VTdGF0ZSxpPW51bGwscj0hMTtyZXR1cm4gT2JqZWN0LmtleXMobi5jaG9pY2UpLnNvbWUoZnVuY3Rpb24obyl7dmFyIHM9dC5zYXZlKCksYT1uLmNob2ljZVtvXTt0cnl7dmFyIHU9YS5fZGVjb2RlKHQsZSk7aWYodC5pc0Vycm9yKHUpKXJldHVybiExO2k9e3R5cGU6byx2YWx1ZTp1fSxyPSEwfWNhdGNoKGUpe3JldHVybiB0LnJlc3RvcmUocyksITF9cmV0dXJuITB9LHRoaXMpLHI/aTp0LmVycm9yKCJDaG9pY2Ugbm90IG1hdGNoZWQiKX0sYy5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyByKHQsdGhpcy5yZXBvcnRlcil9LGMucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09aS5kZWZhdWx0fHxpLmRlZmF1bHQhPT10KXt2YXIgcj10aGlzLl9lbmNvZGVWYWx1ZSh0LGUsbik7aWYodm9pZCAwIT09ciYmIXRoaXMuX3NraXBEZWZhdWx0KHIsZSxuKSlyZXR1cm4gcn19LGMucHJvdG90eXBlLl9lbmNvZGVWYWx1ZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1yLnBhcmVudClyZXR1cm4gci5jaGlsZHJlblswXS5fZW5jb2RlKHQsZXx8bmV3IGkpO3ZhciBvPW51bGw7aWYodGhpcy5yZXBvcnRlcj1lLHIub3B0aW9uYWwmJnZvaWQgMD09PXQpe2lmKG51bGw9PT1yLmRlZmF1bHQpcmV0dXJuO3Q9ci5kZWZhdWx0fXZhciBzPW51bGwsYT0hMTtpZihyLmFueSlvPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodCk7ZWxzZSBpZihyLmNob2ljZSlvPXRoaXMuX2VuY29kZUNob2ljZSh0LGUpO2Vsc2UgaWYoci5jb250YWlucylzPXRoaXMuX2dldFVzZShyLmNvbnRhaW5zLG4pLl9lbmNvZGUodCxlKSxhPSEwO2Vsc2UgaWYoci5jaGlsZHJlbilzPXIuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKG4pe2lmKCJudWxsXyI9PT1uLl9iYXNlU3RhdGUudGFnKXJldHVybiBuLl9lbmNvZGUobnVsbCxlLHQpO2lmKG51bGw9PT1uLl9iYXNlU3RhdGUua2V5KXJldHVybiBlLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO3ZhciBpPWUuZW50ZXJLZXkobi5fYmFzZVN0YXRlLmtleSk7aWYoIm9iamVjdCIhPXR5cGVvZiB0KXJldHVybiBlLmVycm9yKCJDaGlsZCBleHBlY3RlZCwgYnV0IGlucHV0IGlzIG5vdCBvYmplY3QiKTt2YXIgcj1uLl9lbmNvZGUodFtuLl9iYXNlU3RhdGUua2V5XSxlLHQpO3JldHVybiBlLmxlYXZlS2V5KGkpLHJ9LHRoaXMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLHM9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzKTtlbHNlIGlmKCJzZXFvZiI9PT1yLnRhZ3x8InNldG9mIj09PXIudGFnKXtpZighci5hcmdzfHwxIT09ci5hcmdzLmxlbmd0aClyZXR1cm4gZS5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK3IudGFnKTtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZS5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO3ZhciB1PXRoaXMuY2xvbmUoKTt1Ll9iYXNlU3RhdGUuaW1wbGljaXQ9bnVsbCxzPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodC5tYXAoZnVuY3Rpb24obil7dmFyIGk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiB0aGlzLl9nZXRVc2UoaS5hcmdzWzBdLHQpLl9lbmNvZGUobixlKX0sdSkpfWVsc2UgbnVsbCE9PXIudXNlP289dGhpcy5fZ2V0VXNlKHIudXNlLG4pLl9lbmNvZGUodCxlKToocz10aGlzLl9lbmNvZGVQcmltaXRpdmUoci50YWcsdCksYT0hMCk7aWYoIXIuYW55JiZudWxsPT09ci5jaG9pY2Upe3ZhciBjPW51bGwhPT1yLmltcGxpY2l0P3IuaW1wbGljaXQ6ci50YWcsaD1udWxsPT09ci5pbXBsaWNpdD8idW5pdmVyc2FsIjoiY29udGV4dCI7bnVsbD09PWM/bnVsbD09PXIudXNlJiZlLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09ci51c2UmJihvPXRoaXMuX2VuY29kZUNvbXBvc2l0ZShjLGEsaCxzKSl9cmV0dXJuIG51bGwhPT1yLmV4cGxpY2l0JiYobz10aGlzLl9lbmNvZGVDb21wb3NpdGUoci5leHBsaWNpdCwhMSwiY29udGV4dCIsbykpLG99LGMucHJvdG90eXBlLl9lbmNvZGVDaG9pY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9iYXNlU3RhdGUsaT1uLmNob2ljZVt0LnR5cGVdO3JldHVybiBpfHxzKCExLHQudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKG4uY2hvaWNlKSkpLGkuX2VuY29kZSh0LnZhbHVlLGUpfSxjLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KHQpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoZSx0KTtpZigib2JqaWQiPT09dCYmbi5hcmdzKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChlLG4ucmV2ZXJzZUFyZ3NbMF0sbi5hcmdzWzFdKTtpZigib2JqaWQiPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoZSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PXR8fCJ1dGN0aW1lIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoZSx0KTtpZigibnVsbF8iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09dHx8ImVudW0iPT09dClyZXR1cm4gdGhpcy5fZW5jb2RlSW50KGUsbi5hcmdzJiZuLnJldmVyc2VBcmdzWzBdKTtpZigiYm9vbCI9PT10KXJldHVybiB0aGlzLl9lbmNvZGVCb29sKGUpO2lmKCJvYmpEZXNjIj09PXQpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihlLHQpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK3QpfSxjLnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bMC05IF0qJC8udGVzdCh0KX0sYy5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24odCl7cmV0dXJuL15bQS1aYS16MC05ICdcKFwpXCssXC1cLlwvOj1cP10qJC8udGVzdCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDExMSk7ZS50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIsMjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LGUudGFnQ2xhc3NCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZ0NsYXNzKSxlLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sZS50YWdCeU5hbWU9aS5fcmV2ZXJzZShlLnRhZyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1lO2kuZGVyPW4oMTEyKSxpLnBlbT1uKDIxNyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDApLHI9big0KS5CdWZmZXIsbz1uKDExMik7ZnVuY3Rpb24gcyh0KXtvLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKHMsbyksdC5leHBvcnRzPXMscy5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxpPWUubGFiZWwudG9VcHBlckNhc2UoKSxzPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLyxhPS0xLHU9LTEsYz0wO2M8bi5sZW5ndGg7YysrKXt2YXIgaD1uW2NdLm1hdGNoKHMpO2lmKG51bGwhPT1oJiZoWzJdPT09aSl7aWYoLTEhPT1hKXtpZigiRU5EIiE9PWhbMV0pYnJlYWs7dT1jO2JyZWFrfWlmKCJCRUdJTiIhPT1oWzFdKWJyZWFrO2E9Y319aWYoLTE9PT1hfHwtMT09PXUpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK2kpO3ZhciBsPW4uc2xpY2UoYSsxLHUpLmpvaW4oIiIpO2wucmVwbGFjZSgvW15hLXowLTlcK1wvPV0rL2dpLCIiKTt2YXIgZD1uZXcgcihsLCJiYXNlNjQiKTtyZXR1cm4gby5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxkLGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPWU7aS5kZXI9bigxMTMpLGkucGVtPW4oMjE5KX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMCkscj1uKDExMyk7ZnVuY3Rpb24gbyh0KXtyLmNhbGwodGhpcyx0KSx0aGlzLmVuYz0icGVtIn1pKG8sciksdC5leHBvcnRzPW8sby5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXIucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsdCkudG9TdHJpbmcoImJhc2U2NCIpLGk9WyItLS0tLUJFR0lOICIrZS5sYWJlbCsiLS0tLS0iXSxvPTA7bzxuLmxlbmd0aDtvKz02NClpLnB1c2gobi5zbGljZShvLG8rNjQpKTtyZXR1cm4gaS5wdXNoKCItLS0tLUVORCAiK2UubGFiZWwrIi0tLS0tIiksaS5qb2luKCJcbiIpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT1uKDM1KSxyPWkuZGVmaW5lKCJUaW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2VudGltZSgpfSl9KSxvPWkuZGVmaW5lKCJBdHRyaWJ1dGVUeXBlVmFsdWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInR5cGUiKS5vYmppZCgpLHRoaXMua2V5KCJ2YWx1ZSIpLmFueSgpKX0pLHM9aS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpKX0pLGE9aS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UocyksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSx1PWkuZGVmaW5lKCJSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lIixmdW5jdGlvbigpe3RoaXMuc2V0b2Yobyl9KSxjPWkuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKHUpfSksaD1pLmRlZmluZSgiTmFtZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7cmRuU2VxdWVuY2U6dGhpcy51c2UoYyl9KX0pLGw9aS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UociksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKHIpKX0pLGQ9aS5kZWZpbmUoIkV4dGVuc2lvbiIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiZXh0bklEIikub2JqaWQoKSx0aGlzLmtleSgiY3JpdGljYWwiKS5ib29sKCkuZGVmKCExKSx0aGlzLmtleSgiZXh0blZhbHVlIikub2N0c3RyKCkpfSksZj1pLmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKSx0aGlzLmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShzKSx0aGlzLmtleSgiaXNzdWVyIikudXNlKGgpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShsKSx0aGlzLmtleSgic3ViamVjdCIpLnVzZShoKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoYSksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKGQpLm9wdGlvbmFsKCkpfSkscD1pLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShmKSx0aGlzLmtleSgic2lnbmF0dXJlQWxnb3JpdGhtIikudXNlKHMpLHRoaXMua2V5KCJzaWduYXR1cmVWYWx1ZSIpLmJpdHN0cigpKX0pO3QuZXhwb3J0cz1wfSxmdW5jdGlvbih0KXt0LmV4cG9ydHM9eyIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xIjoiYWVzLTEyOC1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yIjoiYWVzLTEyOC1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4zIjoiYWVzLTEyOC1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40IjoiYWVzLTEyOC1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMSI6ImFlcy0xOTItZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjIiOiJhZXMtMTkyLWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIzIjoiYWVzLTE5Mi1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yNCI6ImFlcy0xOTItY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDEiOiJhZXMtMjU2LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyIjoiYWVzLTI1Ni1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MyI6ImFlcy0yNTYtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDQiOiJhZXMtMjU2LWNmYiJ9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBpPS9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xuXHJdK0RFSy1JbmZvOiBBRVMtKCg/OjEyOCl8KD86MTkyKXwoPzoyNTYpKS1DQkMsKFswLTlBLUhdKylbXG5ccl0rKFswLTlBLXpcblxyXCtcL1w9XSspW1xuXHJdKy9tLHI9L14tLS0tLUJFR0lOICgoPzouKiBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sbz0vXi0tLS0tQkVHSU4gKCg/Oi4qIEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxuXHJcK1wvXD1dKyktLS0tLUVORCBcMS0tLS0tJC9tLHM9big0NiksYT1uKDY3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXt2YXIgdSxjPXQudG9TdHJpbmcoKSxoPWMubWF0Y2goaSk7aWYoaCl7dmFyIGw9ImFlcyIraFsxXSxkPW5ldyBlKGhbMl0sImhleCIpLGY9bmV3IGUoaFszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLHA9cyhuLGQuc2xpY2UoMCw4KSxwYXJzZUludChoWzFdLDEwKSkua2V5LG09W10sZz1hLmNyZWF0ZURlY2lwaGVyaXYobCxwLGQpO20ucHVzaChnLnVwZGF0ZShmKSksbS5wdXNoKGcuZmluYWwoKSksdT1lLmNvbmNhdChtKX1lbHNle3ZhciB2PWMubWF0Y2gobyk7dT1uZXcgZSh2WzJdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0Iil9cmV0dXJue3RhZzpjLm1hdGNoKHIpWzFdLGRhdGE6dX19fSkuY2FsbCh0aGlzLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXt2YXIgaT1uKDMpLHI9bigxMCkuZWMsbz1uKDQ5KSxzPW4oMTE0KTtmdW5jdGlvbiBhKHQsZSl7aWYodC5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKTtpZih0LmNtcChlKT49ZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIil9dC5leHBvcnRzPWZ1bmN0aW9uKHQsbix1LGMsaCl7dmFyIGw9byh1KTtpZigiZWMiPT09bC50eXBlKXtpZigiZWNkc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1zW24uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIituLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKSk7dmFyIG89bmV3IHIoaSksYT1uLmRhdGEuc3ViamVjdFByaXZhdGVLZXkuZGF0YTtyZXR1cm4gby52ZXJpZnkoZSx0LGEpfSh0LG4sbCl9aWYoImRzYSI9PT1sLnR5cGUpe2lmKCJkc2EiIT09Yyl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIHI9bi5kYXRhLnAscz1uLmRhdGEucSx1PW4uZGF0YS5nLGM9bi5kYXRhLnB1Yl9rZXksaD1vLnNpZ25hdHVyZS5kZWNvZGUodCwiZGVyIiksbD1oLnMsZD1oLnI7YShsLHMpLGEoZCxzKTt2YXIgZj1pLm1vbnQocikscD1sLmludm0ocyk7cmV0dXJuIDA9PT11LnRvUmVkKGYpLnJlZFBvdyhuZXcgaShlKS5tdWwocCkubW9kKHMpKS5mcm9tUmVkKCkubXVsKGMudG9SZWQoZikucmVkUG93KGQubXVsKHApLm1vZChzKSkuZnJvbVJlZCgpKS5tb2QocikubW9kKHMpLmNtcChkKX0odCxuLGwpfWlmKCJyc2EiIT09YyYmImVjZHNhL3JzYSIhPT1jKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7bj1lLmNvbmNhdChbaCxuXSk7Zm9yKHZhciBkPWwubW9kdWx1cy5ieXRlTGVuZ3RoKCksZj1bMV0scD0wO24ubGVuZ3RoK2YubGVuZ3RoKzI8ZDspZi5wdXNoKDI1NSkscCsrO2YucHVzaCgwKTtmb3IodmFyIG09LTE7KyttPG4ubGVuZ3RoOylmLnB1c2goblttXSk7Zj1uZXcgZShmKTt2YXIgZz1pLm1vbnQobC5tb2R1bHVzKTt0PSh0PW5ldyBpKHQpLnRvUmVkKGcpKS5yZWRQb3cobmV3IGkobC5wdWJsaWNFeHBvbmVudCkpLHQ9bmV3IGUodC5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgdj1wPDg/MTowO2ZvcihkPU1hdGgubWluKHQubGVuZ3RoLGYubGVuZ3RoKSx0Lmxlbmd0aCE9PWYubGVuZ3RoJiYodj0xKSxtPS0xOysrbTxkOyl2fD10W21dXmZbbV07cmV0dXJuIDA9PT12fX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSl7dmFyIGk9bigxMCkscj1uKDMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModCl9O3ZhciBvPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntuYW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1lOiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6e25hbWU6InAzODQiLGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIHModCl7dGhpcy5jdXJ2ZVR5cGU9b1t0XSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOnR9KSx0aGlzLmN1cnZlPW5ldyBpLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpLHRoaXMua2V5cz12b2lkIDB9ZnVuY3Rpb24gYSh0LG4saSl7QXJyYXkuaXNBcnJheSh0KXx8KHQ9dC50b0FycmF5KCkpO3ZhciByPW5ldyBlKHQpO2lmKGkmJnIubGVuZ3RoPGkpe3ZhciBvPW5ldyBlKGktci5sZW5ndGgpO28uZmlsbCgwKSxyPWUuY29uY2F0KFtvLHJdKX1yZXR1cm4gbj9yLnRvU3RyaW5nKG4pOnJ9by5wMjI0PW8uc2VjcDIyNHIxLG8ucDI1Nj1vLnNlY3AyNTZyMT1vLnByaW1lMjU2djEsby5wMTkyPW8uc2VjcDE5MnIxPW8ucHJpbWUxOTJ2MSxvLnAzODQ9by5zZWNwMzg0cjEsby5wNTIxPW8uc2VjcDUyMXIxLHMucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkodCxlKX0scy5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbih0LG4saSl7cmV0dXJuIG49bnx8InV0ZjgiLGUuaXNCdWZmZXIodCl8fCh0PW5ldyBlKHQsbikpLGEodGhpcy5jdXJ2ZS5rZXlGcm9tUHVibGljKHQpLmdldFB1YmxpYygpLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCksaSx0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0scy5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1lLCEwKTtyZXR1cm4iaHlicmlkIj09PWUmJihuW24ubGVuZ3RoLTFdJTI/blswXT03Om5bMF09NiksYShuLHQpfSxzLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMua2V5cy5nZXRQcml2YXRlKCksdCl9LHMucHJvdG90eXBlLnNldFB1YmxpY0tleT1mdW5jdGlvbih0LG4pe3JldHVybiBuPW58fCJ1dGY4IixlLmlzQnVmZmVyKHQpfHwodD1uZXcgZSh0LG4pKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyh0KSx0aGlzfSxzLnByb3RvdHlwZS5zZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHQsbil7bj1ufHwidXRmOCIsZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCxuKSk7dmFyIGk9bmV3IHIodCk7cmV0dXJuIGk9aS50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShpKSx0aGlzfX0pLmNhbGwodGhpcyxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXtlLnB1YmxpY0VuY3J5cHQ9bigyMjYpLGUucHJpdmF0ZURlY3J5cHQ9bigyMjcpLGUucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5wdWJsaWNFbmNyeXB0KHQsbiwhMCl9LGUucHVibGljRGVjcnlwdD1mdW5jdGlvbih0LG4pe3JldHVybiBlLnByaXZhdGVEZWNyeXB0KHQsbiwhMCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big0OSkscj1uKDI3KSxvPW4oMzEpLHM9bigxMTUpLGE9bigxMTYpLHU9bigzKSxjPW4oMTE3KSxoPW4oNjkpLGw9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgZDtkPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGYscD1pKHQpO2lmKDQ9PT1kKWY9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpLGk9ZS5sZW5ndGgsYz1vKCJzaGExIikudXBkYXRlKGwuYWxsb2MoMCkpLmRpZ2VzdCgpLGg9Yy5sZW5ndGgsZD0yKmg7aWYoaT5uLWQtMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgZj1sLmFsbG9jKG4taS1kLTIpLHA9bi1oLTEsbT1yKGgpLGc9YShsLmNvbmNhdChbYyxmLGwuYWxsb2MoMSwxKSxlXSxwKSxzKG0scCkpLHY9YShtLHMoZyxoKSk7cmV0dXJuIG5ldyB1KGwuY29uY2F0KFtsLmFsbG9jKDEpLHYsZ10sbikpfShwLGUpO2Vsc2UgaWYoMT09PWQpZj1mdW5jdGlvbih0LGUsbil7dmFyIGksbz1lLmxlbmd0aCxzPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYobz5zLTExKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO2k9bj9sLmFsbG9jKHMtby0zLDI1NSk6ZnVuY3Rpb24odCl7dmFyIGUsbj1sLmFsbG9jVW5zYWZlKHQpLGk9MCxvPXIoMip0KSxzPTA7Zm9yKDtpPHQ7KXM9PT1vLmxlbmd0aCYmKG89cigyKnQpLHM9MCksKGU9b1tzKytdKSYmKG5baSsrXT1lKTtyZXR1cm4gbn0ocy1vLTMpO3JldHVybiBuZXcgdShsLmNvbmNhdChbbC5mcm9tKFswLG4/MToyXSksaSxsLmFsbG9jKDEpLGVdLHMpKX0ocCxlLG4pO2Vsc2V7aWYoMyE9PWQpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKTtpZigoZj1uZXcgdShlKSkuY21wKHAubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJuIG4/aChmLHApOmMoZixwKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDQ5KSxyPW4oMTE1KSxvPW4oMTE2KSxzPW4oMyksYT1uKDY5KSx1PW4oMzEpLGM9bigxMTcpLGg9bigxKS5CdWZmZXI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbDtsPXQucGFkZGluZz90LnBhZGRpbmc6bj8xOjQ7dmFyIGQsZj1pKHQpLHA9Zi5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihlLmxlbmd0aD5wfHxuZXcgcyhlKS5jbXAoZi5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtkPW4/YyhuZXcgcyhlKSxmKTphKGUsZik7dmFyIG09aC5hbGxvYyhwLWQubGVuZ3RoKTtpZihkPWguY29uY2F0KFttLGRdLHApLDQ9PT1sKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPXQubW9kdWx1cy5ieXRlTGVuZ3RoKCksaT11KCJzaGExIikudXBkYXRlKGguYWxsb2MoMCkpLmRpZ2VzdCgpLHM9aS5sZW5ndGg7aWYoMCE9PWVbMF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIGE9ZS5zbGljZSgxLHMrMSksYz1lLnNsaWNlKHMrMSksbD1vKGEscihjLHMpKSxkPW8oYyxyKGwsbi1zLTEpKTtpZihmdW5jdGlvbih0LGUpe3Q9aC5mcm9tKHQpLGU9aC5mcm9tKGUpO3ZhciBuPTAsaT10Lmxlbmd0aDt0Lmxlbmd0aCE9PWUubGVuZ3RoJiYobisrLGk9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpKTt2YXIgcj0tMTtmb3IoOysrcjxpOyluKz10W3JdXmVbcl07cmV0dXJuIG59KGksZC5zbGljZSgwLHMpKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgZj1zO2Zvcig7MD09PWRbZl07KWYrKztpZigxIT09ZFtmKytdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBkLnNsaWNlKGYpfShmLGQpO2lmKDE9PT1sKXJldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIGk9ZS5zbGljZSgwLDIpLHI9MixvPTA7Zm9yKDswIT09ZVtyKytdOylpZihyPj1lLmxlbmd0aCl7bysrO2JyZWFrfXZhciBzPWUuc2xpY2UoMixyLTEpOygiMDAwMiIhPT1pLnRvU3RyaW5nKCJoZXgiKSYmIW58fCIwMDAxIiE9PWkudG9TdHJpbmcoImhleCIpJiZuKSYmbysrO3MubGVuZ3RoPDgmJm8rKztpZihvKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBlLnNsaWNlKHIpfSgwLGQsbik7aWYoMz09PWwpcmV0dXJuIGQ7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gcigpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBvPW4oMSkscz1uKDI3KSxhPW8uQnVmZmVyLHU9by5rTWF4TGVuZ3RoLGM9dC5jcnlwdG98fHQubXNDcnlwdG8saD1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIGwodCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQhPXQpdGhyb3cgbmV3IFR5cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSBudW1iZXIiKTtpZih0Pmh8fHQ8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQ+dXx8dD5lKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gZCh0LGUsbil7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0IT10KXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKHQ+aHx8dDwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHQrZT5ufHx0PnUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBmKHQsZSxuLHIpe2lmKGkuYnJvd3Nlcil7dmFyIG89dC5idWZmZXIsYT1uZXcgVWludDhBcnJheShvLGUsbik7cmV0dXJuIGMuZ2V0UmFuZG9tVmFsdWVzKGEpLHI/dm9pZCBpLm5leHRUaWNrKGZ1bmN0aW9uKCl7cihudWxsLHQpfSk6dH1pZighcilyZXR1cm4gcyhuKS5jb3B5KHQsZSksdDtzKG4sZnVuY3Rpb24obixpKXtpZihuKXJldHVybiByKG4pO2kuY29weSh0LGUpLHIobnVsbCx0KX0pfWMmJmMuZ2V0UmFuZG9tVmFsdWVzfHwhaS5icm93c2VyPyhlLnJhbmRvbUZpbGw9ZnVuY3Rpb24oZSxuLGkscil7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbilyPW4sbj0wLGk9ZS5sZW5ndGg7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgaSlyPWksaT1lLmxlbmd0aC1uO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcignImNiIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtyZXR1cm4gbChuLGUubGVuZ3RoKSxkKGksbixlLmxlbmd0aCksZihlLG4saSxyKX0sZS5yYW5kb21GaWxsU3luYz1mdW5jdGlvbihlLG4saSl7dm9pZCAwPT09biYmKG49MCk7aWYoIShhLmlzQnVmZmVyKGUpfHxlIGluc3RhbmNlb2YgdC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtsKG4sZS5sZW5ndGgpLHZvaWQgMD09PWkmJihpPWUubGVuZ3RoLW4pO3JldHVybiBkKGksbixlLmxlbmd0aCksZihlLG4saSl9KTooZS5yYW5kb21GaWxsPXIsZS5yYW5kb21GaWxsU3luYz1yKX0pLmNhbGwodGhpcyxuKDEzKSxuKDIwKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3RoaXMubmFtZT10LHRoaXMuX3Rva2VuU3RydWN0dXJhbFByb3BlcnR5VD1udWxsfX0oKTtlLlRva2VuPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oODIpOyFmdW5jdGlvbih0KXt0LnV1aWQ0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KDE2KSxlPW5ldyBBcnJheSgyNTYpLG49MDtuPDE2OysrbillW25dPSIwIituLnRvU3RyaW5nKDE2KTtmb3Iobj0xNjtuPDI1NjsrK24pZVtuXT1uLnRvU3RyaW5nKDE2KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaS5SYW5kb20uZ2V0UmFuZG9tVmFsdWVzKHQpLHRbNl09NjR8MTUmdFs2XSx0WzhdPTEyOHw2MyZ0WzhdLGVbdFswXV0rZVt0WzFdXStlW3RbMl1dK2VbdFszXV0rIi0iK2VbdFs0XV0rZVt0WzVdXSsiLSIrZVt0WzZdXStlW3RbN11dKyItIitlW3RbOF1dK2VbdFs5XV0rIi0iK2VbdFsxMF1dK2VbdFsxMV1dK2VbdFsxMl1dK2VbdFsxM11dK2VbdFsxNF1dK2VbdFsxNV1dfX0oKX0oZS5VVUlEfHwoZS5VVUlEPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodCxlKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzMykscj1uKDM4KTt0LmV4cG9ydHM9ZnVuY3Rpb24gdChlLG4sbyxzLGEpe3JldHVybiBlPT09bnx8KG51bGw9PWV8fG51bGw9PW58fCFyKGUpJiYhcihuKT9lIT1lJiZuIT1uOmkoZSxuLG8scyx0LGEpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDIzNCkscj1uKDEyNCksbz1uKDI2OCkscz1uKDI3MiksYT1uKDI5MyksdT1uKDczKSxjPW4oMTI1KSxoPW4oMTI2KSxsPTEsZD0iW29iamVjdCBBcmd1bWVudHNdIixmPSJbb2JqZWN0IEFycmF5XSIscD0iW29iamVjdCBPYmplY3RdIixtPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGcsdixiKXt2YXIgeT11KHQpLF89dShlKSx3PXk/ZjphKHQpLHg9Xz9mOmEoZSksTT0odz13PT1kP3A6dyk9PXAsUz0oeD14PT1kP3A6eCk9PXAsRT13PT14O2lmKEUmJmModCkpe2lmKCFjKGUpKXJldHVybiExO3k9ITAsTT0hMX1pZihFJiYhTSlyZXR1cm4gYnx8KGI9bmV3IGkpLHl8fGgodCk/cih0LGUsbixnLHYsYik6byh0LGUsdyxuLGcsdixiKTtpZighKG4mbCkpe3ZhciBBPU0mJm0uY2FsbCh0LCJfX3dyYXBwZWRfXyIpLEM9UyYmbS5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYoQXx8Qyl7dmFyIGs9QT90LnZhbHVlKCk6dCxPPUM/ZS52YWx1ZSgpOmU7cmV0dXJuIGJ8fChiPW5ldyBpKSx2KGssTyxuLGcsYil9fXJldHVybiEhRSYmKGJ8fChiPW5ldyBpKSxzKHQsZSxuLGcsdixiKSl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCkscj1uKDI0MCksbz1uKDI0MSkscz1uKDI0MiksYT1uKDI0MyksdT1uKDI0NCk7ZnVuY3Rpb24gYyh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBpKHQpO3RoaXMuc2l6ZT1lLnNpemV9Yy5wcm90b3R5cGUuY2xlYXI9cixjLnByb3RvdHlwZS5kZWxldGU9byxjLnByb3RvdHlwZS5nZXQ9cyxjLnByb3RvdHlwZS5oYXM9YSxjLnByb3RvdHlwZS5zZXQ9dSx0LmV4cG9ydHM9Y30sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpLHI9QXJyYXkucHJvdG90eXBlLnNwbGljZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4hKG48MHx8KG49PWUubGVuZ3RoLTE/ZS5wb3AoKTpyLmNhbGwoZSxuLDEpLC0tdGhpcy5zaXplLDApKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPWkoZSx0KTtyZXR1cm4gbjwwP3ZvaWQgMDplW25dWzFdfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLl9fZGF0YV9fLHQpPi0xfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX19kYXRhX18scj1pKG4sdCk7cmV0dXJuIHI8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltyXVsxXT1lLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1MCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1uZXcgaSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHQpfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTApLHI9big3MSksbz1uKDEyMykscz0yMDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztpZihuIGluc3RhbmNlb2YgaSl7dmFyIGE9bi5fX2RhdGFfXztpZighcnx8YS5sZW5ndGg8cy0xKXJldHVybiBhLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgbyhhKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigxMTkpLHI9bigyNDgpLG89bigxMjEpLHM9bigxMjIpLGE9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sdT1GdW5jdGlvbi5wcm90b3R5cGUsYz1PYmplY3QucHJvdG90eXBlLGg9dS50b1N0cmluZyxsPWMuaGFzT3duUHJvcGVydHksZD1SZWdFeHAoIl4iK2guY2FsbChsKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISghbyh0KXx8cih0KSkmJihpKHQpP2Q6YSkudGVzdChzKHQpKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDcyKSxyPU9iamVjdC5wcm90b3R5cGUsbz1yLmhhc093blByb3BlcnR5LHM9ci50b1N0cmluZyxhPWk/aS50b1N0cmluZ1RhZzp2b2lkIDA7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW8uY2FsbCh0LGEpLG49dFthXTt0cnl7dFthXT12b2lkIDA7dmFyIGk9ITB9Y2F0Y2godCl7fXZhciByPXMuY2FsbCh0KTtyZXR1cm4gaSYmKGU/dFthXT1uOmRlbGV0ZSB0W2FdKSxyfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHQpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHI9bigyNDkpLG89KGk9L1teLl0rJC8uZXhlYyhyJiZyLmtleXMmJnIua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK2k6IiI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhbyYmbyBpbiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTkpWyJfX2NvcmUtanNfc2hhcmVkX18iXTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtlXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI1Mikscj1uKDUwKSxvPW4oNzEpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IGksbWFwOm5ldyhvfHxyKSxzdHJpbmc6bmV3IGl9fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjUzKSxyPW4oMjU0KSxvPW4oMjU1KSxzPW4oMjU2KSxhPW4oMjU3KTtmdW5jdGlvbiB1KHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fXUucHJvdG90eXBlLmNsZWFyPWksdS5wcm90b3R5cGUuZGVsZXRlPXIsdS5wcm90b3R5cGUuZ2V0PW8sdS5wcm90b3R5cGUuaGFzPXMsdS5wcm90b3R5cGUuc2V0PWEsdC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUyKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPWk/aShudWxsKTp7fSx0aGlzLnNpemU9MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1lPzE6MCxlfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTIpLHI9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihpKXt2YXIgbj1lW3RdO3JldHVybiBuPT09cj92b2lkIDA6bn1yZXR1cm4gby5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiBpP3ZvaWQgMCE9PWVbdF06ci5jYWxsKGUsdCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Mikscj0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsblt0XT1pJiZ2b2lkIDA9PT1lP3I6ZSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09ZXx8Im51bWJlciI9PWV8fCJzeW1ib2wiPT1lfHwiYm9vbGVhbiI9PWU/Il9fcHJvdG9fXyIhPT10Om51bGw9PT10fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQpLmdldCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDUzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0KS5oYXModCl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9big1Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0aGlzLHQpLHI9bi5zaXplO3JldHVybiBuLnNldCh0LGUpLHRoaXMuc2l6ZSs9bi5zaXplPT1yPzA6MSx0aGlzfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTIzKSxyPW4oMjY0KSxvPW4oMjY1KTtmdW5jdGlvbiBzKHQpe3ZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBpOysrZTxuOyl0aGlzLmFkZCh0W2VdKX1zLnByb3RvdHlwZS5hZGQ9cy5wcm90b3R5cGUucHVzaD1yLHMucHJvdG90eXBlLmhhcz1vLHQuZXhwb3J0cz1zfSxmdW5jdGlvbih0LGUpe3ZhciBuPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsbiksdGhpc319LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPS0xLGk9bnVsbD09dD8wOnQubGVuZ3RoOysrbjxpOylpZihlKHRbbl0sbix0KSlyZXR1cm4hMDtyZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzKGUpfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oNzIpLHI9bigyNjkpLG89bigxMTgpLHM9bigxMjQpLGE9bigyNzApLHU9bigyNzEpLGM9MSxoPTIsbD0iW29iamVjdCBCb29sZWFuXSIsZD0iW29iamVjdCBEYXRlXSIsZj0iW29iamVjdCBFcnJvcl0iLHA9IltvYmplY3QgTWFwXSIsbT0iW29iamVjdCBOdW1iZXJdIixnPSJbb2JqZWN0IFJlZ0V4cF0iLHY9IltvYmplY3QgU2V0XSIsYj0iW29iamVjdCBTdHJpbmddIix5PSJbb2JqZWN0IFN5bWJvbF0iLF89IltvYmplY3QgQXJyYXlCdWZmZXJdIix3PSJbb2JqZWN0IERhdGFWaWV3XSIseD1pP2kucHJvdG90eXBlOnZvaWQgMCxNPXg/eC52YWx1ZU9mOnZvaWQgMDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSx4LFMsRSl7c3dpdGNoKG4pe2Nhc2UgdzppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgXzpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ZS5ieXRlTGVuZ3RofHwhUyhuZXcgcih0KSxuZXcgcihlKSkpO2Nhc2UgbDpjYXNlIGQ6Y2FzZSBtOnJldHVybiBvKCt0LCtlKTtjYXNlIGY6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIGc6Y2FzZSBiOnJldHVybiB0PT1lKyIiO2Nhc2UgcDp2YXIgQT1hO2Nhc2Ugdjp2YXIgQz1pJmM7aWYoQXx8KEE9dSksdC5zaXplIT1lLnNpemUmJiFDKXJldHVybiExO3ZhciBrPUUuZ2V0KHQpO2lmKGspcmV0dXJuIGs9PWU7aXw9aCxFLnNldCh0LGUpO3ZhciBPPXMoQSh0KSxBKGUpLGkseCxTLEUpO3JldHVybiBFLmRlbGV0ZSh0KSxPO2Nhc2UgeTppZihNKXJldHVybiBNLmNhbGwodCk9PU0uY2FsbChlKX1yZXR1cm4hMX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDE5KS5VaW50OEFycmF5O3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LGkpe25bKytlXT1baSx0XX0pLG59fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtuWysrZV09dH0pLG59fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyNzMpLHI9MSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLHMsYSx1KXt2YXIgYz1uJnIsaD1pKHQpLGw9aC5sZW5ndGg7aWYobCE9aShlKS5sZW5ndGgmJiFjKXJldHVybiExO2Zvcih2YXIgZD1sO2QtLTspe3ZhciBmPWhbZF07aWYoIShjP2YgaW4gZTpvLmNhbGwoZSxmKSkpcmV0dXJuITF9dmFyIHA9dS5nZXQodCk7aWYocCYmdS5nZXQoZSkpcmV0dXJuIHA9PWU7dmFyIG09ITA7dS5zZXQodCxlKSx1LnNldChlLHQpO2Zvcih2YXIgZz1jOysrZDxsOyl7dmFyIHY9dFtmPWhbZF1dLGI9ZVtmXTtpZihzKXZhciB5PWM/cyhiLHYsZixlLHQsdSk6cyh2LGIsZix0LGUsdSk7aWYoISh2b2lkIDA9PT15P3Y9PT1ifHxhKHYsYixuLHMsdSk6eSkpe209ITE7YnJlYWt9Z3x8KGc9ImNvbnN0cnVjdG9yIj09Zil9aWYobSYmIWcpe3ZhciBfPXQuY29uc3RydWN0b3Isdz1lLmNvbnN0cnVjdG9yO18hPXcmJiJjb25zdHJ1Y3RvciJpbiB0JiYiY29uc3RydWN0b3IiaW4gZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgXyYmXyBpbnN0YW5jZW9mIF8mJiJmdW5jdGlvbiI9PXR5cGVvZiB3JiZ3IGluc3RhbmNlb2YgdykmJihtPSExKX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUoZSksbX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NCkscj1uKDI3Niksbz1uKDI3OSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsbyxyKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI3NSkscj1uKDczKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBvPWUodCk7cmV0dXJuIHIodCk/bzppKG8sbih0KSl9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPWUubGVuZ3RoLHI9dC5sZW5ndGg7KytuPGk7KXRbcituXT1lW25dO3JldHVybiB0fX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMjc3KSxyPW4oMjc4KSxvPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUscz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGE9cz9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksaShzKHQpLGZ1bmN0aW9uKGUpe3JldHVybiBvLmNhbGwodCxlKX0pKX06cjt0LmV4cG9ydHM9YX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49LTEsaT1udWxsPT10PzA6dC5sZW5ndGgscj0wLG89W107KytuPGk7KXt2YXIgcz10W25dO2UocyxuLHQpJiYob1tyKytdPXMpfXJldHVybiBvfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MCkscj1uKDI4OSksbz1uKDI5Mik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpP2kodCk6cih0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI4MSkscj1uKDI4Miksbz1uKDczKSxzPW4oMTI1KSxhPW4oMjg1KSx1PW4oMTI2KSxjPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49byh0KSxoPSFuJiZyKHQpLGw9IW4mJiFoJiZzKHQpLGQ9IW4mJiFoJiYhbCYmdSh0KSxmPW58fGh8fGx8fGQscD1mP2kodC5sZW5ndGgsU3RyaW5nKTpbXSxtPXAubGVuZ3RoO2Zvcih2YXIgZyBpbiB0KSFlJiYhYy5jYWxsKHQsZyl8fGYmJigibGVuZ3RoIj09Z3x8bCYmKCJvZmZzZXQiPT1nfHwicGFyZW50Ij09Zyl8fGQmJigiYnVmZmVyIj09Z3x8ImJ5dGVMZW5ndGgiPT1nfHwiYnl0ZU9mZnNldCI9PWcpfHxhKGcsbSkpfHxwLnB1c2goZyk7cmV0dXJuIHB9fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxpPUFycmF5KHQpOysrbjx0OylpW25dPWUobik7cmV0dXJuIGl9fSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyODMpLHI9bigzOCksbz1PYmplY3QucHJvdG90eXBlLHM9by5oYXNPd25Qcm9wZXJ0eSxhPW8ucHJvcGVydHlJc0VudW1lcmFibGUsdT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/aTpmdW5jdGlvbih0KXtyZXR1cm4gcih0KSYmcy5jYWxsKHQsImNhbGxlZSIpJiYhYS5jYWxsKHQsImNhbGxlZSIpfTt0LmV4cG9ydHM9dX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigzOCksbz0iW29iamVjdCBBcmd1bWVudHNdIjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIodCkmJmkodCk9PW99fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiExfX0sZnVuY3Rpb24odCxlKXt2YXIgbj05MDA3MTk5MjU0NzQwOTkxLGk9L14oPzowfFsxLTldXGQqKSQvO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXR5cGVvZiB0O3JldHVybiEhKGU9bnVsbD09ZT9uOmUpJiYoIm51bWJlciI9PXJ8fCJzeW1ib2wiIT1yJiZpLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDM3KSxyPW4oMTI3KSxvPW4oMzgpLHM9e307c1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09c1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09c1siW29iamVjdCBJbnQ4QXJyYXldIl09c1siW29iamVjdCBJbnQxNkFycmF5XSJdPXNbIltvYmplY3QgSW50MzJBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09c1siW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1zWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPXNbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsc1siW29iamVjdCBBcmd1bWVudHNdIl09c1siW29iamVjdCBBcnJheV0iXT1zWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPXNbIltvYmplY3QgQm9vbGVhbl0iXT1zWyJbb2JqZWN0IERhdGFWaWV3XSJdPXNbIltvYmplY3QgRGF0ZV0iXT1zWyJbb2JqZWN0IEVycm9yXSJdPXNbIltvYmplY3QgRnVuY3Rpb25dIl09c1siW29iamVjdCBNYXBdIl09c1siW29iamVjdCBOdW1iZXJdIl09c1siW29iamVjdCBPYmplY3RdIl09c1siW29iamVjdCBSZWdFeHBdIl09c1siW29iamVjdCBTZXRdIl09c1siW29iamVjdCBTdHJpbmddIl09c1siW29iamVjdCBXZWFrTWFwXSJdPSExLHQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbyh0KSYmcih0Lmxlbmd0aCkmJiEhc1tpKHQpXX19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKX19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe3ZhciBpPW4oMTIwKSxyPWUmJiFlLm5vZGVUeXBlJiZlLG89ciYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiYhdC5ub2RlVHlwZSYmdCxzPW8mJm8uZXhwb3J0cz09PXImJmkucHJvY2VzcyxhPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW8mJm8ucmVxdWlyZSYmby5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fHMmJnMuYmluZGluZyYmcy5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKTt0LmV4cG9ydHM9YX0pLmNhbGwodGhpcyxuKDQ3KSh0KSl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5MCkscj1uKDI5MSksbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4gcih0KTt2YXIgZT1bXTtmb3IodmFyIG4gaW4gT2JqZWN0KHQpKW8uY2FsbCh0LG4pJiYiY29uc3RydWN0b3IiIT1uJiZlLnB1c2gobik7cmV0dXJuIGV9fSxmdW5jdGlvbih0LGUpe3ZhciBuPU9iamVjdC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUucHJvdG90eXBlfHxuKX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDEyOCkoT2JqZWN0LmtleXMsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTE5KSxyPW4oMTI3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJnIodC5sZW5ndGgpJiYhaSh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5NCkscj1uKDcxKSxvPW4oMjk1KSxzPW4oMjk2KSxhPW4oMjk3KSx1PW4oMzcpLGM9bigxMjIpLGg9YyhpKSxsPWMociksZD1jKG8pLGY9YyhzKSxwPWMoYSksbT11OyhpJiYiW29iamVjdCBEYXRhVmlld10iIT1tKG5ldyBpKG5ldyBBcnJheUJ1ZmZlcigxKSkpfHxyJiYiW29iamVjdCBNYXBdIiE9bShuZXcgcil8fG8mJiJbb2JqZWN0IFByb21pc2VdIiE9bShvLnJlc29sdmUoKSl8fHMmJiJbb2JqZWN0IFNldF0iIT1tKG5ldyBzKXx8YSYmIltvYmplY3QgV2Vha01hcF0iIT1tKG5ldyBhKSkmJihtPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCksbj0iW29iamVjdCBPYmplY3RdIj09ZT90LmNvbnN0cnVjdG9yOnZvaWQgMCxpPW4/YyhuKToiIjtpZihpKXN3aXRjaChpKXtjYXNlIGg6cmV0dXJuIltvYmplY3QgRGF0YVZpZXddIjtjYXNlIGw6cmV0dXJuIltvYmplY3QgTWFwXSI7Y2FzZSBkOnJldHVybiJbb2JqZWN0IFByb21pc2VdIjtjYXNlIGY6cmV0dXJuIltvYmplY3QgU2V0XSI7Y2FzZSBwOnJldHVybiJbb2JqZWN0IFdlYWtNYXBdIn1yZXR1cm4gZX0pLHQuZXhwb3J0cz1tfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIkRhdGFWaWV3Iik7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uKDI5KShuKDE5KSwiUHJvbWlzZSIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIlNldCIpO3QuZXhwb3J0cz1pfSxmdW5jdGlvbih0LGUsbil7dmFyIGk9bigyOSkobigxOSksIldlYWtNYXAiKTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMzcpLHI9bigyOTkpLG89bigzOCkscz0iW29iamVjdCBPYmplY3RdIixhPUZ1bmN0aW9uLnByb3RvdHlwZSx1PU9iamVjdC5wcm90b3R5cGUsYz1hLnRvU3RyaW5nLGg9dS5oYXNPd25Qcm9wZXJ0eSxsPWMuY2FsbChPYmplY3QpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbyh0KXx8aSh0KSE9cylyZXR1cm4hMTt2YXIgZT1yKHQpO2lmKG51bGw9PT1lKXJldHVybiEwO3ZhciBuPWguY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuIGluc3RhbmNlb2YgbiYmYy5jYWxsKG4pPT1sfX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpPW4oMTI4KShPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KTt0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1uKDI1KTtlLnNldD1mdW5jdGlvbih0LGUsbil7aWYobnVsbD09dClyZXR1cm4gdGhpczt2YXIgbztpZigib2JqZWN0Ij09dHlwZW9mIHQ/KG89dCxuPWUpOihvPXt9KVt0XT1lLG58fChuPXt9KSwhdGhpcy5fdmFsaWRhdGUobyxuKSlyZXR1cm4hMTt2YXIgcz1uLnVuc2V0LGE9bi5zaWxlbnQsdT1bXSxjPXRoaXMuX2NoYW5naW5nO3RoaXMuX2NoYW5naW5nPSEwLGN8fCh0aGlzLl9wcmV2aW91c0F0dHJpYnV0ZXM9aSh7fSx0aGlzLmF0dHJpYnV0ZXMpLHRoaXMuY2hhbmdlZD17fSk7dmFyIGg9dGhpcy5hdHRyaWJ1dGVzLGw9dGhpcy5jaGFuZ2VkLGQ9dGhpcy5fcHJldmlvdXNBdHRyaWJ1dGVzO2Zvcih2YXIgZiBpbiBvKWU9b1tmXSxyLmlzRXF1YWwoaFtmXSxlKXx8dS5wdXNoKGYpLHIuaXNFcXVhbChkW2ZdLGUpP2RlbGV0ZSBsW2ZdOmxbZl09ZSxzP2RlbGV0ZSBoW2ZdOmhbZl09ZTtpZih0aGlzLmlkPXRoaXMuZ2V0KHRoaXMuaWRBdHRyaWJ1dGUpLCFhKXt1Lmxlbmd0aCYmKHRoaXMuX3BlbmRpbmc9bik7Zm9yKHZhciBwPTA7cDx1Lmxlbmd0aDtwKyspdGhpcy50cmlnZ2VyKCJjaGFuZ2U6Iit1W3BdLHRoaXMsaFt1W3BdXSxuKX1pZihjKXJldHVybiB0aGlzO2lmKCFhKWZvcig7dGhpcy5fcGVuZGluZzspbj10aGlzLl9wZW5kaW5nLHRoaXMuX3BlbmRpbmc9ITEsdGhpcy50cmlnZ2VyKCJjaGFuZ2UiLHRoaXMsbik7cmV0dXJuIHRoaXMuX3BlbmRpbmc9ITEsdGhpcy5fY2hhbmdpbmc9ITEsdGhpc319LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTI5KSxzPUVsZW1lbnQucHJvdG90eXBlLGE9cy5tYXRjaGVzfHxzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHMubXNNYXRjaGVzU2VsZWN0b3J8fHMub01hdGNoZXNTZWxlY3Rvcnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksbj1lLmxlbmd0aDstLW4+PTAmJmUuaXRlbShuKSE9PXRoaXM7KTtyZXR1cm4gbj4tMX0sdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9yZW1vdmVFbGVtZW50PWZ1bmN0aW9uKCl7dGhpcy51bmRlbGVnYXRlRXZlbnRzKCksdGhpcy5lbC5wYXJlbnROb2RlJiZ0aGlzLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbCl9LGUucHJvdG90eXBlLl9zZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3RoaXMuZWw9dH0sZS5wcm90b3R5cGUuX3NldEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpZSBpbiB0aGlzLmVsP3RoaXMuZWxbZV09dFtlXTp0aGlzLmVsLnNldEF0dHJpYnV0ZShlLHRbZV0pfSxlLnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbih0LGUsbil7InN0cmluZyIhPXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdm9pZCAwPT09dGhpcy5fZG9tRXZlbnRzJiYodGhpcy5fZG9tRXZlbnRzPVtdKTt2YXIgaT10aGlzLmVsLHI9ZT9mdW5jdGlvbih0KXtmb3IodmFyIHI9dC50YXJnZXR8fHQuc3JjRWxlbWVudDtyJiZyIT09aTtyPXIucGFyZW50Tm9kZSlpZihhLmNhbGwocixlKSlyZXR1cm4gdC5kZWxlZ2F0ZVRhcmdldD1yLG4uaGFuZGxlRXZlbnQ/bi5oYW5kbGVFdmVudCh0KTpuKHQpfTpuO3JldHVybiB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIodCxyLCExKSx0aGlzLl9kb21FdmVudHMucHVzaCh7ZXZlbnROYW1lOnQsaGFuZGxlcjpyLGxpc3RlbmVyOm4sc2VsZWN0b3I6ZX0pLHJ9LGUucHJvdG90eXBlLnVuZGVsZWdhdGU9ZnVuY3Rpb24odCxlLG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9bnVsbCksdGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKWZvcih2YXIgaT10aGlzLl9kb21FdmVudHMuc2xpY2UoKSxyPWkubGVuZ3RoO3ItLTspe3ZhciBvPWlbcl07IShvLmV2ZW50TmFtZSE9PXR8fG4mJm8ubGlzdGVuZXIhPT1ufHxlJiZvLnNlbGVjdG9yIT09ZSkmJih0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoby5ldmVudE5hbWUsby5oYW5kbGVyLCExKSx0aGlzLl9kb21FdmVudHMuc3BsaWNlKHIsMSkpfXJldHVybiB0aGlzfSxlLnByb3RvdHlwZS51bmRlbGVnYXRlRXZlbnRzPWZ1bmN0aW9uKCl7aWYodGhpcy5lbCYmdGhpcy5fZG9tRXZlbnRzKXtmb3IodmFyIHQ9dGhpcy5fZG9tRXZlbnRzLmxlbmd0aCxlPTA7ZTx0O2UrKyl7dmFyIG49dGhpcy5fZG9tRXZlbnRzW2VdO3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLmV2ZW50TmFtZSxuLmhhbmRsZXIsITEpfXRoaXMuX2RvbUV2ZW50cy5sZW5ndGg9MH1yZXR1cm4gdGhpc30sZX0oby5WaWV3KTtlLk5hdGl2ZVZpZXc9dX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpLHI9KGk9aTwwP01hdGgubWF4KDAsaStvKTpNYXRoLm1pbihpLG8tMSkpPG4/aSsxKyhvLW4pOmktbisxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuK3MpJW87aWYodFthXT09PWUpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZih0W2FdPT09ZSlyZXR1cm4gYX1yZXR1cm4tMX1mdW5jdGlvbiBpKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPS0xKTt2YXIgcixvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybi0xO249bjwwP01hdGgubWF4KDAsbitvKTpNYXRoLm1pbihuLG8tMSkscj0oaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk8bj9pKzErKG8tbik6aS1uKzE7Zm9yKHZhciBzPTA7czxyOysrcyl7dmFyIGE9KG4rcyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gcih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIHIsbz10Lmxlbmd0aDtpZigwPT09bylyZXR1cm4tMTtyPShuPW48MD9NYXRoLm1heCgwLG4rbyk6TWF0aC5taW4obixvLTEpKTwoaT1pPDA/TWF0aC5tYXgoMCxpK28pOk1hdGgubWluKGksby0xKSk/bisxKyhvLWkpOm4taSsxO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPShuLXMrbyklbztpZihlKHRbYV0sYSkpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gbyh0LGUsbil7dm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09biYmKG49LTEpO3ZhciBpPXQubGVuZ3RoO2lmKCEoaTw9MSkpZm9yKGU9ZTwwP01hdGgubWF4KDAsZStpKTpNYXRoLm1pbihlLGktMSksbj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKTtlPG47KXt2YXIgcj10W2VdLG89dFtuXTt0W2UrK109byx0W24tLV09cn19ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKGU8MCYmKGUrPW4pLCEoZTwwfHxlPj1uKSl7Zm9yKHZhciBpPXRbZV0scj1lKzE7cjxuOysrcil0W3ItMV09dFtyXTtyZXR1cm4gdC5sZW5ndGg9bi0xLGl9fXQuZmlyc3RJbmRleE9mPWUsdC5sYXN0SW5kZXhPZj1uLHQuZmluZEZpcnN0SW5kZXg9aSx0LmZpbmRMYXN0SW5kZXg9cix0LmZpbmRGaXJzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PXImJihyPS0xKTt2YXIgbz1pKHQsZSxuLHIpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5maW5kTGFzdFZhbHVlPWZ1bmN0aW9uKHQsZSxuLGkpe3ZvaWQgMD09PW4mJihuPS0xKSx2b2lkIDA9PT1pJiYoaT0wKTt2YXIgbz1yKHQsZSxuLGkpO3JldHVybi0xIT09bz90W29dOnZvaWQgMH0sdC5sb3dlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKTwwPyhzPWMrMSxhLT11KzEpOmE9dX1yZXR1cm4gc30sdC51cHBlckJvdW5kPWZ1bmN0aW9uKHQsZSxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPXQubGVuZ3RoO2lmKDA9PT1vKXJldHVybiAwO2Zvcih2YXIgcz1pPWk8MD9NYXRoLm1heCgwLGkrbyk6TWF0aC5taW4oaSxvLTEpLGE9KHI9cjwwP01hdGgubWF4KDAscitvKTpNYXRoLm1pbihyLG8tMSkpLWkrMTthPjA7KXt2YXIgdT1hPj4xLGM9cyt1O24odFtjXSxlKT4wP2E9dToocz1jKzEsYS09dSsxKX1yZXR1cm4gc30sdC5tb3ZlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10Lmxlbmd0aDtpZighKGk8PTEpJiYoZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaS0xKSkhPT0obj1uPDA/TWF0aC5tYXgoMCxuK2kpOk1hdGgubWluKG4saS0xKSkpe2Zvcih2YXIgcj10W2VdLG89ZTxuPzE6LTEscz1lO3MhPT1uO3MrPW8pdFtzXT10W3Mrb107dFtuXT1yfX0sdC5yZXZlcnNlPW8sdC5yb3RhdGU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKCEocjw9MXx8KG49bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSkpPj0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSkpKXt2YXIgcz1pLW4rMTtpZihlPjA/ZSU9czplPDAmJihlPShlJXMrcyklcyksMCE9PWUpe3ZhciBhPW4rZTtvKHQsbixhLTEpLG8odCxhLGkpLG8odCxuLGkpfX19LHQuZmlsbD1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMCE9PXIpe3ZhciBvO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksbz0oaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKSk8bj9pKzErKHItbik6aS1uKzE7Zm9yKHZhciBzPTA7czxvOysrcyl0WyhuK3MpJXJdPWV9fSx0Lmluc2VydD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5sZW5ndGg7ZT1lPDA/TWF0aC5tYXgoMCxlK2kpOk1hdGgubWluKGUsaSk7Zm9yKHZhciByPWk7cj5lOy0tcil0W3JdPXRbci0xXTt0W2VdPW59LHQucmVtb3ZlQXQ9cyx0LnJlbW92ZUZpcnN0T2Y9ZnVuY3Rpb24odCxuLGkscil7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBvPWUodCxuLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVMYXN0T2Y9ZnVuY3Rpb24odCxlLGkscil7dm9pZCAwPT09aSYmKGk9LTEpLHZvaWQgMD09PXImJihyPTApO3ZhciBvPW4odCxlLGkscik7cmV0dXJuLTEhPT1vJiZzKHQsbyksb30sdC5yZW1vdmVBbGxPZj1mdW5jdGlvbih0LGUsbixpKXt2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT0tMSk7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuIDA7bj1uPDA/TWF0aC5tYXgoMCxuK3IpOk1hdGgubWluKG4sci0xKSxpPWk8MD9NYXRoLm1heCgwLGkrcik6TWF0aC5taW4oaSxyLTEpO2Zvcih2YXIgbz0wLHM9MDtzPHI7KytzKW48PWkmJnM+PW4mJnM8PWkmJnRbc109PT1lP28rKzppPG4mJihzPD1pfHxzPj1uKSYmdFtzXT09PWU/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfSx0LnJlbW92ZUZpcnN0V2hlcmU9ZnVuY3Rpb24odCxlLG4scil7dmFyIG87dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09ciYmKHI9LTEpO3ZhciBhPWkodCxlLG4scik7cmV0dXJuLTEhPT1hJiYobz1zKHQsYSkpLHtpbmRleDphLHZhbHVlOm99fSx0LnJlbW92ZUxhc3RXaGVyZT1mdW5jdGlvbih0LGUsbixpKXt2YXIgbzt2b2lkIDA9PT1uJiYobj0tMSksdm9pZCAwPT09aSYmKGk9MCk7dmFyIGE9cih0LGUsbixpKTtyZXR1cm4tMSE9PWEmJihvPXModCxhKSkse2luZGV4OmEsdmFsdWU6b319LHQucmVtb3ZlQWxsV2hlcmU9ZnVuY3Rpb24odCxlLG4saSl7dm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9LTEpO3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO249bjwwP01hdGgubWF4KDAsbityKTpNYXRoLm1pbihuLHItMSksaT1pPDA/TWF0aC5tYXgoMCxpK3IpOk1hdGgubWluKGksci0xKTtmb3IodmFyIG89MCxzPTA7czxyOysrcyluPD1pJiZzPj1uJiZzPD1pJiZlKHRbc10scyk/bysrOmk8biYmKHM8PWl8fHM+PW4pJiZlKHRbc10scyk/bysrOm8+MCYmKHRbcy1vXT10W3NdKTtyZXR1cm4gbz4wJiYodC5sZW5ndGg9ci1vKSxvfX0oZS5BcnJheUV4dHx8KGUuQXJyYXlFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS5jaGFpbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gbmV3IHIoaS5pdGVyKHQubWFwKGkuaXRlcikpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2Nsb25lZD0hMSx0aGlzLl9zb3VyY2U9dCx0aGlzLl9hY3RpdmU9dm9pZCAwfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCkpO3JldHVybiBlLl9hY3RpdmU9dGhpcy5fYWN0aXZlJiZ0aGlzLl9hY3RpdmUuY2xvbmUoKSxlLl9jbG9uZWQ9ITAsdGhpcy5fY2xvbmVkPSEwLGV9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih2b2lkIDA9PT10aGlzLl9hY3RpdmUpe3ZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCk7aWYodm9pZCAwPT09dClyZXR1cm47dGhpcy5fYWN0aXZlPXRoaXMuX2Nsb25lZD90LmNsb25lKCk6dH12YXIgZT10aGlzLl9hY3RpdmUubmV4dCgpO3JldHVybiB2b2lkIDAhPT1lP2U6KHRoaXMuX2FjdGl2ZT12b2lkIDAsdGhpcy5uZXh0KCkpfSx0fSgpO2UuQ2hhaW5JdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpfTt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHR9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXt9LHR9KCk7ZS5FbXB0eUl0ZXJhdG9yPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuZmlsdGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5fZm4sbj10aGlzLl9zb3VyY2U7dm9pZCAwIT09KHQ9bi5uZXh0KCkpOylpZihlKHQsdGhpcy5faW5kZXgrKykpcmV0dXJuIHR9LHR9KCk7ZS5GaWx0ZXJJdGVyYXRvcj1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uKDE4KTtlLmZpbmQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scj0wLG89aS5pdGVyKHQpO3ZvaWQgMCE9PShuPW8ubmV4dCgpKTspaWYoZShuLHIrKykpcmV0dXJuIG59LGUubWluPWZ1bmN0aW9uKHQsZSl7dmFyIG49aS5pdGVyKHQpLHI9bi5uZXh0KCk7aWYodm9pZCAwIT09cil7Zm9yKHZhciBvPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MCYmKG89cik7cmV0dXJuIG99fSxlLm1heD1mdW5jdGlvbih0LGUpe3ZhciBuPWkuaXRlcih0KSxyPW4ubmV4dCgpO2lmKHZvaWQgMCE9PXIpe2Zvcih2YXIgbz1yO3ZvaWQgMCE9PShyPW4ubmV4dCgpKTspZShyLG8pPjAmJihvPXIpO3JldHVybiBvfX0sZS5taW5tYXg9ZnVuY3Rpb24odCxlKXt2YXIgbj1pLml0ZXIodCkscj1uLm5leHQoKTtpZih2b2lkIDAhPT1yKXtmb3IodmFyIG89cixzPXI7dm9pZCAwIT09KHI9bi5uZXh0KCkpOyllKHIsbyk8MD9vPXI6ZShyLHMpPjAmJihzPXIpO3JldHVybltvLHNdfX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UubWFwPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5faW5kZXg9MCx0aGlzLl9zb3VyY2U9dCx0aGlzLl9mbj1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlLmNsb25lKCksdGhpcy5fZm4pO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9mbi5jYWxsKHZvaWQgMCx0LHRoaXMuX2luZGV4KyspfSx0fSgpO2UuTWFwSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yYW5nZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHZvaWQgMD09PWU/bmV3IHIoMCx0LDEpOm5ldyByKHQsZSx2b2lkIDA9PT1uPzE6bil9O3ZhciBpLHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLl9pbmRleD0wLHRoaXMuX3N0YXJ0PXQsdGhpcy5fc3RvcD1lLHRoaXMuX3N0ZXA9bix0aGlzLl9sZW5ndGg9aS5yYW5nZUxlbmd0aCh0LGUsbil9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdCh0aGlzLl9zdGFydCx0aGlzLl9zdG9wLHRoaXMuX3N0ZXApO3JldHVybiBlLl9pbmRleD10aGlzLl9pbmRleCxlfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYoISh0aGlzLl9pbmRleD49dGhpcy5fbGVuZ3RoKSlyZXR1cm4gdGhpcy5fc3RhcnQrdGhpcy5fc3RlcCp0aGlzLl9pbmRleCsrfSx0fSgpO2UuUmFuZ2VJdGVyYXRvcj1yLGZ1bmN0aW9uKHQpe3QucmFuZ2VMZW5ndGg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiAwPT09bj8xLzA6dD5lJiZuPjA/MDp0PGUmJm48MD8wOk1hdGguY2VpbCgoZS10KS9uKX19KGl8fChpPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UucmVkdWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLG89aS5pdGVyKHQpLHM9by5uZXh0KCk7aWYodm9pZCAwPT09cyYmdm9pZCAwPT09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmFibGUgd2l0aCBubyBpbml0aWFsIHZhbHVlLiIpO2lmKHZvaWQgMD09PXMpcmV0dXJuIG47dmFyIGEsdSxjPW8ubmV4dCgpO2lmKHZvaWQgMD09PWMmJnZvaWQgMD09PW4pcmV0dXJuIHM7aWYodm9pZCAwPT09YylyZXR1cm4gZShuLHMscisrKTtmb3IoYT1lKHZvaWQgMD09PW4/czplKG4scyxyKyspLGMscisrKTt2b2lkIDAhPT0odT1vLm5leHQoKSk7KWE9ZShhLHUscisrKTtyZXR1cm4gYX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVwZWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBpKHQsZSl9LGUub25jZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkodCwxKX07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fdmFsdWU9dCx0aGlzLl9jb3VudD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3ZhbHVlLHRoaXMuX2NvdW50KX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5fY291bnQ8PTApKXJldHVybiB0aGlzLl9jb3VudC0tLHRoaXMuX3ZhbHVlfSx0fSgpO2UuUmVwZWF0SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXRybz1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5yZXRybz90LnJldHJvKCk6bmV3IGkodCl9O3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9zb3VyY2U9dCx0aGlzLl9pbmRleD10Lmxlbmd0aC0xfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQodGhpcy5fc291cmNlKTtyZXR1cm4gZS5faW5kZXg9dGhpcy5faW5kZXgsZX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCEodGhpcy5faW5kZXg8MHx8dGhpcy5faW5kZXg+PXRoaXMuX3NvdXJjZS5sZW5ndGgpKXJldHVybiB0aGlzLl9zb3VyY2VbdGhpcy5faW5kZXgtLV19LHR9KCk7ZS5SZXRyb0FycmF5SXRlcmF0b3I9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50b3BvbG9naWNTb3J0PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLG49bmV3IFNldCxyPW5ldyBNYXA7cmV0dXJuIGkuZWFjaCh0LGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj10WzFdLGk9ci5nZXQobik7aT9pLnB1c2goZSk6ci5zZXQobixbZV0pfSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7byhlKX0pLGU7ZnVuY3Rpb24gbyh0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciBpPXIuZ2V0KHQpO2kmJmkuZm9yRWFjaChvKSxlLnB1c2godCl9fX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2Uuc3RyaWRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fc3RlcD1lfXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5jbG9uZSgpLHRoaXMuX3N0ZXApfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3NvdXJjZS5uZXh0KCksZT10aGlzLl9zdGVwLTE7ZT4wOy0tZSl0aGlzLl9zb3VyY2UubmV4dCgpO3JldHVybiB0fSx0fSgpO2UuU3RyaWRlSXRlcmF0b3I9cn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbil7dm9pZCAwPT09biYmKG49MCk7Zm9yKHZhciBpPW5ldyBBcnJheShlLmxlbmd0aCkscj0wLG89bixzPWUubGVuZ3RoO3I8czsrK3IsKytvKXtpZigtMT09PShvPXQuaW5kZXhPZihlW3JdLG8pKSlyZXR1cm4gbnVsbDtpW3JdPW99cmV0dXJuIGl9dC5maW5kSW5kaWNlcz1lLHQubWF0Y2hTdW1PZlNxdWFyZXM9ZnVuY3Rpb24odCxuLGkpe3ZvaWQgMD09PWkmJihpPTApO3ZhciByPWUodCxuLGkpO2lmKCFyKXJldHVybiBudWxsO2Zvcih2YXIgbz0wLHM9MCxhPXIubGVuZ3RoO3M8YTsrK3Mpe3ZhciB1PXJbc10taTtvKz11KnV9cmV0dXJue3Njb3JlOm8saW5kaWNlczpyfX0sdC5tYXRjaFN1bU9mRGVsdGFzPWZ1bmN0aW9uKHQsbixpKXt2b2lkIDA9PT1pJiYoaT0wKTt2YXIgcj1lKHQsbixpKTtpZighcilyZXR1cm4gbnVsbDtmb3IodmFyIG89MCxzPWktMSxhPTAsdT1yLmxlbmd0aDthPHU7KythKXt2YXIgYz1yW2FdO28rPWMtcy0xLHM9Y31yZXR1cm57c2NvcmU6byxpbmRpY2VzOnJ9fSx0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPVtdLHI9MCxvPTAscz1lLmxlbmd0aDtyPHM7KXtmb3IodmFyIGE9ZVtyXSx1PWVbcl07KytyPHMmJmVbcl09PT11KzE7KXUrKztvPGEmJmkucHVzaCh0LnNsaWNlKG8sYSkpLGE8dSsxJiZpLnB1c2gobih0LnNsaWNlKGEsdSsxKSkpLG89dSsxfXJldHVybiBvPHQubGVuZ3RoJiZpLnB1c2godC5zbGljZShvKSksaX19KGUuU3RyaW5nRXh0fHwoZS5TdHJpbmdFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigxOCk7ZS50YWtlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyByKGkuaXRlcih0KSxlKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fc291cmNlPXQsdGhpcy5fY291bnQ9ZX1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9zb3VyY2UuY2xvbmUoKSx0aGlzLl9jb3VudCl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2NvdW50PD0wKSl7dmFyIHQ9dGhpcy5fc291cmNlLm5leHQoKTtpZih2b2lkIDAhPT10KXJldHVybiB0aGlzLl9jb3VudC0tLHR9fSx0fSgpO2UuVGFrZUl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTgpO2UuemlwPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgcih0Lm1hcChpLml0ZXIpKX07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX3NvdXJjZT10fXJldHVybiB0LnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0KHRoaXMuX3NvdXJjZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xvbmUoKX0pKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkodGhpcy5fc291cmNlLmxlbmd0aCksZT0wLG49dGhpcy5fc291cmNlLmxlbmd0aDtlPG47KytlKXt2YXIgaT10aGlzLl9zb3VyY2VbZV0ubmV4dCgpO2lmKHZvaWQgMD09PWkpcmV0dXJuO3RbZV09aX1yZXR1cm4gdH0sdH0oKTtlLlppcEl0ZXJhdG9yPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGZ1bmN0aW9uKHQpe3QuYm94U2l6aW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLmJvcmRlclRvcFdpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5ib3JkZXJMZWZ0V2lkdGgpfHwwLHI9cGFyc2VGbG9hdChlLmJvcmRlclJpZ2h0V2lkdGgpfHwwLG89cGFyc2VGbG9hdChlLmJvcmRlckJvdHRvbVdpZHRoKXx8MCxzPXBhcnNlRmxvYXQoZS5wYWRkaW5nVG9wKXx8MCxhPXBhcnNlRmxvYXQoZS5wYWRkaW5nTGVmdCl8fDAsdT1wYXJzZUZsb2F0KGUucGFkZGluZ1JpZ2h0KXx8MCxjPXBhcnNlRmxvYXQoZS5wYWRkaW5nQm90dG9tKXx8MDtyZXR1cm57Ym9yZGVyVG9wOm4sYm9yZGVyTGVmdDppLGJvcmRlclJpZ2h0OnIsYm9yZGVyQm90dG9tOm8scGFkZGluZ1RvcDpzLHBhZGRpbmdMZWZ0OmEscGFkZGluZ1JpZ2h0OnUscGFkZGluZ0JvdHRvbTpjLGhvcml6b250YWxTdW06aSthK3Urcix2ZXJ0aWNhbFN1bTpuK3MrYytvfX0sdC5zaXplTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChlLm1pbldpZHRoKXx8MCxpPXBhcnNlRmxvYXQoZS5taW5IZWlnaHQpfHwwLHI9cGFyc2VGbG9hdChlLm1heFdpZHRoKXx8MS8wLG89cGFyc2VGbG9hdChlLm1heEhlaWdodCl8fDEvMDtyZXR1cm57bWluV2lkdGg6bixtaW5IZWlnaHQ6aSxtYXhXaWR0aDpyPU1hdGgubWF4KG4sciksbWF4SGVpZ2h0Om89TWF0aC5tYXgoaSxvKX19LHQuaGl0VGVzdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZT49aS5sZWZ0JiZlPGkucmlnaHQmJm4+PWkudG9wJiZuPGkuYm90dG9tfSx0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpLnRvcDw9bi50b3AmJmkuYm90dG9tPj1uLmJvdHRvbXx8KGkudG9wPG4udG9wJiZpLmhlaWdodDw9bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkuYm90dG9tPm4uYm90dG9tJiZpLmhlaWdodD49bi5oZWlnaHQ/dC5zY3JvbGxUb3AtPW4udG9wLWkudG9wOmkudG9wPG4udG9wJiZpLmhlaWdodD5uLmhlaWdodD90LnNjcm9sbFRvcC09bi5ib3R0b20taS5ib3R0b206aS5ib3R0b20+bi5ib3R0b20mJmkuaGVpZ2h0PG4uaGVpZ2h0JiYodC5zY3JvbGxUb3AtPW4uYm90dG9tLWkuYm90dG9tKSl9fShlLkVsZW1lbnRFeHR8fChlLkVsZW1lbnRFeHQ9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7dC5JU19NQUM9ISFuYXZpZ2F0b3IucGxhdGZvcm0ubWF0Y2goL01hYy9pKSx0LklTX1dJTj0hIW5hdmlnYXRvci5wbGF0Zm9ybS5tYXRjaCgvV2luL2kpLHQuSVNfSUU9L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdC5JU19FREdFPS9FZGdlLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfShlLlBsYXRmb3JtfHwoZS5QbGF0Zm9ybT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXt0LmNhbGN1bGF0ZVNwZWNpZmljaXR5PWZ1bmN0aW9uKHQpe2lmKHQgaW4gaS5zcGVjaWZpY2l0eUNhY2hlKXJldHVybiBpLnNwZWNpZmljaXR5Q2FjaGVbdF07dmFyIGU9aS5jYWxjdWxhdGVTaW5nbGUodCk7cmV0dXJuIGkuc3BlY2lmaWNpdHlDYWNoZVt0XT1lfSx0LmlzVmFsaWQ9ZnVuY3Rpb24odCl7aWYodCBpbiBpLnZhbGlkaXR5Q2FjaGUpcmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XTt2YXIgZT0hMDt0cnl7aS50ZXN0RWxlbS5xdWVyeVNlbGVjdG9yKHQpfWNhdGNoKHQpe2U9ITF9cmV0dXJuIGkudmFsaWRpdHlDYWNoZVt0XT1lfSx0Lm1hdGNoZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5wcm90b01hdGNoRnVuYy5jYWxsKHQsZSl9fShlLlNlbGVjdG9yfHwoZS5TZWxlY3Rvcj17fSkpLGZ1bmN0aW9uKHQpe3ZhciBlO3Quc3BlY2lmaWNpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudmFsaWRpdHlDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHQudGVzdEVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5wcm90b01hdGNoRnVuYz0oZT1FbGVtZW50LnByb3RvdHlwZSkubWF0Y2hlc3x8ZS5tYXRjaGVzU2VsZWN0b3J8fGUubW96TWF0Y2hlc1NlbGVjdG9yfHxlLm1zTWF0Y2hlc1NlbGVjdG9yfHxlLm9NYXRjaGVzU2VsZWN0b3J8fGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxmdW5jdGlvbih0KXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KTtyZXR1cm4tMSE9PUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0aGlzKX0sdC5jYWxjdWxhdGVTaW5nbGU9ZnVuY3Rpb24odCl7dmFyIGU9MCxoPTAsbD0wO2Z1bmN0aW9uIGQoZSl7dmFyIG49dC5tYXRjaChlKTtyZXR1cm4gbnVsbCE9PW4mJih0PXQuc2xpY2UoblswXS5sZW5ndGgpLCEwKX1mb3IodD0odD10LnNwbGl0KCIsIiwxKVswXSkucmVwbGFjZShjLCIgJDEgIik7dC5sZW5ndGg+MDspaWYoZChuKSllKys7ZWxzZSBpZihkKGkpKWgrKztlbHNlIGlmKGQocikpaCsrO2Vsc2UgaWYoZChzKSlsKys7ZWxzZSBpZihkKGEpKWgrKztlbHNlIGlmKGQobykpbCsrO2Vsc2UgaWYoIWQodSkpcmV0dXJuIDA7cmV0dXJuKGU9TWF0aC5taW4oZSwyNTUpKTw8MTZ8KGg9TWF0aC5taW4oaCwyNTUpKTw8OHwobD1NYXRoLm1pbihsLDI1NSkpfTt2YXIgbj0vXiNbXlxzXCs+fiNcLlxbOl0rLyxpPS9eXC5bXlxzXCs+fiNcLlxbOl0rLyxyPS9eXFtbXlxdXStcXS8sbz0vXlteXHNcKz5+I1wuXFs6XSsvLHM9L14oOjpbXlxzXCs+fiNcLlxbOl0rfDpmaXJzdC1saW5lfDpmaXJzdC1sZXR0ZXJ8OmJlZm9yZXw6YWZ0ZXIpLyxhPS9eOlteXHNcKz5+I1wuXFs6XSsvLHU9L15bXHNcKz5+XCpdKy8sYz0vOm5vdFwoKFteXCldKylcKS9nfShpfHwoaT17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX0obigzMjEpKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGkscj1uKDIpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwsdGhpcy5fbGVuZ3RoPTB9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbXB0eSIse2dldDpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fbGVuZ3RofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpcnN0P3RoaXMuX2ZpcnN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGFzdD90aGlzLl9sYXN0LnZhbHVlOnZvaWQgMH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImZpcnN0Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9maXJzdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhc3ROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhc3R9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5Gb3J3YXJkVmFsdWVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0LlJldHJvVmFsdWVJdGVyYXRvcih0aGlzLl9sYXN0KX0sdC5wcm90b3R5cGUubm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuRm9yd2FyZE5vZGVJdGVyYXRvcih0aGlzLl9maXJzdCl9LHQucHJvdG90eXBlLnJldHJvTm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQuUmV0cm9Ob2RlSXRlcmF0b3IodGhpcy5fbGFzdCl9LHQucHJvdG90eXBlLmFkZEZpcnN0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBpLkxpbmtlZExpc3ROb2RlKHRoaXMsdCk7cmV0dXJuIHRoaXMuX2ZpcnN0PyhlLm5leHQ9dGhpcy5fZmlyc3QsdGhpcy5fZmlyc3QucHJldj1lLHRoaXMuX2ZpcnN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuYWRkTGFzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpO3JldHVybiB0aGlzLl9sYXN0PyhlLnByZXY9dGhpcy5fbGFzdCx0aGlzLl9sYXN0Lm5leHQ9ZSx0aGlzLl9sYXN0PWUpOih0aGlzLl9maXJzdD1lLHRoaXMuX2xhc3Q9ZSksdGhpcy5fbGVuZ3RoKyssZX0sdC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fGU9PT10aGlzLl9maXJzdClyZXR1cm4gdGhpcy5hZGRGaXJzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIucHJldjtyZXR1cm4gbi5uZXh0PXIsbi5wcmV2PW8sci5wcmV2PW4sby5uZXh0PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24odCxlKXtpZighZXx8ZT09PXRoaXMuX2xhc3QpcmV0dXJuIHRoaXMuYWRkTGFzdCh0KTtpZighKGUgaW5zdGFuY2VvZiBpLkxpbmtlZExpc3ROb2RlKXx8ZS5saXN0IT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIlJlZmVyZW5jZSBub2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgbj1uZXcgaS5MaW5rZWRMaXN0Tm9kZSh0aGlzLHQpLHI9ZSxvPXIubmV4dDtyZXR1cm4gbi5uZXh0PW8sbi5wcmV2PXIsci5uZXh0PW4sby5wcmV2PW4sdGhpcy5fbGVuZ3RoKyssbn0sdC5wcm90b3R5cGUucmVtb3ZlRmlyc3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9maXJzdDtpZih0KXJldHVybiB0PT09dGhpcy5fbGFzdD8odGhpcy5fZmlyc3Q9bnVsbCx0aGlzLl9sYXN0PW51bGwpOih0aGlzLl9maXJzdD10Lm5leHQsdGhpcy5fZmlyc3QucHJldj1udWxsKSx0Lmxpc3Q9bnVsbCx0Lm5leHQ9bnVsbCx0LnByZXY9bnVsbCx0aGlzLl9sZW5ndGgtLSx0LnZhbHVlfSx0LnByb3RvdHlwZS5yZW1vdmVMYXN0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbGFzdDtpZih0KXJldHVybiB0PT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKToodGhpcy5fbGFzdD10LnByZXYsdGhpcy5fbGFzdC5uZXh0PW51bGwpLHQubGlzdD1udWxsLHQubmV4dD1udWxsLHQucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tLHQudmFsdWV9LHQucHJvdG90eXBlLnJlbW92ZU5vZGU9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgaS5MaW5rZWRMaXN0Tm9kZSl8fHQubGlzdCE9PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJOb2RlIGlzIG5vdCBvd25lZCBieSB0aGUgbGlzdC4iKTt2YXIgZT10O2U9PT10aGlzLl9maXJzdCYmZT09PXRoaXMuX2xhc3Q/KHRoaXMuX2ZpcnN0PW51bGwsdGhpcy5fbGFzdD1udWxsKTplPT09dGhpcy5fZmlyc3Q/KHRoaXMuX2ZpcnN0PWUubmV4dCx0aGlzLl9maXJzdC5wcmV2PW51bGwpOmU9PT10aGlzLl9sYXN0Pyh0aGlzLl9sYXN0PWUucHJldix0aGlzLl9sYXN0Lm5leHQ9bnVsbCk6KGUubmV4dC5wcmV2PWUucHJldixlLnByZXYubmV4dD1lLm5leHQpLGUubGlzdD1udWxsLGUubmV4dD1udWxsLGUucHJldj1udWxsLHRoaXMuX2xlbmd0aC0tfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9maXJzdDt0Oyl7dmFyIGU9dC5uZXh0O3QubGlzdD1udWxsLHQucHJldj1udWxsLHQubmV4dD1udWxsLHQ9ZX10aGlzLl9maXJzdD1udWxsLHRoaXMuX2xhc3Q9bnVsbCx0aGlzLl9sZW5ndGg9MH0sdH0oKTtlLkxpbmtlZExpc3Q9byxmdW5jdGlvbih0KXt0LmZyb209ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHQ7cmV0dXJuIHIuZWFjaChlLGZ1bmN0aW9uKHQpe24uYWRkTGFzdCh0KX0pLG59O3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQubmV4dCx0LnZhbHVlfX0sdH0oKTt0LkZvcndhcmRWYWx1ZUl0ZXJhdG9yPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5wcmV2LHQudmFsdWV9fSx0fSgpO3QuUmV0cm9WYWx1ZUl0ZXJhdG9yPW47dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX25vZGU9dH1yZXR1cm4gdC5wcm90b3R5cGUuaXRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLl9ub2RlKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMuX25vZGUpe3ZhciB0PXRoaXMuX25vZGU7cmV0dXJuIHRoaXMuX25vZGU9dC5uZXh0LHR9fSx0fSgpO3QuRm9yd2FyZE5vZGVJdGVyYXRvcj1pO3ZhciBvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ub2RlPXR9cmV0dXJuIHQucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5fbm9kZSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9ub2RlKXt2YXIgdD10aGlzLl9ub2RlO3JldHVybiB0aGlzLl9ub2RlPXQucHJldix0fX0sdH0oKTt0LlJldHJvTm9kZUl0ZXJhdG9yPW99KG89ZS5MaW5rZWRMaXN0fHwoZS5MaW5rZWRMaXN0PXt9KSksZS5MaW5rZWRMaXN0PW8sZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt0aGlzLmxpc3Q9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXY9bnVsbCx0aGlzLmxpc3Q9dCx0aGlzLnZhbHVlPWV9fSgpO3QuTGlua2VkTGlzdE5vZGU9ZX0oaXx8KGk9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scz1uKDc2KSxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLHtsYXlvdXQ6by5jcmVhdGVMYXlvdXQoZSl9KXx8dGhpcztyZXR1cm4gbi5hZGRDbGFzcygicC1Cb3hQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImRpcmVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5kaXJlY3Rpb259LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5kaXJlY3Rpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5vbkNoaWxkQWRkZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5hZGRDbGFzcygicC1Cb3hQYW5lbC1jaGlsZCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXt0LmNoaWxkLnJlbW92ZUNsYXNzKCJwLUJveFBhbmVsLWNoaWxkIil9LGV9KG4oNTQpLlBhbmVsKTtlLkJveFBhbmVsPWEsZnVuY3Rpb24odCl7dC5nZXRTdHJldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtzLkJveExheW91dC5zZXRTdHJldGNoKHQsZSl9LHQuZ2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBzLkJveExheW91dC5nZXRTaXplQmFzaXModCl9LHQuc2V0U2l6ZUJhc2lzPWZ1bmN0aW9uKHQsZSl7cy5Cb3hMYXlvdXQuc2V0U2l6ZUJhc2lzKHQsZSl9fShhPWUuQm94UGFuZWx8fChlLkJveFBhbmVsPXt9KSksZS5Cb3hQYW5lbD1hLGZ1bmN0aW9uKHQpe3QuY3JlYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmxheW91dHx8bmV3IHMuQm94TGF5b3V0KHQpfX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzLGE9bigyKSx1PW4oMjYpLGM9bigxMzApLGg9big5KSxsPW4oNTUpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUobil7dmFyIGk9dC5jYWxsKHRoaXMse25vZGU6cy5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gaS5fYWN0aXZlSW5kZXg9LTEsaS5faXRlbXM9W10saS5fcmVzdWx0cz1udWxsLGkuYWRkQ2xhc3MoInAtQ29tbWFuZFBhbGV0dGUiKSxpLnNldEZsYWcoZC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5jb21tYW5kcz1uLmNvbW1hbmRzLGkucmVuZGVyZXI9bi5yZW5kZXJlcnx8ZS5kZWZhdWx0UmVuZGVyZXIsaS5jb21tYW5kcy5jb21tYW5kQ2hhbmdlZC5jb25uZWN0KGkuX29uR2VuZXJpY0NoYW5nZSxpKSxpLmNvbW1hbmRzLmtleUJpbmRpbmdDaGFuZ2VkLmNvbm5lY3QoaS5fb25HZW5lcmljQ2hhbmdlLGkpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcmVzdWx0cz1udWxsLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzZWFyY2hOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLXNlYXJjaCIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaW5wdXROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLUNvbW1hbmRQYWxldHRlLWlucHV0IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IilbMF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJpdGVtcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pdGVtc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXMuY3JlYXRlSXRlbSh0aGlzLmNvbW1hbmRzLHQpO3JldHVybiB0aGlzLl9pdGVtcy5wdXNoKGUpLHRoaXMucmVmcmVzaCgpLGV9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW09ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVJdGVtQXQodGhpcy5faXRlbXMuaW5kZXhPZih0KSl9LGUucHJvdG90eXBlLnJlbW92ZUl0ZW1BdD1mdW5jdGlvbih0KXthLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLHQpJiZ0aGlzLnJlZnJlc2goKX0sZS5wcm90b3R5cGUuY2xlYXJJdGVtcz1mdW5jdGlvbigpezAhPT10aGlzLl9pdGVtcy5sZW5ndGgmJih0aGlzLl9pdGVtcy5sZW5ndGg9MCx0aGlzLnJlZnJlc2goKSl9LGUucHJvdG90eXBlLnJlZnJlc2g9ZnVuY3Rpb24oKXt0aGlzLl9yZXN1bHRzPW51bGwsdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJjbGljayI6dGhpcy5fZXZ0Q2xpY2sodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiaW5wdXQiOnRoaXMucmVmcmVzaCgpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6dGhpcy5fdG9nZ2xlRm9jdXNlZCgpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcywhMCksdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMsITApfSxlLnByb3RvdHlwZS5vbkFjdGl2YXRlUmVxdWVzdD1mdW5jdGlvbih0KXtpZih0aGlzLmlzQXR0YWNoZWQpe3ZhciBlPXRoaXMuaW5wdXROb2RlO2UuZm9jdXMoKSxlLnNlbGVjdCgpfX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXROb2RlLnZhbHVlLG49dGhpcy5jb250ZW50Tm9kZSxpPXRoaXMuX3Jlc3VsdHM7aWYoaXx8KGk9dGhpcy5fcmVzdWx0cz1zLnNlYXJjaCh0aGlzLl9pdGVtcyxlKSx0aGlzLl9hY3RpdmVJbmRleD1lP2EuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgoaSxzLmNhbkFjdGl2YXRlKTotMSksZXx8MCE9PWkubGVuZ3RoKWlmKGUmJjA9PT1pLmxlbmd0aCl7dmFyIHI9dGhpcy5yZW5kZXJlci5yZW5kZXJFbXB0eU1lc3NhZ2Uoe3F1ZXJ5OmV9KTtsLlZpcnR1YWxET00ucmVuZGVyKHIsbil9ZWxzZXtmb3IodmFyIG89dGhpcy5yZW5kZXJlcix1PXRoaXMuX2FjdGl2ZUluZGV4LGM9bmV3IEFycmF5KGkubGVuZ3RoKSxkPTAsZj1pLmxlbmd0aDtkPGY7KytkKXt2YXIgcD1pW2RdO2lmKCJoZWFkZXIiPT09cC50eXBlKXt2YXIgbT1wLmluZGljZXMsZz1wLmNhdGVnb3J5O2NbZF09by5yZW5kZXJIZWFkZXIoe2NhdGVnb3J5OmcsaW5kaWNlczptfSl9ZWxzZXt2YXIgdj1wLml0ZW0sYj0obT1wLmluZGljZXMsZD09PXUpO2NbZF09by5yZW5kZXJJdGVtKHtpdGVtOnYsaW5kaWNlczptLGFjdGl2ZTpifSl9fWlmKGwuVmlydHVhbERPTS5yZW5kZXIoYyxuKSx1PDB8fHU+PWkubGVuZ3RoKW4uc2Nyb2xsVG9wPTA7ZWxzZXt2YXIgeT1uLmNoaWxkcmVuW3VdO2guRWxlbWVudEV4dC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKG4seSl9fWVsc2UgbC5WaXJ0dWFsRE9NLnJlbmRlcihudWxsLG4pfSxlLnByb3RvdHlwZS5fZXZ0Q2xpY2s9ZnVuY3Rpb24odCl7aWYoMD09PXQuYnV0dG9uKXt2YXIgZT1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuY29udGVudE5vZGUuY2hpbGRyZW4sZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7LTEhPT1lJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fZXhlY3V0ZShlKSl9fSxlLnByb3RvdHlwZS5fZXZ0S2V5RG93bj1mdW5jdGlvbih0KXtpZighKHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQubWV0YUtleXx8dC5zaGlmdEtleSkpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSAxMzp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9leGVjdXRlKHRoaXMuX2FjdGl2ZUluZGV4KTticmVhaztjYXNlIDM4OnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX2FjdGl2YXRlUHJldmlvdXNJdGVtKCk7YnJlYWs7Y2FzZSA0MDp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9hY3RpdmF0ZU5leHRJdGVtKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVOZXh0SXRlbT1mdW5jdGlvbigpe2lmKHRoaXMuX3Jlc3VsdHMmJjAhPT10aGlzLl9yZXN1bHRzLmxlbmd0aCl7dmFyIHQ9dGhpcy5fYWN0aXZlSW5kZXgsZT10aGlzLl9yZXN1bHRzLmxlbmd0aCxuPXQ8ZS0xP3QrMTowLGk9MD09PW4/ZS0xOm4tMTt0aGlzLl9hY3RpdmVJbmRleD1hLkFycmF5RXh0LmZpbmRGaXJzdEluZGV4KHRoaXMuX3Jlc3VsdHMscy5jYW5BY3RpdmF0ZSxuLGkpLHRoaXMudXBkYXRlKCl9fSxlLnByb3RvdHlwZS5fYWN0aXZhdGVQcmV2aW91c0l0ZW09ZnVuY3Rpb24oKXtpZih0aGlzLl9yZXN1bHRzJiYwIT09dGhpcy5fcmVzdWx0cy5sZW5ndGgpe3ZhciB0PXRoaXMuX2FjdGl2ZUluZGV4LGU9dGhpcy5fcmVzdWx0cy5sZW5ndGgsbj10PD0wP2UtMTp0LTEsaT1uPT09ZS0xPzA6bisxO3RoaXMuX2FjdGl2ZUluZGV4PWEuQXJyYXlFeHQuZmluZExhc3RJbmRleCh0aGlzLl9yZXN1bHRzLHMuY2FuQWN0aXZhdGUsbixpKSx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVzdWx0cyl7dmFyIGU9dGhpcy5fcmVzdWx0c1t0XTtpZihlKXtpZigiaGVhZGVyIj09PWUudHlwZSl7dmFyIG49dGhpcy5pbnB1dE5vZGU7cmV0dXJuIG4udmFsdWU9ZS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKyIgIixuLmZvY3VzKCksdm9pZCB0aGlzLnJlZnJlc2goKX1lLml0ZW0uaXNFbmFibGVkJiYodGhpcy5jb21tYW5kcy5leGVjdXRlKGUuaXRlbS5jb21tYW5kLGUuaXRlbS5hcmdzKSx0aGlzLmlucHV0Tm9kZS52YWx1ZT0iIix0aGlzLnJlZnJlc2goKSl9fX0sZS5wcm90b3R5cGUuX3RvZ2dsZUZvY3VzZWQ9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5pbnB1dE5vZGU7dGhpcy50b2dnbGVDbGFzcygicC1tb2QtZm9jdXNlZCIsdCl9LGUucHJvdG90eXBlLl9vbkdlbmVyaWNDaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sZX0oZC5XaWRnZXQpO2UuQ29tbWFuZFBhbGV0dGU9ZixmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLnJlbmRlckhlYWRlcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEhlYWRlcih0KTtyZXR1cm4gbC5oLmxpKHtjbGFzc05hbWU6InAtQ29tbWFuZFBhbGV0dGUtaGVhZGVyIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJdGVtQ2xhc3ModCksbj10aGlzLmNyZWF0ZUl0ZW1EYXRhc2V0KHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZTplLGRhdGFzZXQ6bn0sdGhpcy5yZW5kZXJJdGVtSWNvbih0KSx0aGlzLnJlbmRlckl0ZW1Db250ZW50KHQpLHRoaXMucmVuZGVySXRlbVNob3J0Y3V0KHQpKX0sdC5wcm90b3R5cGUucmVuZGVyRW1wdHlNZXNzYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0RW1wdHlNZXNzYWdlKHQpO3JldHVybiBsLmgubGkoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1lbXB0eU1lc3NhZ2UifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZTplfSx0Lml0ZW0uaWNvbkxhYmVsKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNvbnRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtQ29udGVudCJ9LHRoaXMucmVuZGVySXRlbUxhYmVsKHQpLHRoaXMucmVuZGVySXRlbUNhcHRpb24odCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJdGVtTGFiZWw9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtTGFiZWwodCk7cmV0dXJuIGwuaC5kaXYoe2NsYXNzTmFtZToicC1Db21tYW5kUGFsZXR0ZS1pdGVtTGFiZWwifSxlKX0sdC5wcm90b3R5cGUucmVuZGVySXRlbUNhcHRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mb3JtYXRJdGVtQ2FwdGlvbih0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1DYXB0aW9uIn0sZSl9LHQucHJvdG90eXBlLnJlbmRlckl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZvcm1hdEl0ZW1TaG9ydGN1dCh0KTtyZXR1cm4gbC5oLmRpdih7Y2xhc3NOYW1lOiJwLUNvbW1hbmRQYWxldHRlLWl0ZW1TaG9ydGN1dCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtQ29tbWFuZFBhbGV0dGUtaXRlbSI7dC5pdGVtLmlzRW5hYmxlZHx8KGUrPSIgcC1tb2QtZGlzYWJsZWQiKSx0Lml0ZW0uaXNUb2dnbGVkJiYoZSs9IiBwLW1vZC10b2dnbGVkIiksdC5hY3RpdmUmJihlKz0iIHAtbW9kLWFjdGl2ZSIpO3ZhciBuPXQuaXRlbS5jbGFzc05hbWU7cmV0dXJuIG4mJihlKz0iICIrbiksZX0sdC5wcm90b3R5cGUuY3JlYXRlSXRlbURhdGFzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8oe30sdC5pdGVtLmRhdGFzZXQse2NvbW1hbmQ6dC5pdGVtLmNvbW1hbmR9KX0sdC5wcm90b3R5cGUuY3JlYXRlSWNvbkNsYXNzPWZ1bmN0aW9uKHQpe3ZhciBlPSJwLUNvbW1hbmRQYWxldHRlLWl0ZW1JY29uIixuPXQuaXRlbS5pY29uQ2xhc3M7cmV0dXJuIG4/ZSsiICIrbjplfSx0LnByb3RvdHlwZS5mb3JtYXRIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kaWNlcyYmMCE9PXQuaW5kaWNlcy5sZW5ndGg/YS5TdHJpbmdFeHQuaGlnaGxpZ2h0KHQuY2F0ZWdvcnksdC5pbmRpY2VzLGwuaC5tYXJrKTp0LmNhdGVnb3J5fSx0LnByb3RvdHlwZS5mb3JtYXRFbXB0eU1lc3NhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIk5vIGNvbW1hbmRzIGZvdW5kIHRoYXQgbWF0Y2ggJyIrdC5xdWVyeSsiJyJ9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1TaG9ydGN1dD1mdW5jdGlvbih0KXt2YXIgZT10Lml0ZW0ua2V5QmluZGluZztyZXR1cm4gZT9lLmtleXMubWFwKHMuZm9ybWF0S2V5c3Ryb2tlKS5qb2luKCIsICIpOm51bGx9LHQucHJvdG90eXBlLmZvcm1hdEl0ZW1MYWJlbD1mdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRpY2VzJiYwIT09dC5pbmRpY2VzLmxlbmd0aD9hLlN0cmluZ0V4dC5oaWdobGlnaHQodC5pdGVtLmxhYmVsLHQuaW5kaWNlcyxsLmgubWFyayk6dC5pdGVtLmxhYmVsfSx0LnByb3RvdHlwZS5mb3JtYXRJdGVtQ2FwdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5pdGVtLmNhcHRpb259LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlfShmPWUuQ29tbWFuZFBhbGV0dGV8fChlLkNvbW1hbmRQYWxldHRlPXt9KSksZS5Db21tYW5kUGFsZXR0ZT1mLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlKXtmb3IodmFyIG49dC5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpLGk9bisiICIrdC5sYWJlbC50b0xvd2VyQ2FzZSgpLHI9MS8wLG89bnVsbCxzPS9cYlx3L2c7Oyl7dmFyIHU9cy5leGVjKGkpO2lmKCF1KWJyZWFrO3ZhciBjPWEuU3RyaW5nRXh0Lm1hdGNoU3VtT2ZEZWx0YXMoaSxlLHUuaW5kZXgpO2lmKCFjKWJyZWFrO2MmJmMuc2NvcmU8PXImJihyPWMuc2NvcmUsbz1jLmluZGljZXMpfWlmKCFvfHxyPT09MS8wKXJldHVybiBudWxsO2Zvcih2YXIgaD1uLmxlbmd0aCsxLGw9YS5BcnJheUV4dC5sb3dlckJvdW5kKG8saCxmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxkPW8uc2xpY2UoMCxsKSxmPW8uc2xpY2UobCkscD0wLG09Zi5sZW5ndGg7cDxtOysrcClmW3BdLT1oO3JldHVybiAwPT09ZC5sZW5ndGg/e21hdGNoVHlwZTowLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpmLHNjb3JlOnIsaXRlbTp0fTowPT09Zi5sZW5ndGg/e21hdGNoVHlwZToxLGNhdGVnb3J5SW5kaWNlczpkLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOnIsaXRlbTp0fTp7bWF0Y2hUeXBlOjIsY2F0ZWdvcnlJbmRpY2VzOmQsbGFiZWxJbmRpY2VzOmYsc2NvcmU6cixpdGVtOnR9fWZ1bmN0aW9uIG4odCxlKXt2YXIgbj10Lm1hdGNoVHlwZS1lLm1hdGNoVHlwZTtpZigwIT09bilyZXR1cm4gbjt2YXIgaT10LnNjb3JlLWUuc2NvcmU7aWYoMCE9PWkpcmV0dXJuIGk7dmFyIHI9MCxvPTA7c3dpdGNoKHQubWF0Y2hUeXBlKXtjYXNlIDA6cj10LmxhYmVsSW5kaWNlc1swXSxvPWUubGFiZWxJbmRpY2VzWzBdO2JyZWFrO2Nhc2UgMTpjYXNlIDI6cj10LmNhdGVnb3J5SW5kaWNlc1swXSxvPWUuY2F0ZWdvcnlJbmRpY2VzWzBdfWlmKHIhPT1vKXJldHVybiByLW87dmFyIHM9dC5pdGVtLmNhdGVnb3J5LmxvY2FsZUNvbXBhcmUoZS5pdGVtLmNhdGVnb3J5KTtpZigwIT09cylyZXR1cm4gczt2YXIgYT10Lml0ZW0ucmFuayx1PWUuaXRlbS5yYW5rO3JldHVybiBhIT09dT9hPHU/LTE6MTp0Lml0ZW0ubGFiZWwubG9jYWxlQ29tcGFyZShlLml0ZW0ubGFiZWwpfXQuY3JlYXRlTm9kZT1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpO3JldHVybiBlLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1zZWFyY2giLG4uY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLXdyYXBwZXIiLGkuY2xhc3NOYW1lPSJwLUNvbW1hbmRQYWxldHRlLWlucHV0IixyLmNsYXNzTmFtZT0icC1Db21tYW5kUGFsZXR0ZS1jb250ZW50IixpLnNwZWxsY2hlY2s9ITEsbi5hcHBlbmRDaGlsZChpKSxlLmFwcGVuZENoaWxkKG4pLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChyKSx0fSx0LmNyZWF0ZUl0ZW09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGkodCxlKX0sdC5mb3JtYXRLZXlzdHJva2U9ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj1jLkNvbW1hbmRSZWdpc3RyeS5wYXJzZUtleXN0cm9rZSh0KTtyZXR1cm4gaC5QbGF0Zm9ybS5JU19NQUM/KG4uY3RybCYmKGUrPSLijIMgIiksbi5hbHQmJihlKz0i4oylICIpLG4uc2hpZnQmJihlKz0i4oenICIpLG4uY21kJiYoZSs9IuKMmCAiKSk6KG4uY3RybCYmKGUrPSJDdHJsKyIpLG4uYWx0JiYoZSs9IkFsdCsiKSxuLnNoaWZ0JiYoZSs9IlNoaWZ0KyIpKSxlK24ua2V5fSx0LnNlYXJjaD1mdW5jdGlvbih0LGkpe3ZhciByPWZ1bmN0aW9uKHQsbil7bj1uLnJlcGxhY2UoL1xzKy9nLCIiKS50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaT1bXSxyPTAsbz10Lmxlbmd0aDtyPG87KytyKXt2YXIgcz10W3JdO2lmKHMuaXNWaXNpYmxlKWlmKG4pe3ZhciBhPWUocyxuKTthJiYocy5pc0VuYWJsZWR8fChhLnNjb3JlKz0xZTMpLGkucHVzaChhKSl9ZWxzZSBpLnB1c2goe21hdGNoVHlwZTozLGNhdGVnb3J5SW5kaWNlczpudWxsLGxhYmVsSW5kaWNlczpudWxsLHNjb3JlOjAsaXRlbTpzfSl9cmV0dXJuIGl9KHQsaSk7cmV0dXJuIHIuc29ydChuKSxmdW5jdGlvbih0KXt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2EuQXJyYXlFeHQuZmlsbChlLCExKTtmb3IodmFyIG49W10saT0wLHI9dC5sZW5ndGg7aTxyOysraSlpZighZVtpXSl7dmFyIG89dFtpXSxzPW8uaXRlbSx1PW8uY2F0ZWdvcnlJbmRpY2VzLGM9cy5jYXRlZ29yeTtuLnB1c2goe3R5cGU6ImhlYWRlciIsY2F0ZWdvcnk6YyxpbmRpY2VzOnV9KTtmb3IodmFyIGg9aTtoPHI7KytoKWlmKCFlW2hdKXt2YXIgbD10W2hdLGQ9bC5pdGVtLGY9bC5sYWJlbEluZGljZXM7ZC5jYXRlZ29yeT09PWMmJihuLnB1c2goe3R5cGU6Iml0ZW0iLGl0ZW06ZCxpbmRpY2VzOmZ9KSxlW2hdPSEwKX19cmV0dXJuIG59KHIpfSx0LmNhbkFjdGl2YXRlPWZ1bmN0aW9uKHQpe3JldHVybiJpdGVtIj09PXQudHlwZSYmdC5pdGVtLmlzRW5hYmxlZH07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5fY29tbWFuZHM9dCx0aGlzLmNhdGVnb3J5PWUuY2F0ZWdvcnkudHJpbSgpLnJlcGxhY2UoL1xzKy9nLCIgIiksdGhpcy5jb21tYW5kPWUuY29tbWFuZCx0aGlzLmFyZ3M9ZS5hcmdzfHx1LkpTT05FeHQuZW1wdHlPYmplY3QsdGhpcy5yYW5rPXZvaWQgMCE9PWUucmFuaz9lLnJhbms6MS8wfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImxhYmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmxhYmVsKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaWNvbkNsYXNzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmljb25DbGFzcyh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImljb25MYWJlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pY29uTGFiZWwodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjYXB0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmNhcHRpb24odGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjbGFzc05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuY2xhc3NOYW1lKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiZGF0YXNldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5kYXRhc2V0KHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNFbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRzLmlzRW5hYmxlZCh0aGlzLmNvbW1hbmQsdGhpcy5hcmdzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImlzVG9nZ2xlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21tYW5kcy5pc1RvZ2dsZWQodGhpcy5jb21tYW5kLHRoaXMuYXJncyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJpc1Zpc2libGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tbWFuZHMuaXNWaXNpYmxlKHRoaXMuY29tbWFuZCx0aGlzLmFyZ3MpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwia2V5QmluZGluZyIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tbWFuZCxlPXRoaXMuYXJncztyZXR1cm4gYS5BcnJheUV4dC5maW5kTGFzdFZhbHVlKHRoaXMuX2NvbW1hbmRzLmtleUJpbmRpbmdzLGZ1bmN0aW9uKG4pe3JldHVybiBuLmNvbW1hbmQ9PT10JiZ1LkpTT05FeHQuZGVlcEVxdWFsKG4uYXJncyxlKX0pfHxudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHR9KCl9KHN8fChzPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHIsbz1uKDIpLHM9big3OCksYT1uKDkpLHU9bigxMzEpLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2lkVGljaz0wLHRoaXMuX2l0ZW1zPVtdLHRoaXMubWVudT1uZXcgdS5NZW51KHQpfXJldHVybiB0LnByb3RvdHlwZS5hZGRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1yLmNyZWF0ZUl0ZW0odCx0aGlzLl9pZFRpY2srKyk7cmV0dXJuIHRoaXMuX2l0ZW1zLnB1c2gobiksbmV3IHMuRGlzcG9zYWJsZURlbGVnYXRlKGZ1bmN0aW9uKCl7by5BcnJheUV4dC5yZW1vdmVGaXJzdE9mKGUuX2l0ZW1zLG4pfSl9LHQucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLm1lbnUuY2xlYXJJdGVtcygpLDA9PT10aGlzLl9pdGVtcy5sZW5ndGgpcmV0dXJuITE7dmFyIG49ci5tYXRjaEl0ZW1zKHRoaXMuX2l0ZW1zLHQpO3JldHVybiEoIW58fDA9PT1uLmxlbmd0aCkmJihvLmVhY2gobixmdW5jdGlvbih0KXtlLm1lbnUuYWRkSXRlbSh0KX0pLHRoaXMubWVudS5vcGVuKHQuY2xpZW50WCx0LmNsaWVudFkpLCEwKX0sdH0oKTtlLkNvbnRleHRNZW51PWMsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3ZhciBuPWEuU2VsZWN0b3IuY2FsY3VsYXRlU3BlY2lmaWNpdHkodC5zZWxlY3RvciksaT1hLlNlbGVjdG9yLmNhbGN1bGF0ZVNwZWNpZmljaXR5KGUuc2VsZWN0b3IpO2lmKG4hPT1pKXJldHVybiBpLW47dmFyIHI9dC5yYW5rLG89ZS5yYW5rO3JldHVybiByIT09bz9yPG8/LTE6MTp0LmlkLWUuaWR9dC5jcmVhdGVJdGVtPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24odCl7aWYoLTEhPT10LmluZGV4T2YoIiwiKSl0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIGNhbm5vdCBjb250YWluIGNvbW1hczogIit0KTtpZighYS5TZWxlY3Rvci5pc1ZhbGlkKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZWxlY3RvcjogIit0KTtyZXR1cm4gdH0odC5zZWxlY3Rvcikscj12b2lkIDAhPT10LnJhbms/dC5yYW5rOjEvMDtyZXR1cm4gaSh7fSx0LHtzZWxlY3RvcjpuLHJhbms6cixpZDplfSl9LHQubWF0Y2hJdGVtcz1mdW5jdGlvbih0LG4pe3ZhciBpPW4udGFyZ2V0O2lmKCFpKXJldHVybiBudWxsO3ZhciByPW4uY3VycmVudFRhcmdldDtpZighcilyZXR1cm4gbnVsbDtpZighKHIuY29udGFpbnMoaSl8fChpPWRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQobi5jbGllbnRYLG4uY2xpZW50WSkpJiZyLmNvbnRhaW5zKGkpKSlyZXR1cm4gbnVsbDtmb3IodmFyIG89W10scz10LnNsaWNlKCk7bnVsbCE9PWk7KXtmb3IodmFyIHU9W10sYz0wLGg9cy5sZW5ndGg7YzxoOysrYyl7dmFyIGw9c1tjXTtsJiZhLlNlbGVjdG9yLm1hdGNoZXMoaSxsLnNlbGVjdG9yKSYmKHUucHVzaChsKSxzW2NdPW51bGwpfWlmKDAhPT11Lmxlbmd0aCYmKHUuc29ydChlKSxvLnB1c2guYXBwbHkobyx1KSksaT09PXIpYnJlYWs7aT1pLnBhcmVudEVsZW1lbnR9cmV0dXJuIG99fShyfHwocj17fSkpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxzPW4oMiksYT1uKDI2KSx1PW4oOSksYz1uKDU2KSxoPW4oNSksbD1uKDMwKSxkPW4oMTEpLGY9bigxMzIpLHA9big4MCksbT1uKDcpLGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO2kuX2RyYWc9bnVsbCxpLl9wcmVzc0RhdGE9bnVsbCxpLl9sYXlvdXRNb2RpZmllZD1uZXcgZC5TaWduYWwoaSksaS5hZGRDbGFzcygicC1Eb2NrUGFuZWwiKSxpLl9tb2RlPW4ubW9kZXx8Im11bHRpcGxlLWRvY3VtZW50IixpLl9yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpLmRhdGFzZXQubW9kZT1pLl9tb2RlO3ZhciByPXtjcmVhdGVUYWJCYXI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5fY3JlYXRlVGFiQmFyKCl9LGNyZWF0ZUhhbmRsZTpmdW5jdGlvbigpe3JldHVybiBpLl9jcmVhdGVIYW5kbGUoKX19O3JldHVybiBpLmxheW91dD1uZXcgZi5Eb2NrTGF5b3V0KHtyZW5kZXJlcjpyLHNwYWNpbmc6bi5zcGFjaW5nfSksaS5vdmVybGF5PW4ub3ZlcmxheXx8bmV3IGUuT3ZlcmxheSxpLm5vZGUuYXBwZW5kQ2hpbGQoaS5vdmVybGF5Lm5vZGUpLGl9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5vdmVybGF5LmhpZGUoMCksdGhpcy5fZHJhZyYmdGhpcy5fZHJhZy5kaXNwb3NlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImxheW91dE1vZGlmaWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xheW91dE1vZGlmaWVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwicmVuZGVyZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVuZGVyZXJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5zcGFjaW5nPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl9tb2RlIT09dCl7dGhpcy5fbW9kZT10LHRoaXMuZGF0YXNldC5tb2RlPXQ7dmFyIGU9dGhpcy5sYXlvdXQ7c3dpdGNoKHQpe2Nhc2UibXVsdGlwbGUtZG9jdW1lbnQiOnMuZWFjaChlLnRhYkJhcnMoKSxmdW5jdGlvbih0KXt0LnNob3coKX0pO2JyZWFrO2Nhc2Uic2luZ2xlLWRvY3VtZW50IjplLnJlc3RvcmVMYXlvdXQoby5jcmVhdGVTaW5nbGVEb2N1bWVudENvbmZpZyh0aGlzKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImlzRW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuaXNFbXB0eX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS53aWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LndpZGdldHMoKX0sZS5wcm90b3R5cGUuc2VsZWN0ZWRXaWRnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnNlbGVjdGVkV2lkZ2V0cygpfSxlLnByb3RvdHlwZS50YWJCYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnRhYkJhcnMoKX0sZS5wcm90b3R5cGUuaGFuZGxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzKCl9LGUucHJvdG90eXBlLnNlbGVjdFdpZGdldD1mdW5jdGlvbih0KXt2YXIgZT1zLmZpbmQodGhpcy50YWJCYXJzKCksZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnRpdGxlcy5pbmRleE9mKHQudGl0bGUpfSk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgZG9jayBwYW5lbC4iKTtlLmN1cnJlbnRUaXRsZT10LnRpdGxlfSxlLnByb3RvdHlwZS5hY3RpdmF0ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnNlbGVjdFdpZGdldCh0KSx0LmFjdGl2YXRlKCl9LGUucHJvdG90eXBlLnNhdmVMYXlvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc2F2ZUxheW91dCgpfSxlLnByb3RvdHlwZS5yZXN0b3JlTGF5b3V0PWZ1bmN0aW9uKHQpe3RoaXMuX21vZGU9Im11bHRpcGxlLWRvY3VtZW50Iix0aGlzLmxheW91dC5yZXN0b3JlTGF5b3V0KHQpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksInNpbmdsZS1kb2N1bWVudCI9PT10aGlzLl9tb2RlP3RoaXMubGF5b3V0LmFkZFdpZGdldCh0KTp0aGlzLmxheW91dC5hZGRXaWRnZXQodCxlKSxoLk1lc3NhZ2VMb29wLnBvc3RNZXNzYWdlKHRoaXMsby5MYXlvdXRNb2RpZmllZCl9LGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpeyJsYXlvdXQtbW9kaWZpZWQiPT09ZS50eXBlP3RoaXMuX2xheW91dE1vZGlmaWVkLmVtaXQodm9pZCAwKTp0LnByb3RvdHlwZS5wcm9jZXNzTWVzc2FnZS5jYWxsKHRoaXMsZSl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UicC1kcmFnZW50ZXIiOnRoaXMuX2V2dERyYWdFbnRlcih0KTticmVhaztjYXNlInAtZHJhZ2xlYXZlIjp0aGlzLl9ldnREcmFnTGVhdmUodCk7YnJlYWs7Y2FzZSJwLWRyYWdvdmVyIjp0aGlzLl9ldnREcmFnT3Zlcih0KTticmVhaztjYXNlInAtZHJvcCI6dGhpcy5fZXZ0RHJvcCh0KTticmVhaztjYXNlIm1vdXNlZG93biI6dGhpcy5fZXZ0TW91c2VEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vtb3ZlIjp0aGlzLl9ldnRNb3VzZU1vdmUodCk7YnJlYWs7Y2FzZSJtb3VzZXVwIjp0aGlzLl9ldnRNb3VzZVVwKHQpO2JyZWFrO2Nhc2Uia2V5ZG93biI6dGhpcy5fZXZ0S2V5RG93bih0KTticmVhaztjYXNlImNvbnRleHRtZW51Ijp0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LGUucHJvdG90eXBlLm9uQmVmb3JlQXR0YWNoPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJwLWRyYWdlbnRlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJhZ2xlYXZlIix0aGlzKSx0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigicC1kcmFnb3ZlciIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoInAtZHJvcCIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInAtZHJhZ2VudGVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcmFnbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwLWRyYWdvdmVyIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicC1kcm9wIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZEFkZGVkPWZ1bmN0aW9uKHQpe28uaXNHZW5lcmF0ZWRUYWJCYXJQcm9wZXJ0eS5nZXQodC5jaGlsZCl8fHQuY2hpbGQuYWRkQ2xhc3MoInAtRG9ja1BhbmVsLXdpZGdldCIpfSxlLnByb3RvdHlwZS5vbkNoaWxkUmVtb3ZlZD1mdW5jdGlvbih0KXtvLmlzR2VuZXJhdGVkVGFiQmFyUHJvcGVydHkuZ2V0KHQuY2hpbGQpfHwodC5jaGlsZC5yZW1vdmVDbGFzcygicC1Eb2NrUGFuZWwtd2lkZ2V0IiksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dERyYWdFbnRlcj1mdW5jdGlvbih0KXt0Lm1pbWVEYXRhLmhhc0RhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ0xlYXZlPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiZ0aGlzLm5vZGUuY29udGFpbnMoZSl8fHRoaXMub3ZlcmxheS5oaWRlKDApfSxlLnByb3RvdHlwZS5fZXZ0RHJhZ092ZXI9ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksImludmFsaWQiPT09dGhpcy5fc2hvd092ZXJsYXkodC5jbGllbnRYLHQuY2xpZW50WSk/dC5kcm9wQWN0aW9uPSJub25lIjp0LmRyb3BBY3Rpb249dC5wcm9wb3NlZEFjdGlvbn0sZS5wcm90b3R5cGUuX2V2dERyb3A9ZnVuY3Rpb24odCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vdmVybGF5LmhpZGUoMCksIm5vbmUiIT09dC5wcm9wb3NlZEFjdGlvbil7dmFyIGU9dC5jbGllbnRYLG49dC5jbGllbnRZLGk9by5maW5kRHJvcFRhcmdldCh0aGlzLGUsbikscj1pLnpvbmUscz1pLnRhcmdldDtpZigiaW52YWxpZCIhPT1yKXt2YXIgYT10Lm1pbWVEYXRhLmdldERhdGEoImFwcGxpY2F0aW9uL3ZuZC5waG9zcGhvci53aWRnZXQtZmFjdG9yeSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXt2YXIgdT1hKCk7aWYodSBpbnN0YW5jZW9mIG0uV2lkZ2V0KWlmKHUuY29udGFpbnModGhpcykpdC5kcm9wQWN0aW9uPSJub25lIjtlbHNle3ZhciBjPXM/by5nZXREcm9wUmVmKHMudGFiQmFyKTpudWxsO3N3aXRjaChyKXtjYXNlInJvb3QtYWxsIjp0aGlzLmFkZFdpZGdldCh1KTticmVhaztjYXNlInJvb3QtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AifSk7YnJlYWs7Y2FzZSJyb290LWxlZnQiOnRoaXMuYWRkV2lkZ2V0KHUse21vZGU6InNwbGl0LWxlZnQifSk7YnJlYWs7Y2FzZSJyb290LXJpZ2h0Ijp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1yaWdodCJ9KTticmVhaztjYXNlInJvb3QtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20ifSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYWxsIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJ0YWItYWZ0ZXIiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtdG9wIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC10b3AiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtbGVmdCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtbGVmdCIscmVmOmN9KTticmVhaztjYXNlIndpZGdldC1yaWdodCI6dGhpcy5hZGRXaWRnZXQodSx7bW9kZToic3BsaXQtcmlnaHQiLHJlZjpjfSk7YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjp0aGlzLmFkZFdpZGdldCh1LHttb2RlOiJzcGxpdC1ib3R0b20iLHJlZjpjfSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9dC5kcm9wQWN0aW9uPXQucHJvcG9zZWRBY3Rpb24sdGhpcy5hY3RpdmF0ZVdpZGdldCh1KX1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9ZWxzZSB0LmRyb3BBY3Rpb249Im5vbmUifWVsc2UgdC5kcm9wQWN0aW9uPSJub25lIn1lbHNlIHQuZHJvcEFjdGlvbj0ibm9uZSJ9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiYodGhpcy5fcmVsZWFzZU1vdXNlKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49dC50YXJnZXQsaT1zLmZpbmQoZS5oYW5kbGVzKCksZnVuY3Rpb24odCl7cmV0dXJuIHQuY29udGFpbnMobil9KTtpZihpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dC5jbGllbnRYLXIubGVmdCxhPXQuY2xpZW50WS1yLnRvcCx1PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpLGg9Yy5EcmFnLm92ZXJyaWRlQ3Vyc29yKHUuY3Vyc29yKTt0aGlzLl9wcmVzc0RhdGE9e2hhbmRsZTppLGRlbHRhWDpvLGRlbHRhWTphLG92ZXJyaWRlOmh9fX19LGUucHJvdG90eXBlLl9ldnRNb3VzZU1vdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5fcHJlc3NEYXRhKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZT10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LmNsaWVudFgtZS5sZWZ0LXRoaXMuX3ByZXNzRGF0YS5kZWx0YVgsaT10LmNsaWVudFktZS50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhWTt0aGlzLmxheW91dC5tb3ZlSGFuZGxlKHRoaXMuX3ByZXNzRGF0YS5oYW5kbGUsbixpKX19LGUucHJvdG90eXBlLl9ldnRNb3VzZVVwPWZ1bmN0aW9uKHQpezA9PT10LmJ1dHRvbiYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3JlbGVhc2VNb3VzZSgpLGguTWVzc2FnZUxvb3AucG9zdE1lc3NhZ2UodGhpcyxvLkxheW91dE1vZGlmaWVkKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZS5wcm90b3R5cGUuX3Nob3dPdmVybGF5PWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHMsYT1vLmZpbmREcm9wVGFyZ2V0KHRoaXMsdCxlKSxjPWEuem9uZSxoPWEudGFyZ2V0O2lmKCJpbnZhbGlkIj09PWMpcmV0dXJuIHRoaXMub3ZlcmxheS5oaWRlKDEwMCksYzt2YXIgbD11LkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMubm9kZSksZD10aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7c3dpdGNoKGMpe2Nhc2Uicm9vdC1hbGwiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uicm9vdC10b3AiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9ZC5oZWlnaHQqby5HT0xERU5fUkFUSU87YnJlYWs7Y2FzZSJyb290LWxlZnQiOm49bC5wYWRkaW5nVG9wLGk9bC5wYWRkaW5nTGVmdCxyPWQud2lkdGgqby5HT0xERU5fUkFUSU8scz1sLnBhZGRpbmdCb3R0b207YnJlYWs7Y2FzZSJyb290LXJpZ2h0IjpuPWwucGFkZGluZ1RvcCxpPWQud2lkdGgqby5HT0xERU5fUkFUSU8scj1sLnBhZGRpbmdSaWdodCxzPWwucGFkZGluZ0JvdHRvbTticmVhaztjYXNlInJvb3QtYm90dG9tIjpuPWQuaGVpZ2h0Km8uR09MREVOX1JBVElPLGk9bC5wYWRkaW5nTGVmdCxyPWwucGFkZGluZ1JpZ2h0LHM9bC5wYWRkaW5nQm90dG9tO2JyZWFrO2Nhc2Uid2lkZ2V0LWFsbCI6bj1oLnRvcCxpPWgubGVmdCxyPWgucmlnaHQscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC10b3AiOm49aC50b3AsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b20raC5oZWlnaHQvMjticmVhaztjYXNlIndpZGdldC1sZWZ0IjpuPWgudG9wLGk9aC5sZWZ0LHI9aC5yaWdodCtoLndpZHRoLzIscz1oLmJvdHRvbTticmVhaztjYXNlIndpZGdldC1yaWdodCI6bj1oLnRvcCxpPWgubGVmdCtoLndpZHRoLzIscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7Y2FzZSJ3aWRnZXQtYm90dG9tIjpuPWgudG9wK2guaGVpZ2h0LzIsaT1oLmxlZnQscj1oLnJpZ2h0LHM9aC5ib3R0b207YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJuIHRoaXMub3ZlcmxheS5zaG93KHt0b3A6bixsZWZ0OmkscmlnaHQ6cixib3R0b206c30pLGN9LGUucHJvdG90eXBlLl9jcmVhdGVUYWJCYXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZW5kZXJlci5jcmVhdGVUYWJCYXIoKTtyZXR1cm4gby5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5LnNldCh0LCEwKSwic2luZ2xlLWRvY3VtZW50Ij09PXRoaXMuX21vZGUmJnQuaGlkZSgpLHQudGFic01vdmFibGU9ITAsdC5hbGxvd0Rlc2VsZWN0PSExLHQucmVtb3ZlQmVoYXZpb3I9InNlbGVjdC1wcmV2aW91cy10YWIiLHQuaW5zZXJ0QmVoYXZpb3I9InNlbGVjdC10YWItaWYtbmVlZGVkIix0LnRhYk1vdmVkLmNvbm5lY3QodGhpcy5fb25UYWJNb3ZlZCx0aGlzKSx0LmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25DdXJyZW50Q2hhbmdlZCx0aGlzKSx0LnRhYkNsb3NlUmVxdWVzdGVkLmNvbm5lY3QodGhpcy5fb25UYWJDbG9zZVJlcXVlc3RlZCx0aGlzKSx0LnRhYkRldGFjaFJlcXVlc3RlZC5jb25uZWN0KHRoaXMuX29uVGFiRGV0YWNoUmVxdWVzdGVkLHRoaXMpLHQudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLHRoaXMpLHR9LGUucHJvdG90eXBlLl9jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3JlYXRlSGFuZGxlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKCl7aC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25DdXJyZW50Q2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNUaXRsZSxpPWUuY3VycmVudFRpdGxlO24mJm4ub3duZXIuaGlkZSgpLGkmJmkub3duZXIuc2hvdygpLCh1LlBsYXRmb3JtLklTX0VER0V8fHUuUGxhdGZvcm0uSVNfSUUpJiZoLk1lc3NhZ2VMb29wLmZsdXNoKCksaC5NZXNzYWdlTG9vcC5wb3N0TWVzc2FnZSh0aGlzLG8uTGF5b3V0TW9kaWZpZWQpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYkRldGFjaFJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYoIXRoaXMuX2RyYWcpe3QucmVsZWFzZU1vdXNlKCk7dmFyIGk9ZS50aXRsZSxyPWUudGFiLG89ZS5jbGllbnRYLHM9ZS5jbGllbnRZLHU9bmV3IGEuTWltZURhdGE7dS5zZXREYXRhKCJhcHBsaWNhdGlvbi92bmQucGhvc3Bob3Iud2lkZ2V0LWZhY3RvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuIGkub3duZXJ9KTt2YXIgaD1yLmNsb25lTm9kZSghMCk7dGhpcy5fZHJhZz1uZXcgYy5EcmFnKHttaW1lRGF0YTp1LGRyYWdJbWFnZTpoLHByb3Bvc2VkQWN0aW9uOiJtb3ZlIixzdXBwb3J0ZWRBY3Rpb25zOiJtb3ZlIn0pLHIuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIik7dGhpcy5fZHJhZy5zdGFydChvLHMpLnRoZW4oZnVuY3Rpb24oKXtuLl9kcmFnPW51bGwsci5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1oaWRkZW4iKX0pfX0sZX0obS5XaWRnZXQpO2UuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5fdGltZXI9LTEsdGhpcy5faGlkZGVuPSEwLHRoaXMubm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1Eb2NrUGFuZWwtb3ZlcmxheSIpLHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKCJwLW1vZC1oaWRkZW4iKSx0aGlzLm5vZGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1yZXR1cm4gdC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm5vZGUuc3R5bGU7ZS50b3A9dC50b3ArInB4IixlLmxlZnQ9dC5sZWZ0KyJweCIsZS5yaWdodD10LnJpZ2h0KyJweCIsZS5ib3R0b209dC5ib3R0b20rInB4IixjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVyPS0xLHRoaXMuX2hpZGRlbiYmKHRoaXMuX2hpZGRlbj0hMSx0aGlzLm5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtaGlkZGVuIikpfSx0LnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX2hpZGRlbilyZXR1cm4gdDw9MD8oY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj0tMSx0aGlzLl9oaWRkZW49ITAsdm9pZCB0aGlzLm5vZGUuY2xhc3NMaXN0LmFkZCgicC1tb2QtaGlkZGVuIikpOnZvaWQoLTE9PT10aGlzLl90aW1lciYmKHRoaXMuX3RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl90aW1lcj0tMSxlLl9oaWRkZW49ITAsZS5ub2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWhpZGRlbiIpfSx0KSkpfSx0fSgpO3QuT3ZlcmxheT1lO3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlVGFiQmFyPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHAuVGFiQmFyO3JldHVybiB0LmFkZENsYXNzKCJwLURvY2tQYW5lbC10YWJCYXIiKSx0fSx0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtRG9ja1BhbmVsLWhhbmRsZSIsdH0sdH0oKTt0LlJlbmRlcmVyPW4sdC5kZWZhdWx0UmVuZGVyZXI9bmV3IG59KGc9ZS5Eb2NrUGFuZWx8fChlLkRvY2tQYW5lbD17fSkpLGUuRG9ja1BhbmVsPWcsZnVuY3Rpb24odCl7dC5HT0xERU5fUkFUSU89LjYxOCx0LkVER0VfU0laRT00MCx0LkxheW91dE1vZGlmaWVkPW5ldyBoLkNvbmZsYXRhYmxlTWVzc2FnZSgibGF5b3V0LW1vZGlmaWVkIiksdC5pc0dlbmVyYXRlZFRhYkJhclByb3BlcnR5PW5ldyBsLkF0dGFjaGVkUHJvcGVydHkoe25hbWU6ImlzR2VuZXJhdGVkVGFiQmFyIixjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19KSx0LmNyZWF0ZVNpbmdsZURvY3VtZW50Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKHQuaXNFbXB0eSlyZXR1cm57bWFpbjpudWxsfTt2YXIgZT1zLnRvQXJyYXkodC53aWRnZXRzKCkpLG49dC5zZWxlY3RlZFdpZGdldHMoKS5uZXh0KCksaT1uP2UuaW5kZXhPZihuKTotMTtyZXR1cm57bWFpbjp7dHlwZToidGFiLWFyZWEiLHdpZGdldHM6ZSxjdXJyZW50SW5kZXg6aX19fSx0LmZpbmREcm9wVGFyZ2V0PWZ1bmN0aW9uKGUsbixpKXtpZighdS5FbGVtZW50RXh0LmhpdFRlc3QoZS5ub2RlLG4saSkpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTt2YXIgcj1lLmxheW91dDtpZihyLmlzRW1wdHkpcmV0dXJue3pvbmU6InJvb3QtYWxsIix0YXJnZXQ6bnVsbH07aWYoIm11bHRpcGxlLWRvY3VtZW50Ij09PWUubW9kZSl7dmFyIG89ZS5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9bi1vLmxlZnQrMSxhPWktby50b3ArMSxjPW8ucmlnaHQtbixoPW8uYm90dG9tLWksbD1NYXRoLm1pbihzLGEsYyxoKTtpZihsPD10LkVER0VfU0laRSl7dmFyIGQ7c3dpdGNoKGwpe2Nhc2UgczpkPSJyb290LWxlZnQiO2JyZWFrO2Nhc2UgYTpkPSJyb290LXRvcCI7YnJlYWs7Y2FzZSBjOmQ9InJvb3QtcmlnaHQiO2JyZWFrO2Nhc2UgaDpkPSJyb290LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6ZCx0YXJnZXQ6bnVsbH19fXZhciBmPXIuaGl0VGVzdFRhYkFyZWFzKG4saSk7aWYoIWYpcmV0dXJue3pvbmU6ImludmFsaWQiLHRhcmdldDpudWxsfTtpZigic2luZ2xlLWRvY3VtZW50Ij09PWUubW9kZSlyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3ZhciBwLG09Zi54LWYubGVmdCsxLGc9Zi55LWYudG9wKzEsdj1mLmxlZnQrZi53aWR0aC1mLngsYj1mLnRvcCtmLmhlaWdodC1mLnkseT1NYXRoLnJvdW5kKGYud2lkdGgvMyksXz1NYXRoLnJvdW5kKGYuaGVpZ2h0LzMpO2lmKG0+eSYmdj55JiZnPl8mJmI+XylyZXR1cm57em9uZToid2lkZ2V0LWFsbCIsdGFyZ2V0OmZ9O3N3aXRjaChtLz15LGcvPV8sdi89eSxiLz1fLE1hdGgubWluKG0sZyx2LGIpKXtjYXNlIG06cD0id2lkZ2V0LWxlZnQiO2JyZWFrO2Nhc2UgZzpwPSJ3aWRnZXQtdG9wIjticmVhaztjYXNlIHY6cD0id2lkZ2V0LXJpZ2h0IjticmVhaztjYXNlIGI6cD0id2lkZ2V0LWJvdHRvbSI7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ1bnJlYWNoYWJsZSJ9cmV0dXJue3pvbmU6cCx0YXJnZXQ6Zn19LHQuZ2V0RHJvcFJlZj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXQudGl0bGVzLmxlbmd0aD9udWxsOnQuY3VycmVudFRpdGxlP3QuY3VycmVudFRpdGxlLm93bmVyOnQudGl0bGVzW3QudGl0bGVzLmxlbmd0aC0xXS5vd25lcn19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMikscj1uKDExKSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuX2NvdW50ZXI9MCx0aGlzLl93aWRnZXRzPVtdLHRoaXMuX2FjdGl2ZVdpZGdldD1udWxsLHRoaXMuX2N1cnJlbnRXaWRnZXQ9bnVsbCx0aGlzLl9udW1iZXJzPW5ldyBNYXAsdGhpcy5fbm9kZXM9bmV3IE1hcCx0aGlzLl9hY3RpdmVDaGFuZ2VkPW5ldyByLlNpZ25hbCh0aGlzKSx0aGlzLl9jdXJyZW50Q2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyl9cmV0dXJuIHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2NvdW50ZXI8MHx8KHRoaXMuX2NvdW50ZXI9LTEsci5TaWduYWwuY2xlYXJEYXRhKHRoaXMpLGkuZWFjaCh0aGlzLl93aWRnZXRzLGZ1bmN0aW9uKGUpe2Uubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdCwhMCksZS5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHQsITApfSksdGhpcy5fYWN0aXZlV2lkZ2V0PW51bGwsdGhpcy5fY3VycmVudFdpZGdldD1udWxsLHRoaXMuX25vZGVzLmNsZWFyKCksdGhpcy5fbnVtYmVycy5jbGVhcigpLHRoaXMuX3dpZGdldHMubGVuZ3RoPTApfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImN1cnJlbnRDaGFuZ2VkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiYWN0aXZlQ2hhbmdlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaXNEaXNwb3NlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3VudGVyPDB9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRXaWRnZXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJhY3RpdmVXaWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlV2lkZ2V0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLmZvY3VzTnVtYmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX251bWJlcnMuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1lPy0xOmV9LHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbnVtYmVycy5oYXModCl9LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZighdGhpcy5fbnVtYmVycy5oYXModCkpe3ZhciBlPXQubm9kZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxuPWU/dGhpcy5fY291bnRlcisrOi0xO3RoaXMuX3dpZGdldHMucHVzaCh0KSx0aGlzLl9udW1iZXJzLnNldCh0LG4pLHRoaXMuX25vZGVzLnNldCh0Lm5vZGUsdCksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLCEwKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcywhMCksdC5kaXNwb3NlZC5jb25uZWN0KHRoaXMuX29uV2lkZ2V0RGlzcG9zZWQsdGhpcyksZSYmdGhpcy5fc2V0V2lkZ2V0cyh0LHQpfX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fbnVtYmVycy5oYXModCkmJih0LmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25XaWRnZXREaXNwb3NlZCx0aGlzKSx0Lm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMsITApLHQubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLCEwKSxpLkFycmF5RXh0LnJlbW92ZUZpcnN0T2YodGhpcy5fd2lkZ2V0cyx0KSx0aGlzLl9ub2Rlcy5kZWxldGUodC5ub2RlKSx0aGlzLl9udW1iZXJzLmRlbGV0ZSh0KSx0aGlzLl9jdXJyZW50V2lkZ2V0PT09dCkpe3ZhciBuPWkuZmlsdGVyKHRoaXMuX3dpZGdldHMsZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1lLl9udW1iZXJzLmdldCh0KX0pLHI9aS5tYXgobixmdW5jdGlvbih0LG4pe3JldHVybiBlLl9udW1iZXJzLmdldCh0KS1lLl9udW1iZXJzLmdldChuKX0pfHxudWxsO3RoaXMuX3NldFdpZGdldHMocixudWxsKX19LHQucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiZm9jdXMiOnRoaXMuX2V2dEZvY3VzKHQpO2JyZWFrO2Nhc2UiYmx1ciI6dGhpcy5fZXZ0Qmx1cih0KX19LHQucHJvdG90eXBlLl9zZXRXaWRnZXRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY3VycmVudFdpZGdldDt0aGlzLl9jdXJyZW50V2lkZ2V0PXQ7dmFyIGk9dGhpcy5fYWN0aXZlV2lkZ2V0O3RoaXMuX2FjdGl2ZVdpZGdldD1lLG4hPT10JiZ0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTpuLG5ld1ZhbHVlOnR9KSxpIT09ZSYmdGhpcy5fYWN0aXZlQ2hhbmdlZC5lbWl0KHtvbGRWYWx1ZTppLG5ld1ZhbHVlOmV9KX0sdC5wcm90b3R5cGUuX2V2dEZvY3VzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX25vZGVzLmdldCh0LmN1cnJlbnRUYXJnZXQpO2UhPT10aGlzLl9jdXJyZW50V2lkZ2V0JiZ0aGlzLl9udW1iZXJzLnNldChlLHRoaXMuX2NvdW50ZXIrKyksdGhpcy5fc2V0V2lkZ2V0cyhlLGUpfSx0LnByb3RvdHlwZS5fZXZ0Qmx1cj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub2Rlcy5nZXQodC5jdXJyZW50VGFyZ2V0KSxuPXQucmVsYXRlZFRhcmdldDtuJiYoZS5ub2RlLmNvbnRhaW5zKG4pfHxpLmZpbmQodGhpcy5fd2lkZ2V0cyxmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlLmNvbnRhaW5zKG4pfSkpfHx0aGlzLl9zZXRXaWRnZXRzKHRoaXMuX2N1cnJlbnRXaWRnZXQsbnVsbCl9LHQucHJvdG90eXBlLl9vbldpZGdldERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMucmVtb3ZlKHQpfSx0fSgpO2UuRm9jdXNUcmFja2VyPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDUpLGM9bigzMCksaD1uKDQwKSxsPW4oMjIpLGQ9big3KSxmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9kaXJ0eT0hMSxuLl9yb3dTcGFjaW5nPTQsbi5fY29sdW1uU3BhY2luZz00LG4uX2l0ZW1zPVtdLG4uX3Jvd1N0YXJ0cz1bXSxuLl9jb2x1bW5TdGFydHM9W10sbi5fcm93U2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fY29sdW1uU2l6ZXJzPVtuZXcgaC5Cb3hTaXplcl0sbi5fYm94PW51bGwsdm9pZCAwIT09ZS5yb3dDb3VudCYmby5yZWFsbG9jU2l6ZXJzKG4uX3Jvd1NpemVycyxlLnJvd0NvdW50KSx2b2lkIDAhPT1lLmNvbHVtbkNvdW50JiZvLnJlYWxsb2NTaXplcnMobi5fY29sdW1uU2l6ZXJzLGUuY29sdW1uQ291bnQpLHZvaWQgMCE9PWUucm93U3BhY2luZyYmKG4uX3Jvd1NwYWNpbmc9by5jbGFtcFZhbHVlKGUucm93U3BhY2luZykpLHZvaWQgMCE9PWUuY29sdW1uU3BhY2luZyYmKG4uX2NvbHVtblNwYWNpbmc9by5jbGFtcFZhbHVlKGUuY29sdW1uU3BhY2luZykpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cy5lYWNoKHRoaXMuX2l0ZW1zLGZ1bmN0aW9uKHQpe3ZhciBlPXQud2lkZ2V0O3QuZGlzcG9zZSgpLGUuZGlzcG9zZSgpfSksdGhpcy5fYm94PW51bGwsdGhpcy5faXRlbXMubGVuZ3RoPTAsdGhpcy5fcm93U3RhcnRzLmxlbmd0aD0wLHRoaXMuX3Jvd1NpemVycy5sZW5ndGg9MCx0aGlzLl9jb2x1bW5TdGFydHMubGVuZ3RoPTAsdGhpcy5fY29sdW1uU2l6ZXJzLmxlbmd0aD0wLHQucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dDb3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb3dTaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMucm93Q291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fcm93U2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2x1bW5Db3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TaXplcnMubGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuY29sdW1uQ291bnQmJihvLnJlYWxsb2NTaXplcnModGhpcy5fY29sdW1uU2l6ZXJzLHQpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5maXQoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJyb3dTcGFjaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvd1NwYWNpbmd9LHNldDpmdW5jdGlvbih0KXt0PW8uY2xhbXBWYWx1ZSh0KSx0aGlzLl9yb3dTcGFjaW5nIT09dCYmKHRoaXMuX3Jvd1NwYWNpbmc9dCx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuZml0KCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29sdW1uU3BhY2luZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb2x1bW5TcGFjaW5nfSxzZXQ6ZnVuY3Rpb24odCl7dD1vLmNsYW1wVmFsdWUodCksdGhpcy5fY29sdW1uU3BhY2luZyE9PXQmJih0aGlzLl9jb2x1bW5TcGFjaW5nPXQsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmZpdCgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5yb3dTdHJldGNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Jvd1NpemVyc1t0XTtyZXR1cm4gZT9lLnN0cmV0Y2g6LTF9LGUucHJvdG90eXBlLnNldFJvd1N0cmV0Y2g9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9yb3dTaXplcnNbdF07biYmKGU9by5jbGFtcFZhbHVlKGUpLG4uc3RyZXRjaCE9PWUmJihuLnN0cmV0Y2g9ZSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQudXBkYXRlKCkpKX0sZS5wcm90b3R5cGUuY29sdW1uU3RyZXRjaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9jb2x1bW5TaXplcnNbdF07cmV0dXJuIGU/ZS5zdHJldGNoOi0xfSxlLnByb3RvdHlwZS5zZXRDb2x1bW5TdHJldGNoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fY29sdW1uU2l6ZXJzW3RdO24mJihlPW8uY2xhbXBWYWx1ZShlKSxuLnN0cmV0Y2ghPT1lJiYobi5zdHJldGNoPWUsdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnVwZGF0ZSgpKSl9LGUucHJvdG90eXBlLml0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gcy5tYXAodGhpcy5faXRlbXMsZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkZ2V0fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXstMT09PXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5faXRlbXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUud2lkZ2V0PT09dH0pJiYodGhpcy5faXRlbXMucHVzaChuZXcgbC5MYXlvdXRJdGVtKHQpKSx0aGlzLnBhcmVudCYmdGhpcy5hdHRhY2hXaWRnZXQodCkpfSxlLnByb3RvdHlwZS5yZW1vdmVXaWRnZXQ9ZnVuY3Rpb24odCl7dmFyIGU9cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLl9pdGVtcyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSk7aWYoLTE9PT1lKXt2YXIgbj1zLkFycmF5RXh0LnJlbW92ZUF0KHRoaXMuX2l0ZW1zLGUpO3RoaXMucGFyZW50JiZ0aGlzLmRldGFjaFdpZGdldCh0KSxuLmRpc3Bvc2UoKX19LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLmluaXQuY2FsbCh0aGlzKSxzLmVhY2godGhpcyxmdW5jdGlvbih0KXtlLmF0dGFjaFdpZGdldCh0KX0pfSxlLnByb3RvdHlwZS5hdHRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5CZWZvcmVBdHRhY2gpLHRoaXMucGFyZW50Lm5vZGUuYXBwZW5kQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsZC5XaWRnZXQuTXNnLkFmdGVyQXR0YWNoKSx0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUuZGV0YWNoV2lkZ2V0PWZ1bmN0aW9uKHQpe3RoaXMucGFyZW50LmlzQXR0YWNoZWQmJnUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCxkLldpZGdldC5Nc2cuQmVmb3JlRGV0YWNoKSx0aGlzLnBhcmVudC5ub2RlLnJlbW92ZUNoaWxkKHQubm9kZSksdGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LGQuV2lkZ2V0Lk1zZy5BZnRlckRldGFjaCksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQmVmb3JlU2hvdz1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZVNob3cuY2FsbCh0aGlzLGUpLHRoaXMucGFyZW50LnVwZGF0ZSgpfSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaC5jYWxsKHRoaXMsZSksdGhpcy5wYXJlbnQuZml0KCl9LGUucHJvdG90eXBlLm9uQ2hpbGRTaG93bj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25DaGlsZEhpZGRlbj1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5maXQoKX0sZS5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNWaXNpYmxlJiZ0aGlzLl91cGRhdGUodC53aWR0aCx0LmhlaWdodCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc1Zpc2libGUmJnRoaXMuX3VwZGF0ZSgtMSwtMSl9LGUucHJvdG90eXBlLm9uRml0UmVxdWVzdD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZ0aGlzLl9maXQoKX0sZS5wcm90b3R5cGUuX2ZpdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLG49dGhpcy5yb3dDb3VudDt0PG47Kyt0KXRoaXMuX3Jvd1NpemVyc1t0XS5taW5TaXplPTA7Zm9yKHQ9MCxuPXRoaXMuY29sdW1uQ291bnQ7dDxuOysrdCl0aGlzLl9jb2x1bW5TaXplcnNbdF0ubWluU2l6ZT0wO3ZhciBpPXRoaXMuX2l0ZW1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5pc0hpZGRlbn0pO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KWlbdF0uZml0KCk7dmFyIHI9dGhpcy5yb3dDb3VudC0xLHM9dGhpcy5jb2x1bW5Db3VudC0xO2kuc29ydChvLnJvd1NwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXt2YXIgYz1pW3RdLGg9ZS5nZXRDZWxsQ29uZmlnKGMud2lkZ2V0KSxsPU1hdGgubWluKGgucm93LHIpLGY9TWF0aC5taW4oaC5yb3craC5yb3dTcGFuLTEscik7by5kaXN0cmlidXRlTWluKHRoaXMuX3Jvd1NpemVycyxsLGYsYy5taW5IZWlnaHQpfWkuc29ydChvLmNvbHVtblNwYW5DbXApO2Zvcih0PTAsbj1pLmxlbmd0aDt0PG47Kyt0KXtjPWlbdF0saD1lLmdldENlbGxDb25maWcoYy53aWRnZXQpO3ZhciBwPU1hdGgubWluKGguY29sdW1uLHMpLG09TWF0aC5taW4oaC5jb2x1bW4raC5jb2x1bW5TcGFuLTEscyk7by5kaXN0cmlidXRlTWluKHRoaXMuX2NvbHVtblNpemVycyxwLG0sYy5taW5XaWR0aCl9aWYoInNldC1uby1jb25zdHJhaW50IiE9PXRoaXMuZml0UG9saWN5KXt2YXIgZz1yKnRoaXMuX3Jvd1NwYWNpbmcsdj1zKnRoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKHQ9MCxuPXRoaXMucm93Q291bnQ7dDxuOysrdClnKz10aGlzLl9yb3dTaXplcnNbdF0ubWluU2l6ZTtmb3IodD0wLG49dGhpcy5jb2x1bW5Db3VudDt0PG47Kyt0KXYrPXRoaXMuX2NvbHVtblNpemVyc1t0XS5taW5TaXplO3ZhciBiPXRoaXMuX2JveD1hLkVsZW1lbnRFeHQuYm94U2l6aW5nKHRoaXMucGFyZW50Lm5vZGUpO3YrPWIuaG9yaXpvbnRhbFN1bSxnKz1iLnZlcnRpY2FsU3VtO3ZhciB5PXRoaXMucGFyZW50Lm5vZGUuc3R5bGU7eS5taW5XaWR0aD12KyJweCIseS5taW5IZWlnaHQ9ZysicHgiLHRoaXMuX2RpcnR5PSEwLHRoaXMucGFyZW50LnBhcmVudCYmdS5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0aGlzLnBhcmVudC5wYXJlbnQsZC5XaWRnZXQuTXNnLkZpdFJlcXVlc3QpLHRoaXMuX2RpcnR5JiZ1Lk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMucGFyZW50LGQuV2lkZ2V0Lk1zZy5VcGRhdGVSZXF1ZXN0KX1lbHNlIHUuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodGhpcy5wYXJlbnQsZC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpfSxlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQsbil7dGhpcy5fZGlydHk9ITEsdDwwJiYodD10aGlzLnBhcmVudC5ub2RlLm9mZnNldFdpZHRoKSxuPDAmJihuPXRoaXMucGFyZW50Lm5vZGUub2Zmc2V0SGVpZ2h0KSx0aGlzLl9ib3h8fCh0aGlzLl9ib3g9YS5FbGVtZW50RXh0LmJveFNpemluZyh0aGlzLnBhcmVudC5ub2RlKSk7dmFyIGk9dGhpcy5fYm94LnBhZGRpbmdUb3Ascj10aGlzLl9ib3gucGFkZGluZ0xlZnQsbz10LXRoaXMuX2JveC5ob3Jpem9udGFsU3VtLHM9bi10aGlzLl9ib3gudmVydGljYWxTdW0sdT10aGlzLnJvd0NvdW50LTEsYz10aGlzLmNvbHVtbkNvdW50LTEsbD11KnRoaXMuX3Jvd1NwYWNpbmcsZD1jKnRoaXMuX2NvbHVtblNwYWNpbmc7aC5Cb3hFbmdpbmUuY2FsYyh0aGlzLl9yb3dTaXplcnMsTWF0aC5tYXgoMCxzLWwpKSxoLkJveEVuZ2luZS5jYWxjKHRoaXMuX2NvbHVtblNpemVycyxNYXRoLm1heCgwLG8tZCkpO2Zvcih2YXIgZj0wLHA9aSxtPXRoaXMucm93Q291bnQ7ZjxtOysrZil0aGlzLl9yb3dTdGFydHNbZl09cCxwKz10aGlzLl9yb3dTaXplcnNbZl0uc2l6ZSt0aGlzLl9yb3dTcGFjaW5nO2ZvcihmPTAscD1yLG09dGhpcy5jb2x1bW5Db3VudDtmPG07KytmKXRoaXMuX2NvbHVtblN0YXJ0c1tmXT1wLHArPXRoaXMuX2NvbHVtblNpemVyc1tmXS5zaXplK3RoaXMuX2NvbHVtblNwYWNpbmc7Zm9yKGY9MCxtPXRoaXMuX2l0ZW1zLmxlbmd0aDtmPG07KytmKXt2YXIgZz10aGlzLl9pdGVtc1tmXTtpZighZy5pc0hpZGRlbil7dmFyIHY9ZS5nZXRDZWxsQ29uZmlnKGcud2lkZ2V0KSxiPU1hdGgubWluKHYucm93LHUpLHk9TWF0aC5taW4odi5jb2x1bW4sYyksXz1NYXRoLm1pbih2LnJvdyt2LnJvd1NwYW4tMSx1KSx3PU1hdGgubWluKHYuY29sdW1uK3YuY29sdW1uU3Bhbi0xLGMpLHg9dGhpcy5fY29sdW1uU3RhcnRzW3ldLE09dGhpcy5fcm93U3RhcnRzW2JdLFM9dGhpcy5fY29sdW1uU3RhcnRzW3ddK3RoaXMuX2NvbHVtblNpemVyc1t3XS5zaXplLXgsRT10aGlzLl9yb3dTdGFydHNbX10rdGhpcy5fcm93U2l6ZXJzW19dLnNpemUtTTtnLnVwZGF0ZSh4LE0sUyxFKX19fSxlfShsLkxheW91dCk7ZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5nZXRDZWxsQ29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNlbGxDb25maWdQcm9wZXJ0eS5nZXQodCl9LHQuc2V0Q2VsbENvbmZpZz1mdW5jdGlvbih0LGUpe28uY2VsbENvbmZpZ1Byb3BlcnR5LnNldCh0LG8ubm9ybWFsaXplQ29uZmlnKGUpKX19KGY9ZS5HcmlkTGF5b3V0fHwoZS5HcmlkTGF5b3V0PXt9KSksZS5HcmlkTGF5b3V0PWYsZnVuY3Rpb24odCl7dC5jZWxsQ29uZmlnUHJvcGVydHk9bmV3IGMuQXR0YWNoZWRQcm9wZXJ0eSh7bmFtZToiY2VsbENvbmZpZyIsY3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJue3JvdzowLGNvbHVtbjowLHJvd1NwYW46MSxjb2x1bW5TcGFuOjF9fSxjaGFuZ2VkOmZ1bmN0aW9uKHQpe3QucGFyZW50JiZ0LnBhcmVudC5sYXlvdXQgaW5zdGFuY2VvZiBmJiZ0LnBhcmVudC5maXQoKX19KSx0Lm5vcm1hbGl6ZUNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm57cm93Ok1hdGgubWF4KDAsTWF0aC5mbG9vcih0LnJvd3x8MCkpLGNvbHVtbjpNYXRoLm1heCgwLE1hdGguZmxvb3IodC5jb2x1bW58fDApKSxyb3dTcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LnJvd1NwYW58fDApKSxjb2x1bW5TcGFuOk1hdGgubWF4KDEsTWF0aC5mbG9vcih0LmNvbHVtblNwYW58fDApKX19LHQuY2xhbXBWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLmZsb29yKHQpKX0sdC5yb3dTcGFuQ21wPWZ1bmN0aW9uKGUsbil7dmFyIGk9dC5jZWxsQ29uZmlnUHJvcGVydHkuZ2V0KGUud2lkZ2V0KSxyPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChuLndpZGdldCk7cmV0dXJuIGkucm93U3Bhbi1yLnJvd1NwYW59LHQuY29sdW1uU3BhbkNtcD1mdW5jdGlvbihlLG4pe3ZhciBpPXQuY2VsbENvbmZpZ1Byb3BlcnR5LmdldChlLndpZGdldCkscj10LmNlbGxDb25maWdQcm9wZXJ0eS5nZXQobi53aWRnZXQpO3JldHVybiBpLmNvbHVtblNwYW4tci5jb2x1bW5TcGFufSx0LnJlYWxsb2NTaXplcnM9ZnVuY3Rpb24odCxlKXtmb3IoZT1NYXRoLm1heCgxLE1hdGguZmxvb3IoZSkpO3QubGVuZ3RoPGU7KXQucHVzaChuZXcgaC5Cb3hTaXplcik7dC5sZW5ndGg8ZSYmKHQubGVuZ3RoPWUpfSx0LmRpc3RyaWJ1dGVNaW49ZnVuY3Rpb24odCxlLG4saSl7aWYoIShuPGUpKWlmKGUhPT1uKXtmb3IodmFyIHI9MCxvPWU7bzw9bjsrK28pcis9dFtvXS5taW5TaXplO2lmKCEocj49aSkpe3ZhciBzPShpLXIpLyhuLWUrMSk7Zm9yKG89ZTtvPD1uOysrbyl0W29dLm1pblNpemUrPXN9fWVsc2V7dmFyIGE9dFtlXTthLm1pblNpemU9TWF0aC5tYXgoYS5taW5TaXplLGkpfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oOSksdT1uKDc5KSxjPW4oNSksaD1uKDU1KSxsPW4oNyksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgaT10LmNhbGwodGhpcyx7bm9kZTpvLmNyZWF0ZU5vZGUoKX0pfHx0aGlzO3JldHVybiBpLl9hY3RpdmVJbmRleD0tMSxpLl9tZW51cz1bXSxpLl9jaGlsZE1lbnU9bnVsbCxpLmFkZENsYXNzKCJwLU1lbnVCYXIiKSxpLnNldEZsYWcobC5XaWRnZXQuRmxhZy5EaXNhbGxvd0xheW91dCksaS5yZW5kZXJlcj1uLnJlbmRlcmVyfHxlLmRlZmF1bHRSZW5kZXJlcixpfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5fbWVudXMubGVuZ3RoPTAsdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImNoaWxkTWVudSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jaGlsZE1lbnV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb250ZW50Tm9kZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicC1NZW51QmFyLWNvbnRlbnQiKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFjdGl2ZU1lbnUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXNbdGhpcy5fYWN0aXZlSW5kZXhdfHxudWxsfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVJbmRleD10P3RoaXMuX21lbnVzLmluZGV4T2YodCk6LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJhY3RpdmVJbmRleCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVJbmRleH0sc2V0OmZ1bmN0aW9uKHQpeyh0PDB8fHQ+PXRoaXMuX21lbnVzLmxlbmd0aCkmJih0PS0xKSx0aGlzLl9hY3RpdmVJbmRleCE9PXQmJih0aGlzLl9hY3RpdmVJbmRleD10LHRoaXMudXBkYXRlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibWVudXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVudXN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUub3BlbkFjdGl2ZU1lbnU9ZnVuY3Rpb24oKXstMSE9PXRoaXMuX2FjdGl2ZUluZGV4JiYodGhpcy5fb3BlbkNoaWxkTWVudSgpLHRoaXMuX2NoaWxkTWVudSYmKHRoaXMuX2NoaWxkTWVudS5hY3RpdmVJbmRleD0tMSx0aGlzLl9jaGlsZE1lbnUuYWN0aXZhdGVOZXh0SXRlbSgpKSl9LGUucHJvdG90eXBlLmFkZE1lbnU9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRNZW51KHRoaXMuX21lbnVzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0TWVudT1mdW5jdGlvbih0LGUpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIG49dGhpcy5fbWVudXMuaW5kZXhPZihlKSxpPU1hdGgubWF4KDAsTWF0aC5taW4odCx0aGlzLl9tZW51cy5sZW5ndGgpKTtpZigtMT09PW4pcmV0dXJuIHMuQXJyYXlFeHQuaW5zZXJ0KHRoaXMuX21lbnVzLGksZSksZS5hZGRDbGFzcygicC1NZW51QmFyLW1lbnUiKSxlLmFib3V0VG9DbG9zZS5jb25uZWN0KHRoaXMuX29uTWVudUFib3V0VG9DbG9zZSx0aGlzKSxlLm1lbnVSZXF1ZXN0ZWQuY29ubmVjdCh0aGlzLl9vbk1lbnVNZW51UmVxdWVzdGVkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLHZvaWQgdGhpcy51cGRhdGUoKTtpPT09dGhpcy5fbWVudXMubGVuZ3RoJiZpLS0sbiE9PWkmJihzLkFycmF5RXh0Lm1vdmUodGhpcy5fbWVudXMsbixpKSx0aGlzLnVwZGF0ZSgpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudT1mdW5jdGlvbih0KXt0aGlzLnJlbW92ZU1lbnVBdCh0aGlzLl9tZW51cy5pbmRleE9mKHQpKX0sZS5wcm90b3R5cGUucmVtb3ZlTWVudUF0PWZ1bmN0aW9uKHQpe3RoaXMuX2Nsb3NlQ2hpbGRNZW51KCk7dmFyIGU9cy5BcnJheUV4dC5yZW1vdmVBdCh0aGlzLl9tZW51cyx0KTtlJiYoZS5hYm91dFRvQ2xvc2UuZGlzY29ubmVjdCh0aGlzLl9vbk1lbnVBYm91dFRvQ2xvc2UsdGhpcyksZS5tZW51UmVxdWVzdGVkLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51TWVudVJlcXVlc3RlZCx0aGlzKSxlLnRpdGxlLmNoYW5nZWQuZGlzY29ubmVjdCh0aGlzLl9vblRpdGxlQ2hhbmdlZCx0aGlzKSxlLnJlbW92ZUNsYXNzKCJwLU1lbnVCYXItbWVudSIpLHRoaXMudXBkYXRlKCkpfSxlLnByb3RvdHlwZS5jbGVhck1lbnVzPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuX21lbnVzLmxlbmd0aCl7dGhpcy5fY2xvc2VDaGlsZE1lbnUoKTtmb3IodmFyIHQ9MCxlPXRoaXMuX21lbnVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO24uYWJvdXRUb0Nsb3NlLmRpc2Nvbm5lY3QodGhpcy5fb25NZW51QWJvdXRUb0Nsb3NlLHRoaXMpLG4ubWVudVJlcXVlc3RlZC5kaXNjb25uZWN0KHRoaXMuX29uTWVudU1lbnVSZXF1ZXN0ZWQsdGhpcyksbi50aXRsZS5jaGFuZ2VkLmRpc2Nvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksbi5yZW1vdmVDbGFzcygicC1NZW51QmFyLW1lbnUiKX10aGlzLl9tZW51cy5sZW5ndGg9MCx0aGlzLnVwZGF0ZSgpfX0sZS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNlbGVhdmUiOnRoaXMuX2V2dE1vdXNlTGVhdmUodCk7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSxlLnByb3RvdHlwZS5vbkJlZm9yZUF0dGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcyksdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMpLHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMpLHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzKSx0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMpLHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLm9uQWN0aXZhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3RoaXMuaXNBdHRhY2hlZCYmdGhpcy5ub2RlLmZvY3VzKCl9LGUucHJvdG90eXBlLm9uVXBkYXRlUmVxdWVzdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fbWVudXMsbj10aGlzLnJlbmRlcmVyLGk9dGhpcy5fYWN0aXZlSW5kZXgscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG89MCxzPWUubGVuZ3RoO288czsrK28pe3ZhciBhPWVbb10udGl0bGUsdT1vPT09aTtyW29dPW4ucmVuZGVySXRlbSh7dGl0bGU6YSxhY3RpdmU6dX0pfWguVmlydHVhbERPTS5yZW5kZXIocix0aGlzLmNvbnRlbnROb2RlKX0sZS5wcm90b3R5cGUuX2V2dEtleURvd249ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGU9dC5rZXlDb2RlO2lmKDEzIT09ZSYmMzghPT1lJiY0MCE9PWUpe2lmKDI3PT09ZSlyZXR1cm4gdGhpcy5fY2xvc2VDaGlsZE1lbnUoKSx0aGlzLmFjdGl2ZUluZGV4PS0xLHZvaWQgdGhpcy5ub2RlLmJsdXIoKTtpZigzNyE9PWUpaWYoMzkhPT1lKXt2YXIgbj11LmdldEtleWJvYXJkTGF5b3V0KCkua2V5Rm9yS2V5ZG93bkV2ZW50KHQpO2lmKG4pe3ZhciBpPXRoaXMuX2FjdGl2ZUluZGV4KzEscj1vLmZpbmRNbmVtb25pYyh0aGlzLl9tZW51cyxuLGkpOy0xPT09ci5pbmRleHx8ci5tdWx0aXBsZT8tMSE9PXIuaW5kZXg/dGhpcy5hY3RpdmVJbmRleD1yLmluZGV4Oi0xIT09ci5hdXRvJiYodGhpcy5hY3RpdmVJbmRleD1yLmF1dG8pOih0aGlzLmFjdGl2ZUluZGV4PXIuaW5kZXgsdGhpcy5vcGVuQWN0aXZlTWVudSgpKX19ZWxzZXtzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9cz09PWEtMT8wOnMrMX1lbHNle3ZhciBzPXRoaXMuX2FjdGl2ZUluZGV4LGE9dGhpcy5fbWVudXMubGVuZ3RoO3RoaXMuYWN0aXZlSW5kZXg9MD09PXM/YS0xOnMtMX19ZWxzZSB0aGlzLm9wZW5BY3RpdmVNZW51KCl9LGUucHJvdG90eXBlLl9ldnRNb3VzZURvd249ZnVuY3Rpb24odCl7aWYoYS5FbGVtZW50RXh0LmhpdFRlc3QodGhpcy5ub2RlLHQuY2xpZW50WCx0LmNsaWVudFkpKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pOy0xIT09ZT8wPT09dC5idXR0b24mJih0aGlzLl9jaGlsZE1lbnU/KHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCksdGhpcy5hY3RpdmVJbmRleD1lKToodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX29wZW5DaGlsZE1lbnUoKSkpOnRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXMuQXJyYXlFeHQuZmluZEZpcnN0SW5kZXgodGhpcy5jb250ZW50Tm9kZS5jaGlsZHJlbixmdW5jdGlvbihlKXtyZXR1cm4gYS5FbGVtZW50RXh0LmhpdFRlc3QoZSx0LmNsaWVudFgsdC5jbGllbnRZKX0pO2UhPT10aGlzLl9hY3RpdmVJbmRleCYmKC0xPT09ZSYmdGhpcy5fY2hpbGRNZW51fHwodGhpcy5hY3RpdmVJbmRleD1lLHRoaXMuX2NoaWxkTWVudSYmdGhpcy5fb3BlbkNoaWxkTWVudSgpKSl9LGUucHJvdG90eXBlLl9ldnRNb3VzZUxlYXZlPWZ1bmN0aW9uKHQpe3RoaXMuX2NoaWxkTWVudXx8KHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb3BlbkNoaWxkTWVudT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0aXZlTWVudTtpZih0KXt2YXIgZT10aGlzLl9jaGlsZE1lbnU7aWYoZSE9PXQpe3RoaXMuX2NoaWxkTWVudT10LGU/ZS5jbG9zZSgpOih0aGlzLmFkZENsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApKSxjLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHRoaXMsbC5XaWRnZXQuTXNnLlVwZGF0ZVJlcXVlc3QpO3ZhciBuPXRoaXMuY29udGVudE5vZGUuY2hpbGRyZW5bdGhpcy5fYWN0aXZlSW5kZXhdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5sZWZ0LHI9bi5ib3R0b207dC5vcGVuKGkscix7Zm9yY2VYOiEwLGZvcmNlWTohMH0pfX1lbHNlIHRoaXMuX2Nsb3NlQ2hpbGRNZW51KCl9LGUucHJvdG90eXBlLl9jbG9zZUNoaWxkTWVudT1mdW5jdGlvbigpe2lmKHRoaXMuX2NoaWxkTWVudSl7dGhpcy5yZW1vdmVDbGFzcygicC1tb2QtYWN0aXZlIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLCEwKTt2YXIgdD10aGlzLl9jaGlsZE1lbnU7dGhpcy5fY2hpbGRNZW51PW51bGwsdC5jbG9zZSgpLHRoaXMuYWN0aXZlSW5kZXg9LTF9fSxlLnByb3RvdHlwZS5fb25NZW51QWJvdXRUb0Nsb3NlPWZ1bmN0aW9uKHQpe3Q9PT10aGlzLl9jaGlsZE1lbnUmJih0aGlzLnJlbW92ZUNsYXNzKCJwLW1vZC1hY3RpdmUiKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMsITApLHRoaXMuX2NoaWxkTWVudT1udWxsLHRoaXMuYWN0aXZlSW5kZXg9LTEpfSxlLnByb3RvdHlwZS5fb25NZW51TWVudVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2lmKHQ9PT10aGlzLl9jaGlsZE1lbnUpe3ZhciBuPXRoaXMuX2FjdGl2ZUluZGV4LGk9dGhpcy5fbWVudXMubGVuZ3RoO3N3aXRjaChlKXtjYXNlIm5leHQiOnRoaXMuYWN0aXZlSW5kZXg9bj09PWktMT8wOm4rMTticmVhaztjYXNlInByZXZpb3VzIjp0aGlzLmFjdGl2ZUluZGV4PTA9PT1uP2ktMTpuLTF9dGhpcy5vcGVuQWN0aXZlTWVudSgpfX0sZS5wcm90b3R5cGUuX29uVGl0bGVDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGUoKX0sZX0obC5XaWRnZXQpO2UuTWVudUJhcj1kLGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUucmVuZGVySXRlbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZUl0ZW1DbGFzcyh0KSxuPXRoaXMuY3JlYXRlSXRlbURhdGFzZXQodCk7cmV0dXJuIGguaC5saSh7Y2xhc3NOYW1lOmUsZGF0YXNldDpufSx0aGlzLnJlbmRlckljb24odCksdGhpcy5yZW5kZXJMYWJlbCh0KSl9LHQucHJvdG90eXBlLnJlbmRlckljb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jcmVhdGVJY29uQ2xhc3ModCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZTplfSx0LnRpdGxlLmljb25MYWJlbCl9LHQucHJvdG90eXBlLnJlbmRlckxhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZm9ybWF0TGFiZWwodCk7cmV0dXJuIGguaC5kaXYoe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1MYWJlbCJ9LGUpfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtIjtyZXR1cm4gdC50aXRsZS5jbGFzc05hbWUmJihlKz0iICIrdC50aXRsZS5jbGFzc05hbWUpLHQuYWN0aXZlJiYoZSs9IiBwLW1vZC1hY3RpdmUiKSxlfSx0LnByb3RvdHlwZS5jcmVhdGVJdGVtRGF0YXNldD1mdW5jdGlvbih0KXtyZXR1cm4gdC50aXRsZS5kYXRhc2V0fSx0LnByb3RvdHlwZS5jcmVhdGVJY29uQ2xhc3M9ZnVuY3Rpb24odCl7dmFyIGU9InAtTWVudUJhci1pdGVtSWNvbiIsbj10LnRpdGxlLmljb25DbGFzcztyZXR1cm4gbj9lKyIgIituOmV9LHQucHJvdG90eXBlLmZvcm1hdExhYmVsPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUsbj1lLmxhYmVsLGk9ZS5tbmVtb25pYztpZihpPDB8fGk+PW4ubGVuZ3RoKXJldHVybiBuO3ZhciByPW4uc2xpY2UoMCxpKSxvPW4uc2xpY2UoaSsxKSxzPW5baV07cmV0dXJuW3IsaC5oLnNwYW4oe2NsYXNzTmFtZToicC1NZW51QmFyLWl0ZW1NbmVtb25pYyJ9LHMpLG9dfSx0fSgpO3QuUmVuZGVyZXI9ZSx0LmRlZmF1bHRSZW5kZXJlcj1uZXcgZX0oZD1lLk1lbnVCYXJ8fChlLk1lbnVCYXI9e30pKSxlLk1lbnVCYXI9ZCxmdW5jdGlvbih0KXt0LmNyZWF0ZU5vZGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInVsIik7cmV0dXJuIGUuY2xhc3NOYW1lPSJwLU1lbnVCYXItY29udGVudCIsdC5hcHBlbmRDaGlsZChlKSx0LnRhYkluZGV4PS0xLHR9LHQuZmluZE1uZW1vbmljPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9LTEscj0tMSxvPSExLHM9ZS50b1VwcGVyQ2FzZSgpLGE9MCx1PXQubGVuZ3RoO2E8dTsrK2Epe3ZhciBjPShhK24pJXUsaD10W2NdLnRpdGxlO2lmKDAhPT1oLmxhYmVsLmxlbmd0aCl7dmFyIGw9aC5tbmVtb25pYztsPj0wJiZsPGgubGFiZWwubGVuZ3RoP2gubGFiZWxbbF0udG9VcHBlckNhc2UoKT09PXMmJigtMT09PWk/aT1jOm89ITApOi0xPT09ciYmaC5sYWJlbFswXS50b1VwcGVyQ2FzZSgpPT09cyYmKHI9Yyl9fXJldHVybntpbmRleDppLG11bHRpcGxlOm8sYXV0bzpyfX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNTYpLHU9bigxMSksYz1uKDcpLGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dC5jYWxsKHRoaXMse25vZGU6by5jcmVhdGVOb2RlKCl9KXx8dGhpcztyZXR1cm4gbi5fb25SZXBlYXQ9ZnVuY3Rpb24oKXtpZihuLl9yZXBlYXRUaW1lcj0tMSxuLl9wcmVzc0RhdGEpe3ZhciB0PW4uX3ByZXNzRGF0YS5wYXJ0O2lmKCJ0aHVtYiIhPT10KXtuLl9yZXBlYXRUaW1lcj1zZXRUaW1lb3V0KG4uX29uUmVwZWF0LDIwKTt2YXIgZT1uLl9wcmVzc0RhdGEubW91c2VYLGk9bi5fcHJlc3NEYXRhLm1vdXNlWTtpZigiZGVjcmVtZW50IiE9PXQpaWYoImluY3JlbWVudCIhPT10KXtpZigidHJhY2siPT09dCl7aWYoIXMuRWxlbWVudEV4dC5oaXRUZXN0KG4udHJhY2tOb2RlLGUsaSkpcmV0dXJuO3ZhciByPW4udGh1bWJOb2RlO2lmKHMuRWxlbWVudEV4dC5oaXRUZXN0KHIsZSxpKSlyZXR1cm47dmFyIG89ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPXZvaWQgMDtyZXR1cm4gYT0iaG9yaXpvbnRhbCI9PT1uLl9vcmllbnRhdGlvbj9lPG8ubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50IjppPG8udG9wPyJkZWNyZW1lbnQiOiJpbmNyZW1lbnQiLHZvaWQgbi5fcGFnZVJlcXVlc3RlZC5lbWl0KGEpfX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmluY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJpbmNyZW1lbnQiKX1lbHNle2lmKCFzLkVsZW1lbnRFeHQuaGl0VGVzdChuLmRlY3JlbWVudE5vZGUsZSxpKSlyZXR1cm47bi5fc3RlcFJlcXVlc3RlZC5lbWl0KCJkZWNyZW1lbnQiKX19fX0sbi5fdmFsdWU9MCxuLl9wYWdlPTEwLG4uX21heGltdW09MTAwLG4uX3JlcGVhdFRpbWVyPS0xLG4uX3ByZXNzRGF0YT1udWxsLG4uX3RodW1iTW92ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3N0ZXBSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uX3BhZ2VSZXF1ZXN0ZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtU2Nyb2xsQmFyIiksbi5zZXRGbGFnKGMuV2lkZ2V0LkZsYWcuRGlzYWxsb3dMYXlvdXQpLG4uX29yaWVudGF0aW9uPWUub3JpZW50YXRpb258fCJ2ZXJ0aWNhbCIsbi5kYXRhc2V0Lm9yaWVudGF0aW9uPW4uX29yaWVudGF0aW9uLHZvaWQgMCE9PWUubWF4aW11bSYmKG4uX21heGltdW09TWF0aC5tYXgoMCxlLm1heGltdW0pKSx2b2lkIDAhPT1lLnBhZ2UmJihuLl9wYWdlPU1hdGgubWF4KDAsZS5wYWdlKSksdm9pZCAwIT09ZS52YWx1ZSYmKG4uX3ZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oZS52YWx1ZSxuLl9tYXhpbXVtKSkpLG59cmV0dXJuIHIoZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRodW1iTW92ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGh1bWJNb3ZlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInN0ZXBSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RlcFJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInBhZ2VSZXF1ZXN0ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGFnZVJlcXVlc3RlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fb3JpZW50YXRpb24hPT10JiYodGhpcy5fcmVsZWFzZU1vdXNlKCksdGhpcy5fb3JpZW50YXRpb249dCx0aGlzLmRhdGFzZXQub3JpZW50YXRpb249dCx0aGlzLnVwZGF0ZSgpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dD1NYXRoLm1heCgwLE1hdGgubWluKHQsdGhpcy5fbWF4aW11bSkpLHRoaXMuX3ZhbHVlIT09dCYmKHRoaXMuX3ZhbHVlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJwYWdlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhZ2V9LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fcGFnZSE9PXQmJih0aGlzLl9wYWdlPXQsdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJtYXhpbXVtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heGltdW19LHNldDpmdW5jdGlvbih0KXt0PU1hdGgubWF4KDAsdCksdGhpcy5fbWF4aW11bSE9PXQmJih0aGlzLl9tYXhpbXVtPXQsdGhpcy5fdmFsdWU9TWF0aC5taW4odGhpcy5fdmFsdWUsdCksdGhpcy51cGRhdGUoKSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJkZWNyZW1lbnROb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci1idXR0b24iKVswXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImluY3JlbWVudE5vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInAtU2Nyb2xsQmFyLWJ1dHRvbiIpWzFdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidHJhY2tOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10cmFjayIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGh1bWJOb2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwLVNjcm9sbEJhci10aHVtYiIpWzBdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUub25BZnRlckRldGFjaD1mdW5jdGlvbih0KXt0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25VcGRhdGVSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPTEwMCp0aGlzLl92YWx1ZS90aGlzLl9tYXhpbXVtLG49MTAwKnRoaXMuX3BhZ2UvKHRoaXMuX3BhZ2UrdGhpcy5fbWF4aW11bSk7ZT1NYXRoLm1heCgwLE1hdGgubWluKGUsMTAwKSksbj1NYXRoLm1heCgwLE1hdGgubWluKG4sMTAwKSk7dmFyIGk9dGhpcy50aHVtYk5vZGUuc3R5bGU7Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/KGkudG9wPSIiLGkuaGVpZ2h0PSIiLGkubGVmdD1lKyIlIixpLndpZHRoPW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIistZSsiJSwgMCUpIik6KGkubGVmdD0iIixpLndpZHRoPSIiLGkudG9wPWUrIiUiLGkuaGVpZ2h0PW4rIiUiLGkudHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCUsICIrLWUrIiUpIil9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlKXt2YXIgZT10aGlzLl9wcmVzc0RhdGE/dGhpcy5fcHJlc3NEYXRhLnZhbHVlOi0xO3RoaXMuX3JlbGVhc2VNb3VzZSgpLC0xIT09ZSYmdGhpcy5fbW92ZVRodW1iKGUpfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24mJiF0aGlzLl9wcmVzc0RhdGEpe3ZhciBlPW8uZmluZFBhcnQodGhpcyx0LnRhcmdldCk7aWYoZSl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIG49YS5EcmFnLm92ZXJyaWRlQ3Vyc29yKCJkZWZhdWx0Iik7aWYodGhpcy5fcHJlc3NEYXRhPXtwYXJ0OmUsb3ZlcnJpZGU6bixkZWx0YTotMSx2YWx1ZTotMSxtb3VzZVg6dC5jbGllbnRYLG1vdXNlWTp0LmNsaWVudFl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLCJ0aHVtYiI9PT1lKXt2YXIgaT10aGlzLnRodW1iTm9kZSxyPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WC1yLmxlZnQ6dGhpcy5fcHJlc3NEYXRhLmRlbHRhPXQuY2xpZW50WS1yLnRvcCxpLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHZvaWQodGhpcy5fcHJlc3NEYXRhLnZhbHVlPXRoaXMuX3ZhbHVlKX1pZigidHJhY2siPT09ZSl7cj10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgcz12b2lkIDA7cmV0dXJuIHM9Imhvcml6b250YWwiPT09dGhpcy5fb3JpZW50YXRpb24/dC5jbGllbnRYPHIubGVmdD8iZGVjcmVtZW50IjoiaW5jcmVtZW50Ijp0LmNsaWVudFk8ci50b3A/ImRlY3JlbWVudCI6ImluY3JlbWVudCIsdGhpcy5fcmVwZWF0VGltZXI9c2V0VGltZW91dCh0aGlzLl9vblJlcGVhdCwzNTApLHZvaWQgdGhpcy5fcGFnZVJlcXVlc3RlZC5lbWl0KHMpfXJldHVybiJkZWNyZW1lbnQiPT09ZT8odGhpcy5kZWNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiZGVjcmVtZW50IikpOiJpbmNyZW1lbnQiPT09ZT8odGhpcy5pbmNyZW1lbnROb2RlLmNsYXNzTGlzdC5hZGQoInAtbW9kLWFjdGl2ZSIpLHRoaXMuX3JlcGVhdFRpbWVyPXNldFRpbWVvdXQodGhpcy5fb25SZXBlYXQsMzUwKSx2b2lkIHRoaXMuX3N0ZXBSZXF1ZXN0ZWQuZW1pdCgiaW5jcmVtZW50IikpOnZvaWQgMH19fSxlLnByb3RvdHlwZS5fZXZ0TW91c2VNb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX3ByZXNzRGF0YSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVg9dC5jbGllbnRYLHRoaXMuX3ByZXNzRGF0YS5tb3VzZVk9dC5jbGllbnRZLCJ0aHVtYiI9PT10aGlzLl9wcmVzc0RhdGEucGFydCkpe3ZhciBlLG4saT10aGlzLnRodW1iTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMudHJhY2tOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyJob3Jpem9udGFsIj09PXRoaXMuX29yaWVudGF0aW9uPyhlPXQuY2xpZW50WC1yLmxlZnQtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci53aWR0aC1pLndpZHRoKTooZT10LmNsaWVudFktci50b3AtdGhpcy5fcHJlc3NEYXRhLmRlbHRhLG49ci5oZWlnaHQtaS5oZWlnaHQpO3ZhciBvPTA9PT1uPzA6ZSp0aGlzLl9tYXhpbXVtL247dGhpcy5fbW92ZVRodW1iKG8pfX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlVXA9ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5fcmVsZWFzZU1vdXNlKCkpfSxlLnByb3RvdHlwZS5fcmVsZWFzZU1vdXNlPWZ1bmN0aW9uKCl7dGhpcy5fcHJlc3NEYXRhJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3JlcGVhdFRpbWVyKSx0aGlzLl9yZXBlYXRUaW1lcj0tMSx0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApLHRoaXMudGh1bWJOb2RlLmNsYXNzTGlzdC5yZW1vdmUoInAtbW9kLWFjdGl2ZSIpLHRoaXMuZGVjcmVtZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJwLW1vZC1hY3RpdmUiKSx0aGlzLmluY3JlbWVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgicC1tb2QtYWN0aXZlIikpfSxlLnByb3RvdHlwZS5fbW92ZVRodW1iPWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoMCxNYXRoLm1pbih0LHRoaXMuX21heGltdW0pKSx0aGlzLl92YWx1ZSE9PXQmJih0aGlzLl92YWx1ZT10LHRoaXMudXBkYXRlKCksdGhpcy5fdGh1bWJNb3ZlZC5lbWl0KHQpKX0sZX0oYy5XaWRnZXQpO2UuU2Nyb2xsQmFyPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVOb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsbi5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLWJ1dHRvbiIsZS5kYXRhc2V0LmFjdGlvbj0iZGVjcmVtZW50IixuLmRhdGFzZXQuYWN0aW9uPSJpbmNyZW1lbnQiLGkuY2xhc3NOYW1lPSJwLVNjcm9sbEJhci10cmFjayIsci5jbGFzc05hbWU9InAtU2Nyb2xsQmFyLXRodW1iIixpLmFwcGVuZENoaWxkKHIpLHQuYXBwZW5kQ2hpbGQoZSksdC5hcHBlbmRDaGlsZChpKSx0LmFwcGVuZENoaWxkKG4pLHR9LHQuZmluZFBhcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50aHVtYk5vZGUuY29udGFpbnMoZSk/InRodW1iIjp0LnRyYWNrTm9kZS5jb250YWlucyhlKT8idHJhY2siOnQuZGVjcmVtZW50Tm9kZS5jb250YWlucyhlKT8iZGVjcmVtZW50Ijp0LmluY3JlbWVudE5vZGUuY29udGFpbnMoZSk/ImluY3JlbWVudCI6bnVsbH19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMikscz1uKDUpLGE9bigyMiksdT1uKDcpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0PW51bGwsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZih0aGlzLl93aWRnZXQpe3ZhciBlPXRoaXMuX3dpZGdldDt0aGlzLl93aWRnZXQ9bnVsbCxlLmRpc3Bvc2UoKX10LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldCE9PXQmJih0aGlzLl93aWRnZXQmJnRoaXMuX3dpZGdldC5kaXNwb3NlKCksdGhpcy5fd2lkZ2V0PXQsdGhpcy5wYXJlbnQmJnQmJnRoaXMuYXR0YWNoV2lkZ2V0KHQpKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5pdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dpZGdldD9vLm9uY2UodGhpcy5fd2lkZ2V0KTpvLmVtcHR5KCl9LGUucHJvdG90eXBlLnJlbW92ZVdpZGdldD1mdW5jdGlvbih0KXt0aGlzLl93aWRnZXQ9PT10JiYodGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5wYXJlbnQmJnRoaXMuZGV0YWNoV2lkZ2V0KHQpKX0sZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMpLG8uZWFjaCh0aGlzLGZ1bmN0aW9uKHQpe2UuYXR0YWNoV2lkZ2V0KHQpfSl9LGUucHJvdG90eXBlLmF0dGFjaFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkJlZm9yZUF0dGFjaCksdGhpcy5wYXJlbnQubm9kZS5hcHBlbmRDaGlsZCh0Lm5vZGUpLHRoaXMucGFyZW50LmlzQXR0YWNoZWQmJnMuTWVzc2FnZUxvb3Auc2VuZE1lc3NhZ2UodCx1LldpZGdldC5Nc2cuQWZ0ZXJBdHRhY2gpfSxlLnByb3RvdHlwZS5kZXRhY2hXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5wYXJlbnQuaXNBdHRhY2hlZCYmcy5NZXNzYWdlTG9vcC5zZW5kTWVzc2FnZSh0LHUuV2lkZ2V0Lk1zZy5CZWZvcmVEZXRhY2gpLHRoaXMucGFyZW50Lm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzLnBhcmVudC5pc0F0dGFjaGVkJiZzLk1lc3NhZ2VMb29wLnNlbmRNZXNzYWdlKHQsdS5XaWRnZXQuTXNnLkFmdGVyRGV0YWNoKX0sZX0oYS5MYXlvdXQpO2UuU2luZ2xldG9uTGF5b3V0PWN9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9bigyKSxhPW4oNTYpLHU9big1NCksYz1uKDEzMyksaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyx7bGF5b3V0Om8uY3JlYXRlTGF5b3V0KGUpfSl8fHRoaXM7cmV0dXJuIG4uX3ByZXNzRGF0YT1udWxsLG4uYWRkQ2xhc3MoInAtU3BsaXRQYW5lbCIpLG59cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVsZWFzZU1vdXNlKCksdC5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIm9yaWVudGF0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0Lm9yaWVudGF0aW9ufSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQub3JpZW50YXRpb249dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsImFsaWdubWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5hbGlnbm1lbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5hbGlnbm1lbnQ9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNwYWNpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuc3BhY2luZ30sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNwYWNpbmc9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInJlbmRlcmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnJlbmRlcmVyfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiaGFuZGxlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oYW5kbGVzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlbGF0aXZlU2l6ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmVsYXRpdmVTaXplcygpfSxlLnByb3RvdHlwZS5zZXRSZWxhdGl2ZVNpemVzPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LnNldFJlbGF0aXZlU2l6ZXModCl9LGUucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibW91c2Vkb3duIjp0aGlzLl9ldnRNb3VzZURvd24odCk7YnJlYWs7Y2FzZSJtb3VzZW1vdmUiOnRoaXMuX2V2dE1vdXNlTW92ZSh0KTticmVhaztjYXNlIm1vdXNldXAiOnRoaXMuX2V2dE1vdXNlVXAodCk7YnJlYWs7Y2FzZSJrZXlkb3duIjp0aGlzLl9ldnRLZXlEb3duKHQpO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOnQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0sZS5wcm90b3R5cGUub25CZWZvcmVBdHRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyl9LGUucHJvdG90eXBlLm9uQWZ0ZXJEZXRhY2g9ZnVuY3Rpb24odCl7dGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcyksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLm9uQ2hpbGRBZGRlZD1mdW5jdGlvbih0KXt0LmNoaWxkLmFkZENsYXNzKCJwLVNwbGl0UGFuZWwtY2hpbGQiKSx0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUub25DaGlsZFJlbW92ZWQ9ZnVuY3Rpb24odCl7dC5jaGlsZC5yZW1vdmVDbGFzcygicC1TcGxpdFBhbmVsLWNoaWxkIiksdGhpcy5fcmVsZWFzZU1vdXNlKCl9LGUucHJvdG90eXBlLl9ldnRLZXlEb3duPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLDI3PT09dC5rZXlDb2RlJiZ0aGlzLl9yZWxlYXNlTW91c2UoKX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlRG93bj1mdW5jdGlvbih0KXtpZigwPT09dC5idXR0b24pe3ZhciBlPXRoaXMubGF5b3V0LG49cy5BcnJheUV4dC5maW5kRmlyc3RJbmRleChlLmhhbmRsZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29udGFpbnModC50YXJnZXQpfSk7aWYoLTEhPT1uKXt2YXIgaTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix0aGlzLCEwKTt2YXIgcj1lLmhhbmRsZXNbbl0sbz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2k9Imhvcml6b250YWwiPT09ZS5vcmllbnRhdGlvbj90LmNsaWVudFgtby5sZWZ0OnQuY2xpZW50WS1vLnRvcDt2YXIgdT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyKSxjPWEuRHJhZy5vdmVycmlkZUN1cnNvcih1LmN1cnNvcik7dGhpcy5fcHJlc3NEYXRhPXtpbmRleDpuLGRlbHRhOmksb3ZlcnJpZGU6Y319fX0sZS5wcm90b3R5cGUuX2V2dE1vdXNlTW92ZT1mdW5jdGlvbih0KXt2YXIgZTt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbj10aGlzLmxheW91dCxpPXRoaXMubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPSJob3Jpem9udGFsIj09PW4ub3JpZW50YXRpb24/dC5jbGllbnRYLWkubGVmdC10aGlzLl9wcmVzc0RhdGEuZGVsdGE6dC5jbGllbnRZLWkudG9wLXRoaXMuX3ByZXNzRGF0YS5kZWx0YSxuLm1vdmVIYW5kbGUodGhpcy5fcHJlc3NEYXRhLmluZGV4LGUpfSxlLnByb3RvdHlwZS5fZXZ0TW91c2VVcD1mdW5jdGlvbih0KXswPT09dC5idXR0b24mJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLl9yZWxlYXNlTW91c2UoKSl9LGUucHJvdG90eXBlLl9yZWxlYXNlTW91c2U9ZnVuY3Rpb24oKXt0aGlzLl9wcmVzc0RhdGEmJih0aGlzLl9wcmVzc0RhdGEub3ZlcnJpZGUuZGlzcG9zZSgpLHRoaXMuX3ByZXNzRGF0YT1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcywhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMsITApKX0sZX0odS5QYW5lbCk7ZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jcmVhdGVIYW5kbGU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9InAtU3BsaXRQYW5lbC1oYW5kbGUiLHR9LHR9KCk7dC5SZW5kZXJlcj1lLHQuZGVmYXVsdFJlbmRlcmVyPW5ldyBlLHQuZ2V0U3RyZXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gYy5TcGxpdExheW91dC5nZXRTdHJldGNoKHQpfSx0LnNldFN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtjLlNwbGl0TGF5b3V0LnNldFN0cmV0Y2godCxlKX19KGg9ZS5TcGxpdFBhbmVsfHwoZS5TcGxpdFBhbmVsPXt9KSksZS5TcGxpdFBhbmVsPWgsZnVuY3Rpb24odCl7dC5jcmVhdGVMYXlvdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGF5b3V0fHxuZXcgYy5TcGxpdExheW91dCh7cmVuZGVyZXI6dC5yZW5kZXJlcnx8aC5kZWZhdWx0UmVuZGVyZXIsb3JpZW50YXRpb246dC5vcmllbnRhdGlvbixhbGlnbm1lbnQ6dC5hbGlnbm1lbnQsc3BhY2luZzp0LnNwYWNpbmd9KX19KG98fChvPXt9KSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHM9big5KSxhPW4oNSksdT1uKDExKSxjPW4oNzYpLGg9bigxMzUpLGw9big4MCksZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHUuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgbC5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi5zdGFja2VkUGFuZWw9bmV3IGguU3RhY2tlZFBhbmVsLG4uc3RhY2tlZFBhbmVsLmFkZENsYXNzKCJwLVRhYlBhbmVsLXN0YWNrZWRQYW5lbCIpLG4udGFiQmFyLnRhYk1vdmVkLmNvbm5lY3Qobi5fb25UYWJNb3ZlZCxuKSxuLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KG4uX29uQ3VycmVudENoYW5nZWQsbiksbi50YWJCYXIudGFiQ2xvc2VSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkNsb3NlUmVxdWVzdGVkLG4pLG4udGFiQmFyLnRhYkFjdGl2YXRlUmVxdWVzdGVkLmNvbm5lY3Qobi5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZCxuKSxuLnN0YWNrZWRQYW5lbC53aWRnZXRSZW1vdmVkLmNvbm5lY3Qobi5fb25XaWRnZXRSZW1vdmVkLG4pLG4uX3RhYlBsYWNlbWVudD1lLnRhYlBsYWNlbWVudHx8InRvcCI7dmFyIGk9by5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50KG4uX3RhYlBsYWNlbWVudCkscj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudChuLl90YWJQbGFjZW1lbnQpO24udGFiQmFyLm9yaWVudGF0aW9uPXIsbi50YWJCYXIuZGF0YXNldC5wbGFjZW1lbnQ9bi5fdGFiUGxhY2VtZW50O3ZhciBzPW5ldyBjLkJveExheW91dCh7ZGlyZWN0aW9uOmksc3BhY2luZzowfSk7cmV0dXJuIGMuQm94TGF5b3V0LnNldFN0cmV0Y2gobi50YWJCYXIsMCksYy5Cb3hMYXlvdXQuc2V0U3RyZXRjaChuLnN0YWNrZWRQYW5lbCwxKSxzLmFkZFdpZGdldChuLnRhYkJhcikscy5hZGRXaWRnZXQobi5zdGFja2VkUGFuZWwpLG4ubGF5b3V0PXMsbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWJCYXIuY3VycmVudEluZGV4fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIuY3VycmVudEluZGV4PXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50V2lkZ2V0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50YWJCYXIuY3VycmVudFRpdGxlO3JldHVybiB0P3Qub3duZXI6bnVsbH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRUaXRsZT10P3QudGl0bGU6bnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYnNNb3ZhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQmFyLnRhYnNNb3ZhYmxlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50YWJCYXIudGFic01vdmFibGU9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhYlBsYWNlbWVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YWJQbGFjZW1lbnR9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLl90YWJQbGFjZW1lbnQhPT10KXt0aGlzLl90YWJQbGFjZW1lbnQ9dDt2YXIgZT1vLmRpcmVjdGlvbkZyb21QbGFjZW1lbnQodCksbj1vLm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudCh0KTt0aGlzLnRhYkJhci5vcmllbnRhdGlvbj1uLHRoaXMudGFiQmFyLmRhdGFzZXQucGxhY2VtZW50PXQsdGhpcy5sYXlvdXQuZGlyZWN0aW9uPWV9fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YWNrZWRQYW5lbC53aWRnZXRzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbih0KXt0aGlzLmluc2VydFdpZGdldCh0aGlzLndpZGdldHMubGVuZ3RoLHQpfSxlLnByb3RvdHlwZS5pbnNlcnRXaWRnZXQ9ZnVuY3Rpb24odCxlKXtlIT09dGhpcy5jdXJyZW50V2lkZ2V0JiZlLmhpZGUoKSx0aGlzLnN0YWNrZWRQYW5lbC5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxvPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1vP28ub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwocy5QbGF0Zm9ybS5JU19FREdFfHxzLlBsYXRmb3JtLklTX0lFKSYmYS5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdGFja2VkUGFuZWwuaW5zZXJ0V2lkZ2V0KGUudG9JbmRleCxlLnRpdGxlLm93bmVyKX0sZS5wcm90b3R5cGUuX29uV2lkZ2V0UmVtb3ZlZD1mdW5jdGlvbih0LGUpe3RoaXMudGFiQmFyLnJlbW92ZVRhYihlLnRpdGxlKX0sZX0obig3KS5XaWRnZXQpO2UuVGFiUGFuZWw9ZCxmdW5jdGlvbih0KXt0Lm9yaWVudGF0aW9uRnJvbVBsYWNlbWVudD1mdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0sdC5kaXJlY3Rpb25Gcm9tUGxhY2VtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBuW3RdfTt2YXIgZT17dG9wOiJob3Jpem9udGFsIixsZWZ0OiJ2ZXJ0aWNhbCIscmlnaHQ6InZlcnRpY2FsIixib3R0b206Imhvcml6b250YWwifSxuPXt0b3A6InRvcC10by1ib3R0b20iLGxlZnQ6ImxlZnQtdG8tcmlnaHQiLHJpZ2h0OiJyaWdodC10by1sZWZ0Iixib3R0b206ImJvdHRvbS10by10b3AifX0ob3x8KG89e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigyNSkscz1uKDc1KSxhPXthbGlnbl9jb250ZW50Om51bGwsYWxpZ25faXRlbXM6bnVsbCxhbGlnbl9zZWxmOm51bGwsYm9yZGVyOm51bGwsYm90dG9tOm51bGwsZGlzcGxheTpudWxsLGZsZXg6bnVsbCxmbGV4X2Zsb3c6bnVsbCxoZWlnaHQ6bnVsbCxqdXN0aWZ5X2NvbnRlbnQ6bnVsbCxsZWZ0Om51bGwsbWFyZ2luOm51bGwsbWF4X2hlaWdodDpudWxsLG1heF93aWR0aDpudWxsLG1pbl9oZWlnaHQ6bnVsbCxtaW5fd2lkdGg6bnVsbCxvdmVyZmxvdzpudWxsLG92ZXJmbG93X3g6bnVsbCxvdmVyZmxvd195Om51bGwsb3JkZXI6bnVsbCxwYWRkaW5nOm51bGwscmlnaHQ6bnVsbCx0b3A6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCxncmlkX2F1dG9fY29sdW1uczpudWxsLGdyaWRfYXV0b19mbG93Om51bGwsZ3JpZF9hdXRvX3Jvd3M6bnVsbCxncmlkX2dhcDpudWxsLGdyaWRfdGVtcGxhdGVfcm93czpudWxsLGdyaWRfdGVtcGxhdGVfY29sdW1uczpudWxsLGdyaWRfdGVtcGxhdGVfYXJlYXM6bnVsbCxncmlkX3JvdzpudWxsLGdyaWRfY29sdW1uOm51bGwsZ3JpZF9hcmVhOm51bGx9LHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvLmFzc2lnbih0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGF5b3V0TW9kZWwiLF92aWV3X25hbWU6IkxheW91dFZpZXcifSxhKX0sZX0ocy5XaWRnZXRNb2RlbCk7ZS5MYXlvdXRNb2RlbD11O3ZhciBjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0aGlzLl90cmFpdE5hbWVzPVtdLHQucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUpO2Zvcih2YXIgbj0wLGk9T2JqZWN0LmtleXMoYSk7bjxpLmxlbmd0aDtuKyspe3ZhciByPWlbbl07dGhpcy5yZWdpc3RlclRyYWl0KHIpfX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSksdGhpcy5oYW5kbGVDaGFuZ2UodCx0aGlzLm1vZGVsLmdldCh0KSl9LGUucHJvdG90eXBlLmNzc19uYW1lPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL18vZywiLSIpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm9wdGlvbnMucGFyZW50O24/bnVsbD09PWU/bi5lbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0aGlzLmNzc19uYW1lKHQpKTpuLmVsLnN0eWxlW3RoaXMuY3NzX25hbWUodCldPWU6Y29uc29sZS53YXJuKCJTdHlsZSBub3QgYXBwbGllZCBiZWNhdXNlIGEgcGFyZW50IHZpZXcgZG9lcyBub3QgZXhpc3QiKX0sZS5wcm90b3R5cGUudW5sYXlvdXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5vcHRpb25zLnBhcmVudDt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7ZT9lLmVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQuY3NzX25hbWUobikpOmNvbnNvbGUud2FybigiU3R5bGUgbm90IHJlbW92ZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LHRoaXMpfSxlfShzLldpZGdldFZpZXcpO2UuTGF5b3V0Vmlldz1jfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDI1KSxzPW4oNzUpLGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIG8uYXNzaWduKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJTdHlsZU1vZGVsIixfdmlld19uYW1lOiJTdHlsZVZpZXcifSxPYmplY3Qua2V5cyhlLnN0eWxlUHJvcGVydGllcykucmVkdWNlKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbbl09ZS5zdHlsZVByb3BlcnRpZXNbbl0uZGVmYXVsdCx0fSx7fSkpfSxlLnN0eWxlUHJvcGVydGllcz17fSxlfShzLldpZGdldE1vZGVsKTtlLlN0eWxlTW9kZWw9YTt2YXIgdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dGhpcy5fdHJhaXROYW1lcz1bXSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKTtmb3IodmFyIG49dGhpcy5tb2RlbC5jb25zdHJ1Y3RvcixpPTAscj1PYmplY3Qua2V5cyhuLnN0eWxlUHJvcGVydGllcyk7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dGhpcy5yZWdpc3RlclRyYWl0KG8pfXRoaXMuc3R5bGUoKX0sZS5wcm90b3R5cGUucmVnaXN0ZXJUcmFpdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX3RyYWl0TmFtZXMucHVzaCh0KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZToiK3QsZnVuY3Rpb24obixpKXtlLmhhbmRsZUNoYW5nZSh0LGkpfSl9LGUucHJvdG90eXBlLmhhbmRsZUNoYW5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMub3B0aW9ucy5wYXJlbnQ7aWYobil7dmFyIGk9dGhpcy5tb2RlbC5jb25zdHJ1Y3Rvci5zdHlsZVByb3BlcnRpZXMscj1pW3RdLmF0dHJpYnV0ZSxvPWlbdF0uc2VsZWN0b3Iscz1vP24uZWwucXVlcnlTZWxlY3RvckFsbChvKTpbbi5lbF07aWYobnVsbD09PWUpZm9yKHZhciBhPTA7YSE9PXMubGVuZ3RoOysrYSlzW2FdLnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpO2Vsc2UgZm9yKGE9MDthIT09cy5sZW5ndGg7KythKXNbYV0uc3R5bGVbcl09ZX1lbHNlIGNvbnNvbGUud2FybigiU3R5bGUgbm90IGFwcGxpZWQgYmVjYXVzZSBhIHBhcmVudCB2aWV3IGRvZXMgbm90IGV4aXN0Iil9LGUucHJvdG90eXBlLnN0eWxlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT10aGlzLl90cmFpdE5hbWVzO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO3RoaXMuaGFuZGxlQ2hhbmdlKG4sdGhpcy5tb2RlbC5nZXQobikpfX0sZS5wcm90b3R5cGUudW5zdHlsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5wYXJlbnQsZT10aGlzLm1vZGVsLmNvbnN0cnVjdG9yLnN0eWxlUHJvcGVydGllczt0aGlzLl90cmFpdE5hbWVzLmZvckVhY2goZnVuY3Rpb24obil7aWYodClmb3IodmFyIGk9ZVtuXS5hdHRyaWJ1dGUscj1lW25dLnNlbGVjdG9yLG89cj90LmVsLnF1ZXJ5U2VsZWN0b3JBbGwocik6W3QuZWxdLHM9MDtzIT09by5sZW5ndGg7KytzKW9bc10uc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk7ZWxzZSBjb25zb2xlLndhcm4oIlN0eWxlIG5vdCByZW1vdmVkIGJlY2F1c2UgYSBwYXJlbnQgdmlldyBkb2VzIG5vdCBleGlzdCIpfSx0aGlzKX0sZX0ocy5XaWRnZXRWaWV3KTtlLlN0eWxlVmlldz11fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKShmdW5jdGlvbihyLG8pe2Z1bmN0aW9uIHModCl7dHJ5e3UoaS5uZXh0KHQpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBhKHQpe3RyeXt1KGkudGhyb3codCkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHUodCl7dC5kb25lP3IodC52YWx1ZSk6bmV3IG4oZnVuY3Rpb24oZSl7ZSh0LnZhbHVlKX0pLnRoZW4ocyxhKX11KChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0scj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLGkscixvLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmclswXSl0aHJvdyByWzFdO3JldHVybiByWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIGEobyl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3M7KXRyeXtpZihuPTEsaSYmKHI9MiZvWzBdP2kucmV0dXJuOm9bMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSxvWzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJihvPVsyJm9bMF0sci52YWx1ZV0pLG9bMF0pe2Nhc2UgMDpjYXNlIDE6cj1vO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTpvWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKyssaT1vWzFdLG89WzBdO2NvbnRpbnVlO2Nhc2UgNzpvPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocj0ocj1zLnRyeXMpLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKDY9PT1vWzBdfHwyPT09b1swXSkpe3M9MDtjb250aW51ZX1pZigzPT09b1swXSYmKCFyfHxvWzFdPnJbMF0mJm9bMV08clszXSkpe3MubGFiZWw9b1sxXTticmVha31pZig2PT09b1swXSYmcy5sYWJlbDxyWzFdKXtzLmxhYmVsPXJbMV0scj1vO2JyZWFrfWlmKHImJnMubGFiZWw8clsyXSl7cy5sYWJlbD1yWzJdLHMub3BzLnB1c2gobyk7YnJlYWt9clsyXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfW89ZS5jYWxsKHQscyl9Y2F0Y2godCl7bz1bNix0XSxpPTB9ZmluYWxseXtuPXI9MH1pZig1Jm9bMF0pdGhyb3cgb1sxXTtyZXR1cm57dmFsdWU6b1swXT9vWzFdOnZvaWQgMCxkb25lOiEwfX0oW28sYV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMudGFyZ2V0cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY29tbXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtlcm5lbD1udWxsLHRoaXMuanNTZXJ2aWNlc0tlcm5lbD1udWxsLHRoaXMuaW5pdF9rZXJuZWwodCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRfa2VybmVsPWZ1bmN0aW9uKHQpe3RoaXMua2VybmVsPXQsdGhpcy5qc1NlcnZpY2VzS2VybmVsPXR9LHQucHJvdG90eXBlLm5ld19jb21tPWZ1bmN0aW9uKHQsZSxvLHMsYSx1KXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxjO3JldHVybiByKHRoaXMsZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxQcm9taXNlLnJlc29sdmUodGhpcy5qc1NlcnZpY2VzS2VybmVsLmNvbm5lY3RUb0NvbW0odCxhKSldO2Nhc2UgMTpyZXR1cm4gaT1yLnNlbnQoKSxjPW5ldyBuKGkpLHRoaXMucmVnaXN0ZXJfY29tbShjKSxjLm9wZW4oZSxvLHMsdSksWzIsY119fSl9KX0sdC5wcm90b3R5cGUucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxyPXRoaXMuanNTZXJ2aWNlc0tlcm5lbC5yZWdpc3RlckNvbW1UYXJnZXQodCxmdW5jdGlvbih0LHIpe3ZhciBvPW5ldyBuKHQpO2kucmVnaXN0ZXJfY29tbShvKTt0cnl7cmV0dXJuIGUobyxyKX1jYXRjaCh0KXtvLmNsb3NlKCksY29uc29sZS5lcnJvcih0KSxjb25zb2xlLmVycm9yKG5ldyBFcnJvcigiRXhjZXB0aW9uIG9wZW5pbmcgbmV3IGNvbW0iKSl9fSk7dGhpcy50YXJnZXRzW3RdPXJ9LHQucHJvdG90eXBlLnVucmVnaXN0ZXJfdGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy50YXJnZXRzW3RdLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50YXJnZXRzW3RdfSx0LnByb3RvdHlwZS5yZWdpc3Rlcl9jb21tPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbW1zW3QuY29tbV9pZF09UHJvbWlzZS5yZXNvbHZlKHQpLHQua2VybmVsPXRoaXMua2VybmVsLHQuY29tbV9pZH0sdH0oKTt0LkNvbW1NYW5hZ2VyPWU7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuanNTZXJ2aWNlc0NvbW09bnVsbCx0aGlzLmpzU2VydmljZXNDb21tPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY29tbV9pZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmpzU2VydmljZXNDb21tLmNvbW1JZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInRhcmdldF9uYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuanNTZXJ2aWNlc0NvbW0udGFyZ2V0TmFtZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByPXRoaXMuanNTZXJ2aWNlc0NvbW0ub3Blbih0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5zZW5kKHQsbixpKTtyZXR1cm4gdGhpcy5faG9va3VwQ2FsbGJhY2tzKHIsZSksci5tc2cuaGVhZGVyLm1zZ19pZH0sdC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9dGhpcy5qc1NlcnZpY2VzQ29tbS5jbG9zZSh0LG4saSk7cmV0dXJuIHRoaXMuX2hvb2t1cENhbGxiYWNrcyhyLGUpLHIubXNnLmhlYWRlci5tc2dfaWR9LHQucHJvdG90eXBlLm9uX21zZz1mdW5jdGlvbih0KXt0aGlzLmpzU2VydmljZXNDb21tLm9uTXNnPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUub25fY2xvc2U9ZnVuY3Rpb24odCl7dGhpcy5qc1NlcnZpY2VzQ29tbS5vbkNsb3NlPXQuYmluZCh0aGlzKX0sdC5wcm90b3R5cGUuX2hvb2t1cENhbGxiYWNrcz1mdW5jdGlvbih0LGUpe2UmJih0Lm9uUmVwbHk9ZnVuY3Rpb24odCl7ZS5zaGVsbCYmZS5zaGVsbC5yZXBseSYmZS5zaGVsbC5yZXBseSh0KX0sdC5vblN0ZGluPWZ1bmN0aW9uKHQpe2UuaW5wdXQmJmUuaW5wdXQodCl9LHQub25JT1B1Yj1mdW5jdGlvbih0KXtpZihlLmlvcHViKWlmKGUuaW9wdWIuc3RhdHVzJiYic3RhdHVzIj09PXQuaGVhZGVyLm1zZ190eXBlKWUuaW9wdWIuc3RhdHVzKHQpO2Vsc2UgaWYoZS5pb3B1Yi5jbGVhcl9vdXRwdXQmJiJjbGVhcl9vdXRwdXQiPT09dC5oZWFkZXIubXNnX3R5cGUpZS5pb3B1Yi5jbGVhcl9vdXRwdXQodCk7ZWxzZSBpZihlLmlvcHViLm91dHB1dClzd2l0Y2godC5oZWFkZXIubXNnX3R5cGUpe2Nhc2UiZGlzcGxheV9kYXRhIjpjYXNlImV4ZWN1dGVfcmVzdWx0IjplLmlvcHViLm91dHB1dCh0KX19KX0sdH0oKTt0LkNvbW09bn0odC5zZXJ2aWNlc3x8KHQuc2VydmljZXM9e30pKX0oZS5zaGltc3x8KGUuc2hpbXM9e30pKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxuKXt0aGlzLmluaXRpYWxpemUodCxlLG4pfXJldHVybiB0LnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9oYW5kbGVyX2NvbnRleHQ9bnx8dGhpcyx0aGlzLl9tb2RlbHM9W10sdGhpcy52aWV3cz1bXSx0aGlzLl9jcmVhdGVfdmlldz10LHRoaXMuX3JlbW92ZV92aWV3PWV8fGZ1bmN0aW9uKHQpe3QucmVtb3ZlKCl9fSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHI9bnx8dGhpcy5fcmVtb3ZlX3ZpZXcsbz1lfHx0aGlzLl9jcmVhdGVfdmlldztpPWl8fHRoaXMuX2hhbmRsZXJfY29udGV4dDtmb3IodmFyIHM9MDtzPHQubGVuZ3RoJiYhKHM+PXRoaXMuX21vZGVscy5sZW5ndGh8fHRbc10hPT10aGlzLl9tb2RlbHNbc10pO3MrKyk7Zm9yKHZhciBhPXMsdT10aGlzLnZpZXdzLnNwbGljZShhLHRoaXMudmlld3MubGVuZ3RoLWEpLGM9MDtjPHUubGVuZ3RoO2MrKyl1W2NdLnRoZW4oZnVuY3Rpb24odCl7ci5jYWxsKGksdCl9KTtmb3IoO3M8dC5sZW5ndGg7cysrKXRoaXMudmlld3MucHVzaChQcm9taXNlLnJlc29sdmUoby5jYWxsKGksdFtzXSxzKSkpO3JldHVybiB0aGlzLl9tb2RlbHM9dC5zbGljZSgpLFByb21pc2UuYWxsKHRoaXMudmlld3MpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBQcm9taXNlLmFsbCh0aGlzLnZpZXdzKS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5fcmVtb3ZlX3ZpZXcuY2FsbCh0Ll9oYW5kbGVyX2NvbnRleHQsZSl9KSx0LnZpZXdzPVtdLHQuX21vZGVscz1bXX0pfSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52aWV3cz1udWxsLHRoaXMuX21vZGVscz1udWxsfSx0fSgpO2UuVmlld0xpc3Q9aX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyNik7ZS5JSnVweXRlcldpZGdldFJlZ2lzdHJ5PW5ldyBpLlRva2VuKCJqdXB5dGVyLmV4dGVuc2lvbnMuanVweXRlcldpZGdldFJlZ2lzdHJ5Iil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIG4gaW4gdCllLmhhc093blByb3BlcnR5KG4pfHwoZVtuXT10W25dKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksaShuKDE2KSksaShuKDU3KSksaShuKDMzOSkpLGkobigzNDApKSxpKG4oMzQxKSksaShuKDEzNikpLGkobigzNDIpKSxpKG4oMzQzKSksaShuKDM0NCkpLGkobigzNDUpKSxpKG4oMzQ2KSksaShuKDEzNykpLGkobigzNTEpKSxpKG4oMzUyKSksaShuKDM1MykpLGkobigzNTQpKSxpKG4oMzU4KSksaShuKDIzKSksZS52ZXJzaW9uPW4oMzU5KS52ZXJzaW9ufSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7dGFyZ2V0OnZvaWQgMCxzb3VyY2U6dm9pZCAwLF9tb2RlbF9uYW1lOiJEaXJlY3Rpb25hbExpbmtNb2RlbCJ9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlIix0aGlzLnVwZGF0ZUJpbmRpbmdzLHRoaXMpLHRoaXMudXBkYXRlQmluZGluZ3MoKX0sZS5wcm90b3R5cGUudXBkYXRlVmFsdWU9ZnVuY3Rpb24odCxlLG4saSl7aWYoIXRoaXMuX3VwZGF0aW5nKXt0aGlzLl91cGRhdGluZz0hMDt0cnl7biYmKG4uc2V0KGksdC5nZXQoZSkpLG4uc2F2ZV9jaGFuZ2VzKCkpfWZpbmFsbHl7dGhpcy5fdXBkYXRpbmc9ITF9fX0sZS5wcm90b3R5cGUudXBkYXRlQmluZGluZ3M9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpczt0aGlzLmNsZWFudXAoKSx0PXRoaXMuZ2V0KCJzb3VyY2UiKXx8W251bGwsbnVsbF0sdGhpcy5zb3VyY2VNb2RlbD10WzBdLHRoaXMuc291cmNlQXR0cj10WzFdLGU9dGhpcy5nZXQoInRhcmdldCIpfHxbbnVsbCxudWxsXSx0aGlzLnRhcmdldE1vZGVsPWVbMF0sdGhpcy50YXJnZXRBdHRyPWVbMV0sdGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMubGlzdGVuVG8odGhpcy5zb3VyY2VNb2RlbCwiY2hhbmdlOiIrdGhpcy5zb3VyY2VBdHRyLGZ1bmN0aW9uKCl7bi51cGRhdGVWYWx1ZShuLnNvdXJjZU1vZGVsLG4uc291cmNlQXR0cixuLnRhcmdldE1vZGVsLG4udGFyZ2V0QXR0cil9KSx0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuc291cmNlTW9kZWwsdGhpcy5zb3VyY2VBdHRyLHRoaXMudGFyZ2V0TW9kZWwsdGhpcy50YXJnZXRBdHRyKSx0aGlzLmxpc3RlblRvT25jZSh0aGlzLnNvdXJjZU1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvT25jZSh0aGlzLnRhcmdldE1vZGVsLCJkZXN0cm95Iix0aGlzLmNsZWFudXApfSxlLnByb3RvdHlwZS5jbGVhbnVwPWZ1bmN0aW9uKCl7dGhpcy5zb3VyY2VNb2RlbCYmKHRoaXMuc3RvcExpc3RlbmluZyh0aGlzLnNvdXJjZU1vZGVsLCJjaGFuZ2U6Iit0aGlzLnNvdXJjZUF0dHIsbnVsbCksdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMuc291cmNlTW9kZWwsImRlc3Ryb3kiLG51bGwpKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy50YXJnZXRNb2RlbCwiZGVzdHJveSIsbnVsbCl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVXaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dGFyZ2V0OntkZXNlcmlhbGl6ZTpzLnVucGFja19tb2RlbHN9LHNvdXJjZTp7ZGVzZXJpYWxpemU6cy51bnBhY2tfbW9kZWxzfX0pLGV9KGEuQ29yZVdpZGdldE1vZGVsKTtlLkRpcmVjdGlvbmFsTGlua01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiTGlua01vZGVsIn0pfSxlLnByb3RvdHlwZS51cGRhdGVCaW5kaW5ncz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5wcm90b3R5cGUudXBkYXRlQmluZGluZ3MuY2FsbCh0aGlzKSx0aGlzLnRhcmdldE1vZGVsJiZ0aGlzLmxpc3RlblRvKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixmdW5jdGlvbigpe2UudXBkYXRlVmFsdWUoZS50YXJnZXRNb2RlbCxlLnRhcmdldEF0dHIsZS5zb3VyY2VNb2RlbCxlLnNvdXJjZUF0dHIpfSl9LGUucHJvdG90eXBlLmNsZWFudXA9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5jbGVhbnVwLmNhbGwodGhpcyksdGhpcy50YXJnZXRNb2RlbCYmdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMudGFyZ2V0TW9kZWwsImNoYW5nZToiK3RoaXMudGFyZ2V0QXR0cixudWxsKX0sZX0oYyk7ZS5MaW5rTW9kZWw9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89bigxMikscz1uKDIzKSxhPW4oOCksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTohMSxkaXNhYmxlZDohMSxfbW9kZWxfbmFtZToiQm9vbE1vZGVsIn0pfSxlfShvLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLkJvb2xNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7aW5kZW50OiEwLF92aWV3X25hbWU6IkNoZWNrYm94VmlldyIsX21vZGVsX25hbWU6IkNoZWNrYm94TW9kZWwifSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuQ2hlY2tib3hNb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWNoZWNrYm94IiksdGhpcy5sYWJlbC5pbm5lckhUTUw9IiYjODIwMzsiLHRoaXMuY2hlY2tib3hMYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpLHRoaXMuY2hlY2tib3hMYWJlbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwtYmFzaWMiKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMuY2hlY2tib3hMYWJlbCksdGhpcy5jaGVja2JveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuY2hlY2tib3guc2V0QXR0cmlidXRlKCJ0eXBlIiwiY2hlY2tib3giKSx0aGlzLmNoZWNrYm94TGFiZWwuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveCksdGhpcy5kZXNjcmlwdGlvblNwYW49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuY2hlY2tib3hMYWJlbC5hcHBlbmRDaGlsZCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6aW5kZW50Iix0aGlzLnVwZGF0ZUluZGVudCksdGhpcy51cGRhdGUoKSx0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCksdGhpcy51cGRhdGVJbmRlbnQoKX0sZS5wcm90b3R5cGUudXBkYXRlRGVzY3JpcHRpb249ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLmNoZWNrYm94TGFiZWwpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpO3RoaXMuZGVzY3JpcHRpb25TcGFuLmlubmVySFRNTD10LHRoaXMudHlwZXNldCh0aGlzLmRlc2NyaXB0aW9uU3BhbiksdGhpcy5kZXNjcmlwdGlvblNwYW4udGl0bGU9dCx0aGlzLmNoZWNrYm94LnRpdGxlPXR9fSxlLnByb3RvdHlwZS51cGRhdGVJbmRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZW50Iik7dGhpcy5sYWJlbC5zdHlsZS5kaXNwbGF5PXQ/IiI6Im5vbmUifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9ImNoZWNrYm94Il0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgidmFsdWUiKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLCF0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNoZWNrYm94LmNoZWNrZWQ9dGhpcy5tb2RlbC5nZXQoInZhbHVlIiksdm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PXRoaXN8fCh0aGlzLmNoZWNrYm94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuQ2hlY2tib3hWaWV3PWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUb2dnbGVCdXR0b25WaWV3IixfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uTW9kZWwiLHRvb2x0aXA6IiIsaWNvbjoiIixidXR0b25fc3R5bGU6IiJ9KX0sZX0oYyk7ZS5Ub2dnbGVCdXR0b25Nb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiIpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmJ1dHRvbl9zdHlsZSIsdGhpcy51cGRhdGVfYnV0dG9uX3N0eWxlKSx0aGlzLnNldF9idXR0b25fc3R5bGUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGVfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS5zZXRfYnV0dG9uX3N0eWxlPWZ1bmN0aW9uKCl7dGhpcy5zZXRfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc19tYXAsImJ1dHRvbl9zdHlsZSIpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5tb2RlbC5nZXQoInZhbHVlIik/dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtYWN0aXZlIik6dGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtYWN0aXZlIiksdm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPT10aGlzKXt0aGlzLmVsLmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLHRoaXMuZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdGhpcy5tb2RlbC5nZXQoInRvb2x0aXAiKSk7dmFyIG49dGhpcy5tb2RlbC5nZXQoImRlc2NyaXB0aW9uIiksaT10aGlzLm1vZGVsLmdldCgiaWNvbiIpO2lmKDA9PT1uLnRyaW0oKS5sZW5ndGgmJjA9PT1pLnRyaW0oKS5sZW5ndGgpdGhpcy5lbC5pbm5lckhUTUw9IiZuYnNwOyI7ZWxzZXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLGkudHJpbSgpLmxlbmd0aCl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3RoaXMuZWwuYXBwZW5kQ2hpbGQociksci5jbGFzc0xpc3QuYWRkKCJmYSIpLHIuY2xhc3NMaXN0LmFkZCgiZmEtIitpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57Y2xpY2s6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5tb2RlbC5zZXQoInZhbHVlIiwhZSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJidXR0b24ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUuY2xhc3NfbWFwPXtwcmltYXJ5OlsibW9kLXByaW1hcnkiXSxzdWNjZXNzOlsibW9kLXN1Y2Nlc3MiXSxpbmZvOlsibW9kLWluZm8iXSx3YXJuaW5nOlsibW9kLXdhcm5pbmciXSxkYW5nZXI6WyJtb2QtZGFuZ2VyIl19LGV9KGEuRE9NV2lkZ2V0Vmlldyk7ZS5Ub2dnbGVCdXR0b25WaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtyZWFkb3V0OiJJbnZhbGlkIixfdmlld19uYW1lOiJWYWxpZFZpZXciLF9tb2RlbF9uYW1lOiJWYWxpZE1vZGVsIn0pfSxlfShjKTtlLlZhbGlkTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtdmFsaWQiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTt0aGlzLmVsLmFwcGVuZENoaWxkKGUpLHRoaXMucmVhZG91dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC12YWxpZC1yZWFkb3V0IiksdGhpcy5yZWFkb3V0LmNsYXNzTGlzdC5hZGQoIndpZGdldC1yZWFkb3V0IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgibW9kLXZhbGlkIiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJtb2QtaW52YWxpZCIpLHRoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgicmVhZG91dCIpLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpP3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgibW9kLXZhbGlkIik6dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJtb2QtaW52YWxpZCIpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5WYWxpZFZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big4KSxzPW4oMTIpLGE9big1NyksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQnV0dG9uU3R5bGVNb2RlbCIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsX21vZGVsX21vZHVsZV92ZXJzaW9uOmEuSlVQWVRFUl9DT05UUk9MU19WRVJTSU9OfSl9LGUuc3R5bGVQcm9wZXJ0aWVzPXtidXR0b25fY29sb3I6e3NlbGVjdG9yOiIiLGF0dHJpYnV0ZToiYmFja2dyb3VuZC1jb2xvciIsZGVmYXVsdDpudWxsfSxmb250X3dlaWdodDp7c2VsZWN0b3I6IiIsYXR0cmlidXRlOiJmb250LXdlaWdodCIsZGVmYXVsdDoiIn19LGV9KG8uU3R5bGVNb2RlbCk7ZS5CdXR0b25TdHlsZU1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtkZXNjcmlwdGlvbjoiIix0b29sdGlwOiIiLGRpc2FibGVkOiExLGljb246IiIsYnV0dG9uX3N0eWxlOiIiLF92aWV3X25hbWU6IkJ1dHRvblZpZXciLF9tb2RlbF9uYW1lOiJCdXR0b25Nb2RlbCIsc3R5bGU6bnVsbH0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5CdXR0b25Nb2RlbD1oO3ZhciBsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItYnV0dG9uIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtYnV0dG9uIiksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9uX3N0eWxlIix0aGlzLnVwZGF0ZV9idXR0b25fc3R5bGUpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuZWwuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIiksdGhpcy5lbC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLm1vZGVsLmdldCgidG9vbHRpcCIpKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSxuPXRoaXMubW9kZWwuZ2V0KCJpY29uIik7aWYoZS5sZW5ndGh8fG4ubGVuZ3RoKXtpZih0aGlzLmVsLnRleHRDb250ZW50PSIiLG4ubGVuZ3RoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aS5jbGFzc0xpc3QuYWRkKCJmYSIpLGkuY2xhc3NMaXN0LmFkZCgiZmEtIituKSwwPT09ZS5sZW5ndGgmJmkuY2xhc3NMaXN0LmFkZCgiY2VudGVyIiksdGhpcy5lbC5hcHBlbmRDaGlsZChpKX10aGlzLmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZV9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLnNldF9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzX21hcCwiYnV0dG9uX3N0eWxlIil9LGUucHJvdG90eXBlLmV2ZW50cz1mdW5jdGlvbigpe3JldHVybntjbGljazoiX2hhbmRsZV9jbGljayJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NsaWNrPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmQoe2V2ZW50OiJjbGljayJ9KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJ1dHRvbiJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5jbGFzc19tYXA9e3ByaW1hcnk6WyJtb2QtcHJpbWFyeSJdLHN1Y2Nlc3M6WyJtb2Qtc3VjY2VzcyJdLGluZm86WyJtb2QtaW5mbyJdLHdhcm5pbmc6WyJtb2Qtd2FybmluZyJdLGRhbmdlcjpbIm1vZC1kYW5nZXIiXX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLkJ1dHRvblZpZXc9bH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJJbWFnZU1vZGVsIixfdmlld19uYW1lOiJJbWFnZVZpZXciLGZvcm1hdDoicG5nIix3aWR0aDoiIixoZWlnaHQ6IiIsdmFsdWU6bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigwKSl9KX0sZS5zZXJpYWxpemVycz1vKHt9LGEuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHt2YWx1ZTp7c2VyaWFsaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEYXRhVmlldyh0LmJ1ZmZlci5zbGljZSgwKSl9fX0pLGV9KGEuQ29yZURPTVdpZGdldE1vZGVsKTtlLkltYWdlTW9kZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMucFdpZGdldC5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksdGhpcy5wV2lkZ2V0LmFkZENsYXNzKCJ3aWRnZXQtaW1hZ2UiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKSxpPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO2lmKCJ1cmwiIT09bil7dmFyIHI9bmV3IEJsb2IoW2ldLHt0eXBlOiJpbWFnZS8iK3RoaXMubW9kZWwuZ2V0KCJmb3JtYXQiKX0pO2U9VVJMLmNyZWF0ZU9iamVjdFVSTChyKX1lbHNlIGU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShpLmJ1ZmZlcik7dmFyIG89dGhpcy5lbC5zcmM7dGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyk7dmFyIHM9dGhpcy5tb2RlbC5nZXQoIndpZHRoIik7dm9pZCAwIT09cyYmcy5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgid2lkdGgiLHMpOnRoaXMuZWwucmVtb3ZlQXR0cmlidXRlKCJ3aWR0aCIpO3ZhciBhPXRoaXMubW9kZWwuZ2V0KCJoZWlnaHQiKTtyZXR1cm4gdm9pZCAwIT09YSYmYS5sZW5ndGg+MD90aGlzLmVsLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixhKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgiaGVpZ2h0IiksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyl9LGUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuZWwuc3JjJiZVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMuZWwuc3JjKSx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWdOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImltZyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkltYWdlVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9big4KSxhPW4oMTIpLHU9big2KSxjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlZpZGVvTW9kZWwiLF92aWV3X25hbWU6IlZpZGVvVmlldyIsZm9ybWF0OiJtcDQiLHdpZHRoOiIiLGhlaWdodDoiIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5WaWRlb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMucFdpZGdldC5hZGRDbGFzcygid2lkZ2V0LWltYWdlIiksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIGUsbj10aGlzLm1vZGVsLmdldCgiZm9ybWF0IiksaT10aGlzLm1vZGVsLmdldCgidmFsdWUiKTtpZigidXJsIiE9PW4pe3ZhciByPW5ldyBCbG9iKFtpXSx7dHlwZToidmlkZW8vIit0aGlzLm1vZGVsLmdldCgiZm9ybWF0Iil9KTtlPVVSTC5jcmVhdGVPYmplY3RVUkwocil9ZWxzZSBlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKS5kZWNvZGUoaS5idWZmZXIpO3ZhciBvPXRoaXMuZWwuc3JjO3RoaXMuZWwuc3JjPWUsbyYmInN0cmluZyIhPXR5cGVvZiBvJiZVUkwucmV2b2tlT2JqZWN0VVJMKG8pO3ZhciBzPXRoaXMubW9kZWwuZ2V0KCJ3aWR0aCIpO3ZvaWQgMCE9PXMmJnMubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoIndpZHRoIixzKTp0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgid2lkdGgiKTt2YXIgYT10aGlzLm1vZGVsLmdldCgiaGVpZ2h0Iik7cmV0dXJuIHZvaWQgMCE9PWEmJmEubGVuZ3RoPjA/dGhpcy5lbC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYSk6dGhpcy5lbC5yZW1vdmVBdHRyaWJ1dGUoImhlaWdodCIpLHRoaXMuZWwubG9vcD10aGlzLm1vZGVsLmdldCgibG9vcCIpLHRoaXMuZWwuYXV0b3BsYXk9dGhpcy5tb2RlbC5nZXQoImF1dG9wbGF5IiksdGhpcy5lbC5jb250cm9scz10aGlzLm1vZGVsLmdldCgiY29udHJvbHMiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5lbC5zcmMmJlVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5lbC5zcmMpLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInRhZ05hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4idmlkZW8ifSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGV9KHMuRE9NV2lkZ2V0Vmlldyk7ZS5WaWRlb1ZpZXc9aH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oOCksYT1uKDEyKSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJBdWRpb01vZGVsIixfdmlld19uYW1lOiJBdWRpb1ZpZXciLGZvcm1hdDoibXAzIixhdXRvcGxheTohMCxsb29wOiEwLGNvbnRyb2xzOiEwLHZhbHVlOm5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpfSl9LGUuc2VyaWFsaXplcnM9byh7fSxhLkNvcmVET01XaWRnZXRNb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgRGF0YVZpZXcodC5idWZmZXIuc2xpY2UoMCkpfX19KSxlfShhLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5BdWRpb01vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLnBXaWRnZXQuYWRkQ2xhc3MoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlLG49dGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpLGk9dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7aWYoInVybCIhPT1uKXt2YXIgcj1uZXcgQmxvYihbaV0se3R5cGU6ImF1ZGlvLyIrdGhpcy5tb2RlbC5nZXQoImZvcm1hdCIpfSk7ZT1VUkwuY3JlYXRlT2JqZWN0VVJMKHIpfWVsc2UgZT1uZXcgVGV4dERlY29kZXIoInV0Zi04IikuZGVjb2RlKGkuYnVmZmVyKTt2YXIgbz10aGlzLmVsLnNyYztyZXR1cm4gdGhpcy5lbC5zcmM9ZSxvJiYic3RyaW5nIiE9dHlwZW9mIG8mJlVSTC5yZXZva2VPYmplY3RVUkwobyksdGhpcy5lbC5sb29wPXRoaXMubW9kZWwuZ2V0KCJsb29wIiksdGhpcy5lbC5hdXRvcGxheT10aGlzLm1vZGVsLmdldCgiYXV0b3BsYXkiKSx0aGlzLmVsLmNvbnRyb2xzPXRoaXMubW9kZWwuZ2V0KCJjb250cm9scyIpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmVsLnNyYyYmVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmVsLnNyYyksdC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidGFnTmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiJhdWRpbyJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZX0ocy5ET01XaWRnZXRWaWV3KTtlLkF1ZGlvVmlldz1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oMjMpLGE9bigxNiksdT1uKDYpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZToiYmxhY2siLGNvbmNpc2U6ITEsX21vZGVsX25hbWU6IkNvbG9yUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkNvbG9yUGlja2VyVmlldyJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5Db2xvclBpY2tlck1vZGVsPWM7dmFyIGg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29sb3JwaWNrZXIiKSx0aGlzLl9jb2xvcl9jb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5fY29sb3JfY29udGFpbmVyLmNsYXNzTmFtZT0id2lkZ2V0LWlubGluZS1oYm94IHdpZGdldC1jb2xvcnBpY2tlci1pbnB1dCIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLl9jb2xvcl9jb250YWluZXIpLHRoaXMuX3RleHRib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLl90ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQiKSx0aGlzLl90ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLl9jb2xvcl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dGJveCksdGhpcy5fdGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLl9jb2xvcnBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2NvbG9ycGlja2VyLnNldEF0dHJpYnV0ZSgidHlwZSIsImNvbG9yIiksdGhpcy5fY29sb3JfY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbG9ycGlja2VyKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTp2YWx1ZSIsdGhpcy5fdXBkYXRlX3ZhbHVlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjb25jaXNlIix0aGlzLl91cGRhdGVfY29uY2lzZSksdGhpcy5fdXBkYXRlX2NvbmNpc2UoKSx0aGlzLl91cGRhdGVfdmFsdWUoKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZXx8ZS51cGRhdGVkX3ZpZXchPXRoaXMpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuX3RleHRib3guZGlzYWJsZWQ9bix0aGlzLl9jb2xvcnBpY2tlci5kaXNhYmxlZD1ufXJldHVybiB0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueydjaGFuZ2UgW3R5cGU9ImNvbG9yIl0nOiJfcGlja2VyX2NoYW5nZSIsJ2NoYW5nZSBbdHlwZT0idGV4dCJdJzoiX3RleHRfY2hhbmdlIn19LGUucHJvdG90eXBlLl91cGRhdGVfdmFsdWU9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcy5tb2RlbC5nZXQoInZhbHVlIik7dGhpcy5fY29sb3JwaWNrZXIudmFsdWU9bFsodD1uKS50b0xvd2VyQ2FzZSgpXXx8KDc9PT0oZT10KS5sZW5ndGg/ZToiIyIrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMSkrZS5jaGFyQXQoMikrZS5jaGFyQXQoMikrZS5jaGFyQXQoMykrZS5jaGFyQXQoMykpLHRoaXMuX3RleHRib3gudmFsdWU9bn0sZS5wcm90b3R5cGUuX3VwZGF0ZV9jb25jaXNlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5nZXQoImNvbmNpc2UiKT8odGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJjb25jaXNlIiksdGhpcy5fdGV4dGJveC5zdHlsZS5kaXNwbGF5PSJub25lIik6KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgiY29uY2lzZSIpLHRoaXMuX3RleHRib3guc3R5bGUuZGlzcGxheT0iIil9LGUucHJvdG90eXBlLl9waWNrZXJfY2hhbmdlPWZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9jb2xvcnBpY2tlci52YWx1ZSksdGhpcy50b3VjaCgpfSxlLnByb3RvdHlwZS5fdGV4dF9jaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl92YWxpZGF0ZV9jb2xvcih0aGlzLl90ZXh0Ym94LnZhbHVlLHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKTt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQpLHRoaXMudG91Y2goKX0sZS5wcm90b3R5cGUuX3ZhbGlkYXRlX2NvbG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWF0Y2goLyNbYS1mQS1GMC05XXszfSg/OlthLWZBLUYwLTldezN9KT8kLyl8fGxbdC50b0xvd2VyQ2FzZSgpXT90OmV9LGV9KHMuRGVzY3JpcHRpb25WaWV3KTtlLkNvbG9yUGlja2VyVmlldz1oO3ZhciBsPXthbGljZWJsdWU6IiNmMGY4ZmYiLGFudGlxdWV3aGl0ZToiI2ZhZWJkNyIsYXF1YToiIzAwZmZmZiIsYXF1YW1hcmluZToiIzdmZmZkNCIsYXp1cmU6IiNmMGZmZmYiLGJlaWdlOiIjZjVmNWRjIixiaXNxdWU6IiNmZmU0YzQiLGJsYWNrOiIjMDAwMDAwIixibGFuY2hlZGFsbW9uZDoiI2ZmZWJjZCIsYmx1ZToiIzAwMDBmZiIsYmx1ZXZpb2xldDoiIzhhMmJlMiIsYnJvd246IiNhNTJhMmEiLGJ1cmx5d29vZDoiI2RlYjg4NyIsY2FkZXRibHVlOiIjNWY5ZWEwIixjaGFydHJldXNlOiIjN2ZmZjAwIixjaG9jb2xhdGU6IiNkMjY5MWUiLGNvcmFsOiIjZmY3ZjUwIixjb3JuZmxvd2VyYmx1ZToiIzY0OTVlZCIsY29ybnNpbGs6IiNmZmY4ZGMiLGNyaW1zb246IiNkYzE0M2MiLGN5YW46IiMwMGZmZmYiLGRhcmtibHVlOiIjMDAwMDhiIixkYXJrY3lhbjoiIzAwOGI4YiIsZGFya2dvbGRlbnJvZDoiI2I4ODYwYiIsZGFya2dyYXk6IiNhOWE5YTkiLGRhcmtncmV5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLGRhcmtraGFraToiI2JkYjc2YiIsZGFya21hZ2VudGE6IiM4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiIjNTU2YjJmIixkYXJrb3JhbmdlOiIjZmY4YzAwIixkYXJrb3JjaGlkOiIjOTkzMmNjIixkYXJrcmVkOiIjOGIwMDAwIixkYXJrc2FsbW9uOiIjZTk5NjdhIixkYXJrc2VhZ3JlZW46IiM4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IiM0ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IiMyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IiMyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IiMwMGNlZDEiLGRhcmt2aW9sZXQ6IiM5NDAwZDMiLGRlZXBwaW5rOiIjZmYxNDkzIixkZWVwc2t5Ymx1ZToiIzAwYmZmZiIsZGltZ3JheToiIzY5Njk2OSIsZGltZ3JleToiIzY5Njk2OSIsZG9kZ2VyYmx1ZToiIzFlOTBmZiIsZmlyZWJyaWNrOiIjYjIyMjIyIixmbG9yYWx3aGl0ZToiI2ZmZmFmMCIsZm9yZXN0Z3JlZW46IiMyMjhiMjIiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdhaW5zYm9ybzoiI2RjZGNkYyIsZ2hvc3R3aGl0ZToiI2Y4ZjhmZiIsZ29sZDoiI2ZmZDcwMCIsZ29sZGVucm9kOiIjZGFhNTIwIixncmF5OiIjODA4MDgwIixncmV5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsZ3JlZW55ZWxsb3c6IiNhZGZmMmYiLGhvbmV5ZGV3OiIjZjBmZmYwIixob3RwaW5rOiIjZmY2OWI0IixpbmRpYW5yZWQ6IiNjZDVjNWMiLGluZGlnbzoiIzRiMDA4MiIsaXZvcnk6IiNmZmZmZjAiLGtoYWtpOiIjZjBlNjhjIixsYXZlbmRlcjoiI2U2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiI2ZmZjBmNSIsbGF3bmdyZWVuOiIjN2NmYzAwIixsZW1vbmNoaWZmb246IiNmZmZhY2QiLGxpZ2h0Ymx1ZToiI2FkZDhlNiIsbGlnaHRjb3JhbDoiI2YwODA4MCIsbGlnaHRjeWFuOiIjZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI2ZhZmFkMiIsbGlnaHRncmVlbjoiIzkwZWU5MCIsbGlnaHRncmF5OiIjZDNkM2QzIixsaWdodGdyZXk6IiNkM2QzZDMiLGxpZ2h0cGluazoiI2ZmYjZjMSIsbGlnaHRzYWxtb246IiNmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IiMyMGIyYWEiLGxpZ2h0c2t5Ymx1ZToiIzg3Y2VmYSIsbGlnaHRzbGF0ZWdyYXk6IiM3Nzg4OTkiLGxpZ2h0c2xhdGVncmV5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI2IwYzRkZSIsbGlnaHR5ZWxsb3c6IiNmZmZmZTAiLGxpbWU6IiMwMGZmMDAiLGxpbWVncmVlbjoiIzMyY2QzMiIsbGluZW46IiNmYWYwZTYiLG1hZ2VudGE6IiNmZjAwZmYiLG1hcm9vbjoiIzgwMDAwMCIsbWVkaXVtYXF1YW1hcmluZToiIzY2Y2RhYSIsbWVkaXVtYmx1ZToiIzAwMDBjZCIsbWVkaXVtb3JjaGlkOiIjYmE1NWQzIixtZWRpdW1wdXJwbGU6IiM5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIjM2NiMzcxIixtZWRpdW1zbGF0ZWJsdWU6IiM3YjY4ZWUiLG1lZGl1bXNwcmluZ2dyZWVuOiIjMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IiM0OGQxY2MiLG1lZGl1bXZpb2xldHJlZDoiI2M3MTU4NSIsbWlkbmlnaHRibHVlOiIjMTkxOTcwIixtaW50Y3JlYW06IiNmNWZmZmEiLG1pc3R5cm9zZToiI2ZmZTRlMSIsbW9jY2FzaW46IiNmZmU0YjUiLG5hdmFqb3doaXRlOiIjZmZkZWFkIixuYXZ5OiIjMDAwMDgwIixvbGRsYWNlOiIjZmRmNWU2IixvbGl2ZToiIzgwODAwMCIsb2xpdmVkcmFiOiIjNmI4ZTIzIixvcmFuZ2U6IiNmZmE1MDAiLG9yYW5nZXJlZDoiI2ZmNDUwMCIsb3JjaGlkOiIjZGE3MGQ2IixwYWxlZ29sZGVucm9kOiIjZWVlOGFhIixwYWxlZ3JlZW46IiM5OGZiOTgiLHBhbGV0dXJxdW9pc2U6IiNhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6IiNkYjcwOTMiLHBhcGF5YXdoaXA6IiNmZmVmZDUiLHBlYWNocHVmZjoiI2ZmZGFiOSIscGVydToiI2NkODUzZiIscGluazoiI2ZmYzBjYiIscGx1bToiI2RkYTBkZCIscG93ZGVyYmx1ZToiI2IwZTBlNiIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHJvc3licm93bjoiI2JjOGY4ZiIscm95YWxibHVlOiIjNDE2OWUxIixzYWRkbGVicm93bjoiIzhiNDUxMyIsc2FsbW9uOiIjZmE4MDcyIixzYW5keWJyb3duOiIjZjRhNDYwIixzZWFncmVlbjoiIzJlOGI1NyIsc2Vhc2hlbGw6IiNmZmY1ZWUiLHNpZW5uYToiI2EwNTIyZCIsc2lsdmVyOiIjYzBjMGMwIixza3libHVlOiIjODdjZWViIixzbGF0ZWJsdWU6IiM2YTVhY2QiLHNsYXRlZ3JheToiIzcwODA5MCIsc2xhdGVncmV5OiIjNzA4MDkwIixzbm93OiIjZmZmYWZhIixzcHJpbmdncmVlbjoiIzAwZmY3ZiIsc3RlZWxibHVlOiIjNDY4MmI0Iix0YW46IiNkMmI0OGMiLHRlYWw6IiMwMDgwODAiLHRoaXN0bGU6IiNkOGJmZDgiLHRvbWF0bzoiI2ZmNjM0NyIsdHVycXVvaXNlOiIjNDBlMGQwIix2aW9sZXQ6IiNlZTgyZWUiLHdoZWF0OiIjZjVkZWIzIix3aGl0ZToiI2ZmZmZmZiIsd2hpdGVzbW9rZToiI2Y1ZjVmNSIseWVsbG93OiIjZmZmZjAwIix5ZWxsb3dncmVlbjoiIzlhY2QzMiJ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pLG89dGhpcyYmdGhpcy5fX2Fzc2lnbnx8T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxpPWFyZ3VtZW50cy5sZW5ndGg7bjxpO24rKylmb3IodmFyIHIgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiB0fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9bigyMyksYT1uKDEyKSx1PW4oMTYpLGM9big2KTtmdW5jdGlvbiBoKHQpe3JldHVybiBudWxsPT09dD9udWxsOnt5ZWFyOnQuZ2V0VVRDRnVsbFllYXIoKSxtb250aDp0LmdldFVUQ01vbnRoKCksZGF0ZTp0LmdldFVUQ0RhdGUoKX19ZnVuY3Rpb24gbCh0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgRGF0ZTtyZXR1cm4gZS5zZXRVVENGdWxsWWVhcih0LnllYXIsdC5tb250aCx0LmRhdGUpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCksZX1lLnNlcmlhbGl6ZV9kYXRlPWgsZS5kZXNlcmlhbGl6ZV9kYXRlPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHt2YWx1ZTpudWxsLF9tb2RlbF9uYW1lOiJEYXRlUGlja2VyTW9kZWwiLF92aWV3X25hbWU6IkRhdGVQaWNrZXJWaWV3In0pfSxlLnNlcmlhbGl6ZXJzPW8oe30sYS5Db3JlRGVzY3JpcHRpb25Nb2RlbC5zZXJpYWxpemVycyx7dmFsdWU6e3NlcmlhbGl6ZTpoLGRlc2VyaWFsaXplOmx9fSksZX0oYS5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5EYXRlUGlja2VyTW9kZWw9ZDt2YXIgZj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1kYXRlcGlja2VyIiksdGhpcy5fZGF0ZXBpY2tlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuX2RhdGVwaWNrZXIuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZGF0ZSIpLHRoaXMuX2RhdGVwaWNrZXIuaWQ9dGhpcy5sYWJlbC5odG1sRm9yPXUudXVpZCgpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5fZGF0ZXBpY2tlciksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6dmFsdWUiLHRoaXMuX3VwZGF0ZV92YWx1ZSksdGhpcy5fdXBkYXRlX3ZhbHVlKCksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lJiZlLnVwZGF0ZWRfdmlldz09dGhpc3x8KHRoaXMuX2RhdGVwaWNrZXIuZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NoYW5nZSBbdHlwZT0iZGF0ZSJdJzoiX3BpY2tlcl9jaGFuZ2UifX0sZS5wcm90b3R5cGUuX3VwZGF0ZV92YWx1ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3RoaXMuX2RhdGVwaWNrZXIudmFsdWVBc0RhdGU9dH0sZS5wcm90b3R5cGUuX3BpY2tlcl9jaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLl9kYXRlcGlja2VyLnZhbGlkaXR5LmJhZElucHV0fHwodGhpcy5tb2RlbC5zZXQoInZhbHVlIix0aGlzLl9kYXRlcGlja2VyLnZhbHVlQXNEYXRlKSx0aGlzLnRvdWNoKCkpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5EYXRlUGlja2VyVmlldz1mfSxmdW5jdGlvbih0LGUsbil7dmFyIGkscixvOwovKiEKICogalF1ZXJ5IFVJIFNsaWRlciAxLjEyLjEKICogaHR0cDovL2pxdWVyeXVpLmNvbQogKgogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UKICovcj1bbigxNSksbigzNDgpLG4oMzUwKSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3JldHVybiB0LndpZGdldCgidWkuc2xpZGVyIix0LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEyLjEiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsbixpPXRoaXMub3B0aW9ucyxyPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLG89W107Zm9yKG49aS52YWx1ZXMmJmkudmFsdWVzLmxlbmd0aHx8MSxyLmxlbmd0aD5uJiYoci5zbGljZShuKS5yZW1vdmUoKSxyPXIuc2xpY2UoMCxuKSksZT1yLmxlbmd0aDtlPG47ZSsrKW8ucHVzaCgiPHNwYW4gdGFiaW5kZXg9JzAnPjwvc3Bhbj4iKTt0aGlzLmhhbmRsZXM9ci5hZGQodChvLmpvaW4oIiIpKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZXMsInVpLXNsaWRlci1oYW5kbGUiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3QodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsZSkuYXR0cigidGFiSW5kZXgiLDApfSl9LF9jcmVhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztlLnJhbmdlPyghMD09PWUucmFuZ2UmJihlLnZhbHVlcz9lLnZhbHVlcy5sZW5ndGgmJjIhPT1lLnZhbHVlcy5sZW5ndGg/ZS52YWx1ZXM9W2UudmFsdWVzWzBdLGUudmFsdWVzWzBdXTp0LmlzQXJyYXkoZS52YWx1ZXMpJiYoZS52YWx1ZXM9ZS52YWx1ZXMuc2xpY2UoMCkpOmUudmFsdWVzPVt0aGlzLl92YWx1ZU1pbigpLHRoaXMuX3ZhbHVlTWluKCldKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLmxlbmd0aD8odGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiksdGhpcy5yYW5nZS5jc3Moe2xlZnQ6IiIsYm90dG9tOiIifSkpOih0aGlzLnJhbmdlPXQoIjxkaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UiKSksIm1pbiIhPT1lLnJhbmdlJiYibWF4IiE9PWUucmFuZ2V8fHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS0iK2UucmFuZ2UpKToodGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLnJhbmdlPW51bGwpfSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLl9vZmYodGhpcy5oYW5kbGVzKSx0aGlzLl9vbih0aGlzLmhhbmRsZXMsdGhpcy5faGFuZGxlRXZlbnRzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oYW5kbGVzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oYW5kbGVzKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZXMucmVtb3ZlKCksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5yZW1vdmUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbihlKXt2YXIgbixpLHIsbyxzLGEsdSxjPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxuPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShuKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPU1hdGguYWJzKGktYy52YWx1ZXMoZSkpOyhyPm58fHI9PT1uJiYoZT09PWMuX2xhc3RDaGFuZ2VkVmFsdWV8fGMudmFsdWVzKGUpPT09aC5taW4pKSYmKHI9bixvPXQodGhpcykscz1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxzKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1zLHRoaXMuX2FkZENsYXNzKG8sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksby50cmlnZ2VyKCJmb2N1cyIpLGE9by5vZmZzZXQoKSx1PSF0KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PXU/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC1hLmxlZnQtby53aWR0aCgpLzIsdG9wOmUucGFnZVktYS50b3Atby5oZWlnaHQoKS8yLShwYXJzZUludChvLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChvLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChvLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLHMsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCwhMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQpe3ZhciBlPXt4OnQucGFnZVgseTp0LnBhZ2VZfSxuPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShlKTtyZXR1cm4gdGhpcy5fc2xpZGUodCx0aGlzLl9oYW5kbGVJbmRleCxuKSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKHQsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZSh0LHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMSwhMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxyLG87cmV0dXJuImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8oZT10aGlzLmVsZW1lbnRTaXplLndpZHRoLG49dC54LXRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApKTooZT10aGlzLmVsZW1lbnRTaXplLmhlaWdodCxuPXQueS10aGlzLmVsZW1lbnRPZmZzZXQudG9wLSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC50b3A6MCkpLChpPW4vZSk+MSYmKGk9MSksaTwwJiYoaT0wKSwidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmKGk9MS1pKSxyPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSxvPXRoaXMuX3ZhbHVlTWluKCkraSpyLHRoaXMuX3RyaW1BbGlnblZhbHVlKG8pfSxfdWlIYXNoOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSxoYW5kbGVJbmRleDp0LHZhbHVlOnZvaWQgMCE9PWU/ZTp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYoaS52YWx1ZT12b2lkIDAhPT1lP2U6dGhpcy52YWx1ZXModCksaS52YWx1ZXM9bnx8dGhpcy52YWx1ZXMoKSksaX0sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX3NsaWRlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyPXRoaXMudmFsdWUoKSxvPXRoaXMudmFsdWVzKCk7dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKGk9dGhpcy52YWx1ZXMoZT8wOjEpLHI9dGhpcy52YWx1ZXMoZSksMj09PXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKG49MD09PWU/TWF0aC5taW4oaSxuKTpNYXRoLm1heChpLG4pKSxvW2VdPW4pLG4hPT1yJiYhMSE9PXRoaXMuX3RyaWdnZXIoInNsaWRlIix0LHRoaXMuX3VpSGFzaChlLG4sbykpJiYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhlLG4pOnRoaXMudmFsdWUobikpfSxfc3RvcDpmdW5jdGlvbih0LGUpe3RoaXMuX3RyaWdnZXIoInN0b3AiLHQsdGhpcy5fdWlIYXNoKGUpKX0sX2NoYW5nZTpmdW5jdGlvbih0LGUpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9ZSx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQsdGhpcy5fdWlIYXNoKGUpKSl9LHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCwwKSk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKGUsbil7dmFyIGkscixvO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1tlXT10aGlzLl90cmltQWxpZ25WYWx1ZShuKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLGUpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl92YWx1ZXMoKTtpZighdC5pc0FycmF5KGFyZ3VtZW50c1swXSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHI9YXJndW1lbnRzWzBdLG89MDtvPGkubGVuZ3RoO28rPTEpaVtvXT10aGlzLl90cmltQWxpZ25WYWx1ZShyW29dKSx0aGlzLl9jaGFuZ2UobnVsbCxvKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLG4pe3ZhciBpLHI9MDtzd2l0Y2goInJhbmdlIj09PWUmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoIm1pbiI9PT1uPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1uJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSx0LmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihyPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSx0aGlzLl9zdXBlcihlLG4pLGUpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5fcmVtb3ZlQ2xhc3MoInVpLXNsaWRlci1ob3Jpem9udGFsIHVpLXNsaWRlci12ZXJ0aWNhbCIpLl9hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5vcHRpb25zLnJhbmdlJiZ0aGlzLl9yZWZyZXNoUmFuZ2UobiksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1uPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxpPXItMTtpPj0wO2ktLSl0aGlzLl9jaGFuZ2UobnVsbCxpKTt0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2Uic3RlcCI6Y2FzZSJtaW4iOmNhc2UibWF4Ijp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJyYW5nZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoKCksdGhpcy5fYW5pbWF0ZU9mZj0hMX19LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbih0KXt0aGlzLl9zdXBlcih0KSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISF0KX0sX3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlO3JldHVybiB0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpfSxfdmFsdWVzOmZ1bmN0aW9uKHQpe3ZhciBlLG4saTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbdF0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3Iobj10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8bi5sZW5ndGg7aSs9MSluW2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKG5baV0pO3JldHVybiBufXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24odCl7aWYodDw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZih0Pj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciBlPXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxuPSh0LXRoaXMuX3ZhbHVlTWluKCkpJWUsaT10LW47cmV0dXJuIDIqTWF0aC5hYnMobik+PWUmJihpKz1uPjA/ZTotZSkscGFyc2VGbG9hdChpLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLm1heCxlPXRoaXMuX3ZhbHVlTWluKCksbj10aGlzLm9wdGlvbnMuc3RlcCxpPU1hdGgucm91bmQoKHQtZSkvbikqbjsodD1pK2UpPnRoaXMub3B0aW9ucy5tYXgmJih0LT1uKSx0aGlzLm1heD1wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpfSxfcHJlY2lzaW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLnN0ZXApO3JldHVybiBudWxsIT09dGhpcy5vcHRpb25zLm1pbiYmKHQ9TWF0aC5tYXgodCx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSkpLHR9LF9wcmVjaXNpb25PZjpmdW5jdGlvbih0KXt2YXIgZT10LnRvU3RyaW5nKCksbj1lLmluZGV4T2YoIi4iKTtyZXR1cm4tMT09PW4/MDplLmxlbmd0aC1uLTF9LF92YWx1ZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMubWlufSxfdmFsdWVNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXh9LF9yZWZyZXNoUmFuZ2U6ZnVuY3Rpb24odCl7InZlcnRpY2FsIj09PXQmJnRoaXMucmFuZ2UuY3NzKHt3aWR0aDoiIixsZWZ0OiIifSksImhvcml6b250YWwiPT09dCYmdGhpcy5yYW5nZS5jc3Moe2hlaWdodDoiIixib3R0b206IiJ9KX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciBlLG4saSxyLG8scz10aGlzLm9wdGlvbnMucmFuZ2UsYT10aGlzLm9wdGlvbnMsdT10aGlzLGM9IXRoaXMuX2FuaW1hdGVPZmYmJmEuYW5pbWF0ZSxoPXt9O3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oaSl7bj0odS52YWx1ZXMoaSktdS5fdmFsdWVNaW4oKSkvKHUuX3ZhbHVlTWF4KCktdS5fdmFsdWVNaW4oKSkqMTAwLGhbImhvcml6b250YWwiPT09dS5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPW4rIiUiLHQodGhpcykuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksITA9PT11Lm9wdGlvbnMucmFuZ2UmJigiaG9yaXpvbnRhbCI9PT11Lm9yaWVudGF0aW9uPygwPT09aSYmdS5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtsZWZ0Om4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6bi1lKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOmEuYW5pbWF0ZX0pKTooMD09PWkmJnUucmFuZ2Uuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXSh7Ym90dG9tOm4rIiUifSxhLmFuaW1hdGUpLDE9PT1pJiZ1LnJhbmdlW2M/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0Om4tZSsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjphLmFuaW1hdGV9KSkpLGU9bn0pOihpPXRoaXMudmFsdWUoKSxyPXRoaXMuX3ZhbHVlTWluKCksbz10aGlzLl92YWx1ZU1heCgpLG49byE9PXI/KGktcikvKG8tcikqMTAwOjAsaFsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09bisiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2M/ImFuaW1hdGUiOiJjc3MiXShoLGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtjPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOm4rIiUifSxhLmFuaW1hdGUpLCJtYXgiPT09cyYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDoxMDAtbisiJSJ9LGEuYW5pbWF0ZSksIm1pbiI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6bisiJSJ9LGEuYW5pbWF0ZSksIm1heCI9PT1zJiYidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbYz8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLW4rIiUifSxhLmFuaW1hdGUpKX0sX2hhbmRsZUV2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgbixpLHIsbz10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTpjYXNlIHQudWkua2V5Q29kZS5FTkQ6Y2FzZSB0LnVpLmtleUNvZGUuUEFHRV9VUDpjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046Y2FzZSB0LnVpLmtleUNvZGUuVVA6Y2FzZSB0LnVpLmtleUNvZGUuUklHSFQ6Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKGUucHJldmVudERlZmF1bHQoKSwhdGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITAsdGhpcy5fYWRkQ2xhc3ModChlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIiksITE9PT10aGlzLl9zdGFydChlLG8pKSlyZXR1cm59c3dpdGNoKHI9dGhpcy5vcHRpb25zLnN0ZXAsbj1pPXRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk/dGhpcy52YWx1ZXMobyk6dGhpcy52YWx1ZSgpLGUua2V5Q29kZSl7Y2FzZSB0LnVpLmtleUNvZGUuSE9NRTppPXRoaXMuX3ZhbHVlTWluKCk7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRU5EOmk9dGhpcy5fdmFsdWVNYXgoKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX1VQOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUobisodGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHQudWkua2V5Q29kZS5QQUdFX0RPV046aT10aGlzLl90cmltQWxpZ25WYWx1ZShuLSh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdC51aS5rZXlDb2RlLlVQOmNhc2UgdC51aS5rZXlDb2RlLlJJR0hUOmlmKG49PT10aGlzLl92YWx1ZU1heCgpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4rcik7YnJlYWs7Y2FzZSB0LnVpLmtleUNvZGUuRE9XTjpjYXNlIHQudWkua2V5Q29kZS5MRUZUOmlmKG49PT10aGlzLl92YWx1ZU1pbigpKXJldHVybjtpPXRoaXMuX3RyaW1BbGlnblZhbHVlKG4tcil9dGhpcy5fc2xpZGUoZSxvLGkpfSxrZXl1cDpmdW5jdGlvbihlKXt2YXIgbj10KGUudGFyZ2V0KS5kYXRhKCJ1aS1zbGlkZXItaGFuZGxlLWluZGV4Iik7dGhpcy5fa2V5U2xpZGluZyYmKHRoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fc3RvcChlLG4pLHRoaXMuX2NoYW5nZShlLG4pLHRoaXMuX3JlbW92ZUNsYXNzKHQoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpKX19fSl9KT9pLmFwcGx5KGUscik6aSl8fCh0LmV4cG9ydHM9byl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxyLG87Ci8qIQogKiBqUXVlcnkgVUkgTW91c2UgMS4xMi4xCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20KICoKICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMKICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqL3I9W24oMTUpLG4oMzQ5KSxuKDQyKSxuKDEzOCldLHZvaWQgMD09PShvPSJmdW5jdGlvbiI9PXR5cGVvZihpPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiB0KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXtlPSExfSksdC53aWRnZXQoInVpLm1vdXNlIix7dmVyc2lvbjoiMS4xMi4xIixvcHRpb25zOntjYW5jZWw6ImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmVsZW1lbnQub24oIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbih0KXtyZXR1cm4gZS5fbW91c2VEb3duKHQpfSkub24oImNsaWNrLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKG4pe2lmKCEwPT09dC5kYXRhKG4udGFyZ2V0LGUud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikpcmV0dXJuIHQucmVtb3ZlRGF0YShuLnRhcmdldCxlLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLG4uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksITF9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQub2ZmKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbihuKXtpZighZSl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAobiksdGhpcy5fbW91c2VEb3duRXZlbnQ9bjt2YXIgaT10aGlzLHI9MT09PW4ud2hpY2gsbz0hKCJzdHJpbmciIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IW4udGFyZ2V0Lm5vZGVOYW1lKSYmdChuLnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIShyJiYhbyYmdGhpcy5fbW91c2VDYXB0dXJlKG4pJiYodGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQobikmJnRoaXMuX21vdXNlRGVsYXlNZXQobikmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEhPT10aGlzLl9tb3VzZVN0YXJ0KG4pLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyhuLnByZXZlbnREZWZhdWx0KCksMCk6KCEwPT09dC5kYXRhKG4udGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnQucmVtb3ZlRGF0YShuLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBpLl9tb3VzZU1vdmUodCl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gaS5fbW91c2VVcCh0KX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLG4ucHJldmVudERlZmF1bHQoKSxlPSEwLDApKSl9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHQudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24obil7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLG4udGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ0LmRhdGEobi50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AobikpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGU9ITEsbi5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtdC5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktdC5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbztyPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkuaWU9ISEvbXNpZSBbXHcuXSsvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKX0pP2kuYXBwbHkoZSxyKTppKXx8KHQuZXhwb3J0cz1vKX0sZnVuY3Rpb24odCxlLG4pe3ZhciBpLHIsbzsKLyohCiAqIGpRdWVyeSBVSSBLZXljb2RlIDEuMTIuMQogKiBodHRwOi8vanF1ZXJ5dWkuY29tCiAqCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKi9yPVtuKDE1KSxuKDQyKV0sdm9pZCAwPT09KG89ImZ1bmN0aW9uIj09dHlwZW9mKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9fSk/aS5hcHBseShlLHIpOmkpfHwodC5leHBvcnRzPW8pfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDEyKSxzPW4oNiksYT1uKDEzNyksdT1uKDEzOSksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdE1vZGVsIix2YWx1ZTowfSl9LGV9KG8uQ29yZURlc2NyaXB0aW9uTW9kZWwpO2UuRmxvYXRNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkJvdW5kZWRGbG9hdE1vZGVsIixtYXg6MTAwLG1pbjowfSl9LGV9KGMpO2UuQm91bmRlZEZsb2F0TW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJGbG9hdFNsaWRlck1vZGVsIixfdmlld19uYW1lOiJGbG9hdFNsaWRlclZpZXciLHN0ZXA6MSxvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsX3JhbmdlOiExLHJlYWRvdXQ6ITAscmVhZG91dF9mb3JtYXQ6Ii4yZiIsc2xpZGVyX2NvbG9yOm51bGwsY29udGludW91c191cGRhdGU6ITAsZGlzYWJsZWQ6ITF9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdFNsaWRlck1vZGVsPWw7dmFyIGQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiRmxvYXRMb2dTbGlkZXJNb2RlbCIsX3ZpZXdfbmFtZToiRmxvYXRMb2dTbGlkZXJWaWV3IixzdGVwOi4xLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixfcmFuZ2U6ITEscmVhZG91dDohMCxyZWFkb3V0X2Zvcm1hdDoiLjNnIixzbGlkZXJfY29sb3I6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMCxkaXNhYmxlZDohMSxiYXNlOjEwLHZhbHVlOjEsbWluOjAsbWF4OjR9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLG4pe3QucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLGUsbiksdGhpcy5vbigiY2hhbmdlOnJlYWRvdXRfZm9ybWF0Iix0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCx0aGlzKSx0aGlzLnVwZGF0ZV9yZWFkb3V0X2Zvcm1hdCgpfSxlLnByb3RvdHlwZS51cGRhdGVfcmVhZG91dF9mb3JtYXQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWRvdXRfZm9ybWF0dGVyPXUuZm9ybWF0KHRoaXMuZ2V0KCJyZWFkb3V0X2Zvcm1hdCIpKX0sZX0oaCk7ZS5GbG9hdExvZ1NsaWRlck1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShsKTtlLkZsb2F0UmFuZ2VTbGlkZXJNb2RlbD1mO3ZhciBwPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5JbnRTbGlkZXJWaWV3KTtlLkZsb2F0U2xpZGVyVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT1udWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGUuX3BhcnNlX3ZhbHVlPXBhcnNlRmxvYXQsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxpPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxyPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpLG89dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxzPU1hdGgubG9nKHIpL01hdGgubG9nKG8pO3M+aT9zPWk6czxuJiYocz1uKSx0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIscyksdGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyhyKSx0aGlzLm1vZGVsLmdldCgidmFsdWUiKSE9PXImJih0aGlzLm1vZGVsLnNldCgidmFsdWUiLHIse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKX0sZS5wcm90b3R5cGUudmFsdWVUb1N0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4oMCx0aGlzLm1vZGVsLnJlYWRvdXRfZm9ybWF0dGVyKSh0KX0sZS5wcm90b3R5cGUuc3RyaW5nVG9WYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyc2VfdmFsdWUodCl9LGUucHJvdG90eXBlLmhhbmRsZVRleHRDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0cmluZ1RvVmFsdWUodGhpcy5yZWFkb3V0LnRleHRDb250ZW50KSxlPXRoaXMubW9kZWwuZ2V0KCJtaW4iKSxuPXRoaXMubW9kZWwuZ2V0KCJtYXgiKSxpPXRoaXMubW9kZWwuZ2V0KCJiYXNlIik7aXNOYU4odCk/dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0aGlzLm1vZGVsLmdldCgidmFsdWUiKSk6KHQ9TWF0aC5tYXgoTWF0aC5taW4odCxNYXRoLnBvdyhpLG4pKSxNYXRoLnBvdyhpLGUpKSkhPT10aGlzLm1vZGVsLmdldCgidmFsdWUiKT8odGhpcy5yZWFkb3V0LnRleHRDb250ZW50PXRoaXMudmFsdWVUb1N0cmluZyh0KSx0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpKTp0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9dGhpcy52YWx1ZVRvU3RyaW5nKHRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMucmVhZG91dC50ZXh0Q29udGVudD10aGlzLnZhbHVlVG9TdHJpbmcoaSksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoImJhc2UiKSxpPU1hdGgucG93KG4sdGhpcy5fdmFsaWRhdGVfc2xpZGVfdmFsdWUoZS52YWx1ZSkpO3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsaSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCl9LGUucHJvdG90eXBlLl92YWxpZGF0ZV9zbGlkZV92YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oYS5CYXNlSW50U2xpZGVyVmlldyk7ZS5GbG9hdExvZ1NsaWRlclZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLl9wYXJzZV92YWx1ZT1wYXJzZUZsb2F0LGUuX3JhbmdlX3JlZ2V4PS9eXHMqKFsrLV0/KD86XGQqXC4/XGQrfFxkK1wuKSg/OltlRV1bLTpdP1xkKyk/KVxzKlstOuKAk11ccyooWystXT8oPzpcZCpcLj9cZCt8XGQrXC4pKD86W2VFXVsrLV0/XGQrKT8pLyxlfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuX3ZhbGlkYXRlX3NsaWRlX3ZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlfShhLkludFJhbmdlU2xpZGVyVmlldyk7ZS5GbG9hdFJhbmdlU2xpZGVyVmlldz1nO3ZhciB2PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMX0pfSxlfShjKTtlLkZsb2F0VGV4dE1vZGVsPXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBzLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQm91bmRlZEZsb2F0VGV4dE1vZGVsIixfdmlld19uYW1lOiJGbG9hdFRleHRWaWV3IixkaXNhYmxlZDohMSxjb250aW51b3VzX3VwZGF0ZTohMSxzdGVwOi4xfSl9LGV9KGgpO2UuQm91bmRlZEZsb2F0VGV4dE1vZGVsPWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fcGFyc2VfdmFsdWU9cGFyc2VGbG9hdCxlLl9kZWZhdWx0X3N0ZXA9ImFueSIsZX1yZXR1cm4gcihlLHQpLGV9KGEuSW50VGV4dFZpZXcpO2UuRmxvYXRUZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gcy5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkZsb2F0UHJvZ3Jlc3NNb2RlbCIsX3ZpZXdfbmFtZToiUHJvZ3Jlc3NWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIsYmFyX3N0eWxlOiIiLHN0eWxlOm51bGx9KX0sZX0oaCk7ZS5GbG9hdFByb2dyZXNzTW9kZWw9X30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9big4KSx1PW4oNiksYz1uKDE2KSxoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IkNvbnRyb2xsZXJCdXR0b25Nb2RlbCIsX3ZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZhbHVlOjAscHJlc3NlZDohMX0pfSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyQnV0dG9uTW9kZWw9aDt2YXIgbD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtY29udHJvbGxlci1idXR0b24iKSx0aGlzLnN1cHBvcnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdXBwb3J0LnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsdGhpcy5zdXBwb3J0LnN0eWxlLm1hcmdpbj0iMXB4Iix0aGlzLnN1cHBvcnQuc3R5bGUud2lkdGg9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjE2cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnN1cHBvcnQpLHRoaXMuYmFyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYmFyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5iYXIuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuYmFyLnN0eWxlLmJvdHRvbT0iMHB4Iix0aGlzLmJhci5zdHlsZS5iYWNrZ3JvdW5kPSJncmF5Iix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5iYXIpLHRoaXMudXBkYXRlKCksdGhpcy5sYWJlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmxhYmVsLnRleHRDb250ZW50PXRoaXMubW9kZWwuZ2V0KCJkZXNjcmlwdGlvbiIpLHRoaXMubGFiZWwuc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5sYWJlbCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYmFyLnN0eWxlLmhlaWdodD0xMDAqdGhpcy5tb2RlbC5nZXQoInZhbHVlIikrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckJ1dHRvblZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyQXhpc1ZpZXciLHZhbHVlOjB9KX0sZX0ocy5Db3JlRE9NV2lkZ2V0TW9kZWwpO2UuQ29udHJvbGxlckF4aXNNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyLWF4aXMiKSx0aGlzLmVsLnN0eWxlLndpZHRoPSIxNnB4Iix0aGlzLmVsLnN0eWxlLnBhZGRpbmc9IjRweCIsdGhpcy5zdXBwb3J0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc3VwcG9ydC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHRoaXMuc3VwcG9ydC5zdHlsZS5tYXJnaW49IjFweCIsdGhpcy5zdXBwb3J0LnN0eWxlLndpZHRoPSI0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5oZWlnaHQ9IjY0cHgiLHRoaXMuc3VwcG9ydC5zdHlsZS5ib3JkZXI9IjFweCBzb2xpZCBibGFjayIsdGhpcy5zdXBwb3J0LnN0eWxlLmJhY2tncm91bmQ9ImxpZ2h0Z3JheSIsdGhpcy5idWxsZXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idWxsZXQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmJ1bGxldC5zdHlsZS5tYXJnaW49Ii00cHgiLHRoaXMuYnVsbGV0LnN0eWxlLndpZHRoPSIxMHB4Iix0aGlzLmJ1bGxldC5zdHlsZS5oZWlnaHQ9IjEwcHgiLHRoaXMuYnVsbGV0LnN0eWxlLmJhY2tncm91bmQ9ImdyYXkiLHRoaXMubGFiZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgiZGVzY3JpcHRpb24iKSx0aGlzLmxhYmVsLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIix0aGlzLnN1cHBvcnQuYXBwZW5kQ2hpbGQodGhpcy5idWxsZXQpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zdXBwb3J0KSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYnVsbGV0LnN0eWxlLnRvcD01MCoodGhpcy5tb2RlbC5nZXQoInZhbHVlIikrMSkrIiUifSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlckF4aXNWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQ29udHJvbGxlck1vZGVsIixfdmlld19uYW1lOiJDb250cm9sbGVyVmlldyIsaW5kZXg6MCxuYW1lOiIiLG1hcHBpbmc6IiIsY29ubmVjdGVkOiExLHRpbWVzdGFtcDowLGJ1dHRvbnM6W10sYXhlczpbXX0pfSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUsbil7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSxuKSx2b2lkIDA9PT1uYXZpZ2F0b3IuZ2V0R2FtZXBhZHM/KHRoaXMucmVhZG91dD0iVGhpcyBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZ2FtZXBhZHMuIixjb25zb2xlLmVycm9yKHRoaXMucmVhZG91dCkpOih0aGlzLnJlYWRvdXQ9IkNvbm5lY3QgZ2FtZXBhZCBhbmQgcHJlc3MgYW55IGJ1dHRvbi4iLHRoaXMuZ2V0KCJjb25uZWN0ZWQiKT90aGlzLnVwZGF0ZV9sb29wKCk6dGhpcy53YWl0X2xvb3AoKSl9LGUucHJvdG90eXBlLndhaXRfbG9vcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0KCJpbmRleCIpLGU9bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07aWYoZSl7dmFyIG49dGhpczt0aGlzLnNldHVwKGUpLnRoZW4oZnVuY3Rpb24odCl7bi5zZXQodCksbi5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4udXBkYXRlX2xvb3AuYmluZChuKSl9KX1lbHNlIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy53YWl0X2xvb3AuYmluZCh0aGlzKSl9LGUucHJvdG90eXBlLnNldHVwPWZ1bmN0aW9uKHQpe3RoaXMuc2V0KHtuYW1lOnQuaWQsbWFwcGluZzp0Lm1hcHBpbmcsY29ubmVjdGVkOnQuY29ubmVjdGVkLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH0pO3ZhciBlPXRoaXM7cmV0dXJuIGMucmVzb2x2ZVByb21pc2VzRGljdCh7YnV0dG9uczpQcm9taXNlLmFsbCh0LmJ1dHRvbnMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9idXR0b25fbW9kZWwobil9KSksYXhlczpQcm9taXNlLmFsbCh0LmF4ZXMubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuX2NyZWF0ZV9heGlzX21vZGVsKG4pfSkpfSl9LGUucHJvdG90eXBlLnVwZGF0ZV9sb29wPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXQoImluZGV4IiksZT10aGlzLmdldCgibmFtZSIpLG49bmF2aWdhdG9yLmdldEdhbWVwYWRzKClbdF07biYmdD09PW4uaW5kZXgmJmU9PT1uLmlkPyh0aGlzLnNldCh7dGltZXN0YW1wOm4udGltZXN0YW1wLGNvbm5lY3RlZDpuLmNvbm5lY3RlZH0pLHRoaXMuc2F2ZV9jaGFuZ2VzKCksdGhpcy5nZXQoImJ1dHRvbnMiKS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dC5zZXQoe3ZhbHVlOm4uYnV0dG9uc1tlXS52YWx1ZSxwcmVzc2VkOm4uYnV0dG9uc1tlXS5wcmVzc2VkfSksdC5zYXZlX2NoYW5nZXMoKX0pLHRoaXMuZ2V0KCJheGVzIikuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Quc2V0KCJ2YWx1ZSIsbi5heGVzW2VdKSx0LnNhdmVfY2hhbmdlcygpfSksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZV9sb29wLmJpbmQodGhpcykpKTp0aGlzLnJlc2V0X2dhbWVwYWQoKX0sZS5wcm90b3R5cGUucmVzZXRfZ2FtZXBhZD1mdW5jdGlvbigpe3RoaXMuZ2V0KCJidXR0b25zIikuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsb3NlKCl9KSx0aGlzLmdldCgiYXhlcyIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbG9zZSgpfSksdGhpcy5zZXQoe25hbWU6IiIsbWFwcGluZzoiIixjb25uZWN0ZWQ6ITEsdGltZXN0YW1wOjAsYnV0dG9uczpbXSxheGVzOltdfSksdGhpcy5zYXZlX2NoYW5nZXMoKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMud2FpdF9sb29wLmJpbmQodGhpcykpfSxlLnByb3RvdHlwZS5fY3JlYXRlX2J1dHRvbl9tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQnV0dG9uTW9kZWwiLG1vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9jb250cm9scyIsbW9kZWxfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl9tb2RlbF9tb2R1bGVfdmVyc2lvbiIpLHZpZXdfbmFtZToiQ29udHJvbGxlckJ1dHRvblZpZXciLHZpZXdfbW9kdWxlOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2aWV3X21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfdmlld19tb2R1bGVfdmVyc2lvbiIpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImRlc2NyaXB0aW9uIix0KSxlfSl9LGUucHJvdG90eXBlLl9jcmVhdGVfYXhpc19tb2RlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRfbWFuYWdlci5uZXdfd2lkZ2V0KHttb2RlbF9uYW1lOiJDb250cm9sbGVyQXhpc01vZGVsIixtb2RlbF9tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLG1vZGVsX21vZHVsZV92ZXJzaW9uOnRoaXMuZ2V0KCJfbW9kZWxfbW9kdWxlX3ZlcnNpb24iKSx2aWV3X25hbWU6IkNvbnRyb2xsZXJBeGlzVmlldyIsdmlld19tb2R1bGU6IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHMiLHZpZXdfbW9kdWxlX3ZlcnNpb246dGhpcy5nZXQoIl92aWV3X21vZHVsZV92ZXJzaW9uIil9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgiZGVzY3JpcHRpb24iLHQpLGV9KX0sZS5zZXJpYWxpemVycz1vKHt9LHMuQ29yZURPTVdpZGdldE1vZGVsLnNlcmlhbGl6ZXJzLHtidXR0b25zOntkZXNlcmlhbGl6ZTphLnVucGFja19tb2RlbHN9LGF4ZXM6e2Rlc2VyaWFsaXplOmEudW5wYWNrX21vZGVsc319KSxlfShzLkNvcmVET01XaWRnZXRNb2RlbCk7ZS5Db250cm9sbGVyTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5idXR0b25fdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYnV0dG9uLG51bGwsdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6YnV0dG9ucyIsZnVuY3Rpb24odCxlKXt0aGlzLmJ1dHRvbl92aWV3cy51cGRhdGUoZSl9KSx0aGlzLmF4aXNfdmlld3M9bmV3IGEuVmlld0xpc3QodGhpcy5hZGRfYXhpcyxudWxsLHRoaXMpLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOmF4ZXMiLGZ1bmN0aW9uKHQsZSl7dGhpcy5heGlzX3ZpZXdzLnVwZGF0ZShlKX0pLHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOm5hbWUiLHRoaXMudXBkYXRlX2xhYmVsKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1jb250cm9sbGVyIiksdGhpcy5ib3g9dGhpcy5lbCx0aGlzLmxhYmVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMubGFiZWwpLHRoaXMuYXhpc19ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5heGlzX2JveC5zdHlsZS5kaXNwbGF5PSJmbGV4Iix0aGlzLmJveC5hcHBlbmRDaGlsZCh0aGlzLmF4aXNfYm94KSx0aGlzLmJ1dHRvbl9ib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5idXR0b25fYm94LnN0eWxlLmRpc3BsYXk9ImZsZXgiLHRoaXMuYm94LmFwcGVuZENoaWxkKHRoaXMuYnV0dG9uX2JveCksdGhpcy5idXR0b25fdmlld3MudXBkYXRlKHRoaXMubW9kZWwuZ2V0KCJidXR0b25zIikpLHRoaXMuYXhpc192aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImF4ZXMiKSksdGhpcy51cGRhdGVfbGFiZWwoKX0sZS5wcm90b3R5cGUudXBkYXRlX2xhYmVsPWZ1bmN0aW9uKCl7dGhpcy5sYWJlbC50ZXh0Q29udGVudD10aGlzLm1vZGVsLmdldCgibmFtZSIpfHx0aGlzLm1vZGVsLnJlYWRvdXR9LGUucHJvdG90eXBlLmFkZF9idXR0b249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmJ1dHRvbl9ib3guYXBwZW5kQ2hpbGQobiksdGhpcy5jcmVhdGVfY2hpbGRfdmlldyh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmJ1dHRvbl9ib3gucmVwbGFjZUNoaWxkKHQuZWwsbiksZS5kaXNwbGF5ZWQudGhlbihmdW5jdGlvbigpe3QudHJpZ2dlcigiZGlzcGxheWVkIixlKX0pLHR9KS5jYXRjaChjLnJlamVjdCgiQ291bGQgbm90IGFkZCBidXR0b24gdmlldyIsITApKX0sZS5wcm90b3R5cGUuYWRkX2F4aXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmF4aXNfYm94LmFwcGVuZENoaWxkKG4pLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5heGlzX2JveC5yZXBsYWNlQ2hpbGQodC5lbCxuKSxlLmRpc3BsYXllZC50aGVuKGZ1bmN0aW9uKCl7dC50cmlnZ2VyKCJkaXNwbGF5ZWQiLGUpfSksdH0pLmNhdGNoKGMucmVqZWN0KCJDb3VsZCBub3QgYWRkIGF4aXMgdmlldyIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyksdGhpcy5idXR0b25fdmlld3MucmVtb3ZlKCksdGhpcy5heGlzX3ZpZXdzLnJlbW92ZSgpfSxlfShhLkRPTVdpZGdldFZpZXcpO2UuQ29udHJvbGxlclZpZXc9bX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KSxvPXRoaXMmJnRoaXMuX19hc3NpZ258fE9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTEsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspZm9yKHZhciByIGluIGU9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPW4oMTIpLGE9bigyMyksdT1uKDE2KSxjPW4oNiksaD1uKDE2KSxsPW4oMTUpO3ZhciBkPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uTW9kZWwiLGluZGV4OiIiLF9vcHRpb25zX2xhYmVsczpbXSxkaXNhYmxlZDohMX0pfSxlfShzLkNvcmVEZXNjcmlwdGlvbk1vZGVsKTtlLlNlbGVjdGlvbk1vZGVsPWQ7dmFyIGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJEcm9wZG93bk1vZGVsIixfdmlld19uYW1lOiJEcm9wZG93blZpZXciLGJ1dHRvbl9zdHlsZToiIn0pfSxlfShkKTtlLkRyb3Bkb3duTW9kZWw9Zjt2YXIgcD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfb3B0aW9uc19sYWJlbHMiLGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3VwZGF0ZU9wdGlvbnMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtZHJvcGRvd24iKSx0aGlzLmxpc3Rib3g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksdGhpcy5saXN0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj11LnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMubGlzdGJveCksdGhpcy5fdXBkYXRlT3B0aW9ucygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTtyZXR1cm4gdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9bnVsbD09PWU/LTE6ZSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsLTE9PT10aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD9udWxsOnRoaXMubGlzdGJveC5zZWxlY3RlZEluZGV4KSx0aGlzLnRvdWNoKCl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLkRyb3Bkb3duVmlldz1wO3ZhciBtPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gbyh7fSx0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0TW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdFZpZXciLHJvd3M6NX0pfSxlfShkKTtlLlNlbGVjdE1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X29wdGlvbnNfbGFiZWxzIixmdW5jdGlvbigpe3JldHVybiBuLl91cGRhdGVPcHRpb25zKCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTppbmRleCIsZnVuY3Rpb24odCxlLGkpe3JldHVybiBuLnVwZGF0ZVNlbGVjdGlvbihpKX0pLHRoaXMubGlzdGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKX0sZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdCIpLHRoaXMubGlzdGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9dS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmxpc3Rib3gpLHRoaXMuX3VwZGF0ZU9wdGlvbnMoKSx0aGlzLnVwZGF0ZSgpLHRoaXMudXBkYXRlU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3QucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpLHRoaXMubGlzdGJveC5kaXNhYmxlZD10aGlzLm1vZGVsLmdldCgiZGlzYWJsZWQiKTt2YXIgZT10aGlzLm1vZGVsLmdldCgicm93cyIpO251bGw9PT1lJiYoZT0iIiksdGhpcy5saXN0Ym94LnNldEF0dHJpYnV0ZSgic2l6ZSIsZSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10JiYodD17fSksdC51cGRhdGVkX3ZpZXchPT10aGlzKXt2YXIgZT10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLmxpc3Rib3guc2VsZWN0ZWRJbmRleD1udWxsPT09ZT8tMTplfX0sZS5wcm90b3R5cGUuX3VwZGF0ZU9wdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLmxpc3Rib3gudGV4dENvbnRlbnQ9IiI7Zm9yKHZhciB0PXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV0saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtpLnRleHRDb250ZW50PW4ucmVwbGFjZSgvIC9nLCLCoCIpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXZhbHVlIixlbmNvZGVVUklDb21wb25lbnQobikpLGkudmFsdWU9bix0aGlzLmxpc3Rib3guYXBwZW5kQ2hpbGQoaSl9fSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNoYW5nZSBzZWxlY3QiOiJfaGFuZGxlX2NoYW5nZSJ9fSxlLnByb3RvdHlwZS5faGFuZGxlX2NoYW5nZT1mdW5jdGlvbigpe3RoaXMubW9kZWwuc2V0KCJpbmRleCIsdGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXgse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3RWaWV3PWc7dmFyIHY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJSYWRpb0J1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiUmFkaW9CdXR0b25zVmlldyIsdG9vbHRpcHM6W10saWNvbnM6W10sYnV0dG9uX3N0eWxlOiIifSl9LGV9KGQpO2UuUmFkaW9CdXR0b25zTW9kZWw9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpbyIpLHRoaXMuY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIndpZGdldC1yYWRpby1ib3giKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKSxyPWMucGx1Y2sodGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0icmFkaW8iXScpLCJ2YWx1ZSIpLG89aS5sZW5ndGghPXIubGVuZ3RoO2lmKCFvKWZvcih2YXIgcz0wLGE9aS5sZW5ndGg7czxhOysrcylpZihyW3NdIT09aVtzXSl7bz0hMDticmVha31yZXR1cm4hb3x8dm9pZCAwIT09ZSYmZS51cGRhdGVkX3ZpZXc9PT10aGlzfHwodGhpcy5jb250YWluZXIudGV4dENvbnRlbnQ9IiIsaS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTtpLnRleHRDb250ZW50PXQsbi5jb250YWluZXIuYXBwZW5kQ2hpbGQoaSk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksci52YWx1ZT1lLnRvU3RyaW5nKCksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSksaS5hcHBlbmRDaGlsZChyKX0pKSxpLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgaT0naW5wdXRbZGF0YS12YWx1ZT0iJytlbmNvZGVVUklDb21wb25lbnQodCkrJyJdJyxyPW4uY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoaSk7aWYoci5sZW5ndGg+MCl7dmFyIG89clswXTtvLmNoZWNrZWQ9bi5tb2RlbC5nZXQoImluZGV4Iik9PT1lLG8uZGlzYWJsZWQ9bi5tb2RlbC5nZXQoImRpc2FibGVkIil9fSksc2V0VGltZW91dCh0aGlzLmFkanVzdFBhZGRpbmcsMCx0aGlzKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGUpfSxlLnByb3RvdHlwZS5hZGp1c3RQYWRkaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQuZWwpLG49cGFyc2VJbnQoZS5tYXJnaW5Ub3ApK3BhcnNlSW50KGUubWFyZ2luQm90dG9tKSxpPXQubGFiZWwub2Zmc2V0SGVpZ2h0K24scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LmNvbnRhaW5lciksbz1wYXJzZUludChyLm1hcmdpbkJvdHRvbSkscz0odC5lbC5vZmZzZXRIZWlnaHQrbi1vKSVpLGE9MD09cz8wOmktczt0LmNvbnRhaW5lci5zdHlsZS5tYXJnaW5Cb3R0b209YSsicHgifSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57J2NsaWNrIGlucHV0W3R5cGU9InJhZGlvIl0nOiJfaGFuZGxlX2NsaWNrIn19LGUucHJvdG90eXBlLl9oYW5kbGVfY2xpY2s9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5zZXQoImluZGV4IixwYXJzZUludCh0LnRhcmdldC52YWx1ZSkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5SYWRpb0J1dHRvbnNWaWV3PWI7dmFyIHk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWwifSl9LGUuc3R5bGVQcm9wZXJ0aWVzPW8oe30sYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwuc3R5bGVQcm9wZXJ0aWVzLHtidXR0b25fd2lkdGg6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToid2lkdGgiLGRlZmF1bHQ6bnVsbH0sZm9udF93ZWlnaHQ6e3NlbGVjdG9yOiIud2lkZ2V0LXRvZ2dsZS1idXR0b24iLGF0dHJpYnV0ZToiZm9udC13ZWlnaHQiLGRlZmF1bHQ6IiJ9fSksZX0oYS5EZXNjcmlwdGlvblN0eWxlTW9kZWwpO2UuVG9nZ2xlQnV0dG9uc1N0eWxlTW9kZWw9eTt2YXIgXz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRvZ2dsZUJ1dHRvbnNNb2RlbCIsX3ZpZXdfbmFtZToiVG9nZ2xlQnV0dG9uc1ZpZXcifSl9LGV9KGQpO2UuVG9nZ2xlQnV0dG9uc01vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3RoaXMuX2Nzc19zdGF0ZT17fSx0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpidXR0b25fc3R5bGUiLHRoaXMudXBkYXRlX2J1dHRvbl9zdHlsZSl9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10b2dnbGUtYnV0dG9ucyIpLHRoaXMuYnV0dG9uZ3JvdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLmJ1dHRvbmdyb3VwKSx0aGlzLnVwZGF0ZSgpLHRoaXMuc2V0X2J1dHRvbl9zdHlsZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24obil7Zm9yKHZhciBpPXRoaXMscj10aGlzLm1vZGVsLmdldCgiX29wdGlvbnNfbGFiZWxzIiksbz10aGlzLm1vZGVsLmdldCgiaWNvbnMiKXx8W10scz10aGlzLm1vZGVsLnByZXZpb3VzKCJpY29ucyIpfHxbXSxhPWUuY2xhc3NNYXBbdGhpcy5tb2RlbC5wcmV2aW91cygiYnV0dG9uX3N0eWxlIildfHwiIix1PWkubW9kZWwuZ2V0KCJ0b29sdGlwcyIpfHxbXSxsPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpLGQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxmPWMucGx1Y2soZCwidmFsdWUiKSxwPSExLG09MCxnPXIubGVuZ3RoO208ZzsrK20paWYoZlttXSE9PXJbbV18fG9bbV0hPT1zW21dKXtwPSEwO2JyZWFrfXJldHVybiFwfHx2b2lkIDAhPT1uJiZuLnVwZGF0ZWRfdmlldz09PXRoaXN8fCh0aGlzLmJ1dHRvbmdyb3VwLnRleHRDb250ZW50PSIiLHIuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuO249MD09PXQudHJpbSgpLmxlbmd0aCYmKCFvW2VdfHwwPT09b1tlXS50cmltKCkubGVuZ3RoKT8iJm5ic3A7IjpoLmVzY2FwZV9odG1sKHQpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO29bZV0mJihyLmNsYXNzTmFtZT0iZmEgZmEtIitvW2VdKSxzLnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpLHMuY2xhc3NOYW1lPSJ3aWRnZXQtdG9nZ2xlLWJ1dHRvbiBqdXB5dGVyLWJ1dHRvbiIsYSYmcy5jbGFzc0xpc3QuYWRkKGEpLHMuaW5uZXJIVE1MPW4scy5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsdWUiLGVuY29kZVVSSUNvbXBvbmVudCh0KSkscy5zZXRBdHRyaWJ1dGUoInZhbHVlIixlLnRvU3RyaW5nKCkpLHMuYXBwZW5kQ2hpbGQocikscy5kaXNhYmxlZD1sLHVbZV0mJnMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdVtlXSksaS51cGRhdGVfc3R5bGVfdHJhaXRzKHMpLGkuYnV0dG9uZ3JvdXAuYXBwZW5kQ2hpbGQocyl9KSksci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49J1tkYXRhLXZhbHVlPSInK2VuY29kZVVSSUNvbXBvbmVudCh0KSsnIl0nLHI9aS5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yKG4pO2kubW9kZWwuZ2V0KCJpbmRleCIpPT09ZT9yLmNsYXNzTGlzdC5hZGQoIm1vZC1hY3RpdmUiKTpyLmNsYXNzTGlzdC5yZW1vdmUoIm1vZC1hY3RpdmUiKX0pLHRoaXMuc3R5bGVQcm9taXNlLnRoZW4oZnVuY3Rpb24odCl7dCYmdC5zdHlsZSgpfSksdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxuKX0sZS5wcm90b3R5cGUudXBkYXRlX3N0eWxlX3RyYWl0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fY3NzX3N0YXRlKWlmKHRoaXMuX2Nzc19zdGF0ZS5oYXNPd25Qcm9wZXJ0eShlKSlpZigibWFyZ2luIj09PWUpdGhpcy5idXR0b25ncm91cC5zdHlsZVtlXT10aGlzLl9jc3Nfc3RhdGVbZV07ZWxzZSBpZigid2lkdGgiIT09ZSlpZih0KXQuc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdO2Vsc2V7dmFyIG49dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKTtuLmxlbmd0aCYmKG5bMF0uc3R5bGVbZV09dGhpcy5fY3NzX3N0YXRlW2VdKX19LGUucHJvdG90eXBlLnVwZGF0ZV9idXR0b25fc3R5bGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5idXR0b25ncm91cC5xdWVyeVNlbGVjdG9yQWxsKCJidXR0b24iKSxuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy51cGRhdGVfbWFwcGVkX2NsYXNzZXMoZS5jbGFzc01hcCwiYnV0dG9uX3N0eWxlIix0W25dKX0sZS5wcm90b3R5cGUuc2V0X2J1dHRvbl9zdHlsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1dHRvbmdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnNldF9tYXBwZWRfY2xhc3NlcyhlLmNsYXNzTWFwLCJidXR0b25fc3R5bGUiLHRbbl0pfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImNsaWNrIGJ1dHRvbiI6Il9oYW5kbGVfY2xpY2sifX0sZS5wcm90b3R5cGUuX2hhbmRsZV9jbGljaz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgiaW5kZXgiLHBhcnNlSW50KHQudGFyZ2V0LnZhbHVlKSx7dXBkYXRlZF92aWV3OnRoaXN9KSx0aGlzLnRvdWNoKCksdGhpcy5zZW5kKHtldmVudDoiY2xpY2sifSl9LGV9KGEuRGVzY3JpcHRpb25WaWV3KTtlLlRvZ2dsZUJ1dHRvbnNWaWV3PXcsZnVuY3Rpb24odCl7dC5jbGFzc01hcD17cHJpbWFyeTpbIm1vZC1wcmltYXJ5Il0sc3VjY2VzczpbIm1vZC1zdWNjZXNzIl0saW5mbzpbIm1vZC1pbmZvIl0sd2FybmluZzpbIm1vZC13YXJuaW5nIl0sZGFuZ2VyOlsibW9kLWRhbmdlciJdfX0odz1lLlRvZ2dsZUJ1dHRvbnNWaWV3fHwoZS5Ub2dnbGVCdXR0b25zVmlldz17fSkpLGUuVG9nZ2xlQnV0dG9uc1ZpZXc9dzt2YXIgeD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShkKTtlLlNlbGVjdGlvblNsaWRlck1vZGVsPXg7dmFyIE09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1oc2xpZGVyIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtc2xpZGVyIiksKHRoaXMuJHNsaWRlcj1sKCI8ZGl2IC8+IikpLnNsaWRlcih7c2xpZGU6dGhpcy5oYW5kbGVTbGlkZXJDaGFuZ2UuYmluZCh0aGlzKSxzdG9wOnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZC5iaW5kKHRoaXMpfSkuYWRkQ2xhc3MoInNsaWRlciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnNsaWRlcl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic2xpZGVyLWNvbnRhaW5lciIpLHRoaXMuc2xpZGVyX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRzbGlkZXJbMF0pLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXJfY29udGFpbmVyKSx0aGlzLnJlYWRvdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnJlYWRvdXQpLHRoaXMucmVhZG91dC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtcmVhZG91dCIpLHRoaXMucmVhZG91dC5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpzbGlkZXJfY29sb3IiLGZ1bmN0aW9uKHQsbil7ZS4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLG4pfSksdGhpcy4kc2xpZGVyLmZpbmQoImEiKS5jc3MoImJhY2tncm91bmQiLHRoaXMubW9kZWwuZ2V0KCJzbGlkZXJfY29sb3IiKSksdGhpcy51cGRhdGUoKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWV8fGUudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLmxlbmd0aC0xO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInN0ZXAiLDEpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsIm1heCIsbiksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwibWluIiwwKTt2YXIgaT10aGlzLm1vZGVsLmdldCgib3JpZW50YXRpb24iKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsMCksdGhpcy4kc2xpZGVyLnNsaWRlcigib3B0aW9uIiwib3JpZW50YXRpb24iLGkpO3ZhciByPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsImRpc2FibGVkIixyKSx0aGlzLnJlYWRvdXQuY29udGVudEVkaXRhYmxlPXI/ImZhbHNlIjoidHJ1ZSIsInZlcnRpY2FsIj09PWk/KHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWhzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXZzbGlkZXIiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtdmJveCIpKToodGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJ3aWRnZXQtdnNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgid2lkZ2V0LWlubGluZS12Ym94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHNsaWRlciIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IikpO3ZhciBvPXRoaXMubW9kZWwuZ2V0KCJyZWFkb3V0Iik7dGhpcy5yZWFkb3V0LnN0eWxlLmRpc3BsYXk9bz8iIjoibm9uZSIsdGhpcy51cGRhdGVTZWxlY3Rpb24oKX1yZXR1cm4gdC5wcm90b3R5cGUudXBkYXRlLmNhbGwodGhpcyxlKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOiJoYW5kbGVTbGlkZXJDaGFuZ2UiLHNsaWRlc3RvcDoiaGFuZGxlU2xpZGVyQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiaW5kZXgiKTt0aGlzLiRzbGlkZXIuc2xpZGVyKCJvcHRpb24iLCJ2YWx1ZSIsdCksdGhpcy51cGRhdGVSZWFkb3V0KHQpfSxlLnByb3RvdHlwZS51cGRhdGVSZWFkb3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubW9kZWwuZ2V0KCJfb3B0aW9uc19sYWJlbHMiKVt0XTt0aGlzLnJlYWRvdXQudGV4dENvbnRlbnQ9ZX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWUpLHRoaXMubW9kZWwuZ2V0KCJjb250aW51b3VzX3VwZGF0ZSIpJiZ0aGlzLmhhbmRsZVNsaWRlckNoYW5nZWQodCxlKX0sZS5wcm90b3R5cGUuaGFuZGxlU2xpZGVyQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShhLkRlc2NyaXB0aW9uVmlldyk7ZS5TZWxlY3Rpb25TbGlkZXJWaWV3PU07dmFyIFM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJNdWx0aXBsZVNlbGVjdGlvbk1vZGVsIn0pfSxlfShkKTtlLk11bHRpcGxlU2VsZWN0aW9uTW9kZWw9Uzt2YXIgRT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdE11bHRpcGxlTW9kZWwiLF92aWV3X25hbWU6IlNlbGVjdE11bHRpcGxlVmlldyIscm93czpudWxsfSl9LGV9KFMpO2UuU2VsZWN0TXVsdGlwbGVNb2RlbD1FO3ZhciBBPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmxpc3Rib3gubXVsdGlwbGU9ITB9LGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LXNlbGVjdC1tdWx0aXBsZSIpfSxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHQudXBkYXRlZF92aWV3IT09dGhpcyl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoImluZGV4Iil8fFtdLG49dGhpcy5saXN0Ym94Lm9wdGlvbnM7dGhpcy5saXN0Ym94LnNlbGVjdGVkSW5kZXg9LTEsZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF0uc2VsZWN0ZWQ9ITB9KX19LGUucHJvdG90eXBlLl9oYW5kbGVfY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHRoaXMubGlzdGJveC5zZWxlY3RlZE9wdGlvbnN8fFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4fSk7dGhpcy5tb2RlbC5zZXQoImluZGV4Iix0LHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0oZyk7ZS5TZWxlY3RNdWx0aXBsZVZpZXc9QTt2YXIgQz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oe30sdC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlNlbGVjdGlvblNsaWRlck1vZGVsIixfdmlld19uYW1lOiJTZWxlY3Rpb25TbGlkZXJWaWV3IixvcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmVhZG91dDohMCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShTKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyTW9kZWw9Qzt2YXIgaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInJhbmdlIiwhMCl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0KCJpbmRleCIpO3RoaXMuJHNsaWRlci5zbGlkZXIoIm9wdGlvbiIsInZhbHVlcyIsdC5zbGljZSgpKSx0aGlzLnVwZGF0ZVJlYWRvdXQodCl9LGUucHJvdG90eXBlLnVwZGF0ZVJlYWRvdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tb2RlbC5nZXQoIl9vcHRpb25zX2xhYmVscyIpLG49ZVt0WzBdXSxpPWVbdFsxXV07dGhpcy5yZWFkb3V0LnRleHRDb250ZW50PW4rIi0iK2l9LGUucHJvdG90eXBlLmhhbmRsZVNsaWRlckNoYW5nZT1mdW5jdGlvbih0LGUpe3RoaXMudXBkYXRlUmVhZG91dChlLnZhbHVlcyksdGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlU2xpZGVyQ2hhbmdlZCh0LGUpfSxlLnByb3RvdHlwZS5oYW5kbGVTbGlkZXJDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7dGhpcy51cGRhdGVSZWFkb3V0KGUudmFsdWVzKSx0aGlzLm1vZGVsLnNldCgiaW5kZXgiLGUudmFsdWVzLnNsaWNlKCkse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShNKTtlLlNlbGVjdGlvblJhbmdlU2xpZGVyVmlldz1rfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDgpLHM9bigxMzYpLGE9bigzNTUpLHU9bigzNTYpLGM9bigzOSksaD1uKDIpLGw9big1KSxkPW4oNiksZj1uKDE2KSxwPW4oMTUpLG09ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiU2VsZWN0aW9uQ29udGFpbmVyTW9kZWwiLHNlbGVjdGVkX2luZGV4OjAsX3RpdGxlczp7fX0pfSxlfShzLkJveE1vZGVsKTtlLlNlbGVjdGlvbkNvbnRhaW5lck1vZGVsPW07dmFyIGc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBkLmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfbW9kZWxfbmFtZToiQWNjb3JkaW9uTW9kZWwiLF92aWV3X25hbWU6IkFjY29yZGlvblZpZXcifSl9LGV9KG0pO2UuQWNjb3JkaW9uTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXRoaXMsaT1lLnZpZXc7cmV0dXJuIGRlbGV0ZSBlLnZpZXcsKG49dC5jYWxsKHRoaXMsZSl8fHRoaXMpLl92aWV3PWksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlPWZ1bmN0aW9uKGUpe3QucHJvdG90eXBlLnByb2Nlc3NNZXNzYWdlLmNhbGwodGhpcyxlKSx0aGlzLl92aWV3LnByb2Nlc3NQaG9zcGhvck1lc3NhZ2UoZSl9LGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfSh1LkFjY29yZGlvbik7ZS5KdXB5dGVyUGhvc3Bob3JBY2NvcmRpb25XaWRnZXQ9djt2YXIgYj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IHYoe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuX3ZpZXdzPW5ldyBvLlZpZXdMaXN0KHRoaXMuYWRkX2NoaWxkX3ZpZXcsdGhpcy5yZW1vdmVfY2hpbGRfdmlldyx0aGlzKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpjaGlsZHJlbiIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVDaGlsZHJlbigpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6c2VsZWN0ZWRfaW5kZXgiLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9KSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpfdGl0bGVzIixmdW5jdGlvbigpe3JldHVybiBuLnVwZGF0ZV90aXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpO3ZhciBuPXRoaXMucFdpZGdldDtuLmFkZENsYXNzKCJqdXB5dGVyLXdpZGdldHMiKSxuLmFkZENsYXNzKCJ3aWRnZXQtYWNjb3JkaW9uIiksbi5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLG4uc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChmdW5jdGlvbih0KXtlLnVwZGF0aW5nQ2hpbGRyZW58fChlLm1vZGVsLnNldCgic2VsZWN0ZWRfaW5kZXgiLG4uc2VsZWN0aW9uLmluZGV4KSxlLnRvdWNoKCkpfSksdGhpcy5jaGlsZHJlbl92aWV3cy51cGRhdGUodGhpcy5tb2RlbC5nZXQoImNoaWxkcmVuIikpLHRoaXMudXBkYXRlX3RpdGxlcygpLHRoaXMudXBkYXRlX3NlbGVjdGVkX2luZGV4KCl9LGUucHJvdG90eXBlLnVwZGF0ZUNoaWxkcmVuPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGluZ0NoaWxkcmVuPSEwLHRoaXMucFdpZGdldC5zZWxlY3Rpb24uaW5kZXg9bnVsbCx0aGlzLmNoaWxkcmVuX3ZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy51cGRhdGVfc2VsZWN0ZWRfaW5kZXgoKSx0aGlzLnVwZGF0aW5nQ2hpbGRyZW49ITF9LGUucHJvdG90eXBlLnVwZGF0ZV90aXRsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5wV2lkZ2V0LmNvbGxhcHNlV2lkZ2V0cyxlPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIiksbj0wO248dC5sZW5ndGg7bisrKXZvaWQgMCE9PWVbbl0mJih0W25dLndpZGdldC50aXRsZS5sYWJlbD1lW25dKX0sZS5wcm90b3R5cGUudXBkYXRlX3NlbGVjdGVkX2luZGV4PWZ1bmN0aW9uKCl7dGhpcy5wV2lkZ2V0LnNlbGVjdGlvbi5pbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKX0sZS5wcm90b3R5cGUucmVtb3ZlX2NoaWxkX3ZpZXc9ZnVuY3Rpb24odCl7dGhpcy5wV2lkZ2V0LnJlbW92ZVdpZGdldCh0LnBXaWRnZXQpLHQucmVtb3ZlKCl9LGUucHJvdG90eXBlLmFkZF9jaGlsZF92aWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5wV2lkZ2V0LGk9bmV3IGMuV2lkZ2V0O3JldHVybiBpLnRpdGxlLmxhYmVsPXRoaXMubW9kZWwuZ2V0KCJfdGl0bGVzIilbZV18fCIiLG4uYWRkV2lkZ2V0KGkpLHRoaXMuY3JlYXRlX2NoaWxkX3ZpZXcodCkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnBXaWRnZXQ7cmV0dXJuIGUudGl0bGUubGFiZWw9aS50aXRsZS5sYWJlbCxuLmNvbGxhcHNlV2lkZ2V0c1tuLmluZGV4T2YoaSldLndpZGdldD1lLGkuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5jaGlsZHJlbl92aWV3cz1udWxsLHQucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMpfSxlfShvLkRPTVdpZGdldFZpZXcpO2UuQWNjb3JkaW9uVmlldz1iO3ZhciB5PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gZC5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X21vZGVsX25hbWU6IlRhYk1vZGVsIixfdmlld19uYW1lOiJUYWJWaWV3In0pfSxlfShtKTtlLlRhYk1vZGVsPXk7dmFyIF89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgbj10aGlzLGk9ZS52aWV3O3JldHVybiBkZWxldGUgZS52aWV3LChuPXQuY2FsbCh0aGlzLGUpfHx0aGlzKS5fdmlldz1pLGwuTWVzc2FnZUxvb3AuaW5zdGFsbE1lc3NhZ2VIb29rKG4udGFiQ29udGVudHMsZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5fdmlldy5wcm9jZXNzUGhvc3Bob3JNZXNzYWdlKGUpLCEwfSksbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5fdmlldyYmdGhpcy5fdmlldy5yZW1vdmUoKSx0aGlzLl92aWV3PW51bGwpfSxlfShhLlRhYlBhbmVsKTtlLkp1cHl0ZXJQaG9zcGhvclRhYlBhbmVsV2lkZ2V0PV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS51cGRhdGluZ1RhYnM9ITEsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBXaWRnZXQ9bmV3IF8oe3ZpZXc6dGhpc30pLHRoaXMucFdpZGdldC5ub2RlfSxlLnByb3RvdHlwZS5fc2V0RWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLmVsfHx0IT09dGhpcy5wV2lkZ2V0Lm5vZGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVzZXQgdGhlIERPTSBlbGVtZW50LiIpO3RoaXMuZWw9dGhpcy5wV2lkZ2V0Lm5vZGUsdGhpcy4kZWw9cCh0aGlzLnBXaWRnZXQubm9kZSl9LGUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0LnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxlKSx0aGlzLmNoaWxkcmVuVmlld3M9bmV3IG8uVmlld0xpc3QodGhpcy5hZGRDaGlsZFZpZXcsZnVuY3Rpb24odCl7dC5yZW1vdmUoKX0sdGhpcyksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6Y2hpbGRyZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIG4udXBkYXRlVGFicygpfSksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6X3RpdGxlcyIsZnVuY3Rpb24oKXtyZXR1cm4gbi51cGRhdGVUaXRsZXMoKX0pfSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKTt2YXIgZT10aGlzLnBXaWRnZXQ7ZS5hZGRDbGFzcygianVweXRlci13aWRnZXRzIiksZS5hZGRDbGFzcygid2lkZ2V0LWNvbnRhaW5lciIpLGUuYWRkQ2xhc3MoIndpZGdldC10YWIiKSxlLnRhYnNNb3ZhYmxlPSEwLGUudGFiQmFyLmluc2VydEJlaGF2aW9yPSJub25lIixlLnRhYkJhci5jdXJyZW50Q2hhbmdlZC5jb25uZWN0KHRoaXMuX29uVGFiQ2hhbmdlZCx0aGlzKSxlLnRhYkJhci50YWJNb3ZlZC5jb25uZWN0KHRoaXMuX29uVGFiTW92ZWQsdGhpcyksZS50YWJCYXIuYWRkQ2xhc3MoIndpZGdldC10YWItYmFyIiksZS50YWJDb250ZW50cy5hZGRDbGFzcygid2lkZ2V0LXRhYi1jb250ZW50cyIpLGUudGFiQmFyLnRhYnNNb3ZhYmxlPSExLHRoaXMudXBkYXRlVGFicygpLHRoaXMudXBkYXRlKCl9LGUucHJvdG90eXBlLnVwZGF0ZVRhYnM9ZnVuY3Rpb24oKXt0aGlzLnVwZGF0aW5nVGFicz0hMCx0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PW51bGwsdGhpcy5jaGlsZHJlblZpZXdzLnVwZGF0ZSh0aGlzLm1vZGVsLmdldCgiY2hpbGRyZW4iKSksdGhpcy5wV2lkZ2V0LmN1cnJlbnRJbmRleD10aGlzLm1vZGVsLmdldCgic2VsZWN0ZWRfaW5kZXgiKSx0aGlzLnVwZGF0aW5nVGFicz0hMX0sZS5wcm90b3R5cGUuYWRkQ2hpbGRWaWV3PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tb2RlbC5nZXQoIl90aXRsZXMiKVtlXXx8IiIsaT10aGlzLnBXaWRnZXQscj1uZXcgYy5XaWRnZXQ7cmV0dXJuIHIudGl0bGUubGFiZWw9bixpLmFkZFdpZGdldChyKSx0aGlzLmNyZWF0ZV9jaGlsZF92aWV3KHQpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9dC5wV2lkZ2V0O2UudGl0bGUubGFiZWw9ci50aXRsZS5sYWJlbCxlLnRpdGxlLmNsb3NhYmxlPSExO3ZhciBuPWguQXJyYXlFeHQuZmlyc3RJbmRleE9mKGkud2lkZ2V0cyxyKTtyZXR1cm4gaS5pbnNlcnRXaWRnZXQobisxLGUpLHIuZGlzcG9zZSgpLHR9KS5jYXRjaChmLnJlamVjdCgiQ291bGQgbm90IGFkZCBjaGlsZCB2aWV3IHRvIGJveCIsITApKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlU2VsZWN0ZWRJbmRleCgpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS51cGRhdGVUaXRsZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldCgiX3RpdGxlcyIpfHx7fTtoLmVhY2godGhpcy5wV2lkZ2V0LndpZGdldHMsZnVuY3Rpb24oZSxuKXtlLnRpdGxlLmxhYmVsPXRbbl18fCIifSl9LGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGVkSW5kZXg9ZnVuY3Rpb24oKXt0aGlzLnBXaWRnZXQuY3VycmVudEluZGV4PXRoaXMubW9kZWwuZ2V0KCJzZWxlY3RlZF9pbmRleCIpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmNoaWxkcmVuVmlld3M9bnVsbCx0LnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuX29uVGFiQ2hhbmdlZD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLnVwZGF0aW5nVGFicyl7dmFyIG49ZS5jdXJyZW50SW5kZXg7dGhpcy5tb2RlbC5zZXQoInNlbGVjdGVkX2luZGV4IiwtMT09PW4/bnVsbDpuKSx0aGlzLnRvdWNoKCl9fSxlLnByb3RvdHlwZS5fb25UYWJNb3ZlZD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJjaGlsZHJlbiIpLnNsaWNlKCk7aC5BcnJheUV4dC5tb3ZlKG4sZS5mcm9tSW5kZXgsZS50b0luZGV4KSx0aGlzLm1vZGVsLnNldCgiY2hpbGRyZW4iLG4pLHRoaXMudG91Y2goKX0sZX0oby5ET01XaWRnZXRWaWV3KTtlLlRhYlZpZXc9d30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxyPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfXx8ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWkodCxlKSx0LnByb3RvdHlwZT1udWxsPT09ZT9PYmplY3QuY3JlYXRlKGUpOihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgbil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89big1KSxzPW4oMTEpLGE9big5KSx1PW4oMzkpLGM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5fd2lkZ2V0UmVtb3ZlZD1uZXcgcy5TaWduYWwoZSksZX1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwid2lkZ2V0UmVtb3ZlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93aWRnZXRSZW1vdmVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm9uQ2hpbGRSZW1vdmVkPWZ1bmN0aW9uKHQpe3RoaXMuX3dpZGdldFJlbW92ZWQuZW1pdCh0LmNoaWxkKX0sZX0odS5QYW5lbCk7ZS5FdmVudGVkUGFuZWw9Yzt2YXIgaD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj10LmNhbGwodGhpcyl8fHRoaXM7bi5fY3VycmVudENoYW5nZWQ9bmV3IHMuU2lnbmFsKG4pLG4uYWRkQ2xhc3MoInAtVGFiUGFuZWwiKSxuLnRhYkJhcj1uZXcgdS5UYWJCYXIoZSksbi50YWJCYXIuYWRkQ2xhc3MoInAtVGFiUGFuZWwtdGFiQmFyIiksbi50YWJDb250ZW50cz1uZXcgYyxuLnRhYkNvbnRlbnRzLmFkZENsYXNzKCJwLVRhYlBhbmVsLXRhYkNvbnRlbnRzIiksbi50YWJCYXIudGFiTW92ZWQuY29ubmVjdChuLl9vblRhYk1vdmVkLG4pLG4udGFiQmFyLmN1cnJlbnRDaGFuZ2VkLmNvbm5lY3Qobi5fb25DdXJyZW50Q2hhbmdlZCxuKSxuLnRhYkJhci50YWJDbG9zZVJlcXVlc3RlZC5jb25uZWN0KG4uX29uVGFiQ2xvc2VSZXF1ZXN0ZWQsbiksbi50YWJCYXIudGFiQWN0aXZhdGVSZXF1ZXN0ZWQuY29ubmVjdChuLl9vblRhYkFjdGl2YXRlUmVxdWVzdGVkLG4pLG4udGFiQ29udGVudHMud2lkZ2V0UmVtb3ZlZC5jb25uZWN0KG4uX29uV2lkZ2V0UmVtb3ZlZCxuKTt2YXIgaT1uZXcgdS5QYW5lbExheW91dDtyZXR1cm4gaS5hZGRXaWRnZXQobi50YWJCYXIpLGkuYWRkV2lkZ2V0KG4udGFiQ29udGVudHMpLG4ubGF5b3V0PWksbn1yZXR1cm4gcihlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudENoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZWR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjdXJyZW50SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRhYkJhci5jdXJyZW50SW5kZXg7cmV0dXJuLTE9PT10P251bGw6dH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLmN1cnJlbnRJbmRleD1udWxsPT09dD8tMTp0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY3VycmVudFdpZGdldCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMudGFiQmFyLmN1cnJlbnRUaXRsZTtyZXR1cm4gdD90Lm93bmVyOm51bGx9LHNldDpmdW5jdGlvbih0KXt0aGlzLnRhYkJhci5jdXJyZW50VGl0bGU9dD90LnRpdGxlOm51bGx9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ0YWJzTW92YWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhYkJhci50YWJzTW92YWJsZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudGFiQmFyLnRhYnNNb3ZhYmxlPXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFiQ29udGVudHMud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hZGRXaWRnZXQ9ZnVuY3Rpb24odCl7dGhpcy5pbnNlcnRXaWRnZXQodGhpcy53aWRnZXRzLmxlbmd0aCx0KX0sZS5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0PWZ1bmN0aW9uKHQsZSl7ZSE9PXRoaXMuY3VycmVudFdpZGdldCYmZS5oaWRlKCksdGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQodCxlKSx0aGlzLnRhYkJhci5pbnNlcnRUYWIodCxlLnRpdGxlKX0sZS5wcm90b3R5cGUuX29uQ3VycmVudENoYW5nZWQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByZXZpb3VzSW5kZXgsaT1lLnByZXZpb3VzVGl0bGUscj1lLmN1cnJlbnRJbmRleCxzPWUuY3VycmVudFRpdGxlLHU9aT9pLm93bmVyOm51bGwsYz1zP3Mub3duZXI6bnVsbDt1JiZ1LmhpZGUoKSxjJiZjLnNob3coKSx0aGlzLl9jdXJyZW50Q2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNXaWRnZXQ6dSxjdXJyZW50SW5kZXg6cixjdXJyZW50V2lkZ2V0OmN9KSwoYS5QbGF0Zm9ybS5JU19FREdFfHxhLlBsYXRmb3JtLklTX0lFKSYmby5NZXNzYWdlTG9vcC5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25UYWJBY3RpdmF0ZVJlcXVlc3RlZD1mdW5jdGlvbih0LGUpe2UudGl0bGUub3duZXIuYWN0aXZhdGUoKX0sZS5wcm90b3R5cGUuX29uVGFiQ2xvc2VSZXF1ZXN0ZWQ9ZnVuY3Rpb24odCxlKXtlLnRpdGxlLm93bmVyLmNsb3NlKCl9LGUucHJvdG90eXBlLl9vblRhYk1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJDb250ZW50cy5pbnNlcnRXaWRnZXQoZS50b0luZGV4LGUudGl0bGUub3duZXIpfSxlLnByb3RvdHlwZS5fb25XaWRnZXRSZW1vdmVkPWZ1bmN0aW9uKHQsZSl7dGhpcy50YWJCYXIucmVtb3ZlVGFiKGUudGl0bGUpfSxlfSh1LldpZGdldCk7ZS5UYWJQYW5lbD1ofSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciBpLHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0W25dPWVbbl0pfSxmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9aSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1uKDIpLHM9bigxMSksYT1uKDM5KSx1PW4oMzU3KSxjPSJwLUNvbGxhcHNlIixoPSJwLUNvbGxhcHNlLWhlYWRlciIsbD0icC1Db2xsYXBzZS1jb250ZW50cyIsZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO24uX2NvbGxhcHNlQ2hhbmdlZD1uZXcgcy5TaWduYWwobiksbi5hZGRDbGFzcyhjKSxuLl9oZWFkZXI9bmV3IGEuV2lkZ2V0LG4uX2hlYWRlci5hZGRDbGFzcyhoKSxuLl9oZWFkZXIubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbiksbi5fY29udGVudD1uZXcgYS5QYW5lbCxuLl9jb250ZW50LmFkZENsYXNzKGwpO3ZhciBpPW5ldyBhLlBhbmVsTGF5b3V0O3JldHVybiBuLmxheW91dD1pLGkuYWRkV2lkZ2V0KG4uX2hlYWRlciksaS5hZGRXaWRnZXQobi5fY29udGVudCksZS53aWRnZXQmJihuLndpZGdldD1lLndpZGdldCksbi5jb2xsYXBzZWQ9ITEsbn1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmlzRGlzcG9zZWR8fCh0LnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyksdGhpcy5faGVhZGVyPW51bGwsdGhpcy5fd2lkZ2V0PW51bGwsdGhpcy5fY29udGVudD1udWxsKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ3aWRnZXQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2lkZ2V0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fd2lkZ2V0O2UmJihlLmRpc3Bvc2VkLmRpc2Nvbm5lY3QodGhpcy5fb25DaGlsZERpc3Bvc2VkLHRoaXMpLGUudGl0bGUuY2hhbmdlZC5kaXNjb25uZWN0KHRoaXMuX29uVGl0bGVDaGFuZ2VkLHRoaXMpLGUucGFyZW50PW51bGwpLHRoaXMuX3dpZGdldD10LHQuZGlzcG9zZWQuY29ubmVjdCh0aGlzLl9vbkNoaWxkRGlzcG9zZWQsdGhpcyksdC50aXRsZS5jaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25UaXRsZUNoYW5nZWQsdGhpcyksdGhpcy5fb25UaXRsZUNoYW5nZWQodC50aXRsZSksdGhpcy5fY29udGVudC5hZGRXaWRnZXQodCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuX2NvbGxhcHNlZCYmKHQ/dGhpcy5fY29sbGFwc2UoKTp0aGlzLl91bmNvbGxhcHNlKCkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZUNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VDaGFuZ2VkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMCx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LmhpZGUoKSx0aGlzLnJlbW92ZUNsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5fdW5jb2xsYXBzZT1mdW5jdGlvbigpe3RoaXMuX2NvbGxhcHNlZD0hMSx0aGlzLl9jb250ZW50JiZ0aGlzLl9jb250ZW50LnNob3coKSx0aGlzLmFkZENsYXNzKCJwLUNvbGxhcHNlLW9wZW4iKSx0aGlzLl9jb2xsYXBzZUNoYW5nZWQuZW1pdCh2b2lkIDApfSxlLnByb3RvdHlwZS5oYW5kbGVFdmVudD1mdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNsaWNrIjp0aGlzLl9ldnRDbGljayh0KX19LGUucHJvdG90eXBlLl9ldnRDbGljaz1mdW5jdGlvbih0KXt0aGlzLnRvZ2dsZSgpfSxlLnByb3RvdHlwZS5fb25UaXRsZUNoYW5nZWQ9ZnVuY3Rpb24odCl7dGhpcy5faGVhZGVyLm5vZGUudGV4dENvbnRlbnQ9dGhpcy5fd2lkZ2V0LnRpdGxlLmxhYmVsfSxlLnByb3RvdHlwZS5fb25DaGlsZERpc3Bvc2VkPWZ1bmN0aW9uKHQpe3RoaXMuZGlzcG9zZSgpfSxlfShhLldpZGdldCk7ZS5Db2xsYXBzZT1kO3ZhciBmPSJwLUFjY29yZGlvbiIscD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciBuPXQuY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBuLl9zZWxlY3Rpb249bmV3IHUuU2VsZWN0aW9uKG4ud2lkZ2V0cyksbi5fc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZWQuY29ubmVjdChuLl9vblNlbGVjdGlvbkNoYW5nZWQsbiksbi5hZGRDbGFzcyhmKSxufXJldHVybiByKGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJjb2xsYXBzZVdpZGdldHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQud2lkZ2V0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInNlbGVjdGlvbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWxlY3Rpb259LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gby5BcnJheUV4dC5maW5kRmlyc3RJbmRleCh0aGlzLmNvbGxhcHNlV2lkZ2V0cyxmdW5jdGlvbihlKXtyZXR1cm4gZS53aWRnZXQ9PT10fSl9LGUucHJvdG90eXBlLmFkZFdpZGdldD1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl93cmFwV2lkZ2V0KGUpO3JldHVybiBuLmNvbGxhcHNlZD0hMCx0LnByb3RvdHlwZS5hZGRXaWRnZXQuY2FsbCh0aGlzLG4pLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQodGhpcy53aWRnZXRzLmxlbmd0aC0xLG4pLG59LGUucHJvdG90eXBlLmluc2VydFdpZGdldD1mdW5jdGlvbihlLG4pe3ZhciBpPXRoaXMuX3dyYXBXaWRnZXQobik7aS5jb2xsYXBzZWQ9ITAsdC5wcm90b3R5cGUuaW5zZXJ0V2lkZ2V0LmNhbGwodGhpcyxlLGkpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQoZSxpKX0sZS5wcm90b3R5cGUucmVtb3ZlV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5kZXhPZih0KTtpZihlPj0wKXt2YXIgbj10aGlzLmNvbGxhcHNlV2lkZ2V0c1tlXTt0LnBhcmVudD1udWxsLG4uZGlzcG9zZSgpLHRoaXMuX3NlbGVjdGlvbi5hZGp1c3RTZWxlY3Rpb25Gb3JSZW1vdmUoZSxudWxsKX19LGUucHJvdG90eXBlLl93cmFwV2lkZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBkKHt3aWRnZXQ6dH0pO3JldHVybiBlLmFkZENsYXNzKCJwLUFjY29yZGlvbi1jaGlsZCIpLGUuY29sbGFwc2VDaGFuZ2VkLmNvbm5lY3QodGhpcy5fb25Db2xsYXBzZUNoYW5nZSx0aGlzKSxlfSxlLnByb3RvdHlwZS5fb25Db2xsYXBzZUNoYW5nZT1mdW5jdGlvbih0KXt0LmNvbGxhcHNlZD90aGlzLl9zZWxlY3Rpb24udmFsdWU9PT10JiZ0LmNvbGxhcHNlZCYmKHRoaXMuX3NlbGVjdGlvbi52YWx1ZT1udWxsKTp0aGlzLl9zZWxlY3Rpb24udmFsdWU9dH0sZS5wcm90b3R5cGUuX29uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3ZhciBuPWUucHJldmlvdXNWYWx1ZSxpPWUuY3VycmVudFZhbHVlO24mJihuLmNvbGxhcHNlZD0hMCxuLnJlbW92ZUNsYXNzKCJwLUFjY29yZGlvbi1jaGlsZC1hY3RpdmUiKSksaSYmKGkuY29sbGFwc2VkPSExLGkuYWRkQ2xhc3MoInAtQWNjb3JkaW9uLWNoaWxkLWFjdGl2ZSIpKX0sZX0oYS5QYW5lbCk7ZS5BY2NvcmRpb249cH0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9bigyKSxyPW4oMTEpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuX2FycmF5PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZD1uZXcgci5TaWduYWwodGhpcyksdGhpcy5fYXJyYXk9dCx0aGlzLl9pbnNlcnRCZWhhdmlvcj1lLmluc2VydEJlaGF2aW9yfHwic2VsZWN0LWl0ZW0taWYtbmVlZGVkIix0aGlzLl9yZW1vdmVCZWhhdmlvcj1lLnJlbW92ZUJlaGF2aW9yfHwic2VsZWN0LWl0ZW0tYWZ0ZXIifXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInNlbGVjdGlvbkNoYW5nZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JTZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleCxuPXRoaXMudmFsdWU7aWYodD09PWUpe3RoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMuX3ByZXZpb3VzVmFsdWU9bnVsbCxuIT09aSYmdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OmUscHJldmlvdXNWYWx1ZTpuLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTppfSl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbmRleD1udWxsPT09dD9udWxsOmkuQXJyYXlFeHQuZmlyc3RJbmRleE9mKHRoaXMuX2FycmF5LHQpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiaW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faW5kZXh9LHNldDpmdW5jdGlvbih0KXt2YXIgZTtpZihudWxsIT09dD8oKGU9TWF0aC5mbG9vcih0KSk8MHx8ZT49dGhpcy5fYXJyYXkubGVuZ3RoKSYmKGU9bnVsbCk6ZT1udWxsLHRoaXMuX2luZGV4IT09ZSl7dmFyIG49dGhpcy5faW5kZXgsaT10aGlzLl92YWx1ZTt0aGlzLl9pbmRleD1lLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSx0aGlzLl9wcmV2aW91c1ZhbHVlPWksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4Om4scHJldmlvdXNWYWx1ZTppLGN1cnJlbnRJbmRleDplLGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImluc2VydEJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2VydEJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5faW5zZXJ0QmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInJlbW92ZUJlaGF2aW9yIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZUJlaGF2aW9yfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVtb3ZlQmVoYXZpb3I9dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JJbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl92YWx1ZSxpPXRoaXMuX2luZGV4LHI9dGhpcy5faW5zZXJ0QmVoYXZpb3I7aWYoInNlbGVjdC1pdGVtIj09PXJ8fCJzZWxlY3QtaXRlbS1pZi1uZWVkZWQiPT09ciYmbnVsbD09PWkpcmV0dXJuIHRoaXMuX2luZGV4PXQsdGhpcy5fdmFsdWU9ZSx0aGlzLl9wcmV2aW91c1ZhbHVlPW4sdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6aSxwcmV2aW91c1ZhbHVlOm4sY3VycmVudEluZGV4OnQsY3VycmVudFZhbHVlOmV9KTtpPj10JiZ0aGlzLl9pbmRleCsrfSx0LnByb3RvdHlwZS5hZGp1c3RTZWxlY3Rpb25Gb3JNb3ZlPWZ1bmN0aW9uKHQsZSl7dGhpcy5faW5kZXg9PT10P3RoaXMuX2luZGV4PWU6dGhpcy5faW5kZXg8dCYmdGhpcy5faW5kZXg+PWU/dGhpcy5faW5kZXgrKzp0aGlzLl9pbmRleD50JiZ0aGlzLl9pbmRleDw9ZSYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleCxlPXRoaXMuX3ZhbHVlO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsbnVsbCE9PXQmJnRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuZW1pdCh7cHJldmlvdXNJbmRleDp0LHByZXZpb3VzVmFsdWU6ZSxjdXJyZW50SW5kZXg6dGhpcy5faW5kZXgsY3VycmVudFZhbHVlOnRoaXMuX3ZhbHVlfSl9LHQucHJvdG90eXBlLmFkanVzdFNlbGVjdGlvbkZvclJlbW92ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2luZGV4LGk9dGhpcy5fcmVtb3ZlQmVoYXZpb3I7aWYobj09PXQpe2lmKDA9PT10aGlzLl9hcnJheS5sZW5ndGgpcmV0dXJuIHRoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdm9pZCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoe3ByZXZpb3VzSW5kZXg6dCxwcmV2aW91c1ZhbHVlOmUsY3VycmVudEluZGV4OnRoaXMuX2luZGV4LGN1cnJlbnRWYWx1ZTp0aGlzLl92YWx1ZX0pO2lmKCJzZWxlY3QtaXRlbS1hZnRlciI9PT1pKXJldHVybiB0aGlzLl9pbmRleD1NYXRoLm1pbih0LHRoaXMuX2FycmF5Lmxlbmd0aC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LWl0ZW0tYmVmb3JlIj09PWkpcmV0dXJuIHRoaXMuX2luZGV4PU1hdGgubWF4KDAsdC0xKSx0aGlzLl91cGRhdGVTZWxlY3RlZFZhbHVlKCksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KTtpZigic2VsZWN0LXByZXZpb3VzLWl0ZW0iPT09aSlyZXR1cm4gdGhpcy5fcHJldmlvdXNWYWx1ZT90aGlzLnZhbHVlPXRoaXMuX3ByZXZpb3VzVmFsdWU6KHRoaXMuX2luZGV4PU1hdGgubWluKHQsdGhpcy5fYXJyYXkubGVuZ3RoLTEpLHRoaXMuX3VwZGF0ZVNlbGVjdGVkVmFsdWUoKSksdGhpcy5fcHJldmlvdXNWYWx1ZT1udWxsLHZvaWQgdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy52YWx1ZX0pO3RoaXMuX2luZGV4PW51bGwsdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHtwcmV2aW91c0luZGV4OnQscHJldmlvdXNWYWx1ZTplLGN1cnJlbnRJbmRleDp0aGlzLl9pbmRleCxjdXJyZW50VmFsdWU6dGhpcy5fdmFsdWV9KX1lbHNlIG4+dCYmdGhpcy5faW5kZXgtLX0sdC5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGVkVmFsdWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbmRleDt0aGlzLl92YWx1ZT1udWxsIT09dD90aGlzLl9hcnJheVt0XTpudWxsfSx0fSgpO2UuU2VsZWN0aW9uPW99LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPW4oMTIpLHM9bigyMyksYT1uKDE2KSx1PW4oNiksYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse3ZhbHVlOiIiLGRpc2FibGVkOiExLHBsYWNlaG9sZGVyOiLigIsiLF9tb2RlbF9uYW1lOiJTdHJpbmdNb2RlbCJ9KX0sZX0oby5Db3JlRGVzY3JpcHRpb25Nb2RlbCk7ZS5TdHJpbmdNb2RlbD1jO3ZhciBoPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiSFRNTFZpZXciLF9tb2RlbF9uYW1lOiJIVE1MTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1vZGVsPWg7dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZW5kZXIuY2FsbCh0aGlzKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoImp1cHl0ZXItd2lkZ2V0cyIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWlubGluZS1oYm94IiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbCIpLHRoaXMuY29udGVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWwtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTFZpZXc9bDt2YXIgZD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IkhUTUxNYXRoVmlldyIsX21vZGVsX25hbWU6IkhUTUxNYXRoTW9kZWwifSl9LGV9KGMpO2UuSFRNTE1hdGhNb2RlbD1kO3ZhciBmPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJqdXB5dGVyLXdpZGdldHMiKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC1pbmxpbmUtaGJveCIpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgid2lkZ2V0LWh0bWxtYXRoIiksdGhpcy5jb250ZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuY29udGVudC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaHRtbG1hdGgtY29udGVudCIpLHRoaXMuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50KSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LmlubmVySFRNTD10aGlzLm1vZGVsLmdldCgidmFsdWUiKSx0aGlzLnR5cGVzZXQodGhpcy5jb250ZW50KSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuSFRNTE1hdGhWaWV3PWY7dmFyIHA9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJMYWJlbFZpZXciLF9tb2RlbF9uYW1lOiJMYWJlbE1vZGVsIn0pfSxlfShjKTtlLkxhYmVsTW9kZWw9cDt2YXIgbT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtbGFiZWwiKSx0aGlzLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlc2V0KHRoaXMuZWwsdGhpcy5tb2RlbC5nZXQoInZhbHVlIikpLHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5MYWJlbFZpZXc9bTt2YXIgZz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLmRlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZXh0ZW5kKHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse192aWV3X25hbWU6IlRleHRhcmVhVmlldyIsX21vZGVsX25hbWU6IlRleHRhcmVhTW9kZWwiLHJvd3M6bnVsbCxjb250aW51b3VzX3VwZGF0ZTohMH0pfSxlfShjKTtlLlRleHRhcmVhTW9kZWw9Zzt2YXIgdj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIG51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0YXJlYSIpLHRoaXMudGV4dGJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLHRoaXMudGV4dGJveC5zZXRBdHRyaWJ1dGUoInJvd3MiLCI1IiksdGhpcy50ZXh0Ym94LmlkPXRoaXMubGFiZWwuaHRtbEZvcj1hLnV1aWQoKSx0aGlzLmVsLmFwcGVuZENoaWxkKHRoaXMudGV4dGJveCksdGhpcy51cGRhdGUoKSx0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsImNoYW5nZTpwbGFjZWhvbGRlciIsZnVuY3Rpb24odCxlLG4pe3RoaXMudXBkYXRlX3BsYWNlaG9sZGVyKGUpfSksdGhpcy51cGRhdGVfcGxhY2Vob2xkZXIoKX0sZS5wcm90b3R5cGUudXBkYXRlX3BsYWNlaG9sZGVyPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5tb2RlbC5nZXQoInBsYWNlaG9sZGVyIiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQudG9TdHJpbmcoKSl9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lfHxlLnVwZGF0ZWRfdmlldyE9dGhpcyl7dGhpcy50ZXh0Ym94LnZhbHVlPXRoaXMubW9kZWwuZ2V0KCJ2YWx1ZSIpO3ZhciBuPXRoaXMubW9kZWwuZ2V0KCJyb3dzIik7bnVsbD09PW4mJihuPSIiKSx0aGlzLnRleHRib3guc2V0QXR0cmlidXRlKCJyb3dzIixuKSx0aGlzLnRleHRib3guZGlzYWJsZWQ9dGhpcy5tb2RlbC5nZXQoImRpc2FibGVkIil9cmV0dXJuIHQucHJvdG90eXBlLnVwZGF0ZS5jYWxsKHRoaXMpfSxlLnByb3RvdHlwZS5ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ImtleWRvd24gaW5wdXQiOiJoYW5kbGVLZXlEb3duIiwia2V5cHJlc3MgaW5wdXQiOiJoYW5kbGVLZXlwcmVzcyIsImlucHV0IHRleHRhcmVhIjoiaGFuZGxlQ2hhbmdpbmciLCJjaGFuZ2UgdGV4dGFyZWEiOiJoYW5kbGVDaGFuZ2VkIn19LGUucHJvdG90eXBlLmhhbmRsZUtleURvd249ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlS2V5cHJlc3M9ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdpbmc9ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5nZXQoImNvbnRpbnVvdXNfdXBkYXRlIikmJnRoaXMuaGFuZGxlQ2hhbmdlZCh0KX0sZS5wcm90b3R5cGUuaGFuZGxlQ2hhbmdlZD1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLnNldCgidmFsdWUiLHQudGFyZ2V0LnZhbHVlLHt1cGRhdGVkX3ZpZXc6dGhpc30pLHRoaXMudG91Y2goKX0sZX0ocy5EZXNjcmlwdGlvblZpZXcpO2UuVGV4dGFyZWFWaWV3PXY7dmFyIGI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiB1LmV4dGVuZCh0LnByb3RvdHlwZS5kZWZhdWx0cy5jYWxsKHRoaXMpLHtfdmlld19uYW1lOiJUZXh0VmlldyIsX21vZGVsX25hbWU6IlRleHRNb2RlbCIsY29udGludW91c191cGRhdGU6ITB9KX0sZX0oYyk7ZS5UZXh0TW9kZWw9Yjt2YXIgeT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9bnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBlLmlucHV0VHlwZT0idGV4dCIsZX1yZXR1cm4gcihlLHQpLGUucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMpLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgianVweXRlci13aWRnZXRzIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJ3aWRnZXQtaW5saW5lLWhib3giKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoIndpZGdldC10ZXh0IiksdGhpcy50ZXh0Ym94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgidHlwZSIsdGhpcy5pbnB1dFR5cGUpLHRoaXMudGV4dGJveC5pZD10aGlzLmxhYmVsLmh0bWxGb3I9YS51dWlkKCksdGhpcy5lbC5hcHBlbmRDaGlsZCh0aGlzLnRleHRib3gpLHRoaXMudXBkYXRlKCksdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6cGxhY2Vob2xkZXIiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLnVwZGF0ZV9wbGFjZWhvbGRlcihlKX0pLHRoaXMudXBkYXRlX3BsYWNlaG9sZGVyKCl9LGUucHJvdG90eXBlLnVwZGF0ZV9wbGFjZWhvbGRlcj1mdW5jdGlvbih0KXt0fHwodD10aGlzLm1vZGVsLmdldCgicGxhY2Vob2xkZXIiKSksdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLHQpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJmUudXBkYXRlZF92aWV3PT10aGlzfHwodGhpcy50ZXh0Ym94LnZhbHVlIT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSYmKHRoaXMudGV4dGJveC52YWx1ZT10aGlzLm1vZGVsLmdldCgidmFsdWUiKSksdGhpcy50ZXh0Ym94LmRpc2FibGVkPXRoaXMubW9kZWwuZ2V0KCJkaXNhYmxlZCIpKSx0LnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzKX0sZS5wcm90b3R5cGUuZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJueyJrZXlkb3duIGlucHV0IjoiaGFuZGxlS2V5RG93biIsImtleXByZXNzIGlucHV0IjoiaGFuZGxlS2V5cHJlc3MiLCJpbnB1dCBpbnB1dCI6ImhhbmRsZUNoYW5naW5nIiwiY2hhbmdlIGlucHV0IjoiaGFuZGxlQ2hhbmdlZCJ9fSxlLnByb3RvdHlwZS5oYW5kbGVLZXlEb3duPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LGUucHJvdG90eXBlLmhhbmRsZUtleXByZXNzPWZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksMTM9PXQua2V5Q29kZSYmdGhpcy5zZW5kKHtldmVudDoic3VibWl0In0pfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2luZz1mdW5jdGlvbih0KXt0aGlzLm1vZGVsLmdldCgiY29udGludW91c191cGRhdGUiKSYmdGhpcy5oYW5kbGVDaGFuZ2VkKHQpfSxlLnByb3RvdHlwZS5oYW5kbGVDaGFuZ2VkPWZ1bmN0aW9uKHQpe3RoaXMubW9kZWwuc2V0KCJ2YWx1ZSIsdC50YXJnZXQudmFsdWUse3VwZGF0ZWRfdmlldzp0aGlzfSksdGhpcy50b3VjaCgpfSxlfShzLkRlc2NyaXB0aW9uVmlldyk7ZS5UZXh0Vmlldz15O3ZhciBfPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gbnVsbCE9PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKGUsdCksZS5wcm90b3R5cGUuZGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdS5leHRlbmQodC5wcm90b3R5cGUuZGVmYXVsdHMuY2FsbCh0aGlzKSx7X3ZpZXdfbmFtZToiUGFzc3dvcmRWaWV3IixfbW9kZWxfbmFtZToiUGFzc3dvcmRNb2RlbCJ9KX0sZX0oYik7ZS5QYXNzd29yZE1vZGVsPV87dmFyIHc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciBlPW51bGwhPT10JiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gZS5pbnB1dFR5cGU9InBhc3N3b3JkIixlfXJldHVybiByKGUsdCksZX0oeSk7ZS5QYXNzd29yZFZpZXc9d30sZnVuY3Rpb24odCl7dC5leHBvcnRzPXtuYW1lOiJAanVweXRlci13aWRnZXRzL2NvbnRyb2xzIix2ZXJzaW9uOiIxLjQuMiIsZGVzY3JpcHRpb246Ikp1cHl0ZXIgaW50ZXJhY3RpdmUgd2lkZ2V0cyIsYXV0aG9yOiJQcm9qZWN0IEp1cHl0ZXIiLGxpY2Vuc2U6IkJTRC0zLUNsYXVzZSIsbWFpbjoibGliL2luZGV4LmpzIix0eXBpbmdzOiJsaWIvaW5kZXguZC50cyIscmVwb3NpdG9yeTp7dHlwZToiZ2l0Iix1cmw6Imh0dHBzOi8vZ2l0aHViLmNvbS9qdXB5dGVyLXdpZGdldHMvaXB5d2lkZ2V0cy5naXQifSxmaWxlczpbImxpYi8qKi8qLmQudHMiLCJsaWIvKiovKi5qcyIsImNzcy8qLmNzcyIsImRpc3QvIl0sc2NyaXB0czp7ImNsZWFuOnNyYyI6InJpbXJhZiBsaWIiLGNsZWFuOiJucG0gcnVuIGNsZWFuOnNyYyIsImJ1aWxkOnRlc3QiOiJ0c2MgLS1wcm9qZWN0IHRlc3Qvc3JjICYmIHdlYnBhY2sgLS1jb25maWcgdGVzdC93ZWJwYWNrLmNvbmYuanMiLCJidWlsZDpzcmMiOiJ0c2MgLS1wcm9qZWN0IHNyYyIsImJ1aWxkOmNzcyI6InBvc3Rjc3MgLS11c2UgcG9zdGNzcy1pbXBvcnQgLS11c2UgcG9zdGNzcy1jc3NuZXh0IC1vIGNzcy93aWRnZXRzLmJ1aWx0LmNzcyBjc3Mvd2lkZ2V0cy5jc3MiLGJ1aWxkOiJucG0gcnVuIGJ1aWxkOnNyYyAmJiBucG0gcnVuIGJ1aWxkOmNzcyIsbGludDoidHNsaW50IC0tcHJvamVjdCB0c2xpbnQuanNvbiAtLWZvcm1hdCBzdHlsaXNoIix0ZXN0OiJucG0gcnVuIHRlc3Q6dW5pdCIsInRlc3Q6Y292ZXJhZ2UiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYgd2VicGFjayAtLWNvbmZpZyB0ZXN0L3dlYnBhY2stY292LmNvbmYuanMgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS1jb3YuY29uZi5qcyIsInRlc3Q6dW5pdCI6Im5wbSBydW4gdGVzdDp1bml0OmZpcmVmb3ggJiYgbnBtIHJ1biB0ZXN0OnVuaXQ6Y2hyb21lIiwidGVzdDp1bml0OmRlZmF1bHQiOiJucG0gcnVuIGJ1aWxkOnRlc3QgJiYga2FybWEgc3RhcnQgdGVzdC9rYXJtYS5jb25mLmpzIC0tbG9nLWxldmVsIGRlYnVnIiwidGVzdDp1bml0OmZpcmVmb3giOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9RmlyZWZveCIsInRlc3Q6dW5pdDpjaHJvbWUiOiJucG0gcnVuIHRlc3Q6dW5pdDpkZWZhdWx0IC0tIC0tYnJvd3NlcnM9Q2hyb21lIiwidGVzdDp1bml0OmllIjoibnBtIHJ1biB0ZXN0OnVuaXQ6ZGVmYXVsdCAtLSAtLWJyb3dzZXJzPUlFIixwcmVwdWJsaXNoOiJucG0gcnVuIGNsZWFuICYmIG5wbSBydW4gYnVpbGQifSxkZXZEZXBlbmRlbmNpZXM6eyJAanVweXRlcmxhYi9zZXJ2aWNlcyI6Il4yLjAuMCB8fCBeMy4wLjAiLCJAdHlwZXMvZXhwZWN0LmpzIjoiXjAuMy4yOSIsIkB0eXBlcy9tYXRoamF4IjoiMC4wLjMxIiwiQHR5cGVzL21vY2hhIjoiXjIuMi40MSIsIkB0eXBlcy9ub2RlIjoiXjguMC4xIixjaGFpOiJeNC4wLjAiLCJjc3MtbG9hZGVyIjoiXjAuMjguNCIsImV4cGVjdC5qcyI6Il4wLjMuMSIsImZpbGUtbG9hZGVyIjoiXjAuMTEuMiIsImlzdGFuYnVsLWluc3RydW1lbnRlci1sb2FkZXIiOiJeMi4wLjAiLCJqc29uLWxvYWRlciI6Il4wLjUuNCIsa2FybWE6Il4xLjYuMCIsImthcm1hLWNocm9tZS1sYXVuY2hlciI6Il4yLjAuMCIsImthcm1hLWNvdmVyYWdlIjoiXjEuMC4wIiwia2FybWEtZmlyZWZveC1sYXVuY2hlciI6Il4xLjAuMSIsImthcm1hLWllLWxhdW5jaGVyIjoiXjEuMC4wIiwia2FybWEtbW9jaGEiOiJeMS4zLjAiLCJrYXJtYS1tb2NoYS1yZXBvcnRlciI6Il4yLjIuMyIsImthcm1hLXdlYnBhY2siOiJeMi4wLjMiLG1vY2hhOiJeMy4zLjAiLCJucG0tcnVuLWFsbCI6Il4xLjUuMSIsInBvc3Rjc3MtY2xpIjoiXjQuMS4wIiwicG9zdGNzcy1jc3NuZXh0IjoiXjMuMC4yIiwicG9zdGNzcy1pbXBvcnQiOiJeMTAuMC4wIiwicG9zdGNzcy1sb2FkZXIiOiJeMi4wLjYiLHJpbXJhZjoiXjIuNi4xIixzaW5vbjoiXjIuMS4wIiwic2lub24tY2hhaSI6Il4yLjExLjAiLCJzdHlsZS1sb2FkZXIiOiJeMC4xOC4xIix0c2xpbnQ6Il41LjguMCIsdHlwZXNjcmlwdDoifjIuOS4yIiwidXJsLWxvYWRlciI6Il4wLjUuOSIsd2VicGFjazoiXjMuNS41In0sZGVwZW5kZW5jaWVzOnsiQGp1cHl0ZXItd2lkZ2V0cy9iYXNlIjoiXjEuMi4yIiwiQHBob3NwaG9yL2FsZ29yaXRobSI6Il4xLjEuMCIsIkBwaG9zcGhvci9kb211dGlscyI6Il4xLjEuMCIsIkBwaG9zcGhvci9tZXNzYWdpbmciOiJeMS4yLjEiLCJAcGhvc3Bob3Ivc2lnbmFsaW5nIjoiXjEuMi4wIiwiQHBob3NwaG9yL3dpZGdldHMiOiJeMS4zLjAiLCJkMy1mb3JtYXQiOiJeMS4zLjAiLGpxdWVyeToiXjMuMS4xIiwianF1ZXJ5LXVpIjoiXjEuMTIuMSIsdW5kZXJzY29yZToiXjEuOC4zIn0sZ2l0SGVhZDoiN2ZkMTVjMDZmMGE2MTEzOGVhYzQ0YWMzNGQwMTQ4YmU2N2IzYWQ2ZiIsX3Jlc29sdmVkOiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AanVweXRlci13aWRnZXRzL2NvbnRyb2xzLy0vY29udHJvbHMtMS40LjIudGd6IixfaW50ZWdyaXR5OiJzaGE1MTItd2o5Nk5UMW1ONCs3enpMMzRoTkhNTFlkYkRzSG0yVVh4a1FKcjdVb2xlUytVMnp6Z3ZSU2tCNmlqRDl0aTI1ZjlDWCtQblhUZU9RN2lSSEdQOERCaHc9PSIsX2Zyb206IkBqdXB5dGVyLXdpZGdldHMvY29udHJvbHNAMS40LjIifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHQpZS5oYXNPd25Qcm9wZXJ0eShuKXx8KGVbbl09dFtuXSl9KG4oMzYxKSl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIGkscj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGk9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSl9LGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1pKHQsZSksdC5wcm90b3R5cGU9bnVsbD09PWU/T2JqZWN0LmNyZWF0ZShlKToobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IG4pfSksbz10aGlzJiZ0aGlzLl9fYXNzaWdufHxPYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKWZvcih2YXIgciBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz1uKDgpO2UuT1VUUFVUX1dJREdFVF9WRVJTSU9OPSIxLjAuMCI7dmFyIGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIobix0KSxuLnByb3RvdHlwZS5kZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBvKHt9LHQucHJvdG90eXBlLmRlZmF1bHRzLmNhbGwodGhpcykse19tb2RlbF9uYW1lOiJPdXRwdXRNb2RlbCIsX3ZpZXdfbmFtZToiT3V0cHV0VmlldyIsX21vZGVsX21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF92aWV3X21vZHVsZToiQGp1cHl0ZXItd2lkZ2V0cy9vdXRwdXQiLF9tb2RlbF9tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTixfdmlld19tb2R1bGVfdmVyc2lvbjplLk9VVFBVVF9XSURHRVRfVkVSU0lPTn0pfSxufShzLkRPTVdpZGdldE1vZGVsKTtlLk91dHB1dE1vZGVsPWE7dmFyIHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBudWxsIT09dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIoZSx0KSxlfShzLkRPTVdpZGdldFZpZXcpO2UuT3V0cHV0Vmlldz11fV0pLmRlZmF1bHQpOw==", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "OK" + }, + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "ok": true, + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "status": 200, + "status_text": "OK" + } + }, + "base_uri": "https://localhost:8080/", + "height": 412 + } + }, + "cell_type": "code", + "source": [ + "sn.fit(X_scaled_train, Y_scaled_train, epochs=2000, learning_rate=0.015, display_loss=True)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "295f368eb26746a5aa0432d96285a217", + "version_minor": 0, + "version_major": 2 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=2000), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "\n" + ], + "name": "stdout" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "x2_3qi20Bllc", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_pred_train = sn.predict(X_scaled_train)\n", + "Y_pred_test = sn.predict(X_scaled_test)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "H-l0bwy8B_nI", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "Y_pred_binarised_train = (Y_pred_train > scaled_threshold).astype(\"int\").ravel()\n", + "Y_pred_binarised_test = (Y_pred_test > scaled_threshold).astype(\"int\").ravel()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "BaOF8bh1CN_O", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "accuracy_train = accuracy_score(Y_pred_binarised_train, Y_binarised_train)\n", + "accuracy_test = accuracy_score(Y_pred_binarised_test, Y_binarised_test)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "u9G6Tlb-CgBz", + "colab_type": "code", + "outputId": "fbde515d-1445-46b3-f430-242ba72da390", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + } + }, + "cell_type": "code", + "source": [ + "print(accuracy_train, accuracy_test)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.7333333333333333 0.7558139534883721\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "KYowEpZWCh6Z", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/machine_learning/ScalarBackpropagation.ipynb b/machine_learning/ScalarBackpropagation.ipynb new file mode 100644 index 0000000..0449dd8 --- /dev/null +++ b/machine_learning/ScalarBackpropagation.ipynb @@ -0,0 +1,2219 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zzM664z9NnfC" + }, + "source": [ + "**Outline**\n", + "1. Use generated data and classes from before\n", + "2. Code the back propagation algorithm for our first FF network - single weight and all weights\n", + "3. Visualize working of our first FF network\n", + "4. Code the back propagation algorithm for a larger FF network\n", + "5. Understand the iterative kernel within the back propagation algorithm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "MMkrXXWZQ42d" + }, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "JDe7l4fxQ6J9" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.colors\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import accuracy_score, mean_squared_error, log_loss\n", + "from tqdm import tqdm_notebook \n", + "import seaborn as sns\n", + "import imageio\n", + "from IPython.display import HTML\n", + "\n", + "\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.datasets import make_blobs" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "CuCO-2rqQ_zb" + }, + "outputs": [], + "source": [ + "my_cmap = matplotlib.colors.LinearSegmentedColormap.from_list(\"\", [\"red\",\"yellow\",\"green\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "O3JppMc9IIpU" + }, + "outputs": [], + "source": [ + "np.random.seed(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "1Yum3QoCRDku" + }, + "source": [ + "## Generate data" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "colab_type": "code", + "id": "0Shf39PcRCub", + "outputId": "1207f962-2fea-4a46-f12d-26c4ba28bbd8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1000, 2) (1000,)\n" + ] + } + ], + "source": [ + "data, labels = make_blobs(n_samples=1000, centers=4, n_features=2, random_state=0)\n", + "print(data.shape, labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "colab_type": "code", + "id": "TTbXyK2kReWT", + "outputId": "725dd02a-b8a5-4237-c08e-89215629710d" + }, + "outputs": [ + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(data[:,0], data[:,1], c=labels, cmap=my_cmap)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "NegH_BURRwep" + }, + "outputs": [], + "source": [ + "labels_orig = labels\n", + "labels = np.mod(labels_orig, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "colab_type": "code", + "id": "ep7RO9G6SaKj", + "outputId": "ec60914e-dfc9-44f1-fc7d-65d978f0a551" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAAFKCAYAAABcq1WoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXVg1OX/wF8Xy1s322AbNWJso7tD\nEJASMFARBAVMUAwMvj9bscVCFBFQGqS7uwZjY6wH6+66+v0xd+y4z91uAwbDz+svPk++79lx78/z\nPO+QaLVaLSIiIiIiIiINhvRuCyAiIiIiIvJfQ1S+IiIiIiIiDYyofEVERERERBoYUfmKiIiIiIg0\nMKLyFRERERERaWBE5SsiIiIiItLAyBtqoqysooaa6pZxdrYlL6/0botxXyOu8Z1FXN87i7i+d577\nYY3d3e2N1ok7XwHkctndFuG+R1zjO4u4vncWcX3vPPf7GovKV0REREREpIERla+IiIiIiEgDIypf\nERERERGRBkZUviIiIiIiIg2MqHxFREREREQaGFH5ioiIiIiINDCi8hUREREREWlgROUrIiIiIiLS\nwDRYhCsRkdtBqbKUD06+x9GUI5QqS2jr2o7nQl6gt0+fuy2aiIiIiNmIylek0aDVapm5eyq7k3bq\nyq4VJXExM4zfh6+gs1fXuyidiIiIiPmIx84ijYZDyQc4eH2/QXl6aRpLL/9yFyQSERERqR+i8hVp\nNJxJO0WlplKwLr4groGlEREREak/ovIVaTR4KryM1jlbOTegJCIiIiK3hqh8RRoNk9s8RhuXdgbl\ncomckc0fugsSiYiIiNQPUfmKNBqsZFYs6v81oe6dkCABwEvRhDkdX2JKu6fqNJZao2Znwnb+ilpB\nUWXhnRBXRERExCiitbNIo6Jbkx7sfHg/+5P2kl6axoMBo3Cxca3TGBtj1vHO0TfILMsE4P0T79He\nNYjRLcYyKfBRrOXWd0J0s9BqtSy59CN7knZRpCyilVMrng2eQ5B78F2TSURE5PYj0Wq12toaRUdH\nM3v2bKZOncqUKVNIS0tj/vz5qNVq3N3d+fzzz7G0tDQ5RlZW0W0T+k7j7m7fqORtjNytNd4cs5Hn\n9k5DrVUL1rd2DuSjPp/Rr+nABpasitcPzWVZxFK03Phv2cy+Gb89sIJgj1CzxxG/w3cWcX3vPPfD\nGru72xutq/XYubS0lPfff5+ePXvqyr799lsee+wxVq1ahZ+fH+vWrbs9koqI3EHUGjVvH3vdqOIF\niM67ytvH3kSpVjagZFUk5MezIXatnuIFuFZ0jR8vftfg8oiIiNw5alW+lpaWLFmyBA8PD13ZqVOn\nGDx4MAADBw7kxIkTd05CkXserVZLTG40V3IiMOMg5bah1qhRa4wr0ps5mnKYjNL0WttF5UayPmbN\nrYhWL3YmbqOgokCwLjInsoGlERERuZPUeucrl8uRy/WblZWV6Y6ZXV1dycrKujPSidzzHE0+wqen\nP+Bcxhk0Wg3BHqG81GnuHbU+vpx1iUVnP+VC5jmkSOjs1ZU3ur9DS6dWJvuVq8vNniOnLJtKdSUW\nUgskEsmtimwWztYuRutsLWwbRAYREZGG4ZYNrszd6Tg72yKXy251ugbD1Fm9SBWZJZnMO/w8CfkJ\nurKwzPO8cWQenf2D6eDZwWT/+qxxelE6z+2bRnRutK4sJS6FhKI4jk07hr2V8TEnOo/hg1OBXM25\nanIOG5kNO5K28NOl73G0dmRI8yF8MeyLO26I9azLNH4O/56IrAiDuhGBD9R5vcTv8J1FXN87z/28\nxvVSvra2tpSXl2NtbU1GRobekbQx8vJK6zPVXeF+uOhvCD45tUhP8VaTUZLB10e/45N+XxjtW981\n/vDEp3qKt5rwzHA+ObCIlzu/arL/zA5zWHh0AUUq43OrtGpOp54Gqj5LdE40SdnJ/D5iha5NWOZ5\nfgz7nqu5V1BY2jGg6SBe6fwacumtvc++2/0DFhydT2x+DADWMhse8B/BrLav1Gm9xO/wnUVc3zvP\n/bDGpl4e6vVL0atXL3bt2sWYMWPYvXs3ffv2rbdwIo2XzJIM43WlmXdkzuuFSUbr4gvia+3/RLup\ntHJqzd9RK8kpz6FUWYJKo6ZUWYy9lQPpJenE5hsq9/3X93Ih8zwdPTpxKTOM6Tuf4HrxdV39mfRT\nxOfH8ePQX+v3wf5lYLPB7Jt0tEq+smz6+Q6gW5MetzSmiIjIvUetyvfy5ct8+umnpKSkIJfL2bVr\nF4sWLeKNN95g9erVeHt7M3bs2IaQVeQeo6lDM6N1TRTed2ROF2vjPr0uJu5Ma9LDuxeJhYn8GPYd\nV3IjkElkhLh3op/vAL6/8LVgnzJVKadSj9PRoxM/X/pBT/FWsyNhq05B3wo2chueDnrmlsYQERG5\nt6lV+QYFBfHnn38alP/+++93RCCRuhGZE8EPYd8SmXMZW7mCfr4DeKXza1jILO743M90eJYN0WuJ\nzte/Q/W1a8qM4Fk6+b4+t4iLWReQSy3o5tWdBd0X4k797nIeb/ckm2M3kFuRq1fuaevF0+2rFFZS\nYRKLL3zNldwIbOUKBjQdzLMhs5FKqoz7z6Sd4t1jb5BfkQ+AWqvmfOYZzmeeMTqvTCIjwKklANG5\nUYJtSlWlHLq2/5aU75a4zfwR8RtxedE4WjszqNkQ3uz2ToP8PUVERBoOMcJVI+ZqbhRP73ychBrH\nrafTTxKTF82SB5bd8fkdrBz5aehSPj79AWczTqPRqAn16MzLnV/F39GflKJkpu96krh/7y8BYvKu\nEpN3laPPHKnXnMHuobzf51O+u/AVUblV7jdBbh14tcsb+Dn6k1iYyJRtk4jOu6EgD1zfR1RuJN8M\n+gGAlVeW6xSvuXTx6sYwvwcAsLdyMNrO0dqprh9Jx/b4rcw98DwFlVXuRiklKUTmXCazNJ3vB4sp\nE0VE7idE5duI+eniYj3FW83OxG2cSD1GT+/ed1yGIPdgVo5cQ2FFAWqtWs9d5qeLi/UUbzWn00/x\n24XfGO/3WL3mnBg4mbEtx3Mk5SByqQW9vfsik1ZZ0n9//is9xVvN5tiNPB00g1CPjuSU59Rpvk4e\nnfl64GKdy9HgZkM5mnLYoJ0ECT+FfU9SYSLv9PifTiZzWR75m07x1mRXwg5i82NqdaW6nylTlfHr\npZ+4mHUBK5kVD/iPZHSLMQ3mBiYicrsRlW8jRkjJAFSoKzicfLBBlG81DlaOBmUJJnLshmeGM96v\n/vNZyCwY1GyoQXlkjqGbDkCpqoQ9iTsJ9ehIU/umdZorszSTvPIbx9yzQl8gsSCBTbHr9ZSlFi0J\nhfH8EPYtKo2KD/p8Uqd5EvKFDcYKKgs4fP3gf1b5FiuLeXzrRE6kHdOVbYxZz+n0GXzQ59O7KJmI\nSP0Rsxo1Yuws7IzW3Qv5bR2tjB/BOlvfGfls5DZG6xQWCgBmBM+imb1xY7GbSS6+zqy9z5Bdmg2A\nVCLl8wFf88+4XbhYuwn22R6/hWJlcR0kB2cbYYMxuUROgGNAnca6n/ju3Jd6ihdApVWxInI5l7LC\n7pJUIiK3hqh8GzFD/R7Qpdarib9Dcx5r9+RdkEif8a0n6RReTTxtvZjddfZtn29d9BoSjbgb+do1\n5Yn2UwEIcGzO4iFLGOr3AG427ngpmtDGpR1yqXGjpqTCRJ7c8QjlqhtRshytHCk1omCTi6+TXGRo\nEW2KYX4jBMu7eHVjQNPBdRrrfuJ85jnB8lJVCVviNjewNCIitwdR+TZipnd4lqfaT8fR8saRbwvH\nlnzQ52OTu+KGYnCzIbzSeT7WMv3IUCq1klPJp27rXNvjt/DGobmCLkA+dr680/N/2FveMJTq3qQn\nK0eu5dwTlzk7JZzDj5xkXufXTc5xNuM0f0Qs1T27WLviqWgi2NbT1gvvOrpbvdx5HtOCZuBm4w6A\npdSS3t59+XLgd//pu02pxPjdebUFu4hIY0O8823ESCQSPuv/JTNDZrEjfiuOVk66fLRn00/xT+wm\nNGgY5j+Cfr4D7oqM+eV5BjGVcypyeGPfG+yZcOS2hWxceWU5hcpCg3K5RM4X/b5hkL/h/TDoH1O/\n1HkuW+M3EZFz2eg8ETXulK3l1jzgP5xfLv1o0G6o3wOC9+CmkEqkfNLvC17u9CoHru+juVMLunn1\nuK2K91jKYTbFbqBcVU4nzy5MafvUPe/G1NO7Fweu7zUod7R0ZGLgI3dBIhGRW0dUvvcBLZ1a8UKn\nVwDQaDU8u/tptsVvoVJTCcCyy0uZFPgoXwz41ugPuVar5Z+4TRxOPoBMImNk84fob2ZO2xJlCYvO\nfMrZ9JOUKEuRSaSEeHTiAf8RglbBAFdzrrI+ejWPt3uqHp/YkGtF1wTLVVoVV/OijCrfgvJ8frz4\nPVfzorCzsCPQuY1J5etgqe+fvLDXh1SqlexK3E5aSSoetp4M8RvGx/0W1fuzeNk14dG2U+rd3xif\nnf6I7y98Q7m6DIDVV1exPX4Lyx/82+Rd+d1mduiLnM04ze7EnboyW7mCWaEv/GeN0EQaPxJtA+WA\na0wxOhtrTNH9SXtZcHQ+cQWxBnVSpCwe8gsTWk8yqFNr1Mze+wybYzeiQQNUHXlODXqmVovdSnUl\nk7eM41iqod+uXCLH1kJBoYD7DMD/en3IrNAXzPlotTJu80iOpRjKIEHCg80fws3GlSDXYB5r+4Ru\np5deksaUbZO4lH2xhswWqLTCuXylSNk36Sjt3YIM6gorCkgoSMDPwQ+nO2RMVhdu/g7H5ccyfP1A\nwZSFczvP543ubzekeHVGrVGzIWYdJ9OOYSWzYkLrSXT27HrX5GmsvxGNifthjW97bGeRe4+s0ixe\nO/SS4J0ngAYN+5L2CCrflVeWszF2vV5ZpaaSPyKWMiLgQXr79DM678rI5YKKF6p2ncYUr5utGw+1\nGGd03LryUItxnEo9gUqr0iuXSWRsi79hlLMuejXLH/wLZ2sXvjjzqZ7irZJZWPECtHcLElS8UOVq\nFeIRalLGUmUp+6/txdHKkT4+/Rr0Hnd99GqjuYLPpp9uMDnqi0wqY2LgZCYGTr7booiI3BZEa4X7\nhN8vLzGqeKtRaoQVy+Hkg4LlFeoKtsVtMTlmWNaFWmWzklrpPcslcqaGTMXH3rfWvubydNAzvNz5\nVZraVzkPW8mssZHZGCjjU+kn+OT0B4B5slfjo/Dl035f1lu+H8K+o//qnkzbNYWJ/4xh+LpBHEs5\nWu/x6oqpAy4tDXL4JSIiUgNR+d4nZJdl19qmu5HsOKZ+mKuPoY1ha8ZdYYWmAmcrF1o4tmK4/0gW\n9f+Gz4Z+Vns/dQUbotey9urflKnKam0/v9tbHH7kJGtHb+blTq9SphbusyF6HQ9vfojrRu6JhRjm\nP4IuXt3Mbl+T7fFb+fT0hyQVVqVf1KDhQtY5Xj34Yp19gevL2FYPY28hfAR2N49vRUT+q4jK9z6h\nhVMLk/UDfAfzZPtpgnXdm/QULJdL5Az5N56xMR4OnIydkR/1muRV5JJVmsHUoGd4rN0TtR65rote\nw8DVvXhu73Tm7JvJwNW9WB65rNZ5FBYK+jcdaDKIR0FlPodTDpJbhzCTJ1KPotKoam8owIaYtZSp\nDPNZxxXEsjziN93zysg/Gb95FD1WdmTc5pGsiPyjXvMJEejShukdZmIl0z+F6O3dl5c6z7tt84iI\niJiHbOHChQsbYqLS0sqGmOa2oFBY1VneYmUxeRV5KOSKu+KT2d6tA/uv7SWjNF2v3EZmw3MhL/DF\nwG8MfnirCXYPJTzrIvE1wkFKkDAp8FFmh75o8vN42/kgl1oQkRNOqYCCqUmFpgKNRsOoFmNMrnFM\nXjQzd08lpThZV5ZXkcfexF1sj99KakkyXb26m0xcH+DYnLXRq2/bzjK/PJ8n2k3FzrLu2Zj+iPiN\na0XCeYjbuQQxoNkgfrr4Pe8df4uEgnjyKvK4XnSNg9f2Yy23oatX9zrPKbS+fX0HEOLeCWu5Fa2d\nA3m87RN80PfTe9rS+V6lPr8RInXjflhjhUL4NxdE5StIXf7oueW5zD3wAu8de4sfLnzL9sStSCUy\ngt1D7rCU+lhILRjQdBBZpVkUVxZhI7elj09VgIZH204xqahkUhkPtRiHu60H9hZ2tHfrwJyOLzGv\ny+tmvUh0a9KdCa0m4WTlgp1cQaWmUjBBAICLjSuPtHnc5Bp/fW4RR1IOGZRr0ZJZlsHJtONcyrrI\n+FYPG5XPWm6DSqPiTPppVEbuuquRSywY3WIMKUXJOvesm9Gg4VjKUfr69K9zaMxTaScMDLuqmRo0\nnUCXNsw/9ArppWl6dWqtmvTidKa0e6rOSRqMrW9zp+YMD3iQUS0eorNXV5PfCxHj3A+K4V7nflhj\nU8pXdDUSwFwTd61Wy+QtYzmYfECvXGFhx3eDfmRUizF3SkSTqDVqNFrNXQuesDJyOa8cfF6wblLr\nR/l+yM8m1/jFfbP4++pKk3NIkPDjkKWMb/2wyXb7r+1jY8xaMkszOZJ80MAAC6pOB84/Gcn+pD28\nsH8WGtRGxxvYdDCrR280OefNRORc5vGtE0ktSdEr79GkFxvHbCO5+Do9V3YSlE2KlBOPnyfAsXmd\n5rwf3DTuZcT1vfPcD2ssuhrdIQ5dPyBosVqiLOavqJV3TfnKpDJk1G2nVBtarZbdiTs4nHwQK5k1\nk9s8RqBLG139/qQ9LItYSkJhAk6WTvjY+eodGwO4WrvyZPuna52rlXPr2uVBy5n0k7Uq30HNBjOo\nWVVc5MlbxnHg+j6DNmXqMr45t4j/6/Mxm+LWsydpl9HxTqYd51TqSbbGb+JiVhgWUgt6evfmxU5z\nsZRZCvZp7xrEj0N/ZfGFbwnPDsNKZk1P79681+sDZFIZzlbOOFu7kFWWadBXYWF3TyTJEBERub2I\nyvcWCM++iNKIX+jNiqcxo9KoeHbPNLbHb0GtrdoVLo/8jVc6z2dOxxfZmbCNlw7M0Uu7B+Bg4Uih\n8sbxswQpKUXJIBwOWce0DjPZHLuRS9mmM9bYWNjW6XO81+sDzm86R0FFvkHd31dXMb3DszR3bAkY\nV75lqjJe3j+buMIbgUyOpBziUlYYf4z4y+gxeE/v3vT07o1Gq0GCRK+dg5Ujfg7+gspXrVHpjpyL\nlcX8Hr6ElOIUfOx8mdZhhmDiChERkXsf0dr5Fmjt0gaZkaDvnraeDSzNnePni4vZErdJp3gBCisL\n+fb8FyQWJPJb+BIDxQvoKV6A7PIs3ju+oFa3KIWFgj9GrGJS4KN42Bhfx7i8GDRaQ1eo1OIUfrr4\nPasil+tlIWrn2h5fO2Hf4vyKPLbEbWJ6h5k0MZEQQS6V6yneanYn7mRb/D+Cfa4VJrEzYTtpxalI\nJVJBBe1kZHdbqi5l2eWlXMoKY8S6Qbx/8j1+u/wL7598l+HrBnI565JRWUVERO5dROV7CwzzG043\nL0PfWWuZtWAkqYZGqVZy8Pp+TqQeE1RS5mIsPnNeRR5/R60gJj/a7LHSS9P44/LSWtv52Pvy/eCf\nufx0DI+1EY5zvCNxG8tqjKXVavm/E+8yeE0f3j32Fi8ffJ6Bq3uzPX6rro3MhIGRnaU9/o4BfDXg\nO1o4tRRsY8zdSIOG46n6OWdLlCXM2DWVwWv78OSORxiwuhfP732WCnWFQf8ytXFL8fyKfD44uZCr\neVF65Vfzovjg5EKj/URERO5dROV7C0gkEhYP+YUH/EboAhi0dm7Dm93fZVLgow0qi0arYVvcPyw6\n8wmbYzfy15UVDF7Th0lbxjJ204MMXzeQfUm76zW2schY1XUOlnXL3lNUWTcjCncTpwgHr+/X/Xt1\n1Cp+uPAtOTX8d+MKYnj7yHwKyvPRarXklgn79rpau+v+ZoP8hnL80XN83u9rgl3Nt1q/2WXntUMv\nszlugy6sY15FLmui/+LtI4apC1s4Cit7KVL8HQM4YyQE5Jn0U2SVZpkto4iIyL2BeOd7i/jaN+XP\nkavJKEknuyyLVs6BRg1v7hTpJWnM3P00p9NO6iJSySQy3TGxFi1hWRd47dDL7JhwAE9F3Y7EQ9w7\nCoagtJbZMCJgJEq1kiu5EYYdBZBL5PT07l2n+YV2itVczYtCqVZiIbNgffRqwYhcySXJ/BHxG+3d\ng0kvSRMYBTxtPbCtcYcskUh4KmgaSUUJXMoRdhOqibOVs14morzyXA5eMzTuAth/bS9lqjI9ZT0j\neBaHrh8gqShRr21f3/709x2IUi3scqHUKKk0sT53Eq1Wy+6kXSTkx9LDuzehHh3vihwiIo0Rced7\nm/BUeNHerUODK16ABUfmczLtuJ7iqXk/W01ycTK/X/6lzuO/0PFlutwUglCChImBj9DFqxtv91zI\n2JYTsJUrdHVBrsH4OQQYjDXYbyjD/IfXaf6BTQcjNfJVTSiI49k909BqtQbHsjWJzosiKidC0J0H\njMc3lpjxX8TN2p3Xur6pl94urTiN7HLhu+2ssiwDo69Alzb8+sAfjGk5nhaOLWnnGsQzHZ5l2YhV\nNLVvRoi7sGILcQ/F286nVhlvN3H5sYze+ABTdzzKu8ffYsymEUzbOUXvjl1ERMQ44s63kVNQkc/u\nROPWuTeTZUYM6JtxsnZm9aiN/BD2HZeyw7CWWzOo6VAea/sEAJYyS34Z9juXssI4lnKUZg5+jAgY\nyZXsSD4/+zHXChKwtbSjl3dv5nV9o84RwNq7dsBCZkmFWviHfVfCdvYm7TZ5r63UKAlyD8ZSaikY\nSMNL0YTLWeHYyG1o4XzjCHhcy4f5/fKvFCsNj8r7+Qygt09fHmv7BJ4KL706f8cA/Bz8SSpMNOjn\n7+CPm427QXmIR0eWDFsmKP+cji/y2qGXySq7ccTsbuPB7I4v3ZWIavMPzeV0+kndc5mqlK3x/+Bx\nfAGf9PvCZN+iykK2J2zDxcqFwX5DkUrEPYDIfw9R+TZyTqWdokJj/m6jeR2DNVRjb+XA690XmGwT\n7B5KsHsoao2ad4+9xfb4f0guTq5KMO/ZkXld3zAa4tIUB67vNap4AZRaJUdTDuPnEECmgLsOQJBb\nCP18BtDLuw8Hk/fr1cmQEZ13lcFr+2AhtaCzZ1cW9HiPbk160N4tiEfaPMafEX/orfMD/iP47YEV\nRgOZ2FrY8lCL8Xx/4Su9XbVMImN864l1jiz1YPPR+Nj5sjzyd9JKUmli681T7Z8m+C4c9V7KDON0\n+gnBusPJB9FqtUZfCL48+xl/Ri4jpTgZCRKC3UN5r9cH9PHpeydFFhG55xCVbyNnZ8LW2hv9Swe3\nYJ4OmnEHpanig5ML+eXSD7rnzNIMVl35E61WyzeDfjDRUxhfe1+kSE1mWLK1sGF4wEjOZJwyqGui\n8OaJdk8hkUj4adhvzD3wArsTd+iOoNWodX7ZlZpKTqQd46X9s5kU+Biro1aSUpKMlcwKT4UnHT06\nMcx/BONbTaw15OPbPd7DRm7N6qhVZJSmYymzooNbMI8GPmHW565QV6DWqPnm/CKOphyhXFVGe9cO\nLOz5Ia1dAs0a405wvfi60Xv4wooCVBqV4EvJhui1fHXuc11fLVouZl3gtYMvsXfSEdFnWeQ/hah8\nGzG7E3eyMXa90XpbuQJ7C3sqNBW423gwuvnYOx7LV6lWsjNxm2Dd3qTd5JXn4mztUqcxjyUfQSqR\nGj1WliJluP9IgtyCicqNYEvcZsr/3Sk3UTTh7R7/w+nfeMwu1i6A1ujdbzVxBbF8fPr/dM8V6goK\nlYW423qYpXihymjLxdqF3PIcytXllKvLOZZ6hPFbRvHbA3/qRQiryeHkgyw+/w2n009RpirVe+kI\nz77E2YzTrHxwLQFO9TvFuFX6ePfFW+FNakmqQV1L59ZGTwP+idskqLTjCmJZEbmMZ0Pm3HZZRUTu\nVcTLlkaKVqvlu/NfUmIia8/T7Z/B296H/Io8YvKv8tHp/2PE+sFE5Vy57fJotBoOXNvLisg/SCsW\ntijOKssk8d+ctubyT+xGvrvwtUllqUHDmqt/I5PKWDxkCWsf2swrnV9jQY+FHJx8gomBk/XaC1lu\nm8u5jDOsi1ltUK7VatkWt4WFx97my7OfkVuWQ6mylB8vLqbopvvimLyrfHX2c8HxL2WFMWfPTA4k\n76NEVSy424/Nj+Grc8L9GwJHaycmtH7EIMCMo6UjTwc9Y7SfUCCWaszJRy0icj8h7nwbKSnFyYRl\nXTBaP7jZMBIK47mQeU6vPDz7Iu8df6vOyQFMcTzlKO8dX8ClrDC0aJFLhL9WXoomRv1ZjfFP3CYq\nNLW70hyqcY/bvUlPozmKAUqVplMf1kZ8Xpzec7mqnGk7p3Dg+r4b4Tcjfmd4wCiSjLxsXMg8i0qj\nYmvcP+RX5DGqxRjcbNz4/fKvZJSlC/apyZ5r5hvZVROVc4WfLn5PdN5V7CztGdpsGM8EP1cvg623\ne7yHp60H2+K3kFOejZ+DP0+0m8rwgJFG+zga8QeXIiXYrWGzgImI3G1E5dtIkUvlRkNbWsus+aD3\nx4zeKOzSczL1OGuvrqatazuC3DrckhylylJePfQSsfkxujJju9Th/g/iYHVnAnLURaFKuDXrYH9H\nf73nT09/yN5r+gFMUktS2Bq3yegY5aoKhqzpS+S//tFfnP2Ex9o+ybVC4by/N5NXlsuzu57Gzdad\nx9o+SXu3IJPtI7LDmbpzit7LwKHr+4nNj+HT/l+aNWdNJBIJM0NmMzNktlnt88vziMy5LFjX2bPr\nXUtCIiJytxCPnRspXoomRpOs9/Duhb2VI2XqMsH6MnUZc/bNYPi6gYzbNJKI7PB6y7Eicpme4q2J\nQq7AWm6Dn0MAM4Nn8VFf00elWq2WKzkRnE47pQvj2NJImMebaWbvZ1a7SnUl8ltItRji3pGJN0Uv\nO55qmNkKILMsAw8j0bmKlIU6xQuQUZrB9+e/pkRZYpYcGjRsjFvPkvCfGL95FKuu/Gmy/eKwbw12\n4Vq0bIhdS0J+vFlz3gq/hv/MteJrgnUd3IPviruUiMjdRFS+jZg3u79DC8dWemUtnVrxVrd3cbdx\np72r6d1QpaaSY6lHeGn/HKMxi8tUZWSUZqDWCOe4rel3ejNBbsGceuwCRx45xQd9PjVp7HUu/Qxj\nNz3IkLX9GLVxKIPX9OHPyGVpDiCMAAAgAElEQVTMCn2BVk61pxgc4j+s1jYAFlILPAR8bM2hicIb\nP4cAXj/8ClvjNlOdCttUBK7+PgMMkkN4K3wpFrirV2qVIKk6uagLeRW5fHPuC8pUwi9bAMdTjgiW\nF1QUsD1hS53mqw/JRdeN1onhMUX+i4jHzo2YTp5d2PXwfn4N/4WU4mR87Xx5JvhZ7C0dAJgZMpvY\n/Bhyy4XjGVdzKTuMddGreaTN47qyMlUZC47M59D1/eSW5+Lv2JzJbR7luZDn9foGu4UYdQNq7tSC\nJnbGMwRVU6Is4cX9s/QSNFzJjWThsQWc8D+GrYUtLtauaDRqrKTW5CvzdX6/llJLRjZ/iFkhLxgd\nv1JdyUcn/49DyfvJKMkgx0jkqWoCndvQ27sfp9NPkF6SjruNOxYySyJzLvNP3AYAVkb+yYTAyXzS\ndxEVRqI6uVq7sqDnQl7XqFgWsZSC8nwCXdqQWpzKDxe/FexjJbXm3Z7/x+dnPiavIs+knDVJKIxn\nc+wGvb9hNUeTj5BRkmG0r5OVk9nz1BdjJwAAHnUMdyoicj8gKt9GjoOVI3O7vCZY91CLsbhau7Ii\n8g9Si1O4khtJvpEf9Jt3Ji/un83mGm5METnhfHDiKtYyG6YGTdeVj2zxEH18+nI45ZBefx87X6Z3\nmGlSdrVGzdrov1ke8btgZqQiZZGBZXFbl3b8PmAle5N2Ua4qZ0CzQfT3HWjy2PL5fc+yyYRLFlTd\nA/fzHUAXr67MDJ6Ns7ULWq0WlUbF/mt7eXrn43p32Ro0rL36F+fTzxJXYJhiUCaR8WjbJ3ShH9/t\necNtaUfCVn6+tFgwBGhcQQytnAO5NDWaPyOWcS7jDDll2eSW51KpruRaUSKlKuH77eqd+M38fXUF\naoRPLlysXXk48BHjC3ObeCb4OdZHr+H6TUfPHjaeTG0/7Y7PLyJyryEq3/uMospCdifuxMPWkz4+\n/ejt05fe/0YPmrHrKTbHGVo5yyVyOrjfsDaNzY/hwLU9Bu0qNZWsi16tp3ylEim/DV/B/514l+Op\nRylXldPerQOzQ18g2D2UbfFb2J6wlQpVGR3cQ5nR4TlsLWwpU5bx6NYJBtGmauNKbiSbY9fzfp9P\nzGoflnmB3Yk7a22nRcsw/xHMCH5OVyaRSLCQWbA7aYdRI7K4AuH77g6uwXoKtybD/UfSz3cgB67v\nNajLLM3gka3j6d6kFy92fJlngp/Vq39h33OsvrrKoJ+/QwBjWo4XnC/HhBtPF89u9Yo6Vlc8bD34\natBiPjv9IeczzqLRagjx6MhLneYS6NL2js8vInKvUW/lW1JSwuuvv05BQQFKpZI5c+bQt68YIu5u\nsujMJ6y8spyU4mRkEhmhHp14v/fHdPHqBsCT7adzNOWIwbFrL+/eDPO7YRl9Ou0khZWFgnOkCNzd\nyaUWzA59gYW9P0QhVyCRSCisKGDImn5cyg7TtfsnbhN7k3ax6sG1fHHouzor3mqics3zU9ZqtRy+\nvp9SlXlGTNWJIar7FlYWYCtX1CsXssZIogaoUuq/D1/BhM2jOZd5xqBerVVzPPUIUbmRLB78M4P9\nbtxnv9r1TS5nXyKihuWwo6Ujz3d8WS8rU018FL5GZRnYbLA5H+e20M+3P319+hGbF4NKq6KNS1vR\n0ErkP0u9le/GjRsJCAhg3rx5ZGRk8NRTT7FzZ+07DJE7w+qoVXx9bpEuaYBaq+ZcxhnmHnyRPRMP\nYSWzoq9vP74Y8C2/XvqJK7mRKCwU9PTuzQe9P9H7EQz16IStXCGotDxqJBBQqVVM3jqOM+mnKFeX\no5ArGBEwis/7f834zaO4lG2Yiu9U2gm+ufAlZzKFYwObQ21hCJVqJe8ee4t/4jbqcumaQ7UrzPKI\n31h55U/i82NxtnbBz8EfCRKjmY+EsLO0M1lva2FLO9f2gsq3mtzyHJZeXqKnfP0c/Phn3E5+ufgj\nsfnROFg68Wibxwn17GR0HK+bkj5UI5fIUWmUTNg8muSi63goPBndfCwz6un7aw4SiYRWLrUb0ImI\n3O/UW/k6Oztz9epVAAoLC3F2dr5tQonUnS1xmwSz9UTlRvLXlRW6o+IHm4/iweajKFWWYimzFLRA\ntpXb4mHrYRCNSoqU0S3G6p4fWDeA8JxLuucSVQnrYlYTk39VUPFWcz7jrEkDIIAuHl2JLYgh/6bU\nezKJjKF+wzmZepx91/ZgI7dhSrupeNh66NqM2zzKaOB/U8Tlx/B31ErePvom5f+6aRVUFpBYmICd\nhZ2AhbIEjCjkB/xH1DrfzZmQBGXKMzzWtrd0YF7X12vtW01YVphguUqr4p1jb+qeEwrjOZt+mvyK\nPOZ3e8vs8UVEROqORGvMSsMMpk+fzrVr1ygsLOTnn38mNDTUaFuVSo1cXns8XJH60XNpT04mnxSs\nc7dxZ3qn6bw/6H0DZavRalgfuZ4L6RfwUHhgK7flnQPvkFmqnx3I39Gfx4Mf54WuL/DlyS/JKs1i\nWdgywd2gTCITNCaqxtPWE3tre2JzDQ2VqgmfFc6FtAss2L+A64VVR92OVo48EfIEBWUFrI5YrXvZ\ncLJy4vOhn/NM52c4nHiYAX8MqNMutZrJ7SaTXpLOoaRDtbb1VHiSW5aLUqMUrD809RD9/PqZHCOn\nNIfuv3Yn7qaIWTXp0qQLZ2Ya3x2bw4BlA8z6TNU0d2pO+Oxwo8fYIiIit069d76bN2/G29ubpUuX\nEhUVxVtvvcWGDRuMts/Lu7WQfg2Ju7s9WVnmRVa6V/C19QOElW9WWRafHPuElNx0vhh4w8WlsKKA\np3dO4VjKEZ2rkFwqF/T57ec9kAvJl/A56mNSsQK11meUZlBSafweVooUO5Ubw73H0nvSIFZGLqdc\nVc7IFg+xN2k334d/r9c+vyKfOTuep6tLX94/+FG9FC+Ai9ydE7nCa2jwGWrZuZ+MP0db29rS/Vny\n9YAf+PjU+5xIPSYot1Kp5kDkMTwUXrhau5qV0AH0v8P+ipYcwnzlG58fz8GoE3T911ZAxJDG+BvR\n2Lgf1tjd3d5oXb2V7/nz5+nTpw8Abdq0ITMzE7VajUwm7m7vBtOCZnAk+RAZpcbjAm9P2MprXd/E\ny64JAAuPv8ORm1yEjAXb2J6wlexy84IhyKVybOW2Ro22AIpVxhNCeCma8GPYd1wrTMLN1p3pQTPx\nsa8yGpp/6BXBPpXqCl7c99wt+awujVhiNC51XbCWW9Pb2zzjw+5NerJp7Hb2Je7mg5MLicjVD8F4\nMfsCQ9b1w0JiSQvnljzcejLPd3zJ6HiXs8NZGv4z6eUp2EsdmdB6MrNCn+dY6iFi842fNNTE3sIe\nn39dpERERO4M9Y5w5efnx8WLVfd6KSkpKBQKUfHeRQKd29DcqRUyjP8NcsqzOZF2TPd8IvWY0bY3\nY8w/WIj2rh14q/u7NFGYDrBhLMayUqPiszMf8ffVlXx/4WtGbhjK3qSq2MnXi4RDFAIkFsTjYuNq\ntpw3U6muMNsy2hTlqnImbhnLw5sf4peLPxj1v63JYP9h7J10BH+HAIM6jVZDhaacyJzLfHzy//jl\nonBO5GMpR5myfRIrryxnX8I+NsVt4Lm909h7bTe/D19FHx/Tx+DV9PHtp/NPFhERuTPUW/lOnjyZ\nlJQUpkyZwrx581i4cOFtFEukrsw9+AInUo8YDaYAYCO3pbVzVQ5ZrVarMyoyB3OPcv3sA9g8dgfT\nOszk0OQT9PMdaLRtS6dWWEj04yx72nqRVaZ/pJtaksLnZz5Gq9XiauNmdDx7KwcSCm5XnOKqFwOF\nXGEgozmklaRwOOUg7xx7kwVH55vVJzIngqTCRJNtlFol66LXCNYtvvA1qcUpemUlyhJ+C/8FPwd/\n1j+0hV4mduRWMisGNB3EZ/2+NkvemylWFrPozCc8vXMKc/bOYGvc5nqNIyLyX6DeZ2wKhYJvvvnm\ndsoiUk9SipLN8pnt5d1Hl/1GIpHQ3rUDKcXJtfZr49yOMnWZ0fR4rZ3a0NOnFwObDmFEwEidm4qT\ntTPfDvqB4esHkV6in+PX3tKej/t+QZm6jF0J21Br1XT16s7Hp4QDU1zMvMDFrAu82e0dJm8dJ/gy\n0Mu7Lwev76v185iHFh+FL//r9SElqhIWnflEF53JUmopaFkuPIqWFZHL6ezZjQmtJ6JUK1kV9SeX\ns8Oxs7DnqfbTdFmSrGRWyCQyk7mLocrPWaVR6RnPqTQqwrMvCbaPL4jjcPJBhvkP5+ehv7Hg6HyO\npxyhsLKQNq7tGNJsGO62HgS5dqC7t/FUjKbIK8/lsW0Pcy7jrK5sU8wGng2dYzTYiIjIf5lbsnau\nC43p4ryxXfQfuLaXyVuFoxtVYy2zpoVTS8pV5QS6tOXZf1PBzdr7jN5uyUpmxdgWE9AChZUFtHYJ\nZFbIC6y6spz3T75nMK6tXMGqkWvp5dPH6Nxb4jbz1pHXdPfRUqSEeoXy14MbcLZ20bUrUZbQ9c9g\no3fLn/X9kkfaTqH7ylDSSlL16prZ+7Nt/B6e2zONY6nCSQTqg5+9H4ceOfVvOMm/qVRX0s9nAEPW\n9TVq6SyETCKjt3dfMkrTuZoXpSu3kllhb+FAhaocC5kFSo2SIqXp754MGScfv4BfjdSGGq2GbitC\nuFZkmJJQJpGxacx2PcVaUJFPUWUR3nY+SCWmD8BUGhVrov7iXMZprOU2TGz9iIFf8btH3+SnS4sN\n+jpaOrLj4f20dGplUNeYaWy/EY2R+2GNTRlcyRY20Hlxaal5O4V7AYXCqlHJ62DpyNqrf1Ni4r5S\npVWRVZZJXkUuMfnRHLy2n3EtJzAp8BFUGhV2Fg6EuIfwSufXmNt1Pg82H8W4Vg/Tz3cAtha2dPPq\ngaXMkqt5UZQry5FJZVhJrdBqNfwTv5HjqUdp4dhSMJFCRPYlNsdu1O3otGhJK04jIvsyEwMn69pZ\nyiw5nnqU+AJh15uLWWFczg7nbMZpgzoXaxdmdXwBpUbJwWv7DRI9OFo6msw+ZIyCygLcbNzp6d2b\njh6d6OLVFXdbdyKyw4nOu2r2OFq0JBUlGkQXU2vVlKpKqdRUUqYuM2tHrUWLv2MAnT276MokEgmX\nsi7qRb6qxkpmhVKjJMgtGMd/8ylby61xsHKsNZhGuaqcJ7ZP5qdL33Mp+yLnM8+yMXY9UomU7k1u\nKPOvzi0iudgw+lmFugJXazeTL2eNkcb2G9EYuR/WWKEwHrpVTCl4H+Bq48qIgJF16pNemsaS8J/o\n4B7C14MWs3ncdn4fsZKxrSYItpdIJLzc+VXCnrzCtgl78LTxpExdRrmmnMLKQvZf28vsvc+QV55r\n0Hf11b8E75ePpRw2SHU3r8vr+No1FZQhsyxDMB4yVAWI2BCzlqlB05nX9XUCHJoDoLCwY6jfcN7p\n+T+crOoXCObvqBV8ePJ/hGVe0JU9EPCgUYOx24G7jTsuVsLGYxIkeCsMDaLe6/UB3bx6GJSXq8v5\n++pKxmwaQW6p6QxXN/P1uUUcuOkov1hZxOKwb/WSccgkxg39TNWJiPxXEZXvfcLH/RYxK+R5mth6\nI63xZ3W1Nm6gFJcvnBTAFHKpnI0x60gpSTGoiyuIY8mlnwzKU286Iq6mUlPJxUz96EudPLvwaJsp\nRuc3lbO2WvHP7TKfg4+cYOu4PRyafIKVI9fwRLunebHjK4S6d8RObjr0481czgnnm/NfMGbTCN44\n/CparZZJrR9lbEvhF5XbQbGymKeMZPsJdg9lRHPDly13W3c2jd3OQy3GCfZLLr5O39XdOZZy1Gw5\nTqcL+z3nluewOupGgoduXt0F27nZuJv8e4qI/FcRsxrdJ8ilcv7X+yPe6fl/FFYUEJUbSZmqnLSS\nVOYeFM516/DvEWRdSStOM1qXKqCUvWy9uCqQDMFCYkFb1/YG5W1d2xkdX2FhR2WF4e4aYGvcPzzS\nZgou1i7YyG3o1qRKIZzPOMs7R9/gfOa5WgOAmKJMVcofl5eSU5aFjdzWpNuTsRzH5qLVanm586sk\nF19nR8I2iv+9B+7gFsInfRcZvaeVS+XYyG2MjptVlsn8Qy+zd9IRk+2qMZVUouZavtJlPmFZYXon\nEw6WDrzY6RWdX7mIiMgNROV7nyGXytmWsIUtsZvIKE2nuLIYOXJU6FvQSpAwzG8ERZWFrI9ei4VU\nzrhWE80KKeih8DBa52Vr+EM7tuUEDicfNLBQ9rb3pX9TQ1ekEQGjCHHvyMWsCwZ1o5o/xNHUIyQI\n3AufzTjNO0ffYPGQX3RllepKXjnwAldyI0x+JnNRoxZMy3gzljJLNFqN2VbRNxPo0hYbCxsWD/mF\niOzLHLy+D287Hx5qMa7WKFe1vVTF5Efz15UVTOswo1Y5Qt07cTzVcKfsYOmgt/O3lluzauRa1ses\n4XT6SWzktkxu/RhB7h1qnUNE5L+IqHzvMz4//TFfn1uEUmvcEtfJ0pmHAycB0Pev7rrd6rfnv+KV\nLvN5pM1jJueY0nYqq66sMAhI4WnjxciAhwzal6lKBV2D0kpSmbB5NM42zvT3HcSUdk8hlUiRSWV8\n3Pdz5h+ay+V/Ezco5HaMaD6ST/t/yZ6kXTy943HBneWJ1OMo1UosZFW+uaujVtVZ8foqfNECKSW1\nu2EZw0pmxcJeH7I5biPZZVm423gQkxdNcrHx3XI19hb2vFPDPae9W5DORcwcprR9ivUxq8ktEz4h\nAMgxM1rZ3C6vcSbjFGfST+nKLKWWPNV+Oq1dAvXayqQyJgU+yqTAR82WVUTkv4qofO8C1wqTOHBt\nL/6OzennO+C2pW8rVhbzd9Qqk4oXYHjACEYEjOLJHY9SUiNTT0JhPP87voCuXt1o4dTSaP+vz38h\nGAkqoyydhzYPp2eTXnzU93P8HauiNR1KPig4TqW6gqOph4Eqd6RT6Sf5ftBPSCQSunh1Y/fEg2yO\n3Uh6SSr9fQfhZutGTlk2CrnC6JFumaqESk2lTvne7JJkDkMDRtDLuzczdz9d7zjR7dw68Hi7J3m8\n3ZO6stSiFBaHfUNkTkRVwBOnVpRpKojMvkxSYSJWMis6e3VldugLBLsbT1JSG21d2/H5kM95ccdL\nlAiE8bSUWtLV09AwC24cM1cfaztYObJm9CaWXPqJ8KyL2MhtGNl8NCOaj6q3fCIiIqLybVDUGjXz\nD73C1vjN5FXkIZfI6eLVjUX9vzHYRdSHYylHuF5s6Od5M1llWayPXq2neKvJKc/hz4jfWdj7Q8G+\nZ9NOsTNhm9GxS5TF7L22m4K9BWwZvwupRIpSbd7R66bodYxv+TCD/YYCVUfoE1pP5GjyEd459gbn\nM84hkUgI9eiIt8JH8H65nWuQXr7fjh6d63z/6mDpwOgWYxkesJYdJj6rMSywIMg1iM/PfEywWwjD\n/EcgkUjwtvfhw76fCfbRaDXsTdpNanEKHjaedZ7zZqZ1moanvBlTtk8yCA06sNlgg+P+64XX+PDU\n/3Em/SRqjZoQ947M7fIaIR4dUVgoeLnzvFuWSURE5Aai8m1AFp39hD+vLNM9q7QqTqYd59VDL7F5\n7I5b3gE3UXibFX3JycqZwkrjzuumEiIcSjloVljKsxmn2RK3iTEtxxPiHsp+Iy5CNVFqley7tken\nfAGSC6/z0oHnuF7DreV46lGcrJyxkllToS7XlbtZuzMzeJbemEP8huFi7UL2Tf61xnC2cuap9tOQ\nSqT8Omw5P4R9y7b4LVX358piikysTTUaiZYl4VVW3zKJjN4+ffl12B84WQu7OoVlnueNw68Slnke\nDRo+Pf0h41s9zAd9PkWj1ZBSnIyjlSOOZiaNOJx8kENn9lBSVsHLnV7lbMYpInMisJUr6OPTl7d6\nvKf3XStTlfH0rilcqpH3N7UkhajcSNY/tAVfB2HXLxERkfojKt8GZN+/yQFu5mz6aQ4nH6B/00G3\nNH6wewjdmvTgaMpho21s5LaMa/UwZ9MNA1VU087V+P2ii7V5iQu0aIn7N4vO8x1fZk30X6QUG+5U\nb8ZCqh9HeUn4z3qKt5r8ijyG+49CIoHssiya2jXjqaBp9PTurdfuj4jfyCk337d1YutH8bWvUjYW\nMgsKKwu5khtRpwAd6hrhIdVaNYeTq2I8fzfY0A1LpVHx6qGX9RRfTnk2v4b/TEpRMklFiUTnXcXR\n0ok+vv34pN8XuNSIClYTrVbLm0deZUXkH7oXMClSnK1dcLF2JcCpOaNbjsVabq3Xb9nlpXrzV5NQ\nGM/Pl37g/T4fm/3ZG5rEwkR+DvueuIJYHC0dGdNyPKNajLnbYomI1IqofBuQvIp8wXKVVkV8QbzZ\nyre4soill5dwvSgJTxsvngl+Vhem8eO+i3hx/ywuZJ4z6Odr15RpQTMY5j+czp5d2ZW4w8AYydeu\nKTF50fwY9h1PtZ9uYP38aJspLLn0I7G1+AjLJDLau1ZZutpbOfBE26l8ckb4KLsahdyO8a0f1itL\nN3Fna29pp2fZfDPlqnJ+CPvW7HvbJrbevNHjbd3zhYxz/Br+s6Dibe8azPWiRJOnBDU5nnrMIB4z\nwObYDYKKT4uWHYnbdLJnl2exKXY9BRX5rB4tbG29O2kXf0Ys07vz16AhpzybnPJsYvKvci7jDEuH\nLaezV1ddm7gC46kGa0v0cDeJyA5n+s4niC+8kUxjV+IOovOimdvltbsomYhI7YjKtwFp4dhCMDmB\nk5UzA5sOMWuMyJwIntszjagafrNro1fzzaAf6Ondi0CXNmwfv5ctcZtIKkwkxL0jBZX5FFcWM6bl\nOOwsq2KNutq48seIVXx19jPOZ56jUqMktyyH5OLr/B6xBIC/o1bx49BfaVfDF9dabs1HfT/nnaNv\ncjXP0He3mh7evRnmP1z3/HSHGfwR+btRAyiF3I5Zoc8T4q6fgN5LYdxH1FhdZE4E353/iuOpR+tk\ncFWoLGTBkdf5tN8XWMut+SduI2WqUsG2Te19ae/anjXRf5k1dpmyFKVGaaB8b85CVBOhl4ZjKUc4\nmnyYPr6G6QF3JWyv1dgutTiFX8N/0lO+LlbCO2mo+p7cq3x7/is9xQtV0bz+iPiVaUHPGD3mFxG5\nFxAjXDUgU4OmCyZ7H9l8tC6zTW18ePJ/eooXILEwnk9Ova97lklljG01gZc6z2NAs0GMaTmex9s9\nqVO81fg7BvDN4B858uhpmjk0o6BSf2d+JTeC908YJlMY0HQQ+yYdoY9Pf0EZAxxa8MvQ3/XuFZ2t\nXXi92wI8bG74CMuQ4e8QwMzg2Wwcu4353d7SGyc86yJHjFhKN7XzY0aH5wzKEwsSmLZzCutj1tSq\neG/OfVyiLOavqD+Zd/BFANQmAkxotBrmdXmdti76QUKMhZxs69pOMKhFX5/+yCXmvwNXaioJz76o\ney6qLOTQ9QMkFiSiMTOASHRetN7ztKAZguEqHS0d7+noVEInBgBpJWlsit3QwNKIiNQNcefbgAwP\nGMnXA3/gj4ilxOfH4WjtxJBmw3it65tm9S+oyBdMKgBVBk4JBfEEODavs1zpJWmcSTMybvopcspy\nDHZAlZpKwUAXAMlF10gvTcXd1p1tcf/wQ9h3aNHyTIdn2TvxCH9eWYZWrqSTSw8GNxsqaGiWUBDP\njN1TBZMsNLVvxtxOrxrcXQL8ePF7o4kZbkZhoaBQaXhsvP/aHjJKMngwYBTLLv9KeQ2jrmq6enUn\nwKk5m8Zu4+eLi4nLj8XByhG5RMZfUSv1+rhauzEj2PBFASDEo2OdYkRbSi0JcgtGq9XyfyfeZWPM\nOlJLUrCzsCPAoYVZYzjeFITDQ+HJhNaTWHnlD3L/DdHZ0qk1s0Kfp1sTYZekewFLmfGg9faWxrPJ\niIjcC4jKt4F5sPkoHqynj6Raq0atEc71qtaoKVcZKglzKFeVU2nEoKhCXSlYl1GSZjQXsFKr5L1j\nC6hUV+rFBj6bcZpQ907sevgAHh4OgunCCisKePnA8+xL2k2ZEavqjJJ0Xjn0Ah+dfp+BTQfz+YCv\ndbvKuDzz4lV72HiSXSYcaCKnPIfovCuEenRiZPPRbIrZgJobu8oBTQfxXOjzQNWO/o3u7+j179ak\nBxti1pNTnkMz+2Y82W4afXyFk9gnF1+v9ai4Jj29e9PHpx/fnP9S7z67WFlMeM5FZBKZyRCaEiQM\naTZM96zSqJi5exrb4//RuWNZSi15MGAkT7SbarZcd4Me3j0FA6gEOrcxGt9aROReQVS+jQgXa1dC\n3DtyJOWQQV2wRyhtXNrWa1w/B3+C3TtyPvOMQV2Ie6jg3aqXwtuory3AmfRTgoZKYVnn+ez0hywa\n9algv7kHX2Rr/GaT8lZb8maVZbIm+i80aPhhSNU9tYOlg9F+9hYOeNt5E+zekQPX9xr1/XW1cWNV\n5Arm7H2W9NI03GzccbV2o41LW7o16c5T7adjKbM0Os+E1pOZ0Hqy0fqaWMtsTLqHNbH1JqM0HSdr\nJ0LcO+Jq7ca4zSO5nH1J8E7YlOJ1sHRgfKtJzAq9Eev7t/AlbI3fpNeuUlPJr+G/MLrlWIM7+HuJ\nt7svJCYvWs+639fOlwU93tMFWRERuVcR73wbGS91noeTpf69sUJux/OhL9XbT1gikTA79HmDDEju\nNh7M7vii4LgKiyqfUWOYcs3ZELtOsDytOJVD1w+YKfUN9l/bS0ZJOgAjWzyEpVRYMZYoi5EgwUZu\nY3TXC+Bg4cD62DWkl1YlkMguy+Jq3hWaOzVnRvAsk4oXYH/SHp7c8Sj9/u7OmI0j+PniYrRaYYtr\nd1t3vby4NXGzcePsE+Ecf/wcvw5bTkJBAutiVnM89ajZVtbV2MoVbByzjc/6f6n39zyWKuyWVqoq\nYWOM8N/pXsHeyoG1ozezePASnguew+tdF7B34hGG1zG9pojI3UDc+TYyEgriKLvpDrJSXcF1gUTm\ndeGhluPwtW/Kn5G/k16SjpeiCVPbTyfEw/jOJ8S9E2ui/xasMxVVKrMkg4lrJ6Ks0NC/6SBaO7fm\nVNoJylXlBkZf5pBbnvhcYQYAACAASURBVEN0XhSeCi8mtJ5ETF40KyL/ILMsQ6+dBg1ReVeM7tYB\n/O2bU1ghrNi2xW/hta5vGVgs12RH/DZeOjBbL6rUqbQTpJek816v9wX7fNT3c6bveoLovKu6Mncb\nd1aP2oiFzILmji347PRHJN5k2SuEsWPn/k0H0sE9xKBcrTG+U9ZoNKBUYr3sVyxOnQBA2asv5U9N\nA9m9kaNXJpUxMXAyEwPNO2kQEblXEJVvI0Kj1fBnxDK9qE5Qdce66sqfzOjwXK27MlN08uxCJ88u\nZre/WbnVxNbClmKB8JUAJaoS1kVW7ao2x21AigwNaiRIsJBYCN6BWkgtsZJZCo5pKbXk3WML8HPw\n47E2T/BG97fp69Ofcf8I74CKTET36unTi7+iVgjWpZekUVRZqPOpFmLp5V8Mwjlq0LA+Zg0vdnpF\nsG+gSxv2TTrKysjlJBUm4ufgz+PtnsSqhkHR5exwo3PWpL/PQFJKkrmaF6UrC3YL4b2ewoq/k2cX\ndiftNCi3lFoyvOkwHKZNwWrXDl259T+bsDh6hKJfl4FUPDgTEakvovJtRGSUpBu4iVQTk3eV+IK4\net/71oe2Lu2RIBG8e3zA/0F2J+6gSGlc0VWj+deYSYtWWPFKLHi7x0LKVGV8dvpDgx11paaSiJxw\nInLCOZp8mI/6fk6JEf/c6nk8bDwNXh5aObXmpY6vsi9pj+CLRROFDw6W+pbCFeoKiiqLcLZyRiKR\nEFND6dUkvSSN/df2MqH1JMF6K5mVyRR/1jJDy+5qbOW2eCm8GNB0CP/r/SFqjZr1SSuJSY/HzzGA\nKe2e0lPkNZkV+gLHUo7o2RFIkTI58DEGHUrUU7w6WbduomL9GionPmJUJhEREdOIyrcRYW/lgKOV\nI+WlhlbAjpaOBne2d5qxrcazLOJXTqYd1yv3sPVketAMmii8+T7s6zqPK0VKU4dmFFcW42vflIdb\nT+LZkDlotVo0WjWbYzeQWJCIGhWqm6y/C5WFLL38i8G9eE0spBZ8O+hHfr60mAuZ55FKpHT27Mqb\n3d6muXNzhvo/wMory/X6SJAwusUYXS7dSnUl7x57i/3X9pBTlk0zB38mBj6CvaUjaSVpBnNaSi1p\nZt+szmtRTS/vPlzKNvRrDXRuw6ax23G0crpxHC6DuT3nClqT34yN3IaVI9eyNPwXzmecxUJmweBm\nQ3m49WQs5swU7CMBLI8eNk/5qtVY7tiKND2digdHofU29CcWEfkvIirfRoSdhR19fPuzPnq1QV1v\nn76427qb7J9RksHS8J/JLsuimYM/zwQ/i52FnVlzV4e0TC1Kxte+GU93eAY7Czt+e2AF7x1/ixOp\nxyhXldPerQOzQubQpUl3o7v02tCgYUH39xjmPwIbuY3OQEgikfBq1zd4qdM8jqceZeIW4Ri+4VkX\nUWmFXbIAOnl0YZDfEAb5DaGgIh+pRIp9DSvpT/t9iYXUgn1Ju0kvTaeZgx+jm4/V88eed/BFVl9d\npXuOyAkn+kQUnZt0A/1TZwA6e3Wli1f3ui6Fjjd7vENsQQwHr+3TfTY/e3/e7fk+rja39tJlLbdm\nTscXDcq1pu51ZbX/dMhPnsDu7fnIL11EAth+8QkVEyZR8v4ncJvSaIqINFYkWmNmmLcZc97C7xXc\n3e3vWXnzy/N4bs90jqYcrspbK7Ggh3cvfhiyBE+Fl66dRqshLPM8MomcYPcQDl7fz7yDL5JcwzCr\njUs7lgxbRqBLG5NzhmWcZ86+mcTk31CmbVza8sPgJQS5BwOgVCtRaVV6UZyUaiWDV/clKj+yTp/R\nW+HDwcnHTYYHTC1KofffXQXTIho7CgcIcg1m98T/Z++8w6Oovj/8zsz23RRKQm8CSu9SFAHpUi2o\niIoigoI0gR9iF2kigqKggjQREUGqBUGRKr1IR+k9hJK+fWd+fyzZZLOzm02CBb77Pg/PA/fOvXNn\nSfbMPfecz1kfMmgqkwxXBtdsVylmLu7ntr2Qdp6Wi5qS5AgsVl87ri5lo8qx9uwarG4rAgL1itXn\nwxbTqFKkYEcCiqKw5szP7EzYTqw+lmeqP+f30pCdm/EzrFu+hOgXeyPI/m5+RaslZfbXuNq1DzIS\ncDqJbd0M7VH//3tFFEl/dzz2vv2CDLw1+C9/R9wu3A6fcVxccLGXyM73FiPWUIiFnZey5cIm9l3Z\nR9XC1Whe5n6/9JGVJ5bz8Z7JHLiyD1EQqVW0LmmuVD/DC3D0+mHe2zGaOe2/DnnPsdtH+Rle79gj\njN0+im86LQG8FYC0+OdWfrh7IlfsiX5tetGAU3YENY6SIPHInY/nqstbMqoUlWMr88eVvQF9oQop\nDK4/NCzDC950quy1gTPZc3mXquEFr3byTw//ysGr+9l68XfKxVTggQodfcXpw0FWZGbtn85v59Zi\ndWVQtUg1BtQdQumoMrQr/wDtyj8QMCbDlcG8Q7O5Yk2ketGa9CnybNj3C4az68PYN23AsPBrBJf3\nLF7R6bA9/Syutu1CjtV/tzDA8AIIsoxuzapb3vhGiFBQIsb3FuWeUvdxj0qe7ZFrh3l143Cu2LxG\nz6N42HtlV9B5dibswOa2qeoOgzf3dsel7UHGbueq7SpFs7k9z6ae4esj8zhwZR/rz/6GG3/3r06j\no0GRBqBRqBxVhdJRZdiduIvTKacoYixChwqd6V1T/awRvLtph8eOWWuhpLm0qvENRglzCZqVbhHW\ntUJaKuK5s8hlyqJE+e8uqxetSZQ2SjWYrJipGBpRQ91i9albrH7Ya8vO0HWDWHA068x566Xf2XJh\nM193XEyZ6MBz460Xf2fouoF+1YkWHvuK6a2+DFp+MCwEgfQPpuDo2BX9L6tQAMcDnXA3a5HrUPFy\n8Eh4MSXv6WQRItxuRIzvbca8Q7N9hjccPLIHOUQBAYfHgSuI+pLT48Llyeqbc+AL3t85LmT93DRn\nKr9f2gyAu4TM643fZlD9oYDXreqS1aUW0xypvPH7SH6/sIk0Vxp3xt4VVBUKvKlJ2dctIvJw5cdC\npgkB4HJhfn0E+p9/Qkq4hKdESRztOpAx7n3QeH9d7oitSLPS9/PjqZV+QwUEOtzROd9iJwB7E/ew\n/PiSgPajSUeYuvcjJjSf7NeuKArvbHkjoCzghjMbGLXlDaa0/DTfawFAEHC1bIWrZas8DXM1vQ/F\nYESwBwYHuitVLtiaABQFaf8+xJRkXI2agD64znOECP9FIsb3NiMvhhegbnw9VddqJuWiy1M7vi67\nLwdKT9aJq+uTnryUfpGJO9/LU+H67Ze2MmHnOMY2ncC0vVNYfmIplzIuUsJUgi4VH2JgvZcRBAFF\nUej7Sy/Wnv0la2zC1qDpMwA9qz3HubTTnE49RRFDUR64oyMv1Hop1zWZXx+Bae4s37+lSxcxzZ0J\nGomMcRN97VNaTkO7QcP6c+tIdiRR2lKGLhUfYliDV8J+fjV+Of0zVneGat+hawf9/u3wOFh75hf+\nSNyjev22S1tQFKVALwP5xX13Yxxt22FY6S9d6S5REnvvFwo0t2bvbsxvv452904Elwt3xcrYej0f\ncWVHuKWIGN/bjNJRZYL2GSUTNk9W/mvZqHIMqT885HyCIDCg7mBGbHiZK9kkGYuZijGg3hDfF/uC\nI19x1R5csjEYuy/vYNKuCUzaNcGnzHTFmsjBqwewe2yMaPg6my5sYNP5QD1rh8dBtC6GVGeKX3uz\nUs0Z3XRc2Ge7PtLT0f+yWrVLv3oVGW+MApMJgGh9DDPaziUxI5GzaWeoUqQqFgeYJk1Ac/AAitGI\no30HnF0fztMSTBpT0D6DLGJ8fxzW6wkML3+Y9aZLXLNfC3rGbXfbUVDyVDVJFUVB2rsH8eoVXE2b\n+T6D3Ej7dCaechXQbVyHkJ6Ou0o1bH37427QMP9rsduxDH7J7zxZc+IY5nHvIpcug7ND/oqWRIjw\nTxMxvrcZfWv158eTP3Am9ZRf+52FqjCx2WSWHl/CVVsipS1l6VPrRcpGl8t1zo53dKGMpQxfHprD\nZatXevKZGr2pWbSW7xqHHFzLORROt4tlx74LkESUkVl2fAmD6w9n7+XdQV3MJS0leaxUd/Ze3oMk\nStxdvDHD734l74YXkBITEC+qS0+Kly4iXr2CXNb/84o3xxNvjkdITiL6iUfQ7c46X09b/R0fHJ3K\nsbrlKWwoQs/qvahapFrINTxV7RlmHZzOhfTAdbT/4RCWn7bwZHdYKQPqAmI+ahatjeiRMU77CO3m\n9VxLusDZcrGkDRhMnbpdQg++wYXNKyn+7miKHDqB6HLjLl8B+1PPYhv0cu6DdTqsb47Cyqiw7hUO\nhgVfqQZyidYM9Eu+vSWNr2bbFvSrf0IRJezdHkeuGvpnJMLtQcT43maUtJTis9ZfMHn3++y9vPuG\ngERDXmn0OtWL1KBJqab5mrdWfF0mhdB5bluuPdP3fYpNRVnKorVgc9tUNYcvZJwn1ZES0A5wMvkE\nF9LPUyGmYtD0oeLmkoy7b6LK6LzjKV4SuXRZpHNnAvvKlEWOLxZ0rPHDD/wM74F4eLybzJGoXXDc\n2778+BLG3jeBhys/GnSeWEMhXmv4NmO2v+0T69BLeh46ZWTEqmS2loY1YZRsLhNdhpfqDiLqpb4Y\nlnmlPEsCJffD/h1PM+TVlrz32DeqNZEBrlqvMuLX/ox5YzXFE7I+d83pU5jHv4tmxzasr76Jp3qN\n3BdzExEvXQzed/XqP7iSm4CiYP6/IRgXfYNg90rGGufOxNpvILbhI//lxUX4u4mIs96GNCjekAUd\nv2Pn0wfY1mMv9Yo14PVNI2i7uAUD177IkWt5y7sN956PVH40wMVZq2gddjy5n1cbvYVGCHzXS3Yk\nIQnqYg5xpnjijHF0qtiF+iqa0zpRx4OVsty6Do+DiTvH88iKznRZ1p63Nr/qKw4fFiYT9o6BOycF\ncHToAobgEo/aff5R16Oaw5F4/2uu2a8yZffkAFWunDxapTvrHtvC643eZki94Swt/SYL5qQgKbC1\nNNiDyHdbtBbuLXUfT1btyfdPfM99x13of1wZcF2tywr1F67l3a1vBV3D0PUDiF/xM7UTAl94BI8H\nw5pVxHZui2n8uyGfJVdcLsQzpxHSwqvS5K5aDSXIGbanTO5enP8SusULMc7/0md4AcS0NExTp6DZ\nu/tfXFmEf4LIzvc2wyN7WHpsMX8l/UmZqLJsvfg7S44t8vX/cWUPOxK28WX7bwos+pCTSS0+plZc\nHX47+yt2j50aRWoyoN4QChsKM6jey3x5cBbn0s8GjAumRnV/mVY+EYlPWk1n5MZhbL+0DbvHRvno\nCjxR5Sl6VH0a8ObG9v75ab8iAdsubWFHwnYWd15OlD54nd/sWN8eA6KE/ucfES9eRC5VEkeHLlhf\nfzvkuOxqUB4BtpdWv+7I9UNsPL+OlmXbhJyvsLEIg+sPA0D74/cIN7RwqieCxgNulfeV2nF1Wdb1\nR8Cb3J+x4UsEp7q7vnYCzDi/XrXvRPJxNp3fyPBc7KGYno7ps2k4m7XAfW+z0BerYPz4Q/SLv0Fz\n4jhy4SK4mrcgbcJksAQXJnB2fRjX3FnotvlLmnrii2F/tlee1/Bvol+7JkDABDJd6Itw181fqlqE\nW4OI8f2XSXWkkO5Kp7i5RJ6EGNS4mHaBPr88w86EHb42tWCbUykn+WzfJwVPQ8mBIAg8W6M3z9bo\nHdCXqcushoJC/fgGHE85ToojmRh9DPeXac2EZllpNRVjK7G4ywqOXf+LBOtF6hdriEmbFfiz/NhS\nfjkTGCy1J3EXn+2byoiGr4X3EJKE9Z0xWF99E/H6NeQiRUGXe6Uod+N70G/KCgoTQujGiSEcTn9c\n3sPmCxspE1WWTje0pF2t2uCuWBHNiRO0PQlNz8L6Cv7jtIKWrpX8g7sUo3ruNkCGzisZqhYNfSzp\nLzLc6ewtDi4BtCGeRbDbMKxYTnqYxlc8chjjwq/R7NmNdtd2BI/3Z0JKvIy0+FvIsJI2N4ToiySR\nOusrLG+/hnbb72Cz465eE1u/l3A3yL9857+B4FRPqwMQkiO50Lc7BTK+K1euZObMmWg0GgYNGkSL\nFi1u0rJufy5nXOb1zSPYcmEz6a40qhSuyrM1nvft5PLD21te8zO8EFzt6c/rR/J9n/wgCAJ3Fa7K\nBZVausXNJVjQ6TtSHakcuLqPmkVrUy6mvOo8lQvfSeXCdwa0b0/YGvRZc5bjm31gBkv+WszF9PPE\nm4vTueKDvFRnkL8R0uuRS5QM+/msg4ai+WMPul/XICkKjc/DOZXaDtWK1OC+G0IfsiIzZfckVp9Z\nxXXrNTLcGaQ4kn3BZfV+Kc3kSiOo1vZZbH37Yx7zDmJaGl8ug/4dYX0FgQydQvnoCjx+V4+Alx77\n08+in/MF2iv+UegeYHVFqFKkGoIgICQmYlj8DYgS9sefoH6xu4k3FmNllcusLw9t/GP3UMD/lc4Z\nXrCd4fOpmCdNQExRP+MH0G1Yh3jkcMigIyUujrRPvwCXy/snzOjr/xquOvVUjwUAtBvXIR49glzl\nn6tSFuGfJd/GNykpiWnTprFkyRKsViuffPJJxPiGiaIovPBLL7Zc3Oxr++PKXt7YPJJYfSE63JH3\niM0MV0ZAdaFQmMMsqHAz6V3zBfZd2euXCywJEt3ufJxChsIUMhQOanRzwxii5J4xW1DRZ39MZey2\nd3wG7kLGBfYl7iXDmcYrjd7I170B0OtJ/epbdEsXo92+jVfNVg6YtnHUmmW54o3xDK3/f77KSG9s\nfoWZB6YHnXIP53lt3WDWzlpG+udzcFe6C8Pibyh27SqLzOU52rYLFwtpqBVXR1WhTClWHNvr75Dx\n7ghir3tzh9M1sKAWLGpWlE9qvoDx48kYZ3yGlOhVpDJ++jH6AYPpUKUTcw/NottjMHk1ND8DFic4\nJSibzR2tAK5GjXP9eMSLFzBNmRzS8AKIGelod+3AEU7Er1br/XOLYuvbD92va9BtD/y91SQkYP5w\nImnTZ/8LK4vwT5Bv47t161aaNGmCxWLBYrEwerR6se4Igaw+/RPbLgb+wqW70lh49Ot8GV+Hx47N\nHagmFIz7y+ZNsehm0KZ8O6a3ncPcgzM5l3GGaE0sD1ToFFJOMly6V32Kr4/OIyVH5LRG0NCuQkfA\nex6+6M8FAWlL3mL3ixlUf1hQmc2wEEWc3R7H2e1xSgM/OFKYsf8zTqecpJChCM/W6E3F2EoAJFoT\nWXF8Wa5T7iip8Pvaddw7cjhp02eTfl+We7fMjT+hcPR4Gtp1YP2klzidcIhV1bTYa9ZgevXnuf80\nmCa/j2jNilCXLidgfn8c7y9eTky9WFafXsWrPa5SzliaXhtT6L/4hN/8zjbtcDzWI9fn0C/8Gula\n7tHIstmCu/7duV53W2A0Yn/8CVXjC0SCrm5z8m18z58/j91u58UXXyQ1NZWBAwfSpEmToNcXKmRC\nowlRouw/RqhqFAXlzJHjAQXhM0l0XMrXvYsqFmoXr82ms5sC+nSizmdwonRRPFbtMd5u83qBz5jz\nwyNxnXmkbuebPm9cXEPeafEO4zaN44rV62aN0kXRu25v+jZ5FkEQuJR2iVMpJ1XHn049xXXhInXi\n6ty8NRHFhNJjVftW7VsWlhqZW4LThaDV1s0Y9ApEhxc4Btl+huOiaPGFNxDr2czOZcvg5ZfBGpga\nJqalEffDMj765BMUZSIu2YVO0kFvG9SYCFu3gihC06bohw0jLowzcXTh/ayJbVpTuHnuO+n/Ajfl\nO6JUfNAujU77t34P3Qrczs9foDPf5ORkpk6dysWLF+nZsyfr1q0LKmWXlBT4S/5f5e8uZVVKVz5o\n3moRXXy+79272oscTjzs59a1aKN4tdEbSIKGVEcKrcu1o0ZcTa5dVZcw/Kf4Oz7jJyv2pmWxB/jm\n6HzcspvOFR+kapFqXL3qVaNwuSUKG4pgTQ/8WYzVF0LvjPnHSpgVFUr4vRQFo1gadP4TFDmZ66cu\nIpcMT60q1OerX/AVljdGIqYHf1bbleuk+42/ca7b72Xvn0xSHFl9IZBaPkDs5MmI6YHKIAogx8Xj\nan4/6RMmodwCZeRu2s/vva2IvasK2j+PBnTZ6t2d4/8gd8QTxzEsXIDgdOBs0RJXi5a3bO3kSEnB\nIBQpUoS6deui0WgoW7YsZrOZ69evU6RIkfxO+T9Dhzs607B4Y7YnbPVrN2nMPH7XEwWat5ChMPMO\nzeVC+jniTfE8dlcP2pYPUXf1NqOEpSRDG4xQ7TNqjDQv05Kvj3wZ0Ne89P1+1Zn+bhoUb0TDEo3Z\nfGFjVmOOSCZRhh4HIN4Krpp3IhcrHjBPTnZe2s78I19yzZlIUV0xelbvRb3sOdKyjHHurJCGF8B9\nk8UzPNWqY3+yJ8ZZMxDcWallzjr1SH9/MnKFO1BivBFq+kXfoP92AdL5c8hx8Ti6PIS9z4u3rBEJ\niU6HdfhILEMHIqVl/Z/IRiPO+1rkaSrD51MxT56ImJwEgHHm5zg6P0jatBkg3Tpex/8V8m18mzZt\nysiRI+nTpw8pKSlYrVYKFQpdgzWCF1EQ+bT1F7y+eQS/X9xEmjONqkWq80y1XnSp9FCB5m5S8l6a\nlLz3Jq309mPcfe+T7kpn3dlfSHWmYtZYuK90MyY2//AfXYcgCExs/hEvrxvAroQduBU3Rq2Rakk6\nnNYUilihy1EYsh1kown7U8/m+gW64vhSRm4c5uf5+OXMz0xs/hEd7vC6+sXLCWhU5Blz4ilRqkDP\np0bGu+Nx1W2AfvWPCDY77ho1sfUb4Fey0TBvNuY3X0O03fBOnDqJds8uhOQkbCPCTBe7xZBjYn0p\nV5mINhuW994lqVVrlMK5b2jE06cwffiBz/ACCC4XhqWLcdWrj71v/5u+7ggFQ1AUJUQWX2gWLlzI\nd995pev69etHq1bBg3huJffBP+nuSLQmkmJPpkLsHfnSI75V+bddSseTj7EzYTu14+pSrUj1f20d\niqKw8fw6TiSf4L7Szalc6E70C79G/90ixMuXkEuWwvH4EzgefizXedovacnexMAgnYbFG/H9Q2u8\naUVpqRjqV8GSHFwYWhEEUhavwBVG3d6biiwT274l2j8CqzS5y1UgacNWMJkQrl5FvHAeT+U7/7U0\no5v582vp3xfjdwtV+9JHvBaW1KRp/GjMH6rLrDratid1/qKAdmn/PnTrfkUpUhT7o93/c2UZ/+3v\niJvB3+J2BujevTvdu3cvyBT/88Sb4ok3BQ+6iPD3UCm2MpVib0Jd2QIiCALNy7SkeZmWvjZH9ydx\ndH8yT/OcST3NgSv7VPv2XdnHpYyLlLSUwm02s6mCyAN7VS8FwF2ztrd60T+MkJSEdOKYap/mzCk0\nO7dh/Hoe2vXrkJKT8JQtj/2hR7C+9laeXNJCSjKGLz5Hc/wYSmwsth5P46mVj0A7j8ebWrZrB4rJ\nhL37U8h3VcnzNGJycAlUMSlMeVRXiNiBnCpnHg+WIS+h/2ElYob3Jczw+TQyxr6Hq3lLlQki/B38\n72y1IuQdjwf9N/PRbd4ACLiaNsP+xFOR86P/IAaNAZ2kx+0OlOo0SHr0N/KgL1sT6NvWztwkaHYa\ncmbJ2kuWwP7am95o5n8YxWJBiY2FtMDdjhwVhfHTTzCsW+trk86exvTxZBSzBduQYWHdQzx1kuhe\nT6I9fMjXpl+ymPR3xuB4smf4i7XbiX7yMXS//eI7pjfOn0fGK69hf/7F8OcBPOXKB++7Mzxj7mzd\nFtMXnyM4AoPf3DX9XyyMH0/G+O0CvzbtX0cxvzGS5LWbw1J0i1BwIoUVIqjj8RDVtxfRQwdiWPod\nhqWLiRo6kKgXngMVPdoI/xIeD/qv51F52OusXGGm706Qcqh43l28MUWM3nPDaH0MriKFaf0MPPgE\nvHE/TK8Ln9wN41sZOPvj97hahtCdVhQMn35MTOd2FLqnAdE9uqH76Yeb8yx6Pc5m96t2uWrXRbdz\ne0C7oCjof1wR9i1ME8f7GV4AMSUZ0yeTIVuBg1wZMwZ9NsPrm+ejSQgXL6Cf/yXmUW9imDk913lt\nL7yEu1yFgHZn/bux9whP8c59z33YH+oWkD/hrNcA28DBfm26bC8w2dH+eRR9EPd3hJtPZOcbQRX9\n4oXov18e2L5yGY52D+B8NHLc8K8jy0T1fx79siUIQKsbf9qdgEcfA1mEakWq81aTrMpDFq2FZqWb\ns/ivb/npLvjprqzpOt/RnudLBUp3Zsc0+m1Mn37sKwigOf4X2h3bSHdOwfHgI8EH2mwITgdKdExI\nF3H62PcRk5PRrluLaM1A0etxNrkXZ/uO6DdvVB0jXr7sfSEMY7eu3bNLtV1z8iT6H1bg6Pa4d87z\n5xDsdjwVK6mvd/PmwDa8GtWFHmiNdClLRtU4fy6pU6fjqVFLdYxcvgJpM2Zj/PhDtPv2omg0uBs1\nIf3Nd/Ok4JX+0TTcdeujW/8bOOy4a9XG9tJgXxR5JkKISHfx6rWgfRFuLhHjG0EV7e+bVEoyeDNh\ndJs2RIzvfwDd8qXoly8N+H96+CjMT27J2fho+mzSYNw2DccDnXC19aacjb/vA1IcKWy6sBGb24pe\n0nNPyfv8ClmoISQnYViyKKASj5iaiuHL2arGV0hMxPLmSLTbfkewWnFXq4Gtbz+cHbuo38RkInXO\nfKT9+9Du2Ia7Rk3cje9BPHMaOSZGVZ5SLlU6fDd5qKNhQUCzZxfmsaPQ7twOLhfuWnWw9h+Is6t/\n0QpcwYsiZDe8AJrDh7C88yYp3wXfobvr1idtznzIjH/NT1qVKGLv9Tz2Xs+HvMx9V1W0Bw8EtMsW\nC462/ztpif82EeMbQZ1Q6le3Y77lLYhu0zpfqcGcPLHoMCQk+P5tWLwQa+8XsI4aS7Q+hvkdF7E7\nYSd7E3dTs2htGpUMrk6XiXbzJqQgxeylY396DVL2nZosE93nGXRbf89a89bfkQ4fJDU6Fvd9wYO6\nPLVq46lVO2uq9UnUlgAAIABJREFUcuVxtm6HYYl/1K6i1WJ/JHQkeHZc9RqiOXEioN1dsTLOFi2J\n7dwezfG/fO3avbuxjBxOapmyuOtly5du0AC2BMpCBhSdyJxnx1bEs2eQy+ZSc/gf+N2y9RuAbsc2\npHNZ5T0VwNHloUghh3+QyJlvBFWcrVqjqOwmFEnC2abdv7CiCDmRjgaqIvnIZngBBKcT49xZSPuy\nwpzrF7+b52u9GJbhBfCULYsSJB1FiY4Bjf+7vO77FWizGV7fulNSME2ZFNY9s5P24VRsPZ/DU6Ys\nstmMq3oN0l97G/vzL4Q9h/WV13DVqOnXJpstyNFRxHZq62d4feu9dhXDVzmEWd54A1edegHXBjWd\ndntId+8/iadWHVLmzMf2aHdcNWvjvKcpGW+OIn3yJ//20v6niOx8I6ji7PIQ9nVrMSz6xqdIpGg0\n2Ls/Gdxl+D/OqlM/8vXhLzmXdpaixjg6V3qQZ6sH1jYOFyHhEoaFX4PL5d2VZEtj0f26Gs0B9dSi\nYLsv0WZFv3I51tp187UeT606uBo1QbdxfUCfU0XGULNzW1BjpN2yCSHpOkqhwiHvKZ49g2HOLMSk\na8jlypPxzmjSx7yHkJKCUrRoniPv5bLlSFn5M4aZ05GOH0M69hfag/vR7Q3MLfZbR6L/ywxxcaR8\ntwLLkAHof1gR0psN4K5RE89dBdtViqdOYpowDu2enaCAq34DrCNeQ76jYp7n8tSqQ/q0GQVaT4SC\nETG+EdQRBNI/nIrzgY7oflkDgKNNO++54f+a21lRvAUITKagz770r8WM2Pgyqc6senvbLm7hSkYi\n/9fw1Tzf0jDjU0wfTUK66i0SYZo+DdtTz2J9ZwwAuiWLEXPmb95AtkQhhbPLSk/HNHEcuu3bQPbg\nrlWXjGEjUELUMU57/0OiBvdHu2sHgseDbLbgbNWGjLfHBFwr5qgj7NfndmMe9y7pEz8Keo325x+J\nGjEUKeGSr02/fCkps+YhV8pjjrbD4X2RvJyAq8k92IYMR0i4RKFWTRFCnN9mIpcMVPxSomOQS5TI\n1fDK0dHYnn+xQCl6QloqMb2eRJMtUltz5hSaw4dI+f5nlOgYhOQkFLPlpqYK6b+Zj37pYsTLCcil\nSmN/rAfOh0IE1kUIm4jxvdVwOr3nav+EARQEnO064GzX4e+/138RRcE4aYJXjODyJeQSJXE8+Ai2\ngS/7ff6KojDn4Ew/wwvgUlx8++cC+tcdhFlrDvu24pHDmCeO9wsuElNTMU2fhm7TeoTUNIRrwQ2b\n564qSLt3BrTLJjOOzMAht5uYnt3RZYsg1v6xF83e3aQsWYkSqy4VK99RkZSVP6P9dQ2ak8dxNrlX\nVaBCOnwIMTVVZYYsNDu2Be/0eDBPHO9neAE0Rw5hfm80aTPnhZzbb8y2rVhGDEF79AgAik6Hs1Ub\nXA0aIYV4QfAtpVhxrM+oezAUQ3CFLU/Rojib34/98SdxtyiYeIVhxmd+hjcT7dHDRL3UF/HKFaQT\nx1BiCuFs3oL0MRMKrP5lmPYxlvdGZ+UOHz2CdtsW0tPScPR8tkBzR4gY31sG/fIlGObOQjr2F0p0\nDM7mLch4ZywYgheRj1AwTGNHYfrkQ19Qk3TtmvcL0On0k/yzuq0cSw48KwQ4m3aGnQnbaVEm/C9f\n47dfq0b1Ch4P2gP7cx1v794DXVwR+PlnX5ui02F7ro8viEn/7QI/w5uJ9sA+jJ9PwzryjeA3EARc\nbdrhQv3s3/j+OEyfT1WtYOQ3jTP4jlO77Xc0KhG5ANpdO8HtDjhjVsXjwfLmKz7D672vE/2qH1Ey\nglf2UkQJxWjEXbsO1gFDkHOcE2dif6onhvlzkXIoUSkaDemjxuN89PGg9xAuXcQ88T00e3aBKOBu\n0JCMEa973ek5kE4GBollolv7S5Y2dGoqxvlfIiYlkTpnftAxueJ0YlwwL0C0Q8zIwDh/Do6nev4r\nQiy3ExHjewug++kHLMMHZ+0kriSiOXEM6coVUmeFvwOIkAdsNvQrlwVEEwuyjGH5EmyDh/kie/WS\nnihtFNftgTmSRo2Rkmb1IgW6777F8ONKhNRUPBUrYe3b3+tOtdnyvWxPocI4O3aFIQNInfIp2h3b\nQK/H0akrrvuztNc1KvrJvr4juRdeUEO/cAGG+XPR7tyBoOQuxKIWsOTD7QkayY0sZ6Xk5IJ29So0\n+9XPxqUrV3CXLIXm4oWAPtvTz2D9v9dQ4kNLv8oV7sA68g1MkyYgJV72tkVFYe/xNM5uwaOwhfQ0\nYp7ujnb/H1lrPXgA6cA+Upb+CEaj3/XBPBFAQFEGAO26tUj79/lFjOcF6fhfaI6pv1BKf/2FeCUx\nrCpbEYITMb63AIb5c1VdeNpf1yD9sRdPnfwF0EQIjnTuLJrTp9T7zpxGTLzszS8FNKKGpqWbc+bI\n6YBrG5Vowp2F7wpoN40fjWnaFITMc9tNG9BuWE/q7Hm47m6EMmdmrmeJqmtLuo5l+CD48XscPXvh\n6NlL9TrFYgk6hxyiLxjGieMxT5mU9Ty54K50J9YQkpCue+/DVbU62iOBrlZ3vQZhi09IVy4HNeKC\nzarqOVLwVnXKzfBmYu/1PI5OXTEs+ApcThyduuaasmOY/qmf4c1Et3sXxrkzsfUb6Ndue/pZ9EsW\nIV33f8FTRDEg7xpAtGag3bE138ZXLhKHHBWFqCL1qURHIZvz/jMSwZ+I3+AWQDpzWrVdtFnRbQtM\n5YhQcORixfAE+fKV4+KRc0Tpjmn6Hm3Lt0cveVNxREQaFm/MhPsChSuEK1cwzP8ywFBpTp3AOPUj\nnA91wxVEDSkcdBvXwzH1AgWZ2Hv0xKNSAlTR6XC2CF6dTA0hNQXj1/NyNbzuUqVxtGmH9YWXSP5u\nRegiBBoNtoEv48lRTs9dsSIZQ/8PrFZMH7xHdI9uRD/1OIbPpyJcvoxw9arf9Y4HOuOJC2JEbVZV\nd64A6Nf9EvJZcqLExWEbPBTb8JFh5cpq/gyeJiapnO3KVaqSMXo87gpZkc3uipXxlA+UpQTv/6O7\nWv5rMivFiuEMUlzDdW9zyMcLWgR/IjvfWwC5SFFQcQEpkoS74r9fmafAKAqabVsQrl/3ukbDCBQR\nL5zHMGsG4tWreMqVw97nRW+u6c1aUkwszvtbYfz2m4A+Z8s2AWs0a83M77CIbRe3sPvyTirGVqJd\n+Q4IKoFx+hVLka4kqt5Xu38fSJJXjOFg7ue7aojp6bB3L9z/QNBr5Mp3Yn39bUyTJyLdcLsqOh2y\nKBI1ciju+XOxDnwZV+u2ud5Pt+Zn3xyhsD/XxxusFibO1m1Q7DZ027ci2Kx4ypTH9mJ/lOgYYp7o\nhm7LJt+1+jWrML/7FhgMuOo1wDp0BO57mqLEx2N/tDum6dP83LMKoLl8Oei9xetJQft82GwYZ89A\nc+gAismCvdtjuBvfE9azKVHBS80p0dEqjQrSoYMIN86pFUlCLloU592NMX/2cYDr2dnkXtz3NA1r\nLcFIf28SYmoa2u1bENxu74vZvc1IH/9+geaN4CVifG8BHB06od25PeAXzNWgYVhfjv9lNLt2YH7r\nNbR7dyN4PLjLV8D+9LP+X9JOJ4YFXyEd2AeWKNwVK2OePMHvC1+/Yimp0+cgV61209aWPuFDBJcb\n3W+/IiYn4SlcBGebdqSPnRB0TOOS99C4pP8XsOb3jV5ZxrR0PHdVwRNfLOh45YYbVEwNDLjKE8uX\nhzS+APaez+F48BEM8+ZinD4N6XICEoDd7lWiOnmclK8XI5cui2niOK8usqJ4jdvwV32BQXJcXFD3\nZybOe+/D1qdf7ut2uxGuX8M0cTz6n39CupyAp3ARXPe3wjpkKIbvFmFYME818Ex0uyE9Hf3G9WhO\nnSR5+U/IZcpifXs0nnLl0a/6Ec3hg0iJl3N16XsqZNtRulwIDrs3jSfzZer6dWK6dUa3c4fvMv13\n32IdNiKsFwz7Y0+gX7YEMUdKmBwTg/2JwGIKhi8+x/T5VN9nLHg86LZvBZeTjCHDMHy3CM2Z08gW\nC657m5H2QfAUrnBRSpQkZen3aH9bi+bPw7hq18F97z9favJ2RVCUMCMXCsitVBT5P1fEWVEwjRmF\nYclCpIsXUQwGXA0bkzZhMnLFSr5rhLRUhLNnMS5agJCSiueuu7D16hMQvPFfIC4uiitnE4lt0xzt\nX/4uOMVgIPWTz3F2fRghJZnop7uj25Yl5adIkmqQiaNDJ1LnLghoLyjixQtIhw7irlkLpXiJPI01\nTPvYmzZkzYqsddWoiWC1olFxeVr79iNjzAQsQwdinP9lQH/YlCrF1Y3bUaJUdlGAkHQdISMDuVRp\nDF98TtQbr6heZ+v+JNLxY+h27fBrd9ZvQMqSH7weAFkmtkNr1aIF7pKlcDzZE+tLg0N7NBQF48Tx\n6L9fgXTyOKJK7q0nPh4pUd1joEZGv4FYR431a4tt3zJocYVM5NhCpH76Be5GjTG/MdIbFZ6ehufO\nKt7z3YcfJW7MG/Dxx4FrjIsnad2WsM6LDZ9PxfT5VKSLXslOT3QM7ib3kD5mAnKOMoMxD3ZAtyWw\nmIMiCKTOmofz/tZoDuxDLlUauUzZXO99K/Cf+x7OB3FxwT0ckZ3vrYAgYH3zHWyDX0azeRNymbJ4\namadCeqXL8Ewawaa/fsQHHa/HYh++VJSvlqI8h+MTDR8PS/A8AIIdjuG5Utxdn0Y0/jRfoYX1KM7\nATS7dnrLt93k9Cu5ZClVkYXcEJKuY5o+1c/wgjeq1dGiFYLLjXTuDOANnHE2v5+M194GwNqnH7oN\nvyGdOxfyHsHUrLh4EfFKIp4cxlc8cwbzW6+i3fo7ojUDd/WayCHc9ZqdO9CqFLjX7d6FcdYMbAOH\ngCiSPno8lmGD0R71RkorGg3O+1p4o/HDOB80vfMGps8+CbkjzYvhBdR1qFXq3WbiiY7BXa8+tuf6\n4Grdluge3dD/uiZrvu1b0Rw5hGI2w/bA8oYA0pVEDIsWYBswJNf12V8cgKPH01gG9Ue3YR1SagrS\n6lVodmzD3quPX7qXcP266hyCoiCdPQNmc9gu7wj/DSLG9xZCiY7B1aGTX5t27RosI15GTE5WHaP9\nYw/m8aNJ/2jaP7HEPCFeTgjaJ1zzBs5oc+y4QqIo/1qtYSE1Bc2+vXjK3+HbeRi+nIOUoP6M4pVE\nktZtxjBnFkJKEu76d+Ps0Nnn1pSrViP189mYPv0Ezf4/vN6OBg2RjUZ0e3eDw4m7eg2027agySaQ\n76NiRTwlcrwweDxEvfgcumwCHNq9u5GD6DUDPmlRNTSHDvr+7r67Ecm/bMDwzXzExMu46tTD1aZd\n7mIwViuW4YMxLF2cr+juUMgqu093zVpoDwXmD3sKFyH5143IpcsAoNm8UVVGU0xNxTB/XsjnkvKQ\nqiWeOolu03rEjKycaCkpCdO0KbjqNfBVopIrVICjgfPKRhOuJveGfb8I/x0ixvcWx/jVl0ENbyaa\nvBiwfxB3jVoogqCaCuLJdLu51Xe5qvPVrVdgVZ88I8uY3nkdw8plSBcvIkdH42zaDGfTFhg/CV6i\nTzpxjNiWTfFUrIT92edxPtAx4Br33Y1IndMooN2a7e+m8e8ifTTJ7zNUAKFbt4DjBt3SxWhVlK9E\nhwPZYgkQxZBjY31n0KrPcCjHuatej/3Z4FrW0uFDaDdvxFOmrLcO8M4daP7Yi5SgXimpIHhKlMT2\nXN+AduvAl9Hu3I7mxHFfW6ZmeabhBe9LSbDobfHcWWjbGrapK3Tp1v6CeOggcvXco40Ni75RTecR\nHA70P6zwGV/bM73RbNsaIObhatkad936ud4nwn+PiPG9xRHPq+x6chAqEKZAuN1euct8Gjxn5664\n7mmK7vdNfu2eYsWxP9fHe4s6ddEePhgwNqfRdpe/A+vQEflaR0EwTpqA6fNpvl2bmJqK4acf0K/6\nMbhIBCDa7Yhnz6A5ewbt3j2kCp/iah9ogHPDOvJNFI0W/Q8rkS5ewFOiJM6OnTGPHYtm9ToMc2ai\nOXUSuXAR72cWZB532fJQuLDX0+Bw4ClbFiElFe2fR4KMAOnEcQwfTcL+0qDQebdOJ1ED+6H75WfE\n9LTgrvJ8IGu1OO9rgXg10atiJcu46tXHOuT//AsOuFyg0aBbtxbBYQe8LylydDT2p57B3ut5pBPH\n8dxREQQBzx2VggaRyUXj4O23cS9ahOZi4IuDdP0apq/mkP5e7pWbhBCCKkL2OIGWrUmbMg3jrC/Q\n/HUUOToaV7MWZLw1OmCcds0qjPPmIp47i1y0KI7OD+II8VIU4d8hYnxvceRgOYzZcGWvQ3ozSE/D\n8sZItL9vQrgRiGJ7rk9gwfHcEEVSZ3+FedSbaLduRrDZcdeoifXFAb63eeuwV9Du+wNNNlehbDRh\ne+oZBNmDePUKntJlsfXtF7IgwN+Ffom6uzSU4c2JmJyE8cvZ+TK+CAK2/3sV29ARCOlpKJYopH1/\nYH7rLaKnz/AVZgDvDi+Y4ZMrVSJt5jzEM6cRr10l+vlnkJJDp9uIbjdR40Zh+H4ZqdO+CJrfahrz\nDoZli7OWnMdHVAB3hYrIpUqhzyaJqej12PoNxPraWzeKRIz3Gqa4eJ8Clu6n7zHM/gLN0SMoooh0\n9YrPlS4AUmoqxlkzMM2cDrKMu3ZdrANfxvlAR1z170a30/9sV9FocTz0CPrYWFzN7kez8GvVNUuH\nDnrXkIvb3V2nHgQJrPPkyNN1te/o/RkJMa9+xRIsw4f4yZPqtm1BTLyMbcRrIdcS4Z8lYnxvcRwP\nP4pu88YADdZMXFWrY82mQ5wb0v59Xm3YK4l4SpfG9nw/5HL+BcCj+/RCvzZbIMrW39EcOUSqxYKr\nVd5Sn5RChb3n0YoCHk+AXq9cpizJy37A+PlUNH/+iRwVheOhbn5Sif8WQnISmjPqKlh5RcpZ4F1R\nkHbtQLTbcDW+N3dFJ0lCuHqV6F5Po92xFZxOctbQEdxuZK02oIqPHB2N/YmnvH8vVx796p+QzocO\n9MqO9sB+ot4cScriFar9unW/hj2XGgKgPXWC1H4DcXbqimbPTtAZcHR5EFeLlgjJSUT3eNQvItuw\n+FvsD3RCv3kDYm4vEdl+d7S7d2IZ8TK2/XvQ7N0d8LIiSyKe8ncABBW4ANDu2EZM1wdI+2AK8p2B\nCmeZ2J94Ct3Kpeg3bvBrd9ZvgLVvf/VBwQy6omCYPTNAF1xwuTAuWoit/6CIOMZ/iEiqkQq3Woi7\ncepHGL6eh+bEcRS9HrlwEVzVquGpXQ/bC/1zrZmaiW75EiyvjfDbLXnKlCP10xm4G3kLrms2byS2\n+8Oq52F5SfX5Rz/jjAxM749Ft20ruFy4a9X2uiXLly/QtMYPJ2IZH+j2C0WwM25XnXokr1kPgGbj\neizj3kWzby+Cx4PrrqrYXhyA48nA/M+siRViurT35n7mgrNmLTRnTiNkZOCuURPbc31x3DC+AJbn\nn8G4clmenks2GEnatD0gRQZZpnDdqkiXLqmOywv2h7qRNn12QLvprdcwfz41oL0g7u1QYx0tWqJf\nt5arJy8Q80Br1Yj9TJyN7yFlxarQO+CMDEyTJ6LduRU8Mu569bG+PAKlcHi/tz5sNgrXq4507apq\nd/I3S3C1apO3Of9FbrXvYTUiqUa3ObYBQ7A9/yKavXuQ4+Ozcn/zgixj+uRDP8MLIJ07g+mjD0j9\nZgkA2j0hAlHOnMn7fW82ioJ2wzp0q39CAJwNG2Oa9L7fF6T24H5v6bzFK1Hi4xEuXsA0ZTLag/tR\n9HpcTZthHfhy1m7T5UL/7TdojhxEiYnF9lxflKJFES+cz9PSXFWqoRgM6FSKGjhviKUI168RPXSg\nN30kc71/HkEa9TqeO+7AHSSyVbv2l7AiwxVJwvrOWNxVqiGkp3mNZbbqNOLp0+g2bwg+QRBEuw0h\nORnK5ewQcVe686YY32Bo9+5WbS/IuXKosZrdO0FRUKKiSZ0+G8v40ejWrlEvcLBrB9qN63E1vz/4\nhGYz1jffCd6f+bKWW+S4TufN61YxvorBmK90uQh/HxHje7tgMOBukv88P+mPPUFLuGn27vGdJ3rK\nVwi6ewvn/PlvRVEwjxiK8ZuvfC8IhlkzVL9ItUcOY/zkQ2wDBhPT41G/oC7d5o1Ihw6QNnMeQlIS\n0c884bejNCycT9r4D/yiY4MuCa970tm6LdYBQxDS0ogaPhjt7p0Ibre3ClGnLliHeUUuDLO/8DO8\nmYjJyRgWfk16EOMrnTgeNP85O6469XA1bQaCgBIXF9Bv+HIWUpCcUlnSIMjq1YZkjQbd9yuw1agZ\nUDTe/kxvtLt2IBagWhOAosvhenc4MHw9L6j2+d+GKGalhFWvQer8bylcvwaSSsqX4HYjnToZ2vgG\nu82xvzBPHId2t1cUxFW/ARkjXvdWvlJDknA1bYbm9MmALlejxnhuovpbhIITMb63KOKJ45g+/RjN\nkcPIZjOuFq2w9RuQ/xqbGq13rNoXuCShiN4vVGenLrjqNfDLFQWvLrCj60P5u/dNQrfqR4zz5/oZ\noVB7BeOCeYjXr6lGU+t/WInjh5Xo1v4S4MqVzp/HPG40Kct/xLB4YdDSa7LRhLNla9wNG+MpXRql\nWHGUkqW8xeg3bUA6dQLn/a29Os43EEMUdxeDuBMBXE2bIVuiAuQK/a6pUo2M0eND7qBCnY8KHnfQ\nz1N0u7F8PAn9mlUkr1oLZrOvz9mqDYreUKBSiYBfKpR45gzRfZ5BG6I0YjA8MbFgNCKkJCPYbHne\nIbtr1Qk4T3dXvlPV+HoKFcLZsnWe1ygkJxHd+2m/OsTSubNIR4+S8v3PKDGxquPSR49HTExAt2Ed\ngsOBIoq46t9NWhiR1xH+WSLG9xZEPH6MmKe7o8mmPKTbsA7p2J/5FtPw1KyFq279ABlBAPfdDbPS\niUSRtCmfEvXa/6HdsQ3BbsddrgL27j1wPNkzrHtp9uyCY4eQ7qp1U8sh6tasCmv3l4mYloYum4JR\ndgRFwTzm7YBdXCbaI4fQ/r6Z1M9mYh73Ltqd28Hlxl2zFp7Kd+IpURLN4YPoNm/A8ONKb1pL8RJ4\nipfweilq1MQ6eFiA8pinYkXV+wF4sskGComJGGdNR7h2FblcBW+0eZt2GJZ95zdGljTIZcrgbNqc\njLETgkqNCulpCFev4qlwR9D7h2OktEcPE3tvA1IXLkWuUhXp4H6iez2Va+R0WGQLjDKPfitsw5t5\nfqtotbjubkTae5Mwj38Xw6of87wEBXDXrkNOWRLbM73R7tkVkHPv7NTV7+UqXIwzPvMzvJlojx7G\nOOMzrP/3qvpAs5nU+YvQbNuCdtcOPHdUxNm+Y6Tw/X+QiPG9WbjdGKdM8r5x2my4q1XD2n9w6LJp\n+cQ0bYqf4YUbZdCWL8X2XB88terkfVJBwPrKa0hDB/m9wbuqVCV95Jt+l8p33kXKdyuRjhxGTLiI\nq9E9YeX6CknXiXrpBa9Wrt1GrNGEq3kL0qbNCKpBnCfyYHgzCVXAQDx/DqVIoGs2EyE9DU+tOqQu\nXIpw5QqC24VcvAQIAsbJ7/t9uQuAlHAJKcF79qnbtgXttq2kfLvMz/1r7/kchkXfeKsbZX+0smWx\nPf8i4C2UHjVskF9EsmHpIlI+n40cH492/W9oL5xHsVoRPW7E06eQzp5BTE4mbcZs/4hyux3Lq8O9\nxSMSL+MpWw5PfDFfYfhMZL3eLyo4FNqLF4gaPoSUH1Zjeft1NGG6hX1GEnVD765R07dm7Q51gQs1\nMueyP/gI6dNmeFWl1v8W9vicc5lmfAb3NoZWWalhrgc6kspnGL+chXTyBEpsLM5WbfOUaZAdScV1\n7Os7FagJnhN343sicpP/cSLG9yYR9VJfv12Hdt9etDu2k/LVt8HPaPKJJoh8nWjNQPfLamz5Mb6A\nq3lLklb9hnH6NLRbNiG4PTgbNg66W/JUrZancyTLK0PR/7o6a702K/qff0IZOYy0aV/ka81+67+n\nKYZvF+TNjSjLQb/sRZcLV3ycqgKTp0xZHJ26+v6txMWR/SRUtzb3erDag/sxTp2CddSYrEaDgdRZ\n8zGPefvGbtqFu05drIOGegPpFAXze2MCUoE0hw5injCWtNlfIR08QOGu7f0EIgRZxvDDclyzGmF/\n4SVfe9TQgRi++zZrnlMnUQQBd8lSCB4PisGAu249tJs3gyN8bWXNnl1I+//wPkOYyNHRZIwai271\nagw//+DX5y5dBnvP527844a4SxCC/X9qbtTJNY0dVaDzZ8HphCVL/IwveA2wS0WpLD/krBft31ck\naF9B0OzYhv7HlYCAo3MX3A0C1dUi3DwivoiC4nRi6fsc+hzuPgDNieOYPgtMgSgocqhdZog6oeFN\n7kG3aQO63bvQ7tuL+YvPiO3YBv3yJQWaVki6jnajehStduMGhBBnleHieOwJnB0752mMXLQoskrg\nEXjPbDP6D8KdwxUrm8xYe78QMmdSSE0N6/6aw4FBbnK5cqR9MZfrO/dzfc8hUr9e7Ev1knbtQLNv\nr+pcul9+JrpbF6KGDgAVyUIA3eZNWRWwzp1Fq/KSICgKmosXEC8noFgseEqXRbyat6IGgtuFcPEi\ngt0e9hhXyzY4nnyGtNnzSH/zXVyV7/TpTmvOnyO2S3uMY0dh+HYBcln1yj2yThf8XDotFc3W3zH8\n/FOenkWVXCRdC4rt6V54ihQNaPcULYqt57M3/X7mN14htltXTJ9NxfTZJ8Q80hXzW0Fc27mhKBhm\nzyD6sQeJbd8Sy0svIAX5mf1fJrLzLSBRg/phWB5oeDPRqIihFxRX85Z+Sj+ZuMuWx/bIY5jeG412\n+zbweHDVrYdtyPCwc33N494NOEuTEi9j/OA9HB06g06XrzWL164hXr+m3pechJCcjGIJ88XBZsM4\n41O0f+xF0WlxtGqL89HuIEmkfvElhnlz0G7ZhHj5MkJyEuKFC0hBjLsSHYutd18sb44MrJfcrDmu\nhx8lpd4F7PPpAAAgAElEQVTd3nq3p08iFyqE8+FHcbZuF3KJnsqVQ0oz+jCGeJFSEdYQnc6gxSNE\nhwO9SjEAv2tOnSS2XQvEM6dR9IYAreDsCID20EHEM2fynraj1eJuci+uqtXRHjkU0J3pJRDwKlU5\n721G+oQbQUEaDa6m92Ga8oGfq1s6fw7zlEneMaKousMVnU5kSYPoCSwI4a58J4YVyxCc4bnPM9ep\n+ux3BRfOuBnIVaqSMeY9jFMm+c5+XVWqYhs8DPkudSWx/KJb/RPGOTP9xFdEmxXj7C9w3tfCWyAj\nD5jefg3TjM98nhftnl3otm4mdcYc3A0a3tS138pEjG8BkA4dRLfm55DXyOabryhjGzAY6a+j6H9Y\niWjzyux7ypQj4813iO7fB/26tb5rddu2oN2xjZTFK8NStwnmJtT+9Se6n77H+eAj+Vqzp2w5PJXv\nVI0Mdt9RyXtWGg5WKzE9uvnVNtWvWIZtxzYyPpgCGg325/r4tKEBjJPfx/LeGLXZ8JQsif35FxDS\nUjHM+QIpIQHZbMHVui3pk6YAIJcvT8b4iXl4WrD1fhHtzh1IISo3KYKAM4+iB65GTXAHMWjhoDlx\nLE9BaUDQF5dQuGrXhZgYbL1fQBr1ekDxgEyDpgD29p1xN2uGYf6XONq0R65SFcPCBYgq3oPMcaH0\nytUMrycmFlvvF9Cv+kFlRHBUz55LlETz8suB9z17BsO8OQjp6bjr1MVx44UwLFRyeR2PPIajy0M+\n74SrVZvclc7ygW7VjwGqZ+B1r+tX/ZAn4yteOI9h8cKA/x/p/DmMn00lbda8Aq/3duG2dTsLV65g\nnD7Nm+d5E1yaaug2bwyZ2qEIgk884aYiSaRPm0HK0u9JHz6S9FHjSNqwBcFqRZfN8PrWuXsXxhmf\nhje3HPyLWXAEP2fLFZ0O++M9UHJ8eSh6PfbuTwbISgbDNPWjgKLigixjXPQNmhx1fzOxP/EUnqLq\nrmV3oyaIBw9gnDMTKSHBGxiVkY7m+F+Ip/MvHem+tylp4z/AXa48ssGArNcjZ3t22WTG9vSz2Hv2\nytvEGg22AYPxhOHJyJmNK0dF5dnw+ubSBZYdVAB34SJ+zwXgLluOtPc/BMDR81lSv5iLvVMXZBWv\niQAYflpB1LBBWEa/TaGOrbEMG4QQIhAuP4gpyUQNeQnh1KmAzyWvCLLsM6qaXTswTv0I86vDiW1/\nP+aPJ2OaPYOoQf2IebQr5KgUFTBXWiqW4YMpdE99CtepSnSPbmg3rsu6QKvF1b4DrvYd/hbDC3iL\nTgQjxNm6GrpVPyBdU/dwBYtV+V/lttz5GidPxDhrOtIV7zmV6dOPyRj6Smh5vnzgLlchaOUTRZSw\nPdUTe58Xb+o9/e5f/27c9e/2/Vuza2dQ96D24AHCCTFx16mP5lSg0XGXvwNH564qI8LHNmgoSlQU\n+mVL0CUm4CxeEvsjj+F4+lnfNbo1P6Nf8i3C1avI5cpjfa4vcmaUK6AJpmZkt6Nf/ZNqhKdSoiTW\ngS9jnvSebzeVueu0dXucwm1bBEQ9aw4dxPLWa6QszzofFJKuY5w5HSHhInKpMtiffwElOgbhyhX0\ny5egmM04Hn4UDAaE69cxfzQxINLXVbEyzi4P4XigY77TrByPdsdTqbJXUnTHdl8B+5y4K1bCU6sO\ngtOJq3YdjF98HvQsOBQK3khh3W9rkK56c40VjQbZZEJz/RoK/pHKcnwxiInxjXe1bINcvCSGH1aq\nzu/n7kxLw/DV3HzlxoZCwHt8IiZeVv0dUfBKZEr23H9LpMsJMHky0SdPo1v7K4LdFuCeFvC+nJsn\njCFj9HvqEykKUb2fQb8+64VZunQRzYH9pM6Z/4+5aN0NG8Pihap9rsZ5qxUsq5xTZ6Jky/2OUEDj\na7fb6dSpE/379+fhh/NY0eZvQvvLaswfTfQL9JDOncU8+i1cTe7xLzNWQFzt2qtXPgGsfV7AGuyX\n7u8iSFQyeIOHwiFj2CtIhw6g/evPrLHR0dj6vVTwWrkuF/Znn8feqw9xcVGk5NBtNcz8HPPYUYgZ\nN0qpbdqA9rdfSftkOu7GTZDOnQFPcHdjphCIGvZ+A3A2v9+7wz11AmfDxtiHvYJ55LCg6UbanduR\nDh3EU70Gml07iBrwApqTWWkehu8W4WjcBMOan32pOZ533iBj2AikK1cC0oUANKdOYK1eI3+GV1HQ\nLV7oPVZwu3E1akzGq29RqPV9SCpSl86uD2HNliamX7HU90Kap9uaTKSPex/Ly1b0q39CdDq9yk03\nXmQCjM6uHVheHU7q/EXgdmMa9y66NT8HfVHNiQBIx4/jKRoXIHcasDb8Xdi5nU0H6xcApWQJOBk8\nxcePn35Cn60YRtCX3u3BU6J0v6xGt2l9QLt0OQHD7Jmk/0PG1/5kT3Srf0KfI+fd0aYdju498jSX\ns/ODuKZMVhWucTZtXqB13m4UyPh+9tlnxGR7w/0voF+xVDXCUrp+DcNXc7G+nTch/JAIAmmTPyHq\n/4Z45QJdLjxx8TgefBjru+Nv3n3CxP7YExi++SrgfE3R6XB26BTWHPKdd5Gy9EeM0z9Fc+o4cmwh\n7I/38EXb5hlFwfD5NAzLvkO8eB65WAnvDnrMOzkWb8c4a3qW4b2B5uIFLCOHgSSi+fMosl69uLsc\nFYW92+N+9zVO/Qj99ysQr1zGU7I0isGA5s+jSImX0W3bgn7r7xBK0cnlQky6hgcwjx/tZ3gBNMf/\nQjpxzE9uUUpOIuqt17z1cdXmlGW027fg7PJg0PuqoihYBvf3plLduJ9hxVLMY9/FU6YsglaLeGMH\nqQCC2Yxu5QrEhAQyXn0TpVhxnO07ojl0MM/BU6LVStQLvTCEkT6ViXbLZsSES5jGjsL4bXjFNrKj\nOXva93dZr0eJjkG8dg0h27GIIknYHnsCoqIQXC5cZctheX9cvtOIxLzoTwdxrQbgCu621ezdFfQY\nQE0i8m9DoyF17gJvEOP2rYCAq3ETbH36hX0clH2u9NHvYRk5DO0x7wu8otfjbN0O66tv3Py138Lk\n2/ieOHGC48eP06JFi5u4nIKT0/Bk5+84+5XvqkLKilVotm9FOnUSZ6u2KPH/jsaxp1ZtMoa+gmnq\nR77KJnJMDLane+UpBUeJjw8t9B4CIeES5vfHe1WsBECvR7NvH8KNIBgpMRHNwf2guODlrFQG7aYN\naHKW1buB5tifPoOR6RbMvsuRTWasLw5AzpZzbBr3LqZPPvTttKQLF/zGCE4nut83+VJZ1PBEReNq\n0Ajxwnm0O9QD0dR0jgVF8TMeOfl/9s47PIqqbeO/KVuzabTQi3QLXaSLIKAoRRRBURQLWLBg7wUV\nERApIk06SBcEEQQ7SAdp0qWXUNO3Tvn+2LDJZmc3mwD66pf7uvaCnTnnzJmdyTxznnLfepReiNww\n/bAS64K5IccTszIR87idBYCsLEwH9/s/v68h5YffcL78OkJGBpYli5CST/vLcrze6JirDFYykSBm\nZuLo+zDmML9bgcbyePAlJJD1xjtYvp6PdPw4WqlSeDp3xf34k0FJSoLViuPt1wOavUYwWiEbEYuE\ng1oqCUnPfwUPoNQN7+HQSofXn9aKXZ1a3rAwm/0CLf2fv+yhlJatSP1xNdY5sxDOn8PXrDlKs5ZX\nYJL/LRTa+H7yySe8/fbbLF68+ErO57Kh1KwZNqOxUMxP0UAQ/mcYZdxPP4un2z1Y58wCVcXT9e4r\nTvIRFpmZxD/QA9OObRGbCboOY8Yg3t41IMCuxcejS5LhSsDQOEgSnrbtUCtXwdOtO0qDRgDIG9Zh\nnTYJy9IlIS5OQyKNCKxNYkY6CXfdgfPJ/hET0Ywg6LqhAIVarDjuBx6K3Df5NNavZvivX5duaDVq\nYvlxVUSDEgny0cMUa3QDWQMHkfXhYJwvvYq8fRtq5SrE39UR+URkdSYdEM9EZ5gCfWQZy/r85Q2j\nhenAfvSF80ib83XEcjf3o/3Q4uKJfe3FsC/imsWCYDIjZmb4CUXq1MPV435i333DMOtXs9kRFB+o\nKkrd+jife4H48Z9DBB5uAF/ta3E+/3L4ufbshXXShJCYvW6x4CmoZ+R/DVYr7ocf/adn8b8NvRBY\ntGiRPmbMGF3XdX3UqFH6woUL8+3j8ymFOVQoLl7U9Y8+0vUXX9T1GTN0Xckz7vnzul63rq77k/dz\nPjffrOte75WZQxF0PTNT14cO1fVnntH14cN1PStL1z/8MPR3j/QpXVrX1671j6dput6kScH6DxsW\nPKfZs3W9ePGCjXHpIwjh99Wures33VTwMevW1fX4+JzvZcro+tixwXOeM0fXu3fX9fbt/b/lW2/p\nesmSOX3i43X9pZd0vX//wp1X7k9ioq5v2JBz7KNHdd1iufxx835EseB94uN1vVat/NuNGhXd/Xny\npK63aRN6XfPOrXx5XX/iCV0vVy78Md95R9d379b1HTv89+mCBbqekGDc9tprdb1TJ11/+WVdT07O\nf57r1vnve0ny969USdcHDozuHIvwr4ag67peUIP9/PPPc/z4cSRJIjk5GbPZzMCBA2nWLPzK70qI\nIpt+WkXsKy8EJNd0/JSC6dO+ClL5EI8fw/7ZUORtf/gL9m+8Cedrb0bNH/xfEHG+mpB2bCP26X5B\nJBJK7etQy5bFUoC4IIDvuhtI/fl3AOR1a4l9oT/yXwcB//XV4uKRDBKidLOZ1Dlfo7Rolb1BJ6HD\nLYVSuQHwZVM3mg4Zu76dPXth+fkHpChXgLookv7lNJQatbAsWQQWC+77HkQvkZMNahvyETGjRyDk\nWn0brZZ1kwm1bDmko0cuS6MW/MxJl+qXxZMnKHZjnUKvqIPmCGjlyqHUrI104ADy8ei1nTV7DJlD\nR+C5uzsJHVpj2h7ec+LuejcZE6ZEPba8fi3WL8cjHz4EmRmYDofGUsNJZKolS+Hp0o2sDwfnCBOo\nKgntWmEykN/0XX8DqT+uyV93N2QCOvK6NYhnz+K7tX30ZDP/cfwXnsMlS4a/loUyvrkxevRoypUr\nl2+282X/iIriv+n/DI09uXr3IXPYyMsbPxf+Cxf9aiK+exfMv/4csl0pVx65gALzuiBwYcM29MpV\n/BsyM7FNm4x49gxK7WtBFHG8PCBAJnIJnlvakD43J+QhHj5EseaNCm1IfHXro1ssmMMQ9iuly5A+\neQZxTz4WlVCA+87OZEyaYfwgVhSEM8kktm9dqOzjy4GvRk1Sf10fqFNNaN0U0+6CE3bokhyI4+uy\njFq6DJ77HsD5/EvE97jLL55hAM3hQK1QCcHjQUhLRb2mKu5evfHc7y8DtHw9H8ezT/qZvAzguvc+\nMj8fH3lyLpefG3vNb4iZWSi1r8XZ9yliX3k+JGkuErIeexLnoE+CtplW/0L83Z0NX4LUMmW5uGVX\nwZOUimCI/8JzOJLx/dfcJaYV3yEbGF4gLLlCEa48xNOnkMMk0YhpqWgOR5DuKoCWvbIwemAJuo5t\n1gycb77j3+Bw4Hr62ZwGioJl7leYNqzzE9pLEkq1GmR8MSl4IFn2O/4KCV+DRghZmRDG+MrJp7Gs\nXIGekAhhjK+vchW0atXxNW+Jq9/TIYZXOHMGx/tvYVq/DlIuImVFJmCIFjpAmHh5Xpj278Px4rO4\nu96Ndd5XCAWM5QLokkT6kE9xDPkY6UwygqIgnziOPPRjpL278ba5FdOa30Kut5JUmrTZC/3lflYr\nuN3+8rjcrE7duiOcP4/jnddDYva6JOFtd1s+k9OJ6/swlu+XBzZJx4/6+bAL+GIm79yOkJ6GHper\noiPiLXZZ6xgAzrvO89WeGXhVD3dW7UKtYleWSrII/zu4bOP7zDPPXIl55AsxPS18jV6UUmdFuAJw\nuxHClU8oKs5nX8A2cyrSqZMAqKVLg9sTWaTdlRV2X8xbr2JZnUuQQVWR9+/FOmk8rlfeCGy2fjm+\n0OxNvvoNcb70GtLxo37KTqfxfKxTJoalwdQFAecb74Sn31RV4h7sgbmQbvFI0EolkT51JqY1qxGS\nT2FdvAgpDI82gHXuV1jnzfEnERUCvkY3Ytr9pyF1pmXFctzduuN+8GEs33wdIDVR4+IRnE6KdWiN\nbrXhbd2GzA8+RjeoHXf3fRLxTDK2L8cHPB661YrrvgdCS7Q0DfPSxZh/+QlEEaVsOcw//RAypnQm\n2X8vFgCWDWuRb26Ks+9TuJ/s7z/3Zi1Qrr3eMPvb16BR5FWv04l1xhSkkydRK1X2J97lyraf/ucU\nhm76mDNO/+86dttoetbqxYctPkEoqCu7CP/zuGy3c7S4XPeBkJFO4s1NkAwyM913diFj8ozLGj83\n/gvujqsGXSfhtjaYDJimvDc1JW3JCoTMDCzz54IgIB47QsyYUeGHE0XSx0/B2+WukH1CRjqJLRoj\nnQ6V9PPVqEXqL2v9DztNI6HVTUHEIIHxMc5y9tatj1a+AtLuXQguF7rViveOzggnjmH/ZlH4+QqC\nf5WZZxXlbdSYtG9XhoiWCxcvYP56AdYvx2M6dLBQMVstISFEpD0wHyD9s8/x9uod2Cbt2E6xyWPR\n54Ry7BYUSo2aiGfPIqamoMsyvoY3kjFoKHH9+4Xll1atVpSWN+Pqfh/y0cNYZk3HZEDVqZQth6fH\nfXg6dkI1KMmR/9jij5erGp6Od4ZWE2gasU/3xbJoQeA8w8VvAXzVayBkZiLnup90iwUtNi4imYcW\n4yBt5lyU5v5yGcvihcS99SqczQkZKNVrkDZhKtp11xuOIe3c7s+TyJXZ7KtTl/Rxk9GqVedo2hFu\nW3gLF9zBL02SIDHils/pUatX2Pn9V/FfeA7/J9zOemwcrocfI2bYJwi5KODUSpVxPXP5tWlXDW43\n8o5taKWS0C7FNf/NEARcDzyEvHtXkMdBTSyG66lnQRDQY+MCwgaOFyJ7Rry3tMUbhrZSPHjA0PAC\nSCdPIFy86K+pTk1BzKNvG5iuwTYd8DZthn3G1CBSD9OYkfhq1UaLT0BMMzZ2gq6jxjjQSyUhH9iH\nFhODr0lzMgcNCTa8bjeOlwdgXrUc6WJ45aCQebVshVKvIaatm/2lLfXq4210E3ED+iNmGAsNxHwx\nCqVeg8CDXy+WCNu3h1U/inYuSq1rSf3hN8TTpzD/9ANq5cqIx48T368P8sEDYftKbjfSqu+RDuzH\n3au3oeEFP4GK/NkwbOPH4u7ek6whw4Nc0Er9hij1G4Y9jmXebCwL5wUzbEVYS2gVKuJ87S2skyci\nHTmEXqwE7q7dUOrWx/7ZUMzfLzdUeRKzMrHOmUVmtvH1dL0bmt2Ic8RoxAsX/M+gvk8FJdPlhWPg\nOyElRaYd23EMfIf06bOZtWd6iOEFUHWVlUdX/L80vv91/GuML/i5gdWq1bEsXoiQmoJW5Rqcjz+J\nVr3GPz01Q9hGDcc6ewbyX3+h2WPwNWlG5uBP0SpX/luOL2SkI547i1q2vD/GVlh4vZiXLUHwevF0\nuB3rrOkhrn49xuF3u+WBWrFS+GHr1id9yqyQ1eIlaJWroJYsZZiUpJVOQk9IQDh3jvgHuiM5nQYj\nGEMA7DOnhbBpAZj27sFXqzaoaljRDCktldSxE9FKlUYvXhytVJKfZ/mzof6s5q7dsM6bg23urKjn\nBOC98SbS5y8J+j2ElIvE97zb0PBegnxgP44hg0ifOgv74A+xjR8DTmeBV9mXzJZuteLu0o2sUWNB\nENAqVcbd5zHkdb/jGPi2odqQ4byOHMY+ZFC+7URnFrYZU1Dq1sOTTw10bph/+yXqc9RlGU/HTij1\nGpA5amzI/sxRY3EM6I9tlrHqjilvzfJ115E1KDqlK/H4MeQwNJPyhnUIaak4lfD3r9MX/b1dhH8P\n/lXGF8B7R6cCC6b/E7DMnknM0I8DRkp0ZmH5aRXCM/1IW7Ki4OUI0SIrC/OypVjnz0He+yfi2bN+\nIoou3XC+/naBj2tZtAD7sE+Qs6ni1MRihqsD+cQxbOPH4HxnYNB292P9sHy9IJT8v0oVv7xYhJcC\nPbEY3rbtsM0JNWKe9neA2UzM0EGY/jCOo4ZzOQMIEdRmTHv3+MUCwrgwNZsdtVIV/0ufy0Xc/fdg\nyZX9bZ05rVCrTvmvA/4kpFxxUNuYUYYu/pC+WzZhmTTBz+pV2NIhk4mMIZ/hufc+QwUd69xZURve\nSxAjKebkgqBpWH5Yma/xFffvJeaTQUh79yAlG3tFANTiJRAvXvB7KpJK4+7ZK0jAwwiaI3wpopCe\n5k/oK8TfreByIXhCKW8hO1/F7aFpmeZM2jkeVQ/NW6hd/LoCH7MI//v41xnffwssXy8wTAQzbdqA\necUyvLdHx7VcEFi/GI1tysSQUhj58CGkkZ+im824Xnot6vHEI0eIeeu1oJVnJPH1vGUc4uFD2MaP\nQYuPRylbDiErC2QJpV4DLAPfQ4uwKr6EzCGfgQ7mH1cinT+HWqYsno53Bugv5a3hDZOvbn1Mu3cZ\na5Xmc1wBwmZP+5o2C3hb7CM/DTK8QKETv6SLF7HOnon70b7+DYqCZcHc6DrrYFn+7WXV7Ao+H5av\n5+PJFT/ODTFaPuPCIgIns5CaguOFZ/3nmM/vq4simcNGoFusiMmn8Xa8Ez0KukalQQSxC0kCVS1w\nGZFw7hwxb70S/ph16qKXKkXHUnfSrlIHVhz5Lmj/DSXq8lTdZ8P0LsK/GUXG9ypBDFO/KWga0oED\ncHuutseOYl65HK10Wby33xG9AHcumFcsI+aTj0LqYQPH1XUsS79BK5WEdOI4Sq3aeLt0i3gs67RJ\nBapD1RJySjLkP7YQ2/cR5KM58T7NHkPWsy/gfuZ5fyJCNMkUViuZo8cipFxEPHoUrWrVYLKUCFbU\nc08PxAnnkY8bx4OjgQ5gMiH4fOgmE77GTcgcOiKwX968sdBjG0HIFWu2f/wBcnbWeH7QYh2I+XAT\n67Kcr3E2bdvqN4K5FLLEvbuRDh9GLVWwbOGw8yCMSH2YZCWA2Kf7YVm1Iqqx1WuqIp44gfuhRwoU\nbvG1aYealGRIpKLUvrZQ9buOV57H8ktoTTz4STxcTz4DgoAAfNlhOiO3fMraU2vwal7qlKzH8w1e\npIQ9fCy5CP9eFBnfqwStfHkwKEfQzWZ8l+TkdJ2Y117EsnghUkqKP8mlbj0yPx5WYC1Py9cLwhre\nS5D37SXupef8hwZ8kyeS/uU09DDlM5HKg/JCc8Ti7n5f4Lt95PAgwwvZsb3pk/0G352BuWJVvHfd\nk+/LhrxpPdaF88HpQmnQEHev3gG3qK9BI0NGJM1qxbR+LSiFW4VeggBoqoqA3+Xuu6kJWvkKlzVm\nOOiCgO/mW7K/6JhXLo/cIRdMh/5Cj2AcdMB37fXogCUC97aQkYl1zkzcfR5HOHWS2BeexbRuDaLL\nhVqyFGpcXEBK8BI0ux0xypi7r2IltGLFseQpufLVrReW1F/augVz7nIzA6glSiA4XYjOLOSDB4h9\n+zWs8+eQPnlGVB4WAD0+AXePXtjHjAxaXWsJibj7PBbUdteZXew8vpcmZZrhMBtntApnz2Jes9pw\nn2azkT5hKkrzFoFtZsnMy41fN2xfhP8eiozvVYK710OY1q8NiZF5m7dCadUayHYTT50UiCsKgGn7\nNhyvDCB15a8FetMWIriDA21yiQMIgHnjehxvv07GxKmG7ZWatcKOpSYkIGWXv6gVK+N84qlAKQa6\njhzmAS8fPULse28CEAf4pk0mffJM9JIlDdvbRn6K/bNhObW3c2ZiWbqYtKlfYf16PlLyadSERKQ8\nLwqi24112ZKoaA/07I9x2heI2fFb+ewZpJHD0RKL4e73NABKw0ZYfvsliqNEMxEdx4D+CIqKUrMW\nYnJoHe0lKKVLIyUnB2f6KkrYVaUAmHdsQ01IRI2NQwqTwCWgY505DXfvR4h79knMuc5NOnfW/4JQ\nvSZiZjrIZnw33oSr533EDP0Y0+ZNCLqOZreDooSwVGnx8WROnIpyQ11sY0b6iTg8Hr9YwTMD0IsV\nM5yT6Y8tQRUOhtAJqc827dhGzIfvFYiO0vnmu2ilS2NZthThwgW0SpVxPfQIvlvbA3A49RCv/DaA\njcnrcSkuyjsq0PGaTlSyliXemkDX2j0xS37hB/HcmbBZ8wgiWrVqUc/r74S0cweWpYtBEHDf0+N/\nNqH1345/TZ3v34krVV9mmT8X69QvkffvRY+Nw9e8BZkfDQkw5sR37Yh57RrDvmmfT8B7b8+oj+V4\n+Xls0yaH3R/uoawmJXFx/TaIiQnd6XKR0OV2Q75ktXRpNKsdMeUielwc6g11cT7RH6VJU9B1EpvU\n9/PpRgF3955kjJkQsl08foyEW1sZxpl9NWqG1PVqJjOiAQFIpMSrwPkYGPBw8DZqTNp32UQOWVnE\n97oX81rjFc7lQM92d+eFWqw4vqbNsC5bathPKV8BWVNRMzNDVqkAmiwjaFrYGmBdknA+0hf7lImG\nbmpfvQakLv/Rn3x0KTNb1zH9uArp6BG8t7TFtGEd9hHDAveAUqkyrqefK5TSjbTtDxI7tA5bRuTn\nTjNmUFPLlefiph1XhPJR13U6L7qNDcl5Mp9z3WC1XA7euuk92rfoCx4Pia2bBrjKc8NXp67/BTtM\npv8/Bfu7b2KbPgUxm31Ni4/H2fcpXC///Svy/3qd7//Wlf+PwdO9B2nfruTiph1cXLeVjNHjg6jq\nhDDECQDSmQIIewPOx55ArVgxZLuO/2EcNus3QiYmNhtp02fjqxRanywlJ2M6cggpLRX5+DEs3y0l\n9olHkLdt9UssNm4S9dxN69YaUv9Z5s8Jm+AlGxBqGBleyN/wAqg1auKrWQtdFPNdLUuHcj1MY2JI\nm/s1Ga++ha9GTS6P0iIYgs+HbvBw9nTuihDhrLxt28Px42hljPViRUUBUUIL9+DXNGImjg0bHxYv\nXEA8eQLr5ImYli31Z3arKqb1a7FOn0JCl9uxfjUD59PPkj5qLOmffU7KL+uCDW9mpv93jEL4XqtW\nLWnphtsAACAASURBVKJLXQhjeAHw+S6r3jk3Vh79ns1nDGL8uQ6+15bJm7+/RsaFE/6ysx73o+fJ\nHNetVtz3P/g/Z3jNy7/F/uW4gOEFENPSsH8+EnnDlZOHLIIfRW7nqw1B8PMBG0CtVt2Qpk6zx+DN\ndk1HC61mLdLHTcb++QjkHdvRLWZ8DW7E1e9p1GuqktDx1tByH0C59nr0RGN3H4BeKingds0P8qmT\nWCeMI/OLCWS+PRDxr4OYo0lIcrv8xjfvAzbCca90oZaQkYF8YH90jFB52ohHDmNdNN+QYSscIjEx\n5YZarrz/Ghw7ila8BN4Ot+N87S1so4ZjWbbEcFxfs+Ygigha+PEFxecXbDegocxvXrrPR0K7Vv48\nBUFAqVsftXQZrCuWBdpIZ5KRd2wn85NPg7OnvV4/ZejKFYinT6FVqIT7jk443/0grDHSrTa0pDKI\nJ45FnJcRlLr1g/V/VRXLgjn+v5H4BNQKFbF8NQP5yBF0k4yvSTNcTzxtqP19KPWAYSlQXhyNVZg5\nsz9PPrcY1/MvoccnYFm8EPFMMmq58kzpXJl5xZZzdu40ysdW4IHavelQpWOBz+1Kw/zdt4aeFtHl\nxLpoIZk3Nf0HZvXfRZHx/QfheuwJTBvWhXDkem/raEi3lx+URo1Jn/qVYT2iu89jSAPfCXqrVYsV\nx9X3yci1i7oOShguZwPIh/3lRnqpUqR9sxzrmFHYZkxBSj5t+IcNoFx/g2FWqufue7GP/yJ83OwK\nQalYCeno4eipGO3BLnr7Z0PzNbx5Xd+CrqMLArrFgm61hXV5q1Wrkz5vEXi9/iSz7Gvl6t0H66xp\nyMeCDZK3Q0d/Fjvga9AwUJ9tCJMJ5ZpqSNm0l9G453VASj4VaCfoOqZtW5ENkuZElxPrVzPw9Mxh\nZ3K8/hK2GVMD36VjR7CPHQ2yjPPt940PKsv42tyKPD18WMUIasVKOJ97IfBdSE8jrvf9mNauDsw/\n7znLC+ZiWvMrGROm+UMouXBTmabYZDsuA0KMa8/ABz9DsgPGNYI0U07GtLvPY4GErVFbP2PoxkF4\njvvLEP+8sJN1p9YwuNVw7qlxb4HO70pDcIfxgAGE844VodD43/J7/D+D0qQp6eMm476jE0rVavjq\nNyDr+RfJGD3u8gY2MKbuPo+RMXYi7k5d8N7UBHe37qRPmo73TmNqxwAkCaVO9C8CWmyuGIcsY/lp\nFfLxY2ENr5pU2l9uYTRWlWtwPdoXPRf5PFwJ7ZiccXzVquO5/c6os3UBhAsXMC/J4X+ORkM4nKKT\n6HYjpaYYnpMuinhvy65JM5sD11U4dZKEHt2CDK9mMuPu2o30SdMDK0jnS6+jRKA01S0WxHNncgxp\nvmfhb2N4LmFqb02bN5LYuB6xjz2EvOZXzN+HZnALgOW7b/0vGGGQ+cHHeO7ojJb94pPfPeBp3YbU\neYuDwh/2j97HnMvwXjp2XsjJydi/COUjb5DUiFsqtAnZHueGQT9Ct73w1Gb4fgZ0Oeov1dJ0jTF/\njOTubzrRfv7NjNwyDI8WXP+f7k1nyq6JXK30mz0XdtP/h360mdecOxa2Y/CGD/GpoX+PSr0Ghv11\nwFeAMFIRokPRyvcfhtK8BRm5yg2uJry33YH3tjsAEI8ewbJgLqYN6/DcfS9apcph+zmfewF5z59I\nx6IQSM+1ejStXIFpk7H8IPgTe9TKlVEMXHyBY7/2Fr4bb8KydDGCy4VWoiS2L8ddlnzgJQiA0rgJ\nehnjUqtwED1u7EM/Rt6wDvP6dQj51OKqNjtSPmVgAsEJVpojFvfd3XH3eTykrePjDzDlySYXfV7k\nP/8M+l20SpVIXfUrCW1bIhtcO91kQsy4ugktgqIgHzmEfOQQpo0bkMLUIounTyGkpKAnJRkPZLOR\nPmUm0rY/MG1Yh7x1M7ZFCwybKtdUJX3W/BCWrhCKyAiQd+0w3D623STeWfM6a5NXcz79DJWOp/Pq\nGuiyP6dNmSwocUQhVdd54Zdn+GpP/qIv+y/uJc2TSoLVOEQVDcR9e5EP7MPXuKmf8xzYf3EffVb0\n4lBaDgHOpjMbOJC6n0kdgqk0XY/2xbzq+5DkQW/b9ni6R5/8WYToUGR8/x/CNmwwtoljkVL8rk7b\n+DG4+j2N6wVjJh6lUWNS5y7C9uU4pMOHMG3ZhJiWZthWvHA+8H95/96IbESCqmLesB7HS8+SMXkm\n0pbNiOfP4Wt5c1D2ta9tO3xt2/m/aBqmTRsMV5saBXflyHt3k/Xeh9gmjA3IIAaNaTYbCrub9u3F\ntG9vxLE1mx3PXXejJibiiKDsdAmCz4evXHnk06cQMzOwfL8cPS4e51vvBXkzwhF7yAf2Yf5uaZCs\noR6fQNqCJcQO6I9p0wYErxctPgFPxzuRd+3Md07RIhqXtZR8Cs1qQzQoG9LKlg1bapQbar36qPXq\nQ1YW0smTmDcGG1QtLo7MgYMM6THDSmEaQM9FMpIbNtnG0NYjKF4ihlM791K6cX1kT+i48u5d/LVl\nOUsOLo7qeA5zLDZTqLxiNBDOnCH2hWcwrfkN0eVELVkST8dOZA3+lPE7vggyvJfw/eHvWHPiN1qU\nb5Wz0WolbdY87KM/Q96yCQQRpUlTnE8/d0WyxYsQjKJf9P8Z5NW/EjPqs6C6SSklhZghgyAtDdd7\nHxq6rbWq1cj6eBgA1nGfE/vOGyFtIJgz2VevAbrZjBDBnQhg/vlH4tvdjGnPnwg+H0q21qnruRdD\nG4sizudewPHqi0GrKLVUKYSUFH92awGgxTjQExLJeu0tYj58LzCmLst4b+2A9OcuxONRrPjzQC2V\nRNaHg/0KOG435nVrMW/dHLGPLkmYTuZIZkrJp7F/MQqtTFn0+HgsX89HPHcWMYzSE4Bp3e+BmG/g\nHCtXIe3rb5HXrUE+sB/vzW2wTp+CbJDsB8EuXUNVqOxksbN2eLMtrCsPmgCNkkXeXi1Q/Vz4Fy49\nMQFOBxtfHfDc0dnQYIZFTAxpC5dgnfollqXfIGRkoNSrT9b7H4VNcPTVqRdRjSmobdPI3ihRELFa\n7IhWGxgYX2SZ1WfXkemLzrPQolxLLJIl/4YGiH2hP5ZV3we+S+fOYZ82GT0hkX219xj28Wpe1pzM\nY3wBYmJwvvZWoeZRhIKhyPj+P4N18UJDwgJB04gZOxrRmUVWLvpEI3i63Yt99AhD6km19rWB/yst\nWuFt3grLz6Hi5rkhOp2Yc7lR5aNHiBk2GLV8Bbx3hyaheO/oTGq16timTvKrNpWvgGnbH2FrpsNB\nB7xt/CtqT89eeFv7jZLozMLXrCXedh2I7dsHuQDGV7Xb8d7TE+ezA3KYlaxW0qfPIWbQQOTNGxCT\nk5HSDTwHBl4CQVWxjh+DnHzakCs8L2xTJ2Fa+zt064rQozd62XLZAwngU5B/X4N98IeIFy6ELz/L\n890oWcwlQ+f7YEMusq89pTT+qGDmu5MdqbDAuAbZ1+BGPElJWFZ9j3j6FGqFinju6OwX/SgoLBbc\n/Z4OEJ7kB+dzL2La/kdQ3W3ec9MBb/OWZL07MG/3EOjFivtDIj+sDNnnbdQYvWIlOBJ5DLNopnm5\nlnzY/JOoziEvxL27MYVh0TKvXIGjbviQSrwlPui7ddIELEsWBbKyPffeh6fH/YWaVxHyRxHJhgH+\nC8Xd4RD71ONYI5D167JM6uyFKJdoDsPA/t5b2MePCXIrq0mlSR87CaVFy8A2IS2VuJ73YN5ScA5k\nT4fbSZ8xF/HAfqxzvkLwefHe0hZf6zY5q3NdxzppAjHvvWnoHoYIBCMWK97OXUHXyHrr/RxDlQvi\n3j3EP/og8oGcoF5+Lla1RElSFyxBu9avRiOkXMQ6aYL/RaHyNbjve4DY11/E/MNKxLQ0NJsN3R6D\nlMtlnxvhyEPyg1q6DJmDhuC9swu2UcOxfzokXwpSIxid78ib4PnbjVrDC0k9+eTj9cjHjgSPY7GQ\nPmYC3s53gdOJeO4sWlLpy5O7zAufD+nAfr/UY1IoF7V43K++Jf11ED0uHm+DhsiHD/s1txMS8PS4\n3z+/fNSLLj0jpB3biH3q8aBsd6XKNWSMHkd6/Tq0ndecvwzcvt2qd6d28euoV7I+rcq3Riikypl5\nySLiHzNWglJLJTF05ou8ufY1tDwV6BVjK/NLj98D1Ji24UOIGTY4qLZbt9rIfP+jEGrNvwv/hedw\nJJKNIuNrgKt90U2//oxl+TJAx9OmHb52Ha6exGAeWCd8QexbkZWNlDJlSNm4AywR3GC6jnXKRMzL\nlyGmpqBeUw3Xo30NyTVs4z7HEcZNHQm+Ro3x3NEJ+4hhgRizbjbj7nwXmZ+PB1Ek5pUB2KZNjsB+\nFJ46MrdR0SUJd6cuZE6YGtJOOHsW2/gvkI4eRo9PQP55FaYTJ0La5YYW4yDr1TeRdm7HsnI5Uq4Y\nue/6G0j/cjoIArYRn/r3hzG8kRBNnFUpVwH3A72xTRyHZFDTW1g83gm+DKNz36nELUwv0Z+Yge9g\n2v0nAGrZsrh6PxI2ryAchMwM0HXOyV7SvWlUiq2MJBpzgVsnjMU6cyry3j3osbH4mjYn8+NhaBWy\nyWeyWbjkbVvRylfAc0+PQscycz8jhIx0rJMmIp44hla6DO5H+wZq51ceWc7ba17jcLqf59wu27nj\nms6MajM27HkUBMKZZBJbNzO8f7yNm5C69HveWP0yCw7MJc3jvwerxlfj3WYfcFsVf/IlbrefietQ\n6EuCr249Ur//5R8hBCkyvlcI/6Yf8apddF0n5s1XsE2fEoiD6iYT7u49yfzs87/HALvdxPe8C/Pa\n3yM2yxg0FPdj/QLfpW1/YP5pFXpcPEqNGli/WYSQkYFaoyauJ55Gd0SgUTt5goRbWyIVUJLO3bot\n5q2bEfO4aHUgc9BQfE2bk9CpQ1jRewDfDXWQ9+xBUPKPBetAxifD8eTzpm9a9T1xfXqFXWkHxotA\npOG+ozOZHw8lsW3LfJWjwhnZaIk6LhdGx3+5HQxrbtz+gTKdGH7XLFAUzCuWIaSm4O18F3pcPMLp\nU9hHfopp+za/SlSz5jgHvBLyoift2kHM4I9I3rue51pl8mslnXSTSu3i19H72j70uSE4C9zy9Xxi\nn+8fElLx3tSUtG+WI544RvxddyIdPxY4F9/1dcgYOQb1hroF/k0K8oxw+px8tXcGaZ5U2lS4lfpJ\nYd5aCgnHi89hmxHMX61bbWQMGhLQRz6U+hfLDi0h3pJA95o9sck5CWXS9m0Ua5cn9psNLcbBxQ3b\nAtnTfyeKjO8Vwr/pR7xaF9304yrie/cMqXnVRZH0Lybi7db9ih/TEJkZxPW6F8u68AbY2bsPWcNG\ngqriGNAfy5LFAeL6vA993w11SZsxx9Btewn299/2u6mj1JvVslmJwhk4b5NmeFu1xjFkUNgxlOo1\nyHrqWeIG9I+aEctbqzZpv4Uvj7oEcfs2EnrcVejVpJqUhPu+B4kZMaxQ/f9OqInFQmg+9xeDFo/A\nOUdw21g3fHX9EG5q/0TIOML588Tf2xVTnjIeb916qA1vRDeZ8XS7B7XKNSR0bId0cD83PwyrKweP\nY5djGHnLGLpUz0ksi7v/HsPYqy6KZHw6Gsd7bxqStXgbNCLtEk91AVCYZ4SqqSw+uJCj6UepW7Ie\nbSreGuJuPpp2hC1nNnF9yTrUSKwZ5cAq9o8/wLxyBeKF86iVq+Du2QvPgw9H1V04c4ZizRuGiMBA\nNjf22i1BEpN/F/7rxrco4epvhGW5MX2boGmYf/zh7zO+jljSFy4l8aZ6yMeNKfsucVDbvhiFbc6s\noH15V1umnduJGfqxf/WeC+KundinTEQ8dhS9WHGcj/ZDPnoEISMdc8oF2B1Kd6larQiimC/phWnj\nevQIUoRKlWtIWfUbWCwoX47D9KdxZm9eBAkRqCrmpYuRTp/G07wlUloKaplyaNWqo9WtR/r02cT3\n6h627CoiFAUhjwpPYaCWKIl4/twVpdu8dHV1hwNfsxZkPT2A2HdfDyrvqp4mMWylyoc3w4FsnfpK\nqTBgLbQ5uZus1t5gWkfANnZ0iOEFv5KXefs23DK4F04hoUZ95IP7WVwLfg+lK8epZDFv/5wg4+s5\nd4oUB5TMAinX7SloGtZZ08KypJm2bkbaugW1YaPofpxCYt/FvTz705P8cXaL/7iCieblWzKx3VTi\nrQl4VA+9lnVnw+n1eFQ3DtlBywo3M7rNOOLyJEaFQJJwvvUezjff9dO0FiRrHNCTkvC2aIX1u29D\n9nlb3vyPGN7/Dygyvn8nIta8RrcivGKQZTJGjCH+/nsQ82TRqiVL+YXIAdPPP0Y33B/Bdbfy6t+I\nfaZfkBi85ogl6+33cffuQ8lnHkffvTuI5k+pWh3MZkx7/sz3eIKmYf59dViXrLvH/WD31026+j6F\n9M7rURlJ33U3+Oe/eSOOV19A3rkDAYjJXu1rVhu+Zs3JHPwpSuMmZL79Po6XByAW0IGk1K2Pt3Vb\nbJONlYOiHqdBQ/Ap+WaUG0GXZdQy5RAunEPKftnRbHbc3brj7vsEerGcpKXUb1dinTUd6a+DaCVL\nYhs7mt47LtJ9N8y9DrwS3LcLYr3AxqkIQOanwbXNcpjr6pVgQAdYUQ3O2Z1UTf2dXoBPBC1MqDE5\nyy884lbcvLnmFX69/SAXBKiWAg9sh5fW5ZyjGME7IQDS0cNX3Pied55n+JYh/HF2C6IgcirzJCcz\nc/IEfLqPX47/xDtrX2dwq+G0mH0jxzNyXoQzlUyWH17Gi788x8QOU6M7qCAU2PAGjjdkBILTiXnt\nGn8tuN2Or9UtZA4aWqjxipA/iozv3whvy5uxfjXDME7naxomgHYVobS8may33sM+YSxS9gpYqVYd\n50uvBRiv8mqkhkW2BRSPHcU+ZBCWpd+EZNaKmRnYvhwPbjcsWBBC8yf/daBAK7hwcVDPnV1wPZvD\n6eu57wHU8hWxjfscyw8rEXRjDmfNavMLuisKjldfwLQzZ5V26ZqJbheWn35AeOYJ0pasQPrrYIHj\nrqrFguv+3vjatsNz2x1Yv/0mzzysiJF4dnPB17wlnltuRd6xrcBJWzqAAFr5iqhWK74bG+O9pwdK\nwxtDG5vNOVmvmZnYxvq9HDYFHt5u0Pz75QjvpKLHJ+Qcz24gWwk83hlm5Aq7bi8Nu0tA7+0gqaAa\nODjKxvgVm5776SkWHVwA1py+e0r45/X0JvA1aYaQFf4e1glPq1hYZPoy6fVd98AqNxLWnFzNu7+/\nHmR4c+PXEz9zznmOknZjvesrBb1UKdLnLUZe9zvyrp34GjVGrX9lf5ciBKPI+P6N8Ha9G8/yZVi/\n+Tpou6f97bhzK78UBE4ntkkTkPbtRnfE4e7Zy88AFCXc/Z7G06s3lsUL0c0WPF26BSW/KDVrY9qa\n/0NEadgYITODuIfvxxSBOUk+sA/r1C8N910J16lWthwZX04LieEpDRoi7d8T1vCqVisZU2ehNG2G\n+ev5yDuN6QUvwbR5I9Zxo/3JcwWco+TxEPvai7j+OkDG+Mkooz/D9Ptqv7D89TegFStOzKjhQeQk\nOv6MbDHbe6KLIt7b78T1+JMgy2QNHIR9xKc5QgpxcWAQw8sNUVEQc9FOCoKA88338j8BhwO1Vm2k\nCHXV0tkziIcPB92Lnts6YvluadBK/1gcLDPQlPfJsD0JWhyDX/PQU8eYHPSs1YvDqYf46diqkL5e\nGaY3ELk/6TbUIZ9jmzIR0x/G97BWqhRalWvyOWFj7D7/JzN2T+GC+wIV4yrRr87TlLSXZPz2MVEZ\nXoAsXxa/nfgt7P5UTwonMo9ddeN7CUrT5ij/wELg/yOKjO/fCVEkY9wkfC1aYVr9K6Dja9IM90OP\nFqrkQTh3jrgHewQxJ1kXzCHrjXdwP9I3tMMlObWNG8BqxXNPD5T6DdEdsbgfeNjwGM6nnvVz6eYq\nQ8jr6vU2aETWq29inTguouEFvwGRIjA0XTbCrELtw4dgOhqeLENteCNqufLYhg3GtGVzvgZVUFUs\nS75BjLCqigTp/DnsIz7F1/BGXC+8gmvAy0h7d4MgotashV6sONb5cxBPHEcrWQpPxzvwtW6L5Zuv\nEbxevC1a4e3UNVAC4uneE0+XbphXLANNJ75XdzLf/wjLj6sQjxyOalVs2v4HtoljcQ14Od+2rr5P\nIu3ZHVZvWU0qjVYl2Gp6774X547t2GbPCIQANpaDi8YLYo6XkNk4VuGFDvDbNRJpVoFaJa/noese\n4Y6qnZm3bzZpXuNQwsYkjWqVN9D5z48Y/NxgzMuWIO/+M+i6arJM1jsfBL2o7b24h7l7Z+FW3DQt\n24I7q3ZGFEJ937N3zebZZc9x3n0usG3ZX0uY2H4qu8/nHza5hFrFanM07UjY/cUsxamRWCvq8Yrw\n70GR8f27IUm4H3okEFO9HMQM+SiEslBMT8c+egSe7j3RY+Nydng8xD3cC/OPKwMPIOtXM/E2bYZW\nrjx68RK4HukbUlKg1axF2rTZ2MeNRt6zGyHlIkJqKmJaGrrJjFqjJunTv0IvWRLpr/yp+3TykS67\nTCg1axlmrpo25kOq73aR2LFtQGggvxpa3WoNy/8baJNPKZBfJ3UBHmcWMSM+Rd62FUQRX/2GOF9+\nndTvfw6REjSqow7AbPYTRADY7bheeg33w49h/WIUMWNGRuUel/ca0xHmhbdjJ9IdcThef9Gvg5x3\nf4fbg1zOAAgCzoGDcD/0CJYli0AUqf37YuLc20k34NkoWa42jsXjmaAoXKhRkQwlk3KO8gFjWKdk\nPRymWGMKRxEuei4w9c9JlLIn8dLPa7G//zaWb79B8LhRal+P67F++NrfFugydtvnDN/8ScCgT9n1\nJe0r386kDtMxSTmxVEVTGLxmcJDhBfgr7SDDNn9CnDmOaOAwOXDIMRHrfe+u0Z0YU5i3kyL8q1Ek\nKfgvhrzFmCtYOnkCy7w5ge/m75eT0KE1llyGF0DMysT6w0rs0yYTM3wIibfdgmXmVGxjRmL5ajpk\nJ2JpNWuR+dkYXPf3Rjp1CiklBUHTED1uTDu3E/vicwChD1sDiKp62e5lPc+/l6BZLGhJZcBgNRpJ\nWF61WDBt2Ryk8JPfHH3VqqM0MoiN5j6mruPu2g21TNmwbcTTp4l9aQCmrZsRNA1BUTBv2kDsC8/4\n1ZJySQkWCJpGzJuvkNi8IY7PR0StAhX0wpYPlFY3k7p6I87+z6NUucafwFW+As4+j5H5cfgSKq1q\nNVwDXsb13IuUmraS1ubaIW0EBO6o2hn1uutR69YjwVaMCrEVg1ahtYrVDuUmNsDKoyv8hv+9D0nZ\nvJOLOw+QPm9RkOE9nn6MkVs/DVpJa2isOLKMMdtGBo237tQadpwxDktsPbuZO6p0MuRplkWZBHMC\nseY44s3xuHwuVh77nmMZxh6ZJmWa8WGLwtFOXoKu62xK3si3f31DhjdyGKIIfy+KjO+/GhEeqNkP\nW9tnQ4l7/KEA01AkSCeOE/vS8zjef5u45/uT0LYFpp9yYmrWhfMM+YVNq39F2v4HrgceRk0svCRa\ntMirP3vpVxA9HmxzZpJwe1ukDesw/bQqENP01Q0fB5c8ngK/EJh27cSyYB6+qtXDtlHLlSdz+Gic\nzwwI20ZIT0M6mxw6pxPHsU2aWMBZ5cKgQX5Wq2zlqry/lW4knuGIxd2jgNJxoojznYGk/Lqei+u2\ncnH1RrI+GR591q3NxmePr6JrtXtItPhZoSo4KvJUved4oWH+bFiftxlH12p3Y5PDKwKlulPyHWfu\nvq+46DbOiv79pD+2nenNYN6+2Ww5E14gQ0CgbeX2PFN/AMWsxYO2K5pCqjeVDG86ad40VIKrH0RE\nqsRVpVW51nzSajjfdF1eYNrJ867znM48hUfx8PH6D2k44zo6L7qNR75/kJvnNGXwhg8LNF4Rrh6K\n3M7/MMSjR7CsWIZaoqTfZViAUgGlQSPDGKtathyee3siXLzgL2UpgJtXyK3Hu38fjjdeJeWn5mC3\nI4bRrRWdTkxbNuF+pC9Z7w8i5vWXkbIyDdtGgk62hJ+ioMXGgQBSqnF9ZtCc83w37d1N4t2d/CUT\ncXF4W7Um662ByFs2YQ6TeFNQCIB84jhKiRJ469TDtGNbMEG/IOC+6x5/PL13HyxLF2POQ2rird8Q\nrXR44nvRwChHjWnTwr5QOB94GLV6DewTvkDKVlFSy5bF+eQzKDcWUjTdao2oCR0JsZY4JrSfzHnX\neU5kHKNaYg0cJj97R6YvE6fPSUlbSUNDFGeJZ0L7KWxN3szdSzqTpYTed1Xi80+o8mnh2coUzcfo\nrZ8xddckjmf6s5Jtsg2XEipQ0jCpEbIo80rjN2hf+XZ6f9eDZGcyeoQX5YYn/ZndMV4N041luP3d\nBSE10vnhzwu7+HDdu2xK3oBH9SAi4lKD53ci8zgjt35KGUdZHrru8sNeRbg8FBnffwq6TswbL2P5\nen5gdeIb/RmZAwejtLo50Ew8egTrzGkIWVn4GjXG27VbIMkm6+U3kLdvw7T9j0B7LTYW51PPosfF\nY500AenMZTzAAfnQQayzZ+J+tC9ambJw9EjoqVht+Or5KfM8PXvhq9eQ+PvvQT6RUz4RDRWiAEjZ\nGb5SWmqkdX2+uJQpLKanY/12CSCQtnAptglfYNq5HdOPPxjqyhYU8vnzZPXug/uxfljnfoV07Cha\niZJ47uzsL1sCMJtJnzkX+9CPMW3aCJqGr0EjnC++iu3z8ApSWvkKYffli2Tj6y7gzzjPGj4KzwO9\nscyfC5qG596eAWKVK4Ed57ax9cwWGibdyA0l67Dnwm7GbhvNvpQ9xJgctKnQjqfqPxPkRi5hK0EJ\nWwkAzjnP8eaaV1h36neyfJnULFabR2/oxz01glWu0j1pjNr6GTvObyPOHBdifOPMcTx47cP5zrfj\nNZ0Yv30sTiU0ZOEwxTJ002DcuYyZS3EhIgYJFtQqVptXG+fI8S3YP4dkZ+S/vxgPxLvhog0e9roz\nagAAIABJREFU3wq2bWvw7r6LtBlzweGI2PcSsnxZPLnqMfZeDCWtyQtVVxm84QN61Lwfq3wFBS2K\nUGAUGd9/CNaJY/2r0lwGybT7TxxvvETqD6vBasUycxoxH70fyFTVJ43HO2826VNmgs2GnpRE6qJl\n2L4cj7x3N3psLO4e96E0usnf/gqpxQjZNcCeu+72xybzUD56W7ZCbZDDV6vVqkXK75uwTpuEdOgv\n9BIlkXbtwLriu6B+OqDHOBCcWYaG+UqyNpl/+xnx4gV/ZrHXS7FGN0Dy5RtfAHnbNpzPv4yQmuLn\nLLbZUG6oGxSr1WPjyBr4cUhfV98nsX77DdKx4LifUrUarsdDKRqjhsMBmcbeB02SMC9eiK91G9yP\nPG7YprBI96Tx9A99+e3kr7gUJ3Y5hvqlGnAi4xhHc8U215z8jYOp+xnRZkzIGFneLDoubMvRjCOB\nbVvObOJAyj4SzPHcWrkD4HcD9/z2bjafCVbMijPHEWuOp2pCNXpf14c7q3bJd951S9bnvtq9mLpr\nEqqe4w5umNQIURCCDO8laGg0KdOUinFVqBxXmb51ngxio9pxLnK5GkCWBX6q6v+sqQjLvgLL76ux\nfzoEZxSyhgBTd02KyvBewgX3BT7e8CHvNy9yQf+TkN577733/o4DOZ0Fl0T7pxATY7nq87UP/hD5\nyOGQ7dKFC2jlyqNWqkxc3z5BgvECIB8+5F85tWrt32g2ozRphvfOLnjb34ZWtnygvVq9BpYlXyOm\nhMa8lHLl0SzW6Eg0TCY8PXv5y5JkGfH0aYSUi2jFS+Dt0JHMEZ+DNSfzV0hNwT7uc6RDh9ATi+F6\n5DE83e5FOnEc4UwyossFJUqgJiQgpqUGubrzQzRKPkYQPB68rduiXVMVJAl54/ogmcDLgXpNNayz\nZ2CfMRV5z5+YdmzHsnQxeD34WuSTEBQbh69ufcQzyQgpKeg2O76Wrcgc/Cla5cLVnwopF7HPngEG\njF46IJ86iXXJIiwL5iKcv4Cv1c0gCAgpF/16rikX/VrEuV4e5PVrsQ/+COuUiZjW/IZWshSaAZf3\ncz8/zbeHvkHR/DSqPs3H8YxjhiVBh9MO07Zie0rFJAW2ncw4wW15DO8leFQPHsUToJUcseVTFhwI\nlcdUNIXRbcfyRpN3qFks+jKdthXbUSmuCibRROX4KnSrfg+ftBzO/P1zDecD0LlaN4bcPJxm5Vpg\nybOS/PrAfI6mG/czwuFiUCoLbjoJiOC5/8Go+n19YH7UdcWX4NM89L6uT4H6/N34O57DVxsxMeGV\n4YpWvv8Q8ir15IZw/hzWObOQwsRYTevXRncQmw3nK28S884bASOuA75mLUifPhshJRXbl2ORjh6F\n5JOYt20zNGxSdomRnlgM17Mv4HqiP9KJY2jFiqMn+BOshPQ0dLMF6eB+4vo9EmTYrIvmkzF8NBkj\nxmAbPgTzD99j3rcXOR9VICPo9hh8deoi7d2D4HKGUGOGg1oqCaV+zuo869W3kA4ewLRvb87YkhSk\nTxxybIyF5vF5Q+K5gtuNbcJYdEUFRyyert3CxkSVm5qSPudrhLRUEITLdv/GPvskhKlpFiBAcyqd\nPo39i5FoZUojnk7GOu8rpDPJ6JKEr0EjMj8eilqnHpZFC4h57aWgml7zDyvJHPoZ3js6B7alulP4\n7fjPUc8z05fBD8dWcn3JGwLbBm0YyNGM0JfSSziZlUPRuOPcNsM2qq7yy/Gf6FC5Y4ESlgRBoHvN\nHnSv2SNoe6W4ymDwpyggcH3xG0J3ZKN5uVb8eiL63wNgXXl4ZiMQITs/L8o5wguahEOWr+C6zkW4\nsrgs4ztkyBC2bNmCoij069eP9u3bX6l5/eehVK2OKQ8fMmTHT1u0wrQuvIE1EmcIB0+37nibNMM2\ndRJCejpK3Xp4uvcEWUaPiyfrg8FY5s/F8eqAsCtKMSMdIT09oFEqnjiOdfxYpIP7EVwuhLRUpLNn\n0e120HSkM6eD+ksnjmP/5CN0hwPLrwV7GOWFr3lL0mfNQ0hPI+HWlohHjkTVz9PxTvTiOdmnWq3a\npC39HtvEcYhHj6AVL4Hnjk5YFy3AOm0yogHfsgBoooiYvVLXZRn3XXcjnQyTiJaRgWPkpwDYx4zE\n9WAfnG+/F3aO0ZRq5Qdx725Mq8MzJuWFoKp+hrQjhwMvHoKqBsqdUr/7EdvY0SFkGtL5c9jGjsbb\nsVNghXzRfYELYTKGwyHBEnzOeV3IIe3NiUzcMQ4tDFPZJczeO4tfj/9MzcRatKpwC7dV6UjZQhip\n3078GnZVeVOZpnSq2jVs36frPcv2c3+w4vB3qLr/frJKVhKsiQFu6rywZd92SoPoZQf73PA4c/d9\nxf6UfVH3ub5E+JeGIvw9KLTxXb9+PQcOHGDu3LmkpKRw1113FRnfAsDV7ynM69cinTgetN3T4XaU\nxk3QSpXGPmYkYqqBy7huvQIdSy9bDucb74TZqWObPAExTHwQQKl9bSD5R/pzJ3GPPoh86FBowzDK\nMQCmP7YU2L2sWSxIuVa2Su3ryHz7fQCE1FSEfIQSVLPZnz1usfprn+fMwtOzV84xEhJxvvx6UJ+s\nxk0wr1qBeCyUa1cH0kd8gWnfHgRNw9vmVnytWhPf7c58z0dMTcE+bjRKnTp4u3TLt31hYdq5I3o+\n7myIyacNV/zyju1YJ44LS7Up79iBmHzan4gHlI+tSLWE6hxIjc6dXzW+Gj1q3R+0TYtESoLItnNb\n+fmEX+wjzhS+JtmlOPkr7SB/pR3kuyPfMnTTIO6s2oVPWg1HFESyfFmM3Taa7ef+wCyZaVOhHffX\nfjBopXzedZ4Xfu4fUocrIFDcVpx9F/bSbHZDmpZpzsAWH1PMWizQRtd1xmwbxcGL+5GQsJlsXBN/\nDePaTeZ01il6LeuOWw2uQjAr0HUPZDWox5j2iUh/TgnR3jWCw+RgTNsJfLj+PTae3oBP81IhthIJ\nlnhOZ50m2Rls6CvGVuKpes9EHLMIVx+FNr433ngjderUASAuLg6Xy4WqqkgRZN6KkAO1bn3SJ07F\nNu5zpD17ICYG782tcb78BgBa5cq4HnwY+7jPg1a6vutvIOv5l67YPIRz55AisBrpZjPu3n0g+7ra\nR31mbHjzQ4EMr4D3pqakz16AbeokxFMnUStUxP3wo2CzIZxJJu7BnoEs8XAQfT5/clhWFtKq7zH/\nuArpwIGIq080LaxRF4DY11/0x2kbNkJNKg2CgO/Gxph/X53veQk+H5ZlS6+q8fU1boIWnxBWQs8I\n4aQZBUC8eAHdYjWWP7RY0HPxgJslM/fWvI8hGwfh03PuWZNgonbx6ziYeiCQTXxNfFXebz4oxLDU\nL9WAo+kGuRBImCQTKZ6ca57uS0cWZAREfHrkEMYF9wWm/TmZUvYknqr3LPd9ezfrT+d4l779awkb\nk9czss0XgW2Td04wJMDQ0Tnv8idBpngvcjzjGCcyj/N1l28D2dtjto1iyMaPULJXvF6fhx3ntzNy\n66eMajOWTlW7svSvxQED7FBlHrtQGZqWpXb13Rzf+ZF/nD9G8tpNb3FX9Xsinl/dUvWZ3/kbf42v\n6qFSXGUEQUDXdWbunsaKI8tI86RRLaE6fes+xbXFr4s4XhGuPgptfCVJwp4t2bZgwQJatWpVZHgL\nCKXhjWRMnBZ2v/Pt91FuqIPlu28RMjNQal+H68ln0EuUCD+oy4Xlu6XokuR3CeZTL6jb7egxMRCm\nLleLi8fbJIdoPT/BgXDQDATZ80KNjcPbshWul15Dvd7/Yufq/1xIO9sXo6OTHcyzihI0Ddu0L3H1\nfQI9WyovL6yTJ0SUHpSysvzGfNlSpF27SFv1C87nX8a0eRPmNfm7e4VC1D8XBFqlynjbtce6YF5U\n7dXEYig1ayKtD6Xf1C0WvLe2x7RzO+ZffgrZ72vcBL1Y8aBtzzV8EYc5lkUHFnA66zRJ9iRK2EoQ\nZ47nmoSqFLcWp1piDe6r9QB2UygxRs3E2iElPADXlrienedD5ZMUXeHWih1wKllsTt6IN0K9LsCq\nIyvQdT3I8ILfoC7cP497a/akeTl/ktxZ1xmjIQyx7tTvLP3rG7pUuwtd11l8YEHA8ObG8sPLaD//\nZnae34GGhl22c0OJenzU8hMOpR7knh/74VVzzuFw+iHe/f0NmpVtSVKuxLRwKOMIZlMTBIEHr3uY\nB697OOpzKcLfg8tOuPrhhx9YsGABkydPjtguMdGOLP97jHPJkrH/9BT8ePxh/wewABFZXidMgGHD\n4EA2x3Lt2vD223DffeH7lIyFNrfAnDmGu6Xz5yg+6QuYMsW/wRGeSSgsbDak0kmQmmJMcyiK0KIF\n0tCh2Bo3Jl/p7sP5c0iHg5ieTokfv4PnQo06AGt+iXos09HDlPjgLZg+HX5cBZMmwYYNcOIE/PST\n4blaGtS7+vfWzOlQsjjMmBFablS+PMTEQEYGXHcdUv/+SHFx0KMHnD0b1FS4/XYSO98GlcrAgw/C\nzlyELvXqYRn1meG5vNbmRV5r8yLH0o5x15y7WHEkp8SshL0Ew9oNo1LZUEPiVb18c3hBiOEFSPWG\nf3Hbdm5LYCWaH9J8qfyZaqCBCHg1L6v/j73zjI6q7NrwNTWT3hNKgBB6Cy303hFEUKogWBAEFXgB\nBcGKvSDSBPwAQRAUEKlK770HCEloIYEEQnqdXr4fA0Mmc2YygaCic63lWs7pZyacfZ797H3fd/fS\nr1FvAOqXrwNOeiSYMJGoukJwsDcqnYo7SmHzkDxtLuczHhSKKfVKTqYe44Y6nt23dwm+PKQqU1l3\nYyUTW03ES+6FVPzfqZP9xzyHHwOP9CseOnSIRYsWsWTJEry9HX9J2dlPTnVdcLA36ekCYu3/YKRn\nTuE7ZYr1qC0uDsOE/5FTtTbGagK+bffwCCqHB/ZbeHSnzpBz7/vwjGqJR7Rwlall+1q10deojfzE\nUURZmebWojhzaltQbMNoRKs3kBtcCZz43r1lbjjqYDZ6ejp0G8oTydHYOY9vbj6l0RYy7NxF1v1j\nDXjB/J/RiM/zA2wM7nX1G5D70hhMTtyjWq9m3eVfydXk0DviGar6Odl2ZDIhKsgnaM4c0qd/jGLF\nj8hOHEdkMKBrGoXq1TGgUJinAcQPBC5kcxfhvmQR0rhYjN7e6Np2oPCDj82/R4UI2LobxcrlSG4l\nYahSFfXwl8zWk/fuRWPQsDb+F9JVabSp2I4W5VsxZc80zqZaFxVmKDP4ZP+ndA7tZSPysDNxO/EZ\n8QiRq7KfjXA28AJU8a7K3bx0u+t1GpPl3/7AqsNZHvgTsZnOReATSafZHXuQyKBGhLiHkq60f56i\nmDAxY9/H1HTQFvX5oc/55sg3VPQKo1t4D95v9TFSsZQ8TS4rY5eTr82nfVgHWlds59Q5nwSexOdw\ncRy9PDx08M3Pz+frr79m+fLl+Pk9epVmmaFU4r54EdKL0Zjc3NH26m3VDvFvRfHLKsF0qSQ9DfcV\nyyic8ZnNOlFBPqI7d3DbstFx72wR957Cdz9EcvUK8oP7LEHUJBYjMhoxKRTooppj9PdHsWMbIq1t\nG5DIZLJsXxT50SN4zJ6J8r2PSrxXTc/euG37w8oXFsDg5Y3qzQkYfXzxnv624D2ZAMll4Qc8gL5u\nPafmb+8jysk2t1ndbw9SKlH8vBx9nXqYFArEGemI9Hr0DRtR+L+3rCqu7bH9xh/MOPoB13PNI/w5\n52YxsOZgPmv7tcPWGbdfV6NYuQzJtSvg749Xm/YUfPIl6lFjbTcWW8u66zp3Rde5q3m0LnQOd3fU\nowWOgznlOvXgJOKzzC9YComCrlV6EGcnaF3PvcaW6xsZWMtaR1outi+t6uPmS82A2jbV0B5ST0FV\nKsFjyH14sd4rfHnC9t/CfZqGRln+31PmyZIeK/j8+AxOpp7AYNRT3rMCl7MuC84x7765g6O3DzOg\n5iCeqvo0sZmXHMpKFiVNmUb38J521+tNevQGPddyr3Lt/FWUOiXtKnVkxpH3LJKX30fP4amqT7Og\n6+L/1Oj4SeWhRTY2btzIgQMHOHHiBBs2bGDDhg20bNnS7gj4r2iWFuXn4ft8f9x/+Rnp5XhksTG4\n/bkF8vLQderi9HGexOZut3W/ILUTVPQ1aqJ9qrflsygvF++J4/B8fxoeAm0kxVEPeh5du3uSl3I5\nmgGDMOl1SOLjEKvV5oCqUKDp2AV1/0F4zpllExiLYl9m0oRm0PM2gaE4hrr1oKDAbGV3T7faEFaJ\nwg8+QT1qDIbIRsgO7BPskxZhrrw2VK6MoZ5tu4W+bj3zvhnWoxZ74h5GXz9UY94EuRzpsSP4Dh+M\n+29rkJ86gSThGsaqEeStWmv23nXCMahAm8+L24ZyI+9BUZvGoCY67RyBHkE0DhFuQZFv3oD3W/9D\nmngDsVoN2dnILkQjvXoZTb/+JZ7XQimF/A1GAy9vf4HYzBjLMr1Jz5XsyxhNRjQGYV3xOwXJxGfF\nU9U3Av97VcKVvKuwI3EbaUrbudauVbrzfdfFKHWFGE0mQj1Cearq0+iNeptq3vs0CGpIiHsIcokb\njUKaMqX5u/Sp1pelFxeRpRb+m29arjlRoQ/cqgIUgfSt/hwv1x/Fq5FjGBU5lms5V7iafVkwPa4z\n6riQfp5+1ftTy782dwrvkKfNJVARiEwkR2O035f+dftZHLtz1K7BQ1EuZVxka8ImcooUoBlMBuKz\n4pCJZbSq0MbB3o/GtoStzDn7LeuvrOV6zjUigxshl5ROi9oZnsTncHEciWyITCYnvcYekb8ifeDx\n6Ud4zp1ls9zo5UXOlp0Y6tV36jhPRLpDr8d97izkB/cjUilBq0V2KUZw04L3Z6Aq4qzj88Ig3HZu\nL/EUJkDboxd5S1dYF25pNGbHoyu2fYW6uvWcclASPJ9EgqFqBJoevcwjYHsFfCYTssMHkR49gig/\nD2OVKmiefwGT14MXP1F6Or6D+tr9TnQ1a5Fz+JTgOtHtFDzmfYf00kVMbu7o2rVH8csqpAJ+xepe\nT5O/fDUYjfg91QWZgHGD6oUXKZg1r+QvAFgYPY8Pj74ruK5L5W788vR6wXU+g5/Fbd8em+VGDw9y\nNm7D0Mi+q9OjsOX6RkbuGCG4zk/uT47WcUV6Bc8KzOo0n86VuwKw48afTDk4iTuFD+ZMGwRF8mPP\nVVTxqWKz/4yjH/B9tK0+dqAiiL2DDtsUIAH0WNeRc+m2PfZixCzvuYpnN17CbfdORHm5GKrXQPnK\naxa99TxNLh3XtCa54JbN/kXpGd6bFb1+oVBXyI3c6xxJPsz7R9+xu31l73CODztLYt4Nph98m/3J\ntgVuztK6fFs2PvtnyRs+BJ8e/4hF0fOt5qajQpuxqvc6y0tUWfFEPIdL4LGknf+JyM4KW32JCwpw\n2/w7SieD75OA9xujUWz4zWqZUSZDXEyAQxfZENUroy2fpWdPIz94wKlzaFu2RvXqa4g0akxFgq9i\n3a+CgRfM/rQlYZTJEets32hFBgPSa1eRXpuDSKWk8MtvbY+flIT3/95AdvIYIp0Oo5cX2m49UY+w\ndmkxBQej69jFbvCVXruKJPaSeRRdDFOFihQW86PVNWuJ94TXkSY+GJHq69Wn8D1z37Hs0AGkRQwu\niiI7dth+OrcYuRr7c5v5WvsPIskt275kMDtOyU8cRfWYgu/dQvsVwT5yH8p7VSAuy/7L2O3C28w+\nM5NOlbogEonoUbUXkcGN+DFmMdnqLCL8qvFSvVcFK6MBulfpzpbrG6xagjylXoxt+KZg4J195luu\n5ggX7DUJjaL/99txX/nAEUp65TLSkyfI/+pb9B078/O1n0oMvGDuMwZz6rp+UCTzz81xuP0LdUcg\nFUup7leDrzvMpvPa1hToHq4yXql/PPU113Ku8lPMUpuisNN3TzH7zExmtPn8sZz338q/Kvja61cE\nQPLvuVXpsSO4bdtqs1ys06GrGoEIE4jF6Jo2p3Da++bq1vv7nj6FyI6bz/3UqlHhjsnb26xRPLAv\nhophqPv1R/nBxxYNYLvIHVsi6urUQ9u2HZ6rVoDS/kPC7c8tKN95zyJfeR+vKROQH3nQ0iMuKECx\n4TeMQUEUfva19bmimttNF4uMRtx+W2O+JyfQt2pNzs59KH5cgvjuHQzhEZa+YzDrKdsTERGpnLd0\nbFOxHfPPzRaseq3pX8vufsbgELhmG1RMMhn6WrZm9WVF74g+fHv6S0Flq8iQhnzXcT4/XFhAbGYM\nO25sx4DtdMS5tDOkFCQT5m0WcinvVYF3W37o8Lx6o55xe8aw7cYfVEgt5K140HoqSOrdidEtJtKs\nfEsupl9gddwKcjW5RPhVo6Z/LWad/lrQJKFRcGNm13gHxTsv2/y9SDLS8R39MkZ/f56rGcDyKEgs\nYZBX3d/a59nRa1eT4KZMaDLZ8jncN5y2FdtbVYmXhsfVw7vx6npBjW6As3fLxqrzv8S/JyJh1sgV\nki80+vmjHuSg3eYJQ35wn12PXlNwCDlbd9rdV9+oMSaFQnB/fY2aGCtVQRwbgyz1wQhWkpKMx4K5\nmPz9UY2fhKZrDzy++0ZQFUvbuh2S9DSbnld9hYponn8B1WuvY/Lzx3P4UFQL/w/Fb2sRCYyCJamp\nSC/FoGvzoHpTEnsJ+THbflQA+b69FN4fXZpMuM+fjduWTZbPQoj0zst0glkRSzXpbcF12q49MFSq\nLDgC1ddv4PRcaruwDvQIf4otCZusllf1rcaYhm/a3U/Tpx+yk8dtlKp0zVuia9ka93nfITt5HERi\ndK1am6ueS+EdbY/yXhUYWHMI/3dhodUcaHnPCoyOfANfhR9Tmk/nrvIuB5L3UygwmhMhtrIWdIaZ\np75k/ZW1zNkGw8+DvwZAzY1je/D9aig/R/zMR0ffI1vz4EXRV+4rGHgB2oV1JPL4Vbs93iKDAUlG\nBg0yMliTJKLNKyb0Dt71B9awLiZrW7ED66+uE9w2XZ3Od2e+YWLTty0FdbM6zsew73UOJR9AbVAh\nQuRU8VaAIpBw3wi0Bm2Zz8NKRPZvWCJ+ctpI/yn8q4KvctxEpGdOI9+z0/KmafT0Qvn6OIzhVf/W\naytLis5t2qzzcNgJjL55S7St2+K217oNxiSWIE5JQWbH6UdkMuH2xxaMIaEofl4OOp3NqNJQuTKq\nN8ZjqFEL94XzkJ05BWIJujZtzQ97aZE/t3btKKheH9nJE4JzqQY/f/TF2qPE16/aHbWL76aCTgdy\nOR6ffoTH93Mcylma5HI0XXvYXV8qtFrw9EQ14mU8v/3K6sVGX6EiyrHjS3W4hd2WUuN0TQ6lHESp\nU1IvqAGvNxpHzQD7I1/1yNGIM9NRrF2D5FYSeHqiadmags++xufFoVZtT27b/0B27KjZmrIMhHFm\ntPmcKr5V2X7jT3I1OVTzq8GoyNdoUqRyONQjlKYhURxM2W+zf9PQKKd1lw1GAytjl7MsZjFVs0Ev\nAq8i71BV07TkTv8fS8f7WgVewO6oDcwpfWNYlFO+081TTIyIhh/tyC9X86lOg+CGVsuer/MCB5L3\nsfGa7Zz9rfybfHXyM1R6lWXEH+QRxKrea7mUEcOlzIvUC6xPtjqLz45/zJk021oFd4k7OqOOLHUm\nn5+Ywfora/ms3Ve0D+vo8F5Kw5Daw/i/CwvJVNu2drUo17LMzvNf4V9VcAWAwYDbb78iPXkc3BRo\nBgxG3ySq5P2K8E+f6Bfl5+HfsbXNKMsEFHz6JerRrzvePysLr6mTkB3ajzgrC0PlKohT7yAuwWXI\n4B+ASKux6aE1+Pmh7fYUqjGvY2jQ0M7e1tz/jj0+eg/PBXNt1qufHUD+Dw+EW6SnT+I1aRwyO1KY\nRqmU7FMXMPr6EdC+hY1mdlFMIhHqIcMomLPA7jbOIN/0O+7LliC5egWTjw/a9h3RRTVH8edWRFmZ\nGMLDUY18DUNk6bS4H4nCQmRnTuEXWZt0v3IolvyA93Tb0boJyJv/A9q/MCN0OvUkr+8eTWKRSu4q\nPlWZ13kRLSu0KnF/o8nI6J0vs/n6BqvlvS/DhjUgK/KuNak7fNfa+Wv7tsNchtcZYbdorjjftBUz\npavty50IEe+1/IhxTSbarDOajMw98y1fn/4CvdE2/V7FJ5wDg4/bnd8GuJwVz8R9b3L27mmMGPGS\neVPZuzKxAvPqtfxrs2fQ4TIdAS+Inse3p74kX/fg+ejvFoC33JtA9yC6V+nJxKi3S53JEOKf/hx2\nBkcFV/++4FsGPAk/unzrJjxnfIA0yayDa/T0RNP7GQrmLXI6xSnKykScmYnix8V4LP2hxO0NPr5I\nBKwQjT4+ZG/bi7FGTaev3/Id6/V4Tp+C27atSO6mYvDzR9epC/nfzoH7I3yDAb+enZCddyzuoWnX\nAeXkd/Dv95TgepNUiqZrd7Tde6EZNrzUbTVFkW//A+9xY2zSlJrez5hHlH8z979f7zGvoPj9N8Ft\nVEOHUzDb1sz+cZKhymDJhUXcKbxNec/yjGwwhmCPYJvtjCYjSr0ST6mnJRX7+5XfGLt7pGD6tU88\nZLtDnhvUSQcvNSxtZrMZMrEcXbH59NYV2rCuz2ZkEhmS6LN4TZnIroJz1MiEmnaKtd/p581XjWyf\nER0qdmRd381Wy+Kz4th+40+0Bg1rLq/mVr5wcRzAgcHHqRNYFzCP8q9kx+Ml86aST2XLNiaTiR2J\n20jKS6RNhXZMP/y2jVzmfWZ3ms/QOsLV6A/LhfTzrL28mvjMWE6mnrAxiHi53qt81cG266S0PAnP\n4ZL4z1Q7/5fQPt0XbaeueL8xCtnJE4gz0pHv3oH3qBcp+HKWY/3ne5gCAjEEBJrTpiVtq3C3ThsX\nQZyXh/zoIdSlCL4WpFIKv56Fctp7SGNj0FergalceatN5Nu2Ii0h8ALIjxxG0/cyRm9vxPm2/2gN\nYZXIX7qyTOY6FSuXC84PyvbuRnrujJV3cFmSocpg/dW1KMQKBtQajKfM8TSD+Pp1+ytFJTCrAAAg\nAElEQVRL8T0cu32EtfG/kKnOpIpPOK9Fvk6YTyWn979PkHsQ77R4z+56g9HAFyc/YceNbaSr0gjz\nCqN/zcGMbfQmh1MO2J333FILyxzIhXLgrheDQB9uuE9VfN18ydfmIZfIaVauJdNbvI9MYv4uoitK\nmDJayrk0EZ2um1i3DvyLlUdkV6/C/EhhG0l3+YPfw2QyMfXgJH67vIYCfcmVy0GKIMp5lsNkMjF2\n16vsTNpGga4ACRKahEbxdYdZ1AtqgEgkomfVXpb9CnT2A9Tdwrusjl1JcsEt6gbWo3fEM6XyOBYi\nMrghVX2r0uf3HjaBF2BLwiYmNn2bcl7lBfZ2cR9X8H2CcduyCbe9uy1zjJKsLCSbNyLKyyNv7Uan\nj6Nv1hzTymWCFZkGNwXGuvVQDRuB++qVSLJsq1pNbm7oa9d92NswH8M/AF2b9oLrxKl3HCtw3UNk\nNCA/uB9t2w4oBKrBtR07I1IWmufMH3GuU2zHrF6sUiI7fuyxBN/vTn/DjzH/x917IhTzo2czOeod\nhhSz5QP48dyPrDv9C8uTYhCS4zeJRGicVH5bcWkZHx97nzxtnmXZrsRt/F+P5UQGl21K/f0j77Dk\n4oMsTJY6k7jMWEyYHBf1FPsDUUmNNqNcESKu5phb5CJ8I5jW4gN6RTywgzQYDUw+MIHoNHMP8J5q\nMLEHjD8BDVNBLYUT4VJ+ej6QQrHw75+S/2C6Y/GFRSy/tNTpe+9YuQv+igCGbh3A7psPiiYNGDh1\n9wSv7niJfYOP2Mhy1g6oQ0zGxeKHw13qwbora7h2z+JRjJhWFdqwtOdKK/vD0mAymfj0+AzWX1nD\n7ULhF5AMVTr7k/cypPYwwfUuzDx6Yt7F34bb+jWCVcvyo4eROuGwcx/NwCFoO3W1Wa5tEkX2qfPk\nbN+LZsTLaJ7qjUngrVnXohX6FiXP2T0s2u5PYfD3L3lDQJyZScG3c9F06W4erWNOi+vq1EV27CgB\nUZH4dWyFxxcfl8rmsDj2ZCJNEgn6CPs62g/LrsQdfHdmpiXwAiTlJfLxsfdJyk202vaz4zN4bctr\nZJ/YTWiOnYpumYyLYW5sv/En+UWCanE0Bg0Lz8+zCrwACXkJzD4z085eD0eOOputCZttlutMOtZf\nWUuPKr2Qi52fvwzzCmNk/ddoGGTucS46ak7ITeCDI9MpKNI7/UfCZs6nWfdq/9QYmo2GyLFQ503o\n8oKeX6S2ge4+wR4hlv//vwvO1xSIEdOlcjdWxa5gz81dgttcz73Kz7G2LmivRb5BJS/bLIS3zNsS\neAGMGDly+xDvH57q9HUVZ/GFhSyInmM38ALIxXKq+VZ76HP8V3CNfJ9ghOQTAURaLbKLF9C3FR5J\n2h5IQt5Pq/GYPRPZiWNgMKBr3BTV/yZj8n/whqwaPwlRVhaKjeuR3LmN0d0DXeu25M+0VRiyi1qN\n+7LFcCUWL5EM9bP90d+TrhRlZuK+YB7SK/EYvb3R9n0ObY+nMFaugqZff9yXLy2xEtVQJRxTUBB5\nv/yGJPos0osXkMRcxGP5Esu+4twcsxSnRovyo0+dv/YiaHo/I9za0zQKXfcyqqIuwsZr6wXbZDJU\n6ayIXcb7rWbc+5zBr/E/ozfpSfOEQil4Cih9pnnCM9v7kSPWEOZViQE1BzOtxfs2KcndSTu5nnNN\n8JrOpZ3FaDKWSXENwKXMi6QWCou03MxLpFn55rxUfyQ/XfoRjcG+TON9gtyD+aL9Nwze8qzwMfMT\nWRn7E2MbmVu4kvNvCaa1jWKILZI+0Jl0eMm9KNBap5LdJG48V2OgeRuDzu69CGHEyLuHp5CrznXY\nUpScb1tI2DCkMUt7ruSH8wuIz4rDS+5Fg6BIVlxaJniMY7ePPHQr0taEzRhMBofbNCvfkqhyLUp9\n7P8aruD7BGMoXxGpQGuQSS5H19C5qmMLCgXKd+zPxQEgEqGc8RmqiW8hPXkCQ5VwjLXsO7HY7J6f\nh8/QgchPmHt13QG39WtRTpiEpv9gfF4cYiVNqdi6icLxk1C99Q6FX8zEUDkct53bEOXmIL57F0mm\ndcuDvmJFlK+OsXw2NGqCoW59/Be1tvX2BRRbNqF8exp4eKCYPwfFn1sQZWZgqFQZzdDhaPoPsnsv\n6lFjEKenoVj3K5LbKWZTiWYtyf961iMVctnDkbqV9ehtk2V0fCMADlWBngLTvrvCtOTci5nJBbeY\nd+47QjxCeTXyNavt3CT2tWnNRvZld68RvtXxlHhRaLCdH5VJZBy8tZ+k3ETKeZTHYNIT7hNBfFY8\nGeo0gaNhkaws1DlwuNLmWP6/fVgnPKVeFDoxP1ugLSBQEYhSr0KlV1LdtwbD6r3IoFrm6vFcbS46\nY+n6yO3pTRelmp9wVqVRSBMWdlti+Xwk5ZBV+r4ohXolWmPJwTdfm8eRlMNU8KpIdb8a5GiyyXDg\n1CRGTIvyrZjZYfYjzyv/F3AF3ycYzcDByE8es0k9a9u0Q9/68VmLmfz80XW378BiD/eZX1kC733E\nKiXuPyxAEh9nowktUqtxX74U9YhXMIWEoH5jPOo3zD2zouwsPD96D9nxo4jUavQNGqJ8YzzG+tZm\nCeL0NLvSi5JbSUhu3cRtzWo8Fsy1BGhp4g2zVKlOh2aInXkrkQjlux+iGvc/pEcOYwyrhKFBZKm/\nE2ep7l8DEoXXNSgy7xrkHmK1bkJP+GkjNE8xzzEZxWL2VzYyvtjPZzAZ+CNhs03w7VSpC/UDGxCT\naZtqbVa+RZk+ZL1kXmiMwuIxGaoMXt89ysqYILkg2e6x3KUeFtUohYMXiOq+D5So6gc3oGfVp+yK\nYRQnU51Jl0pdeavZNOoHR1q9qPi5+SEVy2wqqx+FALcAp+dRm4Y2o5pfdcGsRd2AenjJvKyWXcu5\nyh8JW/CUeTKk1jDmn5vN2su/kFxwCzFiZGIZJkzI7DhPycQyPmnzJS/Xf9UVeJ3EFXyfYDSDhyLK\nz0OxagXSy/EY/fzRtW1PgYAm8j8Be9rbkuws5EcPC69Lu4vi97Vm56AimPwDzH26JpP5PztOSMaA\nQIzBoWbhiWIYQkIxeXmi2PCbzchYXFiIYuVyNIOHOhzJmnx80RVxjHpcjG04jt1JO4nPirVa3qpC\nW6uCq57hvYgMasiFDLNh/JVgaDMSBl+EwW5RKGvXYqhplaDeYYaAeIJELGFq83eZenCy1Txfw+DG\nvNvCsQRkaZl+eAp6k303LEeOQMXxkftYCrTcpPbdn2MyY+jPYMvnuZ0XUcErjP239pCnySO54JbD\nNOvpu6cJ865kkyGQiqX4yf1JV9vXvi4tjUOjLFXZJaGQKhhR9xW+OPGJ1XRFoCKIUZEPrCFNJhPv\nHp5i9o6+J0Iy89QX5KhzLIplRoyW715I9hSgR/hTvNJg1EPd138VV/B9wlG/Ogb1y6MQpyRj8vXF\n5PsP8lYujqMXYgfVxyY3+w9PRCLHaV53dzRdu+GxbInNKm3nrkji4+zOnUsSroNKBR72RQ/+KoI9\nglnR61dmn/6G6PRzSEVSmpVrwfQW71t5t0rEEma0+YLpRyYTl2EWJJFIZGQ805nGPVYQmxGD++YN\nFuH/olT2tnUNAuhRtRcNgxuz7NISMtUZ1PSrxYh6r9hU3T4q59LKTh9YpVehN+qRSWSIHcgiJuUl\nWn2WSWS81/IjqvvVYO/N3WiMWlKLOCwVJ1ebw+AtzxHqGUqXyt14NXIMJpOJZTFL0BiF1dgelkyV\n7cuRI8Y2epMKnhVYf3UdGap0KnlXYni9V2hb8UFWbEXsMn68uNhKGtSZ9Len1BN3qQe+br50qNSJ\nj1rb90h2IYwr+P4bkEgwVhZ+cD4qosxMPL76DNnpk2Ayom8SReHb02x6cZ1B16QZ8uO22syGwEC0\nHbvg/stK23WVqqAeOMRmeYkUFOA1eTzy40ehsACDrx9otUhUSgyBgei6dKPgq1mIb93E6O6BWGUb\njEx+vqAo2wBTGtR6NdnqLILcg5FJZIT7hDO7c8miGG0qtuXM6DPMObSATFUGTUOb0blyV0QiEU3L\nNaNTpc78ecO6FctH7sOIui/ZPWY5r/JMa/H+o96SQ0rqWS4NedpcNl/fQP2gSDylXna3O5pyiAvp\n0ZaWKZPJxP/2vcGv8auc0lIGiM2KITYrhn239hCXFYtKr+J3J1PXpcFfYV3xrzVoOZ8eTaAikAg/\n4erivjWeo2+N5+wec1fidkFf4pLwkHtyfOg5PGWeZVZw91/DFXxd2EelwueFQcjPPNCSlV2KQXo+\nmtyNfzjUmBZC+dZUZNFnkB89Yllm9PBA9dqbqEeOQnrmpJVVoVEmQzn8JfCy//AUQnrmFN4vDUN6\nN9VmnaZLN/JnL8AUai5fNdasha5VG9z22rZ3aDt2sZvOfpxoDVo+ODKd3Uk7SFOmUdmnCv2qP8fk\nqKlOz6e5y9wZ2WC04LqF3Zby4ZF3OZi8jzxtHjX8a/JKvVfpUUS44e9gevMPGbi1b5kd75tTX3Iz\nL9FhKjtLk8XiCwuZ18VcnLTv1l7WX1nrdOAtzvora9Eayt4AXiaS0TviQV/2/11YyE8xS7macwWF\nREGL8q34tO1X1ApwvgASHBejOSLUoxxeMi/X/O4j4Aq+LuzivnyJVeC9j+xCNO4/LEA5uZT9gl7e\n5K7ZiGLlMrzjY1CJ5aifG4C+ZWukRw8jTreupBTrdCi2bkL9+jiQO98W4fnpR4KBF8x+xiKN2urR\nmv/tHEQTXjcXb2m15janLt0p/OjvSaVNPTiZVXEP+jmvZMcz89SXSEQSJkYJuyqVBnepO193mIXR\nZERn1NmtaFbpVZy7e4ZQj3JU83fcu3y3MJX55+YQnxWLh9STbuE9GFZnRKkezh0qd2JA9cH8dm1N\nqe5HCIlISkKucItUca5lP9hu782dduc1nUFI8ak4oR6hFGgLKNQ7F/gUYgVjG49jRL2XAdh8bQOf\nHZ9hmTpQG9QcSN7HuD1j+LP/bss0hN6o59vTX3Hg1j4KdYXUDqjD2EZvUtO/NvnaPII9QqgVUJsj\ntw+V6h5FiHimWr/HHnjTC9P55NiXXM+5io/ch/41B9GhUqfHes6/ElfwdWEXSVys/XWX4x/uoG5u\nqF8dg3ewNwVFdFsVP/+ERMAnWHYhGsUvP6N+8RWnDi++egXZqRN210uys5EdOoBm2AO9W1PFMHJ/\n24z02BGkcbFoW7fFWPvxeeA6IkOZwU4BH1cjRjZd38CEppPLLM0nFokFA298Vhzfn5vD8dtHScpP\nRCF1p1X51nzZ7luq+kXYbJ+cf4thfwwiroi4/47EP4nNjOHzdt+U6poWdF9M+0odeefQWyidDE7F\nkSDB4GC0Wxxfhe+DfR3MD5cFjYIb807z94jLimPO2W/J0dgRjy5CFd9w3op6x/L5tytrBefso9PP\nsv7qWgbXMhfgvblnNL9ffaDrHZd1iR2J2/CQeqDUK6nuV52e4b2p4VfLovxlj/uWhoGKIIbWGW7l\nP/w4uJGTwMjfXiAmLcaybPP1DbzdbDpvNC6dS9g/FVey3oVdTN4OrAsdrHsYJHfsF7VIEm84fRxR\nYaFDrWqTXI7BTm+yvlUb1K+M+tsCL0BsZgzpKuFeytsFKVY9vWVNYl4ig7b0o/OaNqy5vJqk/EQA\n1HoV+27t4c29r2E02c4Pzj07yyrwgvllYU38ai5nCbtQOWJInWFcevkanSvZqq45QiqSUsWnKt3C\nnRc5kYgk9Ah/kG5/tvoAu+00zuImEa4TGBP5JtsH7KNzlW68Fvk6fSL6UdGzIsHF2sOKczk7nl/j\nV1k+pyntV1DfVzs7c/cU227YvsQp9YVkqNNR6gu5kHGeuedmMbjW8wyrM4Igd/t68PfT8JnqDA4m\n7+e6k1mF4mxL+INXd7zIs5t6M3HfG1xMPy+43benv7IKvOZrV7L4wkLyNPatIZ8kXMHXhV3UQ17A\n6Otrs9zo6YV6wGCBPR4eQ3n7BVyGUngxGxpEoq/XwO56XcvW6KOal+ra/kpqBdQmQCEsXRnqEYqn\nrHTz385iMpkYv2cM+2/ttTtHeib1FNsS/rBZLqQrDJCvy+ePhC2lvpakvCQ+OfYByQX2bSGF0Jv0\nJOXdAEROjWADFYGMihzLS/VGAmY1r4+Pf1hqcYziVPaugo/cx/JZLpYzuNZQPmrzKWKRmOs516iz\nLIKVcctIKUwhXSUsElKUbUUK5MK8hQ0txIipF1gfgAO39guOjoujNqjZf2sv33Waz299tpT4IgBw\nPv0cHx6eXuJ2xVkYPZ8xu0ey+foGjqQcYlXcSoZvG8Lh5ENoDBqKGuydTz8neIzbhSlWo/knGVfw\ndWEXQ4NICqd/iKFi2INl5StQOGU6+lZtyvRc6qEvYhTQb9Y1aIj6+RecP5BEgmrMGzYvDSZA1yCS\n/O/mP+KVPl5CPctZlJmK0yuij2NzgUdgT9IuTqXaT9eDeTQrNI/qSCnJkUKWENdzrjF0a39+jFnM\nlWzHqVB7xGXF0KIEf+C6/vXYO+gIH7f5HJFIxNyz3/HK9uEcTjnwUOcsSr42ly3P7mRc44mMafgm\nq5/+jXldFlmmC4ZseY7cIspazlC0JWp43Zfwd7P9t9KyQmt6RfQBwKsUleO3C81iJXWD6vFFu29o\nGNwIESLEiO2+xBy/c5Q0pf2XBo1BQ54m1xJQVXoVy2KW2LwQ3C5I4aXtz9NkRT06rW3D1yc/N0uW\nOvg7L0t/4r8T15yvC4eoX34VzcDBuK37FQxGNAMGYfJzzuSgNOjbtqPgi5m4/99CpBeiMbm7o2ve\nioIZn5Wq2ArM4iOGypVRrP4Z8a2biESgHDoC3cO0LP0NfNtxLmLE7Lu1h3RVGpW8KvN0tb5Mbf7u\nYzvntZwrJWr2ysVyGofYujW1qdCOo7dtRVLKe1Zg2D0vWZVehclkcmgUDzDv7HdczbGVTAWQIUMs\nkaApoagpJT+Fpd1XMnrXyyTkClsq3i5MsYxwc9TZzD0zS1A7uygSJBhw/B0BpCpT+f3qOovedlGS\n82859PO1h6jIPH+HSp34puMcFp9faC5wk3nQqkJbPmnzpaUIyple3fuEejzIOj1T/VmertaX82nn\nyFBn8sr2YRgMtvdcqCukUFcAWI+Us9RZvH94KsduH6VQV0CtgDq8GjkGmUhGYl6C4PnNph15pKvS\niM2MoVBXQPPQFsRlXrLZNsI3gmdrDHD63v7JuIKvixIxeXmjfvnxq9donhuI5tkBiG8mYXL3wBRS\ncgrMHvpWbSlo1bYMr+6vw13qzvyuP5CjzuZ2wW2q+IaXaQ+sEM3Lt8Rd6uEwVdkurANtw2zNOiY0\nncylzIvsTNxuSVmHuIcwrfn7pCnT+N++Nzh99xRGo5GGIY2Y2PRtmpdvKXiOWIEH7n2qB9Qg3Kcq\nR28ftqgxCVHeswLV/WuysOsSnt3UG6XAPeVoc/jhwgI+a/sV0w9NIU9X8jxiy/KtOXLHucrgzdc2\nMDlqqo0QyZ3COw/VVxvmFWb1+Zlq/egT0ZdcTQ5uUgXuUner9VezhV9giiMTyehb3dp4QiwS0zi0\nKSaTiXqBDTibJqRMJ+Kt/ROY2HQKbcPMoh0mk4lRO1/kUPKD7MHxO0e5nBXHhMaTkYgkJb7gAWy+\nvpFNz27ndPoJLqU/+Htwk7gxJnKczb0+qbiCr4t/FiIRxirhf/dV/CPwU/jjpyj7LIMQTUKj6FSp\nC3/esJ2jDVQE0T28J5+2+VJwX7lEzrKeq9iVtIOjKYfwkHkyou7LeLl503t9N6tirD03d3Eo+QCV\nfcJpHNKENxpPoG5gPct6N6n9NHVcVixxWbFU8a5Ks/It2Zu0SzCQ1QqojYfMg8ahTWkW2pwDKfsF\nj5eYax6JCQcXa0Ldy3Hmrm3bnT1u5CVw/PZR7ihvk65MJ6UgmWx1FqEe5fGUejrdZgTmQrLbBSk8\nv7U/rSu0o13F9hxMOUCwezD9aw4STMN6SEtWZavmV52BNYfwip1+cJFIxOjIsbxz6C2bqmwjBg6l\nHOBG7nV+7/sH4b5V2Zm4naMpthmQbE02p9JO0iikiVPfYUpBMgdu7iFTZe0drjFo2JywgRfrv/Kv\n6C92BV8XLlwAsKDrYj48Op0DN/dxV5WKTCzDR+5LVLkWvFRvJN5uPnb3FYlEdA/vSffwB44NcwSq\noMGsD3wt5wrXcq5wJvUkPz+9DjFi0pR3aVmuNSfu2KqgFSUp/wZyqdzuCLJoliCqfAu7wddL5oVG\nr0GlL1kG8q5KuG/cEUO2Pid4jd4y+99jceRiN7RGDfHZccRnx7Hn5i6rEeTC8/P4rO03tCuWkWhZ\nsQ1rrqwWPKYECSt7raFtWPsSJUKfqzmQIPcQPjg8ldhs29bD5IJkFl9YxGftvuJixnm7I9vbBcl8\n1PpzJu8fx7Wcqw7P6Sf3Z/+tfaQW2H7nR1MOs/X6JvpU7+fwGKVhVewKfr+6jjTlXSp4VWRI7WF/\nSWrbVXDlwoULADxkHnzTYTYdK3dGrVeTpzUbC2y89huv7HiB06knS3W8m7klt4gl5CUwYFMfOq5t\nzTMbe7IlYSO1/esgFzue578/ahWiUF+ISq9iyYVF5Kpz8XcLsNlGjJjdSbtosboRSl3JVcEPg72X\ng3xdHtX8ahDqUa5ES0atgJlE0QAXnxXHu4enoDNYV2j3CH8KuVg4i+Cn8CeqXDOntbnbV+pAk3LN\n7K7fnbQDgCo+4Xa3CXIPplWF1uwaeJAZrT/nzUYT6BDWWXDbDpU6kWbnZceIkYsZF5y6bmeYf242\n7xyczKGUA1zOjmffrT1M3DeOFbHLy+wc9nAFXxcuHgJJ9Dk8ZryP50fvIj1+9O++nDIjMfcGG6/9\nbiOvmFKQwg/nF5TqWEEewU5td7vwNup7o8+E3OvcyE3g1QZj6FvtWbv7OGoH8pJ503Vte6YfnsKS\nmEVka7Ks0rAiRBgxkq/L43ZBSqkrj4sjQmQ30NkjW53F0aGniR4RR/8a9n2jnSE+K5YNxdpvgtyD\n6Fqlm+D2rSu0KfV0RqhnqN11KQXJJOYm8lyNgYIFeQqJgv41BgLmrMTYRm/yQetPWNV7Lc/XfsHS\nWuct86Z3xDN823EOgQr7fzuhnuVKde320Bg0rI5baeOWpdQXsvLSMsGe9rLEFXxduCglHp99hN+z\nvfH8fg4eC+bhN6gfnlMnma0Nn3C2J/5hV3UpLsu+4pkQIxuMoZJX5VJfg8aoIS7rEgu6LqG2f+kE\nT2r71+F6zjUbxSalXkmbCu1pGhJlV7fZS/ZwwjFeMm/aV+pYqn1EmIN2ea8KjG8y6ZGVtd49PIXn\nt/Znb9Juy7JhdV608e31lfuhNmgYteMllscsxWAsuQAKIMJH2LgBzNMIW65vQCKWMLfzQtqHdUQh\nMRdFVfOrwdTm7/FcTdsXDLlEzpzOC9g36Ag/9vyZXQMPsqznz/i4+dKv+nOCI/PaAXUsFfSPypWs\ny3ZT4Fezr9gVuykrXHO+LlyUAumRg3j8sACR+kG7i0itxn3FMnSt26Lta99B5knAkchC8Qc5wPm0\ncyw6P5/L2fF4ybzpXLkbrzcaxzenPmdP0i6UeiXeMm8KdAWlMitIV6Uhk8gY12QSb++fgNIgnBoW\nI6ZBcCQGk4GGwY1pW6Edb+x5TXDbO4XJqPX2PYH7RPSlondFtiduIz4zFr3JAE5cc4OgSKJCm1nS\nr87QNLQZXnJzsK8dUIfGIU05fbd0af2i5Gpz2XNzFxfSz/NDt2W0KN+SL058TIGuoNh2OexK2g7A\npuu/czB5P4u7L3fYP240GVl8cZHD83vcm2evFVCb357ZzNWsK6Sr02kaGlVir3d5rwo87fWM1bJ+\nNfqTbUpjwclFJOXdQCqS0ji0KTNaf1ZmVpYhnqF4y73JF1CN83XzFfx7L0tcwdeFi1Kg2LzJKvDe\nR2QwIN+5/R8ZfM/dPcPR24ep4hNOr4g+DrWh+1Z/jnnnZhObGWOzrmMxUfvotLOM3D6cW0WUqI7f\nOcqvcStJKNbT6SH14KmqT3M+7SzX7gl1eMu8KdQVCs6Nht0bMbeq0BovuRdKActHMM8BDq41jFcj\nzQF387UNdudas9U593pThclUZzCnywLebjadpLxENl37ndlnZzp0/nETKxhS5wWervYMu5N2cNqJ\nat5qvjWY0vyBQpRIJOKtqKlM2j+e24UPvKWr+kZQN6Aee2/tsbSA3ddYtke6Ko3llxZzKz+JmExh\n5bGibE3YRLOfI3mq6tPkarI5c/cURpORxiFNmRQ1lZoBtTh79wzn06PtHqOSd2WG1B5mtaxGQE1q\nULPE8ztiSpspDK76Igdu7SPQI5BmoS3KtMo51COUthXbs+2GrWpb24rtHnt7nyv4unBRGnT2daNF\nDjSl/w7UejVv7B7N7ps7UemViBDROKQp33WaT53AuoL7SMVSPmv7NdMOTSb+ni6zh9SDHuG9mHxP\n3N9kMrH4wkLmnJ0lKI1YPPCCOe2bqc5g35BjrL+8hlxtHn0i+jLpwHj239pjta2P3IcX7qUWF0bP\nI60E+cWUgmTL/3ep0p1K3lW4lZ9ks12OJtth4GoSGgWYg2G4b1UmNJ1MVd9qrLm8itsFtwnxCEFj\n0HIrL4kcbTYRvtUYWnsEQ2qbjQxW9V7H7DOziE47g8agQa1XoTGoMZqMuEndqe5bg1qBtRnVYAwB\n7tYSop2rdGPzs9v5MWYx6co0KnqFMSpyLMEewZy5e4o/E7YiE8uoH9SA5ZeWcu7uGfJ1wjrfN3IT\nuFNoXyu9OMkFt1h8caH1MfJuEJNxkY3PbsPkoC9ZjJi3o6Y/tkDlIfPgqYjej+XYAF+2+5Z8bT4n\nbh9DZzI7fLWt2IEv2s18bOe8j8hk+msmqtLTH58gfFkTHOz9RF3vk8iT+h3L1/2KzxujBWtU8z/9\nEvXo1//yaxIiONib0RteZ/GFhTbrWpZvzaZ+2xyOIjQGDesuryFDmUb7Sh0tgUz0huYAACAASURB\nVAlg2sG3+DFmcak9b6t4h3NquHWlaq46h/eOTOVIyiHytfnUDqjDy/VH8VxNc4FO/019OFSC5OPX\n7b/jpfojLZ/nnpnFzNNfOmXvdx9fuS+Hnz/lVDGPWq9G4QPGQvlfaiSfoczgjT2jOJJyyKHtYfuK\nHRnfdBJDtw54JHtEgPGNJzG95Qd0X9eBCxm2Jggdwzqz9pmNj3QOe/xVzwiTycSBW/uIy4qlYXAj\nWlcsO3Ge4GD7dQSuka8LF6VA+9xAtFs347Ztq9VyTfuOqF8caWevv4eDt/YJLj+TeoqTqcdpUd6+\n/rGbxI0X6toWtiTlJvL71XUPZTYfoLBt+fFV+DGvyw+WkaKP3NfqpaCkEVVkUCOG1hlutWx800lU\n8Q1n47XfyVRlkKFKd9hbKhVJaVOxvV1Di+IopAqCPb1JV5YuMOSos9masJkARSA9wp8qtU731EOT\n2FcsS1Cc+y5NEiREBjd6pHlkMI+ixSIxE5q+xbSDk62yEBG+Ebzb8sNHOv4/AZFIRMfKnelYWbj1\n6XHhCr4uXJQGiYS8JT/hvnghsqNHwGRE37QZytfHg1vp2k0eJyaT6Z5mri06k45beTcdBl97bE/8\nk2wnPGiF6OrA6s9N4iZYmNMtvCc7E7fbzOOKENEhrBOft/9GUOGpb/Xn6Fv9OZZe/D9mnf7a4XXp\nTXr+vLGFxivq8GW7WTxd/Rmntaid5ZuTX/Bz3E+WdHCDoEg+bP0p7cM6OrV/pirTSrZRiFCPcjQJ\njWJ1/Eou3ZvvDVAEIhVJSVelPdQLk5/CD4A+1fpSy782P11aSoY6g0relRnVYKzDFiQXjnEFXxcu\nSotMhur18ahe/+eaeotEImr61xac+wv1sO+cZDKZ2H9rL9HpZ6niHU7rCm359fJqtAYNfar1I9jd\nud7dogQqAnm6Wl8mR00t9b4v1HmRmPQLrLm82qLRHOoeSrPyLakbWE+wUvU+C6Ln8fnxGU6nXtNU\naYzcORyPfZ7oDDpkYiktKrRmSrNpVmn30vLb5TV8d+YbK6vGixkXmHJgInsGHXZqvjRTlWG3BUwm\nkvFeqxm0KNeSEdueJ031wO83S51JsCKYekENiCmlOIWP3IchtYZaPtcMqMVn7Ry/yLhwnocOvp9/\n/jnnz59HJBIxffp0IiMjy/K6XLhw8YiMbDCK6LSzNiISz1R71qbgByBPk8uonS9zOPkAOpNZxEIq\nklqCxqLz8xlcayh1AuoJykYKEagIYs+gQ1TwqvhQ9/D71XWcvnsSlV6FGDEBigCMGNmasImtCZuY\nd242fas/x+xO863mXw1GA2sv/1LqOU8TJktFtNaoYe/NXcRlxLJ9wB7Ke1Uo9fVnKDN478g7gh7J\nCbnXWXlpGWMavVniccJ9q1LDr5ZN/zKY23tGR47lo2PvWQXe+6Sr02kQHImv3FfQkEIhUVDVpxoa\no9riAlXVJ4KxjcbRzI4BhotH56GC78mTJ0lKSmLNmjVcv36d6dOns2bNmrK+NhcuXDwCTUKa4S33\nsQm+l7PiMBgNNnOO7x+Zxr5bu62WFQ0aBboCll9aypuN/ofRZOBydjxg1h82mPSCur61A+s8dOA9\nnXqS6YenkH3PHs+EiQx1htU2Kr2SX+N/pk5AHcY2GmdZnq5K40aOfQnK0nBHmcL8c3PoV6M/twuS\n6VSpC8E4J8jx3pGpZKkz7a7PdLCuKHKJnCG1h/LVyc+sXigUEgVD6wxHIpaQqcywu7+/IpCFXZfw\nc9wKkvNv4a/wo0ulbvi6+1PTvzZNQ6PQGrRsu7EVvUFPr2p9LO5BB2/t55f4n+9VYVdkRP1XaBpq\nX27ShXM8VPA9duwYXbua01bVqlUjNzeXgoICvLweb1OyCxcunGfh+fkkF9h6xx5M2c/6q2sZVOt5\nyzK9Uc8RAUea4hhMBm7kJbB70CHWxv9Cuiqd9mHtmXtuNtuL9Uu6SdwYWPPhPZRXxf1kCbwlsffm\nHqvg6yP3JdA9kOSCstFt/jluOctjlqAz6ajgWZGXGr/IhAZTHVaMK3VKjiTbtyAUI6FRcBOnr2Fc\nk4n4uvmx4dpvpBbcoaJXGANqDbb02Fb2qWJ33yo+4XSp0p3o9HMk5FzjzN3T3Mq/RY/wXpbfSC6R\n07e6dZ/6L3E/88GRaVYj5t03d/Fdp3l0D3/K6Wt3YctDBd+MjAzq1XtgAxYQEEB6errD4Ovv74FU\n+mgSan8ljkrEXZQNru/48ZJUeM3uuvi8iwQHP7CSU+qUqAzO2dwZxFrCygUxqdyDYNe2ZgvGbRvH\nnoQ9ZKmyqBlUk5cbvcz4Fg/fepWrd76wSy/SFPt78qZnjR4sObfkoc9flKLOR7cLU/j6yNdU8q3E\nmKgxAOgMOtbFriNbnc3AugMJ8Qzhdn4+GWr7EoXNKkbxYovnSyUcMbnjeF5t+SJzjs8hJj2G6KxT\n1M6rRrdq3ZjW+W3+TNxMfGa81T61A2szrfPbLDg1m5mnvrQUrxXkFrDw/DzEciPze823OZfBaODH\n2B9sUtXpqjQWX1rAsGaPpkntDP/mZ0SZFFw50yqcnf14nEMeB09qD+qThOs7frwEB3sjM9mX4ZMY\nFDbffw2/WqQrS9azreFdW/C3+6bNPAqbF5KvzSPYPQSJWPJIv3GQ3PlK2uo+ttcUJCtXoiLUw6I3\n6fkleg39qwxjV+IOPjn+IfH3tK8/3v8JL9R5EW+5t12LPU+pFyt6rCEjw77ilhB3C1MZ9ucgLhRR\nnFoevZx+1Z9jUfcfWdj1R2ae/IIzd09hwixj+XbzaejyJaw+/6ug+tfvsRuYGPkOPm6+Vssvpl/g\n/F3b3l6Ac3fOcflWotPtWQ/Dv+EZUeZ9viEhIWRkPJhfSEtLIzi49FWQLlz81yjQFfB/5xcQl3UJ\nT6kXz9YYQIdiso1lRZ9qffkzYYuNa0uwezDD675os/2rDV4jLvOSw1aiyOBGVund4njKPAWrd0+n\nnuT7c3OJybyIu0RBq4pteL/Vxw71c1+pP5qdidu4XYJaUw2/mrze0Pqa1Ho16678WqrAK0aCEeeM\nBsA8X5unyWXaobe5mZ9oWZ6mvMv8c7OpHSCsIgYQGdIQf4G+55L49vRXVoEXzBKbv1/7jUo+VXi3\n5Ycse2oVWoN5Xvh+G1a6Mp2UIjKgRblTeJur2VdoWsw20EvuhUKiEBQrcZMokJeg2ezCMQ8VfNu0\nacO8efMYMmQIly5dIiQkxDXf68JFCWQoMxj250DOpZ2xLNtwbT0TmkxmUtTbZX6+p6v15VLmRX66\ntIyMew4tlbyr8HazaYLzg09X64uXzJsVsT9yM+8mAe4BuEs8ydflojPoaBjSiAlN3rIEjZT8ZNZc\nXo3JZOK5GgOp6hcheB2XMmMYvfNlkos8/OOz47iRm8CapzfYTbvWDqzD3C6LmHPmW46kHBIctdUP\nimRp9xU2576Qfp7rOcJpd5lYjk6gCrp9pY42UpeOqOpTlZ8u/WgVeO+jNWpJVQp70gI0DG7k9HmK\nci7trN11y2OWMKHJJLzk3ja9z75uvoR4hFKQazvSDlIECf52VX0jiCrXnMMpB23WNS/f4rEbD/zb\neajg26RJE+rVq8eQIUMQiUR8+OGTr3LiwsXjZubpL60CL5irdZdcXMSwOsPLzKe0KFObv8eLdUfy\n+9V1KKTuDKr9vMOHprNKP3PPfseC6LmWSt5FF75nZP3RvNPiPZttl1xYZBV473Mo+QB/Jmyld7U+\nNuuSchPZn7yH6n416F9zkF2JSTeJm2DgSBdoublPgCIAH7kPCbnXMZgMyMVy2lZsT73ABk4H3yD3\nIF6s/woHk/fb38jOdJxCouDpiL5Onac4juQsc7W5bL6+0UbxC8wj4B7hvVh4fp7Nus6Vu9lNH3/Y\n6hPG7R1rSakDNApuwoetP3uIq3dRlIee833rrbfK8jpcuPjXUzzw3idDlc66y7/yZpP/PZbzlvMq\nz+uNHQuCxGfFsfX6JtwkbgytM4JAgT7g+5xOPcl3p7+hUP9gFJWryeH76Dk0K9eCLsVM3K/nXBc8\njsFkIDr9rFXw1Rv1vLV/An/e2EqOJhuZSEZF7zC716LUCdeS/Jlg61RzH61Bw9WcKw8+G7Ucu3OU\nMO9Kdvep5lsNkUhCvjaPCN/qvNlyLB3Kd6ZAW4hEJBGc21UXKdIqSnW/mjR3on/2StZlFkTP5XJW\nPF5yLzpX7kpUaDO7f0cAfm7+dte932oGGoOGbTe2cqfwNkHuwXSp3JWvO8y2u0/DkMbsGLCPlZeW\nkVKQQjW/6gypPUxQVeyfxIpLy1l/ZQ23C1Io51WeZ6v355UGo0ve8S/EpXDlwsVfhKNRy18p0F8U\nk8nEe4en8mv8KotLzuILC3mr2TRG1HtZcJ/1V9ZaBd77aAwaNl/fYBN8/RX2A0LxEdfXJz9ndfxK\ny2edSUdi3g27Aa6uHXempLwbds8pNKet0itJzEukaUgUZ9JOW60LVAQxq9N8ctU5fB89lwsZ0Yzf\nPp6o0J95v+XHtA/raKO5HKAIIkst3HfrzG99OSueF/8cYuUQdSB5HxG+1fGT+5FTrHcboH5QA3o4\naP+RiqV82X4m01u8z9XsK1T1i3CqYMpd6s7ohv8MwxBnWBg9n8+Pz7DUOiTlJ3I29TT52nwmNJ38\nN1/dA/6ef/EuXPwHaRbaXHB5iEcog4v5of5VrLv8Cz/GLLayp0tVpvLFiY+5mWdrywfWbTfFuS8B\nWZQ+EX1xE9sW50T4VrMJ8Htu7hQ8rlBHRWXvcF5vJDyif5gq3NOpJ5jZcQ59IvoS4mE2Wm9ZvjUz\nO87GXerO5AMTOJF6jEJdAZmqTHYkbmPs7pEs6raUUZFjqBfYgOq+NehXvT/PO/g9E3Kv0WdDD0bv\nfJkDdswvFpybI2jNmJB7jUJ9Ib5yP6vlVXyq8n7Lj50ya/Bx86VpuWaPtVL570Jv1LPm8mqbIkOd\nSWdWPDP8c2w/XSNfFy7+It5uNo3z6dEcu3PEssxH7sP4xhMdpnkfJzuStgmOKDPVmfwc+xPTW35g\ns65xSFOr0WlRGgY1tlk2oNZgbuQmsDJ2OanKO8ADY4HildHZauFKayNG5GK5Rd0pUBHEuy3fp0Fw\nQ8Htn6nWj303d9s8hCt5Vya14I5FPrMoSr2Seedms7TnSgp0Baj1agIVgYhEIibue1PQu/hixgXW\nX1nHZ22tNY/vFqay5vJqS6FbUQp0BZy4cwyA/bf28mW7mRYLxfvEFpljLY7OqENn1PFOs/fI0+UR\noAjk5foj8Zb72N3nv0Jq4R2uZV8RXHc15wo385Ko7l/jL74qYVwjXxcu/iK83XxY98wmPm/3Dc/X\nHs6oBmP4ve/WvzWlZ2/OFIRHsQBD6wynXcUONsubl2vJyEjhebW3m0/j4JDjzOo4l2U9V7FzwAFB\nR58Iv2p2r6eorGKmOoMF5+ZhMAq3Bg2oNZiJUVMI8zLP40pEEpqGNmNh16UOpREPJx8gX5uHl8yL\nIPcgSyX27QL77U6JAinuUM9yDK0zHJlIZnc/gBxNNosvLrIZ2ZfkpqTUF5Kvy+ej1p8yvsnExxp4\ndQadU1oO/wT83PzstnAFKAIJcC99e9fjwjXydeHiL0QukfNqg9f+7suwUDugHntu7rJZLhFJaFW+\njeA+MomMlb3W8N2ZrzmVehKjyUjjkCgmR71t0QMWwk/hzwt1X3J4PSPqvUL03bPk6YTtEItyPiOa\njdd+p3+xUeN9JkW9zeiGY9mduIMg9yDaVGyPSCTi3ZYf0Wdjd8F9cjQ55GhybIJZqGeI3euoYMdw\n4b2WH1HTvyZ/JGwltfCO3UKp2IxLpBbesTJu6BjWmWO3jwhufx+Tybb1qixZG/8LP8f+RELuNfwU\nAXSp3I33Wn6ETOL4heLvxEvuTfuwDqy7Yus10D6swz8q1e4Kvi5c/Id5o9F4Dibv5WIxu7muVXrQ\nK+Jpu/t5yDx4t+VHZX49z1TrhwgRKy4t40budUTArfxku+IXdwpTHB7PS+ZFvxr9rZY1CW1KrYDa\nXM6Kt9m+hn8tKnjaGkEMrT2CHYnbbbSmw32qciM3gRf+GESAewBDag2jdcV2lvWDag1lUK2h3C1M\npeXqJhbHpKJ4yDxsRrrjm0ziSvZlNl37XdARSSFR0DvCtkWrrFh/ZS1TD02iUGeWHE1TpXElO55M\ndQbzu/zw2M5bFnzZ7lvytfkcTN6PUq9EIXGnbVh7vmo/6+++NCtEpr8on/AkyYT9G2TN/um4vuPH\nS2m+37uFqcw+M5MLGeeRi+W0qtCG/zV9629vJ7mec41nNvQUnGsFcJd6sLHvHzQObVrqYy+InscX\nxz+2mhNWSBR80OpjXo0cI7jP+itrWXT+ey6mn0culVPLvw53C1Mt89hgnsP/oNUngpXiz2/tL5hl\n6BXRh+U9Vwme82jKYSbs/f/27j0uqrLbA/hvzwwDDPcRQRFUEASlzFdFEwPN+wUxMARLs3qVk5Wf\njExR346vnjSlOsUhEU28lAY0vBZmhopX8hJaIkqmXERGEJCrXMVh5vxhjoyzQQRmb5hZ37/k2XNZ\n7A/OmufZ+1nrbdxsVshDyAixwPNNbPT9vK2/7lObnTSTdW+1lbE1Ds8+0WJBlc7E9jf8S+7P2Jct\nQ0V9OfpZOWPhs/+FQS3c8Z5echF/FF/AULt/dKgfc0e0Vl6Ski8LSgy6R+dYt/Th/K45vQpbLmkX\n/H9olmsgvp68q92vv/fPb7Ev63vcrr0NB3MHBA0MQbDHK1qPUygV2J25Q70M7G7jgbdGL8TbP72L\nQ3m/aD3ezdodx4NPa315ya7MwuIjC3HpzkX12Ah7L2ydtBNOln1bjLOxqRG7M2NxvigNYqEYk/tN\nw8wBs8AwDJqUTfju6rc4XZgKBgx8+oxFyKBXO7x1bfi3z0Berd0RCwA+HxuJ+S1sQ+tMj/8NR6dH\nYVPaetQ3uxfBydwJWybFtmnfNB86vbYzIYToWlkr7QRdrdywecK2Dr3+q4Pn49XB2tWgmlMoFXgz\neT6S8zSLduTVZSO95CLrc7Iqr+Gk/Bgm9Z+qGbO1Gw4GpiDxegLyqm7A1cYNgW5BT9weJBaKsWjI\nYiwaslhjvEnZhEWH38CB3B/VY//J+h4nbh1DzKTYDiXgHia2rMnXWGgMd+mgdr9ue9Xer8WOy9s0\nEi8AyGvk+OpiJL7posm3NZR8CSFPpaaxGgU1Behj4ajT+r4uVi0vbc50ncXJsvjeq99oJV4ASPwz\nscVqUgwYSP7eQqVQKnC3sQpWYmsIBUIYCY0wd9C8Tont++txGon3oaTsfZjaf7rW9qWnMdV5OtLv\naNeRHtV7NC+zzCN5h5Bfzb7v/HLpJahUqqdqzdgV0FYjQkib3G+6j+Unw/BCnBd84kfihe+8EH5q\nGRRK7RuCOkPokMUY3MNTa3ygjTtCh7zTodfOKEnHOymhmCQbi8AkP2xJ/4p1O825wjOsz1dBBUux\nFeuxwVJPjOo9GuvPrcXY+Ocxcs9zeDHBG5+e/+SJW3buN91Xb58qry9DwrU4nClIZX3er7dSW4zt\n5C324h1ttXT4Mix69i3YSR60dTQVmWK800R8+eLmDr1ue1kZW4IBe3I17uKlLltCM19CSJv86/QK\n7Mp81Jy+sLYAO65sg4ARYINPRCvPbB9zsQV2TtmLTWnrcaE4DSqoMMx+BJaNCO9QUZKLxb9j4aHX\nIG/W7OF0QSpuVOUgYuwXGo8VtLIkPNx+BCrvVaDqsVKPDU0NWJ26HDubnau7jXdx7fxfUKmUWD5y\ntdZrpd0+h8g/PkfGnUsQCYwgEUlQ3lCGsoZSiBgRhtt7YaPvZ/C0ffZRbK2VK20hUbWVgBFgvU8E\n3h+xHOcKT8PFyhWDbbW/CHFlrNN4DOk5VON6+UOjent3u1kvQDNfQkgb1NyvwZG8ZNZjh/J+abXk\nZEc4W7sgZnIszs/LwIV5l/H15F1wl3o88XlXy/7Ee8fextTE8QjaPwtb0zerZ49bLn2lkXiBB7PF\nH7ITkftYE4gJThMhYPmYNBIYob+VM2rua9/UllOVjcTr32uNq6BCUvYPWiUOsyuysDhlIY7cPITi\nuiIU1MiRVXkNZX/XhlaoFPit6CzeP7FEo6jI+L4TWGMTMkJM7DdVa7w9bE1t4TdgFq+JF3jwZeCj\n0evg/NiliOd7e2ON98c8RdUxNPMlhDxRce1tFNSw76m9XVOAO3Ul6h7BDxNEW+oMt9XTzGwySy/j\n9eR5Gs0VTt06gezKLHw67kv8VX6V9XlV96qQfONnjQ5QAW4v49StE/j+Wpx6v61YIMbCYQtRc6+a\ntTQnAFS3UCREXp2P0vo7cDB/tJd4++WYFu8sbi695A/8lPOjet/yS66zcTz/KGTX49VxiBgRQjxe\nbXWPdnfl6zgWR4NSsfNKLMrq72Cw7TOY7TanU//OuETJlxDyRL3MHOBo7gR5jXaScLToCzuJPa6V\n/4WItA34o/g8VHhQzGK512p49OD27tjo9K+0uho9nNkuGrK41ZvEbE17avzMMAy+ePErzHDxR0r+\nITAqBlOdZ+DlYf5YeqDltqrN61A3ZyfppVX+sKUGFmya90VmGAaR46MxzWUGUm4eAQNgUr8pmNx/\nWrdchm0Lc7EFluio9SbXKPkSQp7IzMgM01z8sC0jWuvYdGc/NCjqsejwAo1ZZWFuAa5XXMP+l5Ih\n5bBxxNXyK6zjdxvv4lDeQfg6jsOF4jSt4x7SwQhwe1lrnGEYTOo/BZP6T9EYm+sxD99c2YnKRs1m\nEAII8JzdMJwvOqf1WpP7T9EqwSk1tW3T72UqkuD53t5asU1z9sM057bNdFUqFU4XpOJ6xTX4Oo2D\nq3XXaDJgiOiaLyGkTdZ6r8fi596Fs6ULjIXGcLZ0wTtD38NHo9fi64wY1uXc6xXXsC1jC6dxSkRm\nLR6zMZFimVc4At1ehqnoUUnHgdbu+HjMJ09Vt3iAtSuWjQxHD5NHyVMikmDe4AVInJmEYPdX1DNp\nO4k95g96HWu9N2i9TrD7K7A0enJjhPFOEzGiF3tbyra4efcmApP8EPxTAMJTP8C0xPF4J2VRl2qz\nZ0iowhULfagO1NXROdYtXZ7fBkUDyupLYSvpCWPhgz6976SEQnY9nvXxgW5BiJkUq5NY2ESkbcBn\nFzZqjbtau+HYnNMwEZkAAH4vPo9T8hPoYWqLYI9X1L9LWzQ/vwXVtxD31x7ca2rEdOcZGuUuS+tK\nkV15He5Sjxa77QDAN5k7sPVSNLIqr0MAAfpbucDS2AJ3aktgIbaEr9M4fDR63VPF+Lig/bNYtyAt\nfu5drB2j/aWAb/rwGUEVrgghncZEZII+Fo4aY9JWEktrx3QhbMRy5FRm45cbP6Oh6cFd2M5WLljr\nvUGdeAFguL1Xq+0F26qPhSOWeYWzHrOV2MJW8uRl5dc830SIxzyk3joJMyMzjOo9GgzDdFrxiIyS\ndHUP4ccdy0/Bv73X6+114q6Kki8hpMMWPPNP/JCViJLHmiDYmtjiNc83OY1FJBBh6+QdOH/7HE7I\nj8PGVIpXPOY/sUcu38RCMSb0m6Qx1lkJMbcqFw1NDazHqu5VQqlSQsh0z7uG20OpUqJJ2cRre0RK\nvoSQDnO1dsMGn0/xxe+fIrPswQ1Pg3p44r1hYfDgoRYwAHj1fh5e3bDmry684OgLO4k9SuqKtY65\nWLt22+06T6u8oRz/Pr0KZwvPoF5RB0/bZ/H20CUY6zSe81go+RJCOoW/awBmuPgj9dYJKKGEr+OL\nEAnoI+YhlUqFlJuH8WfZFbjZDMQ0Zz/OlnptTW3x0oBAbLusefObhZEFXhus+w5FXYFSpcSbyfNw\npvBX9ViJ/Cj+LMvE7mnfcd52kP5nEEI6jVAgxLi+E/gOo8sprStF6JHXca7wDBQqBQQQwKv3KGyZ\nuB2OFk6cxLDuhU9gK7FDct7PKK8vQz9LZ8wfvAD+rgGcvD/f9uf8oG4L2VxxXRF2XtlOyZcQQvTN\nql8/xK8Fp9Q/K6HEb7fPYuWpD/HtDPa7xDubgBFg6fAPsHT4B5y8X1eTWXoFKrBv7sm/m8dtMKB9\nvoQQolM1jdUaS53NnSlMRXFtEccRGSZ7s14tHmu+V5srlHwJIUSHau7XoPoe+37V6vvVKG8o5zgi\nwzRv0ALWm/9MhKZ4iaWyma5R8iWEEB2yk9jDvQd7JyYPm8G8lXi8XVOII3mHUFRzm5f355qJyAT/\nOy4KXr1GQcQ8uOLqbOmCFaNWw9/1Jc7joWu+hBCiQwJGgDc8F2J1xQqNFoQmQlPM81zA+V7TekU9\nwo4vwbH8I6i4VwGpSQ9M6jcFn42L7FAFre5gRK+ROBBwGBeKz6OioRw+jmO1am1zhZIvIYTo2NxB\n82BlbIW4q3tQWFsAO4k9ggaGIHBgEOexLD8Zhv9kPeo3XN5QhoRr38FYaIzPxkVyHg/XGIaBVwdq\nZHcWSr6EEMKB6S4zMd1lJq8x3L1XhePyFNZjx/KPoPZ+LcyMWm5MQToPXfMlhBADcae+hLXKFQCU\n1JWgvKGM44gMFyVfQggxEA7mjuhv6cx6rJ9lf9hLWt6OQzoXJV9CSLdXd78OB3L2I/XWSXDUJbVb\nMhWZwt81AAw0y1oKIMAs10CIhWKeIjM8dM2XENKtRadHYeeV7bh59wYEEOC5nv/Af3v/D8b0eYHv\n0Lqk1aPWwERoggO5+1Fcexu9zRzg7xqI94aF8R2aQWFU7fiaqFAosHr1auTn56OpqQnLly/HiBGt\n18XsTk2R9aGJc1dH51i3DOX8Hsw9gMUpC1GvqNMYH2DliiNzTsHcyFwn76sP51epUqJeUQ+JSNIl\ne/nqwznu2dOixWPtWnZOSkqCqakp4uLisH79emzcuLHdwRFCSHvty5JpJV4AyKnKxjeZO3iIqPsQ\nMAKYGZl1ycRrCNq17Ozv7w8/Pz8AgFQqRWVlZacGRQghbVHRSmnGktoSsCcWGwAABWJJREFUDiMh\n5Om0K/kaGT2qyLJ79251IiaEEC71s+yP1IKTrMc8bZ9hHb9RlYvtGTEoqi1CT0lPvPHMIrhL2cs/\nEqIrT7zmK5PJIJPJNMaWLFkCHx8f7N27F8eOHUNMTIxGQmajUDRBJBJ2PGJCCPlbRnEG/L7zg/yu\nXGPcp68Pji84DqFA8zPnaO5RvJH0hsbje5v3xla/rZjpzm8BDGJY2nXDFfAgKScnJyM6OhrGxk+u\nB9qdLpzrw4X+ro7OsW4Z0vk9W3gamy/+Hy6XpsNYaILRDmOwxvtjSE2kWo+dnTSTdabsZT8KBwIP\nt/n6pyGdX77owzlu7Yardi07y+VyxMfHY8+ePW1KvIQQoiujHcZgtMMYKFVKMGBaTKAldSW4WPI7\n67GLJb8jryoXztYDdBkqIWrtSr4ymQyVlZUIDQ1Vj8XGxkIspg3ahBB+CJjWN28IGWGLjxEKhBBx\n3F2IGLZ2Jd+wsDCEhdGGbEJI99HDtAeG23vhuPyo1rHh9l5wsujLQ1TEUFF5SUKIwVg58iMMsNJs\nXt/P0hkrRv6Lp4iIoaLykoQQgzHUfhgOzj6C7RlbUVhbgF5mvfDPZ9+Crakt36ERA0PJlxBiUGxM\npPhw5Eq+wyAGjpadCSGEEI5R8iWEEEI4RsmXEEII4RglX0IIIYRjlHwJIYQQjlHyJYQQQjhGyZcQ\nQgjhGCVfQgghhGOUfAkhhBCOtbufLyGEEELah2a+hBBCCMco+RJCCCEco+RLCCGEcIySLyGEEMIx\nSr6EEEIIxyj5EkIIIRyj5NuK0tJSeHl54bfffuM7FL2iUCiwYsUKzJ07F3PmzMGFCxf4DkmvbNiw\nAcHBwQgJCUFGRgbf4eidiIgIBAcHY/bs2Th8+DDf4eilhoYGTJw4Efv27eM7FJ0R8R1AVxYREQEn\nJye+w9A7SUlJMDU1RVxcHLKysrBy5UokJibyHZZeSEtLw82bN5GQkICcnBysWrUKCQkJfIelN86d\nO4esrCwkJCSgoqICAQEBmDx5Mt9h6Z0tW7bAysqK7zB0ipJvC86ePQszMzMMHDiQ71D0jr+/P/z8\n/AAAUqkUlZWVPEekP86ePYuJEycCAAYMGICqqirU1NTA3Nyc58j0g5eXF4YMGQIAsLS0RH19PZqa\nmiAUCnmOTH/k5OQgOzsb48aN4zsUnaJlZxaNjY3YvHkz3n//fb5D0UtGRkYwNjYGAOzevVudiEnH\nlZaWwsbGRv2zVCrFnTt3eIxIvwiFQkgkEgBAYmIifH19KfF2sk2bNiE8PJzvMHTO4Ge+MpkMMplM\nY8zX1xdBQUGwtLTkKSr9wXZ+lyxZAh8fH+zduxeZmZmIiYnhKTr9R9VjdSMlJQWJiYnYsWMH36Ho\nlR9//BFDhw41iMt9VNuZRUhICJRKJQAgPz8fUqkUkZGRcHNz4zky/SGTyZCcnIzo6Gj1LJh0XFRU\nFHr27ImQkBAAwIQJE5CUlETLzp0oNTUVkZGR2L59O6ytrfkOR68sXboUcrkcQqEQRUVFEIvFWLdu\nHby9vfkOrdMZ/MyXTXx8vPrf4eHhCAgIoMTbieRyOeLj47Fnzx5KvJ1szJgxiIqKQkhICDIzM2Fn\nZ0eJtxNVV1cjIiICu3btosSrA19++aX631FRUejTp49eJl6Aki/hgUwmQ2VlJUJDQ9VjsbGxEIvF\nPEalH4YNGwZPT0+EhISAYRisWbOG75D0ysGDB1FRUYGlS5eqxzZt2gQHBwceoyLdES07E0IIIRyj\nu50JIYQQjlHyJYQQQjhGyZcQQgjhGCVfQgghhGOUfAkhhBCOUfIlhBBCOEbJlxBCCOEYJV9CCCGE\nY/8PVBjG1oJMBeQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(data[:,0], data[:,1], c=labels, cmap=my_cmap)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "colab_type": "code", + "id": "USn-jj4B0JzB", + "outputId": "cd9a1bb9-3278-40bb-f9a4-bf92c8007ce2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(750, 2) (250, 2)\n" + ] + } + ], + "source": [ + "X_train, X_val, Y_train, Y_val = train_test_split(data, labels, stratify=labels, random_state=0)\n", + "print(X_train.shape, X_val.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Xyl4KYa0AQSV" + }, + "source": [ + "## Our First FF Network" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "oRQ5qBcIsbfB" + }, + "outputs": [], + "source": [ + "class FFNetworkW1:\n", + " \n", + " def __init__(self):\n", + " self.w1 = np.random.randn()\n", + " self.w2 = np.random.randn()\n", + " self.w3 = np.random.randn()\n", + " self.w4 = np.random.randn()\n", + " self.w5 = np.random.randn()\n", + " self.w6 = np.random.randn()\n", + " self.b1 = 0\n", + " self.b2 = 0\n", + " self.b3 = 0\n", + " \n", + " def sigmoid(self, x):\n", + " return 1.0/(1.0 + np.exp(-x))\n", + " \n", + " def forward_pass(self, x):\n", + " self.x1, self.x2 = x\n", + " self.a1 = self.w1*self.x1 + self.w2*self.x2 + self.b1\n", + " self.h1 = self.sigmoid(self.a1)\n", + " self.a2 = self.w3*self.x1 + self.w4*self.x2 + self.b2\n", + " self.h2 = self.sigmoid(self.a2)\n", + " self.a3 = self.w5*self.h1 + self.w6*self.h2 + self.b3\n", + " self.h3 = self.sigmoid(self.a3)\n", + " return self.h3\n", + " \n", + " def grad(self, x, y):\n", + " self.forward_pass(x) \n", + " self.dw1 = (self.h3-y) * self.h3*(1-self.h3) * self.w5 * self.h1*(1-self.h1) * self.x1\n", + " \n", + " \n", + " def fit(self, X, Y, epochs=1, learning_rate=1, display_loss=False):\n", + " \n", + " if display_loss:\n", + " loss = {}\n", + " w1 = {}\n", + " \n", + " for i in tqdm_notebook(range(epochs), total=epochs, unit=\"epoch\"):\n", + " dw1, dw2, dw3, dw4, dw5, dw6, db1, db2, db3 = [0]*9\n", + " for x, y in zip(X, Y):\n", + " self.grad(x, y)\n", + " dw1 += self.dw1\n", + "\n", + " m = X.shape[0]\n", + " self.w1 -= learning_rate * dw1 / m\n", + " \n", + " if display_loss:\n", + " w1[i] = self.w1\n", + " Y_pred = self.predict(X)\n", + " loss[i] = mean_squared_error(Y_pred, Y)\n", + " \n", + " \n", + " if display_loss:\n", + " plt.tight_layout()\n", + " \n", + " plt.subplot(2,1,1)\n", + " plt.plot(w1.values())\n", + " plt.xlabel('Epochs')\n", + " plt.ylabel('W1')\n", + " \n", + " plt.subplot(2,1,2)\n", + " plt.plot(loss.values())\n", + " plt.xlabel('Epochs')\n", + " plt.ylabel('Mean Squared Error')\n", + " \n", + " plt.show()\n", + " \n", + " def predict(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(y_pred)\n", + " return np.array(Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 412, + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "ok": true, + "status": 200, + "status_text": "OK" + } + } + }, + "colab_type": "code", + "id": "G5l1GlhXsbfF", + "outputId": "bef4eef2-d8d5-4742-8349-d8fb73a58d7b" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8daf927c4dce4f02895d538ccc7ee222", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=500), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfsAAAFYCAYAAABUA1WSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlcVPX+P/DXmQ0Y1gFmAEFU3EBx\nwyX33XLLvOWC5tJm1+u18t5yzSvdum7l9Vd27/dWlt7UTI3I7GZpbuUCKmgqpKKoCIjsi+zM8vsD\nHCWFAWeGMwyv5+Mxj5nzOdt73pHvs3zmcwSDwWAAERER2S2J2AEQERGRdbHYExER2TkWeyIiIjvH\nYk9ERGTnWOyJiIjsHIs9ERGRnZOJHYA1ZGXdsfg2VSol8vJKLL7d5oQ5NB9zaBnMo/mYQ/NZOodq\ntWut83hmX08ymVTsEJo85tB8zKFlMI/mYw7N15g5ZLEnIiKycyz2REREdo7FnoiIyM6x2JtQqdXh\nvS/P4sCpZLFDISIieiQs9iYIgoDUrCL8J+oCsvNLxQ6HiIiowVjsTZBJJZg6vB0qKnXY9lMi+JBA\nIiJqaljs66FfZ190beeN80k5iLucJXY4REREDcJiXw+CIGDepG6QSQVsP5CI0nKt2CERERHVG4t9\nPfmrXTCuX2vkF1Ug6pdrYodDRERUbyz2DTC2byv4eCpxKC4V19MLxQ6HiIioXljsG0Auk2DWEx1h\nALDlx8vQ6fVih0RERGQSi30DhbRSoV9nXyRn3MGhuDSxwyEiIjKJxf4RTB3RDs6OMkQdvYbcwjKx\nwyEiIqoTi/0jcFMqMHlYO5RX6LD9wBWxwyEiIqqTzRT7xMREjBw5Etu2bavRnpGRgZkzZxpfQ4cO\nxXfffSdSlPcM7OqH9gHuOJOYhV+vZIsdDhERUa1sotiXlJTgnXfeQb9+/R6Y5+Pjg61bt2Lr1q3Y\nvHkz/Pz8MHz4cBGirEkiCJj1REdIJQK2/XSZv70nIiKbZRPFXqFQYOPGjdBoNHUu98033+CJJ56A\ns7NzI0VWN3+1C8b0DURuYTmifuZv74mIyDbZRLGXyWRwdHQ0udxXX32FSZMmNUJE9fdk/9bw81Li\n0JlUJKbkix0OERHRA2RiB1BfZ8+eRVBQEFxcXEwuq1IpIZNJLR6DWu360PYF08Kw5N/HsHV/Ija8\n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\noFI7zEtRpU0AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "ffnw1 = FFNetworkW1()\n", + "ffnw1.fit(X_train, Y_train, epochs=500, learning_rate=1, display_loss=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "imu7qdHmASL9" + }, + "outputs": [], + "source": [ + "class FirstFFNetwork:\n", + " \n", + " def __init__(self):\n", + " np.random.seed(0)\n", + " self.w1 = np.random.randn()\n", + " self.w2 = np.random.randn()\n", + " self.w3 = np.random.randn()\n", + " self.w4 = np.random.randn()\n", + " self.w5 = np.random.randn()\n", + " self.w6 = np.random.randn()\n", + " self.b1 = 0\n", + " self.b2 = 0\n", + " self.b3 = 0\n", + " \n", + " def sigmoid(self, x):\n", + " return 1.0/(1.0 + np.exp(-x))\n", + " \n", + " def forward_pass(self, x):\n", + " self.x1, self.x2 = x\n", + " self.a1 = self.w1*self.x1 + self.w2*self.x2 + self.b1\n", + " self.h1 = self.sigmoid(self.a1)\n", + " self.a2 = self.w3*self.x1 + self.w4*self.x2 + self.b2\n", + " self.h2 = self.sigmoid(self.a2)\n", + " self.a3 = self.w5*self.h1 + self.w6*self.h2 + self.b3\n", + " self.h3 = self.sigmoid(self.a3)\n", + " return self.h3\n", + " \n", + " def grad(self, x, y):\n", + " self.forward_pass(x)\n", + " \n", + " self.dw5 = (self.h3-y) * self.h3*(1-self.h3) * self.h1\n", + " self.dw6 = (self.h3-y) * self.h3*(1-self.h3) * self.h2\n", + " self.db3 = (self.h3-y) * self.h3*(1-self.h3)\n", + " \n", + " self.dw1 = (self.h3-y) * self.h3*(1-self.h3) * self.w5 * self.h1*(1-self.h1) * self.x1\n", + " self.dw2 = (self.h3-y) * self.h3*(1-self.h3) * self.w5 * self.h1*(1-self.h1) * self.x2\n", + " self.db1 = (self.h3-y) * self.h3*(1-self.h3) * self.w5 * self.h1*(1-self.h1)\n", + " \n", + " self.dw3 = (self.h3-y) * self.h3*(1-self.h3) * self.w6 * self.h2*(1-self.h2) * self.x1\n", + " self.dw4 = (self.h3-y) * self.h3*(1-self.h3) * self.w6 * self.h2*(1-self.h2) * self.x2\n", + " self.db2 = (self.h3-y) * self.h3*(1-self.h3) * self.w6 * self.h2*(1-self.h2)\n", + " \n", + " \n", + " def fit(self, X, Y, epochs=1, learning_rate=1, initialise=True, display_loss=False, display_weight=False):\n", + " \n", + " # initialise w, b\n", + " if initialise:\n", + " np.random.seed(0)\n", + " self.w1 = np.random.randn()\n", + " self.w2 = np.random.randn()\n", + " self.w3 = np.random.randn()\n", + " self.w4 = np.random.randn()\n", + " self.w5 = np.random.randn()\n", + " self.w6 = np.random.randn()\n", + " self.b1 = 0\n", + " self.b2 = 0\n", + " self.b3 = 0\n", + " \n", + " if display_loss:\n", + " loss = {}\n", + " \n", + " for i in tqdm_notebook(range(epochs), total=epochs, unit=\"epoch\"):\n", + " dw1, dw2, dw3, dw4, dw5, dw6, db1, db2, db3 = [0]*9\n", + " for x, y in zip(X, Y):\n", + " self.grad(x, y)\n", + " dw1 += self.dw1\n", + " dw2 += self.dw2\n", + " dw3 += self.dw3\n", + " dw4 += self.dw4\n", + " dw5 += self.dw5\n", + " dw6 += self.dw6\n", + " db1 += self.db1\n", + " db2 += self.db2\n", + " db3 += self.db3\n", + " \n", + " m = X.shape[0]\n", + " self.w1 -= learning_rate * dw1 / m\n", + " self.w2 -= learning_rate * dw2 / m\n", + " self.w3 -= learning_rate * dw3 / m\n", + " self.w4 -= learning_rate * dw4 / m\n", + " self.w5 -= learning_rate * dw5 / m\n", + " self.w6 -= learning_rate * dw6 / m\n", + " self.b1 -= learning_rate * db1 / m\n", + " self.b2 -= learning_rate * db2 / m\n", + " self.b3 -= learning_rate * db3 / m\n", + " \n", + " if display_loss:\n", + " Y_pred = self.predict(X)\n", + " loss[i] = mean_squared_error(Y_pred, Y)\n", + " \n", + " if display_weight:\n", + " weight_matrix = np.array([[0, self.b3, self.w5, self.w6, 0, 0], [self.b1, self.w1, self.w2, self.b2, self.w3, self.w4]])\n", + " weight_matrices.append(weight_matrix)\n", + " \n", + " if display_loss:\n", + " plt.plot(loss.values())\n", + " plt.xlabel('Epochs')\n", + " plt.ylabel('Mean Squared Error')\n", + " plt.show()\n", + " \n", + " def predict(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(y_pred)\n", + " return np.array(Y_pred)\n", + "\n", + " def predict_h1(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(self.h1)\n", + " return np.array(Y_pred)\n", + " \n", + " def predict_h2(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(self.h2)\n", + " return np.array(Y_pred)\n", + " \n", + " def predict_h3(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(self.h3)\n", + " return np.array(Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 412, + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "ok": true, + "status": 200, + "status_text": "OK" + } + } + }, + "colab_type": "code", + "id": "u-eV9Uj4HSt7", + "outputId": "9d576f44-bd4e-48d7-9e68-d0549fcae696" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b28f4874977b4a0c90433fc393443676", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=2000), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\nmo7XW5fFNsu257c/tv17tD/WlwT382dRJyJpKAQBCmXvu34tFyhqF0Tked5wseUqcsmlO3lcvqiy\nLFz+0fWFQlcXIU4f2259azzW7SIw4koNDIZqp3LpLRZ1IiLyaZefw7AstHvhce58foIjyhEREckE\nizoREZFMsKgTERHJBIs6ERGRTLCoExERyQSLOhERkUywqBMREckEizoREZFMsKgTERHJBIs6ERGR\nTLCoExERyYQgim2HoiciIiJfxJY6ERGRTLCoExERyQSLOhERkUywqBMREckEizoREZFMsKgTERHJ\nhMrTAXiTNWvWIC8vD4IgID09HePHj/d0SA5t2LABx48fR1NTE/7whz/gs88+Q35+PsLCwgAADz/8\nMG666Sbs3r0bb731FhQKBebOnYs5c+Z4OHJ7R44cwaJFixATEwMAGDVqFB555BEsXboUzc3N0Gq1\n2LhxI9RqtVfn8o9//AO7d++2Lp86dQpjx45FbW0tgoKCAADLli3D2LFj8frrr+OTTz6BIAhIS0vD\n1KlTPRV2Oz/++COeeOIJ/O53v8P8+fPx66+/Ov1ZmEwmLF++HL/88guUSiXWrl2LoUOHek0ezz77\nLJqamqBSqbBx40ZotVrExcUhPj7eetzf//53mM1mr8mjo1yWL1/u9O+6N30mHeWycOFClJeXAwAq\nKipwzTXX4A9/+APuuusujB07FgAQHh6OzZs3o6qqCk8//TSqqqoQFBSEF154wfp34G5t//0dN26c\n539PRBJFURSPHDkiPvbYY6IoimJBQYE4d+5cD0fkWG5urvjII4+IoiiKZWVl4tSpU8Vly5aJn332\nmd1+NTU14q233ipWVlaKdXV14h133CGWl5d7IuROHT58WHzyySft1i1fvlzcs2ePKIqi+MILL4jb\nt2/3iVwuO3LkiJiZmSnOnz9fPH36tN22n376SbznnnvEhoYGsbS0VLztttvEpqYmD0Vqr6amRpw/\nf764YsUKcdu2baIodu+zyMnJETMzM0VRFMUDBw6IixYt8po8li5dKn700UeiKIri22+/La5fv14U\nRVFMSEhod7y35CGKHefSnd91b8/F1vLly8W8vDyxqKhIvOeee9ptf+mll8TXXntNFEVR3LFjh7hh\nwwbJY+5IR//+esPvCbvfW+Tm5iIpKQkAEB0dDaPRiOrqag9H1bXrrrsOf/3rXwEAoaGhqKurQ3Nz\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "weight_matrices = []\n", + "ffn = FirstFFNetwork()\n", + "ffn.fit(X_train, Y_train, epochs=2000, learning_rate=5, display_loss=True, display_weight=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1052 + }, + "colab_type": "code", + "id": "YCSTthqzsbfY", + "outputId": "35a2ad5b-6426-418c-ba42-170fb6b5c889" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 21, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n/wEvgT7qmlOu+gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "def make_meshgrid(x, y, h=.2):\n", + " x_min, x_max = x.min() - 0.5, x.max() + 0.5\n", + " y_min, y_max = y.min() - 0.5, y.max() + 0.5\n", + " xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n", + " np.arange(y_min, y_max, h))\n", + " return xx, yy\n", + " \n", + "def plot_contours(ax, predict, xx, yy, **params):\n", + " Z = predict(np.c_[xx.ravel(), yy.ravel()])\n", + " Z = Z.reshape(xx.shape)\n", + " out = ax.contourf(xx, yy, Z, **params)\n", + " return out\n", + " \n", + "def plot_boundary():\n", + " xx, yy = make_meshgrid(X_train[:,0], X_train[:,1])\n", + " predict_functions = [ffn.predict_h1, ffn.predict_h2, ffn.predict_h3]\n", + " \n", + " for i in range(3):\n", + "\n", + " fig, ax = plt.subplots(figsize=(10,5))\n", + "\n", + " plot_contours(ax, predict_functions[i], xx, yy,\n", + " cmap=my_cmap, alpha=0.2)\n", + " ax.scatter(X_train[:,0], X_train[:,1], c=Y_train, cmap=my_cmap, alpha=0.8)\n", + " ax.set_xlim(xx.min(), xx.max())\n", + " ax.set_ylim(yy.min(), yy.max())\n", + " ax.set_xlabel('X1')\n", + " ax.set_ylabel('X2')\n", + " ax.set_title(\"h\"+str(i+1))\n", + " \n", + " return True\n", + " \n", + "plot_boundary()" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "6QxhjW4Usbfe" + }, + "outputs": [], + "source": [ + "def plot_heat_map(epoch):\n", + " fig = plt.figure(figsize=(10, 1))\n", + " sns.heatmap(weight_matrices[epoch], annot=True, cmap=my_cmap, vmin=-3, vmax=3)\n", + " plt.title(\"Epoch \"+str(epoch))\n", + "\n", + " fig.canvas.draw()\n", + " image = np.frombuffer(fig.canvas.tostring_rgb(), dtype='uint8')\n", + " image = image.reshape(fig.canvas.get_width_height()[::-1] + (3,))\n", + "\n", + " return image" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 5075 + }, + "colab_type": "code", + "id": "MDJokNuIsbfm", + "outputId": "4c9548d3-2622-4a98-8300-cfb865a1aee6" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py:514: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n", + " max_open_warning, RuntimeWarning)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHdVJREFUeJzt3Xl0k2X68PFvuhO67xRbEASEQkFk\nVdk7bMrPAQSKlNEBQVRURBjZBAeGrQqvUBUYZKeyKsIIWCxSBhkWiwoWkX0phe4L0KRtmub9I5oa\ngZKy5Ema63NOzkme3Ml95T7pk6v39qgMBoMBIYQQQggLOCkdgBBCCCHshyQOQgghhLCYJA5CCCGE\nsJgkDkIIIYSwmCQOQgghhLCYJA5CCCGEsJiL0gEI4agaNWpEREQEzs7OZsfj4uKIioq6r3V17dqV\nuLg4WrVqVWm58+fPM23aNLKysnB1dWXYsGH07dsXgAMHDhAXF4dGoyEsLIzZs2cTGhp6X+MUQtg+\nSRyEUNCaNWts6sd34sSJ9OnThyFDhpCVlUWfPn1o0aIFISEhjB07lk8//ZTIyEhWr17NtGnTWLJk\nidIhCyGsTIYqhLBBhw4dok+fPsyZM4cePXrQtWtXfvrpJwBKSkqYOnUqPXr0oFevXsyZMwe9Xg9A\namoq/fr1o0ePHsTGxpKWlmZ6z9TUVAYOHMhTTz3F7Nmzb1nvqVOnaN++PQDBwcE8/PDDnD17loMH\nDxIeHk5kZCQA/fv3Z//+/dy4ceNBNoMQwgZJ4iCEjTp79ixRUVEkJibyyiuv8N577wGwatUqMjIy\n2L59O1u2bCElJYWvvvoKgLFjx/Lmm2+SmJhIdHQ0M2bMML1famoq69at4/PPPychIYGrV6/eVGf7\n9u3ZsWMH5eXlnDt3jsuXL9O8eXMuXLhAeHi4qVzNmjXx9fXl0qVLD7YRhBA2R4YqhFDQ0KFDzeY4\n+Pv789lnnwGgVqvp1asXAN27d2fKlClotVqSk5MZNmwYLi4uuLi40KdPH/bv309UVBT5+fl06tQJ\ngNjYWAYPHmx67z59+uDs7ExISAgBAQFkZGRQq1Yts3gmTZrEkCFDWL16NdevX2fKlCkEBQWh1Wpx\nd3c3K+vu7o5Go3kg7SKEsF2SOAihoMrmOHh7e6NSqUz3Aa5du0ZeXh4+Pj6mcj4+PuTm5pKfn4+X\nl5fp+O+Jxe9q1qxpuu/s7Gwa3vij119/nTfeeIN+/fqRkZHBkCFDaNKkCWq1mpKSErOyxcXFZu8p\nhHAMMlQhhI0qKCgw3S8sLATA19eXwMBAs+cKCgoIDAzEz8+PgoICysvLAdDpdFy+fNni+vLy8jh+\n/Dh9+vQBIDQ0lMcee4wjR45Qr149s2GJ69evU1hYSJ06de7pMwoh7I8kDkLYqOLiYpKSkgBITEyk\nadOmuLu707lzZzZv3oxer0ej0bB161Y6depE3bp1CQ0NZdeuXQBs3ryZqVOnWlyfr68v/v7+7Nmz\nBzAmKz/++CMNGjSgbdu2XLlyhZSUFABWrlxJly5dUKvV9/lTCyFsnQxVCKGgP89xAOPchAYNGlC7\ndm2OHDnC+++/j06n48MPPzS9Ji0tjaeffhqVSkXPnj3p1asXKpWKBQsWMH78eObPn09QUNBtV0/c\nipOTEwsXLmTu3LnMmzcPgL59+5rmTMyfP5/p06ej1WqJiIhgzpw596kVhBD2RGUwGAxKByGEMHfo\n0CGmTJnCN998o3QoQghhRoYqhBBCCGExGaoQQgghHIRWq2XChAnk5uZSUlLCq6++SpcuXar0HjJU\nIYQQQjiIHTt2kJ6ezogRI0hPT2fYsGEkJiZW6T2kx0EIIYRwEL179zbdv3r1KiEhIVV+jweeOBhQ\nPegqqgVVptIR2A+/lUpHYB/ylysdgX0wnFQ6AlEdqbBuZ77qn8bfWsM0y+qNiYkhIyODxYsXV7ku\nmRwphBBC2DkXJ+PNUuvXr2fRokWMHz+eqs5YkMRBCCGEsHNqV+PtTlJTU00XuGvcuDF6vZ68vLwq\n1SWJgxBCCGHnLE0cUlJSWL7cOI6Zk5ODRqPBz8+vSnVJ4iCEEELYOQ8X4+1OYmJiyMvL4/nnn2fk\nyJFMnToVJ6eqpQKyqkIIIYSwc5b0NgB4eHiYtpS/W5I4CCGEEHbO0sQBIC4ujiNHjlBWVsbLL79M\n9+7dq1SXJA5CCCGEnbNkmALg4MGDnD59mg0bNpCfn0/fvn0lcRBCCCEcjaU9Dq1btyYqKgoAb29v\ntFoter3+pqv0VsbhEoeDB2oQFxdEkcaJ2mE6Zs3OJDS0TOmwFLF9txeLVvujK1PR8OESZk3IxMuz\n/KZyu7+rycLlAZSWqvD1Keefb2fSsF4pACnHPHhvXgjFJSrCQsp4/92rhATqrf1RrKLXI32Y+NR0\n3FzcydfmMjZxFCdyjpuV6V6vN1M6zsTdxYN8bS6Tvn2LH65+r1DEChvwErwwBpydIf0CTH4JMtPN\ny9SuA4mnIe1sxbFjh+GdF6waqi2Rc5TlpK0qWJo4ODs7o1arAdi8eTMdO3asUtIAVrhWhS3tHKnR\nqIju9jBLP00nMrKE1at92b9fzZIlV5QOzeo7R17JdKHfSxF88eklwkLKmPNRIKU6J6a+lWVWLjPb\nhWdeqMO6T9J4pG4pCVt8+M833qz/JI0bRU70jK3LR/+6QovIYv6d4IeLMwyLyX+gsSuxc2QtzzD+\nNzyVnmuf5GTuCYY/9goDmgyhZ8JTpjLe7j78/MpFeid04Hj2z3R7uAcLei6l6aII6weMwjtHNmsF\nn2yFfo9Ddgb8Iw6Cw2BcrHm52nVgdTJ0e1iRMMG2do605XOUrbH1trL2zpFDvjD+1ib0s6zepKQk\nlixZwvLly/Hy8qpSXRatwSgqKuLixYtcvHgRjUZTpQpsycGDasLDdURGlgDQv38h/9tfkxs3bCe5\nsZbd33nS/nENYSHG7Py5Z67xdbLnTeVcXAzMm3aVR+oaexgej9Jy5oIbAEnf1SSyYTEtIosBGDkk\n/4EnDUrRlet4adtgTuaeAODg5e94NDDSrExd33podBqOZ/8MwH8vfktt73C83X2sHq/i8rLhrRhj\n0gCQsg8eiaz8NULOUVUgbWXO0uWYAPv27WPx4sUsXbq0ykkD3GGo4ueff2bmzJlcu3YNPz8/DAYD\nWVlZhISEMHXqVBo1alTlCpV04YIb4eE60+OaNQ34+uq5dMmNJk1KFIzM+i6kuRJRu6ItIsJ05Oa7\nUHjdCR+viuGKAD89HdtWJIv/PViT5o2NicLJM+74+eh5bXIYZ8670aRhMe+OycLf9+bhDnuXo8lm\n9/mKK8hF1+tFytVDZmVO5Z5Ab9DTIaIL+y7t4dlGz/HD1e+5VlJo7XCVl37RePtdx15w9NCty3p6\nw8dboN6jxiGNWW/BuV+tEqatkXOU5aStzFk6VHH9+nXi4uJYuXIlvr6+d1VXpYnDrFmzmDlzJvXr\n1zc7fvz4caZPn05CQsJdVaqUYq0Kd3fzbhx393K0GsfLULXFTvj7VcxFcHMzoFIZ0GrNE4c/OnCk\nBqs2+bHqw8sAXLvhzHff1yQhPo2wUB1T5oYwKz6YD97NsMpnUErHOl15pdVbPLu+q9nx4rJi3vp6\nJBue205xmRYnlRPPbeqpUJQ25NlY6NALBrW7+bmi6/DVZ7D8A7hyCV58yzjE8XQT0FfPuTKVkXOU\n5aStzFmaOOzYsYP8/HzGjBljOjZ37lzCwsIsrqvSxMFgMNyUNABERkait8M/6hrqckpKzL9UxcVO\nqGtadyxKKWs/92XtFmOG6epsICigYhJRSYkKg0GFusatk4akfTWZ8WEwi+ekm4YtvGrqaf+4hjoP\nGbP+vz1XwEvjaz/gT6Gs3g2eJS46npjPnzENW/wu1LMWC3stI3p1G37JSeXJ8E6s6buFVv9uQJGu\nSKGIrWjIaxA72nh/3kRI+hKefwVeHAsvdIWcW0zkKciDGa9XPF4xH16bCnUbwtkTN5ev5hz9HFUV\n0lbmLB2mGDRoEIMGDbqnuiqtqnnz5owaNYro6Gj8/f0B497WiYmJtGnT5p4qVkK9ejp27qgYz7l+\n3YnCQifq1ClVMCrrie1fQGz/AgAStvjw/U9q03MXLrsSFFCG9y16G/6XombmwmCWz0unft2KtgoL\nLePCZTfTY2dnA87VeBPzTnW6MafbAvpt7M6p3Ju70tvUfoKLBef4JScVgP1pe9Eb9DQMaMyPGSnW\nDtf6Ej423n7X9wUYMhpiO0LW1Vu/xtvXeLt8oeKYkzOU6W5dvppz9HNUVUhbmavKBlCnTp3i1Vdf\n5cUXXyQ2NvbOL/iTSk/zEydOZPjw4Vy5coXk5GSSk5PJyspi9OjRjB07tsqVKa1tWw1XrrhyJMUD\ngJUr/ejcpQi12vEy1Oinijjwg5pzl4zftpUb/Xim27WbymmLVUycHUL8v66YJQ0A0R1u8P3RGpw8\na0weNmzzpX0r+508W5kaLjX4uPcKhm7pd8ukAeBs3ikeDYwk3LsOAFEhj+Ht5sP5grO3LF+tBYfB\n2NnwUs/bJw0AzVrDqm/BL9D4eOAIuHoJ0s5ZJ04bI+coy0lbmbP0IlcajYYZM2bQvn37u67LoZZj\nAhw6VINZM4PRalVEROiYPSeDoCDlh12svRwTYMe3nsQvD0CvV9GkYQkz38mgptrAsV88WLAsgGXz\n0vkqyYuJc0Ko/ae10WsXphHor2fXXk/eXxyICmhQr5QZ4zPx932w7anEcsz+jWP4qPcKLhVeMDv+\n3MYebHhuO08sbwbA31u8zMut3sQJJ0r1Jczc9y47z2yzfsAovBxz5AQYNcl834ayMujTzJgsvDnD\nmFQADB8HA0aAodxYfvpoq06OtKXlmGC75yhbZMttZe3lmEt/MP7WjmhZeb1lZWWUlZWxdOlS/Pz8\n7qrHweESB1ulROJgr5RIHOyRoomDHbG1xEFUD9ZOHBJ+Nv7WDmlmWb3x8fF3nTg43M6RQgghRHVT\nlTkO90oSByGEEMLOSeIghBBCCItZuhzzfpDEQQghhLBzlvY4pKamMnfuXNLT03FxcSExMZH4+Pgq\n7SIpiYMQQghh5yxNHJo2bcqaNWvuqS5JHIQQQgg7V5WhilmzZnH06FFUKhWTJk0iKiqqSnVJ4iCE\nEELYOUt7HA4fPszFixfZsGEDZ8+eZdKkSWzYsKFKdVXjDYKFEEIIx2DpzpEHDhwgOjoagPr161NY\nWMiNGzeqVJckDkIIIYSdszRxyMnJwc/Pz/TY39+f7OzsKtX1wIcqVLsfdA3Vw0SlA7AjK/+qdAR2\nwvKr5Do01TqlI7Afr/koHYH9+Li3detzvcuNKu9m82jpcRBCCCHsnea32x0EBweTk5NjepyVlUVQ\nUFCVqpLEQQghhLB3FiYOTz75JImJiQAcP36c4OBgPD09q1SVrKoQQggh7F2xZcVatmxJZGQkMTEx\nqFQqpk2bVuWqJHEQQggh7J0FvQ2/Gzdu3D1VJUMVQgghhL2zcKjidg4fPkz79u3Zs2fPHctKj4MQ\nQghh7+4habh06RIrVqygZcuWFpWXHgchhBDC3hVj8TyHPwsKCuKjjz7Cy8vLovLVrsdhe4oXi3b6\no9OraBhWwqyhmXjVKDcr8/UPnnz4n0CzY+cz3Tgy/zQq4F8bg/nhXA3K9PDGM7k82/a6FT+B9Tmp\nXOhZfw4d6rzN7O8e4lpJ+k1l3Jw96d94GRE+7SjVa9h1djLHs79QIFrrOnO0Bl+tCKK02Am/IB0D\n3szEN7DMrMzJI2p2rA6kuMiZkIgSYt7KQO1l/M4lrffnx73eGAwQVq+E/q9lUqNm+a2qqnaKSlVM\n3R7Czl+8+GXy6duW0+lh3reBrDjkz943zhHqXXbbstVRUYmKqV+FsDPVi1+m3aGdkgJZccCfvW+d\nI9THsdrJSeXCXxvNoVu9t5n87UMUFJufpx72bUds1AqzY0Hq+szZ35Ir11OtGaoy7qHHoUaNGlUq\nX60Shyt5LszYGMQXEy4R5l/GnM8D+X/bApk6KMusXM+WN+jZsmKLzR1HPNl5xAtPDwPvbwlEU+rE\nzqkXyCp04bm4CFrW1xIeWH3/SP8WtZXL176vtMzTDeZzvfQqc/fXIVDdkL8+upgTOVspN+itFKX1\nlRarSPigFsPfS+eh+iV89x9fvvgkmGFTr5jK3Ch05rMPavHyzMuE1Sth56pAtq8IYsAbmRzb78mx\n/V68Pu8ibh4G1s0LZe8XfvQcmqvgp7KemJURdHnkzlvZvrqxNs3C7vJfpWogZlkEXRpa0E7ratOs\ntuO206jHt3Kx8PbnqfMFB5nx38amx3V92jAgMt4xkgawOHHYtGkTmzZtMjv2+uuv06FDB4urqlZD\nFbuPetK+kYYwf+OP/HNPXOPrHypfn1qiU7HgP4GM72vcEON/v6rp1+4aTk4Q6ldGdNQNdh+r2hpX\ne/Pt+RkknX/vts87q9xoHjKYPednApCjOcWnP3St1kkDwJljagJCdDxUvwSA1tGFnP6pJsUalanM\nxV89CAzTEVbPWKbDs/n8fMD4fQkOL2Xgmxl4qA04OUGdR4vJvORu/Q+ikOm9MxnYsvCO5V7tkMsb\nnRwjmbqV6X0yGfi4Be3UKZc3ujhuO+08M4Ptp9+zuPxzTRbwxYm3H1xAtsbCoYoBAwawceNGs1tV\nkga4h8Th2rVrd/vSB+ZClisRgTrT44hAHbnXXSjU3P5jbv6fNy3raYkIMr5OBej/0JOsdi/nUrbb\ngwrZJly6drDS5wPVDdCVa3m81ouMaXecV1sdor5fNytFp5zsdDf8a1V8n9xrGFB76cm9WvF9UKmg\n/A/fFzePcoqLnCm65kRoRCkPPVJieu7kkZqEN9RaJXZb8NhDlv13bGm56uqxcAvbycJy1dX5gsrP\nU38UGdQbXbmWs/nfPcCIbMw9rqqoirtOHEaPHn0/47gvtKVOuP1hw243VwMqlQFtya0/Znk5LE/y\nY1h0vunYE401JPzXlxKdiit5LiQd9aREp7rl6x2Fh4svNVx8KSsv5sODkXxz7l2GNNtMDRe/O7/Y\njulKVLj+aQN4V7dySksqvg91HtWSc8WV00drYDDAf7/0w8nZgK7U/Du3e6M/1wuceapPgVViF8KR\n/aXeP0g694HSYVjXPSQOycnJDB06lH379jF//nyGDRtWaflK5zgkJCTc9rnMzMy7i/A+W5vsy9q9\nvgC4OhsI+sPEqhKdCoNBhdr91pPRfjzvgdrdQIOwUtOxV3vl8q+NwfzfzDpEBOnoGFmEq/NdXj2k\nmiguK0SlcuZg+iIATuftoqD4EhE+7TiZu1Ph6B4cN49ydH9KGktLnHD3qPg+1PQuJ/YfV9m+Iohy\nvYo2fynE1a0cD3XFMM7OVYGc+knNiOmXcfOovt+ltd/7sjbF+Lf4dpcc/vJo1S7V6yjWHvJl7eHf\n2ik6h780lna6n3w9alPLqym/ZH+tdCjWdQ+9DZ07d6Zz584Wl680cVi5ciXt27cnODj4pufKymxj\nsmBs5wJiOxv/i0vY68P3p9Wm5y5kuRLkU4a3+taJQ/LPnnRqWmR2TO1uYNbQiqRo4poQ2jRwnO7l\nWyksSQPA3dkLbZmxd8aAvtrPcQh6SMfR7yqWJ2mLnNDecCLwD4kmQKPHNTR6/BIA+Vku7Nvmh4fa\nmCDs+iyACyc8eHlmmulYdRXbuoDY1tKjciexbQuIbSvt9KA0DXqaX3O+wYBjrF4yseJIVqVDFR9/\n/DEXLlxg5MiRjB492uwWFmZ71+yNbl7EgZNqzmUaL0q+crcfz7S6/VyMX9PdqR9q/iPw711+zPnc\nuFTzzFU3DvyqpluUY/9HUFxWyOncRDrUMW5TGu7dBj+PundciWHvHmmmIT/LlfO/eACwb6sfjVsX\nmfUaFGuciHulLvnZLhgMkLQhgFbdjBPdLp9x54c9Xrz47pVqnzQIYStqezcn88YJpcOwvnsYqigr\nK+Odd95h8ODBDBw4kJSUlErLV9rj0LBhQ5YsWYKLy83FJkyYcHcRPkAhvmVMi8nktcVh6MtVNAkv\nYcpA41LMYxc8WPCfAJa9XrH2NyPfhcA/rRnv1+4aby2rRbd36+LhZmDuCxm37bGoDjzdghnRcq/p\n8ciWyegNZSz7sRt/b5HIgkPNAPj8xHAGRq7mH0+cp7iskHWpg0y9D9WVq7uBIeOv8uXiEEqLVQTU\n0jFoTAaFuS58Oq02b390EQ91OR3+L5/FE8MxGKBBCw1dB+QBcCjRB22RMx+NizC9p1+wjpf+efM+\nGdXN8avuvP1lLcr0oDeo6LmoLgBfv3KBY+keLNgbwLLn08m54UzsmnDT64aueQhnJ1g15DIhDrCf\nw/Er7rz9eS3Kyn9rp/i6AHz9+gWOXfZgwZ4Alg39rZ1W/KGdVv7WTi84Rjt5uQUzpl3FeWpMW+N5\nauGhboxuk8jMfc1Mz/l6PET6taNKhKmsexiq2Lp1KzVq1GDdunWcPn2aiRMnsnnz5tuWVxkMhgf7\nr9Bux55YaKmJSgdgR9o9pHQE9uHZw0pHYCeq1W42D9ZrPkpHYD8+7m3lXsahv/3Wrql6vTqdjvLy\nctzd3cnNzWXQoEEkJSXdtrz8yQghhBD27h56HFxdXU33V61axTPPPFNpeUkchBBCCHt3H3aOTEhI\n4Pjx4yxevLjS95DEQQghhLB3Fq6qGDBgAAMGDLjp+KZNm/j222/55JNPzHogbkUSByGEEMLe3cNQ\nRVpaGuvXr2ft2rW4u995W3xJHIQQQgh7dw+Jw6ZNmygoKGDkyJGmY8uWLcPN7daXW5DEQQghhLB3\n95A4jB07lrFjx1pcXhIHIYQQwt7dw86Rubm5vPPOO5SUlKDT6Zg4cSLNmze/bflqdVltIYQQwiHd\nw86R27Zt49lnn2XNmjWMHTuWBQsWVFpeehyEEEIIe3cPQxV///vfTfevXr1KSEhIpeUf/M6RQggh\nhLBp2dnZjBo1iqKiIlatWlVp8iCJgxBCCOEgKtsACmDv3r2sWrWK5cuX3/Y9JHEQQgghHNjhw4dp\n1KgRPj7Gi5G0bduWQ4cO3ba8TI4UQgghHNiuXbvYsmULACdPnqRWrVqVlpceByGEEMKB5eXlMWHC\nBIqKiigtLWXy5Mm0aNHituUlcRBCCCGExWSoQgghhBAWk8RBCCGEEBZzuMRh1qxZDBo0iJiYGI4d\nO6Z0ODbt1KlTREdHs3btWqVDsWlxcXEMGjSI/v37s2vXLqXDsUlarZY333yT2NhYBgwYwJ49e5QO\nyaYVFxcTHR3NF198oXQoNuvQoUO0a9eOoUOHMnToUGbMmKF0SA7DoXaOPHz4MBcvXmTDhg2cPXuW\nSZMmsWHDBqXDskkajYYZM2bQvn17pUOxaQcPHuT06dNs2LCB/Px8+vbtS/fu3ZUOy+bs2bOHpk2b\nMmLECNLT0xk2bBhdunRROiybtWjRItPSOHF7bdq0YeHChUqH4XAcKnE4cOAA0dHRANSvX5/CwkJu\n3LiBp6enwpHZHjc3N5YuXcrSpUuVDsWmtW7dmqioKAC8vb3RarXo9XqcnZ0Vjsy29O7d23Tfki1t\nHdnZs2c5c+YMnTt3VjoUIW7JoYYqcnJy8PPzMz329/cnOztbwYhsl4uLCx4eHkqHYfOcnZ1Rq9UA\nbN68mY4dO0rSUImYmBjGjRvHpEmTlA7FZs2dO5cJEyYoHYZdOHPmDKNGjWLw4MHs379f6XAchkP1\nOPyZrEQV90tSUhKbN2+udJtWAevXr+fEiROMHz+ebdu2oVKplA7Jpnz55Ze0aNGC8PBwpUOxeXXr\n1mX06NH06tWLtLQ0/va3v7Fr1y7c3NyUDq3ac6jEITg4mJycHNPjrKwsgoKCFIxIVAf79u1j8eLF\nfPrpp3h5eSkdjk1KTU0lICCAWrVq0bhxY/R6PXl5eQQEBCgdmk1JTk4mLS2N5ORkMjIycHNzIzQ0\nlCeeeELp0GxOSEiIaQgsIiKCwMBAMjMzJemyAodKHJ588kni4+OJiYnh+PHjBAcHy/wGcU+uX79O\nXFwcK1euxNfXV+lwbFZKSgrp6elMnjyZnJwcNBqN2bChMPrwww9N9+Pj46ldu7YkDbexbds2srOz\nGT58ONnZ2eTm5srcGStxqMShZcuWREZGEhMTg0qlYtq0aUqHZLNSU1OZO3cu6enpuLi4kJiYSHx8\nvPw4/smOHTvIz89nzJgxpmNz584lLCxMwahsT0xMDJMnT+b555+nuLiYqVOn4uTkUFOsxH3WtWtX\nxo0bx+7du9HpdLz33nsyTGElsuW0EEIIISwmKb8QQgghLCaJgxBCCCEsJomDEEIIISwmiYMQQggh\nLCaJgxBCCCEsJomDEEIIISwmiYMQQgghLPb/AZ7KhwXublVyAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n+39aNASi6jFpYgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nCCEU+38wy8SLW1+HFgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nEhZ8cJnGjUvVTktV/byHMK3bPOys7cgpyuLtvRP5PeuUfv/jTZ5iaf8vyz2nhaM3/TZ05kxmgrHT\nVUULxxacfeMsiTmJ+m1HU4/y4rYXy8Xp5ug4k3lGv556JRX/CH+j5WkyevWCXbsgOfnmtq1bISSk\nYuxLL8G0aaDRwIUL8PrrcPas0VI1NXKMMpy8VzcZWjhYW1vj4OAAQFRUFD179qxW0QAWVjgUFmoI\nDm7C6jWp+PgUs369E3PmuLNq1UW1U1NN4/pNWdZ/HUO/epo/sk/zYqdJLH5mFUM3d9fHHL8UT48v\n2+nXH2v8JPP9wiymaLghNT+Vdsvb3TXOkBiLcPQo3O3mOW3bwocfQqdOcPEiTJgAa9dCjx7GydHE\nyDHKcPJelVedOQ4A+/btIyoqSn9qZnUYdA5GQUEBSUlJJCUlUVhYWO1GTEV8vAOeniX4+BQDMHx4\nHodj63H1quVeFrukrIR/7hzFH9mnATia+iNtXXyqfE5on2W898O/jZGeqO3at1d6Fy7+dbA/cAA6\ndFA3JxXJMcpw8l6VZ+jpmACHDh1i5cqVrF69mgYNGlS7rSqbOXnyJPPnz+fKlSs4Ozuj0+lIT0/H\nw8OD2bNn07Zt22o3qKbz523x9CzRr9erp8PJqYzkZFvaty9WMTP1ZGkzOHj+5p3R/P42gJ/TjlQa\n3/dvAykq1XIk9UdjpGdSGto1ZOvIrTzs+jDnc8/zVvRb5YYlbogYFkHnJp3JLMxk+r7pxF2IUyFb\nE+DlBbt3Q8uWcPIkTJlys0C4IT4evL3BxwdOnYLhw2HvXlXSNQVyjDKcvFflGdrjkJ+fz+LFiwkP\nD8fJyeme2qqycFiwYAHz58/H29u73PZTp04xb948Nm7ceE+NqqVIq8HOrvw1ue3srqMttMwK9Xbd\nvfx47fG3GPG1X6Uxr/u+zfKfFhsxK9OQfy2fTSc38dHhj0jOS+atrm+xPXA77Ze3p0xXpo/7/Pjn\nfHr0U06mn2RE+xH836j/w/sTb/KK81TMXgWXLsG338KiRZCbCx99BBER0LdvxbiQEDhxAvLzoaBA\nmR9hoeQYZTh5r8oztHDYtWsXOTk5vPnmm/ptixYtomnTpga3VWXhoNPpKhQNAD4+PpSVld3hGaat\nrsN1iovLf6iKiqxwqCe3x+vfeijv+4XxwtbB+mGL2zWp34y2rh04eH63kbNTX7Y2mze+f0O/viRu\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHShJREFUeJzt3XtYVOXa+PHvMMNBFATkIKhkudWI\nxF5L3R7KE2meUisV3drB86l0szXx8ENfSRPalUqmZZmGlgRpulPDUClT1J/uMiEzTyCiiBxVTsIw\n7x+jYwTijChrhrk/17Wui7XmmXlu1rVmzT3Pc681Kp1Op0MIIYQQwgg2SgcghBBCCMshiYMQQggh\njCaJgxBCCCGMJomDEEIIIYwmiYMQQgghjCaJgxBCCCGMplE6ACGsSevWrfH19UWtVlfYHhERQUBA\nwH3tq2fPnkRERPDUU09V22706NGkpaXh4OBg2LZ+/Xq8vLy4fv068+bN49ixYzg4OPDPf/6TPn36\nALB9+3ZWrVpFaWkprVq1YsmSJTg5Od3X/0EIYX4kcRCilkVFRdG4cWOlw6ggPDycjh07Vtq+dOlS\nPDw82Lt3L+fOnWPBggX06tWLzMxMwsLC2Lx5Mz4+PixdupT333+f0NBQBaIXQtQmmaoQwkwcOnSI\ngQMHsnTpUvr06UPPnj355ZdfACgpKSE0NJQ+ffrQt29fli5dilarBSApKYkXXniBPn36MGrUKNLS\n0gyvmZSUxLBhw+jatStvv/22SfHcuHGD7du3M3nyZFQqFY888ghRUVFoNBp2795Np06d8PHxAeCl\nl17iu+++u097QghhziRxEMKMnDlzhoCAAOLi4pg8eTILFy4E9FMHGRkZbN++nS1btnDkyBG+/fZb\nAIKDg5k+fTpxcXEEBgYSFhZmeL2kpCS+/PJLvv76azZu3MilS5eq7Pezzz5j8ODBPP/888TExACQ\nkpKCvb09mzdvpl+/frz00kscOHDA8Jivr6/h+b6+vmRnZ5Ofn/8gdosQwozIVIUQtWz06NEVahzc\n3Nz44osvAHB0dKRv374A9O7dm/nz51NUVERCQgJjxoxBo9Gg0WgYOHAg+/fvJyAggNzcXLp16wbA\nqFGjGDFihOG1Bw4ciFqtxsvLi0aNGpGRkYG3t3eFeLp164avry/PPvssp0+f5uWXX+ahhx7CxsaG\na9euYW9vz44dO9i3bx9vvPEG8fHxFBUV4ebmZngNOzs7VCoVRUVFNGzY8IHtOyGE8iRxEKKWVVfj\n4OzsjEqlMvwNcPXqVXJycip8IDds2JDs7Gxyc3MrFCTeSixuqV+/vuFvtVptmN74s3Hjxhn+btmy\nJf379ychIYFBgwah1WoNicjTTz+Nt7c3x44dw9HRkRs3bhieV1JSgk6nw9HR0aR9IYSwPDJVIYQZ\nycvLM/x9a9jfxcUFd3f3Co/l5eXh7u6Oq6sreXl5lJeXA1BaWsqFCxeM7k+r1fL7779X2FZWVoat\nra1hZKKgoMDwmFqtxsbGhocffpjU1FTD9pSUFDw8PAzJjhCi7pLEQQgzUlxcTHx8PABxcXE8/vjj\n2Nvb0717d2JjY9FqtRQWFrJ161a6detG8+bNady4Mbt27QIgNjbW5CsbJk6cyM6dOwG4dOkS33//\nPd26dcPZ2ZmuXbuydu1aAI4dO0Z6ejpt2rQhMDCQxMREzp49C8C6desYMGDA/doNQggzJlMVQtSy\nv9Y4gL42oWXLljRp0oSjR4/yzjvvUFpayrJlywzPSUtLo3///qhUKp577jn69u2LSqVi+fLlzJo1\ni/feew8PDw+Trp5Qq9VERkby1ltvsWzZMmxtbZkxYwbt2rUDYPHixcyePZuePXvSoEED3n//fVxc\nXABYsGABU6dORavV8thjjzF//vz7tIeEEOZMpdPpdEoHIYTQX445f/58vv/+e6VDEUKIO5KpCiGE\nEEIYTaYqhBBCCCtRVFRESEgI2dnZlJSUMGXKFHr06GHSa8hUhRBCCGElduzYQXp6OuPHjyc9PZ0x\nY8YQFxdn0mvIiIMQQghhJfr162f4+9KlS3h5eZn8Gg88cdChetBd1AmaRUpHYDnKZYzMKLqFSkdg\nGWTMVTwIKmr3wFL9r/6zVrfAuH6DgoLIyMhg9erVJvclxZFCCCGEhdPY6Bdjbdq0iVWrVjFr1ixM\nrViQxEEIIYSwcI62+uVukpKSDD925+fnh1arJScnx6S+JHEQQgghLJyxicORI0cMd4PNysqisLAQ\nV1dXk/qSxEEIIYSwcA4a/XI3QUFB5OTkMHLkSCZMmEBoaCg2NqalAnJVhRBCCGHhjBltAHBwcODd\nd9+tUV+SOAghhBAWztjEASAiIoKjR49SVlbGxIkT6d27t0l9SeIghBBCWDhjpikADh48yKlTp4iO\njiY3N5chQ4ZI4iCEEEJYG2NHHNq3b09AQAAAzs7OFBUVodVqK/1ib3WsrjjyYGI9XhjiS58+zRnz\nWhMyMiR3qsoLj77A0Qk/kzzlBD+8ug9/D3+lQ1KcdwNvdo3axbnp5zg26RhP+z5dqY1ugY4TU08Y\nlvjR8QpEaib8/ODgQTh9Gg4d0q9X5YUX4Oef4cQJ2LcP/K37WJNzlPFkX91m7FUVarUaR0dHAGJj\nY3nmmWdMShrAyhKHwkIVwcHehL11mbi4FLr3KGDBAk+lwzI7zZyb8WH/1QyJHoT/h37E/hbDJ8+v\nVTosxa0fvJ6dp3fy8PKHmf7ddKZ1mFZlO7+VfoYlMCqwlqM0EzY2sHkzhIfD3/4GK1bAuHGV2zVr\nBqtXw6BB+sQiJgbWWu+xJuco48m+qsjYxOGW+Ph4YmNjCQ0NNbkvoxKHgoICUlNTSU1NpbCw0ORO\nzMXBg440a1aKv38JAC++mM+B/fW5fl1ui/1npeWljNoykvP55wHYc243rRu1VjgqZTV1bsqTPk8S\neTgSgISUBIbHDlc4KjPWuTOUlcGWLfr1jRvhX/+q3K60FEaOhPP6Y43du6G19R5rco4ynuyrioy9\nHBNg3759rF69mjVr1uDk5GRyX9V2c/z4cRYvXszVq1dxdXVFp9ORmZmJl5cXoaGhtLawN3hKih3N\nmpUa1uvX1+HiouX8eTsee6xEwcjMS8b1DDKuZwCgVql55YlX2XZyq8JRKautV1vO5Z5jaeBSBrQc\nQMb1DGbEzeCXjF8qtY0aEkU773ZkFWYREh9C4oVEBSJWWNu2kJoKn32mTyJOnYJp0yAlpWK7jAz9\nAqBWw6uvwlbrPdbkHGU82VcVGTvacO3aNSIiIli3bh0uLi731Fe1icOSJUtYvHgxLVq0qLA9OTmZ\nRYsWsXHjxnvqVCnFRSrs7Svek9vevpyiQuvMUO/m9Q5v8P+eCeV07mleiB6sdDiKcnFwoY1XGxb9\nuIiZu2Yyrt04Ng/bTMvIlmh1WkO7j49+zAeHP+B45nGGPjaU/4z4Dy1WtCC/JF/B6BXg4gLPPAOB\ngTBmDCxaBFFR8HTluhAA3ngDQkP19RCDrfdYk3OU8WRfVWRs4rBjxw5yc3OZMWOGYVt4eDg+Pj5G\n91XtVIVOp6uUNAD4+/uj1WqreIZ5q+dYTklJxYOquNgGx/ry83hViTy8As9/u7Pi4DJ+eu0ADhoH\npUNSTH5JPpevX2bbyW0AfPLfT3Cr50arRq0qtJv47USOZx4HIOa3GNKvpdO5Wedaj1cRU6fqCxxP\nnACVCn75BQ4f1v/85Hvv6UcebhZlVbJiBbi7w7JlcOAAOFjnsSbnKOPJvqrI2KmK4cOH89NPPxEV\nFWVYTEka4C6JQ9u2bZk0aRKxsbHs2bOHPXv28NVXXzF27Fg6dOhgUkfm4JFHSjl//nZadu2aDfn5\nNjz00A0FozI/j7o/Sq+HexnWNyVvwtne2arrHFLzUnGyd0L1p5+JL9eVVxhtqG9bv1IiobHRUFpe\nilVYuVJf4OjnB8eOQcOGtx+79UXjr184Hn0Uet0+1ti0CZydrbbOQc5RxpN9VZEpxZF//PEHgYGB\nbNiw4Z76qjZxmDNnDmPHjuXixYskJCSQkJBAZmYm06ZNIzg4+J46VFLHjoVcvGjL0SP6bzPr1rnS\nvUcBjo7WmaHeiYejB+sGf453A28AOjfrjK3alrO5ZxWOTDnHM49z8dpFxrXTXxnw0mMvkVucy5mc\nM4Y2zRo2I3FsIi1c9aN0zz7yLO6O7hy6cEiRmBW1ezd4e8Ozz+rXJ0yA/fuh5C9zzx4e8Pnn+rag\nH5WwtYWz1nmsyTnKeLKvKjI2cSgsLCQsLIxOnTrdc18qnak/xG0iHeY133ToUD2WLPakqEiFr28p\nby/NwMND+WkXzSKlI6ho8lNTmNJ+KjYqG0rKSpi3Zw47T+9UOiwAyhU6L/i5+7Fu8DrcHd3JLMhk\n6o6pZFzPIG5UHG1WtQFgdMBoQrqGYKOyIbcol+BdwRy8cFCReHULFen2ti5d4KOPwN5eXyg5YYI+\nIWjfHsLC4Lnn9O2mTNFPc9jY6BOLOXNgZ+0daw/2DGg6cz1HmSNz3lcqavfAWvNf/Wft+HbV91tW\nVkZZWRlr1qzB1dWVUaNGmdyX1SUO5srcEgdzplTiYGkUTxwshLklDqJuqO3EYeNx/WftP9oY129k\nZOQ9Jw7We5stIYQQoo4w5eZPNSWJgxBCCGHhJHEQQgghhNGMvWvk/SCJgxBCCGHhjB1xSEpKIjw8\nnPT0dDQaDXFxcURGRpp0F0kpjjQTUhxpPCmONI4URxpHiiPFg1DbxZHJV/Sftf4eD75fGXEQQggh\nLJwpUxVLlizh2LFjqFQq5s6dS0BAgEl9SeIghBBCWDhjpyoOHz5Mamoq0dHRnDlzhrlz5xIdHW1S\nX0b9rLYQQgghzJexd45MTEwkMDAQgBYtWpCfn8/169dN6ksSByGEEMLCGZs4ZGVl4erqalh3c3Pj\nypUrJvX1wKcqVFIbaRRtitIRWI7Iy0pHYCEWKh2AZVCNVzoCy9H2SaUjsBzHJtVuf7b3WBN5L9dH\nyIiDEEIIYekKby534enpSVZWlmE9MzMTDw8Pk7qSxEEIIYSwdEYmDl26dCEuLg6A5ORkPD09adCg\ngUldyVUVQgghhKUrNq5Zu3bt8Pf3JygoCJVKxYIFC0zuShIHIYQQwtIZMdpwy8yZM2vUlUxVCCGE\nEJbOyKmKOzl8+DCdOnVi7969d20rIw5CCCGEpatB0nD+/Hk+++wz2rVrZ1R7GXEQQgghLF0xRtc5\n/JWHhwcffPABTk5ORrWv2yMOb7wBkyffXre1BRcXcHev3DYkBF55Rf+LNydOwJQpcLlu3zBg+14n\nVn3hRqlWRavmJSz512Wc6pdXahe3rwEfbnSj5IYNrg21/O8bl2n18A0i1rizJ/F2NW5xiQq3hlo2\nf3i+Nv+NWqUtg8Sv3PllpxuvLj9LA7eySm3ST9TjwCZ3SorU2NqV03XUFZo8WqRAtAqbNAmmTQON\nBs6dg/Hj4cKFim1efBHeeqvitkcfBScnMPFudhbLvj6M/gieGg6TqrmDT+dXoc8s/c1xci/AF1Ph\n8qlaC1Np3R4ayJT2i7BT25NfnM1bP07idG5yhTbHJuk4l/u7YT2zIJ0J3wbWdqjKqMGIQ7169Uxq\nX7cThxUr9Msts2aBl1fldoGBMGYMPPUUXL0Kb78N//43jB5de7HWsouZGsI+9GDzyvP4eJax9CN3\n3v/MndBpmZXaLVjhydcfnKeJVxnrt7gw973GxEae583xWbw5/vb1wAtXeNLC90Zt/yu1asf7TfB8\n5M5pfdkNFTtX+PD8mxfwfLiEs0frE/eBN69FnrWum6F16gQzZ+rfU3l58N578O67MHx4xXZff61f\nbhk6VN/GWpIGgJAD8Ou31bdp3BpeegcWtYW8i9BtIryyFiKerp0YFeZZ34e3eq7nlW+6cDb3BMP8\nJzO/20e8+k3XSm0HR/spEKEZMDJxiImJISYmpsK2119/naefNv5Ysp6pCk9P/ehDWFjlx9q0gSNH\n9EkDwJ498PjjtRtfLdt9oAGdnijEx1P/jfml567y3Y+Vr+XVqHW8G5JBEy99u05PFHIurfK3oj/O\n2fH/j9djxMC8Bxu4wp4anE3HF7Pv+Li2TEXPcRl4PlwCQFP/QgrzNZQUWs9bDYDMTH3inXfzeNi9\nG1q3rv459vb60Yc333zw8ZmTqInw48fVt/F+DDJP6ZMGgN/3QJO6fY76szJtKbPjR3A29wQAP1/6\niRau/gpHZWaMnKoYOnQoX331VYXFlKQBapA4XL31IWspZs6EdesgP7/yYwkJ0LkzNGkCajUMGQLf\nf1/bEdaqlHRbfH1KDeu+3qVk52nIv1bxkPBspKXLk/pUtkwLW753plfngkqv98GGRowbmotG/WDj\nVpp3y+rfmfaO5TzypH7/6HRw4oeG+LQuxKGKKaA67cwZSEzU/+3gAP/4B2zdWv1zxo6F/fvh7NkH\nH585OXvQuDYeLcDn5odluxfht7p9jvqznOIrHEiLM6x39e1LUuahKtsu6RnF5mHJrH3+B9p6daqt\nEJVXw6sqTHHPUxXTpk3j888/v5+xPDjOzvDyy+B/hwz1559h/XpISYGCAv08rIkZmKUpKrbBraHW\nsG5np0Ol0lFUbENDp8ofcuu3uPDhhkb4+txg5cKLFR5LTbfl2AkH3p1z6YHHbSlOH27Aj597YudY\nTr/pF+/+hLoqPFxf6/DTTxARced2KhX8618wcGDtxWZJ8i/BlrkQ+gsUX4MbBfBON6WjUkSHJj0Z\nFfBPxv+nZ6XHYn/7mE1JH3Aq5zi9WwxlRd//MOCLFly7UcUXxrqmBklDQkICn376KWfPniU5OZmo\nqCjWrl17x/bVJg4bN26842OXzbVwcOpUfUEWwJw58M03MGAAHDoE2XcYYh44EPr319c/5OTA3Lmw\nYYN+Wx2yYasLG7a6AGCr0eHxp8K+khsqdDoVjvWq/mb8ypA8Xh6cx/YEJ4Jm+LLjkxQc7PU/jrLj\nByee7XId27pdMWOSv3W4zt86XOdCcj22LGlK0OJU6rto7/5ES1bVe2/2bP37KTgY4uP1tQ9V6dRJ\nX9fw22+1F69SekyFHjf305Y58PM3d39Osyeg/zyY+wjkpEHHf8C0bbDAeqYrAHo0H0RI10he3znA\nMG3xZ2E/TjT8vetMDOPbzadt4878dH5nbYapjBokDt27d6d79+5Gt692qmLdunWcPHmS3NzcSktZ\nWeVqcrOwciX4+emXb26+IQcMgB077vyc3r3hu+/0SQNAdDR0q3vZ/KhBeXy3NoXv1qYQNCCP1It2\nhsdS0m3xcCvDuUHFxOHMeTsO/NcR0H8pHNDjGgWFNpy7cPu5CYfq80yHytMX1uhatoazR+ob1pv6\nF9HArYzLpx0UjKqW/Pm9l54OHTvqt2u1sGoV/P3v0LBh1c+923u0Ltm7EkL99IsxSQOAXy84c0Cf\nNAAcidZPWzSo4gqxOqpjk1682WU5k77tzW9XjlZ6vJ6mPg81bFVhm1qloay8tFLbOqkGl2OaqtrE\nYeXKlaSkpDBhwgSmTZtWYfHx8amdCO+Htm31l1jeycmT0KsX3LokpX9/SEqqndgUEti5gMSfHTl7\ns9Bx3deuDOhRuW4lJ0/NmxGNuZytL144muxAqRaaNb79Zjx51r7OX01hrPIyFfFrGpN9M7HKy7Al\n/7Itbk2tbP88+ih8/LF+mhD0o3qpqVXXGMHd36PWLuMktOgM9d3064/3g7xLcD2r+ufVEQ6aeizq\n8RnBcS9wLu/3Kts0btCMqCGJNHNuAUCnps/iWs+d45erroWoc2pQ41BWVsbs2bMZMWIEw4YN48iR\nI9W2r3ZwuVWrVnz00UdoNJWbhYSE3FuESmjaFDIyKm4bPFh/Mhs7Flav1ld8//qr/ttRRga89poy\nsdYSL/cyFrx+makLfdBqVTzWsoT5U/WXYv76uwPL1zfi07fTaR9QxOSR2bw2uynl5Srs7HS8PzeD\nBjeL/fKu2lBUYoOHax0fhgcK89VsXtzMsL5lcVNUahgccoFtEU0YuTSVhl6l9BxzmV0feqMtU6FS\n6Xh61BVcGlvJt55boqKgZUv9FKFKpb+6Ytgw/WPt2+uvbnruudvtq3qPWgPf/4FxX4DaFtQaWHQz\neQr1g+btYXAYLHtOf7nmQ0/CnER91W3xVfhoqLKx16LuzQfh6uDB270qTp9P3t6HD/pt58Wv2nAu\n73ciDsxg+XPbsFHZcLUkl+nfDaKg9JpCUdeyGkxVbN26lXr16vHll19y6tQp5syZQ2xs7B3bq3Q6\nne7euzOCVV28XgMpSgdgOSLNtLzG3LzeUekILMQ4pQOwHG2fVDoCy3Fs0oP9aK1k9M3P2ijT+y0t\nLaW8vBx7e3uys7MZPnw48fHxd2wv5WxCCCGEpavBiIOt7e1786xfv54BAwZU214SByGEEMLS3Yc7\nR27cuJHk5GRWr15d7WtI4iCEEEJYOiOvqBg6dChDh1auj4mJiWHPnj18+OGHFUYgqiKJgxBCCGHp\najBVkZaWxqZNm9iwYQP29vZ3bS+JgxBCCGHpapA4xMTEkJeXx4QJEwzbPv30U+zs7KpsL4mDEEII\nYelqkDgEBwcTHBxsdHtJHIQQQghLV4O7RmZnZzN79mxKSkooLS1lzpw5tG3b9o7trey3foUQQog6\nqAZ3jty2bRuDBg0iKiqK4OBgli9fXm17GXEQQgghLF0Npipe+9Odki9duoSXl1e17R/8nSOFEEII\nYdauXLnCpEmTKCgoYP369dUmD5I4CCGEEFaiuhtAAfzwww+sX7+etWvX3vE1JHEQQgghrNjhw4dp\n3bo1DW/+7H3Hjh05dOjOvyoqxZFCCCGEFdu1axdbtmwB4OTJk3h7e1fbXkYchBBCCCuWk5NDSEgI\nBQUF3Lhxg3nz5vHEE0/csb0kDkIIIYQwmkxVCCGEEMJokjgIIYQQwmhWlzgsWbKE4cOHExQUxK+/\n/qp0OGbtjz/+IDAwkA0bNigdilmLiIhg+PDhvPjii+zatUvpcMxSUVER06dPZ9SoUQwdOpS9e/cq\nHZJZKy4uJjAwkM2bNysditk6dOgQf//73xk9ejSjR48mLCxM6ZCshlXdOfLw4cOkpqYSHR3NmTNn\nmDt3LtHR0UqHZZYKCwsJCwujU6dOSodi1g4ePMipU6eIjo4mNzeXIUOG0Lt3b6XDMjt79+7l8ccf\nZ/z48aSnpzNmzBh69OihdFhma9WqVYZL48SddejQgRUrVigdhtWxqsQhMTGRwMBAAFq0aEF+fj7X\nr1+nQYMGCkdmfuzs7FizZg1r1qxROhSz1r59ewICAgBwdnamqKgIrVaLWq1WODLz0q9fP8PfxtzS\n1pqdOXOG06dP0717d6VDEaJKVjVVkZWVhaurq2Hdzc2NK1euKBiR+dJoNDg4OCgdhtlTq9U4OjoC\nEBsbyzPPPCNJQzWCgoKYOXMmc+fOVToUsxUeHk5ISIjSYViE06dPM2nSJEaMGMH+/fuVDsdqWNWI\nw1/JlajifomPjyc2Nrba27QK2LRpEydOnGDWrFls27YNlUqldEhm5ZtvvuGJJ56gWbNmSodi9po3\nb860adPo27cvaWlpvPzyy+zatQs7OzulQ6vzrCpx8PT0JCsry7CemZmJh4eHghGJumDfvn2sXr2a\nTz75BCcnJ6XDMUtJSUk0atQIb29v/Pz80Gq15OTk0KhRI6VDMysJCQmkpaWRkJBARkYGdnZ2NG7c\nmM6dOysdmtnx8vIyTIH5+vri7u7O5cuXJemqBVaVOHTp0oXIyEiCgoJITk7G09NT6htEjVy7do2I\niAjWrVuHi4uL0uGYrSNHjpCens68efPIysqisLCwwrSh0Fu2bJnh78jISJo0aSJJwx1s27aNK1eu\nMHbsWK5cuUJ2drbUztQSq0oc2rVrh7+/P0FBQahUKhYsWKB0SGYrKSmJ8PBw0tPT0Wg0xMXFERkZ\nKR+Of7Fjxw5yc3OZMWOGYVt4eDg+Pj4KRmV+goKCmDdvHiNHjqS4uJjQ0FBsbKyqxErcZz179mTm\nzJns3r2b0tJSFi5cKNMUtURuOS2EEEIIo0nKL4QQQgijSeIghBBCCKNJ4iCEEEIIo0niIIQQQgij\nSeIghBBCCKNJ4iCEEEIIo0niIIQQQgij/R91hgzImep9KAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n2P8HrTliS6vsYhsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\niXYaKqSSk8YAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHHBJREFUeJzt3XtcVGX+wPHPMNxEQVABb6ipZUpe\ncjNTNvPCCpaupWtOhbbBWpqWZlpeSitSw9LNyNTVDBVTEjNtNTEvtISJP+2KeTdBEeSOchWG+f0x\nOTaheBCZM8N836/XvF6cM98zz3fmBXO+PM9znqMxGAwGhBBCCCEUcFA7ASGEEELYDikchBBCCKGY\nFA5CCCGEUEwKByGEEEIoJoWDEEIIIRSTwkEIIYQQiknhIEQd6tSpE3/7298IDg42e/z888+3va2B\nAwdy6NAhRbHffvstffr04aOPPjLbf+zYMXQ6HUFBQeh0Oo4dO1bl2OjoaDp16mTavnLlCrNnzyYo\nKIghQ4awdu3a2r0RIYRVc1Q7ASHqu3Xr1tG8eXO10zD58ssvWb9+PV26dKny3EsvvcTLL79MYGAg\ne/bsYfr06Xz55Zem5zMzM4mJiTE7JioqioKCAr766iuKi4sZPnw49957L127dq3z9yKEsDzpcRBC\nJUlJSQwbNox33nmHoKAgBg4cyI8//ghAWVkZc+bMMf0X/84776DX6wFITk5mxIgRBAUFERISwrlz\n50yvmZyczOOPP85f//pXFixYcN1227dvz9q1a/H29jbbf/z4cS5fvkxgYCAAgwYNIicnh9OnT5ti\n5s2bx4QJE8yO27lzJ48//jgODg40atSIoKAgdu7cWfsPSAhhlaRwEEJFp0+fplu3bsTFxTFhwgTe\neOMNANasWUNGRgbbt29ny5YtHDp0iP/+978ATJ06lcmTJxMXF0dgYCDh4eGm10tOTmbDhg1s3ryZ\n9evXk56eXqVNf39/nJ2dq+w/e/YsrVu3Ntvn5+fHmTNnAPjmm28oLCzk4YcfNov57bffaNOmjWm7\nTZs2pmOEEPWPDFUIUcfGjBmDVqs1bTdp0oRPP/0UADc3N4YMGQLA4MGDee211ygpKSE+Pp7Q0FAc\nHR1xdHRk2LBhJCYm0q1bN/Ly8njooYcACAkJ4YknnjC99rBhw9Bqtfj6+tK0aVMyMjJo0aKFojxL\nSkpwcXEx2+fi4kJxcTGlpaVERESwfPnyKseVlpaaHefq6kpJSYnCT0cIYWukcBCijlU3x8HDwwON\nRmP6GeDSpUvk5ubSuHFjU1zjxo3JyckhLy8Pd3d30/6rhcVVDRs2NP2s1WpNwxtKuLm5UVZWZrav\ntLSUhg0bsnTpUoYNG2bWs3BVgwYNzI4rKSnBzc1NcbtCCNsiQxVCqCg/P9/0c0FBAQCenp40a9bM\n7Ln8/HyaNWuGl5cX+fn5VFZWAlBeXs758+dvSy7t27c3my9hMBhISUmhQ4cO7N27l3Xr1hEQEEBA\nQAAAAQEBpKSk0L59e1JSUkzHpaSk0LFjx9uSkxDC+kjhIISKSktL2b17NwBxcXHcc889uLi40L9/\nf2JjY9Hr9RQXF7N161Yeeugh2rVrR/Pmzdm1axcAsbGxzJkz57bk0rFjR5o0aWK6imLLli20atWK\nO+64g+3bt7N//34SExNJTEwEIDExkbZt2zJkyBCio6PR6/VkZmayffv2KvMghBD1hwxVCFHH/jzH\nAYxzE+68805atWrF4cOHeffddykvL+f99983HXPu3DkeeeQRNBoNwcHBDBkyBI1Gw5IlS5g+fTqL\nFy/G29v7hldP3MjMmTP54YcfyMrKwsnJiW3bthESEkJISAjvvfcer7/+OpGRkTRt2pR33333pq83\nduxYzpw5Q3BwMFqtlokTJ3L33XfXKCchhO3QGAwGg9pJCGGPkpKSeO211/j666/VTkUIIRSToQoh\nhBBCKCZDFUIIIYSdKCkpYcaMGeTk5FBWVsbzzz/PgAEDavQaMlQhhBBC2IkdO3aQlpbGuHHjSEtL\nIzQ0lLi4uBq9hvQ4CCGEEHbij1c8paen4+vrW+PXqPPCwYCmrpuoFxzeVDsDUd8Y3lA7A9sgfa6i\nLmiw7C+W5k3judYwV1m7Op2OjIyM664GezMyOVIIIYSwcY4OxodSGzduZNmyZUyfPp2azliQwkEI\nIYSwcW5OxsfNJCcnm25+17lzZ/R6Pbm5uTVqSwoHIYQQwsYpLRwOHTrE6tWrAcjOzqa4uBgvL68a\ntSWFgxBCCGHjXB2Nj5vR6XTk5uby5JNP8uyzzzJnzhwcHGpWCshVFUIIIYSNU9LbAMbb3i9atKhW\nbUnhIIQQQtg4pYUDwMKFCzl8+DAVFRU899xzDB48uEZtSeEghBBC2DglwxQABw4c4OTJk8TExJCX\nl8djjz0mhYMQQghhb5T2OPTq1Ytu3boB4OHhQUlJCXq9vsodfKtjd4XDge8asHChN0XFDrRqWc78\nBRdp3rxC7bRUNaLzCF7v9zqujq5kF2cz/r/jOZJ1xCymX9t+LAxcSGPXxhSXFzNl5xQSUhNUytjy\nRnYeydsD3zbbd3ezu3Ff4E7hlULFMXbjxRdhwoRr205O4OkJzZpVjf3Xv2DKFNBq4exZ43ZamsVS\ntTbyHaWcfFbXKC0ctFotbm5uAMTGxtKvX78aFQ1ggXtVWNPKkcXFGgIH3cHKVWn4+5exdq0niYlu\nrFhxQe3UVFs50s/Dj8PPHua+lfeRWpDKi71f5KmuT9F7VW9TjKujK+deOkdQdBDfp3/P3zv9nRVD\nV9BiUQt1krYCo7qMYrT/aP6x6R+1iqlLVrVy5PTp4OsL06aZ77/vPti6Ff7yF8jIgIULoWVLCAmx\nWGrWtHKkNX9HWRtr/6wsvXLkU58bz7XrRyhrd/fu3axYsYLVq1fj7u5eo7YUXYNRVFRESkoKKSkp\nFBcX16gBa3LggBt+fuX4+5cBMHJkAfsTG1JYaD3FjaWVV5bz5OdPklqQCsCeM3vo1LSTWYyz1pmw\nbWF8n/69KaZ5o+Z4unpaPF9r4KJ14e2Bb/PK7ldqFWM3fHyMvQ/h4VWfy8oCnc5YNAAkJIC/v2Xz\nsyLyHaWcfFbmlF6OCZCQkMDy5ctZuXJljYsGuMlQxS+//MK8efO4dOkSXl5eGAwGMjMz8fX1Zc6c\nOXTq1Km6w63O2bPO+PmVm7YbNjTg6aknNdWZLl3KVMxMPRmFGWQUGr+0tRot/+zxT7Ye32oWc6ns\nEtuObzNth/UM438p/yO/NN+iuVqLsJ5hJKYmcibvTK1i7Ma0aRAVBQUFVZ9LSTE+rhoyBJKSLJaa\ntZHvKOXkszKndKji8uXLLFy4kKioKDw9b+2fv2oLh/nz5zNv3jw6dOhgtv/IkSO89dZbrF+//pYa\nVUtpiQYXF/NuHBeXSkqK7bNC/aMXe7/InH5zOJV7ikdjHr1uzMjOI/nw4Q/JL81nRMwIC2doHTRo\neLnPywzbMKxWMXbDwwPGjlXWixASYiwcHnig7vOyUvIdpZx8VuaUFg47duwgLy+PKVOmmPZFRETQ\nsmVLxW1VWzgYDIYqRQOAv78/er1ecSPWooFbJWVl5r9UpaUOuDW0okFOlXyQ9AEfJH2A7h4d+0P3\n0+WjLpRWlJrFbD66mc1HNzOg3QD2Pb2P7su7c7HookoZq6OPXx8KrxTya9avtYqplyZOhEmTjD/P\nnAlffAFDhxp7EHJyqj92wgSYOhUGDoSL9vU79UfyHaWcfFbmlA5TjB49mtGjR9eqrWrnOHTv3p3x\n48cTGxvL3r172bt3L5999hlhYWHcf//9tWpYDe3bl5Oaeq0su3zZgYICB9q2vaJiVuq6u9ndDLpj\nkGl7Y/JGPFw8zOY5tPZozfBOw03b+87u4/yl8zzQ2v7+Mxx611B2nNxR65h6aelS6NzZ+PjiC+O+\noUNhx00+i6efNhYc/frBb7/VfZ5WTL6jlJPPypzSe1UAnDhxgsDAQKKjo2+prWoLh5kzZxIWFsaF\nCxeIj48nPj6ezMxMJk2axNSpU2+pQTX17l3MhQtOHD7kCkBUlBf9BxTh5mafFSqAt5s3ax9bS4tG\nxisk+vr1xUnrZDY276x1JurRKLp4dwGgY5OOdGzSscolm/agu293jmYfrXWM3ejeHY5W81m0bAkL\nFkBwMPx+xz57Jt9RyslnZU5p4VBcXEx4eDh9+vS55bZu2rnRq1cvevXqdcsNWBNXVwOLFqfz1lu+\nlJRoaNOmnAXvZKidlqoSUhOYlzCP3WN346BxoKyiDF2sDncXd/aH7afrsq6cyTvDuC/HsWHkBpy1\nzhgMBibvnMyp3FNqp29xrT1amyaTAvRq2YvwAeEErw++YYxda9362hUTVz36KAwbBmFhxvkPjRrB\nrl3Xnq+ogK5dLZunlZDvKOXkszKndKjC2dmZlStXsnLlyltuy67WcbBmaq3jIOovq1rHwYpZ0zoO\nov6w9DoO638xnmuf6qqs3cjISLy8vAi5hTVT7G7lSCGEEKK+qclNrmpLCgchhBDCxknhIIQQQgjF\nlM5xuB2kcBBCCCFsnNIeh+TkZCIiIkhLS8PR0ZG4uDgiIyNrtIqkTI60EjI5UtxuMjlSGZkcKeqC\npSdHHskynmv9veu+XelxEEIIIWxcTYYq5s+fz08//YRGo2HWrFl069atRm1J4SCEEELYOKVDFQcP\nHiQlJYWYmBhOnz7NrFmziImJqVFbim6rLYQQQgjrpXTlyO+++47AwEAAOnToQEFBAYWFhTVqSwoH\nIYQQwsYpLRyys7Px8vIybTdp0oSsrKwatVXnQxUamRupiOHMzWOEUcQFtTOwEW+onYBt0Dyjdga2\no213tTOwHSlTbh5zOznd4pzIW7k+QnochBBCCFtX/PvjJnx8fMjOzjZtZ2Zm4u3tXaOmpHAQQggh\nbJ3CwiEgIIC4uDgAjhw5go+PD40aNapRU3JVhRBCCGHrSpWF9ezZE39/f3Q6HRqNhrlz59a4KSkc\nhBBCCFunoLfhqmnTptWqKRmqEEIIIWydwqGKGzl48CB9+vRh3759N42VHgchhBDC1tWiaEhNTeWT\nTz6hZ8+eiuKlx0EIIYSwdaUonufwZ97e3nz44Ye4u7sriq//hcOMGXD0KPz6K2zeDL6+VWMeegiK\nioxxVx/z51s+VwvbHu/O0OfaEhTWjhfCW3C56Pq/DnHfNmL4820I/lc7npjqx4mzzgBU6OGd/zQj\n+F/tGDD2DlZt8rru8fVJZQUkbWzG6tC7KMqtvsMuJ9WZT8bdSfqxBhbKzkpNnFj9naQaNoToaCgv\nt1xO1sSlITwbDatu8v77joG3k+G9FBi3FhydLZOflQhsP4wdT/3AnrG/Ejsqgbua+leJaejUiKUP\nx7A/NIU9Y48ypOMIFTJVSS2GKho0aIBWq1UcX78Lh8BACA2F3r2hSxc4cQLee+/6sQcPQufO1x6z\nZlk2Vwu7kOlI+DJv/hOeRtzHZ2nlW86/o5pdN25upA8fzb3AzlVnCe53mVmLmwPw2VeN+elYA7Z+\nlMK2ZSls3uXBoeT6fZLcHdkKJ9ebL5hiqITv1vni5lFhgaysWPPm8Oyz1cfs3w8pKZbJxxrN3g85\nN3n/rfxBtxgWB8O0tuCghSGvWCY/K+DbsCWLB69h8ldPMmhtF7Ye/5QFg1ZUiXu932Iyi9Lpu7ot\n474cztPdJ6HVKD8h2jSFhcOmTZt4/PHHzR4JCQk1aqp+Fw5du8KhQ3DpknF771645x51c7ISe75r\nRJ8exbT0MZ7Y/hF0iZ0JVa/lddQaWPRqBq18jXF9ehTz23njuqb7v3dj6IBLuDgbcG9YyYjBl4j7\ntmbXA9uaHsNy6Plozk3jjsU3pkmbMtx97PS/6KuWLIG3364+5rnn4D//sUw+1mjNcxB/k/ffeSAc\n3Qu5543bu96H+0bWfW5WoqKynBe+eoKTuUcB+L8L33Lnn3ocnLXO/L3TE3x4cB4AZ/JOoNs8EL1B\nb/F8VaFwqGLUqFF89tlnZo8HH3ywRk3dcuFw6erJ2JrFx0PfvtCqFWi18Nhj8PXX149t0wZ27oRj\nx2DTJmjZ0qKpWtrZNCfatLh2UmvTopycfEcKLpv/Svg01RPQ01jGVuhhy9ceDOpTBBiXE6+svLam\nuJtrJakXFN6izUb5dLz5X2ZxgZYjX3vxl5HZN42t14KDwcPD+PdUnQMHLJOPtTqt4P0bDMZehqvK\nCsGnY93lZGVySrL4JiXOtN2/3RB+zEgyi2nneSelFSX8o8s/2T3mCFt1SQT4DbJ0quqp5VUVNXHL\nhcOkSZNuZx5144cfYM0aOHsWcnKgXz9YsKBqXHo6fP45hIQYeyTS0mDdOouna0klpQ44/2Fxc2dn\nAxqNgZLS6/9KrPnCkwBdBw4lN2BaqPGGKH17FhMb58GlQgfyLjmwbY8HZVfk5iRJG7y59+85uLhV\nqp2KelxdYdEi4/wGUXtH94D/34xDFg5aGDgRnFzVzkoVAX4DCbv3JcK/eclsv4eLJx4unpTpSwlc\n58+i715n2dBYGrvU/7lXQK0Kh/j4eMaMGUNCQgKLFy8mNDS02vhqZ3etX7/+hs9dvHjx1jKsaxMn\nwtWiZsECeOQR44TI3FzjvIXoaOO+PzpxAqZPv7b95puQnQ1ublBsoRLOAqK3eRK9zRMAJ0cD3k2u\njb+XXdFgMGhwa3D9k93Tj+Yzdng+2+Pd0U1tw47/nGVUcAGpF5wYNbkNPk0q6NuzmNOp9jVh68/O\nJ7tRVqilQ5/LaqdieX/82zMYjH9rZ+TubVUMmgiDfv+cYmfC91/c/JgLR2H9CzB+I1SUQcJqKM6v\n2zyt0OAOw3mzfyShW4eahi2uulxWgNZBS/TPywD4X8ouLlxKpWeLB9h39is10rWsWpyq+vfvT//+\n/RXHV9vjEBUVxfHjx8nLy6vyqKiw0klfS5dem+DYq5dx+CE31/hcTIzxCoo/8/ExH5pwdDR+8Vnr\ne7xFIX/PZ+eqs+xcdRbdI/mkXLh2kj+b5oR3kwo8GpkXDqdTndn/vRtgHJoYOuAyRcUO/HbeGUct\nvDoum7iPz7Lu3fNotQbualdm0fdkbVK+b0ROqisbprRnw5T2ZJ5qwJ6lLTmZqOwyJ5v2x7+9ykp4\n8UVjb156uvH59HTo0EHdHK3BnqUwq7PxoaRouCpxLbzeFd68D87/YnzYkQC/Qcx9aAljPh/ML5mH\nqzyfXngOgIZO1/7WKg16meNQB6rtcVi6dClvv/02r732Gs7O5v9JJiUl3eAoK3L8ODz1FMybByUl\nxp6G5OSqccOHQ1gYDBpkvCxz8mTYsweuXLF8zhYS2KeID9Y148w5J9r7lRP1uRdD+1edt5JboOWV\n95qzOTIF36Z6Dh9xpVwPfs3L2bbXnX1JDVn0agZZeVq2fO3B6vlpKrwb6xEwNpOAsZmm7R0Rrbl3\neA4t7i5RMSsV/HkSssEALVqok0t94NMBJsbCO/3hShEMnQWJUSonZTmujg14b/AnjPvyUU7lHbtu\nzKWyAv6XEsezf5nGu/tn06P5/bT2aMdPGf9n4WxVUoseh4qKCmbPnk1qaip6vZ5XXnmF++6774bx\n1RYOd911FytWrMDRsWrYjBkzbj1LS1m+HDp1gp9/Br0eMjLgmWeMzz36KAwbZiwYVq2Cu+6CH380\nxv3667W4esq3WQVzJ11k4lst0es1dOlYxmvPG094Px93Zcmapnw8P41eXUuYoMvhmZmtqazU4Oxk\n4N8zMmjUsJLAvoXs+rYRgc/cgaPWwMuh2bRtWX+vIigp0LIjws+0vWNhaxwcIHj6eeIWt2JEuB1f\nUlgTf/zbu/de+PRTcHIy9vQd/b37uXNndXO0lLb3wnOfgtYJtI4w//f3P6sz3NELRoTDomDIPA0/\nbIW3fgIMkLTB2ANhJwZ3GE6TBt4sCTYfPh+7JYhPhm9ncHRXAKZ/Hca/g9bybehvXC4rYOKO0RSU\n5amRsuXVonDYunUrDRo0YMOGDZw8eZKZM2cSGxt7w3iNwVDdyiy3gUYmyykiQ8GKRVxQOwPb8Opf\n1c7ARvxT7QRsR9vuamdgO1Km1O2ptYoxv59r19W83fLyciorK3FxcSEnJ4fRo0eze/fuG8bLvSqE\nEEIIW1eLHgcnp2uX0a9Zs4ahQ4dWGy+FgxBCCGHrFBYOmzZtYtOf1lZ54YUXePDBB1m/fj1Hjhxh\n+fLl1b6GFA5CCCGErVN4RcWoUaMYNWpUlf2bNm1i7969fPTRR2Y9ENcjhYMQQghh62oxVHHu3Dk2\nbtxIdHQ0Li4uN42XwkEIIYSwdbUoHDZt2kR+fj7P/uGGdB9//HGVZRiuksJBCCGEsHW1KBymTp3K\n1KlTFcdL4SCEEELYulqsGpmTk8Orr75KWVkZ5eXlzJw5k+7db3ztbf2+rbYQQghhD2pxk6tt27Yx\nfPhw1q1bx9SpU1myZEm18dLjIIQQQti6WgxVPPOHlZLT09Px9fWtNr7uV44UQgghhFXLyspi/Pjx\nFBUVsWbNmmqLBykchBBCCDtR3QJQAN988w1r1qxh9erVN3wNKRyEEEIIO3bw4EE6depE48aNAejd\nu3e1d8CWyZFCCCGEHdu1axdbtmwB4Pjx47Ro0aLaeOlxEEIIIexYbm4uM2bMoKioiCtXrjB79mx6\n9Ohxw3gpHIQQQgihmAxVCCGEEEIxKRyEEEIIoZjdFQ7z589n9OjR6HQ6fv75Z7XTsWonTpwgMDCQ\n6OhotVOxagsXLmT06NGMHDmSXbt2qZ2OVSopKWHy5MmEhIQwatQo9u3bp3ZKVq20tJTAwEA+//xz\ntVOxWklJSTzwwAOMGTOGMWPGEB4ernZKdsOuVo48ePAgKSkpxMTEcPr0aWbNmkVMTIzaaVml4uJi\nwsPD6dOnj9qpWLUDBw5w8uRJYmJiyMvL47HHHmPw4MFqp2V19u3bxz333MO4ceNIS0sjNDSUAQMG\nqJ2W1Vq2bJnp0jhxY/fffz8ffPCB2mnYHbsqHL777jsCAwMB6NChAwUFBRQWFtKoUSOVM7M+zs7O\nrFy5kpUrV6qdilXr1asX3bp1A8DDw4OSkhL0ej1arVblzKzLww8/bPpZyZK29uz06dOcOnWK/v37\nq52KENdlV0MV2dnZeHl5mbabNGlCVlaWihlZL0dHR1xdXdVOw+pptVrc3NwAiI2NpV+/flI0VEOn\n0zFt2jRmzZqldipWKyIighkzZqidhk04deoU48eP54knniAxMVHtdOyGXfU4/JlciSpul927dxMb\nG1vtMq0CNm7cyNGjR5k+fTrbtm1Do9GonZJV+eKLL+jRowd+fn5qp2L12rVrx6RJkxgyZAjnzp1j\n7Nix7Nq1C2dnZ7VTq/fsqnDw8fEhOzvbtJ2ZmYm3t7eKGYn6ICEhgeXLl7Nq1Src3d3VTscqJScn\n07RpU1q0aEHnzp3R6/Xk5ubStGlTtVOzKvHx8Zw7d474+HgyMjJwdnamefPm9O3bV+3UrI6vr69p\nCKxNmzY0a9aMixcvStFlAXZVOAQEBBAZGYlOp+PIkSP4+PjI/AZRK5cvX2bhwoVERUXh6empdjpW\n69ChQ6SlpTF79myys7MpLi42GzYURu+//77p58jISFq1aiVFww1s27aNrKwswsLCyMrKIicnR+bO\nWIhdFQ49e/bE398fnU6HRqNh7ty5aqdktZKTk4mIiCAtLQ1HR0fi4uKIjIyUk+Of7Nixg7y8PKZM\nmWLaFxERQcuWLVXMyvrodDpmz57Nk08+SWlpKXPmzMHBwa6mWInbbODAgUybNo09e/ZQXl7OG2+8\nIcMUFiJLTgshhBBCMSn5hRBCCKGYFA5CCCGEUEwKByGEEEIoJoWDEEIIIRSTwkEIIYQQiknhIIQQ\nQgjFpHAQQgghhGL/D2eX9aEiI4hAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHXJJREFUeJzt3XlcVOX+wPHPMOwKAgqIiqloLrjf\nzNDrToKmuV11LPAW3tTSylyuW2k3bhpmXo1bapa5kZKoqWWiYHQVFdOfZpArJiJCrCLKIsv8/pjC\nCMVBZM6M832/XucF55xn5vnOec3M+c7zPOc5Kq1Wq0UIIYQQQg8WSgcghBBCCNMhiYMQQggh9CaJ\ngxBCCCH0JomDEEIIIfQmiYMQQggh9CaJgxBCCCH0JomDELWodevWPP300/j7+1dYTp8+/dDr6t+/\nP8ePH9er7KFDh/Dx8eHjjz+usP3s2bNoNBr8/PzQaDScPXu2fN/q1avx9/dn0KBBTJ06lYyMDABu\n377N/Pnz8fPzY9CgQWzYsOHhvSghhNGxVDoAIR51GzdupGHDhkqHUW737t2EhYXRrl27SvveeOMN\nZsyYga+vL9HR0cyaNYvdu3cTGxvLtm3b2LZtGw4ODixdupSQkBCWLl3KunXryM3N5dtvvyU/P59h\nw4bRpUsXOnTooMCrE0LUNmlxEEIhcXFxDB06lPfeew8/Pz/69+/PqVOnACgqKmLBggXlv+Lfe+89\nSktLAYiPj2fkyJH4+fkREBBAcnJy+XPGx8czZswY/vrXv7J48eK71tuiRQs2bNiAq6trhe3nzp0j\nLy8PX19fAAYMGEBWVhaJiYmcP3+e9u3b4+DgAMBTTz3FhQsXANi7dy9jxozBwsKCunXr4ufnx969\nex/uwRJCGA1JHIRQUGJiIh07diQyMpKXX36Zt99+G4D169eTlpbGN998w44dOzh+/Dhff/01ANOn\nT+f1118nMjISX19fgoODy58vPj6ezZs3s23bNsLCwkhNTa1Up7e3N9bW1pW2X758mSZNmlTY5unp\nyaVLl3jyySc5efIkaWlplJSUsH//fnr06AHAL7/8QtOmTcsf07RpUy5dulTjYyOEME7SVSFELQsM\nDEStVpevu7i48MUXXwBgb2/PoEGDABg4cCBvvvkmBQUFxMTEEBQUhKWlJZaWlgwdOpTY2Fg6duxI\n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\nTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\ne2Vl8NZbkJ6uWUDzb7t2Fd/30kuahKN3b/j9d/3GrITYz2F6B82iS9Lwl4PrYeZjMKc7XP5Fs5iQ\np1oP4IO+SxmzdSCnr56ostyAB4cQn7KHMrWJtfjV4nbMmqq2xeHzzz9n7ty5zJo1Cyur8v+TPGoM\n/ZBnz8KYMTBvHhQWaloaEioZYbt3L3z1FTzzjGYMxLhxcPAgFNXfi6CXZz7LwppxMdWStm7FrNvq\ngG/fiuNWcvLMee/T5ny7PBmXpqWcSLShuBTcmhcTta8R+482YNH7GWTmmrNtjz1r56cp8NcYjl5j\nr9Fr7DXtenRIKx5/LhvXRwsVjEoB/xyErFaDq2vFci1aaFoGe/S4k2CIipzbwaRI+LgvFOWD7wyI\nX6d0VHpjY2HLooFf82rUMC7k/FZt2Y5OXapsjajXatHiUFJSwsyZM0lJSaG0tJT33nuP7t27V1m+\n2sThkUceYdWqVVhYVCw2bdq0e49SX1auhPbt4fRpTetBRga88opm37BhMHQoBAVpuiOGD4dVq8Da\nWtMC8fLLioZe11yalTBn0lUmftSC0lIVHR8qYtYbmgve6bM2LA1tylfz0/B4rJAJftm8Mr0VZWUq\nrCzVfDYtg4YNyvDqeYvdBxri9cqDWJireTcwiwda1N+7CArzzIkOcdOuRy9shZkZ+Ey9TMzilowI\nvsstdULj77+9sWOhYUPYvfvO/pISzR1RpuCBx2H8N2BhCeYWsODPC970DtDWA0YEa27BvJYEJ3dA\n8M+aJOzoRk0LhInwbvccjrZOLBtUvvvcf6s3ocO+xyvszvfFtWErfs38Wd8hKq8WicOOHTuwtbVl\n48aNnD9/nunTpxMZGVlleZVaXd3MLPeBSgbL6UTHrmABIVeUjsA4vP+U0hEYibFKB2A83LoqHYHx\nSP1P3V5aKwj481obVvN6i4uLKSsrw9ramuzsbEaPHk1sbGyV5eVZFUIIIYSxq0WLg6XlndvoQ0ND\n8fX1rba8JA5CCCGEsdMxcdiyZQtb/jG3yptvvsnTTz9NeHg4iYmJrFy5strPkMRBCCGEMHY63lEx\natQoRo0aVWH7li1b2LdvH1988UW5FojKSOIghBBCGLtadFWkpqayadMmNmzYgLW19V3LS+IghBBC\nGLtaJA5btmzh+vXrjPvbA+m++uqrCtMw/EUSByGEEMLY1SJxmDx5MpMnT9a5vCQOQgghhLGrxayR\n2dnZvP/++xQVFVFcXMz06dPp0qVLleXr92O1hRBCCFNQi4dcRUVF8dxzzxEWFsbkyZNZunRpteWl\nxUEIIYQwdrXoqnjlrxmVgfT0dFxcXKotX/czRwohhBDCoGVmZjJ+/Hjy8/MJDQ2tNnmQxEEIIYQw\nEdVNAAXw448/Ehoaytq1a6v8DEkchBBCCBN27Ngx2rdvT+PGjQHo0aNHtU/AlsGRQgghhAnbvXs3\n27ZtA+Ds2bO4urpWW15aHIQQQggTlpOTw7Rp08jPz+ePP/5g5syZdO1a9aNQJXEQQgghhM6kq0II\nIYQQOpPEQQghhBA6M7nEYf78+YwePRo/Pz9Onz6tdDgG7dy5c3h5ebFhwwalQzFoCxcuZPTo0Ywc\nOZLdu3crHY5BKiws5O2338bf359Ro0axf/9+pUMyaLdv38bLy4utW7cqHYrBOnr0KE8++SQBAQEE\nBAQQHBysdEgmw6Rmjjx27BjJyclERESQlJTEjBkziIiIUDosg1RQUEBwcDCenp5Kh2LQjhw5wvnz\n54mIiCA3N5fhw4czcOBApcMyOPv376dTp0689tprpKWlERgYSL9+/ZQOy2CtWLFCe2ucqNoTTzzB\nsmXLlA7D5JhU4nD48GG8vLwAaNeuHXl5edy6dYuGDRsqHJnhsbKyYvXq1axevVrpUAyah4cHnTt3\nBsDe3p7CwkJKS0sxNzdXODLDMnjwYO1rXaa0NWVJSUlcuHCBvn37Kh2KEJUyqa6KrKwsHBwctOuO\njo5kZmYqGJHhsrCwwMbGRukwDJ65uTl2dnYAREZG0rt3b0kaquHn58eUKVOYMWOG0qEYrJCQEKZN\nm6Z0GEbhwoULjB8/nhdeeIGDBw8qHY7JMKkWh3+SO1HF/RIbG0tkZGS107QK2LRpE2fOnGHq1KlE\nRUWhUqmUDsmgbN++na5du+Lm5qZ0KAavTZs2TJo0iUGDBpGamsrYsWPZvXs3VlZWSodW75lU4uDs\n7ExWVpZ2/dq1azg5OSkYkagP4uPjWblyJWvWrKFRo0ZKh2OQEhISaNq0Ka6urnTo0IHS0lJycnJo\n2rSp0qEZlLi4OFJTU4mLiyMjIwMrKyuaN29Oz549lQ7N4Li4uGi7wFq3bk2zZs24evWqJF16YFKJ\nQ69evVi+fDl+fn4kJibi7Ows4xtErdy8eZOFCxeybt06mjRponQ4Buv48eOkpaUxc+ZMsrKyKCgo\nKNdtKDSWLFmifb18+XJatmwpSUMVoqKiyMzMJCgoiMzMTLKzs2XsjJ6YVOLQrVs33N3d8fPzQ6VS\nMWfOHKVDMlgJCQmEhISQlpaGhYUFMTExLF++XC6O/xAdHU1ubi7vvPOOdltISAgtWrRQMCrD4+fn\nx8yZM3nxxRe5ffs2s2fPxszMpIZYifusf//+TJkyhb1791JcXMwHH3wg3RR6IlNOCyGEEEJnkvIL\nIYQQQmeSOAghhBBCZ5I4CCGEEEJnkjgIIYQQQmeSOAghhBBCZ5I4CCGEEEJnkjgIIYQQQmf/D/et\n9d1Ebq9qAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nEIr9P/4knOGG7vceAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nA1iZKM28GF1AAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nIRSTwkEIIYQQillc4bB48WJGjRqFn58fv/76q9rpmLQzZ87g4+PD+vXr1U7FpIWGhjJq1CiGDx/O\nrl271E7HJBUVFTF9+nT8/f0ZMWIE+/btUzslk1ZcXIyPjw/fffed2qmYrMTERDp27MjYsWMZO3Ys\nISEhaqdkMSxq5cgjR46QkpJCdHQ0586dY86cOURHR6udlkkqLCwkJCSETp06qZ2KSTt8+DBnz54l\nOjqavLw8hg4dSp8+fdROy+Ts27ePVq1a8eabb5KWlkZAQAA9e/ZUOy2TtWLFCv2pcaJ8r7zyCp99\n9pnaaVgciyocDh06hI+PDwBNmzaloKCA69evU7NmTZUzMz12dnasXr2a1atXq52KSfP29qZNmzYA\nuLi4UFRURFlZGdbW1ipnZlr69++vv61kSVtLdu7cOf744w969OihdipCPJBFDVVkZ2fj6uqq369T\npw5ZWVkqZmS6bGxscHBwUDsNk2dtbY2TkxMAMTExdOvWTYqGCvj5+TFjxgzmzJmjdioma+nSpcya\nNUvtNMzCH3/8weTJkxk9ejQHDhxQOx2LYVE9DveSM1HF4xIXF0dMTEyFy7QK2LhxIydPnmTmzJls\n27YNjUajdkomZcuWLbRr145GjRqpnYrJe+aZZ5g6dSq+vr6kpqYybtw4du3ahZ2dndqpVXsWVTjU\nq1eP7Oxs/X5mZibu7u4qZiSqg4SEBFauXMlXX32Fs7Oz2umYpKSkJOrWrYunpyctWrSgrKyM3Nxc\n6tatq3ZqJiU+Pp7U1FTi4+PJyMjAzs6O+vXr07lzZ7VTMzkeHh76IbDGjRvj5ubGlStXpOgyAosq\nHLp06UJYWBh+fn4kJydTr149md8gquTatWuEhoYSHh5O7dq11U7HZB09epS0tDSCg4PJzs6msLDQ\nYNhQ6Hz66af622FhYTRs2FCKhnJs27aNrKwsJkyYQFZWFjk5OTJ3xkgsqnBo3749Xl5e+Pn5odFo\nmD9/vtopmaykpCSWLl1KWloaNjY2xMbGEhYWJl+O99ixYwd5eXm88847+vuWLl1KgwYNVMzK9Pj5\n+REcHMwbb7xBcXEx8+bNw8rKoqZYicesV69ezJgxgz179lBaWsqCBQtkmMJIZMlpIYQQQigmJb8Q\nQgghFJPCQQghhBCKSeEghBBCCMWkcBBCCCGEYlI4CCGEEEIxKRyEEEIIoZgUDkIIIYRQ7H8BK0rq\nyCrBQ6IAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAG9JJREFUeJzt3XlcVPXewPHPMAiCiIAs4kLmkguG\nPl7NpdwIFU3L5VFRocfwmmubYVfRR7uZGvhoLpV2LROFEiVNKwtXCkvxarZA5npFRJFVVDZhmOeP\nqTFS4OAyZ4b5vl+veb04M9+Z35fzYs758lvO0ej1ej1CCCGEEArYqJ2AEEIIISyHFA5CCCGEUEwK\nByGEEEIoJoWDEEIIIRSTwkEIIYQQiknhIIQQQgjFbNVOQIjarE2bNvj4+KDVais8HxkZiZ+f331t\ny9/fn8jISLp06VJt7MGDB5k1axYhISFMmzatQr4PP/ywcdvLy4uoqCgAtmzZQlRUFDqdjiZNmrBo\n0SIaNWqEXq9n2bJl7NmzB41GQ//+/Xn11Vfv6+8mhDAfUjgI8YBt2rSJRo0aqZ2G0eeff05MTAzt\n27e/4+tff/31bc/9/PPPrFq1im3btuHp6UlERARLly5l2bJl7Nq1iyNHjvD5558DEBISwtdff01g\nYOAD/T2EEOqQoQohVJKUlMTQoUN56623GDhwIP7+/vz4448AlJSUMH/+fAYOHMigQYN466230Ol0\nACQnJzNixAgGDhxIcHAwaWlpxs9MTk5m9OjRPPHEEyxZsuSO7bZo0YKNGzfi4eGhOFc3Nzfefvtt\nPD09AejSpQtnzpwBDIXG8OHDsbOzw87OjqeffvqOxYcQonaQwkEIFZ09exY/Pz/i4+OZOnUqr7/+\nOgBRUVFkZGTw5Zdfsn37do4ePcoXX3wBwMyZM3nppZeIj48nICCAhQsXGj8vOTmZTz75hE8//ZSY\nmBguX758W5u+vr7Y2dlVmlNYWBiDBw9m/Pjx/PDDDwA0bdqUrl27GmO+/fZbOnbsCMD58+fx8fEx\nvubj48O5c+fufqcIIcyaDFUI8YCFhIRUmOPg5ubGxx9/DICjoyODBg0CYMCAAcybN4+ioiISEhII\nDQ3F1tYWW1tbhg4dynfffYefnx95eXn06dMHgODgYMaOHWv87KFDh6LVavHy8qJhw4ZkZGTg7e2t\nONfRo0czfvx42rZty65du5g6dSp79uzB2dnZGPPZZ5+RmJhIbGwsAEVFRdjb2xtfr1u3LkVFRXex\np4QQlkAKByEesKrmODg7O6PRaIw/A1y7do3c3FwaNGhgjGvQoAE5OTnk5eVRv3594/N/FBZ/qFev\nnvFnrVZrHN5Q6s+9F4MHD2bNmjUcP37cWKjExMSwYcMGoqKijEMdDg4OlJSUGN9XVFSEo6NjjdoV\nQlgOGaoQQkVXr141/pyfnw+Ai4sL7u7uFV67evUq7u7uuLq6cvXqVcrLywEoLS3l4sWL9yWXgoKC\n24YYdDqdsTDZtm0bMTExREdH06xZM2NMixYtSE1NNW6npqbSqlWr+5KTEML8SOEghIqKi4vZu3cv\nAPHx8XTo0AF7e3v69u1LXFwcOp2OwsJCduzYQZ8+fWjevDmNGjVi9+7dAMTFxTF//vz7kktGRgZB\nQUHGIuDgwYPk5eXRsWNHrly5wvLly/nggw/w8vKq8L5BgwaxZcsWCgsLKSgoYMuWLTz11FP3JSch\nhPmRoQohHrC/znEAw9yE1q1b06RJE44dO8bSpUspLS1lxYoVxvekpaXx1FNPodFoCAwMZNCgQWg0\nGlauXMmsWbNYvnw5Hh4ela6eqMycOXM4fvw4WVlZ1KlTh507dxIcHExwcDDh4eFMnTqV8vJyGjRo\nwHvvvYeTkxMxMTEUFBQQGhpq/BxbW1u++OILAgMDSUlJYdiwYWg0GoYMGYK/v/+97zghhFnS6PV6\nvdpJCGGNkpKSmDdvHnv27FE7FSGEUEyGKoQQQgihmAxVCCGEEFaiqKiI2bNnk5OTQ0lJCdOmTaNf\nv341+gwZqhBCCCGsxK5du0hPT2fSpEmkp6cTGhpKfHx8jT5DehyEEEIIKzF48GDjz5cvX75tlZQS\nD7xw0KN50E3UCjb/VDsDUdvoX1c7A8sgfa7iQdBg2j8szT8N51r9AmXtBgUFkZGRwdq1a2vclkyO\nFEIIISycrY3hodTmzZtZs2YNs2bNoqYzFqRwEEIIISycYx3DozrJycnGm9+1a9cOnU5Hbm5ujdqS\nwkEIIYSwcEoLh6NHj7J+/XoAsrOzKSwsxNXVtUZtSeEghBBCWLi6toZHdYKCgsjNzWXcuHE8//zz\nzJ8/HxubmpUCsqpCCCGEsHBKehvAcNv7ZcuW3VNbUjgIIYQQFk5p4QAQGRnJsWPHKCsrY/LkyQwY\nMKBGbUnhIIQQQlg4JcMUAIcPH+b06dPExsaSl5fH8OHDpXAQQgghrI3SHoeuXbvi5+cHgLOzM0VF\nReh0utvu4FsVq5scefiQAyOG+zBwYHNCn2tCRobUTiPajeD45OOcmH6CxOcS8fXwvS3Gyc6J2P+O\nJfXlVE5MP8GIdiNUyFRdEzpNIGVaCr9O+5Xdwbtp7db6thgl+9IqvPginDhx63HmDGRn332cFZFj\nlHKyr25RuqpCq9Xi6OgIQFxcHL17965R0QAmuFeFOV05srBQQ8CTD7Pug3R8fUvYuNGF775z5P33\nL6mdmmpXjmzm3Ixjzx+jy7ouXMi/wIvdXmT8o+Pp9kG3CnH/GvovCksLefnrl3mk4SOsfWot/Tf1\nR6fXqZO4ibVp2IaDoQfpuLYjl65fYvLfJhPsF0yvj3oZY5TuS1MxqytHzpoFXl4QFnZ/4u4jc7py\npDkfo8yNue8rU185cvw2w7k2ZoSydvfu3cv777/P+vXrqV+/fo3aUtTjUFBQQGpqKqmpqRQWFtao\nAXNy+LAjzZqV4utbAsDIkfl8/109btwwn+LG1ErLSxm3bRwX8i8AsO/cPto0bFMhxk5rx9gOY1n0\n7SIATuWcwn+jv9UUDQDtPdpzOuc0l64bDkr7/7OfDp4dKsQo2ZdWydMTpk6FhQvvT1wtJsco5WRf\nVaR0OSZAYmIia9euZd26dTUuGqCaOQ6//PILixYt4tq1a7i6uqLX68nMzMTLy4v58+fTpo1lHRTP\nn7ejWbNS43a9enpcXHRcuGBH+/YlKmamnowbGWTcyABAq9EyodMEdpzcUSGmtVtrikqLmNBpAhM6\nTeDGzRuE7wtn33/2qZGyKg5fPExLt5b4eviSkpXCyPYj2XN2T4UYJfvSKoWFwYYNkJ9/f+JqMTlG\nKSf7qiKlcxyuX79OZGQkGzZswMXF5a7aqrJwWLx4MYsWLaJly5YVnk9JSeGNN94gJibmrhpVS3GR\nBnv7it049vblFBVaZ4X6Zy92e5H5vedzJvcMw2KHVXjNpa4LLnVdKC4rxvc9Xwa0HEDc6DharGxB\nXnGeShmb1uUblwnfF86PU37kesl1CkoL6LOhzx1jq9qXVsfZGZ59FnyrmeuhNK6Wk2OUcrKvKlJa\nOOzatYu8vDxefvll43MRERE0btxYcVtVDlXo9frbigYAX19fdDrL66Z2cCynpKTiH1VxsQ2O9cxo\nkFMlq5JW4b7UnRVJK/g+9Hvq2tY1vpZfko/WRsuao2sA2H12NxfyL9C9aXe10jW5To06MbfXXFqs\nbIFbpBuz985mZ9DOO8ZWtS9rtenTb01yHPZ7wTRkCCQlQU5O1e9VGlfLyTFKOdlXFSkdqhgzZgwH\nDx5k06ZNxkdNigaopnDo2LEjU6ZMIS4ujv3797N//362bNnCxIkTeeyxx2rUkDlo0aKUCxdulWXX\nr9uQn2/DQw/dVDErdbV1b8uTDz9p3N6cvBlne+cKY/Np+WkA1Le7NRamK9dZ1RyHJx9+ku/Tvift\nmmFfxKbE4uvpi7ujuzFGyb6s1d59F9q1Mzw++8zw3JAhsGtX9e9VGlfLyTFKOdlXFSldVQFw6tQp\nAgICiI6Ovqu2qiwc5syZw8SJE7l06RIJCQkkJCSQmZnJjBkzmDlz5l01qKZu3Qq5dKkOx44a/gPc\nsMGVvv0KcHS0zgoVwMPRg43DN+Lt5A1Az2Y9qaOtw7m8c8aY/JJ84s/EE9bTMNP9sSaP0dylOf9O\n/7cqOavhZM5JejbriZuDGwCDWw/m8vXLZBfeWjqoZF9anY4dDT0Q9yuulpNjlHKyrypSWjgUFhay\ncOFCevTocddtWdVyTICkJAcWL/KkqEiDj08pS97KwMND/f+c1VqOCTCt6zSmd52OjcaGkrIS5uyb\nw09XfiI+OJ5H1zwKgLeTNxuHb6SVWyvyi/OZtWcWe87tqeaTa5cFfRYw7tFx6PV6rpVc45X4V7ip\nu8nCfgsJjAkE7rwvvzrzlSr5msVyzPx86NoVTp269dywYTB0KEycWHWciZjTckww32OUOTLnfWXq\n5ZjrfjCcayd1rrrdsrIyysrKWLduHa6urgQHB9e4LasrHMyVmoWDqJ3MonCwAOZWOIjawdSFQ8wv\nhnPt+EeVtbt69eq7Lhys9zJbQgghRC1Rk5tc3SspHIQQQggLJ4WDEEIIIRRTetXI+0EKByGEEMLC\nKe1xSE5OJiIigvT0dGxtbYmPj2f16tU1uoqkTI40EzI5UtxvMjlSGZkcKR4EU0+OTMkynGt9PR58\nu9LjIIQQQli4mgxVLF68mJ9++gmNRkN4eDh+fn41aksKByGEEMLCKR2qOHLkCKmpqcTGxnL27FnC\nw8OJjY2tUVuKbqsthBBCCPOl9MqRhw4dIiAgAICWLVuSn5/PjRs3atSWFA5CCCGEhVNaOGRnZ+Pq\n6mrcdnNzIysrq0ZtPfChCo3MjVREf0btDCzHoktqZ2AhXlc7AcugGa92BpbD67/UzsByXAkzbXt1\n7nJO5N2sj5AeByGEEMLSFf7+qIanpyfZ2bduzpeZmYmHh0eNmpLCQQghhLB0CguHxx9/nPj4eABS\nUlLw9PTEycmpRk3JqgohhBDC0hUrC+vcuTO+vr4EBQWh0WhYsGBBjZuSwkEIIYSwdAp6G/4QFnZv\nEzBkqEIIIYSwdAqHKipz5MgRevTowYEDB6qNlR4HIYQQwtLdQ9Fw4cIFPvroIzp37qwoXnochBBC\nCEtXjOJ5Dn/l4eHBO++8Q/369RXF1/7CYfZsOHECfv0VPv0UvLzuHPfaa5CSAqmpsGyZaXM0A19+\nU58hUx9i4KTmvPCmN9cLqv7TSDhSjzaDH+HiFevqtCovg6Ox7mz8+yMU5Fb9u+em2bFpcmsyfnMw\nUXZmavr0qu8kNWUKJCfDb7/BV19B06amy80c2NeDadGwsbTquCdCICIZVqbC1I1ga2ea/MzEwJZD\n2ffscRKf+5WdQYm0dfet8HoX7+4cfO5EhcfFV27Szr2DShmb2D0MVTg4OKDVahXH1+7CISAAQkOh\nWzdo3x5OnYL/+7/b4wID4e9/h8cfh1at4G9/g+Bg0+erkkuZtixc48G//plO/LrzNPEq5e0o90rj\ni4o1LPvIHZf6OhNmaR4OvNME27rVXzBFXw5J0V44OJeZICsz1qgRPP985a/36AFhYfDEE9C2raHI\nt7bC/fXvITu16pimvhC8HCIC4aWHwEYLQ14zTX5moJFTY1YNimLql+Po9VF7tv32MUv7v18h5ujl\nwzzxUTvj48Wv/ofkzOOcyE5WKWsTU1g4bN26ldGjR1d4JCYm1qip2l04PPooHD0K164Ztvfvhw53\nqD7794ft2+HqVSgthXffhZEjTZurivYddqJHp0IaexpOcv898BpfH6x8Xe/qmIY87X+Neg7lpkrR\nbPgNzaHTMznVxp38pgGuzUqo71HNf5G13cqV8Oablb+emQkhIYbvHsC+fdCmjWlyMxcfTob9/6o6\nxtcfUvZD7kXD9lcr4DHrOUaVlZcy5YuxnMo5AcCRiwdp09C3yve86b+SBQmvmiI986BwqGLUqFFs\n2bKlwqNXr141auquC4drf5yMzVlCAvTsCU2agFYLw4fDnj23x+n1htf/cOOGoefBSpxPr4OP960T\nnI93KTlXbcm/fvufx8n/2PH9cUcmDM8zZYpmw6Nl9d/Monwtv+11pfOI7Gpja7XAQHB2hq1bK485\nexYOHTL8XLcujB8PO3aYJj9zceZw9TF6vaGX4Q8lN8DLeo5R2YVZHDgfb9z2bzGIHy4nVRof0GIw\nxWVFJKUfNEV65uEeV1XUxF0XDjNmzLifeTwYx49DVBScPw85OdC7NyxZcnvcnj0wZoyhwHBwgEmT\nDAcxK1FUYoPdny50bldHj0ajp6ik4p+HXg8L3vFi3tRM6ljX1IYa+fdmD/yG5mDnaH09MkZ16xqG\nHKZPVxYfEQFXrkCDBhAZ+WBzs0Qp++DR/oYhCxst9J8OdaznGPVnvXz8mfy3V5if8EqlMdO7vsZ7\nR+8wLF2b3UPhkJCQQEhICImJiSxfvpzQ0NAq46s8/MfExFT62pUrV+4uwwdt+nT4o6hZsgSeesow\nITI3F8LDITra8NyfxcfDqlWwdy/k5cG2bdCsmelzN6Hoz12I/twFgDpaPR6ut8biS25q0Os1ONat\neOKL/aoBrXxu0sX3LqfuWoH0ZEdKbmhp0f262qmY3p+/e3q94bt27pyy9/7jH4bv58yZhu9hjx4P\nLk+19Z8OA37fT7Fz4Ohn1b8n/QREvQAzNkNZCXyzHgqvPtg8zdCgVs+wyH81wduGGIct/srbqQlt\n3Tuw/z9fmzg7ld1Db0Pfvn3p27ev4niNvopbY/Xv358ePXrg6el522vbt29n3759ClpQ8faYq1dD\nfj7Mm2fYbtkSfvoJqrsud0gI9OtnmFhpKireHTPmiwb8+xdHVsy5DBiGIyb+b1MORlc86E+a34Tk\n0/bY/N4RkZuvpYGTjhVzLtO9Y5HJ8jWHu2Nu/PsjjIw8Rz23ipMfD2/yJPVYfTQ2hq/VzQIttvbl\ndA3KpGVP0xYTc3ubtLmKkpPB3f3WaopGjSAjwzAJ8uzZW3Fdu4KNDST93u3s5ATXr4OLi+G7awrj\nTNNMldwfguVn4FkF90UGaNsLRv4TFvk/2Lz+Qs27Y/b2eZLlgR8yNi6Q07m/VRoX4vc8T/j0Y/IX\nY02Y3e2uhN3l7Srv1pzfz7VLHny7VfY4vPvuu7z55pvMmzcPO7uKS3+SkiofXzIbJ08axkwXLYKi\nIkNPQ/IdZtj26QMLFsDAgWBvD6+8YnhYiYDuBayKdufcxTq0aFrKhu2uDOlz+xyWdW+kV9j2n/Aw\nGyPSaOpl5SsH/qR7SCbdQzKN2/GRTen4dA6N2pqusDILf52ErNeDt/ftcW3bGlZV9OplmMQ8dKhh\nSbSpigZL4dUSXoqDN/tCSQE8HQ7fblA7K5NxsHVgReBHTNgxrMqiAcDXs2OlvRG12j30OJSVlTF3\n7lwuXLiATqfjtddeo0uXLpXGV1k4PPLII7z//vvY2t4eNnv27LvP0lTWrjXM0P75Z9DpDP/xPPec\n4bVhwwwHqYkTITHRsFTz9GkoL4e334ZvvlE3dxPyci9jwbQrTF/YGJ1OQ/uWJcybajj5/XyyLis3\nNeTDN9Or+ZTaryhfS/zSW0NYu5c2RaOFAa9eZO/bTXj6jWqW1AmDP3/3Nm2C1q0NPQ4ajWF1xejR\namdoOs3/C6Z/DNo6oLWFpb+f8Ga1gxZdYdRCwxLMK2fh2A5Y8pOhCDv0CSRuVDd3Ewps9QwNHT14\nb3DF4fOgTwcSM+JL+mx41PhcY6empGT+ZOoU1XcPhcOOHTtwcHDgk08+4fTp08yZM4e4uLhK46sc\nqrgv1ByqsCQqDlVYGnMYqrAEqg5VWBJzGKqwEGoOVVgakw9VhPx+rt1U83ZLS0spLy/H3t6enJwc\nxowZw969eyuNl7nxQgghhKW7hx6HOnVuza2JiopiyJAhVcZL4SCEEEJYOoWFw9atW9n6l2urvPDC\nC/Tq1YuYmBhSUlJYu3ZtlZ8hhYMQQghh6RSukh81ahSjRo267fmtW7eyf/9+3nvvvQo9EHcihYMQ\nQghh6e5hqCItLY3NmzcTHR2Nvb19tfFSOAghhBCW7h4Kh61bt3L16lWe/9MN6T788MPbLsPwBykc\nhBBCCEt3D4XDzJkzmTlzpuJ4KRyEEEIIS3cPdwLIycnhH//4ByUlJZSWljJnzhw6duxYaXztvq22\nEEIIYQ3u4SZXO3fu5JlnnmHTpk3MnDmTlStXVhkvPQ5CCCGEpbuHoYrn/riiMnD58mW8vLyqjH/w\nV44UQgghhFnLyspiypQpFBQUEBUVVWXxIIWDEEIIYSWqugAUwDfffENUVBTr16+v9DOkcBBCCCGs\n2JEjR2jTpg0NGjQAoFu3blXeAVsmRwohhBBWbPfu3Wzfvh2AkydP4u3tXWW89DgIIYQQViw3N5fZ\ns2dTUFDAzZs3mTt3Lp06dao0XgoHIYQQQigmQxVCCCGEUEwKByGEEEIoZnWFw+LFixkzZgxBQUH8\n/PPPaqdj1k6dOkVAQADR0dFqp2LWIiMjGTNmDCNHjmT37t1qp2OWioqKeOmllwgODmbUqFEcOHBA\n7ZTMWnFxMQEBAWzbtk3tVMxWUlIS3bt3JyQkhJCQEBYuXKh2SlbDqq4ceeTIEVJTU4mNjeXs2bOE\nh4cTGxurdlpmqbCwkIULF9KjRw+1UzFrhw8f5vTp08TGxpKXl8fw4cMZMGCA2mmZnQMHDtChQwcm\nTZpEeno6oaGh9OvXT+20zNaaNWuMS+NE5R577DFWrVqldhpWx6oKh0OHDhEQEABAy5Ytyc/P58aN\nGzg5Oamcmfmxs7Nj3bp1rFu3Tu1UzFrXrl3x8/MDwNnZmaKiInQ6HVqtVuXMzMvgwYONPyu5pK01\nO3v2LGfOnKFv375qpyLEHVnVUEV2djaurq7GbTc3N7KyslTMyHzZ2tpSt25dtdMwe1qtFkdHRwDi\n4uLo3bu3FA1VCAoKIiwsjPDwcLVTMVsRERHMnj1b7TQswpkzZ5gyZQpjx47lu+++Uzsdq2FVPQ5/\nJStRxf2yd+9e4uLiqrxMq4DNmzdz4sQJZs2axc6dO9FoNGqnZFY+++wzOnXqRLNmzdROxew1b96c\nGTNmMGjQINLS0nj22WfZvXs3dnZ2aqdW61lV4eDp6Ul2drZxOzMzEw8PDxUzErVBYmIia9eu5YMP\nPqB+/fpqp2OWkpOTadiwId7e3rRr1w6dTkdubi4NGzZUOzWzkpCQQFpaGgkJCWRkZGBnZ0ejRo3o\n2bOn2qmZHS8vL+MQmI+PD+7u7ly5ckWKLhOwqsLh8ccfZ/Xq1QQFBZGSkoKnp6fMbxD35Pr160RG\nRrJhwwZcXFzUTsdsHT16lPT0dObOnUt2djaFhYUVhg2FwYoVK4w/r169miZNmkjRUImdO3eSlZXF\nxIkTycrKIicnR+bOmIhVFQ6dO3fG19eXoKAgNBoNCxYsUDsls5WcnExERATp6enY2toSHx/P6tWr\n5eT4F7t27SIvL4+XX37Z+FxERASNGzdWMSvzExQUxNy5cxk3bhzFxcXMnz8fGxurmmIl7jN/f3/C\nwsLYt28fpaWlvP766zJMYSJyyWkhhBBCKCYlvxBCCCEUk8JBCCGEEIpJ4SCEEEIIxaRwEEIIIYRi\nUjgIIYQQQjEpHIQQQgihmBQOQgghhFDs/wEdw9RYqlwz3QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAG/dJREFUeJzt3XlYVHX7+PH3OMjmBgqiqDyGmhFu\nj1+XtFIjRNxy6VFJocslza2N1AD7ad9QE3zqUcnULBOVX6K0aGXiSo+WYpotkKloIqLIDsomjPP9\nY2qMFDyIzplh7td1nctZ7nM+t+diztzz+XzOORq9Xq9HCCGEEEKBemonIIQQQgjLIYWDEEIIIRST\nwkEIIYQQiknhIIQQQgjFpHAQQgghhGJSOAghhBBCMRu1ExCiLuvYsSMeHh5otdpKr0dGRtKlS5d7\n2paPjw+RkZH06NHjjrGHDh1i7ty5BAUFMXPmzEr5PvDAA8bnbm5uREdHA5CSkkJoaCh5eXk4OTmx\ndOlS2rdvj16v5+2332bPnj1oNBoGDhzIq6++ek//b0II8yGFgxD32aZNm2jRooXaaRh98cUXxMTE\n8PDDD9/2/V27dt3ymk6nY/bs2QQHB+Pn58f27dvZtm0boaGh7Ny5k6NHj/LFF18AEBQUxK5du/D3\n97+v/w8hhDpkqEIIlSQmJjJ8+HCWLl3KoEGD8PHx4ccffwSgrKyMBQsWMGjQIAYPHszSpUvR6XQA\nJCUlMXr0aAYNGkRgYCBpaWnGbSYlJTF27Fgee+wx3nrrrdu26+npycaNG3F1dVWc64kTJ7CxscHP\nzw+AESNGEBoaChgKjVGjRmFra4utrS1PPfXUbYsPIUTdIIWDECo6e/YsXbp0IT4+nhkzZvDGG28A\nEB0dTUZGBl999RWfffYZx44d48svvwQgODiYl156ifj4eHx9fQkPDzduLykpiY8//phPPvmEmJgY\nLl++fEub3t7e2NraVpnTnDlzGDJkCBMmTOCHH34A4LfffsPd3Z2QkBAGDRrEtGnTjAXL+fPn8fDw\nMK7v4eHBuXPnar1vhBDmSQoHIe6zoKAg/P39jcv48eON7zk6OjJ48GAA/Pz8OHnyJCUlJSQkJDB2\n7FhsbGywt7dn+PDhfPvtt/z+++/k5eXRv39/AAIDA4mKijJub/jw4Wi1Wtzc3GjWrBkZGRk1ynXs\n2LE899xz7Ny5kwkTJjBjxgwKCwspLCzk+++/55lnnuHrr7/Gy8uLefPmAVBSUoKdnZ1xG/b29pSU\nlNz1/hJCmDeZ4yDEfVbdHIfGjRuj0WiMjwEKCwvJzc2lSZMmxrgmTZqQk5NDXl4ejRo1Mr5uY2OD\njc3Nj3GDBg2Mj7VarXF4Q6m/9l4MGTKE1atXc+LECRo1aoSXlxddu3YFYNKkSaxdu5bi4mIcHBwo\nKyszrldSUoKjo2ON2hVCWA7pcRBCRfn5+cbHBQUFADg5OeHi4lLpvfz8fFxcXHB2diY/P58bN24A\nUF5ezsWLF+9JLkVFRbcMMeh0OmxsbHB3d+fq1avG1/88S0Sr1eLp6UlqaqrxvdTUVNq3b39PchJC\nmB8pHIRQUWlpKXv37gUgPj6eTp06YWdnx4ABA4iLi0On01FcXMz27dvp378/bdu2pUWLFuzevRuA\nuLg4FixYcE9yycjIICAgwFgEHDp0iLy8PLp27UqfPn3Iysri0KFDAMTGxtK9e3fs7OwYPHgwW7du\npbi4mKKiIrZu3crQoUPvSU5CCPMjQxVC3GdBQUG3XMchMDCQDh060KpVK44fP86yZcsoLy9n+fLl\nxnXS0tIYOnQoGo0Gf39/Bg8ejEajYcWKFcydO5d33nkHV1fXKs+eqEpoaCgnTpwgKyuL+vXrs2PH\nDgIDAwkMDCQsLIwZM2Zw48YNmjRpwnvvvUfDhg0BePfdd1m4cCHXr1/H3d2dpUuXAuDv709ycjIj\nR45Eo9EwbNgwfHx87sGeE0KYI41er9ernYQQ1igxMZHXX3+dPXv2qJ2KEEIoJkMVQgghhFBMhiqE\nEEIIK1FSUkJISAg5OTmUlZUxc+ZMnnjiiRptQ4YqhBBCCCuxc+dO0tPTmTp1Kunp6UyePJn4+Pga\nbUN6HIQQQggrMWTIEOPjy5cv4+bmVuNt3PfCQY/mfjdRJ9T7X7UzEHWN/g21M7AM0ucq7gcNpv3D\n0vyv4btWv1BZuwEBAWRkZLBmzZoatyWTI4UQQggLZ1PPsCi1ZcsWVq9ezdy5c6npjAUpHIQQQggL\n51jfsNxJUlKS8eZ3Xl5e6HQ6cnNza9SWFA5CCCGEhVNaOBw7doz169cDkJ2dTXFxMc7OzjVqSwoH\nIYQQwsLZ2xiWOwkICCA3N5fx48czbdo0FixYQL16NSsF5KwKIYQQwsIp6W0Aw23v33777Vq1JYWD\nEEIIYeGUFg4AkZGRHD9+nIqKCp5//nn8/Pxq1JYUDkIIIYSFUzJMAXDkyBHOnDlDbGwseXl5jBo1\nSgoHIYQQwtoo7XHo2bMnXbp0AaBx48aUlJSg0+luuYNvdaxucuSRww6MHuXBoEFtmTypFRkZUjuN\n9hrNiedPcHLWSQ5OOoi3q/ctMQ1tGxL7r1hSX07l5KyTjPYarUKm6prYbSLJM5P5deav7A7cTYem\nHW6JUbIvrcKLL8LJkzeXlBTIzr77OCsixyjlZF/dpPSsCq1Wi6OjIwBxcXH069evRkUDmOBeFeZ0\n5cjiYg2+Tz7Aug/S8fYuY+NGJ7791pG1ay+pnZpqV45s07gNx6cdp8e6HlwouMCLvV9kQucJ9P6g\nd6W494e/T3F5MS/vepkHmz3ImqFrGLhpIDq9Tp3ETaxjs44cmnyIrmu6cunqJZ7/n+cJ7BLI4x89\nboxRui9NxayuHDl3Lri5wZw59ybuHjKnK0ea8zHK3Jj7vjL1lSMnfGr4ro0ZrazdvXv3snbtWtav\nX0+jRo1q1JaiHoeioiJSU1NJTU2luLi4Rg2YkyNHHGnTphxv7zIAnn66gO++bcC1a+ZT3Jha+Y1y\nxn86ngsFFwDYd24fHZt1rBRjq7XlmU7PsPi/iwE4nXMan40+VlM0ADzs+jBncs5w6arhoLT/9/10\nat6pUoySfWmVmjeHGTMgPPzexNVhcoxSTvZVZUpPxwQ4ePAga9asYd26dTUuGuAOcxx++eUXFi9e\nTGFhIc7Ozuj1ejIzM3Fzc2PBggV07GhZB8Xz521p06bc+LxBAz1OTjouXLDl4YfLVMxMPRnXMsi4\nlgGAVqNlYreJbD+1vVJMh6YdKCkvYWK3iUzsNpFr168Rti+Mfb/vUyNlVRy5eIR2Tdvh7epNclYy\nTz/8NHvO7qkUo2RfWqU5c2DDBigouDdxdZgco5STfVWZ0jkOV69eJTIykg0bNuDk5HRXbVVbOCxZ\nsoTFixfTrl27Sq8nJyfz5ptvEhMTc1eNqqW0RIOdXeVuHDu7G5QUW2eF+lcv9n6RBf0WkJKbwsjY\nkZXec7J3wsneidKKUrzf88avnR9xY+PwXOFJXmmeShmb1uVrlwnbF8aP03/katlVisqL6L+h/21j\nq9uXVqdxY3j2WfC+w1wPpXF1nByjlJN9VZnSwmHnzp3k5eXx8ssvG1+LiIjA3d1dcVvVDlXo9fpb\nigYAb29vdDrL66Z2cLxBWVnlP6rS0no4NjCjQU6VrExcicsyF5YnLue7yd9hb2NvfK+grABtPS2r\nj60GYPfZ3VwouMAjrR9RK12T69aiG/Mfn4/nCk+aRjYlZG8IOwJ23Da2un1Zp82adXOS48g/CqZh\nwyAxEXJyql9XaVwdJ8co5WRfVaZ0qGLcuHEcOnSITZs2GZeaFA1wh8Kha9euTJ8+nbi4OPbv38/+\n/fvZunUrU6ZMoVevXjVqyBx4epZz4cLNsuzq1XoUFNTjH/+4rmJW6nrI5SGefOBJ4/MtSVtobNe4\n0th8WkEaAI1sb46F6W7orGqOw5MPPMl3ad+RVmjYF7HJsXg398bF0cUYo2Rf1mmrVoGXl2H5/HPD\na8OGwc6dd15XaVwdJ8co5WRfVab0rAqA06dP4+vry+bNm++qrWoLh9DQUKZMmcKlS5dISEggISGB\nzMxMZs+eTXBw8F01qKbevYu5dKk+x48ZfgFu2ODMgCeKcHS0zgoVwNXRlY2jNtKyYUsA+rbpS31t\nfc7lnTPGFJQVEJ8Sz5y+hpnuvVr1oq1TW75P/16VnNVwKucUfdv0palDUwCGdBjC5auXyS6+eeqg\nkn1pdbp2NfRA3Ku4Ok6OUcrJvqpMaeFQXFxMeHg4ffr0ueu2rOp0TIDERAeWLG5OSYkGD49y3lqa\ngaur+r+c1TodE2Bmz5nM6jmLepp6lFWUEbovlJ+u/ER8YDydV3cGoGXDlmwctZH2TdtTUFrA3D1z\n2XNuzx22XLcs7L+Q8Z3Ho9frKSwr5JX4V7iuu074E+H4x/gDt9+XX6d8rUq+ZnE6ZkEB9OwJp0/f\nfG3kSBg+HKZMqT7ORMzpdEww32OUOTLnfWXq0zHX/WD4rp3avfp2KyoqqKioYN26dTg7OxMYGFjj\ntqyucDBXahYOom4yi8LBAphb4SDqBlMXDjG/GL5rJ3RW1m5UVNRdFw7We5ktIYQQoo6oyU2uaksK\nByGEEMLCSeEghBBCCMWUXjXyXpDCQQghhLBwSnsckpKSiIiIID09HRsbG+Lj44mKiqrRVSRlcqSZ\nkMmR4l6TyZHKyORIcT+YenJkcpbhu9bb9f63Kz0OQgghhIWryVDFkiVL+Omnn9BoNISFhdGlS5ca\ntSWFgxBCCGHhlA5VHD16lNTUVGJjYzl79ixhYWHExsbWqC1Ft9UWQgghhPlSeuXIw4cP4+vrC0C7\ndu0oKCjg2rVrNWpLCgchhBDCwiktHLKzs3F2djY+b9q0KVlZWTVq674PVWhkbqQi+hS1M7Aciy+p\nnYGFeEPtBCyDZoLaGVgOt3+qnYHluDLHtO3Vv8s5kXdzfoT0OAghhBCWrviP5Q6aN29OdvbNm/Nl\nZmbi6upao6akcBBCCCEsncLC4dFHHyU+Ph6A5ORkmjdvTsOGDWvUlJxVIYQQQli6UmVh3bt3x9vb\nm4CAADQaDQsXLqxxU1I4CCGEEJZOQW/Dn+bMqd0EDBmqEEIIISydwqGKqhw9epQ+ffpw4MCBO8ZK\nj4MQQghh6WpRNFy4cIGPPvqI7t27K4qXHgchhBDC0pWieJ7D37m6uvLuu+/SqFEjRfF1v3AICYGT\nJ+HXX+GTT8DN7fZx8+ZBcjKkpsLbb5s2RzPw1TeNGDbjHwya2pYXFrXkalH1fxoJRxvQcciDXLxi\nXZ1WNyrgWKwLG597kKLc2//fNz73IJ+/3ta47P53axNnaWZmzar+TlLTp0NSEvz2G3z9NbS2sv1l\n1wBmboaN5dXHPRYEEUmwIhVmbAQbW9PkZyYGtRvOvmdPcHDSr+wIOMhDLt6V3u/R8hEOTTpZabn4\nynW8XDqplLGJ1WKowsHBAa1Wqzi+bh/1fX1h8mTo0QMKC+Gtt+Df/4agoMpx/v7w3HPQqxcUFcGe\nPRAYCJs3q5O3iV3KtCF8tSufrryAe/MKlq5z4T/RLiyYmXnb+JJSDW9/5IJTI52JM1XfgXdb0eyB\nO5f1Ixedv//JWIIWLWDatKrf79MH5swxfEbz8+GddwyF+7hxpstRbW98Bye+rD6mtTcEvgNh/4Tc\nizArBobNg88XmSZHlbVo6M7KwdEM//hRTuecZGK3GSwbuJbhHz9mjDl2+QiPfeRlfN69RS+WPBnF\nyewkNVI2PYVFw7Zt29i2bVul11544QUef/xxxU3V7R6Hzp3h2DFD0QCwfz90uk31OXAgfPaZ4cBV\nXg6rVsHTT5s2VxXtO9KQPt2KcW9eAcC/BhWy61DV5/VGxTTjKZ9CGjjcMFWKZqPL8By6jchROw3L\nsWIFLKrmyy0z01DI5+cbnu/bBx07miY3c/Hh87D//epjvH0geb+haAD4ejn0sp5jVMWNcqZ/+Qyn\nc04CcPTiITo28652nUU+K1iY8Kop0jMPCocqxowZw9atWystNSkaoBaFQ+GfX8bmLCEB+vaFVq1A\nq4VRowy9CX+n1xve/9O1a9C+vcnSVNv59Pp4tLzZTerRspycfBsKrt7653Hqd1u+O+HIxFF5pkzR\nbLi2UzaIeHBdC7b/v3+wK6I1mSn29zkrM+XvD40bw99+3VRy9iwcPmx4bG8PEybA9u2myc9cpBy5\nc4xeD/X+cowquwZu1nOMyi7O4sD5eONzH8/B/HA5scp4X88hlFaUkJh+yBTpmYdanlVRE3ddOMye\nPfte5nF/nDgB0dFw/jzk5EC/fobhir/bs8fQNdqqFTg4wNSphoOYlSgpq4ftXy50bltfj0ajp6Ss\n8p+HXg8L33Xj9RmZ1K/bg1y10qFfPp38cxkRnspDPvnsj2rF9eK63bl3C3t7w5DDrFnK4iMi4MoV\naNIEIiPvb26WKHkfdB5oGLKop4WBs6C+9Ryj/upxDx+e/59XWJDwSpUxs3rO471j/zZhVmagFoVD\nQkICQUFBHDx4kHfeeYfJkydXG1/t4T8mJqbK965cuXJ3Gd5vs2bBn0XNW2/B0KGGCZG5uRAWZpi3\nMHRo5XXi42HlSti7F/Ly4NNPoU0b0+duQpu/cGLzF04A1NfqcXWuML5Xdl2DXq/B0b7yUETs101o\n73GdHt53OXXXSvR59ubckLY9r/Hzl83ITHGgdZciFbMygb9+9vR6w2ft3Dll6772muHzGRxs+Bz2\n6XP/8lTbwFng98d+ig2FY5/feZ30kxD9AszeAhVl8M16KM6/v3maocHtR7DYJ4rAT4cZhy3+rmXD\nVjzk0on9v+8ycXYqq0Vvw4ABAxgwYIDi+Gp/Bm3YsIFTp06Rl5d3y1JRUVHdqupZtQq8vAxLz56w\na5ehaACIjYX+/W+/3rJlhnX69jX88vnlF9PlrILA4fnsev88u94/T8DQfFIv3ZyhfT69Pq5NK2jc\nsHLhsO9IQ/YdacCjEzx5dIInl7Nt+NdLHhz5ycHU6Zut8lINBRmV722rvwH1tHd56zpL8tfP3o0b\n8OKLcPmyYQHDv+3aVV6nZ0/o3dvwWKeD1avhkUcMPQ911Z5VMNfLsCgpGv50cCOEdIbXe0DaL4bF\nivTzeJJwnxWMi/PjpyvHq4zz9RzKf1P3cENvZXOwanE6Zk1V2+OwatUqFi1axOuvv46tbeVTfxIT\nqx5fMhunThnGTBcvhpISQ09D0m1m2PbvDwsXwqBBYGcHr7xiWKyE7yNFrNzswrmL9fFsXc6Gz5wZ\n1v/WOSzr3kyv9Nxn4gNsjEijtZuZFpEqKMqtz66lbRgy/wKN3cq5lOxI2TUtLp5W1kvz90nIej20\nbHlr3EMPGc6qePxxwyTm4cMNp0QXFJgmT0vh1g5eioNFA6CsCJ4Kg/9uUDsrk3GwcWC5/0dM3D6S\nM7m/VRvr3bxrlb0RdVotehwqKiqYP38+Fy5cQKfTMW/ePHr06FFlfLWFw4MPPsjatWuxsbk1LCQk\n5O6zNJU1awwztH/+2fBrJiMDJk0yvDdypOEgNWUKHDwIp0/DmTOGX0r/+Q988426uZuQm0sFC2de\nYVa4OzqdhofblfH6DEN3+8+n7FmxqRkfLkq/w1bqvpICLfHLbg5h7V7WGo0W/F69yN7/tOKpN1Nx\ncr9Oz4BMDrzrjl6vwdZRxxOzL2FrhWegVOmvn71Nm6BDB0hMBI3GcHbF2LFqZ2g6bf8Js/4/aOuD\n1gaW/fGFN9cLPHvCmHCI8IcrZ+H4dnjrJ0MRdvhjQw+ElfBvP4Jmjq68N6Ty8HnAJ4OIGf0V/Td0\nNr7m3rA1yZk/mTpF9dWicNi+fTsODg58/PHHnDlzhtDQUOLi4qqM1+j11V2Z5R7QaO7r5uuMFLUT\nsByLL6mdgWWY30/tDCzEeLUTsBxu/1Q7A8txZY6JhyeD/viu3VTzdsvLy7lx4wZ2dnbk5OQwbtw4\n9u7dW2W8zI0XQgghLF0tehzq1785Lys6Opphw4ZVGy+FgxBCCGHp7sGVI2NiYkhOTmbNmjXVbkMK\nByGEEMLSKZx/PWbMGMaMGXPL69u2bWP//v289957lXogbkcKByGEEMLS1WKoIi0tjS1btrB582bs\n7OzuGC+FgxBCCGHpalE4bNu2jfz8fKb95YZ0H3744S2XYfiTFA5CCCGEpatF4RAcHExwcLDieCkc\nhBBCCEtXi2vM5eTk8Nprr1FWVkZ5eTmhoaF07dq1yngru/OOEEIIUQfV4iZXO3bsYMSIEWzatIng\n4GBWrFhRbbz0OAghhBCWrhZDFZP+vKIycPnyZdzc3KqNv/9XjhRCCCGEWcvKymL69OkUFRURHR1d\nbfEghYMQQghhJaq7ABTAN998Q3R0NOvXr69yG1I4CCGEEFbs6NGjdOzYkSZ/3M6+d+/e1d4BWyZH\nCiGEEFZs9+7dfPbZZwCcOnWKli1bVhsvPQ5CCCGEFcvNzSUkJISioiKuX7/O/Pnz6datW5XxUjgI\nIYQQQjEZqhBCCCGEYlI4CCGEEEIxqysclixZwrhx4wgICODnn39WOx2zdvr0aXx9fdm8ebPaqZi1\nyMhIxo0bx9NPP83u3bvVTscslZSU8NJLLxEYGMiYMWM4cOCA2imZtdLSUnx9ffn000/VTsVsJSYm\n8sgjjxAUFERQUBDh4eFqp2Q1rOrKkUePHiU1NZXY2FjOnj1LWFgYsbGxaqdlloqLiwkPD6dPnz5q\np2LWjhw5wpkzZ4iNjSUvL49Ro0bh5+endlpm58CBA3Tq1ImpU6eSnp7O5MmTeeKJJ9ROy2ytXr3a\neGqcqFqvXr1YuXKl2mlYHasqHA4fPoyvry8A7dq1o6CggGvXrtGwYUOVMzM/tra2rFu3jnXr1qmd\nilnr2bMnXbp0AaBx48aUlJSg0+nQarUqZ2ZehgwZYnys5JK21uzs2bOkpKQwYMAAtVMR4rasaqgi\nOzsbZ2dn4/OmTZuSlZWlYkbmy8bGBnt7e7XTMHtarRZHR0cA4uLi6NevnxQN1QgICGDOnDmEhYWp\nnYrZioiIICQkRO00LEJKSgrTp0/nmWee4dtvv1U7HathVT0Ofydnoop7Ze/evcTFxVV7mVYBW7Zs\n4eTJk8ydO5cdO3ag0WjUTsmsfP7553Tr1o02bdqonYrZa9u2LbNnz2bw4MGkpaXx7LPPsnv3bmxt\nbdVOrc6zqsKhefPmZGdnG59nZmbi6uqqYkaiLjh48CBr1qzhgw8+oFGjRmqnY5aSkpJo1qwZLVu2\nxMvLC51OR25uLs2aNVM7NbOSkJBAWloaCQkJZGRkYGtrS4sWLejbt6/aqZkdNzc34xCYh4cHLi4u\nXLlyRYouE7CqwuHRRx8lKiqKgIAAkpOTad68ucxvELVy9epVIiMj2bBhA05OTmqnY7aOHTtGeno6\n8+fPJzs7m+Li4krDhsJg+fLlxsdRUVG0atVKioYq7Nixg6ysLKZMmUJWVhY5OTkyd8ZErKpw6N69\nO97e3gQEBKDRaFi4cKHaKZmtpKQkIiIiSE9Px8bGhvj4eKKiouTL8W927txJXl4eL7/8svG1iIgI\n3N3dVczK/AQEBDB//nzGjx9PaWkpCxYsoF49q5piJe4xHx8f5syZw759+ygvL+eNN96QYQoTkUtO\nCyGEEEIxKfmFEEIIoZgUDkIIIYRQTAoHIYQQQigmhYMQQgghFJPCQQghhBCKSeEghBBCCMWkcBBC\nCCGEYv8HCbAJi1J8pwIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAHANJREFUeJzt3Xl8jPfe//HXZCIbiYQsYi/VILY6\njVZVBSGx5Ki2CCfcyq21tXpyaG13OE21QqmlSn9aRUKlUi0tFYK4Y296K03q2EVEIquQVTLm98fU\nkEZiIsw1Yz7Px2MeZvnOfN+uR3LNJ9/v97oulVar1SKEEEIIYQArpQMIIYQQwnxI4SCEEEIIg0nh\nIIQQQgiDSeEghBBCCINJ4SCEEEIIg0nhIIQQQgiDSeEgxGPk5eVFnz59CAgIKHc7efLkI++rV69e\nJCQkGNT2wIEDdO3alc8//7zc8/n5+UyZMgVfX18CAgKIiYmp8N7IyEi8vLz0j2/dusWsWbPw9/en\nX79+rF+/vmb/ESGESbNWOoAQT7qIiAgaNGigdAy9H3/8kQ0bNtC2bdsKr82fPx83Nzf27dvHxYsX\nmTNnDr1798baWreryMjIICoqqtx71q5dS15eHj///DOFhYUMGjSIZ599lvbt2xvl/yOEMC4ZcRBC\nIUePHiUwMJD58+fj7+9Pr169+O233wAoKSkhNDRU/1f8/Pnz0Wg0ACQmJvLqq6/i7+9PcHAwKSkp\n+s9MTExk6NChvPTSS3z88cf37bdFixasX78eNze3cs/funWL7du3M2HCBFQqFS1atCAiIkJfNADM\nmzePCRMmlHvfzp07GTp0KFZWVtSpUwd/f3927tz5SLaREML0SOEghILOnz9Phw4diImJYcKECcyd\nOxeAdevWkZ6ezvbt2/n+++9JSEjgp59+AiAkJIQpU6YQExODn58fYWFh+s9LTEzkm2++4bvvvmPD\nhg2kpaVV6NPb2xsbG5sKz1+6dAlbW1u2bNlC//79ef311zl06JD+9f3795Ofn0///v3Lve/ixYs0\nbdpU/7hp06ZcuHChRttFCGG6ZKpCiMds5MiRqNVq/eN69eqxceNGABwcHOjXrx8Affv2Zfbs2RQV\nFREXF8eYMWOwtrbG2tqawMBADh48SIcOHcjNzaVHjx4ABAcHM3z4cP1nBwYGolar8fDwoH79+qSn\np+Pp6WlQzhs3bnDz5k1sbW3ZsWMH8fHxvPPOO8TGxmJnZ0d4eDirVq2q8L7i4mJsbW31j+3s7Cgq\nKqr+hhJCmAUpHIR4zKpa4+Dk5IRKpdLfB90XeE5ODnXr1tW3q1u3LtnZ2eTm5uLo6Kh//k5hcUft\n2rX199VqtX56wxCOjo5oNBp9IdK9e3c8PT05ceIECQkJBAYGlhtZuMPe3p6SkhL946KiIhwcHAzu\nVwhhXmSqQggFXb9+XX8/Ly8PAGdnZ1xdXcu9dv36dVxdXXFxceH69evcvn0bgNLSUq5cufJIstwZ\nmSgoKNA/p1arsbKyYu/evURERNCtWze6desGQLdu3UhOTqZFixYkJyfr35OcnMzTTz/9SDIJIUyP\nFA5CKKi4uJjY2FgAYmJiaNeuHba2tvj6+hIdHY1Go6GwsJCtW7fSo0cPmjdvToMGDdi1axcA0dHR\nhIaGPpIsTk5OvPTSS6xZswaAEydOkJqaSvv27dm+fTuHDh3i4MGDHDx4EICDBw/SrFkz+vXrR2Rk\nJBqNhoyMDLZv315hHYQQ4skhUxVCPGZ/XeMAurUJrVq1olGjRvz6668sXLiQ0tJSlixZon9PSkoK\nAwYMQKVSERAQQL9+/VCpVCxdupRp06axePFi3NzcKj16ojIzZszg+PHjZGZmUqtWLbZt20ZwcDDB\nwcHMmzeP999/n169elGnTh0+/fRTnJ2dq/y8UaNGceHCBQICAlCr1UyaNInWrVtXbyMJIcyGSqvV\napUOIYQlOnr0KLNnz2b37t1KRxFCCIPJVIUQQgghDCZTFUIIIYSFKCoqYvr06WRnZ1NSUsLEiRPp\n2bNntT5DpiqEEEIIC7Fjxw5SU1MZN24cqampjBkz5r7XpKmKjDgIIYQQFuLeI57S0tLw8PCo9mc8\n9sJBi+pxd/FEsPq30gnEk0Y7V+kE5kHGXMXjoMK4P1iqf+u+a7VzDOs3KCiI9PT0+54N9kFkcaQQ\nQghh5qytdDdDbdq0iZUrVzJt2jSqu2JBCgchhBDCzDnU0t0eJDExUX/xuzZt2qDRaMjJyalWX1I4\nCCGEEGbO0MIhISFBf3bYrKwsCgsLcXFxqVZfUjgIIYQQZs7OWnd7kKCgIHJychgxYgRvvvkmoaGh\nWFlVrxSQoyqEEEIIM2fIaAPoLnu/aNGiGvUlhYMQQghh5gwtHAAWLFjAr7/+SllZGW+99RZ9+/at\nVl9SOAghhBBmzpBpCoAjR45w9uxZoqKiyM3NZfDgwVI4CCGEEJbG0BEHHx8fOnToAICTkxNFRUVo\nNJoKV/CtisUtjjxy2J5XBzfF3785Y95oRHq61E6vtnmV428d59SkU8S/EY+3m3eFNnVs6hD1ehTJ\n7yZzatIpXm3zqgJJlTW602iSJibxx8Q/2BW8i1b1WlXatn+r/mjnaGlWt5kRE5qQd96BU6fu3s6d\ng6ys+7edPl3X5o8/4Lvv4CHOZPckkX2U4WRb3WXoURVqtRoHBwcAoqOjefnll6tVNICFFQ6FhSpC\nQjwJ+/AaMTGX8O1ZwJw57krHUlQTpyasGrCKQZsG0WZFGzb/sZk1g9ZUaLfYfzFp+Wk0W9KMQZsG\nMdlnMmpV9X7YzJlXfS8W9llIn4g+tP28Ld+d+u6+2wnA3tqe+b3nk12YbeSUJmTZMmjT5u7tiy9g\n7dqK7fz8YMwYeP55aNsWzpyBTz4xelxTIfsow8m2Ks/QwuGO2NhYoqOjCQ0NrXZfBhUOBQUFJCcn\nk5ycTGFhYbU7MRVHjjjQpEkp3t4lALz2Wh6HDtYmP99yT4tderuUEVtGcDnvMgB7LuzBq75XuTY2\nahuGtxvOvP+dB8CZ7DP0Wt8LjVZj9LxKaevWlrPZZ7l68yoAey/upZ17u/u2nes7l4iTEdy8ddOY\nEU2XuztMmABhYRVfa98eEhLgxg3d4717od39t6slkH2U4WRblWfo4ZgA8fHxrFq1itWrV+Po6Fjt\nvqrs5vfff2fevHncuHEDFxcXtFotGRkZeHh4EBoaipeXV1VvNzmXLtnQpEmp/nHt2lqcnTVcvmxD\n27YlCiZTTnp+Oun56QCoVWpGdxrN1tNby7VpVa8VRaVFjO40mtGdRpN/K5+Ze2ay5+IeJSIr4siV\nI7Ss1xJvN2+SMpN4re1r7D6/u0K7du7t6NOiD12+7MJEn4kKJDVBU6fqRhvy8iq+FhcHU6ZAo0aQ\nng6DB8PuitvVUsg+ynCyrcozdLTh5s2bLFiwgLVr1+Ls7PxQfVVZOHz00UfMmzePli1blns+KSmJ\nDz74gA0bNjxUp0opLlJha1v+nNy2trcpKrTMCvVe7zz/DqEvh3Iu5xyvRL1S7jVnO2ec7ZwpLivG\n+3Nv+rbsS/TQaFosbUFuca5CiY0rLT+NmXtm8tv437hZcpOC0gJ6rO1Rod2qAat4++e3KbtdpkBK\nE+TkBKNGgXfFdTMAHD8O69bBpUtQUABXrkD37kaNaEpkH2U42VblGVo47Nixg9zcXN599139c+Hh\n4TRs2NDgvqqcqtBqtRWKBgBvb280GvMbprZ3uE1JSfkfquJiKxxqy+Xxlh1dhutCV5YcXcKhMYew\ns7bTv5ZXkofaSs3KhJUA7Dq/i8t5l3mh8QtKxTW6Tg06Mav7LFosbUG9BfWYHjudbUHbyrV5829v\n8kfWHxxMOahQSoVNmnR3MeQrfxafAwfC0aOQXcl6j8BAGDBAtyDS2Rk2boTISONlNjGyjzKcbKvy\nDJ2qGDZsGAcOHCAiIkJ/q07RAA8oHDp27Mj48eOJjo5m79697N27l2+//ZaxY8fSpUuXanVkClq0\nKOXy5btl2c2bVuTlWdGs2S0FUymrtWtrej/VW/94U+ImnGydyq1zSMlLAcDR5u5cmOa2xqLWOPR+\nqjeHUg6RckO3LaKSovB298bVwVXfZpDXIAZ5DSLtX2mk/SuNJk5N+GXcL/g291UotZGtWHF3MeQP\nP+ieGzgQduyo/D19+8LOnXDnIjtRUdCj4kiOpZB9lOFkW5VXncWRZ86cwc/Pj8iHLNKrLBxmzJjB\n2LFjuXr1KnFxccTFxZGRkcHkyZMJCQl5qA6V9PzzhVy9WotfE3R/Ta9d64JvzwIcHCyzQgVwc3Bj\n/eD1eNbxBODFJi9SS12LC7kX9G3ySvKIORfD1BenAtClUReaOzfnl9RfFMmshNPZp3mxyYvUs68H\n6A63TLuZRlbh3UMMB2wcgMcnHngu8sRzkScpN1LwWe1D3KU4hVKbgI4ddSMQlTl9Gnr3Bnt73eMB\nAyAx0TjZTJDsowwn26o8QwuHwsJCwsLC6Nq160P39cCBDR8fH3x8fB66A1NiZ6dl0eI0PvjAg6Ii\nFU2blvLx/HSlYykq/nI88+LnETsqFiuVFSVlJQRFB+Fo68ihsYdov7I9AGO3jWX94PVcnHKRvOI8\nhkUPs5j1DQA/nfmJv3n+jcNjD6PVarlRcoMhm4fg09CHsJ5hBGwIUDqiaWrcWLfo8V6vvKKbohg7\nFlatAi8vOHkSNBpd2zfeUCarCZB9lOFkW5Vn6BEVNjY2rF69mtWrVz90XyqtVvtYyzMtlrlQpbqs\n/q10AvGk0c5VOoF5eLx7QGGpVBj3B2vD77rv2n+0N6zf5cuX4+LiQnBwcLX7stzTbAkhhBBPiOqc\n/KmmpHAQQgghzJwUDkIIIYQwmKFrHB4FKRyEEEIIM2foiENiYiLh4eGkpqZibW1NTEwMy5cvr9ZZ\nJGVxpImQxZHiUZPFkYaRxZHicTD24sikTN13rbfb4+9XRhyEEEIIM1edqYqPPvqIEydOoFKpmDlz\nJh06dKhWX1I4CCGEEGbO0KmKY8eOkZycTFRUFOfPn2fmzJlERUVVqy+DLqsthBBCCNNl6JkjDx8+\njJ+fHwAtW7YkLy+P/Pz8avUlhYMQQghh5gwtHLKysnBxcdE/rlevHpmZmdXq67FPVahkbaRBtOeU\nTmA+wlKVTmAm5iodwDyo/qF0AvPh1knpBOYjc5px+6v1kGsiH+b4CBlxEEIIIcxd4Z+3B3B3dycr\n6+7F+TIyMnBzc6tWV1I4CCGEEObOwMKhW7duxMTEAJCUlIS7uzt16tSpVldyVIUQQghh7ooNa9a5\nc2e8vb0JCgpCpVIxZ86canclhYMQQghh7gwYbbhj6tSpNepKpiqEEEIIc2fgVEVljh07RteuXdm3\nb98D28qIgxBCCGHualA0XL58ma+//prOnTsb1F5GHIQQQghzV4zB6xz+ys3Njc8++wxHR0eD2ltm\n4fDee5CUBMnJsGiR0mlMwvb9jgyc0Az/cc15+0NPbhZU/aMRd6w2Xv2f4co1yxq0ul0Gv37rSuS4\nZyjIuf//PXLcM2z7n+b6W+yixkZOaWImTar6SlLjx0NiIvznP/Dzz9DYwraXbW2YGAnrS6tu99JI\nCE+EpckwYT1Y2xgnn4nwbxnIvv86zsExf/DT8Hhau3qXe/25hi9waMypcrerIbdo49pOocRGVoOp\nCnt7e9RqtcHtLWuvDxAQAP/939ClCxQUwO7dEBwMkZFKJ1PM1Qxrwla6sWXZZRq6lzF/tSufrnMl\ndGLGfdsXFatY9LUrzo4aIydVXtyKRtRv/uCy/u9hlx5/GHPQoAG8+Wblr3ftClOnwnPPwfXrsHix\nrpgfNsx4GZU29xAc/6nqNo29IXgxzHwWcq7ApA0w8D344UPjZFRYgzoN+az/OgZs7MaZ7FO80WkC\ni/p+wYCNL+nbJFw9wotr2ugfd/bswse9l3MqK1GJyMZnYNGwefNmNm/eXO65t99+m+7duxvcleWN\nOPTpA99/r9tJlZbCihXw2mtKp1LUniN16NqpkIbuZQC87n+DnQcqP653+Yb6/L3XDWrb3zZWRJPR\nfmA2HQdlKx3DfCxdCh9W8eWWkQEjR+p+HwH27AEvL+NkMxVfvQV7/1/Vbbx7QdJeXdEA8PMS6GI5\n+62y26W89eNwzmSfAuBo6gG86ntX+Z55vZYyZ9+/jBHPNBg4VTFkyBC+/fbbcrfqFA1Qg8Lhxo0b\nD/tWZWm1cO+QTH4+PP20cnlMwKXUWjT1vDtM2tSzlOzr1uTdrPjjcfqiDYeOOzB6cK4xI5oMt5aG\nTSIe+LIBP4Y2Y9eCxmSes3vMqUxUQAA4OcFf/rop5/x5OHxYd9/ODv7xD9i61Tj5TMW5Iw9uo9WC\n1T37rZJ88LCc/VZWYSZ7L8XoH/d+qh//l3a00vZ9WvSnuKyII6kHjBHPNNTwqIrqeOjCYfLkyY8y\nh/Hs3q0bBm3UCOztYdw43Q7LghWVWGFzz4nObWppUam0FJWU//HQamHOZx7MnpBBLcub5DLY092v\n4x2QQ+AHyXj1vM6+zxpxq9DCBvfs7HRTDpMmGdY+PByuXYO6dWHBgsebzRwl7YH2fXRTFlZq6DMJ\nalnmfqt7016Mf+6fzN73z0rbTO7yHp//8okRU5mAGhQOcXFxjBw5kvj4eBYvXsyYMWOqbF/l7n/D\nhg2Vvnbt2rWHS6iESZPgTqEzYwYsWwaxsZCbC1u2QJMmyuZTQOSPzkT+6AxALbUWN5cy/Wslt1Ro\ntSoc7MpPRUT9XJenm97iOe+HXLprIV4YdXdtSDOffH7fXp/M8/Y0al+gYCojuPf3TKvVrRu6cMGw\n977/PsycCSEhut/Nrl0fX06l9ZkEff/cTlEzIOGHB78n9RSsexsmb4KyEti/BgqvP96cJqjf04P4\nuPdyRnw3UD9t8VeedRrR2rUdey7uNHI6hdVgtMHX1xdfX1+D21dZOKxdu5auXbvi7u5e4bWysrL7\nvMNErVihu91r4ULdvyNHwu+/Gz+TwoIDrxMcqNvxbPipLr/87qB/7VJqLdzqleFUp3zhsOdIHRLP\n2rLvWAsAcvLUvD6lKUtmpPFCxyLjhTdhpcUqCq9bU7fB3akf7W2wUj/kpevMyb2/Z4mJ8M478Pbb\nd19PS4OXXtJNT9zh4wNWVnD0KGg0sHKlbsShbl3IyzNufmPZvUJ3q6749bobQOvukGJZ+62Xm/Vm\nXq+lDNncl7M5/6m0XZ+WA9h/aTe3tRa2BsuIf89VWTisWLGCDz/8kNmzZ2NjU/7Qn6NHK59fMmk9\nesCcOeDvD7a28M9/6m4WzO+FApZFunLhSi1aNC5l7fcuDOxRcQ3L6g/KX8+61+inWB+eQmMPMyoi\nH7PC3FrEzG9Cv1mXcXQv5WqSA8X5auo/ZWGjNO3+cgicVguenhXbtW6tO6qie3e4cQMCA3WHST+p\nRcPD8mgJU6LhQ18oKYC/z4T/Xat0KqOxt7ZnWcDXjPrhlSqLBgBvt46cybn/aMQTrQYjDmVlZcya\nNYvLly+j0Wh47733eO655yptX2Xh8Mwzz/DFF19gbV2x2fTp0x8+pZLi4+HMGTh7Fm7fhk8/hf37\nlU6lKA/XMuZMvMaksIZoNCratixh9gTdcPvJ03YsjajPVx+mPuBTnnxFN9TsXnh3Wmv3J42xUoNf\nyBX2LGlE4L+Tqet5i+eGZRD3WUO0WhU2Dhp8J13FxgKPQKnUK6/oCoSxYyEiAlq10o04qFS6oyuG\nDlU6ofE0fxYmbQR1LVBbw8I/v/CmtYEWPjAkDMID4Np5+HUrfHxCV4Qd/ubu6IMFCHh6EPUd3Fg1\noPz0+dBofza+up2X17bXP9fQsTFJmSeMHVF5NSgctm7dir29Pd988w1nz55lxowZREdHV9pepdVW\ndWaWR0Cleqwf/8Q4p3QA8xEmNYxB/qeH0gnMxAilA5gPt05KJzAfmdOMPD058s/v2ojq91taWsrt\n27extbUlOzubYcOGERsbW2l7WRsvhBBCmLsajDjUqlVLf3/dunUMHDiwyvZSOAghhBDm7hGcOXLD\nhg0kJSWxatWqKj9DCgchhBDC3Bm4/nrIkCEMGTKkwvObN29m7969fP755+VGIO5HCgchhBDC3NVg\nqiIlJYVNmzYRGRmJra3tA9tL4SCEEEKYuxoUDps3b+b69eu8ec8F6b766qsKp2G4QwoHIYQQwtzV\noHAICQkhJCTE4PZSOAghhBDmrgbnmMvOzub999+npKSE0tJSZsyYQceOHSttb2FX3hFCCCGeQDW4\nyNW2bdsYNGgQERERhISEsHTp0irby4iDEEIIYe5qMFXxxhtv6O+npaXh4eFRZfvHf+ZIIYQQQpi0\nzMxMxo8fT0FBAevWrauyeJDCQQghhLAQVZ0ACmD//v2sW7eONWvWVPoZUjgIIYQQFuzYsWN4eXlR\nt25dAJ5//vkqr4AtiyOFEEIIC7Zr1y6+//57AE6fPo2np2eV7WXEQQghhLBgOTk5TJ8+nYKCAm7d\nusWsWbPo1KnyS6FK4SCEEEIIg8lUhRBCCCEMJoWDEEIIIQxmcYXDRx99xLBhwwgKCuLkyZNKxzFp\nZ86cwc/Pj8jISKWjmLQFCxYwbNgwXnvtNXbt2qV0HJNUVFTElClTCA4OZsiQIezbt0/pSCatuLgY\nPz8/tmzZonQUk3X06FFeeOEFRo4cyciRIwkLC1M6ksWwqDNHHjt2jOTkZKKiojh//jwzZ84kKipK\n6VgmqbCwkLCwMLp27ap0FJN25MgRzp49S1RUFLm5uQwePJi+ffsqHcvk7Nu3j3bt2jFu3DhSU1MZ\nM2YMPXv2VDqWyVq5cqX+0DhRuS5durBs2TKlY1gciyocDh8+jJ+fHwAtW7YkLy+P/Px86tSpo3Ay\n02NjY8Pq1atZvXq10lFMmo+PDx06dADAycmJoqIiNBoNarVa4WSmpX///vr7hpzS1pKdP3+ec+fO\n4evrq3QUIe7LoqYqsrKycHFx0T+uV68emZmZCiYyXdbW1tjZ2Skdw+Sp1WocHBwAiI6O5uWXX5ai\noQpBQUFMnTqVmTNnKh3FZIWHhzN9+nSlY5iFc+fOMX78eIYPH87BgweVjmMxLGrE4a/kSFTxqMTG\nxhIdHV3laVoFbNq0iVOnTjFt2jS2bduGSqVSOpJJ+eGHH+jUqRNNmjRROorJa968OZMnT6Zfv36k\npKQwatQodu3ahY2NjdLRnngWVTi4u7uTlZWlf5yRkYGbm5uCicSTID4+nlWrVvHll1/i6OiodByT\nlJiYSP369fH09KRNmzZoNBpycnKoX7++0tFMSlxcHCkpKcTFxZGeno6NjQ0NGjTgxRdfVDqayfHw\n8NBPgTVt2hRXV1euXbsmRZcRWFTh0K1bN5YvX05QUBBJSUm4u7vL+gZRIzdv3mTBggWsXbsWZ2dn\npeOYrISEBFJTU5k1axZZWVkUFhaWmzYUOkuWLNHfX758OY0aNZKioRLbtm0jMzOTsWPHkpmZSXZ2\ntqydMRKLKhw6d+6Mt7c3QUFBqFQq5syZo3Qkk5WYmEh4eDipqalYW1sTExPD8uXL5cvxL3bs2EFu\nbi7vvvuu/rnw8HAaNmyoYCrTExQUxKxZsxgxYgTFxcWEhoZiZWVRS6zEI9arVy+mTp3Knj17KC0t\nZe7cuTJNYSRyymkhhBBCGExKfiGEEEIYTAoHIYQQQhhMCgchhBBCGEwKByGEEEIYTAoHIYQQQhhM\nCgchhBBCGEwKByGEEEIY7P8D2Y6RWVaX2RkAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nCIP9fwT72DaNhzo+AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nA/XX2N8I30S1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nCCGE0Nr/B4BE7PBKb4OoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "imageio.mimsave('./weights_viz.gif', [plot_heat_map(i) for i in range(0,len(weight_matrices),len(weight_matrices)//50)], fps=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 44, + "resources": { + "http://localhost:8080/weights_viz.gif": { + "data": "CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPWVuPgogIDxtZXRhIGNoYXJzZXQ9dXRmLTg+CiAgPG1ldGEgbmFtZT12aWV3cG9ydCBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEsIG1pbmltdW0tc2NhbGU9MSwgd2lkdGg9ZGV2aWNlLXdpZHRoIj4KICA8dGl0bGU+RXJyb3IgNDA0IChOb3QgRm91bmQpISExPC90aXRsZT4KICA8c3R5bGU+CiAgICAqe21hcmdpbjowO3BhZGRpbmc6MH1odG1sLGNvZGV7Zm9udDoxNXB4LzIycHggYXJpYWwsc2Fucy1zZXJpZn1odG1se2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjIyO3BhZGRpbmc6MTVweH1ib2R5e21hcmdpbjo3JSBhdXRvIDA7bWF4LXdpZHRoOjM5MHB4O21pbi1oZWlnaHQ6MTgwcHg7cGFkZGluZzozMHB4IDAgMTVweH0qID4gYm9keXtiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9lcnJvcnMvcm9ib3QucG5nKSAxMDAlIDVweCBuby1yZXBlYXQ7cGFkZGluZy1yaWdodDoyMDVweH1we21hcmdpbjoxMXB4IDAgMjJweDtvdmVyZmxvdzpoaWRkZW59aW5ze2NvbG9yOiM3Nzc7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YSBpbWd7Ym9yZGVyOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NzJweCl7Ym9keXtiYWNrZ3JvdW5kOm5vbmU7bWFyZ2luLXRvcDowO21heC13aWR0aDpub25lO3BhZGRpbmctcmlnaHQ6MH19I2xvZ297YmFja2dyb3VuZDp1cmwoLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvbG9nb3MvZXJyb3JwYWdlL2Vycm9yX2xvZ28tMTUweDU0LnBuZykgbm8tcmVwZWF0O21hcmdpbi1sZWZ0Oi01cHh9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246MTkyZHBpKXsjbG9nb3tiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9sb2dvcy9lcnJvcnBhZ2UvZXJyb3JfbG9nby0xNTB4NTQtMngucG5nKSBuby1yZXBlYXQgMCUgMCUvMTAwJSAxMDAlOy1tb3otYm9yZGVyLWltYWdlOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9sb2dvcy9lcnJvcnBhZ2UvZXJyb3JfbG9nby0xNTB4NTQtMngucG5nKSAwfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86Mil7I2xvZ297YmFja2dyb3VuZDp1cmwoLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvbG9nb3MvZXJyb3JwYWdlL2Vycm9yX2xvZ28tMTUweDU0LTJ4LnBuZykgbm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX19I2xvZ297ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjU0cHg7d2lkdGg6MTUwcHh9CiAgPC9zdHlsZT4KICA8YSBocmVmPS8vd3d3Lmdvb2dsZS5jb20vPjxzcGFuIGlkPWxvZ28gYXJpYS1sYWJlbD1Hb29nbGU+PC9zcGFuPjwvYT4KICA8cD48Yj40MDQuPC9iPiA8aW5zPlRoYXTigJlzIGFuIGVycm9yLjwvaW5zPgogIDxwPiAgPGlucz5UaGF04oCZcyBhbGwgd2Uga25vdy48L2lucz4K", + "headers": [ + [ + "content-length", + "1449" + ], + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "ok": false, + "status": 404, + "status_text": "Not Found" + } + } + }, + "colab_type": "code", + "id": "UmLrA0HGsbfu", + "outputId": "b8b14d0e-0e12-4888-f3f7-20cd925bb048" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython import display\n", + "HTML('')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "id": "vrsFuFprIrn6", + "outputId": "fa954132-e662-4fdf-cc3b-add5ff2c1ab7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training accuracy 0.98\n", + "Validation accuracy 0.94\n" + ] + } + ], + "source": [ + "Y_pred_train = ffn.predict(X_train)\n", + "Y_pred_binarised_train = (Y_pred_train >= 0.5).astype(\"int\").ravel()\n", + "Y_pred_val = ffn.predict(X_val)\n", + "Y_pred_binarised_val = (Y_pred_val >= 0.5).astype(\"int\").ravel()\n", + "accuracy_train = accuracy_score(Y_pred_binarised_train, Y_train)\n", + "accuracy_val = accuracy_score(Y_pred_binarised_val, Y_val)\n", + "\n", + "print(\"Training accuracy\", round(accuracy_train, 2))\n", + "print(\"Validation accuracy\", round(accuracy_val, 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "colab_type": "code", + "id": "6vuROfG2Jc54", + "outputId": "ca93c996-6394-48b2-cf2f-0fb878517b74" + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_train[:,0], X_train[:,1], c=Y_pred_binarised_train, cmap=my_cmap, s=15*(np.abs(Y_pred_binarised_train-Y_train)+.2))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "rLpsoFqkPWCA" + }, + "source": [ + "## Multi class classification" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "colab_type": "code", + "id": "Oc-rmmXDusH2", + "outputId": "f147b2ad-cd6c-4914-c41b-20c3ab233445" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(750, 2) (250, 2) (1000,)\n" + ] + } + ], + "source": [ + "X_train, X_val, Y_train, Y_val = train_test_split(data, labels_orig, stratify=labels_orig, random_state=0)\n", + "print(X_train.shape, X_val.shape, labels_orig.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 209 + }, + "colab_type": "code", + "id": "r8ktticiusH6", + "outputId": "d8969dfa-533b-4fab-a5f1-f4bc3ecb48d0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(750, 4) (250, 4)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/sklearn/preprocessing/_encoders.py:371: FutureWarning: The handling of integer data will change in version 0.22. Currently, the categories are determined based on the range [0, max(values)], while in the future they will be determined based on the unique values.\n", + "If you want the future behaviour and silence this warning, you can specify \"categories='auto'\".\n", + "In case you used a LabelEncoder before this OneHotEncoder to convert the categories to integers, then you can now use the OneHotEncoder directly.\n", + " warnings.warn(msg, FutureWarning)\n", + "/usr/local/lib/python3.6/dist-packages/sklearn/preprocessing/_encoders.py:371: FutureWarning: The handling of integer data will change in version 0.22. Currently, the categories are determined based on the range [0, max(values)], while in the future they will be determined based on the unique values.\n", + "If you want the future behaviour and silence this warning, you can specify \"categories='auto'\".\n", + "In case you used a LabelEncoder before this OneHotEncoder to convert the categories to integers, then you can now use the OneHotEncoder directly.\n", + " warnings.warn(msg, FutureWarning)\n" + ] + } + ], + "source": [ + "enc = OneHotEncoder()\n", + "# 0 -> (1, 0, 0, 0), 1 -> (0, 1, 0, 0), 2 -> (0, 0, 1, 0), 3 -> (0, 0, 0, 1)\n", + "y_OH_train = enc.fit_transform(np.expand_dims(Y_train,1)).toarray()\n", + "y_OH_val = enc.fit_transform(np.expand_dims(Y_val,1)).toarray()\n", + "print(y_OH_train.shape, y_OH_val.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "xGvIOVg4sbgQ" + }, + "outputs": [], + "source": [ + "class FFSN_MultiClass_Specific:\n", + " \n", + " def __init__(self):\n", + " np.random.seed(0)\n", + " self.w1 = np.random.randn()\n", + " self.w2 = np.random.randn()\n", + " self.w3 = np.random.randn()\n", + " self.w4 = np.random.randn()\n", + " self.w5 = np.random.randn()\n", + " self.w6 = np.random.randn()\n", + " self.w7 = np.random.randn()\n", + " self.w8 = np.random.randn()\n", + " self.w9 = np.random.randn()\n", + " self.w10 = np.random.randn()\n", + " self.w11 = np.random.randn()\n", + " self.w12 = np.random.randn()\n", + " self.b1 = 0\n", + " self.b2 = 0\n", + " self.b3 = 0\n", + " self.b4 = 0\n", + " self.b5 = 0\n", + " self.b6 = 0\n", + " \n", + " def sigmoid(self, x):\n", + " return 1.0/(1.0 + np.exp(-x))\n", + " \n", + " def forward_pass(self, x):\n", + " # input layer\n", + " self.x1, self.x2 = x\n", + " \n", + " # hidden layer\n", + " self.a1 = self.w1*self.x1 + self.w2*self.x2 + self.b1\n", + " self.h1 = self.sigmoid(self.a1)\n", + " self.a2 = self.w3*self.x1 + self.w4*self.x2 + self.b2\n", + " self.h2 = self.sigmoid(self.a2)\n", + " \n", + " # output layer\n", + " self.a3 = self.w5*self.h1 + self.w6*self.h2 + self.b3\n", + " self.a4 = self.w7*self.h1 + self.w8*self.h2 + self.b4\n", + " self.a5 = self.w9*self.h1 + self.w10*self.h2 + self.b5\n", + " self.a6 = self.w11*self.h1 + self.w12*self.h2 + self.b5\n", + " sum_exps = np.sum([np.exp(self.a3), np.exp(self.a4), np.exp(self.a5), np.exp(self.a6)])\n", + " self.h3 = np.exp(self.a3)/sum_exps\n", + " self.h4 = np.exp(self.a4)/sum_exps\n", + " self.h5 = np.exp(self.a5)/sum_exps\n", + " self.h6 = np.exp(self.a6)/sum_exps\n", + " \n", + " return np.array([self.h3, self.h4, self.h5, self.h6])\n", + " \n", + " def grad(self, x, y):\n", + " self.forward_pass(x)\n", + " self.y1, self.y2, self.y3, self.y4 = y\n", + " \n", + " self.dw5 = (self.h3-self.y1) * self.h1 \n", + " self.dw6 = (self.h3-self.y1) * self.h2\n", + " self.db3 = (self.h3-self.y1)\n", + " \n", + " self.dw7 = (self.h4-self.y2) * self.h1\n", + " self.dw8 = (self.h4-self.y2) * self.h2\n", + " self.db4 = (self.h4-self.y2)\n", + " \n", + " self.dw9 = (self.h5-self.y3) * self.h1\n", + " self.dw10 = (self.h5-self.y3) * self.h2\n", + " self.db5 = (self.h5-self.y3)\n", + " \n", + " self.dw11 = (self.h6-self.y4) * self.h1\n", + " self.dw12 = (self.h6-self.y4) * self.h2\n", + " self.db6 = (self.h6-self.y4)\n", + " \n", + " self.dh1 = (self.h3-self.y1)*self.w5 + (self.h4-self.y2)*self.w7 + (self.h5-self.y3)*self.w9 + (self.h6-self.y4)*self.w11\n", + " self.dw1 = self.dh1 * self.h1*(1-self.h1) * self.x1\n", + " self.dw2 = self.dh1 * self.h1*(1-self.h1) * self.x2\n", + " self.db1 = self.dh1 * self.h1*(1-self.h1)\n", + " \n", + " self.dh2 = (self.h3-self.y1)*self.w6 + (self.h4-self.y2)*self.w8 + (self.h5-self.y3)*self.w10 + (self.h6-self.y4)*self.w12\n", + " self.dw3 = self.dh2 * self.h2*(1-self.h2) * self.x1\n", + " self.dw4 = self.dh2 * self.h2*(1-self.h2) * self.x2\n", + " self.db2 = self.dh2 * self.h2*(1-self.h2)\n", + " \n", + " def grad_short(self, x, y):\n", + " self.forward_pass(x)\n", + " self.y1, self.y2, self.y3, self.y4 = y\n", + " \n", + " self.da3 = (self.h3-self.y1)\n", + " self.da4 = (self.h4-self.y2)\n", + " self.da5 = (self.h5-self.y3)\n", + " self.da6 = (self.h6-self.y4)\n", + " \n", + " self.dw5 = self.da3*self.h1\n", + " self.dw6 = self.da3*self.h2\n", + " self.db3 = self.da3\n", + " \n", + " self.dw7 = self.da4*self.h1\n", + " self.dw8 = self.da4*self.h2\n", + " self.db3 = self.da4\n", + " \n", + " self.dw9 = self.da5*self.h1\n", + " self.dw10 = self.da5*self.h2\n", + " self.db3 = self.da5\n", + " \n", + " self.dw11 = self.da6*self.h1\n", + " self.dw12 = self.da6*self.h2\n", + " self.db3 = self.da6\n", + " \n", + " self.dh1 = self.da3*self.w5 + self.da4*self.w7 + self.da5*self.w9 + self.da6*self.w11\n", + " self.dh2 = self.da3*self.w6 + self.da4*self.w8 + self.da5*self.w10 + self.da6*self.w12\n", + " \n", + " self.da1 = self.dh1 * self.h1*(1-self.h1)\n", + " self.da2 = self.dh2 * self.h2*(1-self.h2)\n", + " \n", + " self.dw1 = self.da1*self.x1\n", + " self.dw2 = self.da1*self.x2\n", + " self.db1 = self.da1\n", + " \n", + " self.dw3 = self.da2*self.x1\n", + " self.dw4 = self.da2*self.x2\n", + " self.db2 = self.da2\n", + " \n", + " \n", + " def fit(self, X, Y, epochs=1, learning_rate=1, display_loss=False, display_weight=False):\n", + " \n", + " if display_loss:\n", + " loss = {}\n", + " \n", + " for i in tqdm_notebook(range(epochs), total=epochs, unit=\"epoch\"):\n", + " dw1, dw2, dw3, dw4, dw5, dw6, dw7, dw8, dw9, dw10, dw11, dw12, db1, db2, db3, db4, db5, db6 = [0]*18\n", + " for x, y in zip(X, Y):\n", + " self.grad(x, y)\n", + " dw1 += self.dw1\n", + " dw2 += self.dw2\n", + " dw3 += self.dw3\n", + " dw4 += self.dw4\n", + " dw5 += self.dw5\n", + " dw6 += self.dw6\n", + " dw7 += self.dw7\n", + " dw8 += self.dw8\n", + " dw9 += self.dw9\n", + " dw10 += self.dw10\n", + " dw11 += self.dw11\n", + " dw12 += self.dw12\n", + " db1 += self.db1\n", + " db2 += self.db2\n", + " db3 += self.db3\n", + " db1 += self.db4\n", + " db2 += self.db5\n", + " db3 += self.db6\n", + " \n", + " m = X.shape[0]\n", + " self.w1 -= learning_rate * dw1 / m\n", + " self.w2 -= learning_rate * dw2 / m\n", + " self.w3 -= learning_rate * dw3 / m\n", + " self.w4 -= learning_rate * dw4 / m\n", + " self.w5 -= learning_rate * dw5 / m\n", + " self.w6 -= learning_rate * dw6 / m\n", + " self.w7 -= learning_rate * dw7 / m\n", + " self.w8 -= learning_rate * dw8 / m\n", + " self.w9 -= learning_rate * dw9 / m\n", + " self.w10 -= learning_rate * dw10 / m\n", + " self.w11 -= learning_rate * dw11 / m\n", + " self.w12 -= learning_rate * dw12 / m\n", + " self.b1 -= learning_rate * db1 / m\n", + " self.b2 -= learning_rate * db2 / m\n", + " self.b3 -= learning_rate * db3 / m\n", + " self.b4 -= learning_rate * db4 / m\n", + " self.b5 -= learning_rate * db5 / m\n", + " self.b6 -= learning_rate * db6 / m\n", + " \n", + " if display_loss:\n", + " Y_pred = self.predict(X)\n", + " loss[i] = log_loss(np.argmax(Y, axis=1), Y_pred)\n", + " \n", + " if display_weight:\n", + " weight_matrix = np.array([[self.b3, self.w5, self.w6, \n", + " self.b4, self.w7, self.w8, \n", + " self.b5, self.w9, self.w10, \n", + " self.b6, self.w11, self.w12], \n", + " [0, 0, 0,\n", + " self.b1, self.w1, self.w2,\n", + " self.b2, self.w3, self.w4, \n", + " 0, 0, 0]])\n", + " weight_matrices.append(weight_matrix)\n", + " \n", + " if display_loss:\n", + " plt.plot(loss.values())\n", + " plt.xlabel('Epochs')\n", + " plt.ylabel('Log Loss')\n", + " plt.show()\n", + " \n", + " def predict(self, X):\n", + " Y_pred = []\n", + " for x in X:\n", + " y_pred = self.forward_pass(x)\n", + " Y_pred.append(y_pred)\n", + " return np.array(Y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 412, + "resources": { + "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": { + "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=", + "headers": [ + [ + "content-type", + "text/css" + ] + ], + "ok": true, + "status": 200, + "status_text": "OK" + } + } + }, + "colab_type": "code", + "id": "bE8QqNgPsbgX", + "outputId": "7dbac9dd-40cc-41de-db20-9b3cbda280b3" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a1c74af601184d18bf7533a43616c749", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=2000), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "weight_matrices = []\n", + "ffsn_multi_specific = FFSN_MultiClass_Specific()\n", + "ffsn_multi_specific.fit(X_train,y_OH_train,epochs=2000,learning_rate=1,display_loss=True, display_weight=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 2017 + }, + "colab_type": "code", + "id": "qpT_5SkYsbgc", + "outputId": "e10f14c8-c1cf-480f-c563-aa67792db236" + }, + "outputs": [ + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nGO3/AMUeZRUnGJO1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xlc1NX+x/HXwDBsgiwCgopbrpil\naYp2zYXcvW6p6BUruxqpmaKWmiFlmpqZSy5llmtp4lqpmFuZil6zNE0tMRBlEZB9HYb5/TGKEogz\nwiz8+jwfj3nIzJzhvOU7853PnHO+31FotVotQgghhBB6sDJ3ACGEEEJUHVI4CCGEEEJvUjgIIYQQ\nQm9SOAghhBBCb1I4CCGEEEJvUjgIIYQQQm9KcwcQ4p+kSZMm+Pr6Ym1tXeL2hQsX0rJly0rtq2vX\nrixcuJA2bdqU2y4xMZHZs2cTExODVqtl1KhRjBgxAoDLly8TFhZGamoqrq6uhIWF0bRpUwC+++47\nVq1ahVqtpnHjxsybNw8nJ6dK/T8IISyPFA5CmNjGjRupWbOmuWMUCw0NpUWLFqxevZrExET69u1L\n+/btadCgAZMnT2bKlCkEBARw6NAhpk2bxjfffENcXBxz5sxhx44d+Pj4MH/+fD766CNCQ0PN/d8R\nQhiZTFUIYSFOnTpFv379mD9/Pj169KBr1678+uuvAOTn5xMaGkqPHj3o1asX8+fPR6PRAHDhwgUG\nDRpEjx49GDlyJLGxscW/88KFCwwdOpRnnnmG999/v8x+hw0bxqhRowDw8vKidu3aXLt2jStXrpCZ\nmUlAQAAA3bp1IyUlhaioKA4dOoS/vz8+Pj4APP/88+zfv99ofxshhOWQwkEICxIVFUXLli2JiIjg\n1VdfJSwsDID169eTkJDAd999x86dOzlz5gzffvstACEhIbz++utEREQQEBDAnDlzin/fhQsX+Oqr\nr9i+fTubN28mPj6+VJ9du3alevXqAMTFxREdHU3z5s2Jjo6mdu3aJdrWqVOHa9euER0dja+vb/Ht\nvr6+pKSkkJ6eXtl/EiGEhZGpCiFMLCgoqMQaBzc3N7788ksAHBwc6NWrFwDdu3dn1qxZ5ObmcvTo\nUUaPHo1SqUSpVNKvXz+OHz9Oy5YtSU1N5dlnnwVg5MiRDB8+vPh39+vXD2tra7y8vHB3dychIQFv\nb+8yc2VkZPDaa6/xyiuv4OPjw+nTp7G1tS3RxtbWlpycHHJzc3Fzcyu+XaVSoVAoyM3NLS5ChBD/\nP0nhIISJlbfGwdnZGYVCUfwz6N7Qb9++XeINuXr16qSkpJCamlpiQeLdwuIuR0fH4p+tra2Lpzf+\nLikpiTFjxtC1a1eCg4MBXRGTn59fol1eXh6Ojo44ODhQUFBQfHt+fj5arRYHBwe9/gZCiKpLpiqE\nsCBpaWnFP98d9ndxcaFGjRol7ktLS6NGjRq4urqSlpZGUVERAGq1mhs3bhjUZ1ZWFi+//DIDBgxg\n4sSJxbc3aNCgxHoJrVZLTEwMDRs2pH79+sTExBTfFx0djYeHR3GxI4T4/0sKByEsSF5eHgcPHgQg\nIiKCFi1aYGtrS+fOnQkPD0ej0ZCTk8Pu3bt59tlnqVevHjVr1uTAgQMAhIeHG3xkw5IlS2jfvj0v\nvvhiidsfe+wx3Nzc+OabbwDYuXMntWrVon79+gQEBHDy5EmuXbsGwLp16+jbt28F//dCiKpApiqE\nMLG/r3EA3dqERo0aUatWLX7++Wc++OAD1Go1S5YsKX5MbGwsffr0QaFQ0LNnT3r16oVCoWDp0qVM\nmzaNxYsX4+Hh8cCjJx5ky5YteHp68uOPPxbf9sILLzB8+HAWLVrE22+/zfLly3F3d+eDDz4AdEdf\nzJ49m/Hjx6PRaGjevDmzZs2q4F9GCFEVKLRardbcIYQQusMxZ82axffff2/uKEII8UAyVSGEEEII\nvclUhRBCCPEPkZuby/Tp00lJSSE/P59x48bRpUsXg36HTFUIIYQQ/xB79+7l5s2bjBkzhps3bzJ6\n9GgiIiIM+h0y4iCEEEL8Q/Tu3bv45/j4eLy8vAz+HcYvHNYrjN6FoRTR5k5QWvhQcycobVAzcyco\nm9U75k5QmjbM3AlKs8SxREU/cyco7aX/mjtB2T7vb+4EpSmsH97G1IZ/be4EZftqsGlfgIp3dO+1\n2tn69RsYGEhCQgKrV682uC9ZHCmEEEJUcUor3UVfW7ZsYdWqVUybNg1DVyxI4SCEEEJUcQ42usvD\nXLhwofjL7po1a4ZGo+H27dsG9SWFgxBCCFHF6Vs4nDlzhs8//xyA5ORkcnJycHV1NagvKRyEEEKI\nKs5Oqbs8TGBgILdv32bEiBGMHTuW0NBQrKwMKwXkqAohhBCiitNntAHAzs6ODz/8sEJ9SeEghBBC\nVHH6Fg4ACxcu5Oeff6awsJBXXnmF7t27G9SXFA5CCCFEFafPNAVAZGQkf/75J1u3biU1NZWBAwdK\n4SCEEEL80+g74tC2bVtatmwJgLOzM7m5uWg0mlLf2Fsei1wcmV2gYMrumjR/v1G57dQamH+wBk3m\nNSYhw7Q10KBmg/jllV+4NP4Sx146hp+Hn9H7jDpvz8chvnw4rh6fz65FenLp//MfZx1YPsmXhWPq\ns36ODzmZuk1cpIFvP/Ng8bh6fDShLuHLvMjPNc3JuSJP2jNooC89etRj9Eu1SEgwT73au1FvtLO1\n1K1et9R9QS2DuPDqBWImxbBhwAZU1irTBRs/vvyzNTk6wqZNoFabLtMdFrHtuv8XVlyAVZcgbB+4\n1yq7nbUSRi+Cb7QPblNJrBVKhvkt4ov+Wlztyu6rhWcP3un8Cx889xeT2n2Lo41hK9crg0Vsv7IE\nB8P5C/D7Zdi7D2rXNmucp7z78X63X1j03O/MfvYYtZ2Nvz+vbPoeVWFtbY2DgwMA4eHhdOrUyaCi\nASy0cAhc70ut6g/fSY4Lr4WDyvSnx6vjXIfVfVbTf0t/mq1oxrbft/F5/8+N2mdBnoItH3ozcHwi\nU1ZG07RtNrtWe5Zok5VuzZYPvRk8MZE31vxFzXoF7FvnAcDPh6oTd82WiUtjeH1ZDIVqBT/scDNq\nZoCcHAUhId7MeS+RiIhoOnfJZvZsz4c/sJLZK+2Z320+KTkppe7z8/BjcY/F9Nzck7pL6mJtZc0b\nHd8wTbCaNWHs2PLbnDgBMTGmyXMfi9h2jdrAiHdgVgC82gxifoMXF5TddtZuyMsySayJ7XaTX/jg\nvpxUNQh+6is+O/si076vz42M8wz1+8Ak2e6yiO1XFn9/CJkKnZ6B5k3h0iVYVLHFehXhaudDcJv1\nfHx6BFO/b86J2C/5b6tPzJbnUelbONx18OBBwsPDCQ0NNbgvvQqH7OxsYmJiiImJIScnx+BODPVu\nr0SGPpn+0HbjOqYwsVPpNwJjUxepGbFjBNfTrwNw6Nohmrg3MWqfUecdcPNSU6thPgBPdUvn6q+O\nJUYNYq/YUcNHjU8DXZuO/VK5eLIaAAkxKuo2y0Npo8XKChq0yCUxxtaomQEiIx2oU0eNn58u0+DB\n6Zw47khWlmlPRR7WOYyN5zeSWZBZ6r6u9bty+K/D3Mi4AcCSyCUMbjbYNMGWLoX33iu/zSuvwKef\nmibPfSxi26UnwQeBkJqgu37xGPg+4NPgljnwZZhJYu25ModdVx7cV0M3fxKz/yQ24xwAEVEf0cbH\nRM+pOyxi+5Xl1i14IQjS0nTXDx+Cxsbdf5ZHo1Xz8enh3My8BMCV5J+q5IiDvodjAhw7dozVq1ez\nZs0anJycDO6r3G5+++035s6dS0ZGBq6urmi1Wm7duoWXlxehoaE0aWKcjd2qdh430h7+F2hVO88o\n/T9MQlYCCVm6HZm1wpoXn3yR3Vd2G7XP5DgVbjXvjcLY2mtxcNKQEq8qLhRANyVxl8quiLwca7Iz\nrGjYModDX7nTaaAVSpWWy2ccadQq26iZAaKjVdSpcy+3o6MWFxcN16+raN48v5xHVp4Wni14rsFz\nPP3Z04xrO67U/Vq0WN93Ev6sgiwec3vM+MF69gRnZ9i2rfx2kZFQt/T0irFZwrbjVozuctdTveCP\nU2W3vRJpmkxAVGr5fWm1Wqzue07la7JxsHGhmsqdrALTfNixiO1Xlqgo3QXAzg5G/Af2GHf/WZ6M\n/CTOJd77dsgnavbiauoDnmMWTN/RhszMTBYuXMi6detwcXF5pL7KfXeeN28ec+fOpWHDhiVuv3jx\nIu+++y6bN29+pE7/v5jYbiKhnUK5evsqA7YOMGpf6nwFSpuS0zJKVREFefc+Pfg2zSUl3oar5+xp\n2DKXn3a7YmWtpbDAiubtsrkYWY15LzbAWgk+DfJo+9zDR3UqKi9Xga1tydy2tkXk5pjuU8/qPqt5\nbd9rFBYVlnn/oWuHmNt1Ln4eflxOvsz4p8djp7Qzbig7O/jwQ+hngd/6dIclbLsSuozUFQ5T25un\nfwNEpZ7Ey7ERzWp05VLyYXo0DKGwSI2NlZGfV/exuO33d/MXwCvBcPwn+GChudMA4OfRld6NJvPe\nj13NHcVg+hYOe/fuJTU1lUmTJhXftmDBAnx8fPTuq9zCQavVlioaAPz8/NBoNGU84tFsOuPCpjO6\nymdKl2Sea2KaecqKWnZqGctOLSOwRSAnRp+g+crm5BUaZxREZVdEobrkC16db4XK7t6OwdG5iOHT\n4tm/3gNNoYI2z6VjoyrCzlHDiW9dyE5X8vbmKKyVWr751JPv1nrSP/iWUfLeZe9QRH5+ydx5eVY4\nOJpmbcrYp8bye/LvHI89/sA2l5Iv8dq+19jy/BbyC/P5/NfPSctLq/ww48fDhAm6n7Va3YLHa9cq\nv59KYrZt12c89L3zd1o/AyJ3Qe9XoX8IvNUV0hKN238lyCpIYeWZoQzz+wBrKxt+jPkMtSaX3ELj\nF+t3mfu1V8K48TD+zjZ9awbs2gXT34S3ZsLkEDhwEDr6mz7Xfdr49OfFJ5bzwfG+xdMWVYm+0xTD\nhg1j2LBhFeqr3DUOTzzxBMHBwYSHh3P48GEOHz7M119/zcsvv8zTTz9doY7vN7JNGvuDo9kfHF0l\nioamNZrSrX634utbLmzB2dbZqOscPGqpSYm/V1LmZVuRm2VFDZ+CEu0at85hwuLrvL4shubtsnBw\nKsLWXsufvzrg1z4Lla0Wa2to0SGLvy7aGy3vXQ0aqLl+/V7uzEwr0tOtqFu3oJxHVZ7+TfrTv0l/\n4qfEEz8lnjrOdfjfmP/RuV7nEu02nNvA46sep82aNvyW+Bu/Jf5W+WFWrIBmzXSXoiKYOBHi43UX\n0P1bRqFuLmbbdt+t0C2EfLWZrmjo9gL0mQAzOkHiX8btuxJduBVB2A9P8faRlpyN30VWQQp55Syo\nrGzmfu2VsHIF+DXTXW7ehHbtdLdrNLB6FbRvD9Wrmz7XHS08uzGq5VLm/dSda2k/my1HRRiyOPKP\nP/4gICCATZs2PVJf5RYOM2bM4OWXXyYuLo6jR49y9OhRbt26xYQJEwgJCXmkDv8/8HDwYMPADXhX\n8wagQ50O2FjbcC3VeJ8eGzyeQ1qSDdG/64Y6f9rjStM22SVGHPJyrFg8rh5pSUq0WjjytTutu+o+\n4Xj4FHDlrAN3B4qunHHEy9f4O5B27XKIi7Ph5zO63OvWudK5SzYODqb51NPnyz54LfLC+0NvvD/0\nJjYjlrZr2nI0+mhxm4auDfnllV+oblsdpZWSmf+aybpz64wbrEUL3REV3t66C+j+vTv3awHMve0A\ncPOBUe9DWE+4HW+6fivITunEvG6XcbOvA8C/m7zN8dh1Js1gEduvLE2bwupPdet7QDddFxMD6aYb\njbmfytqe4Ke+4KPIQcRlXjZLhsqgb+GQk5PDnDlz8Pd/9BGehw5utG3blrZt2z5yB4a6mGDLlF3e\nFBaBRqug5+p6AOwPjuZ8nB1Lf3Bn7fCbJGdZM3JTneLHBW2ujbUC1v/nBl5OZc9lV5Zj148x99hc\nDo46iJXCivzCfALDA8tcsV9ZbGy1BE6JZ8+nXhTkKXD3VvP8xATSU5R88U4tJi2Lwc6hiI7/TmXN\nW3XQauGxJ3Lo/Lzu61K7DL3Nnk89+Wh8PRRWUMOngAGvGneaAsDOTsuHi+N5910vcnMV+PqqeX9+\ngtH7fZi2Pm2Z02UOPTf3JCo1it1XdnMu+BxatHx14Ss2nNtgvnADBuh2pi+/DK1awZdfgo0NKJW6\nQ9dAN2phZBax7bqOArtq8O6Be7dpCmHC49CoLYycA7N7gosnvP/DvTbzjkJRIbzVDW7HVWokZ1tP\npne819ebHY9SpC1k4YluTPGP4O0jj5NXmMmBqI+Y3vEHFAorfk/6nm//mFepOR7GIrZfWTZuhMca\nwclToFDojq4IHGq2OG28++Nk68H4p0uu2Zvzw7Ok5xt/H1lZ9J2qUKlUrFmzhjVr1jxyXwqttrwz\nz1SC9RayEOc+imhzJygt3HyvmwcaZPz3pkdi9Y65E5SmDTN3gtKM/Mp+JAoLXAv60n/NnaBsn/c3\nd4LSFIadJ8gkhn9t7gRl+2qwaV+Am3/Tvdf+53H9+l2+fDmurq6MHDnS4L4s5DRiQgghhHhUhpz8\nqaKkcBBCCCGqOCkchBBCCKE3fdc4VAYpHIQQQogqTt8RhwsXLrBgwQJu3ryJUqkkIiKC5cuXG3QW\nSSkchBBCiCpO38KhRYsWbNy4sUJ9SeEghBBCVHGGTFXMmzePc+fOoVAomDlzJi1btjSoLykchBBC\niCpO3xGH06dPExMTw9atW4mKimLmzJls3brVoL70+lptIYQQQlgufc8cefLkSQICAgBo2LAh6enp\nZGUZdip0KRyEEEKIKk7fwiE5ORlXV9fi625ubiQlJRnUl9GnKrQvGLsHwxWZO0AVEXrE3AnK9nQt\ncycow3VzByhNsc3cCcpQz9wBSqtZzdwJqg5t5X0pcqX50twBLITNI56o8lFOHi0jDkIIIURVl3Pn\n8hCenp4kJycXX7916xYeHh4GdSWFgxBCCFHV6Vk4dOzYkYiICAAuXryIp6cn1aoZNuwmR1UIIYQQ\nVV2efs1at26Nn58fgYGBKBQKZs+ebXBXUjgIIYQQVZ0eow13TZ06tUJdyVSFEEIIUdXpOVXxIKdP\nn8bf358jRx6+Kl5GHIQQQoiqrgJFw/Xr1/niiy9o3bq1Xu1lxEEIIYSo6vLQe53D33l4ePDxxx/j\n5OSkV/sqMeIQedKehQs9yM6xopaPmnnvJ1KzZqFkssBMRRo4v7MGfxx0o+/713BwLd3/18GNcfIq\nKL5u71JI58k3jJbpX779GPvUu9hY25KRl8L848FcS71YZttGbi1ZN+AMr+17jrPxP1R6lu+OOLFq\nsxvqQgWN6+Uzb2oiTtVKn1kk4sdqrNzsRn6BFa7OGt6ZlEjj+gXsiHBm7goPPNzvHVA/sn8aIwek\nPXqm806sOuqGukhBY8985g1KxMmudKZdvzix5pgb2flWtK2Xy9yBiaiUWrLzFbz3rSdnY+0p1MDE\nbin0fzLzkfOUonKEwE+g9TCY9IAz3Dw5GPq+V/I2r6Yw1QnyDTsrnj6sFEp6NpzPv+pO4f2fapOR\nf7N0bOtqDG62Ft/q7SnQ5HAg6i0uJu2o9CzlsYR9gmQykQqMONjb2xvU3uILh5wcBSEh3qz57CZ+\nfvls2ODC7NmefPJJnGSywEw/rayFW72Hl7293ok2fhjAw8GH0GfXM/abjvyVdonBzV5l+jOfMPab\nZ0q1VaDgjY6rSMlJMEqWuEQlcz72YMfK6/h4FTJ/dQ0++qIGoa/dKtVu9lJPtq+8Ti2vQtbvcGHm\nopqEr9CdZeq5Z7KY/0Zi5WRKUzLnWw92jLuOj0sh8/fV4KPvaxDar2SmPxJVvL/Pk13jYqhZvZCp\n22qy5pgr47vcZuVRd3LUVuybGM2tTCXPr/altW8uddwqaccbcgIuflt+m1+36y53tRqiKzSMUDQA\njGq5mxsZ/yu3TZ9Gi8ksiGfB8brUcGjMgKaruZS8myITnUXJUvYJkslE9Cwctm3bxrZtJc8O99pr\nr/Gvf/1L764sfqoiMtKBOnXU+PnlAzB4cDonjjuSlaWQTBaYqXmfFFr0SzFpn+UpLFLz9pHh/JV2\nCYBziT/RwMWvzLaDmgXzR8qv3MiMMkqWQyeq4d8qBx8v3Rvq870y2P9D6eOnlUotH85MoNaddv6t\ncvgrVs9vsDE006Vq+DfMwcflTqanMth/oXSmyGsOtG+Qg7dLIQoFvNAhjQMXde1OXHVgUKsMrKyg\nZvVCApplcehyJZ6OccsrcPxT/dsrbXWjD7vfqLwMf3P4rzkc/CvsgfdbK1Q84TWcI3/NBSA55w8+\nO9vVZEUDWM4+QTKZiJ5TFUOGDOHrr78ucTGkaIAKFA4ZGRmP+lCDREerqFNHXXzd0VGLi4uG69dV\nJulfMhmmRgP9JtkiP6/J/rC6HF5Um+QoO6PlSc1LIvJGRPF1/9q9uJh0qlQ7N3svhvm9zqozM42W\nJfqGDb4+97aRr7ealDQl6ZklX4ae7ho6PqX7+FCogZ0HnOnWIbv4/ktRtgSF1KbHC/WYuciLzKxH\nr/+jU2zwdbsvk5ualGwl6bklf6cCKLpv9sJBVcT127rnlkIBGu3f7kupxOdddKRh7f1fhmvHIfla\n5WX4m+sZ5Weq4dAIdVEuT3m/yKT2FxnX5hQNXbsZLU9ZLGWfIJlMpIJHVRjikfc4EyZMqMwcD5SX\nq8DWtuS5tG1ti8jNMV81KJkqpsEzaTTtfpueYTE06pzGTytrUZBj/MGvNj5dGd5iMksiJ5e6L6T9\nEtb+8i5ZBelG6z833wqV6t42Uqm0KBRacvPK/r+v3+FCx+cbcuY3e6aO0X0JTb3aBXTrkM2q926y\n65MYsnKsmLfKsNPFlshUYIVKeV8m5Z1MBSUz+TfM4XiUA38kqijUwOZTLuQX6p5bHRrm6K6rFcSl\nKTl4qVrxfSanUEDXKXBokXn6v8NO6YK90oXCojyWRPrx/bW3+c/j4dgrXR/+4EpiifsEyWREFSgc\njh49SlBQEMeOHWPx4sWMHj263PblrnHYvHnzA+9LTKycOdaHsXcoIj+/5AbMy7PCwfERv9GjEkim\nimkz8t78eZ02Wfy+z52UKHu8H88u51EV06luf6b6LyfkQN/iaYu72tXqjrOdOxFRlf91OZt2ubBp\ntwsANtZaPO6b988vUKDVKnCwL/tr114YlMaogWl8d8SJwNd92bs2mtZ+ebT2uzeq88rw2/x3hmHf\n+rUp0oVNkfdlcrovk/pOJlXJTI95FvB2nyRCtnqjUmoZ3Dq9eAHluC4pvPetJ//+uC6+7mo6NcrG\nxroCz7tO46HTnQ8me2bA+V36P7aev25dQ8Lvj95/JcgrTEehsCby5ioA/rx9gLS86/hWb8+VlH0m\nyWCJ+wTJZEQVGG3o3LkznTt31rt9uYXDunXr8Pf3x9PTs9R9hYWmWXHaoIGafXvvHSKSmWlFeroV\ndesWlPMoyWQJmcqizlOQm6bEuea9oUGtBhQVeaN5iLY+3Qhpv5SJ+7sTnXa51P2d6w2kiXsr9o6I\nB8DZ1o353XbwUeQk9l3dWKG+Rw64d8TD5t3V+d95h+L7om/Y4OFeiPPfjqqIilGRmKykw1M5KBTQ\nt2smc5Z78lesChdnDbYqLW4uurlyjUaB0trATO3TGNn+TqZT1fnfX/dlSrHBw6kQ5zKKmYGtMxjY\nWjdF+b+/7GnspZsTdlBpmTfo3geJGTu8eLpermGh7vfjCt3lUbToC7/vffS+K0l6fiwAttZO5Bam\nAqBFY9I1Dpa4T5BMRvSIh2I+inLHh1esWEF0dDRjx45lwoQJJS4+Pj4mCdiuXQ5xcTb8fEY3D75u\nnSudu2Tj4GC+alAyPbrcVBsOL/Ql85ZusV/C7w7kZ1vjXt84z3pba3ve7vQF0w8OKrNoAFhw/FV6\nbPKg95fe9P7Sm/O3TjD90KAKFw1/F9Axm5O/OHDtzkLHddtd6dul9Fqh2+nWvLGwJonJuorg5wt2\nqDVQx1vNV99UZ9ZiL9SFoNHAxl0udG736EcOBDTL5uQ1B64l3cl03JW+LUtnikmxof/HvmTkWqHW\nwOof3RjUStfu0x9dmb+vBgBXb6k4GeVAt2bGOZrhoWo9AQmXHt7OyPIK0/kzJYJ/1dWd2reO89O4\n2tV76JEYlckS9wmSyYgqMFVRWFjIm2++yfDhwxk6dChnzpwpt71C+5Av487NzcXW1hYrq5I1xsWL\nF/HzK3t1+v20VHye6NQpe+bN9SQ3V4Gvr5r35yfg4WHeL4b/J2QKffiZR0vIy7DmyId1AMhMVFHN\nowCFFTw76QY/Lq9Fz9AYAKIjnbi83w2tVoHKQcMTQ5L0XlQJcMCAgx66NwhkVqcviM+KLnH76/t7\nsLj7d4zY8Xipx6zsc4TPzoYZdB6HUz30a7f3aDWWb3BHo1HQ/LF85k5NwNFey/nLdiz9wp21C3Tn\nA9i8uzqbd7tQpFWgstEy5eVknm2XTW6egneWeXL2oj0KBbT2y2Xmq0llngsCPdcU7v2tGssPu6Mp\nUtDcO5+5AxNwtNVy/oYdSw+6s/ZFXaZlh9zZedYZhQL6tMxkSnfdV/MmZ1kzeas3cWlK7Gy0hPa9\nRbsGDxhx+FG/TMVqt4IXvwQrG/BoCIl3ir/3mkHdttBnDqzsea/99HOwaxpcPqB3FzMGGBapmsqT\nMa11zw1Px6ak5FxFoy1k7S/deOnJCJae0j2nnFTeDPXbgLv9Y+QVprPv6jT+vP293v3Mq4S1lP+E\n/ZSlZlJg4sJjzJ332jWG97t9+3Z+++03wsLC+PPPP5kxYwbh4eEPbP/QwqGiKqNwEOZhaOFgKoYU\nDqaib+FgUgYejGAShhYOJmBo4WAqlVE4CPMxeeEQdOe9dqPh/arVaoqKirC1tSUlJYVhw4Zx8ODB\nB7a3+BNACSGEEOIhKrA40sbm3nli1q9fT9++fcttL4WDEEIIUdVVwpkjN2/ezMWLF1m9enW5v0MK\nByGEEKKq03OZ2JAhQxgyZEip27dt28bhw4dZuXJliRGIskjhIIQQQlR1FZiqiI2NZcuWLWzatAlb\nW9uHtpfCQQghhKjqKlA4bNt2DPPUAAAHnElEQVS2jbS0NMaOHVt829q1a1Gpyj7tthQOQgghRFVX\ngcIhJCSEkJAQvdtL4SCEEEJUdRU4h15KSgpvvvkm+fn5qNVqZsyYwRNPPPHA9hb/tdpCCCGEeIgK\nnDlyz5499O/fn40bNxISEsLSpUvLbS8jDkIIIURVV4Gpipdeeqn45/j4eLy8vMptb/QzRwohhBDC\nsiUlJREcHEx2djbr168vt3iQwkEIIYT4hyjvBFAAP/zwA+vXr+fzzz9/4O+QwkEIIYT4Bzt9+jRN\nmjShevXqALRr145Tp049sL0sjhRCCCH+wQ4cOMDOnTsBuHLlCt7e3uW2lxEHIYQQ4h/s9u3bTJ8+\nnezsbAoKCnjrrbd48sknH9heCgchhBBC6E2mKoQQQgihNykchBBCCKG3KlE4zJs3j2HDhhEYGMj5\n8+fNHafYH3/8QUBAAJs2bTJ3lGILFy5k2LBhDB48mAMHDpg7Drm5ubz++uuMHDmSIUOGcOTIEXNH\nKpaXl0dAQAA7duwwdxROnTpF+/btCQoKIigoiDlz5pg7UrE9e/bw73//m0GDBnH06FFzx2Hbtm3F\nf6egoCBatWpl7khkZ2czYcIEgoKCCAwM5NixY+aORFFREW+//TaBgYEEBQURFRVl1jx/31/Gx8cT\nFBTEiBEjeP311ykoKDB7JoANGzbg5+dHdna2yfNUFRZ/5sjTp08TExPD1q1biYqKYubMmWzdutXc\nscjJyWHOnDn4+/ubO0qxyMhI/vzzT7Zu3UpqaioDBw6ke/fuZs105MgRWrRowZgxY7h58yajR4+m\nS5cuZs1016pVq4oPP7IETz/9NMuWLTN3jBJSU1NZsWIF27dvJycnh+XLl9O5c2ezZhoyZAhDhgwB\ndPuHffv2mTUPwM6dO6lfvz5TpkwhMTGRF154gf3795s106FDh8jMzGTLli1cv36duXPn8sknn5gl\nS1n7y2XLljFixAh69erF4sWLCQ8PZ8SIEWbNtGvXLlJSUvD09DRZjqrI4kccTp48SUBAAAANGzYk\nPT2drKwsM6cClUrFmjVrLOoJ1rZt2+JzjDs7O5Obm4tGozFrpt69ezNmzBhAv1OZmkpUVBRXr141\n+5ugpTt58iT+/v5Uq1YNT09PixoJAVixYgXjxo0zdwxcXV1JS0sDICMjA1dXVzMngujoaFq2bAmA\nr68vcXFxZtsflLW/PHXqFN26dQOgS5cunDx50uyZAgICmDx5MgqFwqRZqhqLLxySk5NLvAjd3NxI\nSkoyYyIdpVKJnZ2duWOUYG1tjYODAwDh4eF06tQJa2trM6fSCQwMZOrUqcycOdPcUQBYsGAB06dP\nN3eMEq5evUpwcDDDhw/n+PHj5o4DwI0bN8jLyyM4OJgRI0aYfOdenvPnz+Pt7Y2Hh4e5o9CnTx/i\n4uJ47rnnGDlyJG+++aa5I9G4cWN++uknNBoN165dIzY2ltTUVLNkKWt/mZubi0qlAsDd3d3k+/Wy\nMlWrVs2kGaoqi5+q+Ds5evThDh48SHh4eLmnDDW1LVu2cOnSJaZNm8aePXvMWtHv2rWLJ598kjp1\n6pgtw9/Vq1ePCRMm0KtXL2JjYxk1ahQHDhwo3rGaU1paGh9//DFxcXGMGjWKI0eOWMQnsvDwcAYO\nHGjuGADs3r0bHx8f1q5dy+XLl5k5c6bZ1848++yznD17lv/85z80adKEBg0aWOz+01JzibJZfOHg\n6elJcnJy8fVbt25ZxCcMS3Xs2DFWr17NZ599hpOTk7njcOHCBdzd3fH29qZZs2ZoNBpu376Nu7u7\n2TIdPXqU2NhYjh49SkJCAiqVipo1a9KhQwezZfLy8qJ3796Abli5Ro0aJCYmmr24cXd3p1WrViiV\nSnx9fXF0dDT79rvr1KlTzJo1y9wxADh79izPPPMMAE2bNuXWrVtoNBqzj/hNnjy5+OeAgACL2G53\nOTg4kJeXh52dHYmJiRY17SvKZ/FTFR07diQiIgKAixcv4unpKcNJD5CZmcnChQv55JNPcHFxMXcc\nAM6cOVM88pGcnExOTo7Z53+XLFnC9u3b+frrrxkyZAjjxo0za9EAuiMX1q5dC+i+pS4lJcUi1oM8\n88wzREZGUlRURGpqqkVsP4DExEQcHR0tYkQGoG7dupw7dw6Amzdv4ujoaPai4fLly8yYMQOAH3/8\nkebNm2NlZTm7/A4dOhTv2w8cOFD8JUvC8ln8iEPr1q3x8/MjMDAQhULB7NmzzR0J0H2SXrBgATdv\n3kSpVBIREcHy5cvN+oa9d+9eUlNTmTRpUvFtCxYswMfHx2yZAgMDeeuttxgxYgR5eXmEhoZa1M7L\nUnTt2pWpU6dy6NAh1Go1YWFhFvGm6OXlRY8ePRg6dCgAs2bNsojtl5SUhJubm7ljFBs2bBgzZ85k\n5MiRFBYWEhYWZu5ING7cGK1Wy/PPP4+trS2LFi0yW5ay9peLFi1i+vTpbN26FR8fHwYMGGD2TB06\ndODEiRMkJSUxZswYnnzySd544w2T5qoK5JTTQgghhNCb+T86CCGEEKLKkMJBCCGEEHqTwkEIIYQQ\nepPCQQghhBB6k8JBCCGEEHqTwkEIIYQQepPCQQghhBB6+z9dYnxdCp35BQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nCCGEEEJn/wcQNhgqFiX+NgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nHRxh72OZzocAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\np06dAGjUqBEajYaysrJK39hbE8tcHDlhAsTHw/nz8O230KxZ1e3s7GDZMt2Zbpo2NVmcYR2G8X//\n+D/OTTzHsVePEeQdVKnNY80fI3ZsLOcmnuP0+NM8GvioyfLUJacSYmMaMmxoIP37t2DMq01JSzNf\nvdq8cXNuzL3BuYnn9JdNQzZV276TbyduzL1Bn+Z9zJZR78034dy525eLFyEry/w57qDEY3f+/xqy\n6PVA5r7agn/NbEpuZsU+L/3bkXfHtKhwmTCgDVf+Y1+h3a5PvJgddp9JMpaXQtwOLz4f05bCnJq3\nSXayPV+Ma8PV8w1NkqUmSr729Dp0gNhY3fM5Lk53/W7Dh1d87p87pxvXXVzqPY61jOfGMvSoCltb\nW5ycnACIjIzkscceM6poAEuccejZE6ZPh27dIC8PVqyA5cth5MjKbfftg59/NmmcgEYBrHtmHd02\ndCM5P5k3e7zJ5899To9Pe+jbONo5snvEbvpv7c+Zq2d4tt2z7AzZid9yP5NmMzanEtRqFVOn+rHh\n0xSCgorZvNmN+fN9WL8+1WwZUq6n0GFNFYPVXVSoWPvMWtIK0syQqgqrVukut8yYAbU4HWx9UeKx\nK9ao2LDYjzcXp9C8TTFH9rixdZUPbyy63WerjkUs+jxRfz3hnCM7PvahaYsb+tsuX7LnlxP1/6Zz\ny+HVTfG6r+ie7bTlELPFF6dGpSbLUh1LeO1hYwNffQVz5sCePfDii/D3v8O0aRXb7d6tu9wSEqIb\n8wsK6jWOtYzntWHMGgeAw4cPExkZqT800xgGzTgUFhaSlJREUlISarXa6E6MkpEBYWG6ogHgyBFo\n167qtosWwYIFJo1TUl7CqK9GkZyfrIuTcIR2nhXz2NvaM3b/WM5cPaNv08SlCW6ObibNZmxOJcTG\nOhEQUEJQUDEAw4fnc+K4MwUFlnfu2gndJvBL2i9cyr2kdBTw8YHXXtM9xxWixGN3/hcnvPxKaN5G\n12fvp/P592lnitTV9xmx1puQ8Zn60yGXl8O21b4893K2yXJ2GZxN1yH3vv/z0Y3xCCzG1afEZFmq\nYxGvvV69oLRUVzQAbNtWuWi4m4MD/M//wNtv13scaxnPa8PQwzEBjh07xrp169iwYQOurq5G91Vj\nN7///jvvv/8+165dw93dHa1WS0ZGBr6+vsybN4921b2h18WlS7oLgKOjrkLdt6/qtrGx9d//XdIK\n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\nOAghhBDCYP8PUSE4g+g54zkAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nMDRaJZsWjAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n1aiws6uesdvZVaEpUS4blJhq52zvTFfPrvyY/CMdV3Zkw/ENfDn2S6xV1cfOPvn5EyIOROD/kT8r\nDq/gq/Ff0dyuudnirM1/N7nTbUQutmpZ+R6AASG6xOEL4xeHuVWaUitsrzuWbW21qFRaNKV1N1cJ\nR5qybrMLs1/U3aynje8VHulXzKqINLZHJlNUbMXCD41bVrexs4Q24e8kJhO6hcQhLi6O0NBQ4uPj\nWbZsGRMmTKi3fL0zQDZu3Fjna1lZWTcXoZGaqqsoK6u+A0tLrVA7KHe3FYmpdgVlBWQVZbHz950A\nrD26lqWDltLetT2nck7pyz339XP6n7f8toU3+r9BX9++fHv2W7PFer20E2rKiqxpe/9ls9e9IdGZ\nDYd1k/ZeCchhUCfTzBuo07AXYPhfXwKiZsOh7TD0eRgZBm8+DPnmOc83bHXWT15sYqPFvcW1eSZl\nZSq0WhXqprUndXt/dGD++x6sjkjTD1v06FpKj67XvvE/F3qJf77S8JM4LZkltAl/JzGZ0C30NgwY\nMIABAwYYXL7exCEyMpI+ffrg4VFzokhFhXkmkLVtW863u65dInL5shUFBVa0bn3FLPVLTIZLzk/G\n0c4RFSq06E66Km0Vldprk8Mcmjjg4+TDH7l/6J+zsbKhvEq5eQWp/9eMS6n2bA5rC8CVYmviPvKm\nZ1A27fqaNpkI6Z1PSO+Gm7RntF0rddtVDz+jSyTm9IdLGWYLI2RMvn7y4sYvm/PfX9T615IuNMHd\ntQInx5qJw8H/qlnwgQefLUujXZtrx3pGlg12tlpauOiOvcpKFTaNcKL8rbCENkFiMiMzjozVO1Sx\ncuVKkpKSmDx5MtOmTau2eXt7myXA3r1LSE9vws9HdJczRUa6MGBgMWq1ctmgxFS749nHSb+czj97\n/BOAJzs/SV5pHucundOX8W3uS8LEBNq5tANgUNtBuKndSLxQx1i6Gdwfms24988xdtl5xi47j3s7\nDQOmpps8abA4LbwhdBHMG2LWpOHvAvoVk/CzmvMpTQCIjHbhsYCac6o0pSpmL/Jk+YL0akkDwBfb\nm/NGhCflFVBZCVFbnRnQx8y9OQqzhDZBYjKjWxiqqKio4LXXXmP8+PGMHTuWI0eO1Ftepb3Bzbg1\nGg12dnZYWVXPMU6ePIm/fx0zrq+j5dbHiRITm7JwgQcajQo/v3IWLc7E3V2ZS5xup5is3jL+dzq5\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nEEIInf0fE6ehDFzRm3EAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nEEIIIYTe/g+Xh90/kMqaewAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n2qs1MX/EmCfMX7fzoUOhd2/dRDE3N9iwAdatK/szOTnGfR5MSOl1Z4ns7EsoKCi9TAryrLB3uLdM\nHJ1LKCmBoBd1w+5tn1Dj4V3ExTMOVZpVsfX3MNv5XVOmQK1aupGKPXvMFrFX4xf5uNcahnzTR3/a\n4i4fZ1+W9FhNt7VP0HiZB2Fb+xHZfytONZzMlscUDD1VMXjwYA4ePMjatWv1D2OKBnhA4dC2bVtG\njx5NdHQ0+/btY9++fWzatIkRI0bwxBNPGNVRhZYvvzfJ8fhxqPmXc0l3C5T7FSp9+sCOHabL8jcv\nNnuRF5u9SMqEFFImpFDXtS6/jPyFzvU7G9XG3BKzE3Gxc0HFvR1FibZE0dEGgIYNC7l69V4pfPu2\nFTk5VtSrV1Al/bvZu1HfrX6p16ytrCksKSzTtnfT3uy+vJsSrZmOCv+6nbdvDzExcPfLZaKi4Nln\ny/5MYqJxnwcTUnrdWSK/gELSku8tE/UdK3LvWOFT594y8fDUjTrmqe/tXq2stFhZVW3Bpdj6e5jt\nvH173QRK0G3bn34KTz1Vets3kWfrPcfc55YwcNPz/Df117JR/DqQmH2Zsxm6ydGHkn6kRFtMU4+q\nu5rpYRgzOfLChQsEBQWxrqIirgIVFg7Tpk1jxIgRXL9+nbi4OOLi4rhx4wZjxoxh/PjxD9XhA+3d\nC76+0K2b7vmoUbr5C/n55bdv21ZX2ZpJ7w298V7oje8iX3wX+ZJ0K4n2q9oTlxBnVBtzO3njJNdv\nX+e1droZ9wNbDiQrL4tLNy9VWYbyPPmkmuvXa/DrMd0lcmvWuNO5Sy6OjlWzE23v1559Q/dR27E2\nACPbjeRqzlUuZ5WdD9PWuy1nM8y3LZVy/jw89xw4/HkU2ru37lK0vzP282BCSq87S9TqMTUZqTU4\nd0K3THZsduexwNxSIw5OLiW0aa/m+yjdFwf9ccae9NQaNGpeNfMw7rKI9Wfodt68OXz2Gbi66p73\n7asrmnNMO6/AwcaBZT2/ZNi3L3Hh5rly21zKukDz2q2o66q7pL6N92O42tXkSray+9IHMbRwUKvV\nREREEBgY+NB9PXBgo3379rRvX4XXsKrVugk0K1fqrpZITIT/+Z+7YSAiAnr85XxTnTqQmlp1+f7U\n3q89EV0i6LHecs59Ddw0kDX91jC141Ru5N4geHOw4iMO9vZaFi1OYfZsbzQaFQEBhbw/r+rW1+7L\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg4AAABkCAYAAADuS7gsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XlcVPX+x/HXALKD4MKmorkr7jcq\nt1wiEfcNRQW7aZql/iyXcrtKUqam3tQszfKKS0riTe264EqpCV61NLdSCUQ22UXZYX5/kEPE4oDM\nnOH2eT4e80jmfIfvu3NmvnzO9yyjUqvVaoQQQgghtGCkdAAhhBBC1BxSOAghhBBCa1I4CCGEEEJr\nUjgIIYQQQmtSOAghhBBCa1I4CCGEEEJrUjgIoUOtWrXi5Zdfpn///iUeV65cqfa++vbty4ULF7Rq\ne+bMGbp27cqnn35a5vKbN2/i5uZGeHi45rmtW7fi5eWFp6cnCxcuJDc3F4Dc3FwWLlyIp6cnXl5e\nbNu27en/Z4QQBstE6QBC/K/bvn07Tk5OSsfQ+Pbbb9m5cydt27Ytc3lhYSH+/v7Uq1dP89xPP/3E\ntm3b2LdvHzY2NsycOZPt27czadIktm7dSnp6OocPHyYzM5OhQ4fSuXNn2rdvr6//JSGEHsmMgxAK\nCQ8PZ/DgwSxfvhxPT0/69u3LTz/9BEBOTg6LFy/W7MUvX76cgoICAK5evcqIESPw9PTE19eX6Oho\nze+8evUqo0ePpkePHnz44Ydl9tu0aVO2bdtG/fr1y1y+a9cuWrdujaurq+a5I0eOMGDAAGxtbVGp\nVIwcOZIjR45olo0ePRojIyOsra3x9PTULBNC/O+RwkEIBd25c4cOHToQEhLCG2+8gb+/PwCBgYHE\nx8dz8OBBvvnmGy5cuMB//vMfAGbNmsXMmTMJCQnBw8ODgIAAze+7evUqu3btYu/evezcuZO4uLhS\nfbq5uWFqalpmnsTERLZt28asWbNKPB8ZGVmikGjUqBEREREA/PbbbyWWubq6apYJIf73yKEKIXTM\nz88PY2Njzc916tThq6++AsDS0hIvLy8A+vXrx6JFi8jKyiI0NJSJEydiYmKCiYkJgwcP5uzZs3To\n0IHU1FR69eoFgK+vL2PHjtX87sGDB2NsbIyjoyN169YlPj4eZ2dnrbMuW7aMadOmYWtrW+L5rKys\n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\nKRyEEEIIobUaUTgsW7aMMWPG4OPjw5UrV5SOo/Hrr7/i4eHBjh07lI6isXLlSsaMGcPIkSM5evSo\n0nHIyspi5syZ+Pr64u3tzalTp5SOpJGdnY2Hhwf//ve/lY5CeHg4L7zwAn5+fvj5+REQEKB0JI0D\nBw4wZMgQRowYQWhoqNJx2LPGjyJBAAAF7klEQVRnj2Y9+fn50blzZ6Uj8ejRI6ZPn46fnx8+Pj6c\nPn1a6UgUFhbyj3/8Ax8fH/z8/Lhz546ief48XsbFxeHn58e4ceOYOXMmubm5imcC2LZtG25ubjx6\n9EjveWoKg79z5Pnz54mKiiIoKIg7d+6wYMECgoKClI5FZmYmAQEBdO3aVekoGmFhYdy6dYugoCBS\nU1MZPnw4/fr1UzTTqVOnaNeuHZMnTyYmJoaJEyfSp08fRTM99tlnn2kuPzIEzz33HOvWrVM6Rgmp\nqals2LCBvXv3kpmZyfr16+ndu7eimby9vfH29gaKxofDhw8rmgfgm2++4ZlnnmH27NkkJCTwyiuv\ncOTIEUUznThxgoyMDHbv3s3du3f54IMP2LRpkyJZyhov161bx7hx4/Dy8mLNmjUEBwczbtw4RTPt\n27eP5ORkHBwc9JajJjL4GYdz587h4eEBQLNmzUhPT+fhw4cKpwJTU1M2b95sUG8wd3d3zT3GbW1t\nycrKoqCgQNFMAwYMYPLkyYB2tzLVlzt37nD79m3F/wgaunPnztG1a1esra1xcHAwqJkQgA0bNvDm\nm28qHQN7e3vS0tIAePDgAfb29gongsjISDp06ACAq6srsbGxio0HZY2X4eHhvPTSSwD06dOHc+fO\nKZ7Jw8ODt99+G5VKpdcsNY3BFw5JSUklPoR16tQhMTFRwURFTExMMDc3VzpGCcbGxlhaWgIQHBzM\niy++iLGxscKpivj4+DBnzhwWLFigdBQAVqxYwbx585SOUcLt27eZOnUqY8eO5ezZs0rHAeDevXtk\nZ2czdepUxo0bp/fBvSJXrlzB2dmZ+vXrKx2FgQMHEhsby8svv4yvry/vvvuu0pFo2bIlZ86coaCg\ngIiICKKjo0lNTVUkS1njZVZWFqampgDUrVtX7+N6WZmsra31mqGmMvhDFX8mV48+2fHjxwkODq7w\nlqH6tnv3bm7cuMHcuXM5cOCAohX9vn376NSpE40aNVIsw581adKE6dOn4+XlRXR0NBMmTODo0aOa\ngVVJaWlpfPLJJ8TGxjJhwgROnTplEHtkwcHBDB8+XOkYAOzfvx8XFxe+/PJLbt68yYIFCxQ/d6ZX\nr15cunSJ8ePH06pVK5o2bWqw46eh5hJlM/jCwcHBgaSkJM3P9+/fN4g9DEN1+vRpNm7cyBdffIGN\njY3Scbh69Sp169bF2dmZNm3aUFBQQEpKCnXr1lUsU2hoKNHR0YSGhhIfH4+pqSlOTk5069ZNsUyO\njo4MGDAAKJpWrlevHgkJCYoXN3Xr1qVz586YmJjg6uqKlZWV4tvvsfDwcBYtWqR0DAAuXbpEjx49\nAGjdujX379+noKBA8Rm/t99+W/NvDw8Pg9huj1laWpKdnY25uTkJCQkGddhXVMzgD1V0796dkJAQ\nAK5du4aDg4NMJ5UjIyODlStXsmnTJuzs7JSOA8CFCxc0Mx9JSUlkZmYqfvz3448/Zu/evXz99dd4\ne3vz5ptvKlo0QNGVC19++SVQ9C11ycnJBnE+SI8ePQgLC6OwsJDU1FSD2H4ACQkJWFlZGcSMDEDj\nxo25fPkyADExMVhZWSleNNy8eZP58+cD8P3339O2bVuMjAxnyO/WrZtmbD969KjmS5aE4TP4GYcu\nXbrg5uaGj48PKpWKJUuWKB0JKNqTXrFiBTExMZiYmBASEsL69esV/YN96NAhUlNTeeuttzTPrVix\nAhcXF8Uy+fj4sHDhQsaNG0d2djaLFy82qMHLUPTt25c5c+Zw4sQJ8vLy8Pf3N4g/io6Ojnh6ejJ6\n9GgAFi1aZBDbLzExkTp16igdQ2PMmDEsWLAAX19f8vPz8ff3VzoSLVu2RK1WM2rUKMzMzFi1apVi\nWcoaL1etWsW8efMICgrCxcWFYcOGKZ6pW7du/PDDDyQmJjJ58mQ6derEO++8o9dcNYHccloIIYQQ\nWlN+10EIIYQQNYYUDkIIIYTQmhQOQgghhNCaFA5CCCGE0JoUDkIIIYTQmhQOQgghhNCaFA5CCCGE\n0Nr/A92HciLq9JitAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "imageio.mimsave('./weights_viz_multi_class.gif', [plot_heat_map(i) for i in range(0,len(weight_matrices),len(weight_matrices)//20)], fps=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34, + "resources": { + "http://localhost:8080/weights_viz_multi_class.gif": { + "data": "CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPWVuPgogIDxtZXRhIGNoYXJzZXQ9dXRmLTg+CiAgPG1ldGEgbmFtZT12aWV3cG9ydCBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEsIG1pbmltdW0tc2NhbGU9MSwgd2lkdGg9ZGV2aWNlLXdpZHRoIj4KICA8dGl0bGU+RXJyb3IgNDA0IChOb3QgRm91bmQpISExPC90aXRsZT4KICA8c3R5bGU+CiAgICAqe21hcmdpbjowO3BhZGRpbmc6MH1odG1sLGNvZGV7Zm9udDoxNXB4LzIycHggYXJpYWwsc2Fucy1zZXJpZn1odG1se2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMjIyO3BhZGRpbmc6MTVweH1ib2R5e21hcmdpbjo3JSBhdXRvIDA7bWF4LXdpZHRoOjM5MHB4O21pbi1oZWlnaHQ6MTgwcHg7cGFkZGluZzozMHB4IDAgMTVweH0qID4gYm9keXtiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9lcnJvcnMvcm9ib3QucG5nKSAxMDAlIDVweCBuby1yZXBlYXQ7cGFkZGluZy1yaWdodDoyMDVweH1we21hcmdpbjoxMXB4IDAgMjJweDtvdmVyZmxvdzpoaWRkZW59aW5ze2NvbG9yOiM3Nzc7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YSBpbWd7Ym9yZGVyOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NzJweCl7Ym9keXtiYWNrZ3JvdW5kOm5vbmU7bWFyZ2luLXRvcDowO21heC13aWR0aDpub25lO3BhZGRpbmctcmlnaHQ6MH19I2xvZ297YmFja2dyb3VuZDp1cmwoLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvbG9nb3MvZXJyb3JwYWdlL2Vycm9yX2xvZ28tMTUweDU0LnBuZykgbm8tcmVwZWF0O21hcmdpbi1sZWZ0Oi01cHh9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246MTkyZHBpKXsjbG9nb3tiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9sb2dvcy9lcnJvcnBhZ2UvZXJyb3JfbG9nby0xNTB4NTQtMngucG5nKSBuby1yZXBlYXQgMCUgMCUvMTAwJSAxMDAlOy1tb3otYm9yZGVyLWltYWdlOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9sb2dvcy9lcnJvcnBhZ2UvZXJyb3JfbG9nby0xNTB4NTQtMngucG5nKSAwfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86Mil7I2xvZ297YmFja2dyb3VuZDp1cmwoLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvbG9nb3MvZXJyb3JwYWdlL2Vycm9yX2xvZ28tMTUweDU0LTJ4LnBuZykgbm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX19I2xvZ297ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjU0cHg7d2lkdGg6MTUwcHh9CiAgPC9zdHlsZT4KICA8YSBocmVmPS8vd3d3Lmdvb2dsZS5jb20vPjxzcGFuIGlkPWxvZ28gYXJpYS1sYWJlbD1Hb29nbGU+PC9zcGFuPjwvYT4KICA8cD48Yj40MDQuPC9iPiA8aW5zPlRoYXTigJlzIGFuIGVycm9yLjwvaW5zPgogIDxwPiAgPGlucz5UaGF04oCZcyBhbGwgd2Uga25vdy48L2lucz4K", + "headers": [ + [ + "content-length", + "1449" + ], + [ + "content-type", + "text/html; charset=utf-8" + ] + ], + "ok": false, + "status": 404, + "status_text": "Not Found" + } + } + }, + "colab_type": "code", + "id": "a5Gr-mGusbge", + "outputId": "b09bbe63-bb01-400a-c04f-99e5f34f4b41" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "HTML('')" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "id": "aXaub6Iysbgh", + "outputId": "0ae4c265-93ad-4ed6-b192-4886f79a63f1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training accuracy 0.79\n", + "Validation accuracy 0.8\n" + ] + } + ], + "source": [ + "Y_pred_train = ffsn_multi_specific.predict(X_train)\n", + "Y_pred_train = np.argmax(Y_pred_train,1)\n", + "\n", + "Y_pred_val = ffsn_multi_specific.predict(X_val)\n", + "Y_pred_val = np.argmax(Y_pred_val,1)\n", + "\n", + "accuracy_train = accuracy_score(Y_pred_train, Y_train)\n", + "accuracy_val = accuracy_score(Y_pred_val, Y_val)\n", + "\n", + "print(\"Training accuracy\", round(accuracy_train, 2))\n", + "print(\"Validation accuracy\", round(accuracy_val, 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 347 + }, + "colab_type": "code", + "id": "-fkYOCousbgl", + "outputId": "98be1dde-efb9-4884-aaa0-20977e80efc6", + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_train[:,0], X_train[:,1], c=Y_pred_train, cmap=my_cmap, s=15*(np.abs(np.sign(Y_pred_train-Y_train))+.1))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "GT3JLm_b46EM" + }, + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "0324_ScalarBackpropagation.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "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.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}