{ "cells": [ { "cell_type": "markdown", "id": "0f977a05-2365-410a-8d90-202374c2c5aa", "metadata": {}, "source": [ "```{index} disjunctive programming\n", "```\n", "```{index} single: application; scheduling\n", "```\n", "```{index} single: solver; HiGHS\n", "```\n", "```{index} single: Gantt charts\n", "```\n", "```{index} pandas dataframe\n", "```\n", "# 3.5 Machine Scheduling" ] }, { "cell_type": "markdown", "id": "f3a9ec0b-dfc4-4576-83a5-1c7b289793df", "metadata": {}, "source": [ "## Preamble: Install Pyomo and a solver\n", "\n", "The following cell sets and verifies a global SOLVER for the notebook. If run on Google Colab, the cell installs Pyomo and the HiGHS solver, while, if run elsewhere, it assumes Pyomo and HiGHS have been previously installed. It then sets to use HiGHS as solver via the appsi module and a test is performed to verify that it is available. The solver interface is stored in a global object `SOLVER` for later use." ] }, { "cell_type": "code", "execution_count": 1, "id": "351ce959-4e44-433d-ba31-a82521888c96", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5ssUqKOaPVaE", "outputId": "38c1005a-39f4-4307-e305-19a4c9819396" }, "outputs": [], "source": [ "import sys\n", "\n", "if \"google.colab\" in sys.modules:\n", " %pip install pyomo >/dev/null 2>/dev/null\n", " %pip install highspy >/dev/null 2>/dev/null\n", "\n", "solver = \"appsi_highs\"\n", "\n", "import pyomo.environ as pyo\n", "\n", "SOLVER = pyo.SolverFactory(solver)\n", "\n", "assert SOLVER.available(), f\"Solver {solver} is not available.\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from matplotlib.lines import Line2D" ] }, { "cell_type": "markdown", "id": "47dbbe18-205b-430b-895e-ee51b15cf3ca", "metadata": {}, "source": [ "## Problem description\n", "\n", "\"Which job should be done next?\" is a question one face in modern life, whether for a busy student working on course assignments, a courier delivering packages, a server waiting on tables in a busy restaurant, a computer processing threads, or a machine on a complex assembly line. There are well-known empirical rules or heuristics to address to this question, among which \"first in, first out\", \"last in, first out\", or \"shortest job first\". \n", "\n", "What we consider in this notebook is the modeling finding solutions to this class of problem using optimization techniques. This notebook demonstrates the formulation of a model for scheduling a single machine scheduling using disjunctive programming in Pyomo. Data for the example problem is from Chapter 5 of the book by Christelle Guéret, Christian Prins, Marc Sevaux titled [Applications of Optimization with Xpress-MP](https://www2.isye.gatech.edu/~sahmed/isye3133b/XpressBook.pdf) (Dash Optimization, 2000).\n", "\n", "Consider the problem of scheduling a set of jobs on a single machine given the release time, duration, and due time for each job. Our goal is to find a sequence of the jobs on the machine that meets the due dates. If no such schedule exists, then the objective is to find the least bad schedule that minimizes a designated performance metric. " ] }, { "cell_type": "markdown", "id": "95641d22-b943-47a5-8e3a-303861877ebe", "metadata": {}, "source": [ "### Job data\n", "\n", "The data is given as a Pandas dataframe in which each row corresponds to a job, its release time, duration, and due date. " ] }, { "cell_type": "code", "execution_count": 3, "id": "825592dd-46e3-42b6-8c86-21071066617a", "metadata": {}, "outputs": [ { "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", "
releasedurationdue
A2510
B5621
C4815
D0410
E025
F8315
G9222
\n", "
" ], "text/plain": [ " release duration due\n", "A 2 5 10\n", "B 5 6 21\n", "C 4 8 15\n", "D 0 4 10\n", "E 0 2 5\n", "F 8 3 15\n", "G 9 2 22" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "jobs = pd.DataFrame(\n", " {\n", " \"A\": {\"release\": 2, \"duration\": 5, \"due\": 10},\n", " \"B\": {\"release\": 5, \"duration\": 6, \"due\": 21},\n", " \"C\": {\"release\": 4, \"duration\": 8, \"due\": 15},\n", " \"D\": {\"release\": 0, \"duration\": 4, \"due\": 10},\n", " \"E\": {\"release\": 0, \"duration\": 2, \"due\": 5},\n", " \"F\": {\"release\": 8, \"duration\": 3, \"due\": 15},\n", " \"G\": {\"release\": 9, \"duration\": 2, \"due\": 22},\n", " }\n", ").T\n", "display(jobs)" ] }, { "cell_type": "markdown", "id": "e7210c42-747f-4c4d-8649-923b543dcf17", "metadata": {}, "source": [ "### Schedule data\n", "\n", "A schedule is also represented here by a Pandas dataframe indexed by job names. The columns indicate the start, finish, and the amount by each job is past due. The following function creates the schedule corresponding to the scenario in which jobs are executed in the order given by the `jobs` dataframe." ] }, { "cell_type": "code", "execution_count": 4, "id": "bb753289-ac47-4ee4-9a8f-7f72e6e362da", "metadata": {}, "outputs": [ { "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", "
startfinishpast
A2.07.00.0
B7.013.00.0
C13.021.06.0
D21.025.015.0
E25.027.022.0
F27.030.015.0
G30.032.010.0
\n", "
" ], "text/plain": [ " start finish past\n", "A 2.0 7.0 0.0\n", "B 7.0 13.0 0.0\n", "C 13.0 21.0 6.0\n", "D 21.0 25.0 15.0\n", "E 25.0 27.0 22.0\n", "F 27.0 30.0 15.0\n", "G 30.0 32.0 10.0" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def schedule_jobs(jobs, seq):\n", " schedule = pd.DataFrame(index=jobs.index)\n", " t = 0\n", " for job in seq:\n", " t = max(t, jobs.loc[job][\"release\"])\n", " schedule.loc[job, \"start\"] = t\n", " t += jobs.loc[job, \"duration\"]\n", " schedule.loc[job, \"finish\"] = t\n", " schedule.loc[job, \"past\"] = max(0, t - jobs.loc[job, \"due\"])\n", "\n", " return schedule\n", "\n", "\n", "schedule = schedule_jobs(jobs, jobs.index)\n", "schedule" ] }, { "cell_type": "markdown", "id": "e927f02f-a044-41f2-acb0-0f97b44714ab", "metadata": {}, "source": [ "### Gantt chart\n", "\n", "A classical way of visualizing scheduling data in the form of a Gantt chart. The next cell defines a function `gantt` that plots a Gantt chart given jobs and schedule information. " ] }, { "cell_type": "code", "execution_count": 5, "id": "ca36897b-9f2c-4973-bc61-f192e5a54f36", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using the \"job order\" strategy, the total past due is 68.0\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def gantt(jobs, schedule, title=\"\"):\n", " w = 0.25 # bar width\n", "\n", " plt.rcParams.update({\"font.size\": 13})\n", " fig, ax = plt.subplots(1, 1, figsize=(13, 0.7 * len(jobs.index)))\n", "\n", " for k, job in enumerate(jobs.index):\n", " r = jobs.loc[job, \"release\"]\n", " d = jobs.loc[job, \"due\"]\n", " s = schedule.loc[job, \"start\"]\n", " f = schedule.loc[job, \"finish\"]\n", "\n", " # Show job release-due window\n", " ax.fill_between(\n", " [r, d], [-k - w, -k - w], [-k + w, -k + w], lw=1, color=\"k\", alpha=0.2\n", " )\n", " ax.plot(\n", " [r, r, d, d, r], [-k - w, -k + w, -k + w, -k - w, -k - w], lw=0.5, color=\"k\"\n", " )\n", "\n", " # Show job start-finish window\n", " color = \"g\" if f <= d else \"r\"\n", " ax.fill_between(\n", " [s, f], [-k - w, -k - w], [-k + w, -k + w], color=color, alpha=0.6\n", " )\n", " ax.text(\n", " (s + f) / 2.0,\n", " -k,\n", " \"Job \" + job,\n", " color=\"white\",\n", " weight=\"bold\",\n", " ha=\"center\",\n", " va=\"center\",\n", " )\n", "\n", " # If past due\n", " if f > d:\n", " ax.plot([d] * 2, [-k + w, -k + 2 * w], lw=0.5, color=\"k\")\n", " ax.plot([f] * 2, [-k + w, -k + 2 * w], lw=0.5, color=\"k\")\n", " ax.plot([d, f], [-k + 1.5 * w] * 2, solid_capstyle=\"butt\", lw=1, color=\"k\")\n", " ax.text(\n", " f + 0.5,\n", " -k + 1.5 * w,\n", " f\"{schedule.loc[job, 'past']} past due\",\n", " va=\"center\",\n", " )\n", "\n", " total_past_due = schedule[\"past\"].sum()\n", " ax.set_ylim(-len(jobs.index), 1)\n", " print(f'Using the \"{title}\" strategy, the total past due is {total_past_due}')\n", " ax.set_xlabel(\"Time\")\n", " ax.set_ylabel(\"Jobs\")\n", " ax.set_yticks([])\n", " ax.spines[\"right\"].set_visible(False)\n", " ax.spines[\"left\"].set_visible(False)\n", " ax.spines[\"top\"].set_visible(False)\n", "\n", " custom_lines = [\n", " Line2D([0], [0], c=\"k\", lw=10, alpha=0.2),\n", " Line2D([0], [0], c=\"g\", lw=10, alpha=0.6),\n", " Line2D([0], [0], c=\"r\", lw=10, alpha=0.6),\n", " ]\n", " ax.legend(\n", " custom_lines,\n", " [\"Job release/due window\", \"Completed on time\", \"Completed past due\"],\n", " bbox_to_anchor=(1.05, 1),\n", " loc=\"upper left\",\n", " )\n", "\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "\n", "gantt(jobs, schedule, \"job order\")" ] }, { "cell_type": "markdown", "id": "c92b7e68-bb11-429a-a8f0-996187b4ea60", "metadata": {}, "source": [ "## Empirical Scheduling Rules\n", "\n", "To provide a comparison to scheduling using a MILO model, we first implement three well-known and accepted empirical rules for scheduling jobs on a single machine:\n", "\n", "* First in, first out (FIFO)\n", "* Earliest due data (EDD)\n", "* Shortest processing time (SPT)" ] }, { "cell_type": "markdown", "id": "10d6d0a5-50bc-4cdc-88e7-2c1fb5c9a149", "metadata": {}, "source": [ "### First-in, first-out (FIFO)\n", "\n", "One of the most common scheduling rules is to execute jobs in the order they are released for processing, in other words \"first-in, first-out\" (FIFO). The following cell creates a Pandas dataframe is indexed by job names. The start time, finish time, and, if past due, the amount by which the job is past due.\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "57cd67ca-c1cf-458c-8fa0-55a17a57a61a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using the \"First in, First out\" strategy, the total past due is 31.0\n" ] }, { "data": { "image/png": "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4sSJrFixgoULF+Lm5kaJEiVo2bIl7W5ak7xMmTJs2rSJ0NBQpk6dislk4tlnnyUsLIzChQtn6Z59fHz47bffGDVqFCtXrmTevHkULlyYXr16MWbMmGztpJwV7u7uLFmyhBEjRvD222+TlJRE48aN73uyLzvPNbczWO/n6ory0IuPjyckJISPP/4YN7esfyMXx3E5e5ZSY8eS4uOD5TbvPDmaX1gYTp6ettfm6GiuvPsulgc4lPthYTab6bx5Mz+2aIGL833+ZS82Fi5ehNmzoWTJ+3stEREREclQYmIix44do3Tp0vo76yExf/58unXrRmRkJME3bdgn8ijJ6veWR/ctBhF5uFmtWBMTMZ89y/UdO4hfsQJrbKyjoxIRERERERHJ1ZTsE5H74mKXLo4OQURERERERCTPUbJPAEhKSnJ0CJJFlsRELBYLxMdjNZsdHY5khcWCwWxOnWJ7v6fxxsff3/5FRERERETkoaY1+/K4pKQk3NzcqFu3rqNDkSxySk7GKyoKJyX6HinuTk58V7s2Rien+38xX1/4/HPw97//1xIRERGRdLRmn4jcD1qzT7LEZDKRmJiIWYmjR8v58xg0GvOR4uTkhNFkejAXc3NTok9ERERERCSPUrJPMD2oBITknIAAR0cgIiIiIiIiIg+hBzCfTERERERERERERB4EJftERERERERERERyCSX7REREREREREREcgkl+0RERERERERERHIJJftERERERERERERyCSX7REREREREREREcglnRwcgIiIiIiIiktsU+vhjnE0mcH6E/+x2c4OJEx0dhUMEBwcTFRVFVFSUo0PJlMFg4NVXX2X+/PmODuWBiYqKonTp0owaNYrRo0c7OpyH1iP8XUdERERERETk4eSUlJR6kJLi2EAeoPj4eGbPns3333/P3r17uXbtGgUKFKBWrVq0a9eOTp064fwoJz+zYfny5ezevVsJKWD37t0sX76crl27EhAQ4Ohw8gRN4xUREREREckhAQEBBAcHOzoMkQfuyJEj1KhRgwEDBuDm5sa7777L7NmzGThwIMnJyXTr1o1hw4Y5OswHZvny5YwZM8bRYTwUdu/ezZgxYx7qUZK5jZJ9IiIiIiJCfHw8gYGBGAwG+vXrl622P/74I0888QSenp4UKFCAtm3bcuzYsfsUac66cuUKo0ePZv369Y4OReSRlZCQQIsWLTh69Cjff/89a9euZfDgwXTr1o0hQ4awdu1atm7dqlFdIg+Ikn0iIiIiYtO7d29HhyDZlFOfs5EjRxIdHZ3tdsuWLaNFixYkJCQwefJkBg8ezMaNG3nyySc5ffp0jsR2P125coUxY8Yo2SdyD+bMmcPBgwcJDQ2lTZs2GdapU6cOffr0sStbvnw5Tz75JJ6ennh5efHkk0+yYsWKdG3TRszu2bOHpk2b4uXlhb+/P6GhoaSkpJCYmMigQYMoXrw4bm5uNGrUiP3799v1MX/+fAwGA+vWrWP06NGUKlUKk8lE1apVWbJkSZbv9fDhw3Tu3JmiRYvi6upKQEAAgwcPJi4uzlYnODiYBQsWAKnr6qV93Ly23pkzZ+jduzclS5bE1dWVYsWK0aNHD86fP5/umnv37qV58+a2N1Q6duyYYb3MZPfe16xZQ/v27QkMDMTd3R1fX1+efvppNmzYkGFsbdu2pXjx4phMJooUKUKTJk1YvXo1AKNHj6Zbt24ANGnSxPYsunbtese4f/31V5588knc3d0pXLgw/fr1IzY2NtP7y+j7eHBwcIZJ5u3bt/Piiy9SsGBBTCYT5cuX58MPPyQll0y7zxuT5UVEREQkS06dOuXoECSbcuJztnPnTj799FMmTZpEaGholtslJyfTv39/SpQowaZNm/Dy8gLg2WefpVatWowePZrZs2ffc3wi8nD77rvvAOjRo0eW20yfPp2+fftSoUIFRo4cCaQmbVq3bs2sWbPS9fXPP//QrFkz2rdvz8svv8yaNWv45JNPcHZ2Zu/evSQkJDB06FAuXLjARx99ROvWrdm/fz9OTvZjnIYMGUJcXJwt8Thv3jxeeeUVEhMT75iA2rFjByEhIfj6+tKzZ0+KFy/Onj17+Pzzz/ntt9/YsGEDLi4uDB8+HIvFwqZNmwgLC7O1f+KJJwA4ceIE9evX5/r167z22muUKVOGI0eOMGPGDCIjI9m+fTs+Pj4AHDt2jIYNG5KUlES/fv0oUaIEq1atonnz5ll+1tm99/nz53Pp0iW6dOnCY489xqlTp5gzZw5PPfUUkZGRNGzYEICLFy8SEhICQK9evShVqhQXLlxg+/btbNmyheeff542bdpw5swZZs+ezbBhw3j88ccBKFOmzG1j3bJlC02bNsXb25shQ4bg6+vLkiVL6NKlS7bv+1arV6+mTZs2BAUFERoaSoECBfjjjz8YOXIku3fvZunSpfd8DUdTsk9EREREJA8zm8288cYbNG/enDZt2mQr2bdhwwZOnz7N+++/b0v0AVSvXp3g4GC++eYbvvjiC1xcXDLt4+adFcuXL8/48eM5dOgQ/v7+dO/enREjRtgt6H/gwAE+//xzNmzYwIkTJzCbzTz++OP07t2b119/3a7vS5cu8cEHH7By5UpOnTqFp6cnAQEB/Pvf/2bw4MGsX7+eJk2aADBmzBjb+lqlSpW649pSJ0+eJDQ0lJ9//hmr1Urjxo359NNPb3t/ty7UP3r0aMaMGcOxY8fsRp6cOXOG999/n9WrV3P27FkKFixIixYtGDt2LP7+/reNS8QR/vvf/5IvXz4CAwOzVP/y5cu88847lClThi1btpAvXz4gdaRyjRo1CA0NpV27dvj6+tra/P3333z77be0bdsWSE0u1apVi8mTJ9OyZUvWrVuHwWAAwM/Pj7feeou1a9fyzDPP2F37woUL/Pnnn7ZkWq9evahatSoDBw6kffv2uLu7Zxp39+7dKVq0KNu2bcPb29tW/tRTT9GmTRsWLVpE165dadasGYsWLWLTpk106tQpXT/9+/cnOTmZXbt28dhjj9nK27ZtS7169ZgyZYrt+8Xw4cO5fPkyERERtu9Xffv2pU2bNuzatStLzzu79/6f//wHT09Pu7a9evWiUqVKjB8/3pbs++233zh//jzffPMN7dq1y/CaVatWpX79+syePZtmzZpleU3TAQMGYLFY+O233yhXrhwAffr0oUGDBtm651slJiby2muvUbduXSIiImw/X3r27Em1atUYOHAg69evf+TXXtU0XhERERGRPGzKlCkcOHCAadOmZbvttm3bAKhfv366c/Xq1ePq1ascOnQoS32tXLmS3r1707JlSyZPnkz58uUZM2YMb7zxhl299evXs3HjRlq0aMHkyZP54IMPcHFx4Y033mD8+PF2ddu2bcu0adN47rnnmDp1KqNGjeJf//qXbarX448/zpQpUwB48cUXCQsLIywsLMOk3c2uXLlCo0aNWLZsGZ07d2bChAl4eHjQpEkTu6l8d+PEiRPUrl2b7777jg4dOvDFF1/QuXNnlixZwpNPPklMTMw99S9yP1y9etUu+XUna9euJS4ujjfffNOW6APIly8fb775JrGxsaxbt86uTfHi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imSVry+4uTk6ChERERGRdAxWq9Xq6CBE7oekpCTMSnhIXnT+PAaNan2kODk5YTKZHB2GZIebG/j7OzoKEREREZF0lOwTERERERERERHJJTRfSEREREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl1CyT0REREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl1CyT0REREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl1CyT0REREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl1CyT0REREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl1CyT0REREREREREJJdQsk9ERERERERERCSXULJPREREREREREQkl8ixZN+FCxc4fPhwTnUnIiIiIiIiIiIi2ZTtZN9XX31Fjx497MreffddChcuTIUKFXjyySe5du1ajgUoIiIiIiIiIiIiWZPtZN+sWbNISUmxvd6+fTsTJ06kYcOGvPHGG2zdupVPPvkkR4MUERERERERERGRO3POboMjR47Qtm1b2+ulS5dSoEAB1qxZg6urKwaDgW+//ZZRo0blaKCOdvLSSeKvxzs6DMkGk9GEv6e/o8MQAcBoNGIymRwdhoiIiIiIiORy2U72xcTE4OPjY3v9yy+/0LRpU1xdXQGoXbs2CxcuzLkIHwInL52kdrPaJCUlOToUyQajwUiARwAuBhdHhyKCh4cHP/30kxJ+IiIiIiIicl9lO9lXpEgR20Yc0dHR7N69m27dutnOx8bGYjQacy7Ch0D89XiSkpKo1LMSHi4ejg5HsiDJkkSSOYl3Kr5DEbcijg5H8rikpCSGDRuG2Wx2dCgiIiIiIiKSy2U72RcSEsIXX3xBgQIFiIyMxGAw8Pzzz9vOHzx4kOLFi+dokA8LDxcPvE3ejg5DssCYYiSZZNxMbri5uTk6HBERERERERGRByLbyb7333+f33//nXfeeQeAESNGEBAQAEBKSgrff/89L730Uo4GKSIiIiIiIiIiIneW7WTfY489xt69e9m3bx8+Pj6ULFnSdi4+Pp7Zs2dTrVq1HA1SRERERERERERE7izbyT5I3VWySpUq6crz5ctHq1at7jkoyVntq7enfY32AEQcjmDar9McHJGIiIiIiIiIiNwP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nz6UK1eOmJgY/vzzTzZt2sSrr75Ko0aNGDZsGOPGjaNHjx40bNgQgMKFC9821mPHjtGwYUOSkpLo168fJUqUYNWqVTRv3jzLzy4zO3bsICQkBF9fX3r27Enx4sXZs2cPn3/+Ob/99hsbNmzAxcXlnq8jIiIiIiIiuZuSfSKSbadPnwagePHi6c4VL14cq9XK6dOnKVeu3B37OnToEPv37+exxx4DoG/fvjRo0ICxY8fy2muv2cpHjBjB+PHj7dq++eab1KhRg7Fjx9qSffv27ePgwYNMnDiRd955J8NrBgYG0qxZM8aNG0f9+vXp1KlTlu57+PDhXL58mYiICNvIwL59+9KmTRt27dqVpT4y0717d4oWLcq2bdvw9va2lT/11FO2hKZ2+xUREREREZE7UbJPJIckJiayc+fOB3YtR4qPjwfAZDKlO+fm5mZX5046duxoS+gBuLq6MmDAADp06MCqVatsm5F4enraXT8hIQGr1UpISAgzZ87k6tWr5MuXDx8fHwAiIyPp2rUr/v7+d3eTt7BYLKxatYratWvbEn0ABoOBd955h+XLl99133/99Rd//vknY8aMISkpiaSkJNu5Bg0a4OnpyZo1a5TsExERERERkTtSsk8khxw/fpxatWo9kGtlZcTc/eTh4QFAUlIS7u7udufSEpFpde7k8ccfT1dWsWJFAI4ePWorO3/+PCNGjGDFihUZrpF35coV8uXLR6lSpRg+fDjjx4+naNGiVK9enaeeeoq2bdtSp06drN1gBs6fP09sbCwVKlTINN67tX//fgBGjRplN3X5ZufOnbuna4iIiIiIiEjeoGSfSA4pVaoUixcvfiDXGjp06AO5TmaKFSsGpO4KHBQUZHfu1KlTGAwGW52cYLVaefrpp9m/fz9vvfUWtWvXxsfHB6PRyLx58/j666+xWCy2+mPHjqV79+6sXr2aTZs2MWfOHCZPnsw777zDxIkTcyyu28loA440KSkpdq+tVisAoaGhma7/lz9//pwLTkRERERERHItJftEcoibmxs1a9Z8YNdypDp16jB79mz++OOPdMm+zZs3U758+SxtzgE3RrXdbN++fcCNXYP//PNP9uzZw8iRIxkzZoxd3Tlz5mTYb2BgIP3796d///4kJibyzDPPMGnSJEJDQ/H3979tMi4jhQoVwsvLiwMHDmQa780KFCgAwKVLl9Kdu3nEIkDZsmUBMBqNNG3aNFtxiYiIiIiIiNzMydEBiMjD7cSJExw4cIDk5GRbWatWrXB3d2fatGmYzWZb+apVqzh69CgdO3bMcv+LFi3in3/+sb2+fv06U6ZMwWg00qJFCyA1CQY3RsCl+e9//0t4eLhdWUxMjF2skJocTZsufPnyZQBbMjKjZFxG0uLZvn07kZGRtnKr1cqkSZPS1S9dujTOzs6sW7fOrvz3339n8+bNdmU1atSgcuXKzJw5M10iEFJHAmY1ThEREREREcnbNLJPJA8KCwvj+PHjAERHR3P9+nXGjh0LpE5H7ty5s61uly5d2LBhA8eOHSMgIABIHeX2wQcfMGjQIJo2bcorr7zCqVOn+Pjjj6lQoQJvv/12lmMpV64cdevWpVevXnh7e/P111+zbds23nvvPUqUKAGkrutXqVIlJk2aRHx8POXLl+fQoUPMmjWLKlWqsGPHDlt/kZGR9OjRg5deesk2wnDHjh3MmTOHunXrUr58eSB1nT1vb2+mT5+Oh4cHvr6++Pv7ExISkmmsY8eO5aeffqJFixb079+fxx57jFWrVhEdHZ2urpeXF127dmXOnDm88sorBAcHc/jwYebNm0fVqlXZs2ePra7BYCAsLIyQkBCqVq1K9+7dqVSpEvHx8Rw5coRly5Yxfvx4bdAhIiIiIiIid6RkXxYlJSXZjWCSR8D58xhu2tX0frPExcGJEw/mYvd4X3PnzmXDhg12Ze+99x4AjRs3tkv2ZSY0NBQ/Pz+mTJnCm2++Sb58+WjXrh0TJkzI8hRegP79+3P16lWmTp3KiRMnKFmyJJ9++ilvvfWWrY7RaGT16tUMGjSIBQsWEBcXR+XKlVmwYAF79uyxS/ZVq1aNNm3asH79ehYtWoTZbKZkyZIMGzaM0NBQWz13d3eWLFnCiBEjePvtt0lKSqJx48a3TfaVKVOGTZs2ERoaytSpUzGZTDz77LOEhYVRuHDhdPWnTJmC1WolPDycFStWUKtWLVatWsXs2bPtkn0A1atXZ9euXYwfP56VK1cyc+ZMvL29CQgIoGvXrjz11FNZfqYiIiIiIiKSdxmst86Lk3SSkpJ49tlniY+Pd3QokkVOycl4RUXh9AATtAcTEjjSuDFGp/s/O773kSPM+P138Pe/79e6X9avX0+TJk2YN2+eRqyJiIiIiIiI5BCN7MsCs9lMfHw848aNw2QyOTocyQLXs2cJmjQJi8mE+QF8ziwWC1327MGSPz9G5/v83yo+nhlBQZCYeH+vIyIiIiIiIiKPHCX7ssFkMjl8F1TJGhc3N5ycnLB4eGDw8Lj/FzSbsRqN4OUF9zvZB5CQcP+vISIiIiIiIiKPHO3GKyIiIiIiIiIikktoZJ+IOERwcDBaMlREREREREQkZynZJ5JNHu3b49m+PQCJERFcmzbNwRGJiIiIiIiIiKRSsk/yDJdKlfD94APb64s9e2KJjnZgREC5chAaevs6Fy7A8OEPJh4REREREREReaRpzT4REREREREREZFcQiP7RB4ms2ZBTIx9WUqKY2IRERERERERkUeOkn0igFPhwni0aoVrtWo4+fmB2Yz53DmStm4lYeVKrPHxmbZ1LluWfB06sDIoKPU/1L598P33cPly9gM5fhwuXrzr+xARERERERGRvE3JPsnzXCpWJN/w4Ti5u9uVOwcE4BwQgFujRlwZMQLLpUvp2joHBeHboAEGV9cbhXXqQJkyMG4cXLt2v8MXEREREREREbFRsk/yNhcXvAcMsCX6kg8dIj48HIObG56dOmH088NYpAhevXtz9cMP0zV3LlmSpK1bif+//2NRQgJ9R43C4OYGBQpAq1awcGH24hk3Ln3ZL7/At9/ezd2JiIiIiIiISB6jDTokT3OtXh2jnx8A1uRkrk6cyPUtW0jasIHYmTNv1KtRA4OPT7r25osXufrRRyTt2MGKL7/EsmLFjZM1a4LBcN/vQUREREREREQkjUb2SZ5mLF7cdmw+exbLTevsJe/fbzs2ODnhXKwYybdsnpFy+LDdBhrWw4dvnPT0BC+v7E3lzWiDjitXst5eRERERERERPI0JftEHibaoENERERERERE7oGm8UqeZj51ynZsLFIEg6+v7bVLhQq2Y6vFQsrp0+naO5ctC0aj7bWhbNkbJ+PjITY2ZwMWEREREREREbkNjeyTPO367t2YL17E6OeHwcUFnyFD7DbosNXbtQvrrdNrAaOfH/kGDSL+55954fHHcWrZ8sbJnTvBas1eQKVKwU0JR5ujR7Pfl4iIiIiIiIjkOUr2Sd6WnMy1KVPIN3w4Tu7uuJQvj8/QoXZVzGfP2m3WYXfuzBlca9XCVLcu/W8+cfkyLF+e/Xh69sy4/O23ISEh+/2JiIiIiIiISJ6iZJ/kGQYPD7vX1uvXAUjet4/LAwfi0bo1rtWq4eTnBxYL5jNnSNq2jYQVK7DGx2fYZ/L+/SROn47Hv/+NuXRp3ADDvn3w/ffZ25hDRERERERERCQHKNkneYZrnTq2Y0t8PNabknGWc+eInTUrS/3Ef/MN8d98Y1d2adgwOm/ezI8tWuDinI3/VocOZT6aT0REREREREQkm5Tsk1zPs2NHnMuVw7VKFVvZ9W3bwGJxYFQiIiIiIiIiIjlPyT7J9dyaN8fJ09P22hwdTVxYmAMjEhERERERERG5P5Tsk9zPasWamIj57Fmu79hB/IoVWGNjHR2ViIiIiIiIiEiOU7JPcr2LXbo4OgQRERERERERkQdCyb5sSEpKcnQIkkWWxEQsFgvEx2M1mx/ABS0YzGaIjYXsbNBxNzLZGVhERERERERERMm+LDAajWzZsoVhw4Y5OhTJIqfkZLyionB6EIm+//F0csLp8mVwcrr/F/P1BTe3+38dEREREREREXmkGKxWq9XRQTwKkpKSMD/AxJHkgPPnMTzA0ZhOTk6YTKYHczE3N/D3fzDXEhEREREREZFHhpJ9IiIiIiIiIiIiucQDmG8oIiIiIiIiIiIiD4KSfSIiIiIiIiIiIrmEkn0iIiIiIiIiIiK5hJJ9IiIiIiIiIiIiuYSSfSIiIiIiIiIiIrmEkn0iIiIiIiIiIiK5hJJ9IiIiIiIiIiIiuYSSfSIiIiIiIiIiIrmEkn0iIiIiIiLyyBo9ejQGg4GoqChHhyIi8lBQsk9EREREROQejB8/nrZt2xIYGIjBYCAgICDTukOHDuWJJ57A398fk8lEiRIlaNGiBevXr8/WNU+fPk2XLl0oVKgQ7u7u1K5dm6VLl97bjTxA8+fP59NPP3V0GCIiuZKSfSIiIg7Wu3dvR4cgIpKn3ev34WHDhhEREUGZMmXInz//betu3ryZqlWrMmTIEGbMmEHv3r05evQoTZo0ISwsLEvXu3TpEg0aNGDZsmX07t2bzz77DC8vL9q1a8e8efPu6V4eFCX7RETuH2dHByAiIpLXnTp1ytEhiIjkaff6ffjvv/8mMDAQgMqVKxMbG5tp3YxG8L355puUKVOG8ePH07lz5zteb8KECRw7doyVK1fSsmVLAF577TXq16/PoEGDaNu2LV5eXnd3MyIi8sjTyD4REREREZF7kJbou1teXl74+flx+fLlLNX/+uuvKVOmjC3RB2A0Gunfvz+XLl3ixx9/vGMfwcHBBAQEcPToUVq1aoWPjw/58uXjxRdf5OjRo3Z1LRYLH374IY0aNaJIkSK4urpSsmRJevfuzcWLF9P1/dVXX/Gvf/0LX19fPD09CQwMpGPHjkRHRwMQEBDAhg0bOH78OAaDwfZxp6nMFouF8ePHU7p0adzc3KhcuTKLFi267f3dKioqCoPBwOjRo+3KrVYrM2bMoFatWnh4eODl5UWTJk2IjIy8bUwiIg8jjewTERERERF5wC5cuIDFYuHMmTP85z//Yf/+/XTv3v2O7c6cOcOpU6fo2LFjunP16tUDYNu2bbRr1+6OfcXFxREcHEzdunUZP348hw8fZvr06WzevJldu3ZRpEgRAK5fv87kyZN56aWXaNWqFZ6enmzbto25c+fy66+/smPHDlxdXQEICwvj1VdfpWHDhrz//vu4u7tz8uRJfvzxR86fP0+hQoX49NNPeffdd7lw4QJTpkyxxfP444/fNt6BAwfy2Wef0ahRIwYMGMD58+fp27fvPSdbATp37szixYt5+eWX6datG0lJSSxatIhmzZqxbNkyXnjhhXu+hojIg6Jkn4iIiIiIyAMUGxtLoUKFbK/d3d3p0aMHn3zyyR3bnj59GoDixYunO5dWltVpyRcuXOCtt96yWzuvUaNGtGnThtGjRzNz5kwATCYTZ86cwd3d3VavV69ePPHEE7z++ussX77cllwMDw/H29ubiIgInJ1v/Ln5/vvv245bt27Np59+SkJCAp06dcpSrAcPHuTzzz8nJCSENWvWYDQaAWjTpg21a9fOUh+ZCQ8PZ9GiRcyaNYsePXrYyt966y3q1avHW2+9RcuWLTEYDPd0HRGRB0XJPhEREQdLTExk586djg5DRCTPSkxMfKDXc3d3Z+3ataSkpHD8+HEWLVpEbGws8fHxeHp63rZtfHw8kJqAu5Wbm5tdnawYOnSo3esXX3yR8uXLs3z5cluyz2Aw2BJ9ZrOZa9eukZKSQkhICABbtmyxJft8fHyIj49n9erVvPDCCzmWIFuxYgVWq5WBAwfaEn0ANWvWpFmzZqxZs+au+164cCHe3t60bt2aCxcu2J1r2bIlo0eP5vDhw5QrV+6uryEi8iAp2SciIuJgx48fp1atWo4OQ0Qkz3rQSRyj0UjTpk1tr19//XWCg4MJCQlh586duLi4ZNrWw8MDgKSkpHTn0pKWaXXuxNfX1zZV92aPP/44y5cvJy4uzpZ8/Pbbb/n444/ZtWsXycnJdvVvXmtw2LBhbNy4kdatW+Pn50fjxo159tlnad++Pd7e3lmKKyNp6whWqFAh3bmKFSveU7Jv//79XLt2jcKFC2da59y5c0r2icgjQ8k+ERERBytVqhSLFy92dBgiInnWraPbHjSj0UjHjh3p3bs3Gzdu5Kmnnsq0brFixYCMp+qmlWU0xfdeLFu2jPbt2/Ovf/2Lzz77jBIlSuDm5obZbKZ58+ZYLBZb3bJly7Jv3z5++eUXfvnlFzZs2MAbb7zBqFGj2LhxI2XKlMnR2DKT2YjClJSUdGVWq5VChQrx9ddfZ9pf5cqVcyw2EZH7Tck+ERERB3Nzc6NmzZqODkNEJM9Km/7qSAkJCQBcunTptvWKFi1K8eLF2bx5c7pzaWVZXcPuypUrnD17Nt3ovv379+Pv728b1RcWFoabmxuRkZF2owYPHDiQYb8mk4nnnnuO5557DoAff/yR559/nk8++YQvvvgCyDwZl5m0TTgOHDiQLmG4b9++dPULFCjAjh070pXfutMwpCYoDx06RL169fDy8spWXCIiDyMnRwcgIiIiIiKSF1y+fJnr16+nK4+Li2Pu3Lk4OTnxr3/9y1YeHx/PgQMHOHPmjF39V155hb///ptVq1bZysxmM1OnTsXX19eWZMuKCRMm2L0ODw/n4MGDtG7d2lZmNBoxGAx2I/isVitjx45N19+ta94Btje0bk5kenl5cfnyZaxWa5biTFv/75NPPsFsNtvKd+7cybp169LVL1euHNeuXWPr1q22MovFYrf7b5ouXbpgsVh49913M7z2uXPnshSjiMjDQiP7RERERERE7kFYWBjHjx8HIDo6muvXr9sSYaVKlaJz584AbNiwgZ49e/LSSy8RFBSEt7c3x44dIywsjH/++YdRo0ZRqlQpW79bt26lSZMmvPrqq8yfP99WPnToUJYuXUqHDh0YOHAgxYsXZ/HixWzbto05c+ZkeW28ggULsmzZMk6fPk1wcDCHDx9m+vTpFC5cmNGjR9vqvfzyy3z//feEhITQpUsXkpOTWb58eYYbgTz99NP4+vrSsGFDSpQowZUrV5g/fz4Gg8H2HADq1avHDz/8QL9+/XjiiScwGo2EhITg7++fYawVKlSgb9++TJs2jZCQEF566SXOnz/PtGnTqFatGrt27bKr36NHDz7++GNefPFF3nrrLVxdXfnuu+8ynMb78ssv061bN6ZNm8bOnTtp0aIFBQsW5J9//uGPP/7gyJEjGY4IFBF5WCnZJyIPjaSkJLt3akXyiptHSoiIZNv58/CAd5PNdTLY7CI75s6dy4YNG+zK3nvvPQAaN25sS3JVqVKFli1bsn79ehYtWkR8fDx+fn7UqVOHmTNn8vzzz2fpen5+fvz2228MHTqUL774gtjYWCpWrMiSJUto3759luP29PQkIiKCAQMGMHToUKxWK82bN+fjjz+maNGitnr//ve/uXbtGlOmTGHQoEHkz5+fli1bMmHCBPz8/Oz67N27N99++y2zZs3i0qVL+Pn5UaNGDaZOnUqTJk1s9QYMGMDRo0f57rvvmDlzJhaLhcjIyEyTfQCfffYZRYoUYfbs2QwePJiyZcvyxRdfcPjw4XTJvtKlS7N8+XKGDRvGe++9h5+fH507d6Z79+4ZbvLx5Zdf0qRJE2bPns348eO5fv06RYoUoWbNmowfPz7Lz1RE5GFgsGZ13LSIyH2UlJTEs88+m+E7xCK53cmTJzl69Cgmk8nRoYjIo+b8eXjzTbhyxdGRPNJ6HznCjN9/h9skmnKb4OBgoqKiiIqKcnQoIiKSwzSyT0QeCmazmfj4eMaNG6eEh+QpSUlJDBs2TKNaReTuJCamJvrc3eGmjRMkG+LjmREUpNGRIiKSayjZJyIPFZPJ9FDsiCciIvJI8fAA7SJ69/63E66IiEhuoN14RUREREREREREcgmN7BMREREREclj1q9f7+gQRETkPlGyT0RERERE7l2LFtCyZerx77/DggWOjUdERCSPUrJPRERERCQvK1cOQkNvvB42DC5edFw8kD6mjFy4AMOHP5h4REREHiFas09ERERERERERCSX0Mg+ERERERF5uM2aBTEx9mUpKY6JRURE5CGnZJ+IiIiIiGSsYEF4+ml4/HHInx/MZoiOhj17YN06SEjIvG1AALz4Yuq/ZjPs2wfffw+XL2c/juPHHT+1WERE5BGhZJ+IiIiIiKRXtiz06wdubjfKXFygRInUj7p14aOP4MqV9G0DAqBOndT6aerUgTJlYNw4uHbtfkcvIiKSZynZJyIiIiIi9pyd4bXXbiT6jh2D//s/MJlSR+vlzw+FCkGnTjBtWvr2xYrB7t2waVPq6MAXX0ztq0ABaNUKFi7MXjzjxqUv++UX+PbbbN+aiIhIbqdkn4iIiIiI2KtYMTWhB5CcDNOnw9Wrqa/j4qB//9TjSpXA2zv9SL3Ll2H27NTpu5CaPGzbNvW4Zk1YtAis1vt/HyIiInmQkn0iIiIiImKvSJEbx9HRNxJ9AEeO3Dh2coLChdMn+6KibiT6bm3j6QleXtmbypvRBh0ZTR8WERERJftEREREROQhpw06REREsszJ0QGIiIiIiMhD5uzZG8eFCkG+fDdeBwXdOP7/9u49vuf6///4/W1jB3vvII0ctjXM5DQxMnxJiJLPqNUnYktFBxOflUuNQkRJl8koaZ9KiM6k+Fw60UUN+cgxCqWDOcxpmNl8tr1+f7x/e8/bDibstb3et+vl8r54v56v1/v1frxcnl5b956v57OwUDp8uOTnw8Ico/5K+0xOjpSdfcVKBQAArhjZBwAAAMDVzp2OefeCghwr6j7yiGOBDm9vKTa2+Liffir9cdygIGnECOm77xwLdPTvX7zvxx+Zrw8AgKuIsA8AAACAq/x86d//lkaNcgR84eHSo4+6HnPkSNmr6mZmSm3aSO3aubafOCEtW3ZVSgYAAA6EfQAAAIA78/Z23T53zvHnnj3SlClSnz6O1XkDAx0j8jIzpa1bpS+/lM6eLf2ce/dKCxdKAwZIISGOxTp27pQ++ujSFuYAAACXjLAPAAAAcGdt2xa/P3vWdT69o0eld9+t2Hk++8zxOt/MmX+vpt27pZEj/95nAQBwc4R9AAAAgDuKjXU8ntu8eXHbtm3MpwcAQDVH2AcAAAC4o+7dJV/f4u1jx6SPPzavHgAAcEUQ9gEAAADuyDCkvDzHQhvbtzvm4DtzxuyqAADAZSLsAwAAANzRv/5ldgUAAOAqIOwDUKXk5eWZXQJQqejzAK6InByzK6i++LsDAFgMYR+AKsHDw0MbNmxQcnKy2aUAlc7X11ceHh5mlwGgOvL2lgIDpawsx0q6+HsCAx1/lwAAWIDNMFhuC0DVkJeXp4KCArPLACqdh4eHvLy8zC4DQHWVmSnl5ppdRfXm7S0FB5tdBQAAVwRhHwAAAAAAAGARNcwuAAAAAAAAAMCVQdgHAAAAAAAAWARhHwAAAAAAAGARhH0AAAAAAACARRD2AQAAAAAAABZB2AcAAAAAAABYBGEfAAAAAAAAYBGEfQAAAAAAAIBFEPYBAAAAAFBJbDabEhISzC4DgIUR9gEAAAAASpWdna1p06apdevWstvtqlu3rmJiYvT222/LMIwKn+edd95Ru3bt5OPjo3r16unBBx/UkSNHrmLlV87vv/+uSZMmacuWLWaXAgAVQtgHAAAAUzzyyCNmlwBY3uX8OyssLFS/fv30zDPPKDo6Wi+//LImTJiggoIC3X///XrqqacqdJ6UlBTFx8crICBAr7zyikaOHKmlS5eqR48eOnPmzN+ur7L8/vvvmjx5MmEfgGrD0+wCAAAA4J4yMjLMLgGwvMv5d7ZhwwZ99913GjNmjFJSUpztjz76qCIjI/X666/rxRdfLPccR48e1YQJExQdHa2vv/5aHh4ekqTo6GgNGDBAr7zyipKTk/92jQCAkhjZBwAAAAAo4dSpU5KkBg0auLTXqlVLdevWVe3atS96jmXLliknJ0eJiYnOoE+S7rjjDoWHh2vRokUXPceaNWtks9n09ttvKzU1VREREfL29lZERIRSU1NLHP/DDz8oISFBERER8vX1ld1uV5cuXfTJJ5+UOPavv/7S8OHDFRoaKi8vLwUHBysmJkYLFiyQJL399tu6+eabJUn333+/bDabbDabevTocdG6f/rpJ/Xt21e1a9dWnTp1NGTIEGVmZpZ7fRdKSEiQzWYr0b5nzx4NHTpU1113nWrVqqWwsDA9+eST1WKkJICrj5F9AAAAAIASOnbsqMDAQM2YMUNhYWHq1KmTcnJytGDBAm3atEnz5s276Dk2btwoSercuXOJfTfddJOWLFmi7Oxs+fn5XfRcqampOnTokEaOHCm73a4lS5Zo9OjROn78uCZOnOg87pNPPtHPP/+su+++W6GhoTp27JgWLFigQYMGafHixRo8eLAkKT8/X71791ZGRoYeffRRRURE6OTJk9q2bZvWrl2r+Ph4/d///Z+Sk5M1bdo0jRgxQt26dZMk1atXr9xa9+3bp27duikvL0+jRo1S48aNtWLFCvXt2/ei13kxmzZtUs+ePRUYGKiRI0eqYcOG2rp1q2bPnq3vv/9e3377rWrWrHnZ3wOg+iLsAwAAAACUEBQUpE8//VQPPvig7r77bme73W7XRx99pNjY2Iue48CBA5Kkhg0bltjXsGFDGYahAwcOKCIi4qLn2r17t3bt2qVGjRpJkh577DF17dpVU6dO1QMPPOBsnzBhgqZPn+7y2dGjR6tdu3aaOnWqM+zbuXOnfvnlF7344osaN25cqd8ZHh6u3r17a9q0aercubPuu+++i9YpSePHj9eJEyf0zTffOEcGPvbYYxo0aJA2b95coXOUZfjw4bruuuu0ceNG2e12Z/stt9ziDDRZ7Rdwb4R9AAAAMEVubq5+/PFHs8sALC03N/eyPu/n56dWrVppwIABiomJ0fHjxzV37lwNHjxYy5cvV+/evcv9fE5OjiTJy8urxD5vb2+XYy5myJAhzkBPcjxOPHbsWA0ePFgrVqxwLkZy/uPFOTk5Onv2rAzDUM+ePTVv3jydOnVK/v7+CggIkCStXr1aCQkJCg4OrlAdF1NYWKgVK1aoQ4cOzqBPkmw2m8aNG6dly5b97XNv375d27Zt0+TJk5WXl6e8vDznvq5du6p27dr64osvCPsAN0fYBwAAAFP88ccfat++vdllAJZWkRFzZdm+fbtiYmKUkpKihx9+2Nl+7733qlWrVnrooYf066+/uszFdyFfX19JUl5ennx8fFz2FQWRRcdcTIsWLUq03XDDDZKk3377zdmWmZmpCRMmaPny5aXOkZeVlSV/f3+FhoZq/Pjxmj59uq677jpFRUXplltuUVxcnKKjoytUU2kyMzOVnZ2tyMjIMuv9u3bt2iVJmjhxosujy+c7fPjwZX0HgOqPsA8AAACmCA0N1ZIlS8wuA7C0p5566m9/NiUlRbm5uYqLi3Np9/X11e233645c+bo999/V5MmTco8R9HiHhkZGWratKnLvoyMDNlsthILgFwOwzDUp08f7dq1S48//rg6dOiggIAAeXh46K233tK7776rwsJC5/FTp07V8OHD9fnnn2vt2rVKS0vTSy+9pHHjxl10peErpbQFOIrk5+e7bBuGIUlKSkoqc/6/oKCgK1ccgGqJsA8AAACm8Pb21o033mh2GYClFT0q+3dkZGRIkgoKCkrsKwqhLgyjLhQdHa358+dr3bp1JcK+9evXq3nz5hVanEMqHtV2vp07d0pyzK0nSdu2bdPWrVv17LPPavLkyS7HpqWllXre8PBwJSYmKjExUbm5ubr11ls1Y8YMJSUlKTg4uNwwrjTXXnut/Pz89PPPP5dZ7/nq1KkjSTp+/HiJfeePWJSkZs2aSZI8PDzUq1evS6oLgPuoYXYBAAAAAICqp+iR07ffftulPSsrS8uXL1dQUJBLgPfnn3/q559/1v/+9z9n2z/+8Q/5+Phozpw5LqHhihUr9Ntvv2nIkCEVrmfx4sXav3+/c/vcuXNKSUmRh4eH+vfvL0nOR4qLRsAV2bFjhz755BOXtpMnT7rUKjnC0aLHhU+cOCFJzjCytDCuNEX1/Pe//9Xq1aud7YZhaMaMGSWOv/766+Xp6amvvvrKpT09PV3r1693aWvXrp1atWqlefPmlQgCJUf4WtE6AVgXI/sAAAAAACWMGTNG77zzjp566ilt375dXbp00fHjx/XGG2/o4MGDmjt3rst8fcOGDdO3336rffv2KSwsTJJjlNuUKVP0xBNPqFevXrr33nuVkZGhl19+WZGRkRozZkyF64mIiFCnTp308MMPy263691339XGjRv1zDPPqHHjxpIc8/q1bNlSM2bMUE5Ojpo3b67du3fr9ddfV+vWrbVp0ybn+VavXq0RI0bozjvvdI4w3LRpk9LS0tSpUyc1b95ckiP0tNvtevXVV+Xr66vAwEAFBwerZ8+eZdY6depUrVq1Sv3791diYqIaNWqkFStW6MiRIyWO9fPzU0JCgtLS0nTvvfeqR48e2rNnj9566y21adNGW7dudR5rs9m0cOFC9ezZU23atNHw4cPVsmVL5eTkaO/evfr44481ffp0FugA3BxhHwC3lZeXV+pjKQCAynH+vFmAqTIzpctctbbKOm+11ksVGhqqH374Qc8995y+/vprLV26VD4+PoqKitLLL7+sQYMGVeg8SUlJuuaaa5SSkqLRo0fL399fd999t1544YUKP8IrSYmJiTp16pRSU1P1559/KiQkRLNmzdLjjz/uPMbDw0Off/65nnjiCS1YsEBnzpxRq1attGDBAm3dutUl7Gvbtq0GDRqkNWvWaPHixSooKFBISIiSk5OVlJTkPM7Hx0dLly7VhAkTNGbMGOXl5al79+7lhn1NmjTR2rVrlZSUpNTUVHl5ealfv35auHCh6tWrV+L4lJQUGYahTz75RMuXL1f79u21YsUKzZ8/3yXsk6SoqCht3rxZ06dP16effqp58+bJbrcrLCxMCQkJuuWWWyr8dwrAmmzGheObAcAN5OXlqV+/fsrJyTG7FABwW3/99Zd+++03eXl5mV0K3FlmpjR6tJSVZXYlV8Uje/fqtfR0KTjY7FL+tjVr1ujmm2/WW2+9xYg1AKgARvYBcEsFBQXKycnRtGnT+I9MADBBXl6ekpOTGWEN8+XmOoI+Hx/J19fsaq6snBy91rSpdUctAgBKRdgHwK15eXld1ip1AADAInx9pUt4pLTaOHvW7AoAAJWM1XgBAAAAAAAAi2BkHwAAAACgyurRo4eYah4AKo6wDwAAAACupP79pTvucLxPT5cWLDC3HgCAWyHsAwAAAABJioiQkpKKt5OTpWPHzKvnQtdfL3XpIoWHS3XqSDVrStnZ0qlT0r590o4djldhodmVAgBMRNgHAAAAAFVZzZrSffdJN91Ucl9goOMVEiJ17y49+6x0+HBlVwgAqEII+wAAAACgKhsxQmrTpnh7505p40bHqENPT6l+fallSyky0rwaAQBVBmEfAAAAAFxM3bpSnz5SixZSUJBUUCAdOSJt3Sp99ZV09mzZnw0LkwYOdPxZUOAI6z76SDpx4uLf26GDa9D32WfSihWux/z0k/T1144az5z5O1cHALAQwj4AAAAAKE+zZtKoUZK3d3FbzZpS48aOV6dO0syZUlZWyc+GhUnR0Y7ji0RHS02aSNOmSadPl//dnTsXvz9yxBH2leXo0YpcDQDA4mqYXQAAAAAAVFmentIDDxQHffv2Sa+9Jr35ZvHIvGuvdcypV5oGDRwj71JTpSVLpNxcR3udOtI//nHx7w8JKX6/c6dkGMXb113nCA3Pf9Wrd+nXCACwFEb2AQAAAEBZbrjB8diuJP3vf9KrrzpWv5Ucj8wmJjret2wp2e0lR+qdOCHNn+94fFdyhIdxcY73N94oLV7sGuBdqHbt4vcXPqI7aJDrI76SYy6/tLSKXx8AwHIY2QcAAAAAZalfv/j9kSPFQZ8k7d1b/L5GjdJH1f3+e3HQd+FnateW/PzK//6cHNfjAQC4CMI+AAAAAKiq/vyz+P2Fq+3OnSuNHCmlp1duTQCAKo2wDwAAAADKcuhQ8ftrr5X8/Yu3mzYtfl9YKB0+XPLzYWGOUX+lfSYnR8rOLv/7zw/y6tWTbr21QmUDANwXc/YBAAAAQFl27nTMuxcU5FhR95FHpP/8x7FgR2xs8XE//VT6yrpBQdKIEdJ330l160r9+xfv+/HH8ufrk6T//leKiXHMCSg55ukLD3e0nzwp+fg4FgEBAOD/I+wDAAAAgLLk50v//rc0apQj4AsPlx591PWYI0ekRYtK/3xmpmMRjXbtXNtPnJCWLatYDa+/LsXHS+3bO7ajohyvsuoFALg1wj4AAAAAkBxh3vnOnXP8uWePNGWK1KePY3XewEDHiLzMTGnrVunLL6WzZ0s/59690sKF0oABUkiIY7GOnTuljz4qfSRgafLyHCv6RkRInTtLTZpIAQGOkYZnz0pHj0p//CHt2OF4AQDcGmEfAAAAAEhS27bF78+edZ1P7+hR6d13K3aezz5zvM43c+bl17d7t+MFAEA5CPsAAAAAuLeEBMejtjfcUNy2bdvF59MDAKAKIuwDAAAA4N7695f8/Iq3jx2TPv7YvHoAALgMhH0AAAAA3JthSLm5jkd1t293zMF35ozZVQEA8LcQ9gEAAABwb3Fx0jXXuI7uAwCgmiLsA+DW8vLyzC4BANwS919UOTk5Zldw5VnxmgAAF0XYB8AteXh4aMOGDUpOTja7FABwW76+vvLw8DC7DLg7b28pMFDKynKswGs1gYGOawQAuA2bYbDEFAD3lJeXp4KCArPLAAC35eHhIS8vL7PLAKTMTMecfVbk7S0FB5tdBQCgEhH2AQAAAAAAABZRw+wCAAAAAAAAAFwZhH0AAAAAAACARRD2AQAAAAAAABZB2AcAAAAAAABYBGEfAAAAAAAAYBGEfQAAAAAAAIBFEPYBAAAAAAAAFkHYBwAAAAAAAFgEYR8AAAAAAABgEYR9AAAAAAAAgEUQ9gEAAAAAAAAWQdgHAAAAAAAAWARhHwAAAAAAAGARhH0AAAAAAACARRD2AQAAAAAAABZB2AcAAAAAAABYBGEfAAAAAAAAYBGEfQAAAAAAAIBFEPYBAAAAAAAAFkHYBwAAAAAAAFgEYR8AAAAAAABgEYR9AAAAAAAAgEUQ9gEAAAAAAAAWQdgHAAAAAAAAWARhHwAAAAAAAGARhH0AAAAAAACARRD2AQAAAAAAABZB2AcAAAAAAABYBGEfAAAAAAAAYBGEfQAAAAAAAIBFEPYBAAAAAAAAFkHYBwAAAAAAAFgEYR8AAAAAAABgEYR9AAAAAAAAgEV4ml2AJBmGodOnT5tdBgAAAADABHa7XTabzewyAMASqkTYd/r0aQUEBJhdBgAAAADABCdPnpS/v7/ZZQCAJdgMwzDMLqKqj+w7deqUGjdurL/++osfQCgVfQTloX+gPPQPlIf+gYuhj6A81al/MLIPAK6cKjGyz2azVfkfPpLk7+9fLeqEeegjKA/9A+Whf6A89A9cDH0E5aF/AIB7YYEOAAAAAAAAwCII+wAAAAAAAACLIOyrAC8vL02cOFFeXl5ml4Iqij6C8tA/UB76B8pD/8DF0EdQHvoHALinKrFABwAAAAAAAIDLx8g+AAAAAAAAwCII+wAAAAAAAACLIOwDAAAAAAAALIKwDwAAAAAAALAIwr5yFBYWKiUlRZGRkfL29lbjxo2VlJSkM2fOmF0aqgCbzVbqy8/Pz+zSUMmmT5+uuLg4hYeHy2azKSwsrNzjN2zYoF69eslut8vf3199+/bVli1bKqVWVL5L6R8JCQll3ls+/PDDyisalWL37t169tlnddNNN+naa6+V3W5XVFSUnn/++VJ/1/jll18UGxuroKAg1a5dW926ddM333xjQuWoLJfSRyZNmlTm/WPmzJkmXQGupl9++UVDhgxRixYtFBAQIF9fX0VGRupf//qXDh48WOrx3EMAwD14ml1AVTZ27FjNnj1bAwcOVFJSknbt2qXZs2dr8+bN+uqrr1SjBlmpu+vWrZtGjBjh0lazZk2TqoFZkpOTVadOHd14443Kysoq99j169erR48eatiwoZ577jlJ0pw5c9StWzelp6erdevWlVAxKtOl9I8iCxcuLNHWsWPHK1wZzPbmm29q7ty5GjBggIYMGaKaNWtq9erVmjBhgt5//32tX79ePj4+kqRff/1VMTEx8vT01Lhx4xQQEKA33nhDt956q1atWqVevXqZfDW4Gi6ljxRJSUlR3bp1Xdrat29fmWWjkuzfv18HDx7UwIED1ahRI3l6emr79u2aP3++li5dqi1btig4OFgS9xAAcDsGSrVjxw7DZrMZgwYNcmmfPXu2IclYvHixSZWhqpBkxMfHm10GqoBff/3V+b5ly5ZGaGhomcdGR0cbdrvd2L9/v7Nt//79ht1uN3r37n01y4RJLqV/xMfHG/xodh8bN240srKySrSPHz/ekGSkpqY62+Li4owaNWoYmzdvdradPn3aCAkJMSIiIozCwsLKKBmV7FL6yMSJEw1Jxr59+yqxQlRF77//viHJePHFF51t3EMAwL0wNK0MS5YskWEYGjNmjEv7Qw89JF9fXy1atMicwlDlnDt3TtnZ2WaXAROFh4dX6Li9e/dq48aNiouLU8OGDZ3tDRs2VFxcnL766isdOnToapUJk1S0f5zPMAydOnVKhYWFV6EiVBUdOnRQQEBAifZ77rlHkrRjxw5J0pkzZ/Tpp5+qR48eioqKch7n5+enBx98ULt379bGjRsrpWZUror2kQudOnVK+fn5V7U2VF2hoaGSpBMnTkjiHgIA7oiwrwwbN25UjRo1Sjw25e3traioKH4gQpL04YcfytfXV3a7XcHBwUpMTNTJkyfNLgtVVNF9o3PnziX23XTTTTIMQ5s2barsslAFBQQEKCAgQD4+Purdu7c2bNhgdkmoRPv375ck1atXT5K0bds25eXllXnvkMTvJW7mwj5yvjZt2iggIEDe3t6KiYnRqlWrKrs8VLLc3FwdPXpU+/fv1xdffKGRI0dKkm677TZJ3EMAwB0xZ18ZDhw4oLp168rLy6vEvoYNGyo9PV3nzp1TrVq1TKgOVUHHjh0VFxenpk2b6tSpU1q5cqXmzJmjb7/9Vunp6SzUgRIOHDggSS6j+ooUtWVkZFRqTaha6tevr7Fjx6p9+/aqXbu2tm7dqlmzZqlbt25auXIlcyq5gYKCAk2ZMkWenp4aPHiwJO4dcFVaH5GkwMBAjRgxQjExMQoKCtIvv/yiWbNm6fbbb9ebb76phIQE84rGVZWWlqbExETndlhYmBYtWqRu3bpJ4h4CAO6IsK8MOTk5pQZ9kmN0X9ExhH3u68KRNsOGDVObNm00fvx4vfLKKxo/frxJlaGqysnJkaRS7y3n31fgvl544QWX7djYWA0ePFhRUVF65JFHtGfPHpMqQ2UZM2aM1q1bp2nTpql58+aSuHfAVWl9pKj9QsOHD1erVq00duxY3XXXXfyPSIuKjY1VZGSksrOztXnzZn366ac6evSocz/3EABwPzzGWwZfX1/l5eWVui83N9d5DHC+J598UrVq1dLnn39udimogoruGaXdW7ivoCzNmjXT3Xffrb1792r37t1ml4Or6JlnntGcOXM0YsQIPf3008527h0oUlYfKcs111yjhx9+WFlZWUpPT6+ECmGGRo0aqVevXoqNjdXkyZO1YMECjRs3TtOnT5fEPQQA3BFhXxkaNGigo0ePlvpDMSMjQ3Xr1mVUH0qoWbOms+8AF2rQoIGk0h+VKWor7REbICwsTJK4t1jYpEmTNHXqVN1///2aN2+eyz7uHZDK7yPl4f7hftq0aaN27drp1VdflcQ9BADcEWFfGaKjo1VYWKgffvjBpT03N1dbtmxRhw4dTKoMVVlubq72799f6oTZQHR0tCRp3bp1JfatX79eNptN7du3r+yyUA0UPb7LvcWaJk2apMmTJys+Pl5paWmy2Wwu+1u3bi0vL68y7x2S+L3E4i7WR8rD/cM9nT17VsePH5fEPQQA3BFhXxnuuece2Ww2zZo1y6X9jTfeUE5OjoYMGWJOYagSjh07Vmr7M888o/z8fN1xxx2VXBGqg6ZNm6pDhw764IMPnJNlS46Jsz/44AP17NlT9evXN7FCmOnMmTPOx6nOt3nzZn3wwQdq0aKFmjRpYkJluJqee+45TZ48WUOHDtWbb76pGjVK/mrm5+enO+64Q2vWrNHWrVud7dnZ2UpLS1OzZs3UsWPHyiwblagifSQ/P18nT54s0f7XX3/ptdde0zXXXKOYmJjKKBeV6NChQ6W2r169Wjt27HCutMs9BADcj80wDMPsIqqqxMREzZkzRwMHDtRtt92mXbt2afbs2erSpYu++eabUn/ZgnsYO3as1q9fr5tvvlkhISHKzs7WypUrtXr1anXq1EmrV6+Wj4+P2WWikixcuFB//PGHJCk1NVXnzp1TUlKSJCk0NFRDhw51Hpuenq6bb75ZjRo1cq6cl5qaqsOHD+v7779X27ZtK/8CcFVVtH9s2bJF/fr1U2xsrJo1a+ZcjbfoP+6/+OILde3a1bTrwJU3d+5cjRo1SiEhIZoyZUqJ3yvq1aun3r17S5L27t2rjh07qmbNmho7dqz8/f31xhtvaPv27fr888916623mnEJuMoq2keysrJ0/fXXKzY2Vi1atHCuxpuWlqbs7GwtWbJEcXFxJl0FrpaBAwfq4MGD6tmzp0JDQ5Wbm6tNmzZp6dKl8vX11Zo1axQVFSWJewgAuB0DZcrPzzdmzpxpREREGLVq1TIaNGhgjB071jh9+rTZpcFky5YtM/r06WM0aNDA8PLyMnx9fY22bdsazz//vHH27Fmzy0Ml6969uyGp1Ff37t1LHJ+enm707NnTqF27tuHn52f06dPH2LRpU+UXjkpR0f5x8OBB47777jOaN29u2O12w9PT02jcuLExbNgwY9euXeZdAK6a+Pj4MvtGafePnTt3GgMGDDACAgIMHx8fo0uXLsaXX35pTvGoFBXtI7m5ucYDDzxgtGrVyggMDDQ8PT2N+vXrG3feeaexYcMGcy8CV817771n3H777UajRo0MLy8vw9vb22jevLkxatQo448//ihxPPcQAHAfjOwDAAAAAAAALILnUAEAAAAAAACLIOwDAAAAAAAALIKwDwAAAAAAALAIwj4AAAAAAADAIgj7AAAAAAAAAIsg7AMAAAAAAAAsgrAPAAAAAAAAsAjCPgAAAAAAAMAiCPsAAAAAAAAAiyDsAwDgKklISJDNZjO7DAAAAABuxNPsAgAAqC4uJbjbt2/fVawEAAAAAEpnMwzDMLsIAACqg0WLFrlsr127VvPnz9eIESPUrVs3l30DBw5UrVq1VFBQIG9v78osEwAAAIAbY2QfAAAVdN9997ls5+fna/78+ercuXOJfUVq1qxZGaUBAAAAgCTm7AMA4Kopbc6+orZjx44pISFBdevWld1uV2xsrA4dOiRJmj9/vlq0aCFvb29FRkZq+fLlpZ7/vffeU9euXWW32+Xr66tOnTrpww8/vOrXBQAAAKDqIuwDAMAEffv21cmTJ/Xcc8/poYce0meffaaBAwfqpZde0ksvvaT4+Hi98MILOnfunO66664ScwBOmDBB//znP2W32zVlyhS98MIL8vX1VVxcnObOnWvSVQEAAAAwG4/xAgBggo4dO5YI5VJSUpSRkaEdO3bI399fktSzZ0+1bdtW8+fP1/Tp0yVJP/74o55//nk9/fTTmjZtmvPzo0ePVmxsrJ5++mkNGzZMdru98i4IAAAAQJXAyD4AAEwwZswYl+2iBT6GDRvmDPokqU2bNvL399eePXucbYsXL5bNZlN8fLyOHj3q8howYIBOnz6tdevWVcp1AAAAAKhaGNkHAIAJwsPDXbaDgoIkSddff32JY4OCgnTs2DHn9q5du2QYhiIjI8s8/+HDh69QpQAAAACqE8I+AABM4OHhcUnthmG4vLfZbFq1alWZx7ds2fLyiwQAAABQ7RD2AQBQzTRr1kz/+c9/FBISohYtWphdDgAAAIAqhDn7AACoZoYOHSpJSk5OVkFBQYn9PMILAAAAuC9G9gEAUM1ER0dr0qRJmjRpkqKiohQXF6cGDRro4MGD2rRpk1auXKlz586ZXSYAAAAAExD2AQBQDU2cOFEdOnTQ7NmzNWvWLJ05c0bBwcFq1aqVZs+ebXZ5AAAAAExiM86f8RsAAAAAAABAtcWcfQAAAAAAAIBFEPYBAAAAAAAAFkHYBwAAAAAAAFgEYR8AAAAAAABgEYR9AAAAAAAAgEUQ9gEAAAAAAAAWQdgHAAAAAAAAWARhHwAAAAAAAGARhH0AAAAAAACARRD2AQAAAAAAABZB2AcAAAAAAABYBGEfAAAAAAAAYBH/D96rPv6NKl4+AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fifo = schedule_jobs(jobs, jobs.sort_values(by=\"release\").index)\n", "gantt(jobs, fifo, \"First in, First out\")" ] }, { "cell_type": "markdown", "id": "440e9aa9-54af-4694-b830-0d0cef91c9a1", "metadata": {}, "source": [ "### Earliest due date (EDD)\n", "\n", "When due dates are known, a common scheduling rule is to prioritize jobs by due date. This strategy will be familiar to any student deciding which homework assignment should to work on next." ] }, { "cell_type": "code", "execution_count": 7, "id": "a8181151-0d96-4479-8a53-fa8bcbc5bd17", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using the \"Earliest due date\" strategy, the total past due is 27.0\n" ] }, { "data": { "image/png": "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5qYqVaqoatWqioiI0NSpUyVJN27c0E8//SQ7OztFRERoxIgRkqRr165p165dGjRoUO4+8Fwg7AMAAAAAAPlm8+bN+uqrr9S9e3etXr3aMrqse/fuatSokV599VVt377d6py9e/cqOjpajz/+uCRp2LBh6tq1q5YuXapBgwapadOmd73v8ePH9e9//1sDBgywau/fv7+8vb0VHR0tNzc3S3u7du3UtWtXrVy58o67rb711ls6duyYfvvtN6uRZn379lW9evU0efJkLV26VJJUtWpVnTp1yio8DA0N1aRJkzRt2jT9/vvv+sc//iEpI2R67LHHtH79eqv7vfvuu5bXycnJevnll9WkSRNFRERYpqsOGjRI9evX18iRIxUVFaXAwEDLOWFhYXJ3d7dqGzFihNLT0/Xzzz+rRo0akqShQ4eqZcuWd/hE7+5e6rtdZtgXERFhCfsiIiLUs2dPrVixQhEREerevbvMZrOioqLUunVr2dvb37W2ffv2ad++fZZRg4MHD1a9evU0b948S9iXlpam1157TaVLl9bvv/9uCRUHDRqU7U7Us2bN0pEjR/Txxx9r6NChlvYGDRpo2LBhmjVrlt5++23Lcy1btkyJiYlycXHRb7/9psTERPXq1Uvh4eFKTU21hMFpaWkKCgq6+weeS0zjBQAAAAAA+SYsLEySNGHCBKtppPXr11enTp30008/KTY21uqc4OBgS9AnZazFNmbMGKvr3U3p0qXVr18/q7a//vpLf/75p3r27CmTyaSLFy9avlq2bClXV1dt2rQpx2uazWatXLlSrVu3VoUKFazOd3V1VdOmTa3Od3R0tAR9qampunLlii5evKj27dtLkmX6qSSVLFlSp0+f1k8//ZTj/Tdv3qzz58+rX79+unr1qtX9n376aUnKUv+6dev0zDPPWOq4cOGCfv31V3Xu3NkS9GXWmjm67F7dS323+8c//qHixYsrIiJCUsYU2OPHj+uFF15Q3bp19eOPP0qSZZRfbkOxkJAQq+nBBoNBbdu21blz56xGfZ46dUr9+vWzBH1Sxvdm8ODBWa4ZFhamsmXLauDAgVbtgwYNUtmyZa1+VoOCgpSSkmIJtiMiIuTp6anXXntN169fV3R0tCQpMjLSUlt+IewDAAAAAAD55vjx47Kzs8t2DbI6depY+twqu761a9eWpCzr4uWkWrVqWUZ8HThwQJI0efJklS1b1urL09NTCQkJOn/+fI7XjI2N1aVLl7Rp06Ys55ctW9YSdt3qk08+kb+/v5ycnFS6dGmVLVvWMrLtypUrln7Tp0+X0WhUq1atVKFCBb344ov64osvdOPGjSz19+/fP8u9a9WqJUlW99+/f78OHz5stQtv5ueX2f9WmZ/xvcprfdlxcHBQy5YtFRkZKSljCm+xYsXUunVrBQUFWULAzP/mNuyrWrVqljYPDw9Jsqyvl9fP5vjx46pZs2aWDUGKFSumGjVqWP2sZtZ5a/1t27bV448/rlKlSlm1169fX6VLl87Vc+UG03gBAAAAAECh5+LikqXNbDZLkkaNGqUOHTpke16pUqVyvGbm+e3bt9fYsWPvWsN7772nUaNG6YknntCrr76q8uXLy9HRUadPn1bfvn2Vnp5u6dusWTP9/fff+uGHHxQZGanIyEh98cUXmjZtmn766SeVLl3acv/Zs2erQYMG2d6zfPnyltdhYWEyGo05Pmtu3Doa83a3b26R1/pyEhQUpP/85z/at2+fIiIiFBAQoOLFiysoKEgffvihTp48qYiICJUpUybb6bXZudNU38y6HyQvLy/Vrl1bERERSkxM1I4dOzRv3jzZ2dmpTZs2+vHHHzV48GD9+eef9z3C8naEfQAAAAAAIN9UrVpV6enpOnDgQJZgZv/+/ZIkX19fq/bMEWLZ9c1uhFZuVa9eXVJG8JM5lTYvypYtK3d3d127di1X5y9fvlw+Pj76/vvvZWd3czLlf/7zn2z7Fy9eXM8995yee+45SRmjAkNDQ7V48WKNHj3aUr+rq2uu7h8WFqbg4GC5urpa2jI/64MHD2bpn/kZ3ypzhNnly5ezHDt+/LjVeoR5rS8nmaPgfvzxR0VEROjll1+WlLH7r729vTZt2qRt27YpODj4jmFkXmX+bOX2s6lataoOHTpkWW8vU2pqqg4fPpzlZzUoKEiffPKJNmzYoBs3bqhdu3aSMtaLfOONN/T999/LbDbn63p9EtN4AQAAAABAPsrcBXbGjBlWI6j++9//av369WrZsqXKli1rdc7mzZv1xx9/WN6bzWbNmjXL6nr3omHDhqpbt64WLFiQ7XTg1NTUbEOtTHZ2dnrxxRf1+++/6+uvv862z4ULFyyv7e3tZTAYrJ47NTXVatONTBcvXszSlrluYWZNTz75pDw9PfXuu+9mW2dSUpKuX78uKWM34l27dllN4ZUyRpg1bdpU4eHhOnz4sKX9xo0bmjt3bpZrZq7rt2XLFqv2VatW6cyZM1ZteanvTho2bKhSpUppwYIFOnv2rCX8KlmypB5//HHNnTtXcXFx+R6KNWrUSBUrVtSSJUusvh/Xrl3TggULsvQPCQlRbGysFi1aZNX+73//W7GxsVk++6CgIKWnp2vq1KmqXLmyZQOSoKAgmUwmzZgxwzJlOT8xsg8AAAAAAOSb4OBgy068V65cUceOHXXu3Dl9/PHHMhqN+vDDD7OcU79+fQUFBSk0NFTe3t4KDw/Xli1b1Lt3bzVr1uyeazEYDFq+fLmCgoLk7++v/v37q06dOkpMTNTRo0e1du1azZgx44678b7zzjv6+eef1b17d3Xv3l1NmzaVo6OjTpw4oe+++06NGjWy7Mb7/PPP680339RTTz2lrl276tq1a/riiy+sRsNleuyxx9S0aVM1adJE5cuX19mzZ/Xpp5/K0dFR//d//ycpY8Tc559/rpCQENWsWVP9+/eXn5+frl69qoMHD2rt2rUKCwtTYGCg1q1bJ3t7e3Xq1CnLvd577z0FBgaqRYsWCg0Nlbu7u1avXp1lWq4k1axZU+3bt9fChQtlNpvVoEED7dmzR2FhYfLz81NKSoqlb17qu5PMqa3r1q2T0WhU8+bNLceCgoI0c+ZMy+v8ZG9vr7lz56p79+76xz/+oVdeeUXFihXTZ599Jg8PD508edKq/5gxY7RmzRqFhobqjz/+UMOGDbV7924tXrxYNWvWtGwqkykwMFB2dnY6cOCA1c9Y7dq1Va5cOe3fv19Nmza12iU6PxD2AQAAAACQz+zs7GRvb3/HdcMedrdOQ72TzFFstz7rypUr9fjjj2vp0qUaNWqUXF1d1aZNG7399tuqV69elms8++yzqlmzpmbMmKFDhw7J09NTkyZN0qRJk+77ORo0aKDdu3drxowZWr9+vRYsWCA3Nzf5+Piob9++lqmVOSlZsqR+/vln/etf/9JXX32l8PBwFStWTBUrVlTLli01YMAAS9/Ro0fLbDZr8eLFeu2111SuXDn16NFD/fr1y7Lhw6hRo/Tdd9/pww8/VFxcnDw9PdW0aVO9+eabql+/vqXfk08+qejoaL377rtasWKFYmNjVapUKVWrVk0jR460TJVet26dWrZsabWrbKZmzZpp8+bNGjdunN59912VLFlSzz//vIYMGZLt92P58uUaPny4Vq5cqeXLl6tVq1aKjIzUkCFDFBMTY9U3t/XdTVBQkNatW6fmzZvLycnJ0t6uXTvNnDlTFSpUUM2aNXN1rbx4/vnn9fXXX+uf//ynpkyZIk9PT/Xt21etW7fWE088YdU382dh8uTJWr9+vZYsWSIvLy8NHjxYU6dOzRLalSpVSg0aNNAff/yRJagMCgrSF198ke8BpiQZzAWxKiEAAAAAAI+I5ORkHT9+XL6+vjIajbYu54ELDw9XSEiIPvvsM/Xr18/W5TySLl26JC8vL82ZM0evv/66rcvBA5Lbv1tYsw8AAAAAANyz3377TZKyHSGGgnHp0iVNnDhR3bt3t3UpeAgwsg8AAAAAgHz0qIzsW7VqlXbu3KkPP/xQ9erVs9pgA0D+y+3fLazZBwAAAAAA8mzo0KEyGAzq2rWr3nvvPVuXA+D/I+wDAAAAAAB5duXKFVuXACAbhH3QqcunlHgj0dZl4CHlZO8kT1dPW5dR6Nnb21vtKAUAAAAAwINA2PeIO3X5lBoHN5bJZLJ1KXhI2Rvs5ePiIweDg61LKdRcXFz0/fffE/gBAAAAAB4owr5HXOKNRJlMJtUZVEcuDi62LgcPGVO6SaY0k8bUHqNyxnK2LqfQMplMGj9+vNLS0mxdCgAAAACgiCPsgyTJxcFFbk5uti4DDxn7VHulKEVGJ2OR3kUMAAAAAICiws7WBQAAAAAAAADIH4R9AAAAAAAAQBHBNF48kno06KEeDXtIkiKOROijnz6ycUUAAAAAAAD3j7APhUqdcnX09lNvW94PWjNIsfGxNqzImoerhxY8v0D2dvaWtnc2v6Nd/9tlw6oAAAAAAMCjgrAPyEdt/dpaBX2ZbYR9AAAAwKPlX3v/Jae/nVTMvvD+2m0sZtTM4Jm2LsMmAgMDFRMTo5iYGFuXkiODwaCXXnpJS5cutXUpuRYTEyNfX19NnjxZU6ZMsXU5RVbh/VsHeAgF+gVmaWtcqbGKOxZX/I34gi8IAAAAgE2Y0k1SqpRqTrV1KQUmMTFRn376qb755hvt27dP169fV+nSpdWoUSN1795dvXr1UrFij0YMsW7dOu3Zs+eRDLRiYmK0dOlShYSEqEGDBrYu55H0aPwpwyPBq7iXOtfrrPrl68vDxUNp5jSdv35ev5/8Xev3rVfijcQcz61eprpebPSiqpetrrT0NO05vUfLdi7TpYRLub5/Lc9aKl+ivCTpUsIlnbp6Sg0qNJBjMUe1rNpS/zn4n/t+RgAAAAB4GB09elTPPPOMDh8+rPbt2+vNN99UmTJldOHCBW3ZskX9+vXT/v37NWvWLFuXWiDWrVunZcuWPbJh39SpU+Xj45Ml7KtSpYqSkpIemdDXVvh0USTU9qqtCcET5OzgbNXuU9pHPqV91Lpaa038bqIuJ17Ocq5fGT+1fKqlHIs5WtpaVm2pWl61NHr9aMUlx+WqhrZ+bS2vtx/brpjLMWpQoYHlGGEfAAAAgKIoKSlJHTt21LFjx/TNN9+oa9euVsfHjh2r6OhoRUdH26hCPCwMBoOMRqOtyyjy7GxdAHC/HOwdNKLNCEvQdzj2sGb+OFMfbPvAMjKvnFs5DWk+JNvzK5eqrD1n9uidze/o37/9W0kpSZKkMq5l1PPxnrmqwdHeUc19m1vebzu2Tb+f/F3JKcmSpOplq6tiyYr3/IwAAAAA8LBatGiRDh06pFGjRmUJ+jIFBARo6NChVm3r1q1TixYt5OrqquLFi6tFixYKDw/Pcq6Pj48CAwO1d+9etW/fXsWLF5enp6dGjRql1NRUJScn64033lCFChVkNBrVunVrHThwwOoaS5culcFg0JYtWzRlyhRVqVJFTk5O8vf31+rVq3P9rEeOHFHv3r3l7e0tR0dH+fj4aPTo0UpISLD0CQwM1LJlyyRlhFuZX7eurXf27FkNGTJElStXlqOjo8qXL6+BAwfqwoULWe65b98+dejQQa6uripdurRefPHFbPvdycWLFxUaGqpKlSrJ0dFRlSpVUmhoqC5dsp7Nlvk5RUREaM6cOapWrZqcnJxUo0YNyzPdydKlS9W2bcZAmH79+lmePTAwUFLGqD+DwWA14vHWtq+++koNGjSQs7Oz/Pz8tGTJEknSyZMn9fzzz6t06dJyc3NTr169dP369Sz3z8vnWpQxsg+FXoPyDeTh6iFJSklL0cwfZ+pK0hVJUrwpXhOCJ0iSGlZsqJLGkllG6l1KuKQ5kXOUmp6xloaDnYP6/qOvJKmZTzMt+GWBzDLfsYYmVZrI1dFVknTyyknFXI6RJP1+8ne1rtZaktS2elst37n8/h8YAAAAAB4iX3/9tSRp4MCBuT7nk08+UWhoqGrVqqW33npLkizrvC1cuDDLtf73v/8pODhYPXr00PPPP69NmzbpvffeU7FixbRv3z4lJSVp3LhxunjxoubMmaOQkBAdOHBAdnbWY5zGjh2rhIQES/C4ZMkSvfDCC0pOTlbfvn3vWPOuXbsUFBQkd3d3DRo0SBUqVNDevXv14Ycf6ueff9bWrVvl4OCgCRMmKD09Xdu3b9fy5Td/B2zePGOAyMmTJ9WsWTPduHFDL7/8sqpVq6ajR49q/vz5ioyM1M6dO1WyZElJ0vHjx9WqVSuZTCYNGzZMlSpV0oYNG9ShQ4dcf9ZxcXFq3ry5jh49qv79++vxxx/X7t27NX/+fEVEROj333+Xm5ub1Tnjx49XUlKSBg0aJCcnJ82fP199+/aVn5+fWrRokeO9WrdurfHjx2v69OkaOHCgWrVqJUny8vK6a50bN27UggULNHToUJUuXVqLFy9W//795ejoqPHjxysoKEjTp09XdHS0PvvsMxmNRi1atMhyfl4+16KOsA+FXoWSFSyvz10/Zwn6JOnA+Zv/mmNnsFP5kuWzhH1HLh6xBH23n1PcqbhKGEvcdSrvrVN4t/297ebrY9ssYV/rqq21ctdKpZvTc/toAAAAAPDQ++9//6sSJUqoatWquep/5coVjRkzRtWqVdOOHTtUokQJSdKQIUPUsGFDjRo1St27d5e7u7vlnL///ltfffWVunXrJkkaPHiwGjVqpNmzZ6tTp07asmWLDAaDJMnDw0OvvfaaNm/erCeffNLq3hcvXtSff/5pCX0GDx4sf39/jRw5Uj169JCzs/XSULfq37+/vL29FR0dbRWOtWvXTl27dtXKlSvVt29fBQcHa+XKldq+fbt69eqV5TrDhw9XSkqKdu/erYoVb84A69atm5o2baq5c+daRr5NmDBBV65cUUREhGXEXGhoqLp27ardu3fn6vOeNWuWjhw5oo8//thqdGWDBg00bNgwzZo1S2+//bbVOSaTSdHR0XJ0zFju6vnnn1fVqlX10Ucf3THsq1q1qoKDgzV9+nQ1a9Ys2+fPyYEDB7R//35VqVJFktSjRw9VqlRJvXv31pw5czRy5EhJGd+zK1eu6PPPP9f777+v4sWLS8rb51rUMY0XuE8eLh6q513P8r5X415a22+t1vZbq4nBE2/2c/VQ/fL1bVEiAAAAADww165dyzIy7E42b96shIQEvfrqq5agT5JKlCihV199VfHx8dqyZYvVORUqVLAEfZlatmwps9ms4cOHW4I+SZbRZEeOHMly7yFDhliN7ipZsqQlPIqKisqx5r/++kt//vmnevbsKZPJpIsXL1q+WrZsKVdXV23atOmuzx4XF6eNGzfq2WefldFotLqOj4+P/Pz8LNdJT0/Xhg0b1LhxY0vQJ2VMDR4zZsxd75UpLCxMZcuWzTJactCgQSpbtqzCwsKynDN06FBL0CdlfP41atTI9jPNLyEhIZagT5LKli2rmjVrys7OTqGhoVZ9W7VqpZSUFMXExEjK2+f6KCDsQ6F3Ou605XU5t3Jyd3a3vK/lVcvyOt2crjNxZ7KcX71Mddkb7LM9J8GUoGvJ1+54/zbV2sjezv6OfTLdOgIQAAAAAIqCEiVKZLt+Wk6OHz8uSapTp06WY5ltx44ds2r39fXN0rdUqVLZHstsv309Okl67LHHsrTVrl0723veKnMNwMmTJ6ts2bJWX56enkpISND58+dzPD/ToUOHlJ6ersWLF2e5TtmyZXXo0CHLdS5cuKD4+HjVqlUry3Uya86N48ePq2bNmll2wC1WrJhq1KiR7XNnN0rTw8Mj2880v2R3z1KlSsnb21tOTk5Z2qWb3+O8fK6PAqbxotDbc2aPLiVckoerhxzsHTQ2aKzC/gqTsZhRvRrfHDK8+3+7s52O6+HqoTfavqEth7eobPGy6t6gu+XYryd+vet6fYF+gZbXPx7+UUcuWv9LR2mX0pZrBlQOkIujixJvJN7LowIAAADAQ6du3bratm2bjh07luupvHllb5/zAIucjpnNd/5dLi8yrzVq1Kgc18vLDKByc51evXrppZdeyrbPnaYSF5SC+Exze887fe8z6yksn2tBIexDoZeSlqK5W+dqQvAEOTs4q6ZnTY1rN86qz7nr57TglwXZnn/22lk1qtRITao0sWq/lHBJK3etvOO9a5StoYruGWsBpJvT9cUfX1itGShJBhkUXCNYpVxKyamYk1r6ttSmQ4/O8GEAAAAARdtzzz2nbdu2adGiRZo+ffpd+2cGgvv27VO7du2sju3fv9+qT347cOCAOnfunOd7Vq9eXVJG8NS+ffu73ufWacW38vPzk8Fg0I0bN+56nbJly6p48eI6ePBglmOZNedG1apVdejQIaWmplqN7ktNTdXhw4fz/bPO6dkfpLx8ro8CpvGiUHFxcLF6fyP1hiRp//n9Ghk+Uj8c/EHnrp1TSlqKTKkmxVyO0Zo9a/TG+jd0KTH74cYHzh/Q1B+mat+5fUpOSVaCKUE/H/9Z478dn6eNOQ5fOJwl6JMks8yKPhVteR/kF5Tr5wUAAACAh92AAQNUs2ZNzZkzR+Hh4dn22bVrlz755BNJUnBwsFxdXTVv3jyr6b/Xr1/XvHnzVLx4cQUHBz+QWufPn6+4uJu/58XFxWnBggVyd3dXmzZtcjyvYcOGqlu3rhYsWJDttNfU1FRdvnzZ8j5z04hb26SMqbBPP/201q5dq99++y3Ldcxms2JjYyVlBIsdO3bUzp07FRkZadVn1qxZuXzijLXwYmNjrXaulaR///vfio2NVZcuXXJ9rdzI6dkfpLx8ro8CRvahUAmoHGB5nXgjUddNN//HcP76eS38dWGurvPlni/15Z4vrdomfT8pz/Us/HVhru654JcFOY4sBAAAAIDCzMXFRRs3btQzzzyjkJAQPfHEEwoODpaHh4diY2MVGRmpH374wbKphLu7u2bNmqXQ0FA1adJEffv2lSQtXbpUR48e1cKFC6020chPZcqUUZMmTdSvXz9J0pIlS3Ty5EktWrRILi4uOZ5nMBi0fPlyBQUFyd/fX/3791edOnWUmJioo0ePau3atZoxY4blWZo2baqPPvpIQ4cO1TPPPCMHBwc1adJEvr6+mj9/vlq2bKnWrVurT58+atiwodLT03Xs2DGFh4erT58+ll1jp02bpu+//14dO3bU8OHDVbFiRW3YsCFPwdWYMWO0Zs0ahYaG6o8//lDDhg21e/duLV68WDVr1szTZh+5Ubt2bbm5uemTTz6Ri4uL3N3d5enpqaCgBzvwJS+fa1FH2IdC4cXHX1QNzxpWu95Gn4pWujndhlUBAAAAQPac7JzkVMxJxewL76/dxmLGXPf18/PT7t27tXDhQn3zzTd65513FB8fr9KlS6tx48ZatmyZevbsaek/dOhQeXt7a/bs2Zo6daokqX79+goLC1NISEh+P4rFzJkztX37dn388cc6f/68atSooZUrV1rVlpMGDRpo9+7dmjFjhtavX68FCxbIzc1NPj4+6tu3r9WU5BdeeEG7d+/W6tWrtWbNGqWnp2vJkiXy9fVVpUqVtGvXLs2cOVPh4eFasWKFjEajKlWqpE6dOql795vryFerVk3bt2/XqFGjNG/ePDk5Oempp57S8uXL5eXllatnLlmypH7++WdNnjxZ69ev15IlS+Tl5aXBgwdr6tSpedpJOTecnZ21evVqTZw4Ua+//rpMJpPatGnzwMO+vHyuRZ3B/CBXV8RD79C5Q2rSvokChgXIzSl//4Dnp+U9l8vVydXyPjY+Vm9++6YuJxbcsOBHUWJqouJS4jTRf6LKOZezdTmFVnJyskaNGqWIiIg7/mshAAAAiobk5GQdP35cvr6+MhpzH5jhwVm6dKn69eunyMhIBQYG2roc4J7k9u+WwvtPDHikmGVWckqyzl0/p13/26Xw/4Yr3hRv67IAAAAAAAAeKoR9KBT6fNHH1iUAAAAAAAA89Aj7IElKTEm0dQl4CJnSTUpPS1eyKVnJhmRbl1NomUwmW5cAAAAAAHhEsGbfI+7U5VOq7FFZJes8mJ2OUPjZG+zl4+IjB4ODrUsp1FxcXPT999/LycnJ1qUAAADgAWPNPgAPAmv2IVcqla6kk5dOKvEGI/uQPSd7J3m6etq6jELP3t6eoA8AAAAA8MAR9kGVSleydQkAAAAAAADIB3a2LgAAAAAAAABA/iDsAwAAAAAAAIoIwj4AAAAAAACgiCDsAwAAAAAAAIoIwj4AAAAAAACgiCDsAwAAAAAAAIqIYrYuAAAAAACAoqbsv/6lYk5OUrFC/Gu30SjNnGnrKmwiMDBQMTExiomJsXUpOTIYDHrppZe0dOlSW5dSYGJiYuTr66vJkydrypQpti7noVWI/9YBAAAAAODhZGcyZbxITbVtIQUoMTFRn376qb755hvt27dP169fV+nSpdWoUSN1795dvXr1UrHCHH7mwbp167Rnzx4CKUl79uzRunXr1LdvX/n4+Ni6nEcC03gBAAAAAA8VHx8fBQYG2roM5MHRo0fVsGFDjRgxQkajUW+++aY+/fRTjRw5UikpKerXr5/Gjx9v6zILzLp16zR16lRbl/FQ2LNnj6ZOnfpQj5Isagj7AAAAAOAeTZkyRQaDIccvBweHXF/ru+++U/PmzeXq6qrSpUurW7duOn78+AOsPv9cvXpVU6ZMUVRUlK1LgQ0kJSWpY8eOOnbsmL755htt3rxZo0ePVr9+/TR27Fht3rxZv//+O6O6gAJC2AcAAACLIUOG2LoEoMDdz899165dtXz58ixfo0ePliR16tQpV9dZu3atOnbsqKSkJM2ePVujR4/Wtm3b1KJFC505c+ae6ysoV69e1dSpUwn7HlGLFi3SoUOHNGrUKHXt2jXbPgEBARo6dKhV27p169SiRQu5urqqePHiatGihcLDw7OcmznSc+/evWrfvr2KFy8uT09PjRo1SqmpqUpOTtYbb7yhChUqyGg0qnXr1jpw4IDVNZYuXSqDwaAtW7ZoypQpqlKlipycnOTv76/Vq1fn+lmPHDmi3r17y9vbW46OjvLx8dHo0aOVkJBg6RMYGKhly5ZJklX4f+vaemfPntWQIUNUuXJlOTo6qnz58ho4cKAuXLiQ5Z779u1Thw4dLP8Q8OKLL2bbLyd5ffZNmzapR48eqlq1qpydneXu7q4nnnhCW7duzba2bt26qUKFCnJyclK5cuXUtm1bffvtt5Iy/kGkX79+kqS2bdtaPou+ffvete6ffvpJLVq0kLOzs7y8vDRs2DDFx8fn+HzZ/f0TGBiYbci8c+dOdenSRWXKlJGTk5Nq1qypd955R6lFZNr9ozFZHgAAALly+vRpW5cAFLj7+bn39/eXv79/lvZBgwZJkl5++eW7XiMlJUXDhw9XpUqVtH37dhUvXlyS9NRTT6lRo0aaMmWKPv3003uuEXjQvv76a0nSwIEDc33OJ598otDQUNWqVUtvvfWWpIzQJiQkRAsXLsxyrf/9738KDg5Wjx499Pzzz2vTpk167733VKxYMe3bt09JSUkaN26cLl68qDlz5igkJEQHDhyQnZ31GKexY8cqISHBEjwuWbJEL7zwgpKTk+8aQO3atUtBQUFyd3fXoEGDVKFCBe3du1cffvihfv75Z23dulUODg6aMGGC0tPTtX37di1fvtxyfvPmzSVJJ0+eVLNmzXTjxg29/PLLqlatmo4ePar58+crMjJSO3fuVMmSJSVJx48fV6tWrWQymTRs2DBVqlRJGzZsUIcOHXL9Wef12ZcuXarLly+rT58+qlixok6fPq1FixapXbt2ioyMVKtWrSRJly5dUlBQkCRp8ODBqlKlii5evKidO3dqx44deuaZZ9S1a1edPXtWn376qcaPH6/HHntMklStWrU71rpjxw61b99ebm5uGjt2rNzd3bV69Wr16dMnz899u2+//VZdu3aVn5+fRo0apdKlS+vXX3/VW2+9pT179mjNmjX3fQ9bI+wDAAAAgHyUkJCg1atXq2LFirn6hXzr1q06c+aM/vnPf1qCPklq0KCBAgMD9eWXX+rjjz++45TgW3eorFmzpmbMmKHDhw/L09NT/fv318SJE602Rjh48KA+/PBDbd26VSdPnlRaWpoee+wxDRkyRAMGDLC69uXLl/X2229r/fr1On36tFxdXeXj46P/+7//0+jRoxUVFaW2bdtKkqZOnWpZp6xKlSp3XaPr1KlTGjVqlH744QeZzWa1adNG77///h2f7/YND6ZMmaKpU6fq+PHjViN4zp49q3/+85/69ttvde7cOZUpU0YdO3bUtGnT5Onpece6kDf//e9/VaJECVWtWjVX/a9cuaIxY8aoWrVq2rFjh0qUKCEpY5Rtw4YNNWrUKHXv3l3u7u6Wc/7++2999dVX6tatm6SMcKlRo0aaPXu2OnXqpC1btshgMEiSPDw89Nprr2nz5s168sknre598eJF/fnnn5YwbfDgwfL399fIkSPVo0cPOTs751h3//795e3trejoaLm5uVna27Vrp65du2rlypXq27evgoODtXLlSm3fvl29evXKcp3hw4crJSVFu3fvVsWKFS3t3bp1U9OmTTV37lzLz/mECRN05coVRUREWP6chYaGqmvXrtq9e3euPu+8Pvu///1vubq6Wp07ePBg1alTRzNmzLCEfT///LMuXLigL7/8Ut27d8/2nv7+/mrWrJk+/fRTBQcH53otzhEjRig9PV0///yzatSoIUkaOnSoWrZsmadnvl1ycrJefvllNWnSRBEREZa/FwcNGqT69etr5MiRioqKKvRrhjKNFwAAAADy0Zo1a3Tt2jX17dtX9vb2d+0fHR0tSWrWrFmWY02bNtW1a9d0+PDhXN17/fr1GjJkiDp16qTZs2erZs2amjp1ql555RWrflFRUdq2bZs6duyo2bNn6+2335aDg4NeeeUVzZgxw6pvt27d9NFHH+npp5/WvHnzNHnyZP3jH/+wTJl77LHHNHfuXElSly5dLFOZswvtbnX16lW1bt1aa9euVe/evfXuu+/KxcVFbdu2tZoSeS9Onjypxo0b6+uvv1bPnj318ccfq3fv3lq9erVatGihuLi4+7o+rF27ds0q/LqbzZs3KyEhQa+++qol6JOkEiVK6NVXX1V8fLy2bNlidU6FChUsQV+mli1bymw2a/jw4ZagT5IljDpy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "edd = schedule_jobs(jobs, jobs.sort_values(by=\"due\").index)\n", "gantt(jobs, edd, \"Earliest due date\")" ] }, { "cell_type": "markdown", "id": "1c0b81bd", "metadata": {}, "source": [ "### Shortest processing time (SPT)\n", "\n", "When the job durations are known, another common scheduling rule is to prioritize jobs by their (remaining) processing time." ] }, { "cell_type": "code", "execution_count": 8, "id": "561a2188", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using the \"Shortest Processing Time\" strategy, the total past due is 51.0\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABPsAAAHWCAYAAAAB7ox4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACRsklEQVR4nOzdd3yN5//H8fdJRLaESKwiiFHUVrNEiLbfoqpFzaKtFbQV1B6tUUq1NqWoUh3EaKtFjWq19qqthNZKQqyMI+P8/ji/HI6EJIQjx+v5eJxHz7nOdd/35z5JkXeuYTCZTCYBAAAAAAAAyPYcbF0AAAAAAAAAgKxB2AcAAAAAAADYCcI+AAAAAAAAwE4Q9gEAAAAAAAB2grAPAAAAAAAAsBOEfQAAAAAAAICdIOwDAAAAAAAA7ARhHwAAAAAAAGAnCPsAAAAAAAAAO0HYBwAAAAAAANgJwj4AAAAAAADAThD2AQAAAAAAAHaCsA8AAAAAAACwE4R9AAAAAAAAgJ0g7AMAAAAAAADsBGEfAAAAAAAAYCdy2LoAAAAAAADsVVJSkhISEmxdBoBszNHRUU5OThnuT9gHAAAAAEAWM5lMunDhgq5evSqTyWTrcgBkc87OzsqbN69y5cqVbl/CPgAAAAAAstjVq1d15coV+fr6yt3dXQaDwdYlAciGTCaTEhISdPXqVZ09e1aS0g38CPsAAAAAAMhCJpNJERERypUrl/LmzWvrcgBkc66urvL09NR///2nqKiodMM+NugAAAAAACALJSUlKSkpKUPT7QAgIwwGg7y8vGQ0GtNdB5SwDwAAAACALJSYmChJypGDyXQAsk7KJh1JSUn37EfYBwAAAADAQ8A6fQCyUkb/TCHsAwAAAAAAAOwEYR8AAAAAAABgJ1hAAAAAAACALHb06FFdu3ZNzs7Oti7lvjk4OKhChQoP9Rrh4eEqVqyYRowYoZEjRz7Ua2XEyJEjNWrUKJ06dUr+/v62Luehe9w+/8x6mPVv2rRJDRo00Pz589WpU6csPffDxsg+AAAAAACyWHJysmVX3uz6SE5OztC9btq0SQaDQRMnTnzInyoyKiEhQblz59agQYNsXQpsgJF9AAAAAAAAdmTTpk26cuWKXnnlFVuX8lAVLVpUcXFx7Hx9B0b2AQAAAAAAu3P9+nVbl2AzYWFhKlSokKpXr27rUh4qg8EgFxcXwr47EPYBAAAAAIAslZiYqPHjx6ts2bJycXGRj4+PXnnlFR04cOCux3z99deqUKGCXFxcVKRIEY0cOVKJiYkZup6/v78CAwO1Z88ePf/88/Ly8rJab/D48ePq0KGDChQooJw5c8rf31/9+/dXTExMhs5/9epVvf/++woICJCzs7N8fX3Vpk0bnTx50qrf9evXNXToUNWoUUN58+aVs7OzAgICNHDgQMXGxlr1TU5O1qeffqoKFSrI09NTuXLlUunSpfXmm28qISHBqu/OnTv1yiuvWM5ZunRpjRkzJs3Px2QyaeXKlXr55ZdlMBgs7b///rvq1KkjV1dX5cuXT7169dKNGzdSHb9gwQIZDAZt2rQp1XuBgYFprmWYmfru1KBBg1Tn/Prrr2UwGFSxYkWr9pkzZ8pgMGjbtm2SzGv2GQwGq/X6bm/74YcfVL16dbm4uKhAgQLq379/mjWtXLlSlStXlouLiwoXLqxhw4al+hqkiIqKUkhIiAoXLqycOXOqcOHCCgkJ0aVLlyx9Tp8+LYPBoBEjRlgd+/zzz8tgMGjy5MlW7TVq1NDTTz+d7meVUUSfAAAAAAAgS7Vr107ffvutgoOD1aNHD124cEHTp09XrVq1tGXLFlWuXNmq/6pVq3Ty5EmFhIQof/78WrVqlUaNGqXTp09r/vz5GbrmmTNnFBQUpJYtW+rVV1+1BFm7du1SUFCQvL291a1bNxUqVEj79u3TlClT9Mcff2jz5s1ycnK663mvXr2q2rVr68yZM+rSpYvKlSun8+fPa8aMGapRo4Z27typokWLSpLOnj2ruXPn6tVXX1Xbtm2VI0cObd68WRMmTNCePXv0yy+/WM47ZswYDR8+XE2bNlX37t3l6OioU6dOadWqVTIajZaafvzxR7Vo0UIBAQEKDQ1Vnjx59Oeff2r48OHau3evvvvuO6t6t23bpnPnzql58+ZWbY0aNZKnp6fef/99eXt7a+nSperYsWOGPtt7yWx9dwoKCtLw4cP1zz//qESJEpKkX3/9VQ4ODjpw4ICioqKUN29eSdKGDRuUK1cuVatWLd26fvrpJ82YMUPdu3dXly5dtHLlSk2cOFG5c+fW4MGDLf3CwsL06quvyt/fX8OHD1eOHDk0f/58/fjjj6nOmfK9cOLECXXp0kVVqlTRnj17NHPmTG3YsEHbt2+Xp6enihYtquLFi2vDhg0aNWqUJOnmzZv6/fff5eDgoA0bNui9996TJF27dk27du1St27dMvaBZwBhHwAAALK1J23nRAB43K1bt07ffvutWrVqpaVLl1pGl7Vq1UpVq1ZVnz59tGXLFqtj9u3bpx07dqhKlSqSpF69eqlFixZasGCBunXrppo1a6Z73VOnTunzzz/XW2+9ZdXepUsXFShQQDt27JCnp6elvWHDhmrRooUWL158z91Whw8frpMnT+qvv/6yGmnWqVMnPfPMMxoxYoQWLFggSSpevLj+/fdfq/AwJCREw4YN0+jRo7V9+3Y9++yzkswh09NPP61Vq1ZZXe+jjz6yPI+Pj9ebb76pGjVqaMOGDZbpqt26dVPFihXVt29fbdq0SYGBgZZjwsLC5O3tbdX23nvvKTk5WX/88YdKlSolSerZs6fq1q17j080ffdT351Swr4NGzZYwr4NGzaobdu2+uqrr7Rhwwa1atVKJpNJmzZtUr169eTo6JhubQcPHtTBgwct/zbo3r27nnnmGU2dOtUS9iUlJemdd95Rnjx5tH37dkuo2K1btzR3op4wYYKOHz+u6dOnq2fPnpb2SpUqqVevXpowYYI+/PBDy30tXLhQsbGxcnNz019//aXY2Fi1b99eK1euVGJioiUMTkpKUlBQUPofeAYxjRcAAOABjRs3Ti1btlTx4sVlMBjuGTgNHDhQtWvXlp+fn5ydnVW4cGE1adIkzaky93Lu3Dl17NhRvr6+cnV1VbVq1dL9zfnjZMGCBfr0009tXQYA4CEICwuTJA0ZMsRqGmnFihXVtGlT/f7774qMjLQ6Jjg42BL0Sea12AYMGGB1vvTkyZNHnTt3tmo7cOCA9u/fr7Zt28poNCoqKsryqFu3rtzd3bV27dq7ntNkMmnx4sWqV6+eChUqZHW8u7u7atasaXV8zpw5LUFfYmKioqOjFRUVpUaNGkmSZfqpJHl5eens2bP6/fff73r9devW6eLFi+rcubOuXLlidf3//e9/kpSq/hUrVuill16y1BEREaE///xTL7/8siXoS6k1ZXTZ/bqf+u707LPPysPDQxs2bJBkngJ76tQptWnTRuXLl9evv/4qSZZRfhkNxZo3b271bzKDwaAGDRrowoULVqM+//33X3Xu3NkS9Enmr0337t1TnTMsLEy+vr7q2rWrVXu3bt3k6+tr9b0aFBSkhIQES7C9YcMG+fn56Z133tH169e1Y8cOSdLGjRsttWUVwj4Aj6UePXrYugQAT6j7+fNn8ODBlt9G586d+559//rrL1WoUEHvv/++Zs6cqR49eujkyZNq0KCBFi1alKHrXb58WXXr1tXy5cvVo0cPffbZZ/Lw8FCrVq0yPNXJ1gj7AMB+nTp1Sg4ODmmuQVauXDlLn9ul1bds2bKSlGpdvLspUaJEqhFfhw8fliSNGDFCvr6+Vg8/Pz/FxMTo4sWLdz1nZGSkLl26pLVr16Y63tfX1xJ23W7GjBmqUKGCnJ2dlSdPHvn6+lpGtkVHR1v6jR07Vi4uLnruuedUqFAhtWvXTkuWLNHNmzdT1d+lS5dU1y5TpowkWV3/0KFDOnbsmNUuvCmfX0r/26V8xvcrs/WlxcnJSXXr1tXGjRslmafw5siRQ/Xq1VNQUJAlBEz5b0bDvuLFi6dq8/HxkSTL+nqZ/WxOnTql0qVLp9oQJEeOHCpVqpTV92pKnbfX36BBA1WpUkW5c+e2aq9YsaLy5MmTofvKCKbxAngsnT171tYlAHhC3c+fP//884/lH5Tly5dPc7HrFGmN4OvTp49KlCihcePGqUOHDule76OPPrKs6dO0aVNJ0ptvvqlatWqpX79+atmypTw8PDJ9HwAAZGdubm6p2kwmkyQpNDRUL7zwQprH3esXdSnHN2rUSO+//366NXzyyScKDQ1V48aN1adPHxUsWFA5c+bU2bNn1alTJyUnJ1v61qpVS//8849++eUXbdy4URs3btSSJUs0evRo/f7778qTJ4/l+h9//LEqVaqU5jULFixoeR4WFiYXF5e73mtG3D4a8053bm6R2fruJigoSD///LMOHjyoDRs2qHr16vLw8FBQUJCmTJmiM2fOaMOGDcqbN2+a02vTcq+pvil1P0z58uVT2bJltWHDBsXGxmrbtm2aOnWqHBwcVL9+ff3666/q3r279u/f/8AjLO9E2AcAAPCA0vrNcWZ4eHjIx8fH6rf997JkyRKVKFHCEvRJ5n/Q9u7dWx07dtRPP/2kVq1a3fMcgYGBCg8PtywQvWnTJplMJjVs2FCTJk2yuqfk5GSNGzdOv/zyi44dO6bLly8rf/78eumllzR69GjLb8lTfPnll5o2bZqOHTumhIQE5cuXT7Vq1dKnn34qX19f+fv76/Tp05Ksf6DYuHHjPdf0SU5O1vjx4zVnzhydP39eAQEBGjRo0D3vLzw83Ko9PDxcxYoV04gRI6x27jOZTJo1a5bmzp2rw4cPy8HBQdWrV9fw4cOzdFoNADwJihcvruTkZB0+fDhVMHPo0CFJUrFixazaU0aIpdX3Qf6eLVmypCTz35MpU2kzw9fXV97e3rp27VqGjl+0aJH8/f21Zs0aOTjcmkz5888/p9nfw8NDr776ql599VVJ5lGBISEhmjdvnvr372+p393dPUPXDwsLU3BwsNzd3S1tKZ/1kSNHUvVP+YxvlzLC7PLly6neO3XqlNV6hJmt725SRsH9+uuv2rBhg958801J5r/PHR0dtXbtWv32228KDg6+ZxiZWSnfWxn9bIoXL66jR49a1ttLkZiYqGPHjqX6Xg0KCtKMGTO0evVq3bx5Uw0bNpRkXi+yX79+WrNmjUwmU5au1ycxjRcAAMAmoqKiFBERoX379qlXr146fPiwZW2bezl//rzOnj2b5kLlKW0pa8CkJyYmRoGBgcqZM6fGjRunN998Uz/99JPq1KmjCxcuWPrdvHlTH3/8sUqWLKn+/ftrypQpCg4O1rx58xQYGGg13WjRokV644035OLiog8++ECffvqp2rdvr6NHjyoiIkKS9Omnn6pMmTLKmzevFi1aZHmkNYXrdn379tXgwYNVpEgRTZgwQc2bN1dISEiqhc3vR4cOHdSrVy8FBARowoQJGjVqlK5evarg4OAsOT8APElSdoEdN26c1Qiqv//+W6tWrVLdunXl6+trdcy6deu0e/duy2uTyaQJEyZYne9+VK5cWeXLl9esWbPSnA6cmJiYZqiVwsHBQe3atdP27dv1/fffp9kn5e83yRwqGgwGq/tOTEy02nQjRVRUVKq2lHULU2p6/vnn5efnp48++ijNOuPi4nT9+nVJ5t2Id+3aZTWFVzKPMKtZs6ZWrlypY8eOWdpv3rypyZMnpzpnyrp+69evt2r/+uuvde7cOau2zNR3L5UrV1bu3Lk1a9YsnT9/3hJ+eXl5qUqVKpo8ebKuXr2a5aFY1apV9dRTT2n+/PlWX49r165p1qxZqfo3b95ckZGRmjt3rlX7559/rsjIyFSffVBQkJKTkzVq1CgVKVLEsgFJUFCQjEajxo0bZ5mynJUY2QcAAPCI3bhxw+qHHFdXV3Xt2lWffPJJusem/CO7UKFCqd5LacvoVOSoqCi98847Vmvn1atXTy1atNDIkSMt/8h1dnbW+fPn5erqaunXvXt31a5dW2+99ZZWrFhhGUkYFhYmT09Pqx35JOmDDz6wPG/evLk+/fRTxcXFqX379hmq9ejRo5oyZYqCgoK0du1ay9ScFi1aqFq1ahk6x92EhYVp8eLFmj17ttWC2++8845q1qypd955R02bNs3SkQQAYM+Cg4MtO/FGR0erSZMmunDhgqZPny4XFxdNmTIl1TEVK1ZUUFCQQkJCVKBAAa1cuVLr169Xhw4dVKtWrfuuxWAwaNGiRQoKClKFChXUpUsXlStXTrGxsTpx4oSWL1+ucePG3XM33jFjxuiPP/5Qq1at1KpVK9WsWVM5c+bU6dOn9dNPP6lq1aqW3Xhfe+01DRo0SC+++KJatGiha9euacmSJVaj4VI8/fTTqlmzpmrUqKGCBQvq/PnzmjNnjnLmzKnXX39dknnE3JdffqnmzZurdOnS6tKliwICAnTlyhUdOXJEy5cvV1hYmAIDA7VixQo5OjpajfxP8cknnygwMFB16tRRSEiIvL29tXTp0lTTciWpdOnSatSokWbPni2TyaRKlSpp7969CgsLU0BAgBISEix9M1PfvaRMbV2xYoVcXFxUu3Zty3tBQUEaP3685XlWcnR01OTJk9WqVSs9++yzevvtt5UjRw598cUX8vHx0ZkzZ6z6DxgwQN99951CQkK0e/duVa5cWXv27NG8efNUunRpy6YyKQIDA+Xg4KDDhw9bfY+VLVtW+fPn16FDh1SzZk2rXaKzAmEfgMdSfHy81W/2AOBRiY+Pf+jXcHV11bp165SYmKjTp09r8eLFunHjhmJjY62m3aQlNjZWkjmAu5OLi4tVn4wYOHCg1etXXnlFpUuX1ooVKyxhn8FgsAR9SUlJun79uhITEy3/4N62bZsl7PPy8lJsbKx+/PFHNWvWLMsCspUrV8pkMqlv375Wa/BUqVJFwcHB6e70dy9fffWVPD091bx581SjLJo2baqRI0fq+PHjVjsYAkB6HBwc5OjoeM91wx53t09DvZeUUWy33+vixYtVpUoVLViwQKGhoXJ3d1f9+vX14Ycf6plnnkl1jmbNmql06dIaN26cjh49Kj8/Pw0bNkzDhg174PuoVKmS9uzZo3HjxmnVqlWaNWuWPD095e/vr06dOlmmVt6Nl5eX/vjjD02aNEnffvutVq5cqRw5cuipp55S3bp19dZbb1n69u/fXyaTSfPmzdM777yj/Pnzq3Xr1urcuXOqDR9CQ0P1008/acqUKbp69ar8/PxUs2ZNDRo0SBUrVrT0e/7557Vjxw599NFH+uqrrxQZGancuXOrRIkS6tu3r2Wq9IoVK1S3bl2rXWVT1KpVS+vWrdPAgQP10UcfycvLS6+99pp69OiR5tdj0aJF6t27txYvXqxFixbpueee08aNG9WjR49US2RktL70BAUFacWKFapdu7bVv3MaNmyo8ePHq1ChQipdunSGzpUZr732mr7//nt98MEHGjlypPz8/NSpUyfVq1dPjRs3tuqb8r0wYsQIrVq1SvPnz1e+fPnUvXt3jRo1KlVolzt3blWqVEm7d+9OFVQGBQVpyZIlWR5gSpJMAPAYKlWqlEkSDx48eDzyR6lSpR7oz69y5cqZihYtmqljEhMTTXXr1jWVL1/edPPmzXv23blzp0mSacCAAanei4mJMUkytWnTJt1r1q9f3+Tt7Z3me82bNzdJMt24ccPS9s0335ieffZZk5OTU6rPrHPnzpZ+x44dMxUvXtwkyeTj42Nq0aKF6fPPPzddu3Yt1fUz8zl169bNJMl04sSJVO+9++67JkmmU6dOpXv+U6dOmSSZRowYYWl7+umn0/2++O233zJcKwDExcWZDh06ZIqLi7N1KY/EihUrTJJMX3zxha1LeWJFRUWZHB0dTZMnT7Z1KXiIMvpnCyP7ADyWihYtqq+//trWZQB4At050u1RcHR0VLt27dSjRw/99ttv9xxhkLKjXVpTdVPa0pri+yCWL1+u1q1b69lnn9Vnn32mwoULy8XFRUlJSXrhhResdhYsWbKkDh06pF9//VW//vqrNm/erLffflsjRozQb7/9Zlmr5mG724jCtKYrmUwm+fr6asmSJXc9X/ny5bOsNgCwN3/99ZckpTlCDI/GpUuXNHTo0HQ36MKTgbAPwGPJxcXFsjgtADxKKVNhH7W4uDhJae98d7sCBQqoUKFClh+sbpfSltE17K5cuaILFy4of/78Vu2HDx+Wn5+fZUrxokWL5OLioo0bN8rNzc3SL62d6yTzFOP//e9/lg1HfvrpJ7300kv65JNPNH36dEl3D+Pu5vbd8u4MDO+2k+CuXbtStae1OHvJkiV17Ngx1axZUx4eHpmqCwCeZF9//bV27typKVOmqHLlyg+8hiruX6lSpax2mceTjd14AQAAHpHo6GirnWtTxMTEaN68eXJwcNCzzz5raY+NjdWRI0d0/vx5q/5t2rTRP//8o9WrV1vakpKSNHXqVHl7e2doV98Ud+4OGBYWpqNHj1rtfJiys+DtI/hMJpNGjx6d6nwZ2VlQkjw8PBQdHW21W+G9pKz/98knnygpKcnSvnv37lS7BUrmH3quX7+u7du3W9qSk5PT3HWwY8eOSk5O1qBBg9K89sWLFzNUIwA8aXr27Kn58+erRYsWVn8nAbAtRvYBAAA8oEWLFun06dOSpMjISN28edMShBUtWlQdOnSQJG3evFndunXTq6++qoCAAHl6eurUqVNatGiR/vvvP40YMUJFixa1nHf79u1q0KCB3njjDcsuf5J5qvF3332ntm3bqm/fvipUqJC+/vpr7dixQ3Pnzs3wjm558+bV8uXLde7cOQUGBur48eOaMWOG8uXLZzU64LXXXtOyZcsUFBSkjh07KiEhQStWrEhzI5DGjRvL29tbzz33nAoXLqwrV65owYIFMhgMls9BkmrWrKkffvhBvXr1Uu3ateXo6KigoCD5+fmlWWuZMmUUEhKiadOmKSgoSK+++qoiIiI0bdo0VaxYUXv27LHq37VrV02aNEmvvPKK3nnnHeXMmVPff/99mtN4X3vtNXXu3FnTpk3T7t271aRJE+XNm1f//fef/vzzT504cSLNEYEA8KSLjo62dQkA0kDYZ8eMRqPVb76B7OT20SNAthQRIT2CXV3xEBiNmT5k3rx52rx5s1Vbyu6B9evXt4RczzzzjJo2bapNmzZp8eLFio2NlY+Pj6pXr65Zs2bppZdeytD1fHx89Mcff2jgwIGaPn26bty4obJly2rp0qVq3bp1hut2d3fXhg0b9N5772ngwIEymUx64YUXNGnSJBUoUMDS7/XXX9f169c1efJk9evXT7lz51bTpk310UcfycfHx+qcPXr00LfffqvZs2fr8uXL8vHxUeXKlTV16lQ1aNDA0u+9997TyZMn9f3332vWrFlKTk7Wxo0b7xr2SdJnn32m/Pnza86cOerfv79Kliyp6dOn6/jx46nCvmLFimnFihUaPHiwhg0bJh8fH3Xo0EFdunRRmTJlUp37iy++UIMGDTRnzhyNGzdON2/e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MULVqlXTlClT9OmnnyomJkZ+fn4qX768pkyZkqnPFED2YzDdOXYZsAGj0agXX3zRagg7gOzp33//1cmTJ63W3AGAbCkiQurTR7pyxdaVAPetx4kTmrl1q+TnZ+tSHqpOnTpp4cKFqabmAsCTiJF9eCwkJSUpNjZWY8eOJSAAsjGj0XjX9WEAINuJjzcHfa6ukpubrasBMi82VjMDAhidCgBPGMI+PFacnZ3ve8cwAACAh8LNTfr/xfeBbCcuztYVAAAeMXbjBQAAAAAAAOwEYR8AAAAAIFtbsGAB6/UBwP9jGi8AAACAh6tJE6lpU/PzrVulhQttWw8AAHaMsA8AAABA2kqVkkJDb70ePFi6dMl29dypVCmpdm2peHHJy0syGMybqpw7J+3cKe3ZI7FpFADgCUPYBwAAACB7cXaW3nhDqlo19Xv58pkflStLH34o/fffo68PAAAbIuwDAAAAkL106yaVK3fr9a5d5sf16+YRfmXKSNWr264+AABsiLAPAAAAQOblzSs1biw9/bSUO7d5umxkpLRvn7R+vRQXd/dj/f2lV14x/zcpSTp0SFq2TIqOTv+61atbB33Ll0u//GLdZ8cOadUqKTHxfu4MAIBsjbAPAAAAQOaULCn16iW5uNxqc3KSChc2P2rUkCZONK+fdyd/f3Ng5+R0q616dalECWnsWPPovHupVevW84sXUwd9Ka5ezejdAABgVxxsXQAAAACAbCRHDunNN28FfadOSTNnSl98cWtknq+v1L592scXLCgdPChNnSp9/bUUH29uz5NHevnl9K9fpMit50eO3P99AABgpxjZBwAAACDjypY1T9uVpIQEacYM6do18+uYGKl3b/PzcuUkT8/UI/Wio6U5c27tkpsjh9Sypfl5lSrS4sWSyXT367u53XoeE/Pg9wMAgJ1hZB8AAACAjMuf/9bzyMhbQZ8knThx67mDg3lX3DuFh98K+u48xt1d8vC49/VjY637AwAAK4R9AAAAALKPM2duPS9TxnZ1AADwmCLsAwAAAJBxFy7ceu7rK+XKdet1QMCt58nJ5g007uTvbx71l9YxsbHSjRv3vv7Wrbee58snBQen3S9XLkb+AQCeSKzZBwAAACDjDh0yr7uXO7d5R90ePaSffzZv2NG8+a1+Bw+mvbNu7txS167S779LefNKTZrcem/37nuv1ydJO3dKtWub1wSUpNdeMweIu3aZg8JcuaRSpcw7An/8Mev6AQCeOIR9AAAAADIuMVGaN0/q1csc8BUvLvXsad0nMlL66qu0j4+IkCpUkCpXtm6PjpZWrMhYDbNnS2+8IVWtan5drZr5AQAACPsAAAAA3IWLi/XrmzfN/z1+XPrwQ6lxY/PuvN7e5hF5ERHSvn3SunVSXFza5zxxQlq0SGrWTCpSxLxZx6FD0rJlaY8ETIvRaN7Rt3RpqVYtqUQJycvL/N7Vq9LZs+aRfufP39dtAwCQnRH2AQAAAEhbxYq3nsfFWa+nFxUlLVmSsfP88IP5cbuJEx+8vqNHzQ8AAGBB2AcAAADAWvPm5um5pUvfatu/P/319AAAgM0R9gEAAACwVr++5OZ26/WlS9Ly5barBwAAZBhhHwAAAABrJpN5XbzISOnAAfMafOxqCwBAtkDYBwAAAMBa3762rgAAANwnwj48VoxGo61LAPAA+H8YgF2KjbV1BcD94XsXAJ5IhH14LDg6Omrbtm0aPHiwrUsB8IDc3Nzk6Oho6zIA4MG5uEje3tKVK+adaIHsyNvb/L0MAHhiGEwmttTC48FoNCopKcnWZQB4QI6OjnJ2drZ1GQCQNSIipPh4W1cB3D8XF8nPz9ZVAAAeIcI+AAAAAAAAwE442LoAAAAAAAAAAFmDsA8AAAAAAACwE4R9AAAAAAAAgJ0g7AMAAAAAAADsBGEfAAAAAAAAYCcI+wAAAAAAAAA7QdgHAAAAAAAA2AnCPgAAAAAAAMBOEPYBAAC7ZTAY1KlTJ1uXAQAAADwyhH0AADwmbty4obFjx+qZZ56Rp6en8ubNq9q1a2vBggUymUwZPs+XX36pypUry9XVVfny5dNbb72lyMjIh1h51gkPD9fIkSO1d+9eW5cCAAAAZEuEfQAeSz169LB1CcADyez3cHJysl588UUNGzZM1atX16RJkzR06FAlJSWpc+fOGjhwYIbOM3nyZL3xxhvy8vLSZ599pm7dumnp0qUKDAxUTEzM/dzKIxUeHq5Ro0YR9gEAAAD3KYetCwCAtJw9e9bWJQAPJLPfw9u2bdPvv/+ud999V5MnT7a09+zZU2XKlNHs2bM1fvz4e54jKipKQ4cOVfXq1fXrr7/K0dFRklS9enU1a9ZMn332mQYPHpz5mwEAAACQbTCyDwCAx8C1a9ckSQULFrRqz5kzp/LmzSt3d/d0z7FixQrFxsaqd+/elqBPkpo2barixYvrq6++SvccmzZtksFg0IIFCzR16lSVKlVKLi4uKlWqlKZOnZqq//bt29WpUyeVKlVKbm5u8vT0VJ06dRQWFpaq77///qsuXbqoaNGicnZ2lp+fn2rXrq2FCxdKkhYsWKAGDRpIkjp37iyDwSCDwaDAwMB06z548KBeeOEFubu7K0+ePGrXrp0iIiLueX936tSpkwwGQ6r248ePq0OHDipQoIBy5swpf39/9e/fP1uMlAQAAMCTh5F9AAA8Bp599ll5e3trwoQJ8vf3V40aNRQbG6uFCxdq165dmjVrVrrn2LFjhySpVq1aqd6rWbOmvv76a924cUMeHh7pnmvq1Km6cOGCunXrJk9PT3399dfq06ePLl++rBEjRlj6hYWF6ciRI2rVqpWKFi2qS5cuaeHChWrRooUWL16stm3bSpISExMVHByss2fPqmfPnipVqpSuXr2q/fv3a8uWLXrjjTdUr149DR48WGPHjlXXrl313HPPSZLy5ct3z1pPnTql5557TkajUb169VLhwoW1evVqvfDCC+neZ3p27dqloKAgeXt7q1u3bipUqJD27dunKVOm6I8//tDmzZvl5OT0wNcBAAAAsgphHwAAj4HcuXNr1apVeuutt9SqVStLu6enp5YtW6bmzZune45z585JkgoVKpTqvUKFCslkMuncuXMqVapUuuc6duyYDh8+rKeeekqSFBISorp162r06NF68803Le1Dhw7VuHHjrI7t06ePKleurNGjR1vCvkOHDuno0aMaP368BgwYkOY1ixcvruDgYI0dO1a1atVS+/bt061TkoYMGaLo6Ght2LDBMjIwJCRELVq00J49ezJ0jrvp0qWLChQooB07dsjT09PS3rBhQ0ugyW6/AAAAeJwQ9gF4LMXHx2v37t22LgO4b/Hx8Zk+xsPDQ+XLl1ezZs1Uu3ZtXb58WdOnT1fbtm21cuVKBQcH3/P42NhYSZKzs3Oq91xcXKz6pKddu3aWQE8yTyd+77331LZtW61evdqyAcnt04tjY2MVFxcnk8mkoKAgzZo1S9euXVOuXLnk5eUlSdq4caM6deokPz+/DNWRnuTkZK1evVrVqlWzBH2SZDAYNGDAAK1YseK+z33gwAHt379fo0aNktFolNFotLxXt25dubu7a+3a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TmLmAADBjbCvFy0tLQGDPunfu/u6ziHsC0437h5auHCh0tPTtXLlSv32t7/VypUrLaoM/dHS0iJJAWfx+jlE8Nm4cWO3zx6PRy+++KIyMjL005/+VJ9//rlFlUGSli1bpqNHj+r111/XxIkTJTFvoSJQ77rWb/SDH/xAkydPVn5+vp599ln+o2uAeTwepaamqqmpSRUVFfrwww9VV1fnP87MBa9b9U5i5gAAwY3beHvhdDrV2toa8JjP5/Ofg9Dxi1/8QhEREfroo4+sLgV91DVjgWaROQw948eP13PPPafTp0/r1KlTVpczaL322mvavn27Fi9erBUrVvjXmbfg11vvepOQkKCf/OQnunz5skpLSwegQlxv5MiRmj17tjwej9asWaPf//73euWVV7RhwwZJzFwwu1XvesPMAQCCBWFfL5KSklRXVxfwH2Dnz5/XsGHD2NUXYsLDw/19RWhISkqSFPg2pq61QLc/IXiNHj1akphDixQUFOg3v/mNvv/97+utt97qdox5C243693NMHPBIz09Xffff7/efPNNScxcKLmxdzfDzAEAggFhXy+mTZumzs5O/f3vf++27vP5VFlZqczMTIsqwzfl8/lUU1MT8IHmCE7Tpk2TJB09erTHsWPHjsnhcGjq1KkDXRZuQ9ftu8zhwCsoKNCaNWuUl5enXbt2yeFwdDt+3333KTIystd5k8R3n0Vu1bubYeaCy9WrV/Xll19KYuZCzfW9uxlmDgAQDAj7evH888/L4XBo69at3dZ37typlpYWzZs3z5rCcEv19fUB11977TW1t7frqaeeGuCK8E2NGzdOmZmZ2rdvn/9B5tK/H2q+b98+5eTkaPjw4RZWiECam5v9t6Bdr6KiQvv27VNaWpruvfdeCyobvNauXas1a9ZowYIF2r17t4YM6fn1Hxsbq6eeekqHDx/Wp59+6l9vamrSrl27NH78+B5vqMed15fetbe3B3zb/Llz5/S73/1OCQkJysrKGohyIenixYsB10tKSlRVVeV/0y4zF3z62jtmDgAQ7BzGGGN1EcFq6dKl2r59u3Jzc/XEE0+ourpahYWFeuihh3To0KGA/+CG9fLz83Xs2DHNmjVLycnJampq0oEDB1RSUqIZM2aopKRE0dHRVpc5qL399ts6e/asJGnbtm1qa2vT8uXLJUkpKSlasGCB/9zS0lLNmjVLI0eO9L8Zb9u2bbp06ZKOHDmiKVOmDPwFDFJ97VtlZaW+973vyePxaPz48f638XYFFR9//LFmzpxp2XUMNjt27NCSJUuUnJysdevW9fjuuueeezRnzhxJ0unTpzV9+nSFh4crPz9fcXFx2rlzp06cOKGPPvpIjz32mBWXMGj1tXeXL1/WmDFj5PF4lJaW5n8z6K5du9TU1KR33nlHXq/XoqsYfHJzc1VbW6ucnBylpKTI5/OpvLxc7777rpxOpw4fPqyMjAxJzFyw6WvvmDkAQNAz6FV7e7vZvHmzmTBhgomIiDBJSUkmPz/fNDY2Wl0abuJPf/qTefTRR01SUpKJjIw0TqfTTJkyxaxfv95cvXrV6vJgjHn44YeNpIA/Dz/8cI/zS0tLTU5OjomJiTGxsbHm0UcfNeXl5QNf+CDX177V1taa+fPnm4kTJxqXy2XCwsLMqFGjzMKFC011dbV1FzBI5eXl9dq3QDP32Wefmblz5xq3222io6PNQw89ZP76179aU/wg19fe+Xw+88Mf/tBMnjzZ3HXXXSYsLMwMHz7cPPPMM+b48ePWXsQg9N5775knn3zSjBw50kRGRpqoqCgzceJEs2TJEnP27Nke5zNzwaOvvWPmAADBjp19AAAAAAAAgE1wHyoAAAAAAABgE4R9AAAAAAAAgE0Q9gEAAAAAAAA2QdgHAAAAAAAA2ARhHwAAAAAAAGAThH0AAAAAAACATRD2AQAAAAAAADZB2AcAAAAAAADYBGEfAAAAAAAAYBOEfQAA3CGLFi2Sw+GwugwAAAAAg0iY1QUAABAq+hPcnTlz5g5WAgAAAACBOYwxxuoiAAAIBXv27On2+W9/+5uKioq0ePFiZWdndzuWm5uriIgIdXR0KCoqaiDLBAAAADCIsbMPAIA+mj9/frfP7e3tKioq0oMPPtjjWJfw8PCBKA0AAAAAJPHMPgAA7phAz+zrWquvr9eiRYs0bNgwuVwueTweXbx4UZJUVFSktLQ0RUVFKTU1VR988EHA3//ee+9p5syZcrlccjqdmjFjhvbv33/HrwsAAABA8CLsAwDAAo8//riuXLmitWvX6qWXXtKf//xn5ebmatOmTdq0aZPy8vK0ceNGtbW16dlnn+3xDMBVq1bphRdekMvl0rp167Rx40Y5nU55vV7t2LHDoqsCAAAAYDVu4wUAwALTp0/vEcpt2bJF58+fV1VVleLi4iRJOTk5mjJlioqKirRhwwZJ0j/+8Q+tX79eK1as0Ouvv+7/+z/72c/k8Xi0YsUKLVy4UC6Xa+AuCAAAAEBQYGcfAAAWWLZsWbfPXS/4WLhwoT/ok6T09HTFxcXp888/96/t3btXDodDeXl5qqur6/Yzd+5cNTY26ujRowNyHQAAAACCCzv7AACwwNixY7t9jo+PlySNGTOmx7nx8fGqr6/3f66urpYxRqmpqb3+/kuXLn1LlQIAAAAIJYR9AABYYOjQof1aN8Z0+7PD4VBxcXGv50+aNOn2iwQAAAAQcgj7AAAIMePHj9df/vIXJScnKy0tzepyAAAAAAQRntkHAECIWbBggSTp1VdfVUdHR4/j3MILAAAADF7s7AMAIMRMmzZNBQUFKigoUEZGhrxer5KSklRbW6vy8nIdOHBAbW1tVpcJAAAAwAKEfQAAhKDVq1crMzNThYWF2rp1q5qbm5WYmKjJkyersLDQ6vIAAAAAWMRhrn/iNwAAAAAAAICQxTP7AAAAAAAAAJsg7AMAAAAAAABsgrAPAAAAAAAAsAnCPgAAAAAAAMAmCPsAAAAAAAAAmyDsAwAAAAAAAGyCsA8AAAAAAACwCcI+AAAAAAAAwCYI+wAAAAAAAACbIOwDAAAAAAAAbIKwDwAAAAAAALAJwj4AAAAAAADAJv4P1xmBbSdkT84AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "spt = schedule_jobs(jobs, jobs.sort_values(by=\"duration\").index)\n", "gantt(jobs, spt, \"Shortest Processing Time\")" ] }, { "cell_type": "markdown", "id": "372cbc7d-bf20-4171-a602-eef2f727dbdd", "metadata": {}, "source": [ "## Optimal scheduling using disjunctive programming\n", "\n", "The modeling starts by defining the problem data.\n", "\n", "
\n", "\n", "| Symbol | Description \n", "|:---- | :--- \n", "| $\\text{release}_j$ | when job $j$ is available\n", "| $\\text{duration}_j$ | how long job $j$ takes\n", "| $\\text{due}_j$ | when job $j$ is due \n", "\n", "
\n", "\n", "The essential decision variables are the times at which each job starts processing, but it is convenient to add auxiliary variables defining the times at which each job finishes and the amount by which each job is past due.\n", "\n", "
\n", "\n", "| Symbol | Description\n", "|:---- | :--- \n", "| $\\text{start}_j$ | when job $j$ starts\n", "| $\\text{finish}_j$ | when job $j$ finishes\n", "| $\\text{past}_j$ | how long job $j$ is past due\n", "\n", "
\n", "\n", "Depending on application and circumstances, various objectives can be considered. Suitable objectives include the total number of late jobs, the longest past due interval, or the sum of all past due intervals. We consider an optimization problem that minimizes the sum of past due intervals, that is\n", "\n", "$$\n", "\\min \\sum_j \\text{past}_j\n", "$$\n", "\n", "Constraints describe the required logical relationships among the decision variables. For example, a job cannot start until it is released for processing\n", "\n", "$$\n", "\\begin{align*}\n", "\\text{start}_{j} & \\geq \\text{release}_{j}\\\\\n", "\\end{align*}\n", "$$\n", "\n", "Once started, machine processing continues until the job is finished. The finish time for each job is compared to the due time, and any past due interval is stored the $\\text{past}_j$ decision variable. \n", "\n", "$$\n", "\\begin{align*}\n", "\\text{finish}_j & = \\text{start}_j + \\text{duration}_j \\\\\n", "\\text{past}_{j} & \\geq \\text{finish}_j - \\text{due}_{j} \\\\\n", "\\text{past}_{j} & \\geq 0\n", "\\end{align*}\n", "$$\n", "\n", "The final set of constraints require that no pair of jobs be operating on the same machine at the same time. For this purpose, we consider each unique pair ($i$, $j$) where the constraint $i < j$ to imposed to avoid considering the same pair twice. Then for any unique pair $i$ and $j$, either $i$ finishes before $j$ starts, or $j$ finishes before $i$ starts. This is expressed as the family of disjunctions \n", "\n", "$$\n", "\\begin{align*}\n", "\\begin{bmatrix}\n", "\\text{finish}_i \\leq \\text{start}_j\n", "\\end{bmatrix}\n", "& \\veebar\n", "\\begin{bmatrix}\n", "\\text{finish}_j \\leq \\text{start}_i\n", "\\end{bmatrix}\n", "& \\forall i < j\n", "\\end{align*}\n", "$$\n", "\n", "This model and constraints can be directly translated to Pyomo using the Disjuction component as follows." ] }, { "cell_type": "code", "execution_count": 9, "id": "ef23f8cc-e5ef-406b-af8b-ddbdbac8b2f9", "metadata": {}, "outputs": [ { "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", "
startfinishpast
A2.07.00.0
B14.020.00.0
C22.030.015.0
D7.011.01.0
E0.02.00.0
F11.014.00.0
G20.022.00.0
\n", "
" ], "text/plain": [ " start finish past\n", "A 2.0 7.0 0.0\n", "B 14.0 20.0 0.0\n", "C 22.0 30.0 15.0\n", "D 7.0 11.0 1.0\n", "E 0.0 2.0 0.0\n", "F 11.0 14.0 0.0\n", "G 20.0 22.0 0.0" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Using the \"Minimize total past due\" strategy, the total past due is 16.0\n" ] }, { "data": { "image/png": "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Xk233XabQkND9eKLLxZY54ULF5SamiopdzXi7du3O03hlXJHmHXo0EErV67U3r17He2ZmZmaPXt2vnPmPddv/fr1Tu0ffvihjh075tRWnPoupVWrVqpYsaLmz5+v48ePO8KvwMBAtW7dWrNnz1ZKSkqJh2Jt2rRRjRo1tGjRIqc/j/Pnz2v+/Pn5+sfExCgpKUkLFy50an/77beVlJSU772PioqSzWbT1KlTVatWLccCJFFRUbJarZo+fbpjynJJYmQfAAAAAAAoMdHR0Y6VeM+ePau77rpLJ06c0Jtvvimz2azXX3893zEtWrRQVFSURo4cqWrVqmnlypVav369HnzwQXXs2PGKazEYDFq6dKmioqLUvHlzDR48WE2aNJHFYtH+/fv1+eefa/r06ZdcjfeFF17Q5s2b1bt3b/Xu3VsdOnSQt7e3/vzzT3311Vdq06aNYzXe+++/X08//bTuuOMO9ezZU+fPn9cHH3zgNBouzw033KAOHTqoffv2ql69uo4fP6633npL3t7e+ve//y0pd8Tce++9p5iYGDVs2FCDBw9WRESEzp07p99//12ff/65YmNjFRkZqRUrVshoNOruu+/Od61XXnlFkZGRuummmzRy5EgFBQVp+fLl+ablSlLDhg3VvXt3LViwQHa7XS1btlRiYqJiY2MVERGhrKwsR9/i1HcpeVNbV6xYIbPZrE6dOjn2RUVFacaMGY7tkmQ0GjV79mz17t1bN954o/773//K09NT7777rkJCQnT48GGn/uPHj9cnn3yikSNH6ueff1arVq2UkJCgd955Rw0bNnQsKpMnMjJSHh4e2r17t9NnrHHjxqpatap27dqlDh06OK0SXRII+wAAAAAAKGEeHh4yGo2XfG5Yaff3aaiXkjeK7e/3umzZMrVu3VqLFy/W2LFj5efnp5tvvlnPPfecmjVrlu8c99xzjxo2bKjp06drz549Cg0N1TPPPKNnnnnmqu+jZcuWSkhI0PTp07Vq1SrNnz9fAQEBCg8P18CBAx1TKwsTGBiozZs36+WXX9bHH3+slStXytPTUzVq1FDnzp31n//8x9F33Lhxstvteuedd/TYY4+patWq6tOnjwYNGpRvwYexY8fqq6++0uuvv66UlBSFhoaqQ4cOevrpp9WiRQtHv9tuu03x8fF68cUX9f777yspKUkVK1ZUvXr1NGbM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uDZu3Kg///zTaRrzt99+e8mabTabpk+frjp16shsNqtp06ZatmzZJe/vnw4dOiSDwaApU6Y4tdvtds2bN09t2rSRr6+v/P391a1bN23YsOGSNQEouwj7AAAAAAAlJjAwUIGBgfLx8VF0dLR++umnIh13/PhxHT16VB06dMi3L68tPj6+SOdKT09XZGSkvL29NX36dD388MP66quvdNNNN+nEiROOfpmZmXrppZdUv359jRs3Tq+//rqio6P1zjvvKDIyUpmZmY6+S5cu1UMPPSSz2az//e9/evXVV9W/f3/t2bNHp06dkiS9+uqratSokSpVqqSlS5c6fm644YZL1jtmzBhNmDBBtWrV0syZMxUTE6ORI0dq1apVRbrfS3nwwQf1yCOPKCIiQjNnztTUqVOVkpKi6OjoEjk/gNKHabwAAAAAgKtWtWpVjR49Wm3atJGfn5927NihV199VV26dNFXX32l7t27X/L4Y8eOSZLCwsLy7ctrK+q05NOnT+uxxx5zWiija9eu6tmzp6ZMmaL58+dLkkwmk44fPy4fHx9Hv2HDhqlTp076z3/+oxUrVqh3796SpNjYWAUEBCguLk6enhd/lf7f//7n2I6JidGrr76qCxcuFHk68549e/T6668rKipKa9euldFolCT17NlTbdu2LdI5ChMbG6tly5ZpwYIFGjJkiKP9scceU4cOHfTYY4/p7rvvlsFguKrrAChdCPsAAHCxjIwM/fzzz64uAwDghjIyMq7btV588UWn1zExMerbt69atmyp4cOHa9++fZc83mKxSMoN4P7JbDY79SmKp556yun1vffeq4YNG2rFihWOsM9gMDiCvpycHKWmpio7O1tRUVGSpJ9++skR9gUGBspisejLL7/UPffcU2IB2cqVK2W32zVmzBhH0CdJrVu3VnR0tNauXXvF537//fcVEBCgmJgYnT592mnf3XffrSlTpmjfvn1q0KDBFV8DQOlD2AcAgIv9+eefatOmjavLAAC4IVeHOPXr11fv3r21ePFi7d2795L1+Pr6SpKsVmu+fXmhZV6fywkKClLVqlXztd9www1asWKF0tPT5efnJ0n6+OOP9fLLLyshIUFZWVlO/c+ePevYnjBhgr777jvFxMQoJCREN998s+644w716dNHAQEBRaqrIHnPEWzUqFG+fY0bN76qsG/37t1KTU1VlSpVCu1z8uRJl39OAJQswj4AAFysdu3a+vDDD11dBgDADf1zdJsr5C0mcfr06UuGStWrV5dU8FTdvLaCpvhejc8//1x9+vTRjTfeqNdee001a9aU2WxWTk6Obr/9dqdFRurXr69du3bpm2++0TfffKONGzfqv//9ryZPnqzvvvtO9erVK9HaClPYiMLs7Ox8bXa7XZUrV9YHH3xQ6PmaNm1aYrUBKB0I+wAAcDGz2azWrVu7ugwAgBvKm/7qSnnTdy81ukySqlWrprCwMP3444/59uW1FfUZdufOndOJEyfyje7bvXu3QkNDHaP6li5dKrPZrA0bNjiNGvz9998LPK/JZNK//vUv/etf/5IkffXVV7rzzjv1yiuv6M0335RUeBhXmLwVj3///fd8geGuXbvy9Q8ODtb27dvztf9zpWEpN6Dcu3evOnToIH9//2LVBaDsYjVeAAAAAMBVSU9PL/D5gAkJCfrkk090ww03OAVZFotFv//+u44fP+7U/4EHHtAff/yh1atXO9pycnI0Z84cBQUFOUK2ovjnMwRjY2O1Z88excTEONqMRqMMBoPTCD673a7nn38+3/n++cw7SY5/rDtz5oyjzd/fX2fPnpXdbi9SnXnP/3vllVeUk5PjaP/555+1fv36fP0bNGig1NRUbd261dFms9k0e/bsfH0HDBggm82mp59+usBrnzx5skg1AihbGNkHAAAAACjQ0qVL9eeff0qSkpKSlJmZ6QjCateurQcffFBS7ui9O+64QzExMapfv75jNd53331XRqNRb731ltN5t27dqm7duumhhx7S4sWLHe1PPfWUPvnkE/Xt21djxoxRWFiYPvzwQ8XHx2vhwoVFfjZepUqV9Pnnn+vYsWOKjIzUvn37NHfuXFWpUkVTpkxx9Lv//vv12WefKSoqSgMGDFBWVpZWrFhR4EIgt956q4KCgtSlSxfVrFlT586d0+LFi2UwGBzvgyR16NBBX3zxhR555BF16tRJRqNRUVFRCg0NLbDWRo0aaeTIkXrjjTcUFRWl++67T6dOndIbb7yhFi1aKCEhwan/kCFD9PLLL+vee+/VY489Jm9vb3366acFTuO9//77NWjQIL3xxhv6+eefddddd6lSpUo6cuSIfvjhB+3fv7/AEYEAyjbCPrgtq9Xq9C9jAFBa/X00AVCunDolXceVQoFyqYDFLorjnXfe0caNG53annnmGUnSzTff7Ai5qlatqu7du2vDhg1atmyZLly4oGrVqqlPnz56+umnC1x8oiAhISHavHmznnrqKb355ptKS0tT48aNtXz5cvXp06fIdfv5+SkuLk6jR4/WU089Jbvdrttvv10vv/yyqlWr5uj373//W6mpqZo9e7aeeOIJVaxYUXfffbdefPFFhYSEOJ1z+PDh+vjjj7VgwQKdOXNGISEhatWqlebMmaNu3bo5+o0ePVoHDhzQp59+qvnz58tms2nDhg2Fhn2S9Nprr6lq1ap66623NG7cONWvX19vvvmm9u3bly/sq1OnjlasWKEJEybomWeeUUhIiB588EENHjy4wPf53XffVbdu3fTWW29p+vTpyszMVNWqVdW6dWtNnz69yO8pgLLDYC/q2GKgDLFarbrjjjsK/Bc5ACht/vrrLx04cEAmk8nVpQDXz6lT0qOPSufOuboSwK0N379f87ZskS4RNLmbyMhIHTp0SIcOHXJ1KQDgEozsg1vKycmRxWLRtGnT+OUZQKlmtVo1YcIERiKj/MnIyA36fHykvz0UH0AJslg0LyKCEbQAUM4Q9sGtmUymUrECGQAAKISvr8QKkcC1c+GCqysAAFxnrMYLAAAAAAAAuAlG9gEAAAAA3Ma3337r6hIAwKUI+wAAAABcdNdd0t13525v2SItWeLaegAAQLEQ9gEAAADuoEEDaezYi68nTJCSk11Xzz81aCB16iTVrSsFBkoGQ+4iLceOSdu2SQkJEosVAQBw1Qj7AAAAAFw7JpP00ENSmzb591WpkvvTqpX03HPSkSPXvz4AANwMYR8AAACAa2foUKlJk4uvt2/P/UlNzR3h16iR1K6d6+oDAMDNEPYBAAAA7q5SJenWW6UbbpAqVsydLpuUJO3YIa1fL124UPix4eHSvffm/m9OjrRrl/TZZ9LZs5e/brt2zkHf559LX3/t3Cc+Xlq1SsrOvpI7AwAA/0DYBwAAALiz+vWlRx6RzOaLbV5eUs2auT/t20uzZuU+P++fwsNzAzsvr4tt7dpJ9epJ06bljs67lI4dL26fPJk/6MuTklLUuwEAAJfh4eoCAAAAAFwjnp7Sww9fDPoOHpTmzZPefffiyLzKlaX+/Qs+vnp1aedOac4c6cMPpYyM3PbgYKlHj8tfv1ati9u//37l9wEAAIqMkX0AAACAu2rcOHfariRlZUlz50rnz+e+Tk+XRo3K3W7SRAoIyD9S7+xZ6a23Lq6S6+kp9eqVu926tbRsmWS3F359X9+L2+npV38/AADgshjZBwAAALirqlUvbiclXQz6JGn//ovbHh65q+L+06FDF4O+fx7j5yf5+1/6+haLc38AAHDNEfYBAAAAuDYOH7643aiR6+oAAKAcIewDAAAA3NWJExe3K1eWKlS4+Doi4uK2zZa7gMY/hYfnjvor6BiLRUpLu/T1t2y5uF2lihQdXXC/ChUY+QcAQAnhmX0AAACAu9q1K/e5exUr5q6oO3y49H//l7tgR0zMxX47dxa8sm7FitKQIdL330uVKkl33XVx388/X/p5fZK0bZvUqVPuMwEl6f77cwPE7dtzg8IKFaQGDXJXBH7pJZ7rBwBACSDsAwAAANxVdrb0zjvSI4/kBnx160ojRjj3SUqS3n+/4ONPnZKaN5datXJuP3tWWrGiaDUsWCA99JDUpk3u67Ztc38AAMA1QdgHAAAAuAOz2fl1Zmbu/+7bJz33nHTrrbmr8wYF5Y7IO3VK2rFDWrdOunCh4HPu3y8tXSrdc49Uq1buYh27dkmffVbwSMCCWK25K/o2bCh17CjVqycFBubuS0mRjh7NHel3/PgV3TYAAHBG2AcAAAC4gxYtLm5fuOD8PL3Tp6UPPijaeb74Ivfn72bNuvr69uzJ/QEAANcUYR8AAABQlsXE5E7PbdjwYtsvv1z+eXoAAMAtEfYBAAAAZdnNN0u+vhdfJydLn3/uunoAAIBLEfYBAAAAZZndnvtcvKQk6ddfc5/Bx6q2AACUW4R9AAAAQFk2ZoyrKwAAAKUIYR/cmtVqdXUJAHBJfE+h3LNYXF0B4L747wsAyiXCPrglo9Gon376SRMmTHB1KQBwWb6+vjIaja4uA7i+zGYpKEg6dy535VgA10ZQUO5/bwCAcsNgt7NMF9yT1WpVTk6Oq8sAgMsyGo0ymUyuLgO4/k6dkjIyXF0F4N7MZik01NVVAACuI8I+AAAAAAAAwE14uLoAAAAAAAAAACWDsA8AAAAAAABwE4R9AAAAAAAAgJsg7AMAAAAAAADcBGEfAAAAAAAA4CYI+wAAAAAAAAA3QdgHAAAAAAAAuAnCPgAAAAAAAMBNEPYBAHCNGQwGDRw40NVlAAAAACgHCPsAAE6mT5+uXr16qW7dujIYDAoPD7+i87z33ntq1aqVfHx8VKVKFf3nP/9RUlJSyRZ7jRw6dEhTpkxRYmKiq0sBAAAAgGIh7AOA62D48OFl5loTJkxQXFyc6tWrp4oVK17ROWbPnq2HHnpIgYGBeu211zR06FAtX75ckZGRSk9Pv6r6rodDhw5p6tSphH0AAAAAyhxPVxcAAOXB0aNHy8y1/vjjD9WtW1eS1LRpU6WlpRXr+NOnT2vSpElq166dvvnmGxmNRklSu3btdM899+i1117ThAkTrqpGAAAAAEDBGNkHAHCSF/RdqRUrVshisWjUqFGOoE+S7r77btWtW1fvv//+Zc/x7bffymAwaPHixZozZ44aNGggs9msBg0aaM6cOfn6b926VQMHDlSDBg3k6+urgIAA3XTTTYqNjc3X96+//tLgwYNVu3ZtmUwmhYaGqlOnTlqyZIkkafHixerWrZskadCgQTIYDDIYDIqMjLxs3Tt37tTtt98uPz8/BQcHq1+/fjp16tQl7++fBg4cKIPBkK993759evDBB1WtWjV5e3srPDxc48aNKxMjJQEAAABcP4zsAwCUqPj4eElSx44d8+3r0KGDPvzwQ6Wlpcnf3/+y55ozZ45OnDihoUOHKiAgQB9++KEeffRRnTlzRpMnT3b0i42N1e+//67evXurdu3aSk5O1pIlS9SzZ08tW7ZMffv2lSRlZ2crOjpaR48e1YgRI9SgQQOlpKTol19+0aZNm/TQQw+pa9eumjBhgqZNm6YhQ4aoS5cukqQqVapcstaDBw+qS5cuslqteuSRR1SzZk2tXr1at99+e5Hfu8Js375dUVFRCgoK0tChQxUWFqYdO3bo9ddf1+bNm7Vx40Z5eXld9XUAAAAAlH2EfQCAEnXs2DFJUlhYWL59YWFhstvtOnbsmBo0aHDZc+3du1e7d+9WjRo1JEkjR45U586d9fzzz+vhhx92tE+aNEnTp093OvbRRx9Vq1at9PzzzzvCvl27dmnPnj2aMWOGxo8fX+A169atq+joaE2bNk0dO3ZU//79i3TfEydO1NmzZxUXF+cYGThy5Ej17NlTCQkJRTpHYQYPHqxq1aopPj5eAQEBjvZbbrnFEWiy2i8AAAAAibAPAK6LjIwM/fzzz9ftWq5ksVgkSSaTKd8+s9ns1Ody+vXr5wj0JMnb21ujR49W3759tXr1asdiJH5+fk7Xv3Dhgux2u6KiojR//nydP39eFSpUUGBgoCRpw4YNGjhwoEJDQ6/sJv/BZrNp9erVatu2rSPokySDwaDx48drxYoVV3zuX3/9Vb/88oumTp0qq9Uqq9Xq2Ne5c2f5+flp7dq1hH0AAAAAJBH2AcB18eeff6pNmzbX5VpFGTF3Lfn6+kqSrFarfHx8nPblBZF5fS7nhhtuyNfWuHFjSdKBAwccbadOndKkSZO0cuXKAp+Rd+7cOVWoUEG1a9fWxIkTNX36dFWrVk0tW7bULbfcol69eqldu3ZFu8ECnDp1SmlpaWrUqFGh9V6p3bt3S5ImT57sNHX5706ePHlV1wAAAADgPgj7AOA6qF27tj788MPrcq2nnnrqulynMNWrV5eUuypwRESE076jR4/KYDA4+pQEu92uW2+9Vbt379Zjjz2mtm3bKjAwUEajUYsWLdIHH3wgm83m6P/8889r8ODB+vLLL7Vp0yYtXLhQL730ksaPH68ZM2aUWF2XUtACHHmys7OdXtvtdknS2LFjC33+X8WKFUuuOAAAAABlWomFfadPn9bZs2dVv379kjolALgNs9ms1q1bX7druVK7du301ltv6YcffsgX9v34449q2LBhkRbnkC6Oavu7Xbt2Sbq4avAvv/yiHTt26Nlnn9XUqVOd+i5cuLDA89atW1ejRo3SqFGjlJGRodtuu00zZ87U2LFjFRoaeskwriCVK1eWv7+/fv/990Lr/bvg4GBJ0pkzZ/Lt+/uIRUmOv1eNRqO6d+9erLoAAAAAlD8exT3gvffe05AhQ5zann76aVWpUkWNGjXSTTfdpNTU1BIrEABQeh0+fFi///67srKyHG09evSQj4+P3njjDeXk5DjaV69erQMHDqhfv35FPv+yZct05MgRx+vMzEzNnj1bRqNRd911l6TcEEy6OAIuz2+//abY2FintpSUFKdapdxwNG+68NmzZyXJEUYWFMYVJK+ebdu2acOGDY52u92umTNn5utfp04deXp6av369U7tW7Zs0Y8//ujU1qpVKzVt2lTz58/PFwRKuSMBi1onAAAAAPdX7JF9CxYsUMOGDR2vt23bphkzZqhr165q1KiR3nnnHb3yyiuFPlcIAFC6LV26VH/++ackKSkpSZmZmXr++ecl5U5HfvDBBx19BwwYoI0bN+rgwYMKDw+XlDvK7bnnntMTTzyh7t2764EHHtDRo0f18ssvq1GjRnr88ceLXEuDBg3Uvn17DRs2TAEBAfrggw8UHx+vZ555RjVr1pSU+1y/Jk2aaObMmbJYLGrYsKH27t2rBQsWqFmzZtq+fbvjfBs2bNCQIUN03333OUYYbt++XQsXLlT79u0df781btxYAQEBmjt3rnx9fRUUFKTQ0FBFRUUVWuvzzz+vNWvW6K677tKoUaNUo0YNrV69WklJSfn6+vv7a+DAgVq4cKEeeOABRUZGat++fVq0aJGaN2+uHTt2OPoaDAYtXbpUUVFRat68uQYPHqwmTZrIYrFo//79+vzzzzV9+nQW6AAAAAAg6QrCvv3796tXr16O15988omCg4O1du1aeXt7y2Aw6OOPP3a7sM9qtTqNUAHKjVOnZPjb6p+4Mrb0dOnw4etzsav883rnnXe0ceNGp7ZnnnlGknTzzTc7hX2FGTt2rEJCQjR79mw9+uijqlChgnr37q0XX3yxyFN4JWnUqFE6f/685syZo8OHD6tWrVp69dVX9dhjjzn6GI1Gffnll3riiSe0ZMkSpaenq2nTplqyZIl27NjhFPa1aNFCPXv21Lfffqtly5YpJydHtWrV0oQJEzR27FhHPx8fHy1fvlyTJk3S448/LqvVqptvvvmSYV+9evW0adMmjR07VnPmzJHJZNIdd9yhpUuXqkqVKvn6z549W3a7XbGxsVq5cqXatGmj1atX66233nIK+ySpZcuWSkhI0PTp07Vq1SrNnz9fAQEBCg8P18CBA3XLLbcU+T0FAAAA4N4M9n/Oe7oMs9msefPmadCgQZKktm3bKiIiQsuXL5eU+0vi448/7lZTea1Wq+644w5ZLBZXlwJcVx5ZWfI/dEgeBN1Xbc+FC9p/880yehT76QnFNnz/fs3bskUKDb3m17pWvv32W3Xr1k2LFi1ixBoAAAAAFEOxR/ZVrVpV+/btk5Q7vSsxMdER/ElSWlqa4/lJ7iInJ0cWi0XTpk2TyWRydTnAdeN94oQiZs6UzWRSDp/9K2az2TRgxw7ZKlaU0fMaL4JusWheRISUkXFtrwMAAAAAKJWK/VtnVFSU3nzzTQUHB2vDhg0yGAy68847Hfv37NmjsLCwEi2ytDCZTC5f5RK4nrzMZnl4eMjm6yuDr6+ryym7cnJkNxolf3/pWod9knThwrW/BgAAAACgVCr2b53/+9//tGXLFo0fP16SNGnSJMdD2bOzs/XZZ5/pvvvuK9EiAQAAAAAAAFxescO+GjVqaOfOndq1a5cCAwNVq1Ytxz6LxaK33npLLVq0KNEiAQDlS2RkpIr5SFkAAAAAgK4g7JNyVz5s1qxZvvYKFSqoR48eV10UAJQE3z595NenjyQpIy5OqW+84eKKAAAAAAC4tq744VFbt25VbGysDhw4IEmqW7euYmJi1L59+xIrDkD55NWkiYKee87xOnnoUNmSklxYUf6a7DZb7rP4LlyQ7cwZZR86pIyNG5W1Y4cLqwQAAAAAlHfFDvtycnI0ZMgQLV68ON8Uq5kzZ2rAgAFauHCh263ICwB/Z/DwkDw8ZPDykkeFCvIMD5c5MlKZiYk6/+qrsp8/7+oSAQAAAADlkEdxD3j++ee1aNEi9ejRQ1u2bNG5c+d07tw5bd68Wffcc4/ee+89Pf/889eiVgAoNVJeeknnJk3S+dmzlfH997kj/SR5t2ypwGeekby9XVwhAAAAAKA8KvbIvnfffVfR0dH6/PPPndo7duyo2NhYRUdH691339XkyZNLrEgAyONRpYp8e/SQd4sW8ggJkXJylHPypKxbt+rCqlWyWyyFHutZv778+vWTV/36sufkKDMxUelLlsiWnFzsOrL373dMLbZu2qTMbdtU4fHHJUle9erJ5847dSE29oruEQAAAACAK1XskX2nTp3SPffcU+j+mJgYnTp16qqKAoCCeDVurIqvvCKf22+XsVo1Gby9ZfDxkWd4uPx691bFWbPkERxc4LGeEREKeu45eTdvLoOPjzz8/WXu3FlB06fLEBh41bVZv/tOmX97Xp85MvKqzwkAAAAAQHEVO+xr0KCBTpw4Uej+48ePq0GDBldVFADk4+WlgNGj5eHjI0nK2rtXKTNm6Pxrrynn/4/MM1atKv/hwws83LNWLWUmJirlhReU+vbbsl24kHtMpUry69u3RErM/OWXi9erWZOpvAAAAACA667YYd/TTz+tN998UzsKWHEyISFBc+fO1YQJE0qkOADI492ypYwhIZIke1aWzs+YocyffpJ140alzZ9/sV+rVgWO1MtJTtb5WbOUuX27MtaskeWjjxz7TB07SgbDVddoT011eu3h53fV5wQAAAAAoDgu+8y+//3vf/na6tSpo7Zt2+rWW29Vo0aNJEm7d+/WunXr1KJFC+3du7fkKwVQrhnDwhzbOSdOyHb2rON11u7djm2Dh4c8q1dXVkqK0/HZ+/ZJ2dkFHuPh7y9DhQqy/+OY4jJUqOD02paeflXnAwAAAACguC4b9k2ZMqXQfWvWrNGaNWuc2n7++WclJCTomWeeueriAKAs8W7RwrGd/ddfUmamC6sBAAAAAJRHlw37Dh48eD3qAIBLyjl61LFtrFpVhqAg2c+dkyR5/f8RxpJkt9mUfexYvuM969eXjEYpJyffMbb0dNnPn7+q+kzdusm7WTPH64xvv72q8wEAAAAAcCUuG/bVrl37etQBAJeUmZionORkGUNCZPDyUuCTT8oSGyuD2Sy//v0v9ktIKHA6rjEkRBWeeEIZ69fLo3Jl+fbu7dhn/eEHyW4vVj2eERGyV64sj5AQed94o8w33eTYl/XHH7rw5ZdXcJcAAAAAAFydy4Z9l5KcnOwY+VenTh2F/P+H5wNAicvKUurs2aowcaI8fHzk1bChAp96yqlLzokTTot1OO07flzebdrI1L69c3tystKXLSt2OYHjxhXYnpmYqPOvvsoUXgAAAACAS1xR2Ldjxw49+uij+v77753au3Tpotdff13NmzcvkeIAlE8GX1+n1/b/H5xl7dqls2PGyDcmRt4tWsgjJESy2ZRz/Lis8fG6sHKl7BZLgefM2r1bGXPnyvff/5ZXvXqy5+QoMzFR6e+9d8ULc9izsmS/cEG2M2eUfeiQMjZuVFYBK5UDAAAAAHC9FDvs++2339S5c2dlZGSoR48eatKkiSRp586dWr16tbp06aItW7Y42gGguLzbtXNs2ywW2VNTL74+eVJpCxYU6TyWjz6S5aOPnNpSrnDxoKydO5XUs+cVHQsAAAAAwPVS7LDv2WeflZeXlzZv3pxvBN9vv/2mrl276tlnn9Vnn31WYkUCKB/8+vWTZ4MGTgtdZMbHSzabC6sCAAAAAKDs8CjuAd99951GjhxZ4FTdpk2basSIEdq4cWOJFAegfDHffrtT0JeTlKT0pUtdWBEAAAAAAGVLsUf2paenq2rVqoXur1atmtLT06+qKADllN0ue0aGck6cUOb27bKsXCl7WpqrqwIAAAAAoMwodthXt25dffHFFxo5cmSB+7/44gvVrVv3qgsDUP4kDxjg6hIAAAAAACjTih32DRgwQE8//bT69u2riRMnqlGjRpKk3bt3a/r06Vq7dq1efPHFEi+0NLBara4uAbiubBkZstlsksUie06Oq8spu2w2GXJypLQ0yfOKFkEvukJWIwYAAAAAlA8Gu91uL84BOTk56tu3rz755BMZDAZ5eOQ+9s9ms8lut6t379764IMPHO3uwGq1ymw2q3379q4uBbiuPLKy5H/okDwI+q6aj4eHPm3bVsbr8d0YFCS9/roUGnrtrwUAAAAAKFWKHfblWbdunWJjY3Xo0CFJudN7Y2Ji1L1795Ksr9SwWq3KIfBAeXTqlAyMar1qHh4eMplM1+diZjNBHwAAAACUU1cc9gEAAAAAAAAoXYr08KhXXnmlWCc1Go0KCgpSs2bN1Lp16ysqDAAAAAAAAEDxFGlk35U+f89gMKh169ZatWqVqlWrdkXnAAAAAAAAAFA0RQr7Nm7cWKyT2u12nT9/Xj/88INefvll3X///frggw+uuEgAAAAAAAAAl3fNn9k3duxYLVmyRKdPn76WlwEAAAAAAADKvSubn1sMbdu2lc1mu9aXAQAAAAAAAMo9VuMFAAAAAAAA3MQ1H9kHAAAAAAAA4Pog7AMAAAAAAADcBGEfAAAAAAAA4CYI+wAAAAAAAAA3QdgHAAAAAAAAuAnCPgAAAAAAAMBNEPYBAAAAAAAAboKwDwAAAAAAAHAThH0AAAAAAACAmyDsAwAAAAAAANwEYR8AAAAAAADgJgj7AAAAAAAAADdB2AcAAAAAAAC4CcI+AAAAAAAAwE0Q9gEAAAAAAABuwtPVBZQVf535S5ZMi6vLuCZMRpNC/UJdXUaZZzQaZTKZXF0GAAAAAAAoxwj7iuCvM3+pbXRbWa1WV5dyTRgNRoX7hsvL4OXqUso0X19frVmzhsAPAAAAAAC4DGFfEVgyLbJarWoytIl8vXxdXU6JstqssuZYNb7xeFU1V3V1OWWW1WrVhAkTlJOT4+pSAAAAAABAOUbYVwy+Xr4KMAW4uowSZcw2KktZMpvMMpvNri4HAAAAAAAAV4EFOgAAAAAAAAA3QdgHAAAAAAAAuAmm8bpYn5Z91KdVH0lS3L44vfH9Gy6uCAAAAAAAAGUVYd8ValK1iZ674znH66GfDFVSWpILK8pfU0FOpZ7SsE+HXaeKAAAAAAAAcD0xjRcAAAAAAABwE4zsc2Mvxb2ksxfOOrVl5WS5qBoAAAAAAABca4R910AV/yrq0ayHWlRvoRDfEOXYc3Qy9aS2Ht6qVTtXyZJpKfTY+pXqq1+bfqpfub5ybDlKPJqoJduWKDk9udh17E/e7/KpxQAAAAAAALh+CPtKWOMqjTUxeqJ8vHyc2sODwxUeHK6u9bpq0leTdMZyJt+xEZUi1PmOzvL29Ha0da7bWY2qNNK4VeOUkpFyzesHAAAAAABA2UXYV4K8jF4affNoR9C3N2mvYn+JldnLrP5t+ivEL0RVA6pqeKfhemH9C/mOr1WxlrYe3qp1e9YpNCBU/dv0l4+Xjyr5VVLf1n01b8u8YtWzoNeCfG1f7PxC725998puEAAAAAAAAKUaYV8Jalm9pUL8QiTlPhtvxjczHM/MS7OmaWL0RElSqxqtFGgOzDdSLzk9WbM2zFK2LVuS5OXhpYE3DpQkdQzvqPlb5ssu+3W6GwAAAAAAAJQ1hH0lKCwwzLF9IvWE0+IYu0/udmx7GDxUPbB6vrBv3+l9jqDvn8f4m/xVwVyhWFN5C1qgo6DpwwAAAAAAAHAPhH1ujAU6AAAAAAAAyhcPVxfgTo6mHHVsVw2oqiCfIMfrRlUaObZtdpuOpRzLd3z9SvVlNBgLPCbdmq7zGedLuGIAAAAAAAC4E0b2laDEY4lKTk9WiF+IvIxeejLqScX+Giuzp1n92/Z39Es4klDgdNwQvxA90e0Jrd+7XpX9K6t3y96OfT/8+UOxn9cXERKhEN+QfO17k/bKZrcV61wAAAAAAAAo/Qj7SlBWTpZmb5ytidET5ePlo4ahDfXULU859TmRekLzt8wv8Pjj54+rTc02al+7vVN7cnqylm1fVux6xkWNK7C9/7L+smRain0+AAAAAAAAlG6EfVfI18vX6XVmdqYkadfJXRqzcoximsaoRfUWCvELkc1u0/HzxxV/OF4rd64sNGjbfXK35m6eq3+3+rfqhdRTji1HiccS9V78e8VamAMAAAAAAADlE2HfFWpXq51j25JpUao11fH6ZOpJLfhhQZHO81HiR/oo8SOntmfWPHNFNe08sVM9F/W8omMBAAAAAABQ9hH2FVO/1v3UILSBmlVr5miL/yueZ+ABAAAAAADA5Qj7iun2RrfLz+TneJ2UlqSl25a6sCIAAAAAAAAgF2FfMdllV0ZWhk6kntD2I9u18reVSrOmubosAAAAAAAAgLCvuAZ8MMDVJQAAAAAAAAAFIuwrBktWwavolmVWm1W2HJsyrBnKMGS4upwyy2q1uroEAAAAAAAAGex2u93VRZR2f535S7VCaimwSaCrS7kmjAajwn3D5WXwcnUpZZqvr6/WrFkjk8nk6lIAAAAAAEA5RdhXRH+d+UuWTPcb2SdJJqNJoX6hri6jzDMajQR9AAAAAADApQj7AAAAAAAAADfh4eoCAAAAAAAAAJQMwj4AAAAAAADATRD2AQAAAAAAAG6CsA8AAAAAAABwE4R9AAAAAAAAgJsg7AMAAAAAAADcBGEfAAAAAAAA4CYI+wAAAAAAAAA3QdgHAAAAAAAAuAnCPgAAAAAAAMBNEPYBAAAAAAAAboKwDwAAAAAAAHAThH0AAAAAAACAmyDsAwAAAAAAANwEYR8AAAAAAADgJgj7AAAAAAAAADdB2AcAAAAAAAC4CcI+AAAAAAAAwE0Q9gEAAAAAAABugrAPAAAAAAAAcBOEfQAAAAAAAICb8HR1AQCQx2q1Kicnx9VllHmn0k/JmmN1dRllnsloUqhf6HW5ltFolMlkui7XAgAAAODeCPsAlApWq1V33HGHLBaLq0sp07LsWTpkOaQcO6Hp1TIajAr3DZeXweuaX8vX11dr1qwh8AMAAABw1Qj7AJQKOTk5slgsmjZtGoHHVTiRcUIzd82UyWiSyYP38UpZbVZZc6wa33i8qpqrXttrWa2aMGECo1oBAAAAlAjCPgClislkktlsdnUZZZbZbpaH0UO+Xr7y9fR1dTllljHbqCxlyWwy83kEAAAAUKawQAcAAAAAAADgJgj7AAAAAAAAADfBNF4AwDXTp2Uf9WnVR5IUty9Ob3z/hosrAgAAAAD3RtgHAMinSdUmeu6O5xyvh34yVElpSS6sKH9NBTmVekrDPh12nSoCAAAAgNKHabwAAAAAAACAm2BkHwCgTHop7iWdvXDWqS0rJ8tF1QAAAABA6UDYBwAolir+VdSjWQ+1qN5CIb4hyrHn6GTqSW09vFWrdq6SJdNS6LH1K9VXvzb9VL9yfeXYcpR4NFFLti1RcnpysevYn7zf5VOLAQAAAKC0IewDABRZ4yqNNTF6ony8fJzaw4PDFR4crq71umrSV5N0xnIm37ERlSLU+Y7O8vb0drR1rttZjao00rhV45SSkXLN6wcAAAAAd0fYBwAoEi+jl0bfPNoR9O1N2qvYX2Jl9jKrf5v+CvELUdWAqhreabheWP9CvuNrVaylrYe3at2edQoNCFX/Nv3l4+WjSn6V1Ld1X83bMq9Y9SzotSBf2xc7v9C7W9+9shsEAAAAADdA2AcAKJKW1VsqxC9EUu6z8WZ8M8PxzLw0a5omRk+UJLWq0UqB5sB8I/WS05M1a8MsZduyJUleHl4aeONASVLH8I6av2W+7LJfp7sBAAAAAPdE2AcAKJKwwDDH9onUE06LY+w+udux7WHwUPXA6vnCvn2n9zmCvn8e42/yVwVzhWJN5S1ogY6Cpg8DAAAAQHlC2AcAKJNYoAMAAAAA8vNwdQEAgLLhaMpRx3bVgKoK8glyvG5UpZFj22a36VjKsXzH169UX0aDscBj0q3pOp9xvoQrBgAAAIDyh5F9AIAiSTyWqOT0ZIX4hcjL6KUno55U7K+xMnua1b9tf0e/hCMJBU7HDfEL0RPdntD6vetV2b+yerfs7dj3w58/8Lw+AAAAACgBhH0AgCLJysnS7I2zNTF6ony8fNQwtKGeuuUppz4nUk9o/pb5BR5//PxxtanZRu1rt3dqT05P1rLty65Z3QAAAABQnhD2AQDy8fXydXqdmZ0pSdp1cpfGrByjmKYxalG9hUL8QmSz23T8/HHFH47Xyp0rZcm0FHjO3Sd3a+7mufp3q3+rXkg95dhylHgsUe/Fv1eshTkAAAAAAIUj7AMA5NOuVjvHtiXTolRrquP1ydSTWvDDgiKd56PEj/RR4kdObc+seeaKatp5Yqd6Lup5RccCAAAAQHlB2AcAcOjXup8ahDZQs2rNHG3xf8XLZre5sCoAAAAAQFER9gEAHG5vdLv8TH6O10lpSVq6bakLKwIAAAAAFAdhHwDAwS67MrIydCL1hLYf2a6Vv61UmjXN1WUBAAAAAIqIsA8A4DDggwGuLgEAAAAAcBUI+wCUKlar1dUllGkZ1gzZcmyyyKKcnBxXl1NmWW1W2XJsyrBmKMOQcW2vxWceAAAAQAky2O12u6uLAACr1Sqz2az27du7upQyLcuepUOWQ8qxE/RdLaPBqHDfcHkZvK75tXx9fbVmzRqZTKZrfi0AAAAA7o2wD0CpYbVaGY1WAk6ln5I1h9FiV8tkNCnUL/S6XMtoNBL0AQAAACgRhH0AAAAAAACAm/BwdQEAAAAAAAAASgZhHwAAAAAAAOAmCPsAAAAAAAAAN0HYBwAAAAAAALgJwj4AAAAAAADATRD2AQAAAAAAAG6CsA8AAAAAAABwE4R9AAAAAAAAgJsg7AMAAAAAAADcBGEfAAAAAAAA4CYI+wAAAAAAAAA3QdgHAAAAAAAAuAnCPgAAAAAAAMBNEPYBAAAAAAAAboKwDwAAAAAAAHAThH0AAAAAAACAmyDsAwAAAAAAANwEYR8AAAAAAADgJgj7AAAAAAAAADdB2AcAAAAAAAC4CcI+AAAAAAAAwE14uroAAHAVq9WqnJwcV5cBAJd0Kv2UrDlWV5dxTfh6+6pmcE1XlwEAAOBWCPsAlEtWq1V33HGHLBaLq0sBgEJl2bN0yHJIOXb3/IcJk8mkbeu2EfgBAACUIMI+AOVSTk6OLBaLpk2bJpPJ5OpyAKBAJzJOaOaumTIZTTJ5uNd3lSXLop0LdsqSyT+6AAAAlCTCPgDlmslkktlsdnUZAFAgs90sD6OHfL185evp6+pyAAAAUAawQAcAAAAAAADgJgj7AAAAAAAAADfBNF4AAIBypE/LPurTqo8kKW5fnN74/g0XVwQAAICSRNgHAABQBjSp2kTP3fGc4/XQT4YqKS3JhRU5a1C5gaLqR6lRaCOF+IXI2+itVGuqzl04p31J+7T9yHYlHElw25WFAQAASgvCPgAAAFwxb6O3hnUapsiIyHz7gn2DFewbrLohdXVbo9s06vNROppy9PoXCQAAUI4Q9gEAAOCKPdHtCbWt2dbxesfRHdp0YJNOpZ+Sl4eXwgLD1CqslZpXb+7CKgEAAMoPwj4AAIAyrop/FfVo1kMtqrdQiG+Icuw5Opl6UlsPb9WqnatkybQUemz9SvXVr00/1a9cXzm2HCUeTdSSbUuUnJ582eveVOcmp6Dv48SPtTxhuVOfhKMJ+mLXF6oSUEWp1tQrv0kAAAAUCWEfAABAGda4SmNNjJ4oHy8fp/bw4HCFB4era72umvTVJJ2xnMl3bESlCHW+o7O8Pb0dbZ3rdlajKo00btU4pWSkXPLa3SK6ObZPnD+hjxI+KrTvydSTRb0lAAAAXAUPVxcAAACAK+Nl9NLom0c7gr69SXs145sZeu271xwj86oGVNXwTsMLPL5WxVpKPJaoF9a9oLd/fFsXsi5Ikir5VVLf1n0ve/16IfUc2zuO7ZBddsfrGoE11Ci0kdNP9QrVr/heAQAAUDSM7AMAACijWlZvqRC/EElSVk6WZnwzQ2cvnJUkpVnTNDF6oiSpVY1WCjQH5hupl5yerFkbZinbli1J8vLw0sAbB0qSOoZ31Pwt850CvH/yM/k5ts9bzzvtG9BugNMUX0n6/sD3emXjK1dwpwAAACgqRvYBAACUUWGBYY7tE6knHEGfJO0+udux7WHwUPXA/KPq9p3e5wj6/nmMv8lfFcwVLnn99Mx0x3aAKaB4xQMAAOCaIOwDAADAFTlw+oBju3k159V2p62fpp6LeipuX9z1LgsAAKBcI+wDAAAoo46mHHVsVw2oqiCfIMfrRlUaObZtdpuOpRzLd3z9SvVlNBgLPCbdmq7zGefzHfN3cfsvBnnVA6vr3mb3Fqt+AAAAlDye2QcAAFBGJR5LVHJ6skL8QuRl9NKTUU8q9tdYmT3N6t+2v6NfwpGEAlfWDfEL0RPdntD6vetV2b+yerfs7dj3w58/XPJ5fZK0+eBmRUVEqVWNVpKkB9s+qAaVG2jzwc06e+GsfL19VSuoVgndLQAAAIqCsA8AAKCMysrJ0uyNszUxeqJ8vHzUMLShnrrlKac+J1JPaP6W+QUef/z8cbWp2Ubta7d3ak9OT9ay7cuKVMNLG17SI50fUac6nSRJ7Wu3z3e+PH9/PiAAAACuDcI+AACAMsDXy9fpdWZ2piRp18ldGrNyjGKaxqhF9RYK8QuRzW7T8fPHFX84Xit3rpQl01LgOXef3K25m+fq363+rXoh9ZRjy1HisUS9F/9egSMBC5KRnaFZ385Sk9+bqFtENzUKbaSKvhXlZfTShcwLOpl6UvuT9yvhSIJ+PvLz1b0JAAAAuCzCPgAAgDKgXa12jm1LpkWp1lTH65OpJ7XghwVFOs9HiR/po8SPnNqeWfPMVde388RO7Tyx86rPAwAAgKtD2AcAAFCKDWs/TC2rtVSL6i0cbfF/xctmt7mwKgAAAJRWhH0AAAClWM+mPRVgCnC8TkpL0tJtS11YEQAAAEozwj4AAIBSzG63KyMrQydST2j7ke1a+dtKpVnTXF0WAAAASinCPgAAgFLstndvU6BXoHw9fS/fGQAAAOUeYR+Acs1qtbq6BAAoVIY1Q7YcmyyyKCcnx9XllChLVsErBAMAAODqGOx2u93VRQDA9Wa1WmU2m9W+fXtXlwIAhcqyZ+mQ5ZBy7O4V9OUxmUzatm6bagbXdHUpAAAAboOwD0C5ZbVa3W6kDAD3cyr9lKw57jkK2dfbl6APAACghBH2AQAAAAAAAG7Cw9UFAAAAAAAAACgZhH0AAAAAAACAmyDsAwAAAAAAANwEYR8AAAAAAADgJgj7AAAAAAAAADdB2AcAAAAAAAC4CcI+AAAAAAAAwE0Q9gEAAAAAAABugrAPAAAAAAAAcBOEfQAAAAAAAICbIOwDAAAAAAAA3ARhHwAAAAAAAOAmCPsAAAAAAAAAN0HYBwAAAAAAALgJwj4AAAAAAADATRD2AQAAAAAAAG6CsA8AAAAAAABwE4R9AAAAAAAAgJsg7AMAAAAAAADcBGEfAAAAAAAA4CYI+wAAAAAAAAA3QdgHAAAAAAAAuAnCPgAAAAAAAMBNEPYBAAAAAAAAboKwDwAAAAAAAHAThH0AAAAAAACAmyDsAwAAAAAAANwEYR8AAAAAAADgJgj7AAAAAAAAADdB2AcAAAAAAAC4CcI+AAAAAAAAwE0Q9gEAAAAAAABugrAPAAAAAAAAcBOEfQAAAAAAAICb8HR1AZJkt9uVmprq6jIAAAAAAC4QEBAgg8Hg6jIAwC2UirAvNTVVgYGBri4DAAAAAOACKSkpqlChgqvLAAC3YLDb7XZXF1HaR/adP39eNWvW1F9//cVfQCgQnxFcCp8PXAqfD1wKnw9cDp8RXEpZ+nwwsg8ASk6pGNlnMBhK/V8+klShQoUyUSdch88ILoXPBy6Fzwcuhc8HLofPCC6FzwcAlC8s0AEAAAAAAAC4CcI+AAAAAAAAwE0Q9hWByWTS5MmTZTKZXF0KSik+I7gUPh+4FD4fuBQ+H7gcPiO4FD4fAFA+lYoFOgAAAAAAAABcPUb2AQAAAAAAAG6CsA8AAAAAAABwE4R9AAAAAAAAgJsg7AMAAAAAAADcBGHfJdhsNs2ePVuNGjWS2WxWzZo1NXbsWKWnp7u6NJQCBoOhwB9/f39Xl4brbPr06erVq5fq1q0rg8Gg8PDwS/b/6aef1L17dwUEBKhChQq6/fbblZiYeF1qxfVXnM/HwIEDC/1u+fTTT69f0bgu9u7dq2effVYdOnRQ5cqVFRAQoJYtW+qFF14o8P9r7NmzRzExMapYsaL8/PzUpUsXxcXFuaByXC/F+YxMmTKl0O+PWbNmuegOcC3t2bNH/fr10w033KDAwED5+vqqUaNGGjNmjI4fP15gf75DAKB88HR1AaXZ6NGj9frrr+vee+/V2LFjtXv3br3++utKSEjQ+vXr5eFBVlredenSRUOGDHFq8/LyclE1cJUJEyYoODhYrVu31rlz5y7Z98cff1RkZKTCwsL0v//9T5L0xhtvqEuXLtqyZYuaNWt2HSrG9VScz0eepUuX5mu78cYbS7gyuNq7776rN998U/fcc4/69esnLy8vbdiwQZMmTdLHH3+sH3/8UT4+PpKkP/74Q506dZKnp6fGjx+vwMBAvf3227rtttu0Zs0ade/e3cV3g2uhOJ+RPLNnz1alSpWc2tq0aXM9y8Z1cuTIER0/flz33nuvatSoIU9PT/3666966623tHz5ciUmJio0NFQS3yEAUO7YUaDffvvNbjAY7D179nRqf/311+2S7MuWLXNRZSgtJNkfeughV5eBUuCPP/5wbDdp0sReu3btQvu2a9fOHhAQYD9y5Iij7ciRI/aAgAB7dHT0tSwTLlKcz8dDDz1k56/m8iM+Pt5+7ty5fO0TJ060S7LPmTPH0darVy+7h4eHPSEhwdGWmppqr1Wrlr1BgwZ2m812PUrGdVacz8jkyZPtkuwHDx68jhWiNPr444/tkuwzZsxwtPEdAgDlC0PTCvHhhx/Kbrfr8ccfd2r/73//K19fX73//vuuKQylTmZmptLS0lxdBlyobt26Req3f/9+xcfHq1evXgoLC3O0h4WFqVevXlq/fr1OnDhxrcqEixT18/F3drtd58+fl81muwYVobRo27atAgMD87X36dNHkvTbb79JktLT07Vq1SpFRkaqZcuWjn7+/v76z3/+o7179yo+Pv661Izrq6ifkX86f/68srOzr2ltKL1q164tSTp79qwkvkMAoDwi7CtEfHy8PDw88k2bMpvNatmyJX8hQpL06aefytfXVwEBAQoNDdWoUaOUkpLi6rJQSuV9b3Ts2DHfvg4dOshut2v79u3XuyyUQoGBgQoMDJSPj4+io6P1008/ubokXEdHjhyRJFWpUkWS9Msvv8hqtRb63SGJ/19SzvzzM/J3zZs3V2BgoMxmszp16qQ1a9Zc7/JwnWVkZOj06dM6cuSI1q5dq6FDh0qS/vWvf0niOwQAyiOe2VeIY8eOqVKlSjKZTPn2hYWFacuWLcrMzJS3t7cLqkNpcOONN6pXr16KiIjQ+fPn9dVXX+mNN97Qxo0btWXLFhbqQD7Hjh2TJKdRfXny2o4ePXpda0LpUrVqVY0ePVpt2rSRn5+fduzYoVdffVVdunTRV199xTOVyoGcnBw999xz8vT0VN++fSXx3QFnBX1GJCkoKEhDhgxRp06dVLFiRe3Zs0evvvqq7rzzTr377rsaOHCg64rGNbVw4UKNGjXK8To8PFzvv/++unTpIonvEAAojwj7CmGxWAoM+qTc0X15fQj7yq9/jrQZMGCAmjdvrokTJ+q1117TxIkTXVQZSiuLxSJJBX63/P17BeXXiy++6PQ6JiZGffv2VcuWLTV8+HDt27fPRZXhenn88cf1ww8/aNq0aWrYsKEkvjvgrKDPSF77Pw0ePFhNmzbV6NGjdf/99/MPkW4qJiZGjRo1UlpamhISErRq1SqdPn3asZ/vEAAof5jGWwhfX19ZrdYC92VkZDj6AH83btw4eXt768svv3R1KSiF8r4zCvpu4XsFhalfv7569+6t/fv3a+/eva4uB9fQM888ozfeeENDhgzR008/7WjnuwN5CvuMFCYkJETDhg3TuXPntGXLlutQIVyhRo0a6t69u2JiYjR16lQtWbJE48eP1/Tp0yXxHQIA5RFhXyGqV6+u06dPF/iX4tGjR1WpUiVG9SEfLy8vx2cH+Kfq1atLKniqTF5bQVNsgPDwcEniu8WNTZkyRc8//7wGDRqk+fPnO+3juwPSpT8jl8L3R/nTvHlztWrVSnPnzpXEdwgAlEeEfYVo166dbDabtm7d6tSekZGhxMREtW3b1kWVoTTLyMjQkSNHCnxgNtCuXTtJ0g8//JBv348//iiDwaA2bdpc77JQBuRN3+W7xT1NmTJFU6dO1UMPPaSFCxfKYDA47W/WrJlMJlOh3x2S+P8lbu5yn5FL4fujfLpw4YLOnDkjie8QACiPCPsK0adPHxkMBr366qtO7W+//bYsFov69evnmsJQKiQnJ/+/9u4uJKrtD+P4Myc1nRxLihIxxcp0SNILU0pDHMjeUGYooQvfIOrKIunKKDLFEgwKTYJJuqkosYuCsihIIbK6sBeSvCgIiVAhIVFJZGSdiz8NRzTw8D/Ozu33AwPutdcMvwWLzfZh7bXnbD9z5owCgYCKiopCXBEWg02bNikrK0sdHR3BzbKl/22c3dHRIY/Ho7i4OAsrhJUmJiaCj1P909u3b9XR0SG3262NGzdaUBkWUl1dnc6dO6eysjJdv35df/01+9YsOjpaRUVF6u7u1vv374Pt4+PjamtrU0pKirKzs0NZNkJoPnMkEAhodHR0VvvXr1919epVrV69Wjt27AhFuQihoaGhOdu7urrU19cXfNMu1xAAWHocxhhjdRF/qmPHjunKlSvy+Xzat2+f+vv71dzcrNzcXD179mzOmy0sDdXV1Xr16pUKCgqUmJio8fFxdXZ2qqurSzk5Oerq6lJUVJTVZSJEbty4oYGBAUlSS0uLpqamdPLkSUlSUlKSysrKgn17enpUUFCghISE4JvzWlpaNDw8rBcvXigjIyP0A8CCmu/8ePfunfbu3Suv16uUlJTg23h//XP/5MkT5eXlWTYO/PdaW1tVVVWlxMRE1dfXz7qvWLdunXbt2iVJ+vz5s7KzsxUeHq7q6mrFxMTo2rVr+vDhgx4+fKjdu3dbMQQssPnOkR8/fig5OVler1dutzv4Nt62tjaNj4/r9u3bKikpsWgUWCg+n0+Dg4PyeDxKSkrS5OSkent7defOHTmdTnV3dyszM1MS1xAAWHIMfisQCJiLFy+azZs3m4iICBMfH2+qq6vN2NiY1aXBYvfu3TOFhYUmPj7eLF++3DidTpORkWEaGhrMz58/rS4PIZafn28kzfnJz8+f1b+np8d4PB6zYsUKEx0dbQoLC01vb2/oC0dIzHd+DA4OmtLSUpOammpcLpcJCwsz69evN+Xl5aa/v9+6AWDBVFRU/HZuzHX9+PjxoykuLjYrV640UVFRJjc31zx9+tSa4hES850jk5OT5vDhwyY9Pd2sWrXKhIWFmbi4OHPgwAHz+vVraweBBdPe3m72799vEhISzPLly01kZKRJTU01VVVVZmBgYFZ/riEAsHSwsg8AAAAAAACwCZ5DBQAAAAAAAGyCsA8AAAAAAACwCcI+AAAAAAAAwCYI+wAAAAAAAACbIOwDAAAAAAAAbIKwDwAAAAAAALAJwj4AAAAAAADAJgj7AAAAAAAAAJsg7AMAAAAAAABsgrAPAIAFUllZKYfDYXUZAAAAAJaQMKsLAABgsfg3wd2XL18WsBIAAAAAmJvDGGOsLgIAgMXg5s2bM46fP38uv9+vo0ePaufOnTPO+Xw+RUREaHp6WpGRkaEsEwAAAMASxso+AADmqbS0dMZxIBCQ3+/X9u3bZ537JTw8PBSlAQAAAIAk9uwDAGDBzLVn36+2kZERVVZWas2aNXK5XPJ6vRoaGpIk+f1+ud1uRUZGKi0tTffv35/z99vb25WXlyeXyyWn06mcnBzdvXt3wccFAAAA4M9F2AcAgAX27Nmj0dFR1dXV6ciRI3rw4IF8Pp+amprU1NSkiooKNTY2ampqSgcPHpy1B+Dp06d16NAhuVwu1dfXq7GxUU6nUyUlJWptbbVoVAAAAACsxmO8AABYIDs7e1Yod+nSJX379k19fX2KiYmRJHk8HmVkZMjv9+vChQuSpDdv3qihoUE1NTU6f/588PvHjx+X1+tVTU2NysvL5XK5QjcgAAAAAH8EVvYBAGCBEydOzDj+9YKP8vLyYNAnSVu3blVMTIw+ffoUbLt165YcDocqKir0/fv3GZ/i4mKNjY3p5cuXIRkHAAAAgD8LK/sAALDAhg0bZhzHxsZKkpKTk2f1jY2N1cjISPC4v79fxhilpaX99veHh4f/o0oBAAAALCaEfQAAWGDZsmX/qt0YM+Nvh8OhR48e/bb/li1b/v8iAQAAACw6hH0AACwyKSkpevz4sRITE+V2u60uBwAAAMAfhD37AABYZMrKyiRJp06d0vT09KzzPMILAAAALF2s7AMAYJHZtm2bamtrVVtbq8zMTJWUlCg+Pl6Dg4Pq7e1VZ2enpqamrC4TAAAAgAUI+wAAWITOnj2rrKwsNTc36/Lly5qYmNDatWuVnp6u5uZmq8sDAAAAYBGH+eeO3wAAAAAAAAAWLfbsAwAAAAAAAGyCsA8AAAAAAACwCcI+AAAAAAAAwCYI+wAAAAAAAACbIOwDAAAAAAAAbIKwDwAAAAAAALAJwj4AAAAAAADAJgj7AAAAAAAAAJsg7AMAAAAAAABsgrAPAAAAAAAAsAnCPgAAAAAAAMAmCPsAAAAAAAAAm/gbhG8tYVP8dwIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def machine_schedule(jobs):\n", " m = pyo.ConcreteModel(\"Job machine scheduling\")\n", "\n", " # Create a set of jobs using the dataframe index and a\n", " # set of orderd pairs of distinct jobs (i,j) with i < j\n", " m.JOBS = pyo.Set(initialize=jobs.index)\n", " m.PAIRS = pyo.Set(initialize=m.JOBS * m.JOBS, filter=lambda m, i, j: i < j)\n", "\n", " # We set an upper bound on the time horizon to 100\n", " m.maxtime = pyo.Param(initialize=100)\n", " m.start = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", " m.finish = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", " m.past = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", "\n", " @m.Constraint(m.JOBS)\n", " def job_release(m, job):\n", " return m.start[job] >= jobs.loc[job, \"release\"]\n", "\n", " @m.Constraint(m.JOBS)\n", " def job_duration(m, job):\n", " return m.finish[job] == m.start[job] + jobs.loc[job, \"duration\"]\n", "\n", " @m.Constraint(m.JOBS)\n", " def past_due_constraint(m, job):\n", " return m.past[job] >= m.finish[job] - jobs.loc[job, \"due\"]\n", "\n", " @m.Disjunction(m.PAIRS, xor=True)\n", " def machine_deconflict(m, job_a, job_b):\n", " return [m.finish[job_a] <= m.start[job_b], m.finish[job_b] <= m.start[job_a]]\n", "\n", " @m.Objective(sense=pyo.minimize)\n", " def minimize_past(m):\n", " return sum(m.past[job] for job in m.JOBS)\n", "\n", " return m\n", "\n", "\n", "m = machine_schedule(jobs)\n", "pyo.TransformationFactory(\"gdp.bigm\").apply_to(m)\n", "SOLVER.solve(m)\n", "\n", "optimalschedule = pd.DataFrame(\n", " {\n", " \"start\": m.start.extract_values(),\n", " \"finish\": m.finish.extract_values(),\n", " \"past\": m.past.extract_values(),\n", " }\n", ")\n", "\n", "display(optimalschedule)\n", "gantt(jobs, optimalschedule, \"Minimize total past due\")" ] }, { "cell_type": "markdown", "id": "fdadb6fe", "metadata": {}, "source": [ "The solution obtained solving the optimization problem outperforms that derived from any of the rules outline above. Nonetheless, heuristic techniques become essential when tackling large scheduling problems.\n", "\n", "For comparison, we also implement a standard MILO using the big-M method. The idea is to introduce a binary variable $z_{ij} \\in \\{0,1\\}$ for each disjunctive constraint above.\n", "\n", "$$\n", "\\begin{align*}\n", "\\text{finish}_i & \\leq \\text{start}_j + M z_{ij} \\\\\n", "\\text{finish}_j & \\leq \\text{start}_i + M (1 - z_{ij}).\n", "\\end{align*}\n", "$$\n", "\n", "This creates an equivalent MILO model which leads to the same solution, but it features many more variables and is usually slower to solve." ] }, { "cell_type": "code", "execution_count": 10, "id": "a70842a9", "metadata": {}, "outputs": [ { "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", "
startfinishpast
A6.011.01.0
B14.020.00.0
C22.030.015.0
D2.06.00.0
E0.02.00.0
F11.014.00.0
G20.022.00.0
\n", "
" ], "text/plain": [ " start finish past\n", "A 6.0 11.0 1.0\n", "B 14.0 20.0 0.0\n", "C 22.0 30.0 15.0\n", "D 2.0 6.0 0.0\n", "E 0.0 2.0 0.0\n", "F 11.0 14.0 0.0\n", "G 20.0 22.0 0.0" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Using the \"Minimize total past due\" strategy, the total past due is 16.0\n" ] }, { "data": { "image/png": "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bdsUFBSkmjVrqnbt2lq/fr0mT54sSUpLS9MPP/wgLy8vrV+/XqNGjZIkXbhwQTt37tTQoUPz9oLnAWEfAACFzGAw6KGHHtLixYvdXQoAAEChW7t2rT755BP17t1bH330kXN0We/evdWqVSs99thj2rx5s8s+u3bt0vbt29WyZUtJ0qOPPqqePXtq8eLFGjp0qNq1a3fV8x4+fFjvvPOO/v3vf7u0Dx48WJUrV9b27dsVFBTkbL/lllvUs2dPLVu27IqzrT733HM6dOiQfvrpJ5eRZgMHDlSTJk00ceJE5895tWvX1t9//+0SHo4YMULPPvusXnzxRW3btk033nijpMyQ6YYbbtDq1atdzvfyyy87l1NTU/Xwww+rbdu2Wr9+vfN21aFDh6pZs2YaPXq0Nm7cqC5dujj3WbFihUJCQlzaRo0aJbvdri1btqhevXqSpEceeUQdO3a8wit6dddS3+Wywr7169c7w77169erb9++ev/997V+/Xr17t1bDodDGzduVOfOnWU0Gq9a2+7du7V7927nqMFhw4apSZMmmj17tjPss9lsevzxx1WuXDlt27bNGSoOHTo0x5mop0+frgMHDuitt97SI4884mxv3ry5Hn30UU2fPl0vvPCC87qWLFkii8Uif39//fTTT7JYLOrfv79WrVqljIwMZxhss9kUGRl59Rc8j7iNFwDgYurUqerVq5dq164tg8GQ4zD9vHjvvffUokUL520C//73vxUfH1+wxRaSuLg4TZo0SbGxse4uBQAAoMRZsWKFJGnChAkut5E2a9ZMd999t3744YdsPxdGRUU5gz4p84+lTz75pMvxrqZcuXIaNGiQS9tvv/2mX3/9VX379pXVatWZM2ecXx07dlRAQIC+/fbbXI/pcDi0bNkyde7cWVWrVnXZPyAgQO3atXPZ39fX1xn0ZWRk6Ny5czpz5oy6desmSc7bTyUpODhYx44d0w8//JDr+deuXatTp05p0KBBOn/+vMv577jjDknKVv/KlSt15513Ous4ffq0fvzxR/Xo0cMZ9GXVmjW67FpdS32Xu/HGGxUYGKj169dLyrwF9vDhw3rggQfUuHFjfffdd5LkHOWX11AsOjra5XcZg8Ggrl276uTJky6jPv/++28NGjTIGfRJmf82w4YNy3bMFStWqEKFChoyZIhL+9ChQ1WhQgWX92pkZKTS09Odwfb69esVFhamxx9/XElJSdq+fbskacOGDc7aCgphHwAUgeHDh5eYc40fP975V7WyZcte0zFmzpyphx56SMHBwXrjjTc0dOhQffTRR+rSpUuen4viTnFxcZo8eTJhHwAAwDU4fPiwvLy8cnwGWaNGjZx9LpVT34YNG0pStufi5aZOnTrZRnzt3btXkjRx4kRVqFDB5SssLEwpKSk6depUrseMj49XQkKCvv3222z7V6hQwRl2XWrOnDlq2rSpTCaTypUrpwoVKjhHtp07d87Zb8qUKTKbzerUqZOqVq2qfv366YMPPlBaWlq2+gcPHpzt3A0aNJAkl/Pv2bNH+/fvd5mFN+v1y+p/qazX+Frlt76c+Pj4qGPHjtqwYYOkzFt4vb291blzZ0VGRjpDwKz/5jXsq127dra20NBQSXI+Xy+/r83hw4dVv379bBOCeHt7q169ei7v1aw6L62/a9euatmypcqWLevS3qxZM5UrVy5P15UX3MYLAEXg2LFjJeZcf/75p/MbY+PGjXN8aO+VnDlzRs8884zatGmj7777zvkDV5s2bXTPPffojTfecHlGBgAAAFAQ/P39s7U5HA5J0pgxY3T77bfnuN+V/sCdtX+3bt301FNPXbWG1157TWPGjNGtt96qxx57TFWqVJGvr6+OHTumgQMHym63O/u2b99ef/75p7755htt2LBBGzZs0AcffKAXX3xRP/zwg8qVK+c8/yuvvKLmzZvneM4qVao4l1esWCGz2ZzrtebFpaMxL3f55Bb5rS83kZGR+r//+z/t3r1b69evV5s2bRQYGKjIyEjNmjVLR44c0fr161W+fPkcb6/NyZVu9c2quzBVrFhRDRs21Pr162WxWPTzzz9r9uzZ8vLy0s0336zvvvtOw4YN06+//nrdIywvR9gHAHCR01/A8mPlypWyWCwaOXKkyzfYu+++W7Vr19b7779/1bBv48aN6tq1qxYtWqSkpCTNnj1bR44cUY0aNTRy5EiNHDnSpf+2bds0Z84cbd26VUePHpXRaFTTpk31xBNPuPxVU5L+/vtvTZw4Ud99951Onjyp4OBgRUREaOjQoc7n6mXd/jFo0CDn8s0335zjjGSX2r17t8aMGaPNmzfLZDKpe/fu2Wbauvz6Ln8+zMCBA7VkyZJsP4AcOHBAzz//vNatW6eEhARVqVJFvXr10qRJkxQQEHDFugAAAIpS7dq1ZbfbtXfv3mzBzJ49eyRJtWrVcmnPGiGWU9/r+fm0bt26kjKDn6xbafOjQoUKCgkJ0YULF/K0/9KlSxUeHq41a9bIy+ufmyn/7//+L8f+gYGBuu+++3TfffdJyhwVOGLECL377rsaO3ass/6AgIA8nX/FihWKiopy+fkw67X+448/svXPeo0vlTXC7OzZs9m2HT582OV5hPmtLzdZo+C+++47rV+/Xg8//LCkzNl/jUajvv32W33//feKioq6YhiZX1nvrby+NrVr19a+ffucz9vLkpGRof3792d7r0ZGRmrOnDn64osvlJaWpltuuUVS5vMin3jiCa1Zs0YOh6NAn9cncRsvAKCAZT17on379tm2tWvXTn/88UeeRwvOnj1bL7/8svr376+pU6cqJCREjz32mHNGqywrVqzQH3/8od69e+uNN97QhAkTdPbsWfXs2VMffPCBs19GRoaioqK0fPly/etf/9KcOXM0btw41atXz/ksjc6dOzvDyCFDhmjp0qVaunSpJkyYcMVaDx8+rE6dOmnz5s169NFH9fzzz+vMmTPX9VfVLDt37lTr1q31/fffa+jQoXrrrbd01113adasWYqKilJ6evp1nwMAAKCgZM0CO3XqVJc/YP7+++9avXq1OnbsqAoVKrjss3btWv3yyy/OdYfDoenTp7sc71q0aNFCjRs31rx583K8HTgjIyPHUCuLl5eX+vXrp23btunTTz/Nsc/p06edy0ajUQaDweW6MzIyXCbdyHLmzJlsbVnPLcyq6bbbblNYWJhefvnlHOu8ePGikpKSJGXORrxz585sf+yuWLGi2rVrp1WrVmn//v3O9rS0tBz/MJ31XL9169a5tH/44Yc6fvy4S1t+6ruSFi1aqGzZspo3b55OnDjhDL+Cg4PVsmVLzZw5U4mJiQUeirVq1UrVqlXTokWLXP49Lly4oHnz5mXrHx0drfj4eC1YsMCl/Z133lF8fHy21z4yMlJ2u12TJ09WjRo1nBOQREZGymq1aurUqc5blgsSI/sAAAUq6weAqlWrZttWtWpVORwOHT9+3OXhwLnZv3+/9u7dq2rVqknKnMmsY8eOevHFF/Xwww8725955hlNnTrVZd/HHntMLVq00Isvvqi+fftKyvzr3L59+zRt2jTnA58vV7t2bUVFRWnKlClq3769+vfvn6frnjBhgs6dO+d8FkdWvT179lRMTEyejpGb651BDgAAoChFRUU5Z+I9d+6c7rrrLp08eVJvvfWWzGazZs2alW2fZs2aKTIyUiNGjFDlypW1atUqrVu3Tg8++GCOf0TOK4PBoKVLlyoyMlJNmzbV4MGD1ahRI1ksFh08eFCff/65pk6desWfpV566SVt2bJFvXv3Vu/evdWuXTv5+vrqr7/+0tdff61WrVo5Z+O9//779fTTT6t79+7q2bOnLly4oA8++MBlNFyWG264Qe3atVPbtm1VpUoVnThxQm+//bZ8fX31r3/9S1LmiLn33ntP0dHRql+/vgYPHqyIiAidP39ef/zxhz7//HOtWLFCXbp00cqVK2U0GnX33XdnO9drr72mLl266KabbtKIESMUEhKijz76KNttuZJUv359devWTfPnz5fD4VDz5s0VGxurFStWKCIiwuUPzfmp70qybm1duXKlzGazOnTo4NwWGRmpadOmOZcLktFo1MyZM9W7d2/deOON+s9//iNvb28tXLhQoaGhOnLkiEv/J598UsuXL9eIESP0yy+/qEWLFoqJidG7776r+vXrZ/sdo0uXLvLy8tLevXtd3mMNGzZUpUqVtGfPHrVr187lZ/yCQNgHAEUgNTXV5S+VhX0ud7JYLJIkk8mUbZvZbHbpczX9+vVzBnrSPzOG9e3bV1988YVzMpJLb1OwWCy6ePGiczj8vHnzdOHCBZUpU0bBwcGSMme8GjhwoMLCwq7tIi9jt9v1xRdfqHXr1i6zaGXNIrdy5cprPnbWDHKTJ0+W1WqV1Wp1brt0BjnCPgAAihcvLy8ZjcYrPjesuLv0NtQryRrFdum1Llu2TC1bttTixYs1ZswYBQQE6Oabb9YLL7ygJk2aZDvGPffco/r162vq1Knat2+fwsLC9Oyzz+rZZ5+97uto3ry5YmJiNHXqVK1evVrz5s1TUFCQwsPDNXDgQOetlbkJDg7Wli1b9Oqrr+qTTz7RqlWr5O3trWrVqqljx47697//7ew7duxYORwOvfvuu3r88cdVqVIl9enTR4MGDco24cOYMWP09ddfa9asWUpMTFRYWJjatWunp59+Ws2aNXP2u+2227R9+3a9/PLLev/99xUfH6+yZcuqTp06Gj16tPNW6ZUrV6pjx44us8pmad++vdauXatx48bp5ZdfVnBwsO6//34NHz48x3+PpUuXauTIkVq2bJmWLl2qTp06acOGDRo+fLji4uJc+ua1vquJjIzUypUr1aFDB5ffJW655RZNmzZNVatWVf369fN0rPy4//779emnn+r555/XpEmTFBYWpoEDB6pz58669dZbXfpmvRcmTpyo1atXa9GiRapYsaKGDRumyZMnZwvtypYtq+bNm+uXX37JFlRGRkbqgw8+KPAAU5LkAAAUunr16jkkFclXvXr1CqzuRo0aOWrWrJmvfe666y6HJIfFYsm2bezYsQ5Jjn379l3xGBs2bHBIcrz++uvZtsXGxjokOZ544gln26lTpxz/+c9/HGFhYTm+Jn/99Zez74QJExxeXl4OLy8vR8uWLR1jx451bNu2LcfzL1q0KE/XfOLECYckR//+/bNtO3/+vEOS46GHHsrT8R966CHHpd+eP/7446v+m0dGRuapTgAAUDQuXrzo2LNnj+PixYvuLqVIrFy50iHJsXDhQneXUmqdOXPGYTQaHTNnznR3KShEef1sYWQfABSBmjVr6sMPPyySc40bN65IzpObrNm2jh07poiICJdtx44dk8FgyNOMXHnlcDh06623au/evXr88cfVunVrBQcHy2g0atGiRfrggw9cZj178cUXNXjwYH311VfavHmzFixYoFdeeUVPPvmk8/aAwnYtM5xd6wxyAAAAhe2nn36SpBxHiKFoJCQk6JlnnlHv3r3dXQqKAcI+ACgCZrPZ+bDdojiXO7Vp00Zvv/22fvzxx2xh308//aT69esrMDAwT8fKy6xsv/76q3bt2qXnnnsu28Qdlz84N0vt2rWds/qmpqbqtttu0/Tp0zVmzBiFhYXle4avChUqKDAwsEBmOLv8wdHXO4McAABAYfnwww+1Y8cOzZo1Sy1atFDr1q3dXVKpVa9ePU2aNMndZaCYYDZeAMA1O3LkiP744w+Xh/T26NFDfn5+evPNN2Wz2ZztX3zxhQ4dOqR+/frl+fjLli3T0aNHnetZM4YZjUbdddddkv55NozjkhnPpMzZ3lasWOHSlpiYmG3mWrPZrBtuuEGSdO7cOUlyhpFXmpntUln17NixQxs2bHC2Oy6ZRe5StWrVkre3d7YZzrZu3er8y3iW651BDgAAoLA88sgjWrRokXr27KkvvvjC3eUA+B9G9gEAXCxdulR//fWXJCk+Pl5paWl6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7ZNPPlHz5s3l5+eniIgILVq0SJJ05MgR3X///SpXrpyCgoLUv39/JSUlZTt/fl5XT8bIPgBFzrd5cxlDQyVJjvR0XZg2TfZz5zLXk5MVPGFCZr8WLWQIDs42Us+WkKALM2ZIGZnPPzH4+Chw4EBJkql9eyXPmyc5HFeswdS2rbwCAiRJGUeOyPa/B+9at22TuXNnSZmj+1KWLr3+CwYAAAA82KeffipJGjJkSJ73mTNnjkaMGKEGDRroueeekyTnc97mz5+f7VhHjx5VVFSU+vTpo/vvv1/ffvutXnvtNXl7e2v37t26ePGixo0bpzNnzmjGjBmKjo7W3r175eXlOsbpqaeeUkpKijN4XLRokR544AGlpqZq4P9+p8jNzp07FRkZqZCQEA0dOlRVq1bVrl27NGvWLG3ZskWbNm2Sj4+PJkyYILvdrs2bN2vpJb9PdPjfYIMjR46offv2SktL08MPP6w6dero4MGDmjt3rjZs2KAdO3YoODhYknT48GF16tRJVqtVjz76qKpXr64vvvhCt99+e55f68TERHXo0EEHDx7U4MGD1bJlS8XExGju3Llav369tm3bpqCgIJd9xo8fr4sXL2ro0KEymUyaO3euBg4cqIiICN100025nqtz584aP368pkyZoiFDhqhTp06SpIoVK161zi+//FLz5s3TI488onLlyundd9/V4MGD5evrq/HjxysyMlJTpkzR9u3btXDhQpnNZi1YsMC5f35eV09H2AegyBmrVnUu206edAZ9kpR+yV/gDF5e8q5SRemXhX0ZBw44g77L9/EKDJShTJmr3sp76S28qd9/71y2fv+9M+wzde6slGXLJLs9r5cGAAAAlDq///67ypQpo9q1a+ep/7lz5/Tkk0+qTp06+vnnn1WmTBlJ0vDhw9WiRQuNGTNGvXv3VkhIiHOfP//8U5988ol69eolSRo2bJhatWqlV155RXfffbfWrVsng8EgSQoNDdXjjz+utWvX6rbbbnM595kzZ/Trr786Q59hw4apadOmGj16tPr06SO/yx4zdKnBgwercuXK2r59u0s4dsstt6hnz55atmyZBg4cqKioKC1btkybN29W//79sx1n5MiRSk9PV0xMjKpdcjdRr1691K5dO82cOdM58m3ChAk6d+6c1q9f7xwxN2LECPXs2VMxMTF5er2nT5+uAwcO6K233nIZXdm8eXM9+uijmj59ul544QWXfaxWq7Zv3y7f/z066f7771ft2rX15ptvXjHsq127tqKiojRlyhS1b98+x+vPzd69e7Vnzx7VrFlTktSnTx9Vr15dDz74oGbMmKHRo0dLyvw3O3funN577z29/vrrCgwMlJS/19XTcRsvgFLHKzRUPk2aONcD+/dXhc8/V4XPP1fwM884242hofJt1swdJQIAAAAlxoULF7KNDLuStWvXKiUlRY899pgz6JOkMmXK6LHHHlNycrLWrVvnsk/VqlWdQV+Wjh07yuFwaOTIkc6gT5JzNNmBAweynXv48OEuo7uCg4Od4dHGjRtzrfm3337Tr7/+qr59+8pqterMmTPOr44dOyogIEDffvvtVa89MTFRX375pe655x6ZzWaX44SHhysiIsJ5HLvdri+++EKtW7d2Bn1S5q3BTz755FXPlWXFihWqUKFCttGSQ4cOVYUKFbRixYps+zzyyCPOoE/KfP3r1auX42taUKKjo51BnyRVqFBB9evXl5eXl0aMGOHSt1OnTkpPT1fc/+7Qys/rWhoQ9gEocrZjx5zLxkqVZLjkL3Y+DRo4lx12uzKOH8+2v3fdupLRmOM+9pQUOS5cuOL5TTffLMMl+1+x7yXfVAEAAABkV6ZMmRyfn5abw4cPS5IaNWqUbVtW26FDh1zaa9Wqla1v2bJlc9yW1X758+gk6YYbbsjW1rBhwxzPeamsZwBOnDhRFSpUcPkKCwtTSkqKTp06lev+Wfbt2ye73a53330323EqVKigffv2OY9z+vRpJScnq8Elv+9cXnNeHD58WPXr1882A663t7fq1auX43XnNEozNDQ0x9e0oOR0zrJly6py5coymUzZ2qV//o3z87qWBtzGC6DIpcXGypaQIGNoqAw+Pgp+6ilZVqyQwWxWwCXDvNNiYnK8HdcYGqoyTzyh1HXr5FWhgvx793Zus/7441Wf12f+38NhJenid99l3hZ8Ca9y5RTwv2Oa2rRRsr+/HBbLtVwqAAAA4PEaN26s77//XocOHcrzrbz5ZbzCH+tz2+a4yu8F+ZF1rDFjxuT6vLysACovx+nfv78eeuihHPtc6VbiolIUr2lez3mlf/usekrK61pUCPsAFL30dCXNnKkyEybIy89PPvXrK3jcOJcutpMnMyfayIHtxAn5tmolU9u2ru0JCZnP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aKWnp2vQoEEaP368u8ssMitXrtTkyZPdXUaxEBsbq8mTJxfrUZKepnRE6gAAAAAAoFBcvHhRd911lw4dOqTPPvtMPXv2dNn+1FNPafv27dq+fbubKgRKF0b2AQAAAACAa7ZgwQLt27dPY8aMyRb0ZWnTpo0eeeQRl7aVK1fqpptuUkBAgAIDA3XTTTdp1apV2fYNDw9Xly5dtGvXLnXr1k2BgYEKCwvTmDFjlJGRodTUVD3xxBOqWrWqzGazOnfurL1797ocY/HixTIYDFq3bp0mTZqkmjVrymQyqWnTpvroo4/yfK0HDhzQgw8+qMqVK8vX11fh4eEaO3asUlJSnH26dOmiJUuWSMp8rl7W16XP1jtx4oSGDx+uGjVqyNfXV1WqVNGQIUN0+vTpbOfcvXu3br/9dgUEBKhcuXLq169fjv1yk99r//bbb9WnTx/Vrl1bfn5+CgkJ0a233qpNmzblWFuvXr1UtWpVmUwmVapUSV27dtVXX30lSZo0aZIGDRokSeratavztRg4cOBV6/7hhx900003yc/PTxUrVtSjjz6q5OTkXK9v48aN2bZ16dIlx1uHd+zYoXvvvVfly5eXyWRS/fr19dJLLynDQ267Z2QfAAAAAAC4Zp9++qkkaciQIXneZ86cORoxYoQaNGig5557TlJmaBMdHa358+dnO9bRo0cVFRWlPn366P7779e3336r1157Td7e3tq9e7cuXryocePG6cyZM5oxY4aio6O1d+9eeXm5jnF66qmnlJKS4gweFy1apAceeECpqalXDaB27typyMhIhYSEaOjQoapatap27dqlWbNmacuWLdq0aZN8fHw0YcIE2e12bd68WUuXLnXu36FDB0nSkSNH1L59e6Wlpenhhx9WnTp1dPDgQc2dO1cbNmzQjh07FBwcLEk6fPiwOnXqJKvVqkcffVTVq1fXF198odtvvz3Pr3V+r33x4sU6e/asBgwYoGrVqunYsWNasGCBbrnlFm3YsEGdOnWSJCUkJCgyMlKSNGzYMNWsWVNnzpzRjh079PPPP+vOO+9Uz549deLECb399tsaP368brjhBklSnTp1rljrzz//rG7duikoKEhPPfWUQkJC9NFHH2nAgAH5vu7LffXVV+rZs6ciIiI0ZswYlStXTj/++KOee+45xcbGavny5dd9Dncj7AMAAAAAANfs999/V5kyZVS7du089T937pyefPJJ1alTRz///LPKlCkjSRo+fLhatGihMWPGqHfv3goJCXHu8+eff+qTTz5Rr169JGWGS61atdIrr7yiu+++W+vWrZPBYJAkhYaG6vHHH9fatWt12223uZz7zJkz+vXXX51h2rBhw9S0aVONHj1affr0kZ+fX651Dx48WJUrV9b27dsVFBTkbL/lllvUs2dPLVu2TAMHDlRUVJSWLVumzZs3q3///tmOM3LkSKWnpysmJkbVqlVztvfq1Uvt2rXTzJkznRN7TJgwQefOndP69evVtWtXSdKIESPUs2dPxcTE5On1zu+1v/POOwoICHDZd9iwYWrUqJGmTp3qDPu2bNmi06dP6+OPP1bv3r1zPGfTpk3Vvn17vf3224qKilKXLl3yVOuoUaNkt9u1ZcsW1atXT5L0yCOPqGPHjvm65sulpqbq4YcfVtu2bbV+/XrnhDFDhw5Vs2bNNHr0aG3cuDHPdRZX3MYLAAAAAACu2YULF1zCr6tZu3atUlJS9NhjjzmDPkkqU6aMHnvsMSUnJ2vdunUu+1StWtUZ9GXp2LGjHA6HRo4c6Qz6JDnDqAMHDmQ79/Dhw51hlyQFBwdr2LBhOnfuXI63gWb57bff9Ouvv6pv376yWq06c+aM86tjx44KCAjQt99+e9VrT0xM1Jdffql77rlHZrPZ5Tjh4eGKiIhwHsdut+uLL75Q69atnUGflHlr8JNPPnnVc13rtV8a9CUnJyshIUFGo1Ft27bVzz//7LK/JK1Zs0YXLlzIdz25OX36tH788Uf16NHDGfRJkq+vr0aNGnVdx167dq1OnTqlQYMG6fz58y6v/x133CFJefp3LO4Y2QcAAAAAAK5ZmTJllJSUlOf+hw8fliQ1atQo27astkOHDrm016pVK1vfsmXL5rgtqz0hISHbPlm3kV6qYcOGOZ7zUlnPAJw4caImTpyYY59Tp07lun+Wffv2yW63691339W7776bY5+sEZKnT59WcnKyGjRokGvN+ZHXa//zzz81YcIEffPNNzp//rxL/0tD1ZtvvlkDBgzQ4sWLtWzZMrVp00bdunVTnz59rqm+LFm1FNR1Xyrr33Hw4MG59snLv2NxR9gHAAAAAACuWePGjfX999/r0KFDeb6VN7+MRmO+tzkcjgI7f9axxowZk+vz8rJCxrwcp3///nrooYdy7HOlW4kLW3Jysjp37qyUlBT997//VZMmTRQUFCQvLy9NnTpV69evd+m/ZMkSjR07VmvWrNHmzZv16quv6qWXXtLrr7+uRx99tEhqvjSAvNzlE25kvf6vvPKKmjdvnuM+VapUKbDa3IWwDwAAAAAAXLP77rtP33//vRYsWKApU6ZctX9WILh7927dcsstLtv27Nnj0qeg7d27Vz169Mj3OevWrSspM1js1q3bVc+TWwAVEREhg8GgtLS0qx6nQoUKCgwM1B9//JFtW1bN+ZGXa//uu+90/PhxLVy40DmLbpZnnnkmx+M2btxYjRs31tixY3X+/Hm1bdtW48aN04gRI5yz7+ZH1kjNvF53uXLlJElnz57Ntu3w4cPy8fFxrmf9OwYEBOTp37Gk4pl9AAAAAADgmv373/9W/fr1NWPGDK1atSrHPjt37tScOXMkSVFRUQoICNDs2bNdbv9NSkrS7NmzFRgYqKioqEKpde7cuUpMTHSuJyYmat68eQoJCdHNN9+c634tWrRQ48aNNW/evBxv983IyHAJmwIDAyVlD6BCQ0N1xx136PPPP9dPP/2U7TgOh0Px8fGSMoPFu+66Szt27NCGDRtc+kyfPj2PV/yPvFx71ijJy0dFfvvtty7P68u6Nrvd7tIWEhKiWrVqyWKxKDU1VVLur0VuKlasqHbt2mnVqlXav3+/sz0tLU0zZ87M1j/ruX6XP+fxww8/1PHjx13abrvtNoWFhenll1/OsZ6LFy/m65b04oqRfQAAAAAA4Jr5+/vryy+/1J133qno6GjdeuutioqKUmhoqOLj47VhwwZ98803zkklQkJCNH36dI0YMUJt27bVwIEDJUmLFy/WwYMHNX/+fJeJJApS+fLl1bZtW+eotUWLFunIkSNasGCB/P39c93PYDBo6dKlioyMVNOmTTV48GA1atRIFotFBw8e1Oeff66pU6c6r6Vdu3Z688039cgjj+jOO++Uj4+P2rZtq1q1amnu3Lnq2LGjOnfurAEDBqhFixay2+06dOiQVq1apQEDBjhn433xxRe1Zs0a3XXXXRo5cqSqVaumL774whkIFvS1d+zYUZUqVdKYMWMUFxenatWqKTY2VkuXLlWTJk3022+/OY/33nvvaebMmbr33nsVEREhHx8fbdq0Sd9884169+7tvB25TZs28vLy0ksvvaRz584pICBAtWrVUtu2bXOt9bXXXlOXLl100003acSIEQoJCdFHH32U7bZcSapfv766deum+fPny+FwqHnz5oqNjdWKFSsUERGh9PR0Z9+AgAC99957io6OVv369TV48GBFRETo/Pnz+uOPP/T5559rxYoVJX42XsI+AAAAAAAKmN1kkkwmybsE/9ptNue5a0REhGJiYjR//nx99tlneumll5ScnKxy5cqpdevWWrJkifr27evs/8gjj6hy5cp65ZVXNHnyZElSs2bNtGLFCkVHRxf0lThNmzZNmzdv1ltvvaVTp06pXr16WrZsmUttuWnevLliYmI0depUrV69WvPmzVNQUJDCw8M1cOBAl1uSH3jgAcXExOijjz7S8uXLZbfbtWjRItWqVUvVq1fXzp07NW3aNK1atUrvv/++zGazqlevrrvvvlu9e/d2HqdOnTravHmzxowZo9mzZ8tkMql79+5aunSpKlasWODXHhIS4gxmZ8+erYyMDLVq1Upff/213n33XZewr0uXLoqJidGXX36pEydOyGg0qlatWpoxY4bL8/pq1KihhQsXatq0aRo+fLjS09P10EMPXTHsa9++vdauXatx48bp5ZdfVnBwsO6//34NHz5cTZo0ydZ/6dKlGjlypJYtW6alS5eqU6dO2rBhg4YPH664uDiXvrfddpu2b9+ul19+We+//77i4+NVtmxZ1alTR6NHj1bTpk3z9boWRwZHQT6xEgAAAACAUi41NVWHDx9WrVq1ZM5HYIbCs3jxYg0aNEgbNmwo8aO28qs0X7unyetnSwn+EwNQvFitVtlsNneXAaCAnE45LavN6u4yAJmMJoUFhBXZ+YxGo0wmU5GdDwAAAAWLsA8oAFarVd27d5fFYnF3KQAKQLojXXGWONkcBPhwP6PBqHD/cPkYfK7euQD4+/trzZo1BH4AAAAlFGEfUABsNpssFoumTJnCL0eABziZelLT90yXyWiSyYv/p+E+VrtVVptVTzZ8UpXMlQr/fFarxo8fz0h1AACAEoywDyhAJpOJZ3IAHsDsMMvL6CV/H3/5e+c+KxtQ2IwZRqUrXWaTme8vAABch4EDBzpnyi1tSvO1l1Ze7i4AAAAAAAAAQMEg7AMAAAAAAAA8BLfxAgCA69KneR/1adFHkrT+wHq9+cObbq4IAIDiweFwuLsEAB4kr58phH0AAJRSjSo1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DXrmmWf0ySef6KeffpKfn58k6c8//1SHDh3k7e2tJ598UsHBwXrnnXd02223ac2aNerWrZubrwaFIT/vkSwzZ85U+fLlXdpatWpVlGWjiBw9elQnTpzQvffeq2rVqsnb21u//fab3n77bX300UeKjY1VWFiYJD5DAKDUcSBHv//+u8NgMDh69uzp0j5r1iyHJMeyZcvcVBmKC0mOhx56yN1loBj4888/ncuNGjVy1KxZM9e+bdq0cQQFBTmOHj3qbDt69KgjKCjIERUVVZhlwk3y8/546KGHHHxrLj22b9/uOH/+fLb2CRMmOCQ5Zs+e7Wzr1auXw8vLyxETE+NsS0pKctSoUcNRr149h91uL4qSUcTy8x6ZOHGiQ5Lj8OHDRVghiqNPPvnEIckxbdo0ZxufIQBQujA0LRcffvihHA6H/vvf/7q0/+c//5G/v7/ef/999xSGYictLU3JycnuLgNuVLt27Tz1O3jwoLZv365evXqpatWqzvaqVauqV69eWrdunU6ePFlYZcJN8vr+uJTD4dCFCxdkt9sLoSIUF61bt1ZwcHC29j59+kiSfv/9d0lSSkqKVq9erS5duqh58+bOfoGBgfr3v/+t/fv3a/v27UVSM4pWXt8jl7tw4YIyMjIKtTYUXzVr1pQknTt3ThKfIQBQGhH25WL79u3y8vLKdtuU2WxW8+bN+YYISdKnn34qf39/BQUFKSwsTCNHjlRiYqK7y0IxlfW50b59+2zb2rVrJ4fDoZ07dxZ1WSiGgoODFRwcLD8/P0VFRennn392d0koQkePHpUkVaxYUZL066+/ymq15vrZIYmfS0qZy98jl2ratKmCg4NlNpvVoUMHrVmzpqjLQxFLTU3VmTNndPToUX377bcaOnSoJOmOO+6QxGcIAJRGPLMvF8ePH1f58uVlMpmybatataq2bt2qtLQ0+fr6uqE6FAc33nijevXqpYiICF24cEFff/213nzzTW3atElbt25log5kc/z4cUlyGdWXJavt2LFjRVoTipdKlSpp1KhRatWqlQICArRr1y69/vrr6tSpk77++mueqVQK2Gw2vfDCC/L29lbfvn0l8dkBVzm9RyQpJCREQ4YMUYcOHVS2bFnt27dPr7/+uu68804tXLhQAwcOdF/RKFQLFizQyJEjnevh4eF6//331alTJ0l8hgBAaUTYlwuLxZJj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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def machine_scheduleMILO(jobs):\n", " m = pyo.ConcreteModel(\"Job machine scheduling using MILO formulation\")\n", "\n", " m.JOBS = pyo.Set(initialize=jobs.index)\n", " m.PAIRS = pyo.Set(initialize=m.JOBS * m.JOBS, filter=lambda m, i, j: i < j)\n", "\n", " m.maxtime = pyo.Param(initialize=100)\n", " m.start = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", " m.finish = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", " m.past = pyo.Var(m.JOBS, domain=pyo.NonNegativeReals, bounds=(0, m.maxtime))\n", "\n", " # Auxiliary binary variables to linearize the disjunction using the big-M approach\n", " m.z = pyo.Var(m.PAIRS, domain=pyo.Binary)\n", " m.bigM = pyo.Param(initialize=10000)\n", "\n", " @m.Constraint(m.JOBS)\n", " def job_release(m, job):\n", " return m.start[job] >= jobs.loc[job, \"release\"]\n", "\n", " @m.Constraint(m.JOBS)\n", " def job_duration(m, job):\n", " return m.finish[job] == m.start[job] + jobs.loc[job, \"duration\"]\n", "\n", " @m.Constraint(m.JOBS)\n", " def past_due_constraint(m, job):\n", " return m.past[job] >= m.finish[job] - jobs.loc[job, \"due\"]\n", "\n", " @m.Constraint(m.PAIRS)\n", " def machine_deconflict_a(m, job_a, job_b):\n", " return m.finish[job_a] <= m.start[job_b] + m.bigM * (1 - m.z[job_a, job_b])\n", "\n", " @m.Constraint(m.PAIRS)\n", " def machine_deconflict_b(m, job_a, job_b):\n", " return m.finish[job_b] <= m.start[job_a] + m.bigM * m.z[job_a, job_b]\n", "\n", " @m.Objective(sense=pyo.minimize)\n", " def minimize_past(m):\n", " return sum(m.past[job] for job in m.JOBS)\n", "\n", " SOLVER.solve(m)\n", "\n", " return m\n", "\n", "\n", "m = machine_scheduleMILO(jobs)\n", "\n", "optimalschedule_MILO = pd.DataFrame(\n", " {\n", " \"start\": m.start.extract_values(),\n", " \"finish\": m.finish.extract_values(),\n", " \"past\": m.past.extract_values(),\n", " }\n", ")\n", "\n", "display(optimalschedule_MILO)\n", "gantt(jobs, optimalschedule_MILO, \"Minimize total past due\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }