Files
cds-monte-carlo-methods/Exercise sheet 8/exercise_sheet_08.ipynb

775 lines
96 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "269c4188",
"metadata": {},
"source": [
"# Exercise sheet\n",
"\n",
"Some general remarks about the exercises:\n",
"* For your convenience functions from the lecture are included below. Feel free to reuse them without copying to the exercise solution box.\n",
"* For each part of the exercise a solution box has been added, but you may insert additional boxes. Do not hesitate to add Markdown boxes for textual or LaTeX answers (via `Cell > Cell Type > Markdown`). But make sure to replace any part that says `YOUR CODE HERE` or `YOUR ANSWER HERE` and remove the `raise NotImplementedError()`.\n",
"* Please make your code readable by humans (and not just by the Python interpreter): choose informative function and variable names and use consistent formatting. Feel free to check the [PEP 8 Style Guide for Python](https://www.python.org/dev/peps/pep-0008/) for the widely adopted coding conventions or [this guide for explanation](https://realpython.com/python-pep8/).\n",
"* Make sure that the full notebook runs without errors before submitting your work. This you can do by selecting `Kernel > Restart & Run All` in the jupyter menu.\n",
"* For some exercises test cases have been provided in a separate cell in the form of `assert` statements. When run, a successful test will give no output, whereas a failed test will display an error message.\n",
"* Each sheet has 100 points worth of exercises. Note that only the grades of sheets number 2, 4, 6, 8 count towards the course examination. Submitting sheets 1, 3, 5, 7 & 9 is voluntary and their grades are just for feedback.\n",
"\n",
"Please fill in your name here:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "220d541e",
"metadata": {},
"outputs": [],
"source": [
"NAME = \"Kees van Kempen\"\n",
"NAMES_OF_COLLABORATORS = \"\""
]
},
{
"cell_type": "markdown",
"id": "b6944e4c",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"id": "c53fbab6",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "da0f2845f08ee29eb0450f8eff343e98",
"grade": false,
"grade_id": "cell-3cb26b1434512d8d",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**Exercise sheet 8**\n",
"\n",
"Code from the lectures:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5e4391a6",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "1814f5ba5f2d71b14a4c534cfe3ad7ff",
"grade": false,
"grade_id": "cell-40c62687f6a2c579",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"rng = np.random.default_rng() \n",
"import matplotlib.pylab as plt\n",
"%matplotlib inline\n",
"\n",
"def fan_triangulation(n):\n",
" '''Generates a fan-shaped triangulation of even size n.'''\n",
" return np.array([[(i-3)%(3*n),i+5,i+4,(i+6)%(3*n),i+2,i+1] \n",
" for i in range(0,3*n,6)],dtype=np.int32).flatten()\n",
"\n",
"def is_fpf_involution(adj):\n",
" '''Test whether adj defines a fixed-point free involution.'''\n",
" for x, a in enumerate(adj):\n",
" if a < 0 or a >= len(adj) or x == a or adj[a] != x:\n",
" return False\n",
" return True\n",
"\n",
"from collections import deque \n",
"\n",
"def triangle_neighbours(adj,i):\n",
" '''Return the indices of the three neighboring triangles.'''\n",
" return [j//3 for j in adj[3*i:3*i+3]]\n",
"\n",
"def connected_components(adj):\n",
" '''Calculate the number of connected components of the triangulation.'''\n",
" n = len(adj)//3 # the number of triangles\n",
" # array storing the component index of each triangle\n",
" component = np.full(n,-1,dtype=np.int32) \n",
" index = 0\n",
" for i in range(n):\n",
" if component[i] == -1: # new component found, let us explore it\n",
" component[i] = index\n",
" queue = deque([i]) # use an exploration queue for breadth-first search\n",
" while queue:\n",
" for nbr in triangle_neighbours(adj,queue.pop()):\n",
" # the neighboring triangle has not been explored yet\n",
" if component[nbr] == -1: \n",
" component[nbr] = index\n",
" queue.appendleft(nbr) # add it to the exploration queue\n",
" index += 1\n",
" return index\n",
"\n",
"def next_around_triangle(i):\n",
" '''Return the label of the side following side i in counter-clockwise direction.'''\n",
" return i - i%3 + (i+1)%3\n",
"\n",
"def prev_around_triangle(i):\n",
" '''Return the label of the side preceding side i in counter-clockwise direction.'''\n",
" return i - i%3 + (i-1)%3\n",
"\n",
"def vertex_list(adj):\n",
" '''\n",
" Return the number of vertices and an array `vertex` of the same size \n",
" as `adj`, such that `vertex[i]` is the index of the vertex at the \n",
" start (in ccw order) of the side labeled `i`.\n",
" '''\n",
" # a side i that have not been visited yet has vertex[i]==-1\n",
" vertex = np.full(len(adj),-1,dtype=np.int32) \n",
" vert_index = 0 \n",
" for i in range(len(adj)):\n",
" if vertex[i] == -1:\n",
" side = i\n",
" while vertex[side] == -1: # find all sides that share the same vertex\n",
" vertex[side] = vert_index\n",
" side = next_around_triangle(adj[side])\n",
" vert_index += 1\n",
" return vert_index, vertex\n",
"\n",
"def number_of_vertices(adj):\n",
" '''Calculate the number of vertices in the triangulation.'''\n",
" return vertex_list(adj)[0]\n",
"\n",
"def is_sphere_triangulation(adj):\n",
" '''Test whether adj defines a triangulation of the 2-sphere.'''\n",
" if not is_fpf_involution(adj) or connected_components(adj) != 1:\n",
" return False\n",
" num_vert = number_of_vertices(adj)\n",
" num_face = len(adj)//3\n",
" num_edge = len(adj)//2\n",
" # verify Euler's formula for the sphere\n",
" return num_vert - num_edge + num_face == 2\n",
"\n",
"def flip_edge(adj,i):\n",
" if adj[i] == next_around_triangle(i) or adj[i] == prev_around_triangle(i):\n",
" # flipping an edge that is adjacent to the same triangle on both sides makes no sense\n",
" return False\n",
" j = prev_around_triangle(i)\n",
" k = adj[i]\n",
" l = prev_around_triangle(k)\n",
" n = adj[l]\n",
" adj[i] = n # it is important that we first update\n",
" adj[n] = i # these adjacencies, before determining m,\n",
" m = adj[j] # to treat the case j == n appropriately\n",
" adj[k] = m\n",
" adj[m] = k\n",
" adj[j] = l\n",
" adj[l] = j\n",
" return True\n",
"\n",
"def random_flip(adj):\n",
" random_side = rng.integers(0,len(adj))\n",
" return flip_edge(adj,random_side)\n",
"\n",
"import networkx as nx\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n",
"\n",
"def triangulation_edges(triangulation,vertex):\n",
" '''Return a list of vertex-id pairs corresponding to the edges in the triangulation.'''\n",
" return [(vertex[i],vertex[j]) for i,j in enumerate(triangulation) if i < j]\n",
"\n",
"def triangulation_triangles(triangulation,vertex):\n",
" '''Return a list of vertex-id triples corresponding to the triangles in the triangulation.'''\n",
" return [vertex[i:i+3] for i in range(0,len(triangulation),3)]\n",
"\n",
"def plot_triangulation_3d(adj):\n",
" '''Display an attempt at embedding the triangulation in 3d.'''\n",
" num_vert, vertex = vertex_list(adj)\n",
" edges = triangulation_edges(adj,vertex)\n",
" triangles = triangulation_triangles(adj,vertex)\n",
" # use the networkX 3d graph layout algorithm to find positions for the vertices\n",
" pos = np.array(list(nx.spring_layout(nx.Graph(edges),dim=3).values()))\n",
" fig = plt.figure()\n",
" ax = fig.add_subplot(111, projection='3d')\n",
" tris = Poly3DCollection(pos[triangles])\n",
" tris.set_edgecolor('k')\n",
" ax.add_collection3d(tris)\n",
" ax.set_xlim3d(np.amin(pos[:,0]),np.amax(pos[:,0]))\n",
" ax.set_ylim3d(np.amin(pos[:,1]),np.amax(pos[:,1]))\n",
" ax.set_zlim3d(np.amin(pos[:,2]),np.amax(pos[:,2]))\n",
" plt.show()\n",
" \n",
"def vertex_neighbors_list(adj):\n",
" '''Return a list `neighbors` such that `neighbors[v]` is a list of neighbors of the vertex v.'''\n",
" num_vertices, vertex = vertex_list(adj)\n",
" neighbors = [[] for _ in range(num_vertices)]\n",
" for i,j in enumerate(adj):\n",
" neighbors[vertex[i]].append(vertex[j])\n",
" return neighbors\n",
"\n",
"def vertex_distance_profile(adj,max_distance=30):\n",
" '''Return array `profile` of size `max_distance` such that `profile[r]` is the number\n",
" of vertices that have distance r to a randomly chosen initial vertex.'''\n",
" profile = np.zeros((max_distance),dtype=np.int32)\n",
" neighbors = vertex_neighbors_list(adj)\n",
" num_vertices = len(neighbors)\n",
" start = rng.integers(num_vertices) # random starting vertex\n",
" distance = np.full(num_vertices,-1,dtype=np.int32) # array tracking the known distances (-1 is unknown)\n",
" queue = deque([start]) # use an exploration queue for the breadth-first search\n",
" distance[start] = 0\n",
" profile[0] = 1 # of course there is exactly 1 vertex at distance 0\n",
" while queue:\n",
" current = queue.pop()\n",
" d = distance[current] + 1 # every unexplored neighbour will have this distance\n",
" if d >= max_distance:\n",
" break\n",
" for nbr in neighbors[current]:\n",
" if distance[nbr] == -1: # this neighboring vertex has not been explored yet\n",
" distance[nbr] = d\n",
" profile[d] += 1\n",
" queue.appendleft(nbr) # add it to the exploration queue\n",
" return profile\n",
" \n",
"def perform_sweeps(adj,t):\n",
" '''Perform t sweeps of flip moves, where 1 sweep is N moves.'''\n",
" for _ in range(len(adj)*t//3):\n",
" random_flip(adj)\n",
"\n",
"def batch_estimate(data,observable,k):\n",
" '''Devide data into k batches and apply the function observable to each.\n",
" Returns the mean and standard error.'''\n",
" batches = np.reshape(data,(k,-1))\n",
" values = np.apply_along_axis(observable, 1, batches)\n",
" return np.mean(values), np.std(values)/np.sqrt(k-1)"
]
},
{
"cell_type": "markdown",
"id": "bed55184",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "8c9a6c198119d4649dd87308e8933611",
"grade": false,
"grade_id": "cell-5f5adc7840fea9ad",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Estimating Hausdorff dimensions in various 2D quantum gravity models \n",
"\n",
"**(100 Points)**\n",
"\n",
"In the lecture we considered the model of two-dimensional Dynamical Triangulations of the 2-sphere. The corresponding partition function is\n",
"$$ Z^{U}_{S^2,N} = \\sum_T 1, \\tag{1}$$\n",
"where the sum is over all triangulations of size $N$ with the topology of $S^2$, each of which is represented as an adjacency list $\\operatorname{adj}: \\{0,\\ldots,3N-1\\} \\to \\{0,\\ldots,3N-1\\}$. To emphasize that we are dealing with the **uniform** probability distribution on such triangulations, we have added the label $^U$. It is a lattice model of two-dimensional Euclidean quantum gravity with no coupled matter.\n",
"\n",
"One can also consider two-dimensional quantum gravity coupled to matter fields (e.g. a scalar field) supported on the geometry. Formally the corresponding path integral in the continuum reads\n",
"$$ Z = \\int [\\mathcal{D}g_{ab}]\\int [\\mathcal{D}\\phi] e^{-\\frac{1}{\\hbar}(S_E[g_{ab}] + S_m[\\phi,g_{ab}])} = \\int [\\mathcal{D}g_{ab}]e^{-\\frac{1}{\\hbar}S_E[g_{ab}]} Z^*_m[g_{ab}],$$\n",
"where $S_m[\\phi,g_{ab}]$ and $Z_m[g_{ab}]$ are the matter action and path integral of the field $\\phi$ on the geometry described by $g_{ab}$. The natural analogue in Dynamical Triangulations is\n",
"$$Z^*_{S^2,N} = \\sum_T Z^*_m[T],$$\n",
"where the sum is over the same triangulations as in (1) but now the summand $Z^*_m[T]$ is the lattice partition function of a matter system supported on the triangulation $T$, which generically depends in a non-trivial way on $T$. For instance, the matter system could be an Ising model in which the spin are supported on the triangles of $T$ and $Z^{\\text{Ising}}_m[T]$ would be the corresponding Ising partition function.\n",
"In other words, when Dynamical Triangulations are coupled to matter the uniform distribution $\\pi^U(T) = 1/Z^U_{S^2,N}$ is changed into a non-uniform distribution $\\pi^*(T) = Z^*_m[T] / Z^*_{S^2,N}$. This can have significant effect on the critical exponents of the random triangulation as $N\\to\\infty$, like the Hausdorff dimension. \n",
"\n",
"The goal of this exercise is to estimate the **Hausdorff dimension** of random triangulations in four different models and to conclude based on this that they belong to four different universality classes (i.e. that if they possess well-defined continuum limits that they are described by four different EQFTs): \n",
"* $Z^{U}_{S^2,N}$: the standard Dynamical Triangulations with **U**niform distribution (U)\n",
"* $Z^{W}_{S^2,N}$: triangulations coupled to a matter system called a Schnyder **W**ood (W)\n",
"* $Z^{S}_{S^2,N}$: triangulations coupled to a matter system called a **S**panning tree (S)\n",
"* $Z^{B}_{S^2,N}$: triangulations coupled to a matter system called a **B**ipolar orientation (B)\n",
"\n",
"What these matter systems precisely represent will not be important. We have provided for you a **black box generator** that samples from the corresponding four distributions $\\pi^U(T)$, $\\pi^W(T)$, $\\pi^S(T)$, $\\pi^B(T)$. It does so in an efficient manner (linear time in $N$) using direct Monte Carlo sampling algorithms and therefore returns independent samples with exactly the desired distribution $\\pi^*(T)$ (within numerical precision).\n",
"\n",
"The black box generator is provided by the executable program `generator` provided to you on the science server. It can be called directly from this notebook with the following function `generate_random_triangulation`, that takes the desired size $N$ and model (`'U'`,`'W'`, `'S'`, `'B'`) and returns a single random triangulation in the usual form of an adjacency list."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "bcc7acba",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "7d6abad00aa217998ca44ecc5e89f423",
"grade": false,
"grade_id": "cell-266ff66f880583d7",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import subprocess\n",
"\n",
"def generate_random_triangulation(n,model):\n",
" '''\n",
" Returns a random triangulation generated by the program `generator` in the form \n",
" of an array of length 3n storing the adjacency information of the triangle sides.\n",
" Parameters:\n",
" n - number of triangles in the triangulation, must be positive and even\n",
" model - a one-letter string specifying the model from which the triangulation is sampled:\n",
" 'U': Uniform triangulations\n",
" 'W': Schnyder-Wood-decorated triangulations\n",
" 'S': Spanning-tree decorated triangulations\n",
" 'B': Bipolar-oriented triangulations\n",
" '''\n",
" program = \"/vol/cursus/NM042B/bin/generator\"\n",
" output = subprocess.check_output([program,\"-s{}\".format(n),\"-t{}\".format(model)]).decode('ascii').split('\\n')[:-1]\n",
" return np.array([int(num) for num in output],dtype=np.int32)\n",
"\n",
"adj = generate_random_triangulation(100,'B')\n",
"is_sphere_triangulation(adj)"
]
},
{
"cell_type": "markdown",
"id": "4518f51f",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "37e92f3a59f2d5c6d117868d04d8f0d4",
"grade": false,
"grade_id": "cell-6aacf5fa6d8c4eb9",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"Recall that the **distance profile** $\\rho_T(r)$ of a triangulation is defined as \n",
"$$ \\rho_T(r) = \\frac{1}{V} \\sum_{x=0}^{V-1} \\sum_{y=0}^{V-1} \\mathbf{1}_{\\{d_T(x,y)=r\\}},$$\n",
"where $V = (N+4)/2$ is the number of vertices and $d_T(x,y)$ is the graph distance between the vertices with label $x$ and $y$."
]
},
{
"cell_type": "markdown",
"id": "d59143f0",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "afcdbf86f64bd17b8ac9b4f9ec422206",
"grade": false,
"grade_id": "cell-8e6d6fcefb5ab644",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**(a)** Let $T$ be a random triangulation of size $N$ and $X$, $Y$ two independent numbers chosen uniformly from $0,\\ldots,V-1$, corresponding to two random vertices in $T$. Explain with a calculation that $\\frac{1}{V}\\mathbb{E}[ \\rho_T(r) ] = \\mathbb{P}(d_T(X,Y) = r)$ and that the expected distance between $X$ and $Y$ is related to the distance profile via\n",
"\n",
"$$\n",
"\\mathbb{E}[d_T(X,Y)] = \\frac{1}{V}\\sum_{r=0}^\\infty r\\, \\mathbb{E}[ \\rho_T(r) ]. \\tag{2}\n",
"$$\n",
"\n",
"**(20 pts)**"
]
},
{
"cell_type": "markdown",
"id": "dd1b43bf",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "74963ed3d7cbd9eaa06be2e66a8f939e",
"grade": true,
"grade_id": "cell-f86454063d193cd6",
"locked": false,
"points": 20,
"schema_version": 3,
"solution": true,
"task": false
}
},
"source": [
"YOUR ANSWER HERE"
]
},
{
"cell_type": "markdown",
"id": "29704f5d",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "e2cc0493d54bcf087ce14bcb2e8a8d2f",
"grade": false,
"grade_id": "cell-aafca9797e5cfee4",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**(b)** We will work under the assumption that \n",
"\n",
"$$\n",
"\\mathbb{E}[\\rho_T(r)] \\approx V^{1-1/d_H} f(r V^{-1/d_H})\n",
"$$ \n",
"\n",
"for a positive real number $d_H$ called the **Hausdorff dimension** and a continuous function $f$ that are both independent of $N$ but do depend on the model. Show that \n",
"\n",
"$$\n",
"\\mathbb{E}[d_T(X,Y)] \\approx c\\,V^{1/d_H}, \\qquad c = \\int_0^\\infty \\mathrm{d}x\\,x\\,f(x). \\tag{3}\n",
"$$\n",
"\n",
"_Hint:_ Approximate the summation by an integral. **(15 pts)**"
]
},
{
"cell_type": "markdown",
"id": "0c062ba6",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "2db525e8acbc2412c1c5948052526a15",
"grade": true,
"grade_id": "cell-bcf3b38d64a4408d",
"locked": false,
"points": 15,
"schema_version": 3,
"solution": true,
"task": false
}
},
"source": [
"YOUR ANSWER HERE"
]
},
{
"cell_type": "markdown",
"id": "eba53e6d",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "ba14acd8cc24c2dfea35f3b8106cdfc8",
"grade": false,
"grade_id": "cell-fcab32195688a5c5",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**(c)** For each of the four models estimate $\\mathbb{E}[d_T(X,Y)]$ with errors for $N = 2^7, 2^8, \\ldots, 2^{12}$ using (2) and based on $100$ samples each. Store your data in the file `qgdimension.hdf5`. Make an estimate of $d_H$ (with errors) for each of the models by fitting the parameters $c$ and $d_H$ of the ansatz (3). For each model, plot the data together with the fit in a log-log plot. **(40 pts)**"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "ee683060",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "c3664034dec3a350f7fe0533fe2454cb",
"grade": true,
"grade_id": "cell-01f5fde55f35f2dc",
"locked": false,
"points": 15,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"models = ['U','W','S','B']\n",
"sizes = [2**k for k in range(7,13)]\n",
"num_vertices = (np.array(sizes)+4)/2\n",
"measurements = 100\n",
"\n",
"# data gathering and storing in qgdimension.hdf5\n",
"import h5py\n",
"\n",
"max_distance = 30\n",
"samples = 100\n",
"N_space = 2**np.arange(7, 13)\n",
"\n",
"with h5py.File(\"qgdimension.hdf5\", \"a\") as f:\n",
" if not \"N-values\" in f:\n",
" f.create_dataset(\"N-values\",data=N_space)\n",
" \n",
" for model in models:\n",
" models_key = \"expectation-graph-distance-{}\".format(model)\n",
" if not models_key in f:\n",
" graph_distance_expectations = np.zeros((len(N_space), samples))\n",
" for idx_N, N in enumerate(N_space):\n",
" V = (N + 4)/2\n",
" for idx_sample in range(samples):\n",
" adj = generate_random_triangulation(N, model)\n",
" expectation = 1/V * vertex_distance_profile(adj,max_distance)@np.arange(max_distance)\n",
" graph_distance_expectations[idx_N][idx_sample] = expectation\n",
"\n",
" f.create_dataset(models_key,data=graph_distance_expectations)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "351f7a01",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "000725107fe51acebc0bc68eef8c1c9c",
"grade": true,
"grade_id": "cell-9e8f666073e1e2df",
"locked": false,
"points": 25,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEcCAYAAAAV2MmlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAxz0lEQVR4nO3dd3yV5fnH8c/FgQBhT0GCMmVvBFwYxYUgqKCCq0VcdRStWrG1otZWKv0Vwb2oFhWsExBUEI04EAyCyJSpBFQ2yIbk+v1xIg0hwEk4J885yff9euVlzn2ecZ3kMV/uZ9y3uTsiIiKxUCLoAkREpOhSyIiISMwoZEREJGYUMiIiEjMKGRERiRmFjIiIxIxCRkREYkYhIxKHzOweM5uUq23JIdr6FW51IpFTyIjEp2nAKWYWAjCzWkApoH2utkbZy4rEJYWMSHz6inCotM1+3RX4GFicq22Zu68p7OJEIqWQEYlD7r4HmEE4SMj+76fAZ7na1IuRuKaQEYlfn/C/QDmNcMh8mqvtkwDqEomYQkYkfk0DTjWzKkANd18CfAGcnN3WEvVkJM4pZETi13SgEnA98DmAu28F1mS3rXH3FcGVJ3JkChmROOXuO4F04A+ET5P96rPsNvViJO4pZETi2ydATcLB8qtPs9sUMhL3TJOWiYhIrKgnIyIiMaOQERGRmFHIiIhIzChkREQkZhQyIiISMyWDLiDeVK9e3evVqxd0GSIiCWXWrFnr3b1G7naFTC716tUjPT096DJERBKKmX2fV7tOl4mISMwoZEREJGYUMiIiEjO6JhOBvXv3kpGRwa5du4IuRRJUmTJlSElJoVSpUkGXIlKoFDIRyMjIoEKFCtSrVw8zC7ocSTDuzoYNG8jIyKB+/fpBlyNSqHS6LAK7du2iWrVqChgpEDOjWrVq6glLsaSQiZACRo6Gjh+Ja5l7Yc4YiMGo/DpdJiJSnK2ZA+NugZ+/hQrHQMMzo7p5hYyISHG0dyekDYUvHoNy1eGyV6IeMKDTZQll5MiRNGvWjCuuuIKTTz4ZgM2bN/Pkk08Wah3vv/8+TZo0oVGjRgwdOvSQy23evJm+ffvStGlTmjVrxvTp0w/bnh8DBw5k4sSJBf4MOa1atYozzjiDZs2a0aJFC0aMGHHQMosXL6Zt27b7vypWrMijjz4KwDXXXEPNmjVp2bJlVOoRibnvv4CnT4XPH4W2l8PNM6BZz9jsy931leOrQ4cOntuCBQsOagtCkyZNfPny5Qe0rVixwlu0aFFoNezbt88bNGjgy5Yt8927d3vr1q19/vz5eS579dVX+3PPPefu7rt37/ZNmzYdtj0/2rdv76tWrSrQZ8htzZo1PmvWLHd337p1qzdu3PiQn8k9/DM45phjfOXKle7u/sknn/isWbOO+HuIl+NIirFdW93f/YP7kIruw1u6L/0oapsG0j2Pv6nqySSIG2+8keXLl9OrVy+GDx9O+fLlARg8eDDLli2jbdu23HXXXYfdxpo1a+jTpw/t2rWjadOmzJw5M991zJw5k0aNGtGgQQOSkpLo168f48aNO2i5rVu3Mm3aNAYOHAhAUlISlStXPmT7kXz33XeceuqptGrViuHDh/PTTz+RkpKS7/rzUrt2bdq3bw9AhQoVaNasGatXrz7k8lOnTqVhw4Ycf/zxAHTt2pWqVatGpRaRmFkyBZ7oAl+9AF1ugpu+hIZnxHy3uiaTX+8Nhp++je42a7WC7oc+7QTw9NNP8/777/Pxxx9TvXp1/vKXvwAwdOhQ5s2bx5w5c/Yve/755/P8889z7LHH7m/bt28f3bt3529/+xs9e/Zkx44dZGZmHrCP0047jV9++eWgff/zn//krLPOAmD16tXUrVt3/3spKSnMmDHjoHWWL19OjRo1GDBgAN988w0dOnRgxIgRh2wvV67cIT/7vn37uPLKK3n88cfp1KkTN910E02bNj3szys/nymnlStXMnv2bDp37nzIbY4dO5b+/ftHtH+RwO3YCO/fA3PHQo2mMHAK1D2x0HavkCmCJk2adFDbO++8Q7NmzejZM3zeNTk5+aBlPv300yNu2/O4xTGv23P37dvH119/zWOPPUbnzp0ZNGgQQ4cOpXfv3nm2//Wvfz3kPt966y2aNWtGp06dAGjRogVly5YFoHfv3vt7Updccgljx44lFArl6zP9atu2bfTp04dHH32UihUr5rnMnj17GD9+PA8//HDE2xUJhDvMfxsm3QW7NkPXP0LXO6Fk6UItQyGTX0foccSrOXPm0KVLl8MuE8m/+lNSUli1atX+9zIyMg7oMf0qJSWFlJSU/T2Cvn37MnToUG6++eY82w9n7ty5dOjQYf/rWbNmkZqayqpVq6hdu/b+9qysrAMCJtLPBOGhg/r06cMVV1zBxRdffMha3nvvPdq3b88xxxxz2JpFArX1R5h0Jyx6F2q3havHQa1gbkxRyCS4ChUq5PlHNLdatWrxzTff7H+9bt06atQ4cH6hSP7Vf+KJJ7JkyRJWrFhBnTp1GDt2LK+++mqe+6tbty6LFy+mSZMmTJ06lebNmx+yHaBbt2785z//oU6dOgdsq1q1asybNw8IB8yYMWO47bbbmDVrFgsWLODGG29k586deYZdpL2zgQMH0qxZM/7whz8cdtkxY8boVJnEL3eYPRo+uBcyd8PZD0KXmyEU4J/6vO4GKM5f8Xx32fHHH+/r1q1zd/dy5crtb+/fv7+3aNHC77zzTnd37969u69evfqAdX/55Re/4IILvHnz5t6mTRsfN25cgeuYOHGiN27c2Bs0aOAPPfTQ/vbc+509e7Z36NDBW7Vq5b179/aNGzcesj0zM9OPO+4437Fjx0H7W7dunZ944onepk0bv/TSS71WrVq+Z88ev/fee33mzJnu7v7uu+/6v//97wJ9nk8//dQBb9Wqlbdp08bbtGnjEydOPOgzbd++3atWreqbN28+YP1+/fp5rVq1vGTJkl6nTh1//vnn89xPvBxHUkRtWO7+4gXhO8dGdXdfv7RQd88h7i4zz+Mce3HWsWNHzz0z5sKFC2nWrFlAFRUP8+bNY9SoUfzrX/+KeJ2LLrqI1157jaSkJIYMGULfvn1p1apVDKs8OjqOJCayMmHGM/DRX8FCcM6D0P63UKJwbx42s1nu3vGgdoXMgRQyEis6jiTq1i4MDwmzOh0anws9h0OlOkdeLwYOFTK6JiMikmj27Qk/rf/JI1C6Alz8PLTqC3E4EKtCRkQkkayeBeNuhbXzoWUf6P5IeOyxOKWQERFJBHt2QNrDMP1xKH8M9BsDTc8PuqojUsiIiMS7lZ/B+Fth43Lo8NvwrcllKgVdVUQUMiIiUTJ8yneMmLrkkO8P6taY288+IfIN7toCU4bArH9DlfrwmwlQv2sUKi08ChkRkSi5/ewT9ofIZc+Ep7B47YaTCrax7z6ACbfBtp/gpFvgjD9D0sHDQcU7hUwURf1fMSJS/GxfD+8Phm9fh5rN4bKXIaXDkdeLUxrqP4puP/sEVg7twcqhPehcvyqd61fd/3rl0B5HFTBmxlVXXbX/9b59+6hRo8b+AS/zq6CTnW3bto0bbriBhg0b0qJFC7p27ZrnKMyHk5qaSu5nkUSKPXf49g14ohPMfwdS74HrP0nogAGFTExkZjmbduxh9aadTF34M5lZR//Aa7ly5Zg3bx47d+4EYMqUKQeN8ZUfBQ2Za6+9lqpVq7JkyRLmz5/Piy++yPr16yNeP/f0AiICbF0DY/rDmwOhSj24YRqkDoaSSUFXdtQUMlGWmeVc9cIMlq7dRsbmndw6ZjZXvTAjKkHTvXv3/VMO5x6ocePGjVx44YW0bt2aLl26MHfuXADuv/9+rrnmGlJTU2nQoAEjR44E8p7sbNiwYZx44om0bt2aIUOGHLT/ZcuWMWPGDB566CFKZA9Z0aBBA3r06AHAhRdeSIcOHWjRogXPPvvs/vXKly/PfffdR+fOnQ+aannMmDG0atWKli1bcvfddx/1z0gkobjDrBfhic6wPA3O+Vt4vpdjmgddWdQoZKIsbfFa5qzazK+ZsmNPJnNWbSZt8dqj3na/fv0YO3Ysu3btYu7cuQdMrDVkyBDatWvH3Llz+fvf/87VV1+9/71FixbxwQcfMHPmTB544AH27t3L0KFDadiwIXPmzGHYsGFMnjyZJUuWMHPmTObMmcOsWbOYNm3aAfufP38+bdu2PWg4/V+NGjWKWbNmkZ6ezsiRI9mwYQMA27dvp2XLlsyYMYNTTz11//Jr1qzh7rvv5qOPPmLOnDl89dVXvPPOO0f9cxJJCBuWwUsXwIRBULsN3PQFnHwLlMj7/69EpZCJsvlrtrJzz4GnhHbuyWTBmq1Hve3WrVuzcuVKxowZw/nnH/gQ1meffbb/ms2ZZ57Jhg0b2LJlCwA9evSgdOnSVK9enZo1a/Lzzz8ftO3JkyczefJk2rVrR/v27Vm0aBFLlhz6Joa8jBw5kjZt2tClSxdWrVq1f/1QKESfPn0OWv6rr74iNTWVGjVqULJkSa644oqDgk2kyMnKhC8eg6dOgR+/gQtGhm9Nrtog6MpiQneXRVmLYytSNinEjhxBUzYpRPNj855pMb969erFnXfeSVpa2v6eAhx+xsrSpf83E14oFGLfvn0HLevu3HPPPdxwww2H3HeLFi345ptvyMrK2n+67FdpaWl8+OGHTJ8+neTkZFJTU9m1axcAZcqUybP3o8FZpdj5eQGMuxnWfA0ndIee/4KKB8+DVJSoJxNlqU1q0rZuZUpkj1OXnBSibd3KpDapGZXtX3PNNdx3330HDWnftWtXXnnlFSD8B7969eqHnEIYDp7s7Nxzz2XUqFFs27YNgNWrV7N27YGn+Bo2bEjHjh0ZMmTI/oBYsmQJ48aNY8uWLVSpUoXk5GQWLVrEl19+ecTP0rlzZz755BPWr19PZmYmY8aM4fTTT4/sByESxw66+WfPbvj4YXimK2z+AfqOgv5jinzAgHoyURcqYYwe2JnuI6axY3cmD/RuQWqTmoRKRGd01JSUFAYNGnRQ+/3338+AAQNo3bo1ycnJvPTSS4fdTrVq1TjllFNo2bIl3bt3Z9iwYSxcuJCTTgo/OFa+fHlefvllatY8MByff/557rjjDho1akRycjLVqlVj2LBhtG7dmqeffprWrVvTpEmTI071DFC7dm0efvhhzjjjDNyd888/n969e+fjpyESf3Le/JPlcOur6bQtsZzR/INQ60vgvKFQrlrQZRYazSeTS7Tmkznqp32lyNF8MsXD1IU/c+uY2QecMk9mN4+dVZZuZ3UPsLLY0nwyhSCvJ/7rDZ64/3s98S9S9OV58w+lWWCN6BZQTUFSyERRznGLRKQY2rmZFqvGUJbm7KDs/uZo3vyTaHThP0I6rShHQ8dPMbBoEjzZhdSVj9K2yp6Y3fyTaNSTiUCZMmXYsGED1apV239bsEik3J0NGzZQpkyZoEuRWNi2Dt77I8x/C2q2INTvVUbXbhezm38SjUImAikpKWRkZLBu3bqgS5EEVaZMGVJSUoIuQ6LJPTxS8nt3w55tcMa9cMogKJlECKiSnESVZOjW7JigKw2UQiYCpUqVon79+kGXISLxYksGvHs7LJkMKSdCr8ehZtOgq4pLChkRkUhlZcGsUTDlfvDM8DMvna4vcuONRZNCRkQkEhuWwfhb4fvPoUEqXDAiPCy/HFaRDhkzawD8Gajk7n2DrkdEElDmPpj+OKQ9DKHS4VNj7a4E3QQUkYS7hdnMRpnZWjObl6v9PDNbbGZLzWwwgLsvd/eBwVQqIgnvp2/h+W7w4RBodBbcPAPaX6WAyYeECxngReC8nA1mFgKeALoDzYH+ZlZ0Zv0RkcK1bzd89BA8mwpbV8MlL8FlL0PF2kFXlnAS7nSZu08zs3q5mjsBS919OYCZjQV6AwsKuTwRSXSrZsK4W2D9YmjTH879OyRXDbqqhJWIPZm81AFW5XidAdQxs2pm9jTQzszuOdTKZna9maWbWbqehREppnZvg/cGwwvnwN4dcMWbcNHTCpijlHA9mUPI6wSpu/sG4MYjrezuzwLPQngU5ijXJiLxbtlH4WmQN/8AJ14HZw2B0hWCrqpIKCohkwHUzfE6BVgTUC0ikih2boLJ98Lsl6FaIxjwHhx/coE3p5HYD1ZUQuYroLGZ1QdWA/2Ay4MtSUTi2sIJMPEO2L4eTr0dTh8MpY5ufDmNxH6whAsZMxsDpALVzSwDGOLuL5jZLcAHQAgY5e7zAyxTROLVtrUw6S5Y8A7UagWX/xeObRt0VUVWwoWMu/c/RPskYFIhlyMiicIdvhkL7w+GvTuh231w8u8hVCroyoq0hAsZESk+8rrGkVPE1zg2/wATboNlU6Fu5/BT+zV0WqswmCZTOlDHjh09PT096DJEJJfLnpkOwGs3nBT5SllZkP4CfHh/uCdz1v1w4rVQoqg8vRE/zGyWu3fM3a6ejIgUTeuXhAe0/GE6NDwTej4KVY4PuqpiRyEjIkVL5l744jFIGwqlysKFT4Wf3Nd4Y4FQyIhI0fHjN+EhYX6aC817Q/dhUKF4z0wZNIVMNjO7ALigUaNGQZciIvm1dxd88g/4fAQkV4NLR0PzXkFXJRSdscuOmrtPcPfrK1WqFHQpIpIfP3wJT58Kn/0rfFrslpkKmDiinoyIJKbdv8DUB2Hmc1CpLlz5FjTqFnRVkotCRkQSz9IPw8+9bMmAzjfAmX+B0uWDrkryoJARkbiXmeVs2rGHvbt2MHXUEFK/H0GoRmO45gM4rnPQ5clhKGREJK5lZjlXvTCDFT9vYR/GrVta07bKU4y+7kJCpcsGXZ4cgS78i0hcS5uzmDkrfmIvIZwS7KAMc7ZXIW351qBLkwgoZEQkPrnD7JeZP344O7NCB7y1c08mC9YoZBKBQkZE4s+m72H0RTDuZlpULUHZUgeGTNmkEM2PrRhQcZIfChkRiR9ZmfDl0/DkSZDxFZz/T1Jvepy2x1WlRPaoMMlJIdrWrUxqk5rB1ioR0YV/EYkP6xaHh4TJmAmNzoaew6FyXULA6IGd6T5iGjt2Z/JA7xakNqlJqITGIksEChkRCVbmXvj8UfjkEUgqBxc9C60vPWBAy1AJo0pyElWSoVszjUWWSBQyIhKcNbPDvZef50GLi8IDWpavEXRVEkUKmWwaIFOkEO3dGR6K/4vHoFwNuOwVaNYz6KokBnThP5sGyBQpJCs/h6dOCZ8ia3s53DxDAVOEqScjIoVj19bwNMjpL0Dl4+HqcdAgNeiqJMYUMiISe99Nhndvh62rocvNcOafwxf5pchTyIhI7GzfAB/cA3NfgxpNYeAUqHti0FVJIVLIiEj0ucP8t2HSXbBrM5x+N5x2B5QsHXRlUsgUMiISXVt/hIl3wOKJcGw76DUOarUMuioJiEJGRKLDHWaPhg/uhczdcPZfoctNENKfmeJMv30ROXobV8CE38OKaXD8qdBrJFRreNSbHT7lO0ZMXXJAW73BE/d/P6hbY24/+4Sj3o/Ejrl70DXElY4dO3p6enrQZYjERF5/tHPK9x/trEyY8TRM/SuUKAnnPAjtfwsl9AhecWNms9y940HtCpkDKWSkuLjsmekAvHbDSQXbwNqF4SFhVqdD43PDA1pWqhPFCiWRHCpkjni6zMyqRrD9LHffXJDCRCTB7NsDnw2HacOgTEXo8wK07HPAgJYiv4rkmsya7K/DHUEh4LioVCQi8Wv1LBh3K6ydDy37Qvd/QLnqQVclcSySkFno7u0Ot4CZzY5SPSISj/bsgLS/w/QnoHwt6D8WmnQPuipJAJGETCQnbAt4UldE4t6KT2H8rbBpBXQYAGc/AGU0kKxE5ogh4+67cr42s3LALnfPPNQyiUhD/YvksmsLTLkPZr0IVerDbyZA/a5BVyUJ5oj3GZpZCTO73MwmmtlaYBHwo5nNN7NhZtY49mXGnob6F8lh8fvwRBf4+j9w8q3wuy8UMFIgkZwu+xj4ELgHmOfuWbD/rrMzgKFm9ra7vxy7MkWkUGxfD+/dDfPegJrN4bKXIaVD0FVJAoskZJ5399G5G919I/Am8KaZlYp6ZSJSeNxh3pvw3h/D876k/glOvR1KJgVdmSS4SELmSjPrANyR8zpMTu6+N7pliUgsZWY5m3bsYcfuTKamLyB18YOElrwHdTpAr8fhmOZBlyhFRCRjP5wH7AI+MrOaMa5HRGIsM8u56oUZLF27jYzNO7j1jYVctaADmef8PTzfiwJGouiIIeNhg4ERwDQzu97MOplZcuzLE5FoS1u8ljk/bCTLAYwdlGFOiRakVekLJUJBlydFTESj2JlZT+BaYA/QHvgnsMrMlsawNhGJtsx9zP9yMjv3Hnjme+deZ8GarQEVJUVZJGOXLQcWAsPdfUqu91JiVZiIRNnP82HcLbRY5ZQtcRs7sv73b8yySSGaH1sxwOKkqIqkJ3O+u/fIHTAA7p4Rg5pEJJr27YaP/w7PdIXNP5B6ya20rV+LEtmjESYnhWhbtzKpTXTJVaIvkif+FxVGISISA6u+gvG3wLpF0PoyOPdhQuWqMbql033ENHbszuSB3i1IbVKTUAmNoizRp5kxRYqiPdvho7/Bl09CxWPh8tfhhHP2vx0qYVRJTqJKMnRrdkyAhUpRp5ARKWqWp8H438Pm76HjQDjr/vC8LyIBKHDImFltYKO7745iPSJSUDs3w5S/hMcbq9oQfjsJ6p0SdFVSzB1NT2Y00NDM3nT3O6NVUCxkjxz9JOFbsNPc/ZWASxKJrkUT4d0/wPa1cMogSL0HSpUNuiqRiEZhfsnMDhrAyN3PAhoA/450Z2ZW2czeMLNFZrbQzAo0D42ZjTKztWY2L4/3zjOzxWa21MwGZzdfDLzh7tcBvQqyT5G4tG0dvD4Axl4enqHy2qlw9oMKGIkbkdzCvAqYbmb1cjaaWWvgBXefn4/9jQDed/emQBvCz9/k3GZNM6uQqy2vCV5eJDzczQHMLAQ8AXQHmgP9zaw5kJL9OQDyHH9NJKG4wzevwRMnwqJ34Yx74fo0qNM+6MpEDhDJLcz3mtmXwIdmNggoBdwGVABGRrojM6sIdAV+m73dPYRPX+V0OvA7Mzvf3XeZ2XXARcD5uWqaljv0snUClrr78ux9jgV6AxmEg2YOhwhWTVomCWPzKnj3dlg6BVI6Qa/HoGbToKsSyVOk12SmAe8DE4C1wKXuPi2f+2oArAP+bWZtgFnAIHff/usC7v66mdUHxprZ68A1wNn52Ecd/tdjgXC4dCYcho+bWY/sz3AQd58ATOjYseN1+difSOHJyoJZo2DKEPAsOO8f0Ok6jTcmcS2SazJPAN8C24BmwEfA7wswQGZJwuOePeXu7YDtwODcC7n7I4RHfX4K6OXu2/Kxj7yeJnN33+7uA9z9d7roLwlp/VJ4sQdMvANSOsJN06HLjQoYiXuR9GS+Be50953Zry83szuAL82sr7t/F+G+MoAMd5+R/foN8ggZMzsNaAm8DQwBbolw+7/uo26O1ynAmnysL5Jvw6d8x4ipSw75/qBujbn97BMKtvHMfTD9cUh7GEqWht5PQNsrwPR0viSGSK7JPJ1H2/+Z2WxgEhDRRQx3/8nMVplZE3dfDHQDFuRcxszaAc8BPYAVwMtm9pC73xvJPoCvgMbZp9xWA/2AyyNcV6RAbj/7hP0hctkz0wF47YYC3Th5oJ++hXE3w4/fQNOe0OP/oEKto9+uSCGKZBRmc3fP3e7uH5nZGYdbJg+3Aq9k3xK9HBiQ6/1k4BJ3X5a93d+QfaNArprGAKlAdTPLAIa4+wvuvs/MbgE+AELAqHze/SYSvL27YNow+PxRKFsFLnkJmveOSu8lr15XvcET939/VL0ukTzYkbLBzNKAN4Fx7v5DjvYk4FTgN8DH7v5i7MosPB07dvT09PSgy5AEddQ9mR9mhAe0XP8dtLkczv0bJFeNYoUisWFms9y9Y+72SK7JnEf4Lq8x2aehNgNlCPcUJhOeZ2ZO9EoVKYZ2b4OP/goznoFKKXDlm9DorKCrEjlqkVyT2UV4SJYnzawUUB3Y6e6bY1ybSPGw7COYMAg2/wCdrodu90HpCkdeTyQB5GvsMnffa2Y93f25WBUkUmzs3AQf3AtzXoZqjWHA+3B8FG4YEIkjBRkgs13UqxApbhaMh0l3wvb1cOof4PS7oVSZoKsSibqChMx5ZvYs8DXhp/bnarh/kQj98nM4XBaOh1qt4IrXoXaboKsSiZmChMwHwJ+ADsCZhMcxuyKKNYkUPe7wzRh4/x7YuzN83eXk30OoVNCVicRUJM/JdAe+cfdfn5z/0t03AR9mf4nI4Wz+ASbcBsumQt0u4QEta+hZFCkeIhnqvw8wPvtp/SlASzO70sxaZg+tLyJAZpazacceVm/aydSFP5O5LxNmPAtPdIEfvoTuw2DAewoYKVYiuYX5WgAzuw1oTHi4lzOAZ4GNhMcHEynWMrOcq16YwdK128hyuPXVWbQt+T2js+4h1OhMuOBRqHxc0GWKFLr8XJMZ4O77r1Ca2ZPAXdEvSSTxpC1ey5xVm8nKHkBjx15nzt6apJ32LN3Ov0QDWkqxFcnpsl9tNbMOv75w91mA+v0iwPw1W9m558BJV3dShgVl2ilgpFjLT0/mGsKjIi8gfOtyK2BvTKoSSSR7d9Fi7buU5Th28L9nXcomhWh+bMUACxMJXsQ9GXdfApxMeHj/Y4CF5JoWWaTY+X46PH0KqYseoG3FbYSyOy3JSSHa1q1MapOawdYnErD8DiuTCbye/SVSfO3+BT58AL56DiofR+jqtxhd/wy6j5jGjt2ZPNC7BalNahIqoVNlUrxF8pzM1+7e/miXiXdmdgFwQaNGEc3BJsXZkg/h3dtgSwZ0vhHO/AuULk8IqJKcRJVk6NbsmKCrFIkLkfRkmpnZ3MO8b0ClKNUTGHefAEzo2LHjdUHXInFqx0b44E/hJ/ernwDXfADHdQ66KpG4FknINAWuBF4+zDKZh3lPJLG5w4Jx4THHdm6CrnfBaXdqQEuRCETyMOb3Zna8u38PYGZnuPvH2d+3d/evY12kSGB++Qkm3gGL3oXabeGqt8MDW4pIRCK9uyzn1cv+Ob6/MYq1iMQPd5j9MjzRCZZ+CGc9ANdOVcCI5FOkd5eVNLN27j6bAwNHt85I0bNpZXimyuVpcNzJ4QEtq+uGEJGCiDRksoByZtYfMDO7GpgCeMwqEylsWZkw81mY+iBYCejxf9DhGiiRn4ExRCSnSEPmL8BZQHngC2A50J7wgJkiiW/tIhh/K2TMhEZnQ8/hULlu0FWJJLyIQiZ7Lpn//PrazFoAxwLzY1SXSOHI3AufPQrTHoGk8nDxc9BKA1qKREtBZsbE3ecTDpj/RrcckUK0ZjaMuwV+ngctLobuj0D5GkFXJVKkFChkRBLa3p2Q9jB88RiUqwn9XoWmPYKuSqRIUshI8bLys/C1l43Lof3VcPZfoWzlo9rk8CnfMWLqkgPa6g2euP/7Qd0ac/vZmhVDiidz1w1iOXXs2NHT09ODLkOibddW+HAIpI+CysdDr5HQIDXoqkSKDDOb5e4dc7erJyNxKa/eQU756h18Nzk8oOUvP8JJt8AZf4KkctEpVEQOSz2ZXNSTiT+XPTMdgNduOCl/K27fAO8Phm//CzWaQu8nIOWgf2iJSBSoJyPFhzvMfwsm/RF2bYbTB8Npf4CSpYOuTKTYUchI0bJ1TXhAy8WT4Nh20Hs8HNMi6KpEii2FjBQN7vD1SzD5L5C5B855CDr/DkI6xEWCpP8DJfFtXA7jfw8rP4XjTw3fOVatYdBViQgKGUlkWZnw5VPw0UMQKgU9H4X2v9GAliJxRCEjiennBTD+Flg9C044D3r8CyrVCboqEcmlWISMmZUDngT2AGnu/krAJUmEMrOcTTv2sGN3JlMX/kxqw8qEvhgO0/4JZSpCnxegZR8NaCkSpwo9ZMwsBKQDq929ZwG3MQroCax195a53jsPGAGEgOfdfShwMfCGu08ws9cAhUwCyMxyrnphBkvXbiPL4dZX02lbYgWjGUqodV84byiUqx50mSJyGEGcvB4ELMzrDTOraWYVcrXlNSXhi8B5eawfAp4AugPNgf5m1hxIAVZlL5ZZ4MqlUKUtXsucVZvJyn5eeMdemLP7WNJOexX6PK+AEUkAhRoyZpYC9ACeP8QipwPjzKxM9vLXASNzL+Tu04CNeazfCVjq7svdfQ8wFugNZBAOGjjEZzazC8zs2S1btuTjE0kszV+zlZ17Dvw3wU5Ks8A0V55IoijsnsyjwB8JT+d8EHd/HXgfGGtmVwDXAJfmY/t1+F+PBcLhUgd4C+hjZk8BEw6x7wnufn2lSpXysTuJmV1baJExlrLsPKC5bFKI5sdWDKgoEcmvQgsZM/v1Gsqswy3n7o8Au4CngF7uvi0/u8l7k77d3Qe4++900T8BLH4PnuhM6orhtK2ymxLZv9XkpBBt61YmtUnNYOsTkYgVZk/mFKCXma0kfBrrTDN7OfdCZnYa0BJ4GxiSz31kADknZk8B1hSoWil829fDGwNhTD8oW5XQdVMYfdflNKpZnpTKZXmsfztGD+xMqITuJBNJFIUWMu5+j7unuHs9oB/wkbtfmXMZM2sHPEf4OsoAoKqZPZSP3XwFNDaz+maWlL2f8VH5ABI77jD3dXj8RFgwDlL/BNenQZ0OhEoYVZKTqFOlLN2aHaOAEUkw8fZodDJwibsvc/cs4DfA97kXMrMxwHSgiZllmNlAAHffB9wCfED4Drb/uvv8Qqte8m9LBrx6Gbx1LVRtADd+Cql3Q8mkoCsTkSgI5GFMd08D0vJo/zzX672Eeza5l+t/mG1PAiYddZESW1lZ8PWLMPk+8Ew492HofAOUCAVdmYhEUbF44l/izIZl4QEtv/8M6p8OF4yAqvWDrkpEYkAhI4Uncx98+SR8/DcIlYZej0G7qzQkjEgRppCRwvHTvPCAlmtmQ5Me0OP/oGLtoKsSkRhTyEhs7dsdHszys39BmcrQ99/Q4iL1XkSKCYWMxM6qr8K9l3WLoPVl4QEtk6sGXZWIFCKFjETfnu3hicS+fAoq1oHLX4cTzgm6KhEJgEJGomt5WvjOsc3fw4nXQrch4Xlf8mn4lO8YMXXJAW31Bk/c//2gbo25/ewTjrZaEYkxhYxEx87NMPlemD0aqjaE306CeqcUeHO3n32CQkSkCFDIyNFb+C5MvAO2r4NTboPUwVCqbNBViUgcUMhIwW1bC5PuggXvwDGt4PKxcGy7oKsSkTiikClG8rrOkVPE1zncYe5r8P7g8EX+M+8N92BCpaJXrIgUCebuQdcQVzp27Ojp6elBlxFzlz0zHYDXbjgpfytuXgXv3g5Lp0BKJ+j9ONRoEoMKRSSRmNksd++Yu109GYlMVhakvwAf3h/uyXR/JHz3mAa0FJHDUMjIka1fEr4t+YcvoMEZ4QEtqxwfdFUikgAUMnJomfvgi5GQNhRKlYHeT0LbyzUkjIhETCEjeftxbnhImB+/gaY9wwNaVqgVdFUikmAUMnKgvbtg2iPw2aOQXA0u/Q807x10VSKSoBQy8j8/zAj3XtZ/B20uh3P/pgEtReSoKGQEdm+DqQ/CzGehUgpc+SY0OivoqkSkCFDIFEOZWc6mHXvYsTuTqR9NJnXOnYS2/gCdroNu90HpCkGXKCJFhEKmmMnMcq56YQbL1m4jy51bJ++ibdK1jB7QkVD9k4MuT0SKmBJBFyCFK23xWuZ8v55MB8fYQVnmcAJpuxoGXZqIFEHFImTMrJyZvWRmz5nZFUHXE5hffmb+5H+zc9+BQwnt3JPJgjVbAypKRIqyQgsZMytjZjPN7Bszm29mDxzFtkaZ2Vozm5fHe+eZ2WIzW2pmg7ObLwbecPfrgF4F3W/CcofZr8ATnWixcSplc40EUzYpRPNj8z+xmIjIkRRmT2Y3cKa7twHaAueZWZecC5hZTTOrkKutUR7behE4L3ejmYWAJ4DuQHOgv5k1B1KAVdmLZR7dx0gwm76Hly+GcTdBzWak3vwEbevVoET2Q/vJSSHa1q1MapOawdYpIkVSoYWMh23Lflkq+yv3ENCnA+PMrAyAmV0HjMxjW9OAjXnsphOw1N2Xu/seYCzQG8ggHDRwiM9sZheY2bNbtmzJ3weLV1lZMOMZePIkWDUTzv8n/HYSoZonMHpgZxrVLE9K5bI81r8dowd2JlRCQ8WISPQV6jUZMwuZ2RxgLTDF3WfkfN/dXwfeB8ZmXzu5Brg0H7uow/96LBAOlzrAW0AfM3sKmJDXiu4+wd2vr1SpUj52F6fWLYZ/nwfv/RGO6wI3TQ/fnlwi/OsOlTCqJCdRp0pZujU7RgEjIjFTqLcwu3sm0NbMKgNvm1lLd5+Xa5lHzGws8BTQMEfvJxJ5/bV0d98ODCho3Qkjcy98PgI++QeUSoYLn4Y2/TSgpYgEJpDnZNx9s5mlEb6uckDImNlpQEvgbWAIcEs+Np0B1M3xOgVYc1TFJoo1c8JDwvz0LTS/EM4fBuV1nUVEglWYd5fVyO7BYGZlgbOARbmWaQc8R/g6ygCgqpk9lI/dfAU0NrP6ZpYE9APGR6H8+LV3Z3gisefOhG1r4bKX4dKXFDAiEhcKsydTG3gp+w6wEsB/3f3dXMskA5e4+zIAM/sN8NvcGzKzMUAqUN3MMoAh7v6Cu+8zs1uAD4AQMMrd58fqAwXu+y9g/K2wYSm0uxLOeQjKVgm6KhGR/QotZNx9LtDuCMt8nuv1XsI9m9zL9T/MNiYBkwpYZmLY/Uu49/LV81D5OLjqHWh4RtBViYgcRGOXJZolU2DCbbB1NXT+HZx5L5QuH3RVIiJ5Usgkih0b4f17YO5YqN4EBk6Gup2CrkpE5LAUMvHOHRa8A5Pugp2boOsfoeudULJ00JWJiByRQiaebf0RJt0Ji96F2m3hqrehVqugqxIRiZhCJh65w+zR8MG9kLkbzn4QutwMoaP7dQ2f8h0jpi45oK3e4In7vx/UrTG3n33CUe1DRCQnc889fFjx1rFjR09PTw+ugI0rYMIgWPEJHH8KXDASquc1RqiISPwws1nu3jF3u3oy8SIrMzyg5Ud/BQtBj39BhwH7xxsTEUlECpl4sHZReEiYjK+g8TnQczhUSjnyeiIicU4hE6R9e+DzR2HaMEgqDxc/B60u0YCWIlJkKGSCsvrr8JAwP8+Dln3gvH9A+RpBVyUiElUKmcK2ZwekPQzTH4fyx0C/MdD0/KCrEhGJCYVMYVr5Wbj3snE5tP9N+NbkspWDrkpEJGYUMoVh11b4cAikj4Iq9eDq8dDg9KCrEhGJOYVMrH33Abx7O/zyI5x0C5zxJ0gqF3RVIiKFQiETK9vXw/uD4dvXoUYzuPQ/kHLQc0oiIkWaQiba3GHem/DeH8OnyU4fDKfdASWTgq5MRKTQKWSiaesaePcP8N17cGx76P04HNMi6KpERAKjkImWr/8DH/wZMveGp0HuchOUCAVdlYhIoBQy0bJuMdRuAxeMgGoNg65GRCQuKGSipdsQKFFSA1qKiOSgkIkWXdgXETmI/tktIiIxo5AREZGYUciIiEjMKGRERCRmFDIiIhIzChkREYkZhYyIiMSMuXvQNcQVM1sHfH+ExSoBW6Kwu4JuJ7/rRbr8kZY73PuHe686sD6C/ceLaP1+C2sfhXEcFcYxdLj3dQzFdj/ROIaOd/eD55B3d33l8wt4Nsjt5He9SJc/0nKHe/8I76UH/TsL4vdbWPsojOOoMI6hw72vYyi2+4nlMaTTZQUzIeDt5He9SJc/0nKHez9aP5N4UBifJZr7KIzjqDCOofzsJ94V1ueI+79FOl0mMWdm6e6uGdukwHQMJS71ZKQwPBt0AZLwdAwlKPVkREQkZtSTERGRmFHIiIhIzChkREQkZhQyUujM7EIze87MxpnZOUHXI4nHzJqZ2dNm9oaZ/S7oeuTQFDISFWY2yszWmtm8XO3nmdliM1tqZoMB3P0dd78O+C1wWQDlShzK5zG00N1vBC4FdGtzHFPISLS8CJyXs8HMQsATQHegOdDfzJrnWOTe7PdFIJ/HkJn1Aj4DphZumZIfChmJCnefBmzM1dwJWOruy919DzAW6G1h/wDec/evC7tWiU/5OYaylx/v7icDVxRupZIfJYMuQIq0OsCqHK8zgM7ArcBZQCUza+TuTwdRnCSEPI8hM0sFLgZKA5MKvyyJlEJGYsnyaHN3HwmMLOxiJCEd6hhKA9IKtxQpCJ0uk1jKAOrmeJ0CrAmoFklMOoYSnEJGYukroLGZ1TezJKAfMD7gmiSx6BhKcAoZiQozGwNMB5qYWYaZDXT3fcAtwAfAQuC/7j4/yDolfukYKpo0QKaIiMSMejIiIhIzChkREYkZhYyIiMSMQkZERGJGISMiIjGjkBERkZhRyIiISMwoZEREJGYUMiIBMrNthbivRmb2ba620ma2Itc8PyJRo5ARKT6WA3XNLOf/99cDn7j7goBqkiJOISMSJWb2DzO7Kcfr+83sDjP7g5nNy/66LY/16uWcctjM7jSz+3O8t8jMns9e/xUzO8vMPjezJWbWKXu5K81sppnNMbNnsmeUPIC7ZwE/APWy1ykL3AHcH82fg0hOChmR6BkLXJbj9aVAOjCA8GRtXYDrzKxdPrfbCBgBtAaaApcDpwJ3An8ys2bZ+z3F3dsCmRx6tsiF2dsAuBkY7+4r81mPSMQ0aZlIlLj7bDOraWbHAjWATUBb4G133w5gZm8BpwGz87HpFe7+bfb684Gp7u7Z11fqAd2ADsBXZgZQFlh7iG0tJDzK8TTCIdMlXx9SJJ8UMiLR9QbQF6hFuGdz0GmrPOzjwLMKZXK9vzvH91k5XmcR/n/YgJfc/Z4I9rUQOBMYBLzi7j9HsI5Igel0mUh0jSU8sVZfwoEzDbjQzJLNrBxwEfBprnV+BmqaWTUzKw30zOc+pwJ9zawmgJlVNbPjD7HsQqATcA0wLJ/7Eck39WREosjd55tZBWC1u/8I/GhmLwIzsxd53t1n51pnr5k9CMwAVgCL8rnPBWZ2LzA5+86xvYRPhX2fx+KLgVbAn919S372I1IQmrRMRERiRqfLREQkZhQyIiISMwoZERGJGYWMiIjEjEJGRERiRiEjIiIxo5AREZGYUciIiEjM/D9Rcnc6lDMO/QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEcCAYAAAAV2MmlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAxuklEQVR4nO3dd3SUddrG8e9NIEBooSoQlKaUAAZBsGIQUSmCFUXBVbCt4tpX9HVFd3V1RRdlLYjKquCCa6Uu3cgqHYlIlaYSUXoRkhAy+b1/TMwmIcAkzMwzk1yfc3JO5qn3hCFXnnb/zDmHiIhIKJTzugARESm9FDIiIhIyChkREQkZhYyIiISMQkZEREJGISMiIiGjkBERkZBRyIhEODM738zmm9k+M9ttZl+Z2Vle1yUSiPJeFyAiR2dm1YEpwO+BfwOxwAXAIS/rEgmU6Yl/kchlZh2B2c65eK9rESkJnS4TiWzfAT4ze9fMephZTa8LEikOhYxIBHPO7QfOBxzwJrDDzCaZ2UneViYSGJ0uE4kiZtYSGAesd87197oekePRkYxIFHHOrQXeAdp4XIpIQBQyIhHMzFqa2YNmlpD7uhHQH1jobWUigVHIiES2X4HOwCIzO4g/XFYCD3palUiAdE1GRERCRkcyIiISMgoZEREJGYWMiIiEjEJGRERCRiEjIiIhoy7MhdSpU8c1btzY6zJERKLKsmXLdjrn6haerpAppHHjxixdutTrMkREooqZ/VDUdJ0uExGRkFHIiIhIyChkREQkZHRNJgCHDx8mLS2NzMxMr0uRKFapUiUSEhKoUKGC16WIhI1CJgBpaWlUq1aNxo0bY2ZelyNRyDnHrl27SEtLo0mTJl6XIxI2Ol0WgMzMTGrXrq2AkRIzM2rXrq2jYSlzFDIBUsDIidJnSCKW7zCkjocQdOXX6TIRkbJsaypMHALbvoVqJ0Gzi4K6eYWMiEhZdDgDUp6D+f+AKnXguveDHjCg02VRZeTIkbRq1Yobb7yRc889F4C9e/fy2muvhbWO6dOn06JFC5o3b85zzz1X5DIjRowgMTGRNm3a0L9//wLXIgYNGkS9evVo06Zkw9QPHjyYqVOnlmjdomRmZtKpUyfOOOMMEhMTGTZsWJHLHa9un89H+/bt6d27d9BqEwmJH+bDqPPhq5cg6Qa4exG0CtHn1jmnr3xfHTp0cIWtXr36iGleaNGihdu0aVOBaZs3b3aJiYlhqyE7O9s1bdrUbdy40R06dMi1a9fOrVq1qsAyaWlprnHjxi49Pd0559y1117r/vnPf+bN/+KLL9yyZctKXPeZZ57ptmzZUuL3UFhOTo779ddfnXPOZWVluU6dOrkFCxYcsdzx6n7xxRdd//79Xa9evY66r0j5LEkZlbnfuSkPODesunMj2ji3YW7QNg0sdUX8TtWRTJS488472bRpE3369GHEiBFUrVoVgKFDh7Jx40aSkpJ4+OGHj7mNrVu3cvXVV9O+fXtatmzJ4sWLi13H4sWLad68OU2bNiU2Npbrr7+eiRMnHrFcdnY2GRkZZGdnk56eToMGDfLmdenShVq1agW8z++++47zzz+ftm3bMmLECH755RcSEhKKXfvRmFnez/Pw4cMcPny4yIv0x6o7LS2NqVOncuuttwatLpGgWj8LXj0blrwNZ98Fdy2EZl1Dvltdkymu/wyFX74N7jZPbgs9ij7t9JtRo0Yxffp0Pv/8c+rUqcOf/vQnAJ577jlWrlxJampq3rI9e/bkrbfeKvCLPTs7mx49evDMM8/Qu3dv0tPT8fl8BfZxwQUX8Ouvvx6x7xdeeIGLL74YgJ9++olGjRrlzUtISGDRokUFlm/YsCEPPfQQp5xyCpUrV+aSSy7hkksuCexnUUh2djYDBgzglVdeoVOnTtx11120bNkyoHUDeT+/8fl8dOjQgQ0bNnD33XfTuXPnYtV533338fzzzxe5PxFPpe+G6Y/CiglQtyUMngWNzgrb7hUypdC0adOOmPbZZ5/RqlWrvOsFcXFxRyzz3//+97jbdkXc4lj4r/49e/YwceJENm/eTHx8PNdeey3jxo1jwIABgb6FPJ988gmtWrWiU6dOACQmJlK5cuW8+X379s07krr22muZMGECMTExAb+f38TExJCamsrevXu58sorWblyZcDXjKZMmUK9evXo0KEDKSkpAe9TJKScg1WfwrSHIXMvdPkjdHkIylcMaxkKmeI6zhFHpEpNTeXss88+5jKB/OWfkJDAli1b8ualpaUVOGICmD17Nk2aNKFuXf/QEldddRXz588vUcisWLGCDh065L1etmwZycnJAGzZsoX69evnzcvJyckLmEDfT2Hx8fEkJyczffr0gEPmq6++YtKkSUybNo3MzEz279/PgAEDGDdu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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEcCAYAAAAV2MmlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAxfElEQVR4nO3dd3iV5f3H8fc3wQBhb4SgyBBC2CDgjiIqylBx4Wir1FHHT61a0VrR1lYrtghuq9RZsE6mDNGIA1kSkSlDlICyFBAIK/n+/jgxDSHASTjnPDnJ53Vdua6cZ93fEw755Hme+7lvc3dERESiISHoAkREpOxSyIiISNQoZEREJGoUMiIiEjUKGRERiRqFjIiIRI1CRkREokYhI1KKmdkqM8s2s21m9pOZTTCzJkHXJRIuhYxI6dfX3asCRwLrgMcDrkckbAoZkTjh7juBN4E2QdciEi6FjEicMLNk4BLg86BrEQlXhaALEJFDetfM9gJVgfXAWQHXIxI2ncmIlH7nuXtNoCJwE/CRmTUMtiSR8ChkROKEu+e4+9tADnBS0PWIhEOXy0TihJkZ0A+oBSwOuByRsChkREq/cWaWAzjwLfBrd18YcE0iYTFNWiYiItGiezIiIhI1ChkREYkahYyIiESNQkZERKJGISMiIlGjLsyF1K1b15s2bRp0GSIicWXu3Lkb3b1e4eUKmUKaNm3KnDlzgi5DRCSumNm3RS3X5TIREYkahYyIiESNQkZERKJG92TCsGfPHrKysti5c2fQpUicqlSpEikpKRxxxBFBlyISUwqZMGRlZVGtWjWaNm1KaCBckfC5O5s2bSIrK4tjjjkm6HJEYkqXy8Kwc+dO6tSpo4CREjEz6tSpozNhKZcUMmFSwMjh0OdHSrWcPZA5CqIwKr8ul4mIlGdrM2HMTbDuK6jWAJqfHtHDK2RERMqjPdmQ8TB89jhUqQuXvBbxgAFdLosrI0aMIDU1lcsvv5wTTjgBgM2bN/PUU0/FtI5JkybRqlUrWrRowcMPP7zf+qVLl9KxY8f8r+rVq/PYY48BcPXVV1O/fn3atm1b4vYHDRrEhAkTSrx/QatXr+a0004jNTWVtLQ0hg8ffsBthw8fTtu2bUlLS8t/P3Don4dIqfPtZ/DMSfDpY9DxMrhxJqT2iU5b7q6vAl9dunTxwhYtWrTfsiC0atXKV65cuc+yb775xtPS0mJWw969e71Zs2a+YsUK37Vrl7dv394XLlx40O0bNGjgq1atcnf3jz76yOfOnXtYNXfu3NlXr15d4v0LWrt2rc+dO9fd3bdu3eotW7Ys8v189dVXnpaW5tu3b/c9e/Z4z549/euvvy7Wz6O0fI6kHNu51X38792HVHcf1tZ9+QcROzQwx4v4naozmThx/fXXs3LlSvr168ewYcOoWrUqAIMHD2bFihV07NiRO++886DHWLt2LQMGDKBTp060bt2aWbNmFbuOWbNm0aJFC5o1a0ZSUhKXXnopY8aMOeD206ZNo3nz5hx99NEAnHLKKdSuXbtYbX799decdNJJtGvXjmHDhvHDDz+QkpJS7NqLcuSRR9K5c2cAqlWrRmpqKmvWrNlvu8WLF9OjRw+Sk5OpUKECp556Ku+8806xfx4igVk2FZ7sAbNfgB43wA2fQ/PTot6s7skU13uD4YevInvMhu2g98EvszzzzDNMmjSJDz/8kLp16/KnP/0JgIcffpgFCxaQmZmZv+0555zD888/T6NGjfKX7d27l969e/PXv/6VPn36sGPHDnJycvZp4+STT+bnn3/er+1HH32UM844A4A1a9bQpEmT/HUpKSnMnDnzgHWPHj2agQMHHvS9HczevXu54ooreOKJJ+jWrRs33HADrVu3DmvfcN5PQatWrWLevHl07959v3Vt27blj3/8I5s2baJy5cpMnDiRrl27FvvnIRJzO36ESXfD/NFQrzUMmgpNjotZ8wqZMmjixIn7LXv33XdJTU2lT5/Qddfk5OT9tvn4448PeWwvoovjgbrn7t69m7Fjx/LQQw8d8rgH8vbbb5Oamkq3bt0ASEtLo3LlygD0798//6zhoosuYvTo0SQmJubvG877+cW2bdsYMGAAjz32GNWrV99vfWpqKnfddRe9evWiatWqdOjQgQoVKhTr5yESU+6w8B2YeCfs3Ayn/AFOuQMqVIxpGQqZ4jrEGUdplZmZSY8ePQ66TTh/+aekpLB69er8dVlZWfucMRX03nvv0blzZxo0aFDiuufPn0+XLl3yX8+dO5f09HRWr17NkUcemb88Nzd3n4AJ9/1AaNigAQMGcPnll3PBBRccsJZBgwYxaNAgAO655x5SUlKK9fMQiZmt38PEO2DJeDiyI/xqDDQseWebw6GQiXPVqlUr8hdpYQ0bNuTL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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Fitting and plotting\n",
"from matplotlib import pyplot as plt\n",
"from scipy.optimize import curve_fit\n",
"\n",
"with h5py.File(\"qgdimension.hdf5\", \"r\") as f:\n",
" N_space = np.array(f[\"N-values\"])\n",
" V_space = (N_space + 4)/2\n",
" expectations = {model: np.array(f[\"expectation-graph-distance-{}\".format(model)]) for model in models}\n",
" \n",
" for model in models:\n",
" mu = np.mean(expectations[model], 1)\n",
" sigma = np.std(expectations[model], 1)\n",
"\n",
" fitfunc = lambda V, c, d_H: c*V**(1/d_H)\n",
" popt, pcov = curve_fit(fitfunc, V_space, mu, sigma=sigma)\n",
" V_space_fit = np.linspace(np.min(V_space)/2, np.max(V_space)*2, 1000)\n",
"\n",
" plt.figure()\n",
" plt.title(model)\n",
" plt.errorbar(V_space, mu, sigma, label=\"Monte Carlo\",\n",
" fmt='.', markersize=10, capsize=4)\n",
" plt.plot(V_space_fit, fitfunc(V_space_fit, *popt),\n",
" label=r\"fit: $c = {:.2f}$, $d_H = {:.2f}$\".format(*popt))\n",
" plt.xlabel(r\"volume $V$\")\n",
" plt.ylabel(r\"$\\mathbb{E}[d_T(X,Y)]$\")\n",
" plt.yscale(\"log\")\n",
" plt.xscale(\"log\")\n",
" plt.legend()\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b505b3cf",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "be7888d11d6b9ca0f2666739857578cb",
"grade": false,
"grade_id": "cell-032c7f8d6147d9f9",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**(d)** Produce a *collapse* plot for each of the four models as follows: plot \n",
"$$V^{1/d_H}\\,\\mathbb{E}[\\frac{1}{V}\\rho_T(r)] \\quad\\text{ as function of } x = r / V^{1/d_H},$$ \n",
"where for $d_H$ you take the estimate obtained in the previous exercise. Show errors in the mean distance profiles via shaded regions (just like in the lecture). Verify that the curves collapse reasonably well. **(25 pts)**"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "988bfe95",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "7b7eceb7923231bc3710d4e3036265b6",
"grade": true,
"grade_id": "cell-faf328e7505cf6a2",
"locked": false,
"points": 25,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "markdown",
"id": "d8f25787",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "7f19410ed936f838773ee891b059d1a3",
"grade": false,
"grade_id": "cell-65ae9c46ece5b657",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"**(e) Bonus exercise:** Make more robust estimates of $d_H$ by optimizing the quality of the collapse. You could do this (for each model separately) by taking $\\hat{f}(r) = \\mathbb{E}[\\rho_T(r)] / V_0$, where the right-hand side is the mean distance profile for the largest system size with $V_0 = (2^{12} + 4)/2$ vertices. Then according to our assumption, for another size $V \\leq V_0$ we expect $\\mathbb{E}[\\rho_T(r)] / V \\approx k \\hat{f}(kr)$, where $k \\geq 1$ is a scale factor that should be $k\\approx (V_0/V)^{1/d_H}$. Making sure to interpolate the function $\\hat{f}(r)$ (using [`scipy.interpolate.interp1d`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html#scipy.interpolate.interp1d)), this scale factor can be determined by fitting the curve $k \\hat{f}(kr)$ to the data $\\mathbb{E}[\\rho_T(r)] / V$. Then $d_H$ can be estimated by fitting $k$ versus $V$. **(20 bonus points, but note that maximum grade is 10)**"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ed4424ce",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "199ffddc14c77d4174b92a61368cd5c9",
"grade": true,
"grade_id": "cell-e24b0602e4e8257d",
"locked": false,
"points": 20,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9e50c10",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}