--- /dev/null
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Given a sequence of {F|L|R}, each of which is \"move forward one step\", \"turn left, then move forward one step\", \"turn right, then move forward one step\":\n",
+ "1. which tours are closed?\n",
+ "2. what is the area enclosed by the tour?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "import collections\n",
+ "import enum\n",
+ "import random\n",
+ "import os\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "class Direction(enum.Enum):\n",
+ " UP = 1\n",
+ " RIGHT = 2\n",
+ " DOWN = 3\n",
+ " LEFT = 4\n",
+ " \n",
+ "turn_lefts = {Direction.UP: Direction.LEFT, Direction.LEFT: Direction.DOWN,\n",
+ " Direction.DOWN: Direction.RIGHT, Direction.RIGHT: Direction.UP}\n",
+ "\n",
+ "turn_rights = {Direction.UP: Direction.RIGHT, Direction.RIGHT: Direction.DOWN,\n",
+ " Direction.DOWN: Direction.LEFT, Direction.LEFT: Direction.UP}\n",
+ "\n",
+ "def turn_left(d):\n",
+ " return turn_lefts[d]\n",
+ "\n",
+ "def turn_right(d):\n",
+ " return turn_rights[d]\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "Step = collections.namedtuple('Step', ['x', 'y', 'dir'])\n",
+ "Mistake = collections.namedtuple('Mistake', ['i', 'step'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def advance(step, d):\n",
+ " if d == Direction.UP:\n",
+ " return Step(step.x, step.y+1, d)\n",
+ " elif d == Direction.DOWN:\n",
+ " return Step(step.x, step.y-1, d)\n",
+ " elif d == Direction.LEFT:\n",
+ " return Step(step.x-1, step.y, d)\n",
+ " elif d == Direction.RIGHT:\n",
+ " return Step(step.x+1, step.y, d)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def trace_tour(tour, startx=0, starty=0, startdir=Direction.RIGHT):\n",
+ " current = Step(startx, starty, startdir)\n",
+ " trace = [current]\n",
+ " for s in tour:\n",
+ " if s == 'F':\n",
+ " current = advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " current = advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " current = advance(current, turn_right(current.dir))\n",
+ " trace += [current]\n",
+ " return trace "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def positions(trace):\n",
+ " return [(s.x, s.y) for s in trace]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def valid(trace):\n",
+ " return (trace[-1].x == 0 \n",
+ " and trace[-1].y == 0 \n",
+ " and len(set(positions(trace))) + 1 == len(trace))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def chunks(items, n=2):\n",
+ " return [items[i:i+n] for i in range(len(items) - n + 1)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Using the [Shoelace formula](https://en.wikipedia.org/wiki/Shoelace_formula)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def shoelace(trace):\n",
+ " return abs(sum(s.x * t.y - t.x * s.y for s, t in chunks(trace, 2))) // 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def step(s, current):\n",
+ " if s == 'F':\n",
+ " return advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " return advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " return advance(current, turn_right(current.dir))\n",
+ " else:\n",
+ " raise ValueError"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def valid_prefix(tour):\n",
+ " current = Step(0, 0, Direction.RIGHT)\n",
+ " prefix = []\n",
+ " posns = []\n",
+ " for s in tour:\n",
+ " current = step(s, current)\n",
+ " prefix += [s]\n",
+ " if (current.x, current.y) in posns:\n",
+ " return ''\n",
+ " elif current.x == 0 and current.y == 0: \n",
+ " return ''.join(prefix)\n",
+ " posns += [(current.x, current.y)]\n",
+ " if current.x == 0 and current.y == 0:\n",
+ " return ''.join(prefix)\n",
+ " else:\n",
+ " return ''"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def mistake_positions(trace, debug=False):\n",
+ " mistakes = []\n",
+ " current = trace[0]\n",
+ " posns = [(0, 0)]\n",
+ " for i, current in enumerate(trace[1:]):\n",
+ " if (current.x, current.y) in posns:\n",
+ " if debug: print(i, current)\n",
+ " mistakes += [Mistake(i+1, current)]\n",
+ " posns += [(current.x, current.y)]\n",
+ " if (current.x, current.y) == (0, 0):\n",
+ " return mistakes[:-1]\n",
+ " else:\n",
+ " return mistakes + [Mistake(len(trace)+1, current)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def returns_to_origin(mistake_positions):\n",
+ " return [i for i, m in mistake_positions\n",
+ " if (m.x, m.y) == (0, 0)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def random_walk(steps=1000):\n",
+ " return ''.join(random.choice('FFLR') for _ in range(steps))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def bounds(trace):\n",
+ " return (max(s.x for s in trace),\n",
+ " max(s.y for s in trace),\n",
+ " min(s.x for s in trace),\n",
+ " min(s.y for s in trace))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def plot_trace(trace, colour='k', xybounds=None, fig=None, subplot_details=None, filename=None):\n",
+ " plt.axis('on')\n",
+ " plt.axes().set_aspect('equal')\n",
+ " for s, t in chunks(trace, 2):\n",
+ " w, h = plot_wh[t.dir]\n",
+ " plt.arrow(s.x, s.y, w, h, head_width=0.1, head_length=0.1, fc=colour, ec=colour, length_includes_head=True)\n",
+ " xh, yh, xl, yl = bounds(trace)\n",
+ " if xybounds is not None: \n",
+ " bxh, byh, bxl, byl = xybounds\n",
+ " plt.xlim([min(xl, bxl)-1, max(xh, bxh)+1])\n",
+ " plt.ylim([min(yl, byl)-1, max(yh, byh)+1])\n",
+ " else:\n",
+ " plt.xlim([xl-1, xh+1])\n",
+ " plt.ylim([yl-1, yh+1])\n",
+ " if filename:\n",
+ " plt.savefig(filename)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def trim_loop(tour):\n",
+ " trace = trace_tour(tour)\n",
+ " mistakes = mistake_positions(trace)\n",
+ " end_mistake_index = 0\n",
+ "# print('end_mistake_index {} pointing to trace position {}; {} mistakes and {} in trace; {}'.format(end_mistake_index, mistakes[end_mistake_index].i, len(mistakes), len(trace), mistakes))\n",
+ " # while this mistake extends to the next step in the trace...\n",
+ " while (mistakes[end_mistake_index].i + 1 < len(trace) and \n",
+ " end_mistake_index + 1 < len(mistakes) and\n",
+ " mistakes[end_mistake_index].i + 1 == \n",
+ " mistakes[end_mistake_index + 1].i):\n",
+ "# print('end_mistake_index {} pointing to trace position {}; {} mistakes and {} in trace'.format(end_mistake_index, mistakes[end_mistake_index].i, len(mistakes), len(trace), mistakes))\n",
+ " # push this mistake finish point later\n",
+ " end_mistake_index += 1\n",
+ " mistake = mistakes[end_mistake_index]\n",
+ " \n",
+ " # find the first location that mentions where this mistake ends (which the point where the loop starts)\n",
+ " mistake_loop_start = max(i for i, loc in enumerate(trace[:mistake.i])\n",
+ " if (loc.x, loc.y) == (mistake.step.x, mistake.step.y))\n",
+ "# print('Dealing with mistake from', mistake_loop_start, 'to', mistake.i, ', trace has len', len(trace))\n",
+ " \n",
+ " # direction before entering the loop\n",
+ " direction_before = trace[mistake_loop_start].dir\n",
+ " \n",
+ " # find the new instruction to turn from heading before the loop to heading after the loop\n",
+ " new_instruction = 'F'\n",
+ " if (mistake.i + 1) < len(trace):\n",
+ " if turn_left(direction_before) == trace[mistake.i + 1].dir:\n",
+ " new_instruction = 'L'\n",
+ " if turn_right(direction_before) == trace[mistake.i + 1].dir:\n",
+ " new_instruction = 'R'\n",
+ "# if (mistake.i + 1) < len(trace):\n",
+ "# print('turning from', direction_before, 'to', trace[mistake.i + 1].dir, 'with', new_instruction )\n",
+ "# else:\n",
+ "# print('turning from', direction_before, 'to BEYOND END', 'with', new_instruction )\n",
+ " return tour[:mistake_loop_start] + new_instruction + tour[mistake.i+1:]\n",
+ "# return mistake, mistake_loop_start, trace[mistake_loop_start-2:mistake_loop_start+8]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def trim_all_loops(tour, mistake_reduction_attempt_limit=10):\n",
+ " trace = trace_tour(tour)\n",
+ " mistake_limit = 1\n",
+ " if trace[-1].x == 0 and trace[-1].y == 0:\n",
+ " mistake_limit = 0\n",
+ " mistakes = mistake_positions(trace)\n",
+ " \n",
+ " old_mistake_count = len(mistakes)\n",
+ " mistake_reduction_tries = 0\n",
+ " \n",
+ " while len(mistakes) > mistake_limit and mistake_reduction_tries < mistake_reduction_attempt_limit:\n",
+ " tour = trim_loop(tour)\n",
+ " trace = trace_tour(tour)\n",
+ " mistakes = mistake_positions(trace)\n",
+ " if len(mistakes) < old_mistake_count:\n",
+ " old_mistake_count = len(mistakes)\n",
+ " mistake_reduction_tries = 0\n",
+ " else:\n",
+ " mistake_reduction_tries += 1\n",
+ " if mistake_reduction_tries >= mistake_reduction_attempt_limit:\n",
+ " return ''\n",
+ " else:\n",
+ " return tour"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def reverse_tour(tour):\n",
+ " def swap(tour_step):\n",
+ " if tour_step == 'R':\n",
+ " return 'L'\n",
+ " elif tour_step == 'L':\n",
+ " return 'R'\n",
+ " else:\n",
+ " return tour_step\n",
+ " \n",
+ " return ''.join(swap(s) for s in reversed(tour))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def wander_near(locus, current, limit=10):\n",
+ " valid_proposal = False\n",
+ " while not valid_proposal:\n",
+ " s = random.choice('FFFRL')\n",
+ " if s == 'F':\n",
+ " proposed = advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " proposed = advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " proposed = advance(current, turn_right(current.dir))\n",
+ " if abs(proposed.x - locus.x) < limit and abs(proposed.y - locus.y) < limit:\n",
+ " valid_proposal = True\n",
+ "# print('At {} going to {} by step {} to {}'.format(current, locus, s, proposed))\n",
+ " return s, proposed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def seek(goal, current):\n",
+ " dx = current.x - goal.x\n",
+ " dy = current.y - goal.y\n",
+ "\n",
+ " if dx < 0 and abs(dx) > abs(dy): # to the left\n",
+ " side = 'left'\n",
+ " if current.dir == Direction.RIGHT:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.UP:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " elif dx > 0 and abs(dx) > abs(dy): # to the right\n",
+ " side = 'right'\n",
+ " if current.dir == Direction.LEFT:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.UP:\n",
+ " s = 'L'\n",
+ " else:\n",
+ " s = 'R'\n",
+ " elif dy > 0 and abs(dx) <= abs(dy): # above\n",
+ " side = 'above'\n",
+ " if current.dir == Direction.DOWN:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.RIGHT:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " else: # below\n",
+ " side = 'below'\n",
+ " if current.dir == Direction.UP:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.LEFT:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " if s == 'F':\n",
+ " proposed = advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " proposed = advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " proposed = advance(current, turn_right(current.dir))\n",
+ " \n",
+ "# print('At {} going to {}, currently {}, by step {} to {}'.format(current, goal, side, s, proposed))\n",
+ "\n",
+ " return s, proposed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def guided_walk(loci, locus_limit=5, wander_limit=10, seek_step_limit=20):\n",
+ " trail = ''\n",
+ " current = Step(0, 0, Direction.RIGHT) \n",
+ " l = 0\n",
+ " finished = False\n",
+ " while not finished:\n",
+ " if abs(current.x - loci[l].x) < locus_limit and abs(current.y - loci[l].y) < locus_limit:\n",
+ " l += 1\n",
+ " if l == len(loci) - 1:\n",
+ " finished = True\n",
+ " s, proposed = wander_near(loci[l], current, limit=wander_limit)\n",
+ " trail += s\n",
+ " current = proposed\n",
+ "# print('!! Finished loci')\n",
+ " seek_steps = 0\n",
+ " while not (current.x == loci[l].x and current.y == loci[l].y) and seek_steps < seek_step_limit:\n",
+ "# error = max(abs(current.x - loci[l].x), abs(current.y - loci[l].y))\n",
+ "# s, proposed = wander_near(loci[l], current, limit=error+1)\n",
+ " s, proposed = seek(loci[l], current)\n",
+ " trail += s\n",
+ " current = proposed\n",
+ " seek_steps += 1\n",
+ " if seek_steps >= seek_step_limit:\n",
+ " return ''\n",
+ " else:\n",
+ " return trail"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def square_tour(a=80):\n",
+ " \"a is width of square\"\n",
+ " return ('F' * a + 'L') * 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def cross_tour(a=50, b=40):\n",
+ " \"a is width of cross arm, b is length of cross arm\"\n",
+ " return ('F' * a + 'L' + 'F' * b + 'R' + 'F' * b + 'L') * 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def quincunx_tour(a=60, b=30, c=50):\n",
+ " \"a is length of indent, b is indent/outdent distance, c is outdent outer length\"\n",
+ " return ('F' * a + 'R' + 'F' * b + 'L' + 'F' * c + 'L' + 'F' * c + 'L' + 'F' * b + 'R') * 4\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "heart_points = [Step(60, 50, Direction.UP), Step(50, 90, Direction.UP),\n",
+ " Step(20, 70, Direction.UP), \n",
+ " Step(-40, 90, Direction.UP), Step(-60, 80, Direction.UP), \n",
+ " Step(0, 0, Direction.RIGHT)]\n",
+ "\n",
+ "heart_tour = ''\n",
+ "current = Step(0, 0, Direction.RIGHT)\n",
+ "\n",
+ "for hp in heart_points:\n",
+ " while not (current.x == hp.x and current.y == hp.y):\n",
+ " s, proposed = seek(hp, current)\n",
+ " heart_tour += s\n",
+ " current = proposed\n",
+ "\n",
+ "def heart_tour_func(): return heart_tour"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# success_count = 0\n",
+ "# while success_count <= 20:\n",
+ "# lc = trace_tour(square_tour(a=10))\n",
+ "# rw = guided_walk(lc, wander_limit=4, locus_limit=2)\n",
+ "# if rw:\n",
+ "# rw_trimmed = trim_all_loops(rw)\n",
+ "# if len(rw_trimmed) > 10:\n",
+ "# with open('small-squares.txt', 'a') as f:\n",
+ "# f.write(rw_trimmed + '\\n')\n",
+ "# success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# success_count = 0\n",
+ "# while success_count <= 20:\n",
+ "# lc = trace_tour(square_tour())\n",
+ "# rw = guided_walk(lc)\n",
+ "# if rw:\n",
+ "# rw_trimmed = trim_all_loops(rw)\n",
+ "# if len(rw_trimmed) > 10:\n",
+ "# with open('large-squares.txt', 'a') as f:\n",
+ "# f.write(rw_trimmed + '\\n')\n",
+ "# success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# success_count = 0\n",
+ "# while success_count <= 20:\n",
+ "# lc = trace_tour(cross_tour())\n",
+ "# rw = guided_walk(lc)\n",
+ "# if rw:\n",
+ "# rw_trimmed = trim_all_loops(rw)\n",
+ "# if len(rw_trimmed) > 10:\n",
+ "# with open('cross.txt', 'a') as f:\n",
+ "# f.write(rw_trimmed + '\\n')\n",
+ "# success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# success_count = 0\n",
+ "# while success_count <= 20:\n",
+ "# lc = trace_tour(quincunx_tour())\n",
+ "# rw = guided_walk(lc)\n",
+ "# if rw:\n",
+ "# rw_trimmed = trim_all_loops(rw)\n",
+ "# if len(rw_trimmed) > 10:\n",
+ "# with open('quincunx.txt', 'a') as f:\n",
+ "# f.write(rw_trimmed + '\\n')\n",
+ "# success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "patterns = [square_tour, cross_tour, quincunx_tour, heart_tour_func]\n",
+ "tours_filename = 'tours.txt'\n",
+ "\n",
+ "try:\n",
+ " os.remove(tours_filename)\n",
+ "except OSError:\n",
+ " pass\n",
+ "\n",
+ "success_count = 0\n",
+ "while success_count < 100:\n",
+ " lc = trace_tour(random.choice(patterns)())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open(tours_filename, 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.5.2+"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
},
{
"cell_type": "code",
- "execution_count": 69,
+ "execution_count": 1301,
"metadata": {
"collapsed": true
},
"source": [
"import collections\n",
"import enum\n",
- "import random"
+ "import random\n",
+ "import os\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n"
]
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 2,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 82,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
- "Step = collections.namedtuple('Step', ['x', 'y', 'dir'])"
+ "Step = collections.namedtuple('Step', ['x', 'y', 'dir'])\n",
+ "Mistake = collections.namedtuple('Mistake', ['i', 'step'])"
]
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 4,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 489,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
- "def trace_tour(tour):\n",
- " current = Step(0, 0, Direction.RIGHT)\n",
+ "def trace_tour(tour, startx=0, starty=0, startdir=Direction.RIGHT):\n",
+ " current = Step(startx, starty, startdir)\n",
" trace = [current]\n",
" for s in tour:\n",
" if s == 'F':\n",
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 490,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 491,
"metadata": {},
"outputs": [
{
"Step(x=1, y=2, dir=3)"
]
},
- "execution_count": 10,
+ "execution_count": 491,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
"__main__.Step"
]
},
- "execution_count": 11,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 9,
"metadata": {},
"outputs": [
{
"<Direction.UP: 1>"
]
},
- "execution_count": 22,
+ "execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
"<Direction.RIGHT: 2>"
]
},
- "execution_count": 23,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "{<Direction.LEFT: 4>: <Direction.UP: 1>,\n",
- " <Direction.UP: 1>: <Direction.RIGHT: 2>,\n",
+ "{<Direction.RIGHT: 2>: <Direction.DOWN: 3>,\n",
" <Direction.DOWN: 3>: <Direction.LEFT: 4>,\n",
- " <Direction.RIGHT: 2>: <Direction.DOWN: 3>}"
+ " <Direction.LEFT: 4>: <Direction.UP: 1>,\n",
+ " <Direction.UP: 1>: <Direction.RIGHT: 2>}"
]
},
- "execution_count": 21,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 494,
"metadata": {},
"outputs": [
{
" Step(x=2, y=2, dir=<Direction.UP: 1>)]"
]
},
- "execution_count": 31,
+ "execution_count": 494,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
" Step(x=0, y=0, dir=<Direction.DOWN: 3>)]"
]
},
- "execution_count": 33,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
" Step(x=0, y=0, dir=<Direction.RIGHT: 2>)]"
]
},
- "execution_count": 34,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
" Step(x=0, y=0, dir=<Direction.UP: 1>)]"
]
},
- "execution_count": 35,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 112,
+ "execution_count": 16,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 113,
+ "execution_count": 17,
"metadata": {},
"outputs": [
{
" (0, 0)]"
]
},
- "execution_count": 113,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 114,
+ "execution_count": 18,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 115,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
"True"
]
},
- "execution_count": 115,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 116,
+ "execution_count": 20,
"metadata": {},
"outputs": [
{
"False"
]
},
- "execution_count": 116,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 117,
+ "execution_count": 21,
"metadata": {},
"outputs": [
{
"False"
]
},
- "execution_count": 117,
+ "execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 118,
+ "execution_count": 22,
"metadata": {},
"outputs": [
{
"False"
]
},
- "execution_count": 118,
+ "execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 119,
+ "execution_count": 23,
"metadata": {},
"outputs": [
{
"True"
]
},
- "execution_count": 119,
+ "execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 120,
+ "execution_count": 24,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 121,
+ "execution_count": 25,
"metadata": {},
"outputs": [
{
" 'tuvwxyz']"
]
},
- "execution_count": 121,
+ "execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 122,
+ "execution_count": 26,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 123,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
"4"
]
},
- "execution_count": 123,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 124,
+ "execution_count": 28,
"metadata": {},
"outputs": [
{
"9"
]
},
- "execution_count": 124,
+ "execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 125,
+ "execution_count": 29,
"metadata": {},
"outputs": [
{
"15"
]
},
- "execution_count": 125,
+ "execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 329,
- "metadata": {},
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"def step(s, current):\n",
},
{
"cell_type": "code",
- "execution_count": 507,
- "metadata": {},
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"def valid_prefix(tour):\n",
},
{
"cell_type": "code",
- "execution_count": 552,
- "metadata": {},
+ "execution_count": 267,
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
- "def mistake_positions(tour, debug=False):\n",
+ "def mistake_positions(trace, debug=False):\n",
" mistakes = []\n",
- " current = Step(0, 0, Direction.RIGHT)\n",
+ " current = trace[0]\n",
" posns = [(0, 0)]\n",
- " for i, s in enumerate(tour):\n",
- " current = step(s, current)\n",
+ " for i, current in enumerate(trace[1:]):\n",
" if (current.x, current.y) in posns:\n",
" if debug: print(i, current)\n",
- " mistakes += [(i+1, current)]\n",
+ " mistakes += [Mistake(i+1, current)]\n",
" posns += [(current.x, current.y)]\n",
" if (current.x, current.y) == (0, 0):\n",
" return mistakes[:-1]\n",
" else:\n",
- " return mistakes + [(len(tour)+1, current)]"
+ " return mistakes + [Mistake(len(trace)+1, current)]"
]
},
{
"cell_type": "code",
- "execution_count": 550,
+ "execution_count": 84,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 492,
+ "execution_count": 34,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 493,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
"'FFLRLLFLRL'"
]
},
- "execution_count": 493,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 494,
+ "execution_count": 36,
"metadata": {
"scrolled": true
},
"True"
]
},
- "execution_count": 494,
+ "execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 495,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "False"
+ "True"
]
},
- "execution_count": 495,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 526,
+ "execution_count": 89,
"metadata": {},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "9 Step(x=0, y=0, dir=<Direction.DOWN: 3>)\n"
- ]
- },
{
"data": {
"text/plain": [
- "[(10, Step(x=0, y=0, dir=<Direction.DOWN: 3>)),\n",
- " (12, Step(x=0, y=-1, dir=<Direction.DOWN: 3>))]"
+ "[Mistake(i=1, step=Step(x=0, y=0, dir=<Direction.RIGHT: 2>)),\n",
+ " Mistake(i=11, step=Step(x=0, y=0, dir=<Direction.DOWN: 3>)),\n",
+ " (13, Step(x=0, y=-1, dir=<Direction.DOWN: 3>))]"
]
},
- "execution_count": 526,
+ "execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "mistake_positions(sample_tours[0] + 'F')"
+ "mistake_positions(trace_tour(sample_tours[0] + 'F'))"
]
},
{
"cell_type": "code",
- "execution_count": 527,
+ "execution_count": 90,
"metadata": {},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "9 Step(x=0, y=0, dir=<Direction.DOWN: 3>)\n",
- "12 Step(x=1, y=0, dir=<Direction.UP: 1>)\n",
- "13 Step(x=0, y=0, dir=<Direction.LEFT: 4>)\n",
- "14 Step(x=0, y=-1, dir=<Direction.DOWN: 3>)\n"
- ]
- },
{
"data": {
"text/plain": [
- "[(10, Step(x=0, y=0, dir=<Direction.DOWN: 3>)),\n",
- " (13, Step(x=1, y=0, dir=<Direction.UP: 1>)),\n",
- " (14, Step(x=0, y=0, dir=<Direction.LEFT: 4>)),\n",
- " (15, Step(x=0, y=-1, dir=<Direction.DOWN: 3>)),\n",
- " (16, Step(x=0, y=-1, dir=<Direction.DOWN: 3>))]"
+ "[Mistake(i=1, step=Step(x=0, y=0, dir=<Direction.RIGHT: 2>)),\n",
+ " Mistake(i=11, step=Step(x=0, y=0, dir=<Direction.DOWN: 3>)),\n",
+ " Mistake(i=14, step=Step(x=1, y=0, dir=<Direction.UP: 1>)),\n",
+ " Mistake(i=15, step=Step(x=0, y=0, dir=<Direction.LEFT: 4>)),\n",
+ " Mistake(i=16, step=Step(x=0, y=-1, dir=<Direction.DOWN: 3>)),\n",
+ " (17, Step(x=0, y=-1, dir=<Direction.DOWN: 3>))]"
]
},
- "execution_count": 527,
+ "execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "mistake_positions(sample_tours[0] + 'FLLLL')"
+ "mistake_positions(trace_tour(sample_tours[0] + 'FLLLL'))"
]
},
{
"cell_type": "code",
- "execution_count": 528,
+ "execution_count": 91,
"metadata": {},
"outputs": [
{
"'FFLRLLFLRL'"
]
},
- "execution_count": 528,
+ "execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 375,
+ "execution_count": 574,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def random_walk(steps=1000):\n",
- " return ''.join(random.choice('FLR') for _ in range(steps))"
+ " return ''.join(random.choice('FFLR') for _ in range(steps))"
]
},
{
"cell_type": "code",
- "execution_count": 548,
+ "execution_count": 42,
"metadata": {},
"outputs": [
{
"''"
]
},
- "execution_count": 548,
+ "execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 342,
+ "execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'FLFFLRFRLFRRRR'"
+ "''"
]
},
- "execution_count": 342,
+ "execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "valid_prefix(random_walk(1000), allowed_mistakes=1)"
+ "valid_prefix(random_walk(1000))"
]
},
{
"cell_type": "code",
- "execution_count": 440,
+ "execution_count": 45,
"metadata": {
+ "collapsed": true,
"scrolled": true
},
"outputs": [],
},
{
"cell_type": "code",
- "execution_count": 441,
+ "execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "['LFRRFLLRFLRLLRFLRLFLRFLFFFRLLRLL',\n",
- " 'LRFFLFFFRLLRFRFFLRRFRLFLRFRLFRLRFFFF',\n",
- " 'FFFLRFRLRLFLRLFLFFFFFRFFRLLFFFLRLFFLRF',\n",
- " 'LFRLFFFFRLLRFFLLFFFRFFLLRFRLFLRFLF',\n",
- " 'LFLRRFLLRRFRFLFFRFFFFRRLLRFLRFRRLF',\n",
- " 'FLRLRLRFRLRFRLLFRFFRRLFRFLFLRRLR',\n",
- " 'RFRRFFFFRLRFLFRRLRFFFFRRFFLLFFRF',\n",
- " 'FFLFLRLFRLFFRFFLLFFRLLFRRLLRLFFF',\n",
- " 'RFFLFRRLRRLRLLFRFRLLRRLRFRLLRRFFRLFFLR',\n",
- " 'RFLFFLFRLFLRLFLRRLFFLRFLFLFRLLRF']"
+ "['RFLFFLFFFFFFLRRLLRLFFFLFFFLRFRLLFFRR',\n",
+ " 'FLRLFLFFLFRLLRRFLFRFLLFFFLLRRFLF',\n",
+ " 'LRFLFRFRLLRLRLRRLRRFLFRLRLFRLRRFLLRRLFFRFRRL',\n",
+ " 'RFLLRFLFFFFLRFFLFLFLRFRFLRRLLFLFRL',\n",
+ " 'LFFRLFRLLRFFLLRFLFFLRFRFFLLRLRLF',\n",
+ " 'LRFRLFRFFLRRLRLFFRFFFRFLRFFFFRLR',\n",
+ " 'LRFLFFFRRLLRFFFRRLFRFFRLLFLRFRFLRRLR',\n",
+ " 'LLRRLFLFRLFFFFFFLLRLFRLRFLFFRFRLRFLLRFLFLRFLFFFF',\n",
+ " 'FLFRFFRFLRFLLRFRFRLFRRLLRRFLFLRRFFLR',\n",
+ " 'FRFFFRFFRRLLFRFLRFRLFLRRFRFLFFRFRL']"
]
},
- "execution_count": 441,
+ "execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 350,
+ "execution_count": 47,
"metadata": {},
"outputs": [
{
" Step(x=0, y=0, dir=<Direction.DOWN: 3>)]"
]
},
- "execution_count": 350,
+ "execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 147,
+ "execution_count": 48,
"metadata": {},
"outputs": [
{
"(-1, 3)"
]
},
- "execution_count": 147,
+ "execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
"data": {
"image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ef4c240>"
+ "<matplotlib.figure.Figure at 0x7f40411df278>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 135,
+ "execution_count": 49,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 136,
+ "execution_count": 50,
"metadata": {},
"outputs": [
{
"(0, 2, -13, -13)"
]
},
- "execution_count": 136,
+ "execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 148,
+ "execution_count": 51,
"metadata": {
"collapsed": true
},
},
{
"cell_type": "code",
- "execution_count": 214,
+ "execution_count": 1198,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
- "def plot_trace(trace):\n",
+ "def plot_trace(trace, colour='k', xybounds=None, fig=None, subplot_details=None, filename=None):\n",
" plt.axis('on')\n",
" plt.axes().set_aspect('equal')\n",
" for s, t in chunks(trace, 2):\n",
" w, h = plot_wh[t.dir]\n",
- " plt.arrow(s.x, s.y, w, h, head_width=0.1, head_length=0.1, fc='k', ec='k', length_includes_head=True)\n",
+ " plt.arrow(s.x, s.y, w, h, head_width=0.1, head_length=0.1, fc=colour, ec=colour, length_includes_head=True)\n",
" xh, yh, xl, yl = bounds(trace)\n",
- " plt.xlim([xl-1, xh+1])\n",
- " plt.ylim([yl-1, yh+1])"
+ " if xybounds is not None: \n",
+ " bxh, byh, bxl, byl = xybounds\n",
+ " plt.xlim([min(xl, bxl)-1, max(xh, bxh)+1])\n",
+ " plt.ylim([min(yl, byl)-1, max(yh, byh)+1])\n",
+ " else:\n",
+ " plt.xlim([xl-1, xh+1])\n",
+ " plt.ylim([yl-1, yh+1])\n",
+ " if filename:\n",
+ " plt.savefig(filename)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 995,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# def plot_trace(trace, colour='k', xybounds=None, fig=None, subplot_details=None):\n",
+ "# plt.ioff()\n",
+ "# if fig is None:\n",
+ "# fig = plt.figure()\n",
+ "# ax = fig.gca()\n",
+ "# if subplot_details is not None:\n",
+ "# ax = fig.add_subplot(*subplot_details)\n",
+ "# plt.axis('on')\n",
+ "# # plt.axes().set_aspect('equal')\n",
+ "# ax.set_aspect('equal')\n",
+ "# for s, t in chunks(trace, 2):\n",
+ "# w, h = plot_wh[t.dir]\n",
+ "# ax.arrow(s.x, s.y, w, h, head_width=0.1, head_length=0.1, fc=colour, ec=colour, length_includes_head=True)\n",
+ "# xh, yh, xl, yl = bounds(trace)\n",
+ "# if xybounds is not None: \n",
+ "# bxh, byh, bxl, byl = xybounds\n",
+ "# ax.set_xlim([min(xl, bxl)-1, max(xh, bxh)+1])\n",
+ "# ax.set_ylim([min(yl, byl)-1, max(yh, byh)+1])\n",
+ "# else:\n",
+ "# ax.set_xlim([xl-1, xh+1])\n",
+ "# ax.set_ylim([yl-1, yh+1])\n",
+ "# plt.close(fig)\n",
+ "# return fig"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 967,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def pqr(p, q, r):\n",
+ " return '{}:{};{}'.format(p, q, r)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 968,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'1:2;3'"
+ ]
+ },
+ "execution_count": 968,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pqrt = (1, 2, 3)\n",
+ "pqr(*pqrt)"
]
},
{
"cell_type": "code",
- "execution_count": 514,
+ "execution_count": 1002,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nf/99T6fT/tnPftY3b95clDOOVuG5N+xzOcmXFr/Ln19aPOXXZymdJkD/0mrdunXceuutABw8eJBx\n48YVzfsNjhw5grtTVVXFxRdfzO9//3sAampq2LBhA3PmzIk84akOHDjAJz7xCcyGXbFKggr20iKA\nu//C3f/a3S8eLASjwYQJE4omBADV1dWMGTOGjRs38uabbw48wbq7u3nggQciTze4c889VyEoYsXz\n0y1n5Oqrr6alpYWGhgYAHnroIVauXBl5KilFejtyiaurq2PZsmV0dnbS2trKsmXLYo8kJUorAxEB\nFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEU\nAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQD\nEQkUAxEBFAMRCRQDEQEUg484evQo48ePp7y8HIAFCxZQWVnJ7t27I08mcvblFQMzu9XMfmtmJ8zs\nc0kNFUtFRQWHDx/m+PHjALg7vb29nHPOOZEnEzn78l0Z7ARuBrYmMEt0ZWVlLFmy5CMfy2QyNDQ0\nRJro9J5//nk2b96Mu8ceRUaJvGLg7h3uvhewhOaJrqWlZeA0AWDNmjURpzm9RYsWceONN3LFFVco\nCpIIS+KHyMx+Cdzr7r8ZYhsvlR/Y5cuX861vfYu6ujquvfba2OMM6ic/+cnA/ZqaGsaMGcOf/vQn\nRUFOYWa4+7C/sNM57GgTcP7JHwIceNDdfzqSoVasWDFwP5PJkMlkRvLlBdPS0sL69evZs2fPR550\nxaq3t5cjR47w9a9/PfYoUgSy2SzZbHbEX6eVQYn6/Oc/z/bt2ykvL2fhwoW0tLTwqU99KvZYUoQS\nWxmM5JgJ7kuGMXfuXKZOnaoISGLyWhmY2VeAR4E64BCw3d1vPM22WhmIRJDryiCR04RcKAYiceQa\nA70DUUQAxUBEAsVARADFQEQCxUBEAMVARALFQEQAxUBEAsVARADFQEQCxUBEAMVARALFQEQAxUBE\nAsVARADFQEQCxUBEAMVARALFQEQAxUBEAsVARADFQEQCxUBEAMVARALFQEQAxUBEAsVARADFQEQC\nxUBEAMVARALFQEQAxUBEAsVARADFQEQCxUBEgDxjYGaPmNluM9tuZhvMrDapwUSksPJdGfw3MMXd\nLwf2Ag/kP1LxyGazsUcYkVKbFzRzMckrBu6+2d37wsMXgIb8RyoepfafXmrzgmYuJkleM/gnYGOC\n+xORAkoPt4GZbQLOP/lDgAMPuvtPwzYPAsfcfe1ZmVJEzjpz9/x2YPaPwNeAme7eM8R2+R1IRM6Y\nu9tw2wy7MhiKmd0A3AfMGCoEuQ4jIvHktTIws71ABXAgfOgFd789icFEpLDyPk0QkdGhoO9ANLNb\nzey3ZnbCzD5XyGOPhJndYGZ7zOx/zGxJ7HmGY2ZPmtk+M9sRe5ZcmFmDmW0xs11mttPM7oo903DM\nrNLMXjSzV8PMzbFnyoWZlZnZb8zsP4fbttBvR94J3AxsLfBxc2ZmZcBjwBxgCrDQzCbHnWpYT9E/\nb6k4Dtzj7pcCXwDuKPbvcbgmdp27XwFcDtxoZtMij5WLRcCuXDYsaAzcvcPd99L/8mSxmgbsdfc/\nuPsx4MfA/MgzDcndtwEHY8+RK3d/z923h/tdwG6gPu5Uw3P3w+FuJf0X34v6HNvMGoAvAz/MZXv9\nodKp6oG3T3r8DiXwg1qqzGwi/b9pX4w7yfDCkvtV4D1gk7v/OvZMw/gXoIkco5V4DMxsk5ntOOm2\nM/z7N0kf6ywZbNVS1L8BSpWZjQXWA4vCCqGouXtfOE1oAK42s0tjz3Q6ZnYTsC+swIwcVuN5vc9g\nMO4+K+l9Ftg7wKdPetwAvBtpllHLzNL0h2CNuz8be56RcPdOM8sCN5Dj+XgEjcA8M/syUA2cY2b/\n7u7/cLoviHmaUKzXDX4NTDKzz5hZBfC3wLBXYotATvUvIj8Cdrn7d2MPkgszqzOzceF+NXA9sCfu\nVKfn7kvd/dPufhH9P8NbhgoBFP6lxa+Y2dvAdKDNzIruD5vc/QTwz/T/efbrwI/dfXfcqYZmZmuB\nduCvzOwtM7st9kxDMbNG4O+AmeGlut+Ed7MWs08CvzSz7fRf3/gvd/955JkSpTcdiQigVxNEJFAM\nRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRASA/wNQM89DiBxhRAAAAABJRU5ErkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ef71c50>"
+ "<matplotlib.figure.Figure at 0x7f4026af4b00>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 215,
+ "execution_count": 1003,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n0H8Y6szEx/7LWO/o6Ig93i42Nm300lml/o17vuELfr+gIGccqMLPXp8/yzmfJkDXW4t38Nlbi7u8\nfBbTaQKA1RuP/fljXHzYxQBs2r6JYYOGFcz9Bttbt+M4g0oHcdCdB7Fm0xoAhpQN4YnJTzBxzMTI\nE+7q420fs2flnpj1uWKVBOXzNAF3fxb4ehL7KlTDK4fHHuFzKssqAXjmnWd4d/O7GIbjNLU2ccNz\nNxRkDPYavFfsEaQXhfEyJ1/aCTUnUJ+up6aqBoCbT72ZWafOijyVFCPdjlzkqgdXM2P8DLY0b6Fh\naQMzxs+IPZIUKa0MRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxE\nJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQk\nUAxEBFAMRCRQDEQEUAxEJFAMRARQDEQkUAxEBIDS2AMUkh1tOxhx6wiaWpsAmPzYZMpKymi8vJFD\n9z408nQiu1dOKwMzu9jMfmtm7WZ2dFJDxVKeKmdb6zbaOtoAcJyW9hb2qNgj8mQiu1+upwnLgQuB\nRQnMEl0qlWJa7bTPfS59QJqaqppIE/VsyftLWLBmAe4eexQZIHKKgbuvcvfVgCU0T3T16XrKUmVd\nz+f82ZyI0/RsyrNTOPvBsznqF0cpCpIIXTP4gk9XBz/9r59SXVnN1fOujj1St1778DUA3lz/Jhc8\ncgGDywZHnkiKXZ8xMLP5wD47fwpw4EZ3f7o/B5s5c2bX43Q6TTqd7s+35019up7HVzzOyo9X8uTK\nJ2OP06eW9ha2t27n8mMujz2KFIBMJkMmk+n391kSy0szex641t1f72Ub11I2OcfeeyyNHzVSVlLG\nJYdfQn26nv2H7R97LClAZoa793kqn+RpwoC5blAMzj34XI7Y5whFQBKT08rAzC4A7gSqgc1Ao7uf\n3cO2WhmIRJDtyiCR04RsKAYicWQbA92OLCKAYiAigWIgIoBiICKBYiAigGIgIoFiICKAYiAigWIg\nIoBiICKBYiAigGIgIoFiICKAYiAigWIgIoBiICKBYiAigGIgIoFiICKAYiAigWIgIoBiICKBYiAi\ngGIgIoFiICKAYiAigWIgIoBiICKBYiAigGIgIoFiICKAYiAigWIgIoBiICKBYiAiQI4xMLPZZva2\nmTWa2RNmVpXUYCKSX7muDH4DjHX3I4HVwA25j1Q4MplM7BH6pdjmBc1cSHKKgbsvcPeO8PRFoCb3\nkQpHsf2jF9u8oJkLSZLXDL4HzEtwfyKSR6V9bWBm84F9dv4U4MCN7v502OZGoNXdH9otU4rIbmfu\nntsOzL4D/AA4zd2be9kutwOJyJfm7tbXNn2uDHpjZmcB1wPjewtBtsOISDw5rQzMbDVQDnwcPvWi\nu1+ZxGAikl85nyaIyMCQ1zsQzexiM/utmbWb2dH5PHZ/mNlZZrbSzN4xs2mx5+mLmd1nZuvNbFns\nWbJhZjVmttDMVpjZcjO7OvZMfTGzCjN7yczeCDPXxZ4pG2aWMrPXzew/+to237cjLwcuBBbl+bhZ\nM7MUcBcwERgLXGJmh8Sdqk8P0DlvsWgDrnH3w4ATgasK/e84XBM71d2PAo4Ezjaz4yOPlY0pwIps\nNsxrDNx9lbuvpvPtyUJ1PLDa3d9z91bgEWBS5Jl65e6LgU2x58iWu3/k7o3h8VbgbWBk3Kn65u7b\nwsMKOi++F/Q5tpnVAN8E/jWb7fWLSrsaCazd6fk6iuA/arEys9F0vtK+FHeSvoUl9xvAR8B8d38l\n9kx9+CdgKllGK/EYmNl8M1u208fy8Od5SR9rN+lu1VLQrwDFysyGAo8DU8IKoaC5e0c4TagBTjCz\nw2LP1BMzOwdYH1ZgRhar8ZzuM+iOu5+Z9D7zbB0waqfnNcAHkWYZsMyslM4QzHH3p2LP0x/uvsXM\nMsBZZHk+HkEtcL6ZfROoBPYws39392/39A0xTxMK9brBK8AYMzvAzMqBvwT6vBJbALKqfwG5H1jh\n7nfEHiQbZlZtZsPC40rgDGBl3Kl65u7T3X2Uux9I5//hhb2FAPL/1uIFZrYWGAfMNbOC+8Umd28H\n/o7OX89+C3jE3d+OO1XvzOwhYClwsJm9b2aXxp6pN2ZWC3wLOC28Vfd6uJu1kO0LPG9mjXRe3/hP\nd/915JkSpZuORATQuwkiEigGIgIoBiISKAYiAigGIhIoBiICKAYiEigGIgLA/wNoeIjlrOj5kwAA\nAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4026adc278>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(sample_tours[0] + 'FLLLL'), colour='g')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1004,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ef505f8>"
+ "<matplotlib.figure.Figure at 0x7f4027cd51d0>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 216,
+ "execution_count": 1005,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Step(x=0, y=0, dir=<Direction.RIGHT: 2>),\n",
- " Step(x=1, y=0, dir=<Direction.RIGHT: 2>),\n",
- " Step(x=1, y=-1, dir=<Direction.DOWN: 3>),\n",
- " Step(x=1, y=-2, dir=<Direction.DOWN: 3>),\n",
- " Step(x=0, y=-2, dir=<Direction.LEFT: 4>),\n",
- " Step(x=-1, y=-2, dir=<Direction.LEFT: 4>),\n",
- " Step(x=-1, y=-3, dir=<Direction.DOWN: 3>),\n",
- " Step(x=-2, y=-3, dir=<Direction.LEFT: 4>),\n",
- " Step(x=-2, y=-2, dir=<Direction.UP: 1>),\n",
- " Step(x=-2, y=-1, dir=<Direction.UP: 1>),\n",
- " Step(x=-1, y=-1, dir=<Direction.RIGHT: 2>),\n",
- " Step(x=-1, y=0, dir=<Direction.UP: 1>),\n",
+ " Step(x=0, y=-1, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=0, y=-2, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=1, y=-2, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=1, y=-1, dir=<Direction.UP: 1>),\n",
+ " Step(x=2, y=-1, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=3, y=-1, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=3, y=0, dir=<Direction.UP: 1>),\n",
+ " Step(x=3, y=1, dir=<Direction.UP: 1>),\n",
+ " Step(x=3, y=2, dir=<Direction.UP: 1>),\n",
+ " Step(x=3, y=3, dir=<Direction.UP: 1>),\n",
+ " Step(x=3, y=4, dir=<Direction.UP: 1>),\n",
+ " Step(x=2, y=4, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=2, y=5, dir=<Direction.UP: 1>),\n",
+ " Step(x=2, y=6, dir=<Direction.UP: 1>),\n",
+ " Step(x=2, y=7, dir=<Direction.UP: 1>),\n",
+ " Step(x=1, y=7, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=0, y=7, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=0, y=6, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=0, y=5, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=1, y=5, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=1, y=4, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=1, y=3, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=0, y=3, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=-1, y=3, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=-1, y=2, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=-2, y=2, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=-2, y=3, dir=<Direction.UP: 1>),\n",
+ " Step(x=-3, y=3, dir=<Direction.LEFT: 4>),\n",
+ " Step(x=-3, y=2, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=-3, y=1, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=-2, y=1, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=-1, y=1, dir=<Direction.RIGHT: 2>),\n",
+ " Step(x=-1, y=0, dir=<Direction.DOWN: 3>),\n",
" Step(x=0, y=0, dir=<Direction.RIGHT: 2>)]"
]
},
- "execution_count": 216,
+ "execution_count": 1005,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 405,
+ "execution_count": 1006,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\nFUMk4P8ANAvxgu/mStQAAAAASUVORK5CYII=\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85eaef0f0>"
+ "<matplotlib.figure.Figure at 0x7f4027bb3e80>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 442,
+ "execution_count": 57,
"metadata": {},
"outputs": [
{
"10"
]
},
- "execution_count": 442,
+ "execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 443,
+ "execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKYAAAD7CAYAAADgmO9eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEYxJREFUeJzt3X9wVPV6x/H3k2RRIIFOZMQIg8JYvPJLpcptwUTGXsag\naKr1MmAHO9QZ/uh4Fa5aLlobYqut9ZJ4HWxnqGkUy4/xKijXNo7c4UdCLeLlZ4AgccogJBImwMRk\ngkCyT//YJeZSSDbnfNn9bvK8ZnayC+c858ny4Ww2+z3fr6gqxvgmI9UNGHM5FkzjJQum8ZIF03jJ\ngmm8ZME0XspK1oFExH4vZQBQVelpm6SeMVXVya24uNirOn29J5e1EmUv5cZLFkzjpbQM5vTp072q\n47KWjz25rpUISdZn5SKi9rm8ERH/3vwYkygLpvGSBdN4yYJpvGTBNF6yYBovWTCNlyyYxktOgiki\ni0Rkv4jsE5FVIjLARV3Tf4UOpojcCPwMmKyqk4gNpZsTtq7p31y9lGcCg0UkCxgENDiqe1nRaJSW\nlhYntZqbm3s1HKunWi6cPXuWc+fOOamVrkIPFFbVBhFZBnwDtAGfqepvQ3d2BatWrWLhwoU0NTWx\nYMGCwHVUlWg0Snl5Obm5uTz22GOBa2VnZ7Nt2zZ27NjB3LlzycnJCVWrtLQUINT3l52dTUlJCdnZ\n2YFrpFLoQRwi8gfAh8BPgWbgA+DXqrr6ku20uLi48/H06dMDjVgR6fHz/4QNGjSItrY2J7XigxNC\n1xk+fDiNjY0OOoL8/Hyqqqqc1Apqy5YtbNmypfNxSUlJQoM4XIxIfgz4ty6P5wHLL7OdugDohx9+\nqBUVFaFrtbW1aVlZmR46dCh0ra+++kp/+ctf6vnz50PV6ejo0FWrVunGjRsD19iyZYsCCmhtbW2o\nflyL56DHXLk4Y04ByoG7gXNABfClqr51yXYa9ljxOjQ0NJCXlxe6Vl918uRJhg8fDkBrayuDBw9O\ncUc/SNqwN1XdQezlezewFxBgRdi6Jrjrr78egBtuuMGrUPaGk6skVbUEKHFRyxiwT36MpyyYxksW\nTOMlC6bxkgXTeMmCabxkwTResmAaL1kwjZcsmMZLFkzjpbQK5vvvvw9ARUVFijsxV1taBXPZsmUA\nvPHGGynuJD1Eo1Fee+01Tp8+nepWei+RQZsubjgYKFxTU6OAfvrpp6Fr9XVjxozR+Lz3oW+jRo3S\nlpYWJ32RrIHCiXI5ULi+vp4bb7zRQVd91+HDh1m8eDEfffQR+fn53HbbbYHq1NXVsXnzZl599VWW\nLFkSuq9EBwqnZTBtBHvimpubGTp0aOD9J0yYwIEDB8jMzKS9vT10PzZxqwEIFUqg82K23bt3u2gn\nYRZM063c3FwAhg0bltTjWjCNlyyYxksWTOMlC6bxkgXTeMmCabxkwTResmAaL1kwjZcsmMZLrhYH\nGCoivxaRWhE5ICI/dlHX9F9OZnsDfgX8l6r+tMs87MYE5mLVihwgX1UrAFS1XVW/C93ZZRQUFAAw\nceLEq1HeeMTFGXMM0CQiFcDtwO+AZ1T1rIPav2fGjBlUV1fz6KOPui7d57S3t7N3795QNWbPns2Q\nIUMcddQ7Lqa6/iNgO/Anqvo7EXkDaFbV4ku2C704QGtrKzk5ORw6dIhbb701VN993fTp09m6dauT\nWoMGDeLkyZOBZicOujiAi2AOB/5HVcfEH98DLFbVhy7ZzkawJ8n+/fs7f9wJ81w9//zzdHR0UFxc\nHHrA8UWJjmB3sc5Po4gcE5GxqnoY+FPgYNi6JriMjB/eOoQ5Gbz++usu2gnE1bvyp4FVIhIB/heY\n76iuCWDcuHFAbHGAdL1oz9XiAHuJLadijBP2yY/xkgXTeMmCabxkwTResmAaL1kwjZcsmMZLFkzj\nJQum8ZIF03jJgmm8lFbB3LdvHwC7du1KcSfmakurYM6dOxeARx55JMWdpI+qqionMwEnW1oF8803\n3wSgvLw8xZ34b+DAgZw6dYp7772XSCSCiAS+zZkzJ/nhTmQFARc3HKxaEY1GFdBjx46FrtXXVVZW\n6ogRI5ysWgHoypUrnfRFX161wi6tSEw0GmXbtm1MnTqVrKxgQ2/Hjx/PwYMHiUQinD9/PnRPtjiA\nISMjg4KCgsChBFizZg0A69evd9VWQiyYpluTJk0CYPLkyUk9rgXTeMmCabxkwTResmAaL1kwjZcs\nmMZLFkzjJQum8ZIF03jJgmm85CyYIpIhIrtEZIOrmqb/cnnGfAabF9M44mo5lZHAA8DbLupdyaJF\niwB48sknr+ZhjAdcnTHLgOeJDSq9ahoaGgA4depU4BonT56koKCAysrKULPtmqsskdHE3d2AB4Hl\n8fvTgd9cYbvQo58bGhp0wIABzkZlz5w5M3RPfV1LS4sCWltb66QeCY5gdzGj8DTgYRF5ABgI5IjI\nSlV94tINly5d2nk/yKoVeXl5HD16lPr6+sDN1tfXU1RUxNixY6msrAxcp78oKysDoLS0lBUrVvR6\n/0tXrUhYIulN9AbcC2y4wt85+R/nyqxZs9S3nnyUn5+vgF533XVO6pHgGdN+j2m6VVVVBUBNTU1S\nj+tq1QoAVHUr4GbVI9Ov2RnTeMmCabxkwTResmAaL1kwjZcsmMZLFkzjJQum8ZIF03jJgmm8ZME0\nXuq3wWxqagJwMhmpca9fBvPEiRNs374dgHfffTfF3ZjL6ZfBHD58OLfffjuZmZnMmjUr1e2kBU3y\nZSj9MpgiwqRJkxARm8u9B/v37weSPx6zXwYT4MyZM2m5/k2yXbwidd68eUk9br8NpknMs88+C8DC\nhQuTelwLpunW7NmzAZg/f35Sj2vBNF6yYBovWTCNlyyYxksWTOMlC6bxkgXTeMmCabxkwTResmAa\nL4UOpoiMFJFNInJQRGpE5GkXjZn+zcVsb+3Az1V1j4hkAztF5DNVPeSgtumnQp8xVfWEqu6J328F\naoERYeteTe3t7XzyyScA1NXVpbgbczlOf8YUkZuBO4AvXNa91NatW6moqAi8/5kzZzrv79ixw0VL\nxjFxNWQ+/jK+Bfh7Vf34Mn+vLo511113sXPnztB1AHJzc2lsbCQry+n8tX1Ke3s7kUiEI0eOcPPN\nN4euJyKoqvS0nZN/ERHJAj4A3rtcKC8KuzgAwM6dO8nNzeX06dMsWLCg983GiQhLliyxUPZgzZo1\nnV+XLFnS6/2DLg7g5IwpIiuBJlX9eTfbODljigjHjx9nyJAh5OTkhK5nujdhwgQOHDhAZmamk0tR\nEj1juvh10TTgL4D7RGR3fD3JwrB1u5ORkWGhTJKLiwPs3r07qccN/Tqmqv8NZDroxXgoNzcXgGHD\nhiX1uPbJj/GSBdN4yYJpvGTBNF6yYBovWTCNlyyYxksWTOMlC6bxkgXTeMmCabxkwTReSqtgFhQU\nADBx4sQUd2KutrQaJTtjxgyqq6vJz88PPIq9vr6eoqIiiouLKSwsJBKJBO6ntLSUDRs28M4774Qa\n3R2NRpkyZQrz58/npZdeYvTo0YFr9RXOLq3o8UAOBgq3trYyYsQIvvvuO0dduZGZmUlHR4ezesle\nIaI73377LaNHj6a6upq77747dL2kDRROpuzsbJqbm1HVwLfGxkby8/OprKwkGo2GqrV69WqKioo4\ncuRIqDrRaJT777+fp556KtVP8f+zcOFCzp07l/zewjyhvbnFDmW6s2HDBvXteVq0aJECOnPmTCf1\n4t9fj3lJqzOmSb7S0lIAysvLk3pcC6bxkgXTeMmCabxkwTResmAaL1kwjZcsmMZLFkzjJQum8ZIF\n03jJgmm85CSYIlIoIodE5LCILHZR0/RvLubHzACWA/cD44G5IvKjsHX7o127dgHw9ddfp7iT1HNx\nxpwC1KnqUVW9AKwFihzUTStnz57l888/D7y/qnZOBb54sb3ouAjmCOBYl8fH8Xw5FdeWLVtGXl4e\n06ZNQ0QC3TIyMhCJDex++eWXU/wd/UDjo+ldjtBPhItrfi43TP6y1wa4WBzAR8899xzXXnutk1pL\nly5l/PjxTmq5sGnTJgA2b97MvHnzer1/yhYHEJE/BpaqamH88S+IjVJ+7ZLtNOyxfCUivPDCCzz4\n4INMnTo11e04NX78eA4ePEgkEuH8+fOh6yXzmp8vgVtE5CYRGQDMATY4qJtWIpFInwsl/LCcyvr1\n65N6XBeLA3SIyFPAZ8SCXq6qtaE7M16YNGkSAJMnT07qcZ1cV66qnwK3uqhlDNgnP8ZTFkzjJQum\n8ZIF03jJgmm8ZME0XrJgGi9ZMI2XLJjGSxZM4yULpvGSBTOktWvXAlBSUsKFCxdS3E3fYcEMqaWl\nBaBzJLpxw4IZ0vz58xk2bBivvPIKWVlptQhIQlpbWwFobm5O6nEtmCFlZWXR1NTEuXPnUt3KVVFW\nVgb8MOV1slgwTbc2btwIwLp165J6XAum6VZVVRUANTU1ST2uBdN4yYJpvGTBNF6yYBovWTCNlyyY\nxksWTOMlC6bxkgXTeMmCabxkwTReChVMEflnEakVkT0i8qGIDHHVmOnfwp4xPwPGq+odQB2wJHxL\n6aWtrQ2ApqamFHfSt4QKpqr+VlWj8YfbgZHhW0ovF+dLf+utt/j+++8D12lubsbVjMuuBvW2tbWl\n7HKR0FNddxYS2QCsVdXVV/j7PjnV9f79+5k4cSKjRo2isLAwUI1oNMrbb7/NuHHjeOihhzhz5kzg\nfqqrq6mtreXxxx8nJycnVNhXrFjReb+hoYG8vLzAtS5KdKrrHoMpIhuB4V3/iNjk/y+q6m/i27wI\nTFbVP++mjhYXF3c+7kuLAzzxxBO89957oeuICIMHD+68nCGMa665xtmo+rFjx1JTU8OAAQN6ve+l\niwOUlJS4CWaPBUT+ElgA3KeqV3wm+uoZ0wVVZfny5dxzzz3ceeedoWrV19ezevVqFixYwNChQ0PV\nWrduHZFIhFmzZjm70M7ZGbOHgxQCy4ACVT3Vw7YWTJO0YNYBA4CLodyuqn99hW0tmCY5wewNC6aB\n5K7zY4xzFkzjJQum8ZIF03jJgmm8ZME0XrJgGi9ZMI2XLJjGSxZM46W0DGbXYVQ+1HFZy8eeXNdK\nhAXTkb7ck+taiUjLYJq+z4JpvJTUYW9JOZDxnlfjMY3pDXspN16yYBovJTWYIvKyiOwVkd0i8qmI\n3BCwjrOpaUTkMRHZLyIdIjI5wP6FInJIRA6LyOIQfZSLSKOI7Atao0utkSKySUQOikiNiDwdsM41\nIvJF/N+rRkSKe96r23oZIrIrPgdB91Q1aTcgu8v9nwH/GrDOT4CM+P1/Av4xRE+3An8IbCJ2bXxv\n9s0AvgZuAiLAHuBHAfu4B7gD2Ofgeb4BuOPicw58FaKvQfGvmcRmW5kSoq9FwH8AG3raNqlnTFXt\neiX/YCB6pW17qONsahpV/UpV64hN5NBbU4A6VT2qqheAtUBRwD62AcGn4Pj9WidUdU/8fitQC4wI\nWKstfvcaIIvYZBe9JiIjgQeAtxPZPuk/Y4rIP4jIN8DjwN85KPlXQKWDOkGMAI51eXycgAG4WkTk\nZmJn4i8C7p8hIruBE8BGVf0yYCtlwPMkGGznwRSRjSKyr8utJv71IQBV/VtVHQWsIvZyHqhOfJsX\ngQt6hfmSelMr6Ld7mT/z5vdvIpINfAA8c8mrVcJUNaqqdxJ7VfqxiIwL0MeDQGP8LC4k8OrkfB1j\nVZ2R4KZrgP8ElgapE5+a5gHgPoc99dZxYFSXxyOBhqt0rF4RkSxioXxPVT8OW09VvxORLUAhcLCX\nu08DHhaRB4CBQI6IrFTVJ660Q7Lfld/S5WERsZ99gtQpBP4GeFi7mS8pSOlebv8lcIuI3CQiA4A5\nQM/vOLs/vptJguDfgYOq+qvAzYgME5Gh8fsDib3pPNTbOqr6gqqOUtUxxJ6jTd2F8uJOSbsR+x+8\nj9i714+BvIB16oCjwK747V9C9PRnxH5OPAt8C1T2cv9CYu9664BfhOhjNbGz7TngG2B+iFrTgI74\n87w7/hwVBqgzMb7vnvi/24sOMnAvCbwrt48kjZfskx/jJQum8ZIF03jJgmm8ZME0XrJgGi9ZMI2X\nLJjGS/8Hemre+Ei14dEAAAAASUVORK5CYII=\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ebd9f28>"
+ "<matplotlib.figure.Figure at 0x7f4027d30588>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 444,
+ "execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAANgAAAEACAYAAADROrgbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFDRJREFUeJzt3XuQVOWZx/Hv0zMDyFXIrDsEBLRYAq5IFiPZApFm1YkK\n6lbEEGPWyx9W/tjdRFMxoKYKrKSQqpRBU7FScpF1RV1LwOAYUwhF2gquKyYMd5RZjYLgIDdBkMtc\nnv2je6aQZaTp877TPcPvU3VqTg9nnvP0TP/mnD7D+x5zd0QkjlSxGxDpzBQwkYgUMJGIFDCRiBQw\nkYgUMJGIzhgwM1tgZrvNbMNJn+trZq+Z2btmttzM+sRtU6RjyucIthD41imfmw6sdPevAauAB0I3\nJtIZWD5/aDazwUCNu1+We/wOMMHdd5tZFZBx9+FxWxXpeAp9D3aBu+8GcPd64G/CtSTSeegih0hE\n5QV+3W4z+9uTThE/aWtDM9N/dpROyd3tTNvkewSz3NLiZeCu3PqdwLIzNBJsmTFjRknX6wg96jkn\nX/KVz2X654D/BoaZ2XYzuxuYDVxrZu8C1+Qei8gpzniK6O7fa+Ofrgnci0in0+EucqTT6ZKuF6Nm\nqdeLUbPU6+Urr7+DJdqBmcfeh0h7MzM84EUOESmAAiYSkQImEpECJhKRAiYSkQImEpECJhKRAiYS\nkQImEpECJhKRAiYSkQImEpECJp1WfX09c+bM4dNPPy1aDwqYlJxHH30UM0u89O/fnx//+MdUVVUx\ne3ZxxgRruIqUlAMHDlBVVUW3bt0YMWJEolpvvfUWAL179+bQoUNnNdT/TPIdrlLopDciUTz55JOc\nOHGCEydOMG/ePEaOHFlwrcbGRtauXcsvfvELampqAnaZP50iSkm57bbbAKioqEh8BCsvL2fMmDEh\n2iqYAiYlZfDgwQBMnDiR8vKOf4KlgIlEpICJRKSAiUSkgIlEpICJRKSAiUSkgIlEpICJRKSAiUSk\ngIlEpICJRKSAiUSUKGBmdp+ZbTKzDWb2rJl1CdWYSGdQcMDM7KvAvwOj3f0ysmPLvhuqMZEQmpub\nWbNmDQAff/xxu+8/6SliGdDDzMqB7sCu5C1JLHV1dUFH9W7fvp3jx48Hq/fZZ59RX18frB7Ali1b\n2L17NwDz588PWjsfBQ+4cfddZvYosB34HHjN3VcG60wA2LNnDw899BBHjx5NVGfbtm2sWbOGkSNH\nMmHChCATwSxatIh+/fpx5513smfPniD1Uqns73yzM47Gz8ull17K6NGj2bBhA/fcc0+Qmmej4ICZ\n2fnAzcBg4CCw2My+5+7PnbrtzJkzW9fT6XTR7pfbEU2cOJHNmzcHq7dp0ybq6uo4duxYkHqfffYZ\nL774Ih999FGQes3NzfTo0YOf//znQeoBXHLJJdTW1lJVVVVwjUwmQyaTOfsvdPeCFmAKMO+kx/8C\n/OY027kUZvXq1Q444GvWrElUa9++fT59+nTftm1boO7cZ8+e7cuXL/fm5uYg9V555RV/7LHH/OjR\no0Hqtbjxxhs99OswV++MOUkyJns78I9m1g04DlwNvJ2gnpyiZ8+eres9evRIVKtfv3488sgjSVv6\ngmnTpgWtN2nSpKD1SkHBFzncfQ2wGKgF1gMGzA3UlwCjRo0CshPAXHLJJUXuRgqRaFYRd38YeDhQ\nLyKdjv4nh0hECphIRAqYSEQKmEhECphIRAqYSEQKmEhECphIRAqYSEQKmEhECphIRAqYSEQKmHR6\nLYNLm5qa2n3fCph0au+88w4rVqwA4Je//GW777/j3wRXOp1jx47x1FNPMWvWLH77298yYcKEgmtV\nVlbyla98hYMHD3LttdcG7DI/5gFnGTrtDsw89j46syuvvJIuXbqwatWqYrfSbkaPHk1tbW3QmmPH\njuWNN94IVs/McPczzsyjgJWwHTt2MGzYMMyM9957j/79+xe7pXZhZowcOZKGhgbmzp3L+PHji93S\n/5NvwHSKWMLWr1/f+gZ948aN50zAAPr378/y5cuL3UZiushRwiZPngxk5+Sorq4ucjdSCAVMJCIF\nTCQiBUwkIgVMJCIFTCQiBUwkIgVMJCIFTCQiBUwkIgVMJCIFTCQiBUwkokQBM7M+ZvaimW01s81m\n9s1QjYl0BkmHqzwOvOrut5pZOdA9QE8inUbBRzAz6wWMd/eFAO7e6O6HgnUm56SlS5cC8Nprr7Fr\n164id5NcklPEi4G9ZrbQzNaa2VwzOy9UY/JF9957L2+++Wax24iusbERM6OiooJUqhNcInD3ghbg\ncqAB+Ebu8WPAw6fZzqVwo0ePdjNzINhy4403FvtptampqckrKyv9O9/5TrFb+VK51/UZc5LkPdhH\nwA53/3Pu8WJg2uk2nDlzZut6Op0mnU4n2O25ZdmyZfzsZz/j6aef5qKLLmLq1KmJ6i1evJiamhrW\n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\n9pgvWLDAGxoagtRbvXq1T58+3ffu3RukXkyAL1q0yO+77z4/duxYsdtpF/kGLMi0bV8m1KQ3O3fu\nZODAgQC8+uqrXH/99YlrShhmRl1dHUOHDi12K+2mvSa9aTcDBgxonfFV4ZKOosMETKQjUsBEIlLA\nRCJSwEQiUsBEIlLARCJSwEQiUsBEIlLARCJSwEQiUsBEIlLARCJKFDAzu87M3jGzbWY2LVRTIp1F\nkjtcpoDfAN8C/h64zcyGh2pMOoampqYvfJQvSnIEGwPUufuH7t4A/Bdwc5i2pKNouY/0+PHjO8Uk\nNaElCdgAYMdJjz/KfS66K664gocffjhIrQ8//JA77rgj2E3Gjxw5wuzZsxk6dCjvv/9+4nruzrJl\nyxgxYgTPPvtsgA5h06ZNTJ48malTpyauNXHiRFKpFFdddRVmZxx/eO7JZ9jz6RZgCjD3pMffBx4/\nzXbBhmnPnj076LwPgHfp0sXNLHjdUl7KysqC19y6dWuwn3NHQJ5TBiSZVeojYNBJjwcCu0634cyZ\nM1vX0+k06XS6oB3+9Kc/5fLLL+f+++9n0qRJzJgxo6A6J/vrX//KjBkzeO+993jjjTcS1zt8+DBP\nPPEE8+fPZ/ny5Vx88cWJ6jU3N/Pyyy/z4IMP8tBDD3H77bcn7nHjxo088MAD9OjRgxdeeCFxvVQq\nRVlZWeI6pSyTyZDJZM766wqek8PMyoB3gauBj4E1wG3uvvWU7bzQfYiUqnzn5Cj4CObuTWb2b8Br\nZN/LLTg1XCLnug4zq5RIKel0s0qJdEQKmEhECphIRAqYSEQKmEhECphIRAqYSEQKmEhECphIRAqY\nSEQKmEhECphIRB0uYIWMyWnPejFqlnq9GDVLvV6+FDC92EqyZqnXy1eHC5hIR6KAiUTULgMuo+5A\npEjyGXAZPWAi5zKdIopEpICJRNQuATOzKWa2ycyazGx0gjrBbjZhZgvMbLeZbUhS56R6A81slZlt\nMbONZvbDADW7mtlbZlabq5l8Ishs3ZSZrTWzlwPU+sDM1ud6XBOgXh8ze9HMtprZZjP7ZsJ6w3K9\nrc19PJj0Z2Nm9+VezxvM7Fkz69LmxvnMTpp0Ab4G/B2wChhdYI0U8L/AYKACWAcMT9DTlcDXgQ2B\nnmMV8PXcek+yc0YW3N9JdbvnPpYB/wOMCVDzPmAR8HKAWu8DfQO+Vv4DuDu3Xg70Dlg7RXZy3AsT\n1Phq7jl3yT1+Abijre3b5Qjm7u+6ex2QZPLyoDebcPfVwIEE/Zxar97d1+XWDwNbCTBXv7t/nlvt\nSvYFl+iqlJkNBG4A5idsrbUkgc6EzKwXMN7dFwK4e6O7HwpRO+ca4D1333HGLb9cGdDDzMqB7rQx\nozV0rPdgRbvZxNkysyFkj45vBaiVMrNaoB5Y4e5vJyw5B7ifhEE9iQPLzextM7snYa2Lgb1mtjB3\nSjfXzM4L0GOLqcDzSQq4+y7gUWA7sBP41N1XtrV9sICZ2YrcOWnLsjH38cZQuzjN50rubwxm1hNY\nDPwodyRLxN2b3f0fyM79/00zuyRBb5OA3bkjrZHsjKLFWHf/Btmj4r+a2ZUJapUDo4En3H008Dkw\nPUCPmFkFcBPwYsI655M9cxpM9nSxp5l9r63tk9z84Qvc/dpQtdqQ980miiV3yrAYeMbdl4Ws7e6H\nzCwDXAdsKbDMOOAmM7sBOA/oZWb/6e53JOirPvdxj5m9RPZUfnWB5T4Cdrj7n3OPFwOh7px6PfAX\nd9+TsM41wPvuvh/AzJYCY4HnTrdxMU4RC/2t+TYw1MwG567afBdIehUs1G/xFk8BW9z98RDFzKzS\nzPrk1s8j+8N9p9B67v6guw9y94vJfv9WJQmXmXXPHbExsx5ANbApQX+7gR1mNiz3qasp/JfJqW4j\n4elhznbgH82sm2VviHY12ffbpxfqCs0Zrrz8M9n3T0fJ3onlDwXWuY7s1bk6YHrCnp4jewQ8nvum\n3Z2w3jigiezVzVpgLXBdwpojc3XWARuAhwL+TCaQ8CoicNFJz3dj0p9JruYosr9M1wFLgT4Bap4H\n7AF6BfrezciFagPwNFDR1rb6r1IiEXWkq4giHY4CJhKRAiYSkQImEpECJhKRAiYSkQImEpECJhLR\n/wGantOCZJhsswAAAABJRU5ErkJggg==\n",
+ "image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc8640290b8>"
+ "<matplotlib.figure.Figure at 0x7f4027d86518>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 445,
+ "execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n/wDymFXfd/I9VwAAAABJRU5ErkJggg==\n",
+ "image/png": "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\nEZGA/wZbNepTD8ADbQAAAABJRU5ErkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85eddf7b8>"
+ "<matplotlib.figure.Figure at 0x7f4027c0a8d0>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 446,
+ "execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\nFUMk4P8ANAvxgu/mStQAAAAASUVORK5CYII=\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ef41048>"
+ "<matplotlib.figure.Figure at 0x7f4027d86518>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 447,
+ "execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nB7ykpMQTiYTPmDEjWOZXvvIVf/XVV72xsTFI5ukAv+qqq3zatGn+s5/9LGj28ePHfcGCBf7tb387\naG5Mu3fv9rvuussXL16c7aW0GW2Y0tTqHqslZjYGmAvc7O5/bmVbz+S6TldXV3dq0unEiRN5+umn\ng2XHZGYMGjSItWvXZnspcpbMrNU9VqZHBR8DSoClZrbazH6UYV6bXXrppfzwhz8EyJlSyUdHRgcv\n3P2ToRYi0pXonRciEahYIhGoWCIRqFgiEahYIhGoWCIRqFgiEahYIhGoWCIRqFgiEahYIhGoWCIR\nqFgiEahYIhGoWB3oz39OfRZ006ZNHDlyJMurkZi6TLGOHz/e6XNPfjDzyJEj/OIXvwiWK51PyClN\nWTNixAjWrl3L1q1bMWt5xkdb7du3j4ceeoh58+axaNEibrrppowzJ0yYwCOPPEJhYSHjxo0LsErp\nrHK6WEOHDsXMSCaTuDslJSVRrmf06NFB8+699166d+8eNFM6l5x+KDh06FBqa2sZN24cvXr1orGx\nMeOpUydP+/fvZ+bMmfTs2ZM33ngjWK67U1lZme2bTiLLaEpTu64o8JSm07l7sIeBHZEruasjpjR1\nGrHu/CqVnI0uUyyRzkTFEolAxRKJQMUSiUDFEolAxRKJQMUSiUDFEolAxRKJQMUSiUDFEolAxRKJ\nQMUSiUDFEokgSLHMbKqZNZrZBSHyRHJdxsUys97AKGBr5stpv2QymXPZuZYbMzvXctsqxB7rP4B7\nAuScFd2Z4ufGzM613LbKqFhm9lmgzt3fDrQekS6h1SlNZrYU+FjTLwEOzATuA0af9nciH3lnPUzG\nzP4OeBWoJ1Wo3sD7wBB3393M9h0ztUakA7Q2TCbYlCYz+z+gzN33BwkUyWEhX8dy9FBQBOjAuYIi\nHyUd+s4LM3vQzNabWY2ZPW9m5wXKHW9mtWZ2wszKAuSNMbMNZrbJzKaHWGM697/MbJeZrQ2Vmc7t\nbWZVZvaOmb1tZpMD5XYzsxVmVp3OvT9EbpP8PDNbbWa/DJy7xczWpNf9+4C5Pczs5+n78Dozu/6M\nG4ccndzaidQLyXnp83OAfw+U2x/4JFBF6nleJll5wLtAHyAfqAEGBFrnMOAaYG3g2/Vi4Jr0+RJg\nY8A1F6f/PAf4HamDU6HWfRewAPhl4NvjT8D5ITPTufOBSenzCeC8M23boXssd3/V3RvTF39H6khi\niNyN7r6ZMM/xhgCb3X2rux8DngU+HyAXd18OBD+44+473b0mff4gsB7oFSi7Pn22G6k7U5DnDul3\n7IwFngqRd3o8gR+Nmdm5wHB3fxrA3Y+7+4dn2j6bb8K9E1iSxes/k15AXZPL7xHoTtoRzOwTpPaK\nKwLl5ZlZNbATWOruK0Pk8pd37MR4ku/AK2a20sz+OVDm5cBeM3s6/fD1STMrOtPGwYtlZkvNbG2T\n09vpPz/bZJsZwDF3XxgyN9Q/oZmv5cQRHjMrAZ4DvpXec2XM3Rvd/VpSjy6uN7OrMs00s9uAXem9\nrBH+aPJN7j6Y1B7xX8xsWIDMBFAGPO7uZaRev/1OSxsH5e4t/mdSZvZlUv/gESFzA3oPuKzJ5d7A\n9g667rNmZglSpfqxuy8Kne/uH5pZEhgDvJNh3FDgc2Y2FigCzjWzZ9z9jgxzgdRD4/Sfe8zsf0k9\nvF+eYex7pN6+94f05eeAMx7Y6uijgmOAacDn3D3Wf8Kb6W+/lcCVZtbHzAqALwIhj1rF+A0N8N/A\nO+7+SKhAM7vQzHqkzxeROvi0IdNcd7/P3S9z98tJ3b5VoUplZsXpPTdm1h24FajNNNfddwF1ZtYv\n/aWRtPQLJvSRk1aOqmwm9fGS1enTjwLl/gOp50WHgR3AkgzzxpA6srYZ+E7Af/9CUnu/I8A20keY\nAuQOBU6QOoJZnb5txwTIHZTOqgHWAjMi3CduIeBRQaBvk9vh7cA/v6tJ/eKtAV4AepxpW71ALBKB\nPpovEoGKJRKBiiUSgYolEoGKJRKBiiUSgYolEoGKJRLB/wNUGFdJtvbjXgAAAABJRU5ErkJggg==\n",
+ "image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ef240f0>"
+ "<matplotlib.figure.Figure at 0x7f4027d88ac8>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 448,
+ "execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nP9UhVhMVdx/Z2DFNlVQTFUg1yJwxYwazZs2id+/ePPfcc9FqAzz11FM8/vjjPPjggzz++ONRa9dZ\nv349hw4d4sILL2TFihU89NBDXH755VHHqK2tpaKigvvuu4+tW7cyd+7cqO3D9uzZw5gxY5g5cyaT\nJ0+mXbt20WrXKSgoYNOmTWzevDl67Tlz5vDYY48xfPhwpkyZQpcuXaKPUVZWxmuvvcbQoUNZvHhx\n9Pqn2kQl7fZq/peVwaBGjkk4/1I+/PBD37t3b9Sa+/fv9/bt2zvgBQUFibVYmzt3bl2K+6ZNm7y2\ntjaRcdzda2pq/O23345ed+LEiW5mnpeX5w8//HD0+kk7cuRIIvdLffv27fPt27f/n8c7STRxZZDu\nR4tfMbPtwJeA+WaW9e6k3bp1o2vXrlFrFhYWMnHiRADGjx+fyG+LY5133nmYJfe+bF5eHueee270\nuldeeSXuTm1tLZdeemn0+knLz89P5H6pr3379vTq1SvRMU5F2u3VmjxQgu3VMsXMqKysTKwr77x5\n8xgzZgwt4X7q0aMHO3cet+WmBJl6vJvaXq1FfZogIqdOYSAigMJARAKFgYgACgMRCRQGIgIoDEQk\nUBiICKAwEJFAYSAigMJARAKFgYgACgMRCRQGIgIoDEQkUBiICJB+E5UZZvaWma0xs/8ys46xJiYi\nmZXuyuDXQH93vwDYDPxz+lM6Pe3bt48HHngAgOnTp2d5NpK0XHy8022issjd6zqW/AHIvY3dErBl\nyxYOHz4ctWZlZSVvvPEGALNmzWr2W5/JieXi493oVukn4R+A5yPWy0m33XYbCxcuZNy4cdx9991R\na19yySUsX76c6dOnJ7oZqmRf3759GT16NK+88krOPN6NbohqZq8Cf1X/j0g1gLjX3eeFY+4l1URl\n7AnqeHl5+dHLsfsmZEKXLl349NNPE03xkpIS3n33XQoKYuZ0ZpWWltKzZ09efvnlbE8lp7344ouM\nHTuW6urqqI/3sX0Tpk2b1qQNUWP0TLgFWA60aeS42NvBZ9z+/fv9kUce8U6dOvnMmTOzPZ2ctH79\nei8sLPTCwkLfuXNntqeT01pa34RRwBRgjLsfSqdWc1BUVMRdd93Fnj17KCsry/Z0ctKMGTM4ePAg\nBw8eTKzzlCQj3U8T/hVoD7xqZqvM7LR49JvzEj5p99xzz9Hzt99+exZnIicrrX/V7p5s6xlpdvr2\n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\n",
+ "image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc87c3185c0>"
+ "<matplotlib.figure.Figure at 0x7f4027db4390>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 449,
+ "execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ec78198>"
+ "<matplotlib.figure.Figure at 0x7f4027d1fcf8>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 450,
+ "execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nydeYPn06L774IqNHj2bJkiXJ6+eid955hzvvvJMHHniAgQMHMnfu3ORrfPzxx9x///08/fTTTJw4\nMfn44/LycpYtW8Zjjz3Gd77znaS1o7Uc7taWFBMkTwTq3H23mRUBzwE/dfeFLbYLHe4WpaGhgY0b\nN/KlL30pbI19+/axa9cuVqxYwfjx40N/c+aaHTt2kJ+fT9++fcPW2LRpEyUlJXTt2jVZzbVr11JW\nVoa7U1JSwpYtW0Ink0Zr60gmxXsyJwN/MLOVwMvAcy0DpjPLz88PDRhoOvQfMGBA6Bq5qri4ODRg\nAE455ZSkAQNQUlLCiBEjALj++us7dcAcTtL3ZNpcqJMeybSn+fPn60jmOJJLj3f0kYyIyCEpZEQk\nlEJGREIpZEQklEJGREIpZEQklEJGREIpZEQklEJGREIpZEQklEJGREIpZEQklEJGREIpZEQklEJG\nREIpZEQkVMYhY2YDzOz3ZlZtZqvN7IYUjYlIbkhxJFMP/MDdy4CvAdeb2ZAEdY8re/fu5Y477gBg\n9uzZWe5GJJ0UEyS3u/vK5uv7gDVASaZ1O7JNmzaxf//+pDVramp49dVXAXjggQdy4pSMcuTWrVuX\ns4950pEoZjaQplG1L6es21FUV1dz2223MW/evJARGeeffz7Lli1j9uzZOX1iaflr55xzDq+88gqz\nZs3i4osvTl6/rKyMoqKi5HWPVLITiZtZT2ApcIe7P9PK/V5RUXHgdsq5S+3FzDTsS5J59913GTJk\nCHV1daGjdk877TTeeuutpL+4Ws5dmjlz5iFPJI67Z3yh6YhoMTCtjW28swP89ttv9969e3tVVVW2\n25Ec8MEHH3h5ebl3797dly5dmrT23r17vVevXl5YWOhLlixJWrul5ud3q8/9JEcyZvafwE53/0Eb\n23iKtbLJzKipqaFfv3460pCk6uvrk/+b+sUvfsF1110HwEUXXRQ6nbStkSgpJkieD/wJWA148+UW\nd1/cYrucCZn+/ftnuxWRw9qxYwennnoqe/bs4bXXXuOss84KWys0ZI6iCYWMSDu7/PLLWbBgQfgn\nVxruJiJZo5ARkVAKGREJpZARkVAKGREJpZARkVAKGREJpZARkVAKGREJpZARkVAKGREJpZARkVAK\nGREJpZARkVAKGREJpZARkVBJQsbMfmVm75vZqhT1RCR3pDqSeQT4RqJaHc7+/fsZNWoUAGPHjmX3\n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\n",
+ "image/png": "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\nPKIrV0QCUPBEAlDwRAJQ8EQCUPBEAlDwRAJQ8EQCUPBEAlDwRAJQ8EQCUPAkJyxfvhyAysrKwJ1k\nh4InOeHgdJwnn3wycCfZoeBJTpg5cybFxcVNswNC8dRk7Uxm9adDwZOc0KNHD+rq6ujRo0fQPt56\n6y0AXn/99UTHUfAkJ5i1eIeErFu8eDEAjz76aKLjKHgizcyePRuA1157LdFxFDyRABQ8kQAUPJEA\nFDyRABQ8kQAUPJEAFDyRABQ8kQAUPJEAFDyRACIFz8xmmVmFma0xsxfNrGtcjYnks6hnvLeAwe4+\nFNgE3Bm9JSlEB9f527NnT+BOsiNS8Nx9ibs3pJ6uoHFtPClA7s7KlSsznsd2zz33APDggw/G2VbO\nimW1oJRraVz/XArMRx99xMiRI9m6dWukOmbG+PHjY+oqmqQnwrYbPDNbDPRt/inAgbvcfVFqm7uA\nOnd/tq1aWhE2P91yyy1/F7q+ffu2sXXLzIzp06dzzDHHxNla2lavXt3039LS0rT2TWdF2DjWQP8R\ncB0w0t33t7GdRx1LctPo0aNZsmQJW7Zs4dhjj82ZSa2ZmDBhAnPnzgX+dhuITLW1BnrUdzUvACYD\nF7UVOikM/fv379Chg8Z7vwA8/fTTiY4T9V3NOUAXYLGZrTazuTH0JBJMly5dAOjZs2ei40R6c8Xd\nB8bViEgh0ZUrIgEoeCIBKHgiASh4IgEoeCIBKHgiASh4IgEoeCIBKHgiASh4EtkXX3wBRL+ouJAo\neB2cu7N3797IdTKtsW/fvqZllN94443IfRSKOCfCSpa9+uqrTJo0iQ0bNvDd736XoqL0f4526dKF\nvXv3snz5cr71rW/Ru3fvtGt07dqVmpoazjrrrLT3zVX19fWJ1lfwOrDS0tKmsJWXl2dc58gjjwRg\n/fr1GdeYOXNm8NVc41BZWYmZsWXLlkTHiTwR9isPpImwsTMzrrrqKq6++mrOO++8jOt8/vnnLFu2\njPPPPz+js2Y+6RATYSW8zp07RwodNJ7xxo4dW/ChA5g6dSoADzzwQKLj6Cst0szBe74MGjQo0XEU\nPJEAFDyRABQ8kQAUPJEAFDyRABQ8kQAUPJEAFDyRABQ8kQBiCZ6Z3WFmDWaW7H2vRfJE5OCZWT/g\ne0C0xdFECkgcZ7wHgUkx1JE0vPLKKwD89Kc/pa6uLqMami0STqT5eGZWCmx397UdfXmmjub4448H\n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\nr2s6ANnE1QAAAABJRU5ErkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85f006a90>"
+ "<matplotlib.figure.Figure at 0x7f4027ca70b8>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 451,
+ "execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nAElFTkSuQmCC\n",
+ "image/png": "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\nrkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85efd7208>"
+ "<matplotlib.figure.Figure at 0x7f402c0d3588>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 416,
+ "execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "['RFLRFFRFFFFRLRFRFFRLLFFFFFRRLRRL',\n",
- " 'FFFFRFRLRLFRLRLRFRRLLFFRFRLFLRRFLRRL',\n",
- " 'RLLRLFFFRFFLLRRLLFRLLRRFLLRRLLFFFFLRFLRF',\n",
- " 'FFLRRLFRLFLFFFFLLRFRLFFFFLLRLRRL',\n",
- " 'FLFRFLFRFFFLFRLFRLLFFLRRFLRLLFRLRLRRLLFFFRFLFLRLRL',\n",
- " 'LRFRLRFLFFFFFRRFLRLRFRLRLFRLFFRRLR',\n",
- " 'LRFLFLRLRRFLFFRRFFFLFRFFLRFRFLLRFFRRLLRFFRLRRFFLLRLR',\n",
- " 'LFRLFFFRLLRLLFFRRLLRLFFFLRRLLFFL',\n",
- " 'FLRFFLFFRLFRLLFRLLFFFRLFRRLFLFFL',\n",
- " 'LLRFRLRRLRLFRFFFFRLRFFLRFFRLRRLFRFFL']"
+ "['RFLFFLFFFFFFLRRLLRLFFFLFFFLRFRLLFFRR',\n",
+ " 'FLRLFLFFLFRLLRRFLFRFLLFFFLLRRFLF',\n",
+ " 'LRFLFRFRLLRLRLRRLRRFLFRLRLFRLRRFLLRRLFFRFRRL',\n",
+ " 'RFLLRFLFFFFLRFFLFLFLRFRFLRRLLFLFRL',\n",
+ " 'LFFRLFRLLRFFLLRFLFFLRFRFFLLRLRLF',\n",
+ " 'LRFRLFRFFLRRLRLFFRFFFRFLRFFFFRLR',\n",
+ " 'LRFLFFFRRLLRFFFRRLFRFFRLLFLRFRFLRRLR',\n",
+ " 'LLRRLFLFRLFFFFFFLLRLFRLRFLFFRFRLRFLLRFLFLRFLFFFF',\n",
+ " 'FLFRFFRFLRFLLRFRFRLFRRLLRRFLFLRRFFLR',\n",
+ " 'FRFFFRFFRRLLFRFLRFRLFLRRFRFLFFRFRL']"
]
},
- "execution_count": 416,
+ "execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 452,
+ "execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n8v89qQ80wuYWhQAAAABJRU5ErkJggg==\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85eaed1d0>"
+ "<matplotlib.figure.Figure at 0x7f402c0babe0>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 582,
+ "execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "(408, [8, 16, 20])"
+ "(310, [])"
]
},
- "execution_count": 582,
+ "execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
},
{
"cell_type": "code",
- "execution_count": 583,
+ "execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nCYIgIoz/D/EoAGQ0K3jsAAAAAElFTkSuQmCC\n",
+ "image/png": "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\nRK5CYII=\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85ce54208>"
+ "<matplotlib.figure.Figure at 0x7f402c0b97f0>"
]
},
"metadata": {},
},
{
"cell_type": "code",
- "execution_count": 488,
+ "execution_count": 1216,
"metadata": {},
"outputs": [],
"source": [
- "walks_m = {i: list() for i in range(4)}\n",
- "while all(len(w_m) < 10 for w_m in walks_m.values()):\n",
- " w = random_walk()\n",
- " ps = mistake_positions(w)\n",
- " if not ps or ps[0][0] > 30:\n",
- " walks_m[0] += [w[:ps[0][0]]]\n",
- " if len(ps) >= 2\n",
- " \n",
- " if len(w) > 30: \n",
- " walks_m[i] += [w]"
+ "def trim_loop(tour, random_mistake=False):\n",
+ " trace = trace_tour(tour)\n",
+ " mistakes = mistake_positions(trace)\n",
+ " if random_mistake:\n",
+ " end_mistake_index = random.randrange(len(mistakes))\n",
+ " else:\n",
+ " end_mistake_index = 0\n",
+ "# print('end_mistake_index {} pointing to trace position {}; {} mistakes and {} in trace; {}'.format(end_mistake_index, mistakes[end_mistake_index].i, len(mistakes), len(trace), mistakes))\n",
+ " # while this mistake extends to the next step in the trace...\n",
+ " while (mistakes[end_mistake_index].i + 1 < len(trace) and \n",
+ " end_mistake_index + 1 < len(mistakes) and\n",
+ " mistakes[end_mistake_index].i + 1 == \n",
+ " mistakes[end_mistake_index + 1].i):\n",
+ "# print('end_mistake_index {} pointing to trace position {}; {} mistakes and {} in trace'.format(end_mistake_index, mistakes[end_mistake_index].i, len(mistakes), len(trace), mistakes))\n",
+ " # push this mistake finish point later\n",
+ " end_mistake_index += 1\n",
+ " mistake = mistakes[end_mistake_index]\n",
+ " \n",
+ " # find the first location that mentions where this mistake ends (which the point where the loop starts)\n",
+ " mistake_loop_start = max(i for i, loc in enumerate(trace[:mistake.i])\n",
+ " if (loc.x, loc.y) == (mistake.step.x, mistake.step.y))\n",
+ "# print('Dealing with mistake from', mistake_loop_start, 'to', mistake.i, ', trace has len', len(trace))\n",
+ " \n",
+ " # direction before entering the loop\n",
+ " direction_before = trace[mistake_loop_start].dir\n",
+ " \n",
+ " # find the new instruction to turn from heading before the loop to heading after the loop\n",
+ " new_instruction = 'F'\n",
+ " if (mistake.i + 1) < len(trace):\n",
+ " if turn_left(direction_before) == trace[mistake.i + 1].dir:\n",
+ " new_instruction = 'L'\n",
+ " if turn_right(direction_before) == trace[mistake.i + 1].dir:\n",
+ " new_instruction = 'R'\n",
+ "# if (mistake.i + 1) < len(trace):\n",
+ "# print('turning from', direction_before, 'to', trace[mistake.i + 1].dir, 'with', new_instruction )\n",
+ "# else:\n",
+ "# print('turning from', direction_before, 'to BEYOND END', 'with', new_instruction )\n",
+ " return tour[:mistake_loop_start] + new_instruction + tour[mistake.i+1:]\n",
+ "# return mistake, mistake_loop_start, trace[mistake_loop_start-2:mistake_loop_start+8]"
]
},
{
"cell_type": "code",
- "execution_count": 489,
+ "execution_count": 299,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "{0: ['LRLRLRLFRFLFFLRFRRLRLFLLRFLRRLLFFFLRLRLLRLF',\n",
- " 'FFRLLFFFFRFLRFRLLRFFRFFFFFFLLRRLRRFFR',\n",
- " 'LFRRFLLRFFLFRLRFLRRLLFRRFLFLRRFFLFFLRFFLFFLFLFRRR',\n",
- " 'FLFLFFLRRFFFFLFRFFLFRFFLFFRLFRRR',\n",
- " 'LLFLLRFFRLLFRFLFRLRFFRFFLFFLRLFRLLFLFF',\n",
- " 'RFRRLRLLRRFLFFRRLRFFFLFRRLFLFLRRR',\n",
- " 'FFLFFRFLFLRLFFLLFRRFFFRLLFFFRFFRRR',\n",
- " 'LRRLFRFLRFFFFRLLRLRFLRFLLRRFRLLRFRLFLFLRRR',\n",
- " 'LRLFLRRFLFRRLRFRFLFLRLLFRRFFRLRFLLFL',\n",
- " 'RLRRLFLFRRLLFFRFRFLFFLRLFLRLRFLLFRFFFLRRFRFLFFRFLFRLFFRRR'],\n",
- " 1: ['RRFLRRLLFLRLRRLFRLFFFRLLFRFLFRRLLLL',\n",
- " 'LRLFFLRRFLLRLRRLLRLRFLRLFFLLLFLRRR',\n",
- " 'RFRRLFRLRLRRFLLRFLFFLRRFLRRFRRL',\n",
- " 'FFFRFLFRLFFLFLLLFLFFLRFFRFFFRRLRRLF',\n",
- " 'FLFRFFRLLRFRLLRFFRFLFLFLRFFFLRRLLLF',\n",
- " 'FRRLRLLFRFLRFRLRRFRFFFLRFFRLRFFLLFRFLRFFRLFRRLLL',\n",
- " 'FFLRLRFLFLRRFFLFFRRRFRLFLFRRLLFRFRLLFFLLF',\n",
- " 'FLRRFLRLFFFFRFLFLLLFFRFLFRLLFRRLLL',\n",
- " 'RFFFRFLLRFFRFFFRRRFLRLFRFFLRLLFLF',\n",
- " 'FFRFLFLLRRLRLFFRLFFLFRLFLRFFLLFFLF'],\n",
- " 2: ['FFLRFRFRLFRFFFFLRFRLRFRLFLLLRLFLRLFLLRLR',\n",
- " 'FFLFRLLRLRRFFRLFLRFFFFRLFLRFFLLLFRFLFRRLR',\n",
- " 'RRLFRRFFFLLRFFLFFLFFLFLRFRLLRFFLFFLFRLLFRF',\n",
- " 'FFRFLRLLRRFFRRLFFFFFFLLLFRFLFRFL',\n",
- " 'FFRFFFLFLFRLRFRRLRLLFFLLLFLRFLRFLLLL',\n",
- " 'FFFFFFFFFFFFFFLLFLFLFRLRFFLRFFRFLFRFLFRRLLRLRLRLFRFLFLLLL',\n",
- " 'LFFRFFRFFFFRFRLFFRLFRLFFLLRFRLLFLRFLRRLLFR',\n",
- " 'FRFRLRLLFFRFFLRFLRFRFLLFLRLFFLLL',\n",
- " 'LRLLLLRFLRRFFLFRFRFFLFLLRRLFRLFRLFLFFFFFFRFRFLFRLFFLRFFLRFRRLLRFFRRLRRL',\n",
- " 'FLRFLRLLRLRFRLRLLRFLFFLRLRLFRRRLLFLFFRFLLRLLRFLRLFRFLFRRR']}"
- ]
- },
- "execution_count": 489,
+ "'RFFRRFFFRFFRFLLRFLFFLLLLFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLRRLRRRRFFFFFFRRRLLFFFFFFLRRRLLLRLLLLRFRLRFRRRFRLRLLRFRLFLLRFRFLRRRRLRFLLRLRRLFFFRLRRFFRFLRFLLFLFRLRLRLRRRLFFRLRRFFRRFFLLRLLFLLLFRFRFLRLFFLFRRRRLRRLRRLRFRRLRRRFRRRRLLRFLLRRFFRLRFFLFLFRRLLLRLFFFRFRLRLLFRRFLLRLFFFLLRLLRRLRFRFFFFFRRFFLFRFLRFRFLFLFRLFLFLRFFLFRLRRRLRRRRFFFRFLLRLFRFRRRLRFFFFFLLFRRLFRRFRFRFLRLLFRFFFLLRRFRRRRLFFFLFLLLFFLRRLRFLFLFFRLLFFRRFFLRLLRFLRLLFLFRLLLRFFFFFFFFLFLRLLRLRLRFLLFFFLFLFFLFRRRRRFFRLLFFFRLFFLFRLFFRFFFFRLRRRLLFLRRFLRFFLRRFRRFLRFLRRLFRRLFFFFRLFLFFLRFFFFFRLFLFLRFFFLLLFLLLFFLRRLFLFRRFRRFFRRRFFRFLFLLFLFRFRFLLLRRRLFRRFFRLRFLFLFLRRLFFFLFRLRFRFFRFLRRFFFFFLFRLRRFRLLRLLFFLLLFFLFFFRLFRFRRRRLFLFLLLLRLFRFRLRLLFLFLLLRRRLLLFRRFRLRFFRRRLLLFRLRLLFFLLRFFFFRLLRLRLLLRLFFFRRLRFRFFRRRFFFRFFFFLRFLFRFLRFRRLLLRLLFRRLFFLRRFFFRLLFRLFLRRFLRLLRRFFLLFLLLFFFFRRFFRLFFLLFLLFRFRLRFLRFFRFRLRLLLFFFLFLRFRFRFLRRLLLLLRFRRLFLLLLRRFFFLLRFLFFRLLLLFLFRLRFFFFFLRLLFFLLLFFLLRRFLRRFLRLRRLLLRRRRRLLLFLRRLFFFRFLRRLF'"
+ ]
+ },
+ "execution_count": 299,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "walks_m"
+ "w = 'RFFRRFFFRFFRFLLRFLFFLLLLFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLRRLRRRRFFFFFFRRRLLFFFFFFLRRRLLLRLLLLRFRLRFRRRFRLRLLRFRLFLLRFRFLRRRRLRFLLRLRRLFFFRLRRFFRFLRFLLFLFRLRLRLRRRLFFRLRRFFRRFFLLRLLFLLLFRFRFLRLFFLFRRRRLRRLRRLRFRRLRRRFRRRRLLRFLLRRFFRLRFFLFLFRRLLLRLFFFRFRLRLLFRRFLLRLFFFLLRLLRRLRFRFFFFFRRFFLFRFLRFRFLFLFRLFLFLRFFLFRLRRRLRRRRFFFRFLLRLFRFRRRLRFFFFFLLFRRLFRRFRFRFLRLLFRFFFLLRRFRRRRLFFFLFLLLFFLRRLRFLFLFFRLLFFRRFFLRLLRFLRLLFLFRLLLRFFFFFFFFLFLRLLRLRLRFLLFFFLFLFFLFRRRRRFFRLLFFFRLFFLFRLFFRFFFFRLRRRLLFLRRFLRFFLRRFRRFLRFLRRLFRRLFFFFRLFLFFLRFFFFFRLFLFLRFFFLLLFLLLFFLRRLFLFRRFRRFFRRRFFRFLFLLFLFRFRFLLLRRRLFRRFFRLRFLFLFLRRLFFFLFRLRFRFFRFLRRFFFFFLFRLRRFRLLRLLFFLLLFFLFFFRLFRFRRRRLFLFLLLLRLFRFRLRLLFLFLLLRRRLLLFRRFRLRFFRRRLLLFRLRLLFFLLRFFFFRLLRLRLLLRLFFFRRLRFRFFRRRFFFRFFFFLRFLFRFLRFRRLLLRLLFRRLFFLRRFFFRLLFRLFLRRFLRLLRRFFLLFLLLFFFFRRFFRLFFLLFLLFRFRLRFLRFFRFRLRLLLFFFLFLRFRFRFLRRLLLLLRFRRLFLLLLRRFFFLLRFLFFRLLLLFLFRLRFFFFFLRLLFFLLLFFLLRRFLRRFLRLRRLLLRRRRRLLLFLRRLFFFRFLRRLF'\n",
+ "w"
]
},
{
"cell_type": "code",
- "execution_count": 490,
+ "execution_count": 238,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPEAAAD7CAYAAAC7UHJvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGjRJREFUeJzt3Xt0VPW5//H3kwsSwx0SWDWAUEVbKHjsT/DYw+8nKJVq\nFWw9LE9p8VL9tSrWhYoiuEQQhVrqERWoriP06JJqbfEol3KxwAFJoSIlwhHEGkAJEhIuAQImmeQ5\nf8xMTuQQmL1n75l8k+e11ixmwnz3851kPrN3JvuZr6gqxhh3ZaR7AsaY5FiIjXGchdgYx1mIjXGc\nhdgYx1mIjXFcVqoKiYj9LcuYJKiqnO7rKd0Tq6qvy+TJk32PTeaSjrot6bG2tLrJ1DwTO5w2xnEW\nYmMc50SIr7zyyhZTtyU91pZWN6yacrbj7cAKiWiqahnT3IgI2hTe2DLGBM9CbIzjLMTGOM5CbIzj\nEg6xiLwsIqUi8mGDr3UUkRUi8rGILBeR9uFM0xjTGC974vnANad8bQLwrqpeBKwCHglqYsaYxCQc\nYlV9Dzh8ypdHAP8eu/7vwMiA5mWMSVCyvxPnq2opgKruB/KSn5L7du/ezejRo9m4cSMnTpzwdIlE\nIumevnFMyrqYAB5//PH661deeWXaztYJ08mTJ+nVqxcACxYs8Dy+Y8eO7Nu3j9atWwc9NeOQNWvW\nsGbNmsTu7LGToifwYYPb24GusevdgO1nGKstweHDhxXQu+++W7dt2+ZpbJ8+fRTQF198MaTZGVfF\n8nPabHk9nJbYJe4d4NbY9VuAtz1ur9maPXs2ffv29TRmzJgxAHzve98LY0qmmfLyJ6YFQCHQR0Q+\nE5HbgBnAMBH5GLg6dtv4NGDAAAC6d++e5pkYlyT8O7Gq/qiR/7o6oLkYY3ywM7aMcZyF2BjHWYiN\ncZyF2BjHWYiNcZyF2BjHWYiNcZyF2BjHWYgDtnjxYgCWL1+e5pmYliKlXUyp9umnn3LvvffSqVMn\nfvzjH3saW11dzZNPPsngwYO5+urET0qLdy4VFhZyzTWnfoZCYnr37s2ECRPo0aOHp3ElJSVMnTqV\nGTNm0LFjx4TH1dbWUlxczMyZM3nuuec455xzEh6bkZHBVVddRWZmpqe5muA068+dFjntx/SGrmPH\njnz++efk5uZ6Grd3714uuugiTpw44atuZmYmtbW1vsYm47rrrqs/AjHhaNGfO3377bezbt06zwtY\n1dTUMG/ePLZu3ep57KFDhzwHGKCgoICSkhJmzZpFeXm557p79+5l1qxZVFZWeh776aefMnv2bGpq\nahIeU1ZWBsCSJUuoqKgI+kdnEtTs98TPP/88Y8eOTWndliR+tJPqn21L06L3xCZ8WVnN+q2VJs9C\nbIzjLMTGOM5CbIzjLMTGOM5CbIzjLMTGOM5CbIzjAgmxiIwTkW0i8qGIvCYirYLYrjHm7JIOsYh8\nDbgXuFRV+xNtqrg52e0aYxIT1OF0JpArIlnAucC+gLbr26ZNmwCYO3dummdiTLiSPl9OVfeJyK+B\nz4ATwApVfTfpmSWpuroagKNHjzJp0qSEx+3YsYOFCxfyxBNPcPLkSU81165dS2FhIb///e/54Q9/\n6GmsqzIyMjy1LprgJd0AISIdgD8C/wxUAH8A3lTVBafcTydPnlx/OxWrIl5//fW+W+Ty8vLqu3T8\naCkNAf3796dVq1b1Rz4mGKeuijhlypRGGyCCCPFNwDWqemfs9k+AQao69pT7pbyLyY/KykrWrl3L\nd7/7Xc+N7uXl5axfv56RI0e2iBCXl5eTlxddkvrIkSO0b98+zTNqvs7UxRREiAcCLwOXAVXAfOB9\nVZ19yv2cCHGyjhw5QseOHVtEiMFaEVMl1FZEVf0r0UPovwFFRJc+fSnZ7Rp3WCtiejXrDwVIh5a4\nJ87KyqKmpibdU2nW7EMBjGnGLMTGOM5CbIzjLMTGOM5CbIzjLMTGOM5CbIzjLMTGOM5CfAZ+1jWa\nNm0aAL/+9a+Dnk6Tk451n8z/ZufLNeKFF17g3nvvBWDw4MEJjyspKQEgPz8/lHmFoby8nLvuuovS\n0lJP49atW0dmZqY1PqSZnXbZiGRWVBw6dCgrV64kI8ONA53hw4f7Xk85NzeXBQsWcMMNNwQ8K9NQ\nqF1MHibhXIgXL17MkCFDOPfcc9M9ndBEIhGys7OB6AciXHTRRQmP3blzJz169KB169ZhTc/E2LnT\nPnXv3r1ZBxiiHUgDBgwA8BRggD59+liAmwALsbEgOs5CbIzjLMTGOM5CbIzjLMTGOM5CbIzjLMTG\nOM5CbIzjgloVsb2IvCki20Xkv0RkUBDbNcacXVANELOApar6zw0WVTPGpEAQS5u2BQar6nwAVY2o\n6tGkZ5ZG8TbCsWPHnuWeX6WqHD58OIwppYTLc2/Jgjic7g2Ui8h8EdksIi+JSE4A2wXg448/5uDB\ng0FtLiFXXHEFEG21E5GELxkZGXTq1Ik777wzpfNNVrt27QDo1KmTp8crIhQUFFBYWJjmR9CyBbEW\n07eBDcA/quomEXkWqFDVyafcz/OqiEePHqVr164MHz6ct956K6l5ejV+/Hhmzpzpe7xLHVvFxcVc\nd9117Nixw/PYzMxMunfvTnFxcVLtm+arUr0qYlfgL6raO3b7n4CHVfX6U+7nuRWxqKiISy65BIC6\nurom/yRRVfbs2UOvXr2cCjFE5x5fgiZRhw4donPnzoCtihi2sBdUKwU+F5E+sS9dBXyU7HaB+ha5\nUaNGNfkAQ/Qb3aFDh3RPwxcR8RRgiB5+Q7Sd0QKcPkG9O/0L4DURyQaKgdsC2q4x5iwCCbGqFhFd\nn9gYk2J2xpYxjrMQG+M4C7ExjrMQG+M4C7ExjrMQG+M4C7ExjrMQB+zLL78EoKqqKs0zMS2FEyGu\nqqqqX6isqYsvwjZ+/HhP4yoqKti9e7evmqWlpZ4XQzPNiKqm5BIt5R3g+/K1r31Ni4uLfdX1a+nS\npUnNuaCgwPfYBx98MKWPVVW1d+/e+o1vfCPldVuaWH5Om60mv6Da8uXLGTNmDAcOHPC0xGhlZSWb\nN2/mpptu4s033/Rc1y9VZcaMGfzpT3/yNG7dunUAjB49ms8++8zz2OzsbGpqalLaPVVTU0NOTg7Z\n2dkcP36czMzMlNVuaZxfFVFVqaur8/QkWbVqFVdddRVdunShrKzMV91U8vMY4+rq6nj44YeZOXNm\nSkNcUVFR37V17Ngx2rRpk7LaLY3zqyKKiOcn99ChQwFo+EEETZmfxxiXkZGRllbNePthVlaWBTiN\nnAixMaZxFmJjHGchNsZxFmJjHGchNsZxFmJjHGchNsZxgYVYRDJiK0C8E9Q2jTFnF+Se+D4C+rxp\nY0ziglratAC4Fvi3ILZnvDt06BAAtbW1aZ6JSbWg9sT/Cown2k3TpHz22Wf8/e9/9zxOVVm7di1f\nfPFFCLNqXCQSYcmSJfV9yYl6+eWXAZg2bVpagjxr1qyU13RFSUkJ7733XngFGmtvSvQCXAe8ELt+\nJbCokfuF1KTVOJJoCWzbtq3vsRdeeKFWVVV5nm95ebnm5+cnNW+/lwceeMDX97hHjx5J1Z0wYYKv\nuulw8uRJ7d27t+/HOnDgQN+1CbMVUUSeAn4MRIAcoC2wUFXHnHI/z6siJuu9997jlltu4cSJE9x+\n++2exubm5jJ9+nQuuOACrr322oTHrVmzhsLCQp555hnGjRvnqebixYu5/vroOnSjR4+mZ8+eCY9d\ntWoVGzZsAODnP/95/TpJZ6Oq/PKXv6Suro7S0lLy8/M9zblh40V8SdhEVFZWUlRUBER/BcjIaPp/\nKJk+fToTJ05k8ODBntpi33nnHXbt2kVlZWXCXWZeVkUMuvH//wHvNPJ/vl+FXDJz5kwF9JVXXvE8\ndtGiRer3+zR+/HhfY2tra+v3FAcOHPA8HtCsrCzP44qKiurr1tTUeB6fDvPmzVNA58yZ43nsX/7y\nF98/W9Uz74mb/sufY376058C8JOf/CTNM0lMRkYGgwYNAiAvLy9ldfv37w9Ahw4dyMoKal2/cN12\nW3SdwDvuuCPNM/mqQL97qvqfwH8GuU1jzJnZntgYx1mIjXGchdgYx1mIjXGchdgYx1mIjXGchdgY\nx1mIjXGchbgJ2bNnD/A/bYVexBdj89r9FIRIJJLymq6J/2wPHDgQ+LYtxCGZM2eO5zWVnn76aQB+\n97vfea4XX2+q4UnzYSsvL6+/XlFRkfC4mpoaZs+enVRtVeXtt99m1apVnsdWV1fzs5/9jNdee81X\n7Zdeeoldu3Z5GjN9+nQA5s2b56vmGTV2UnXQF1pIA8Tx48eTas1r06aNVlRUeK776KOPal5enkYi\nEc9jb775Zu3Zs6fncaqq3bp1S+rx9uvXz1fdK664Ii0tm8lccnJytLy83Nfj5QwNEG6cee6Q3Nxc\n1q9fz5133smtt97Kt771LU/j+/fvT7t27TzXraqqoqyszPN6TpFIhNdffx2IfoBCjx49Eh5bUVHB\n/v37AVi4cCE5OTkJjTt58iRjx45l3759bNu2jbq6Os+tiIWFhVx88cX069evvukkEStXruSZZ55B\nROjXrx+jRo1KeOxvfvMbSkpKaN26NY8++ijf/va3Pc25b9++dO7c2dOYhDSW7qAvtJA9cbr4bUWs\nq6ur31McPXrU09jq6mrf7YRHjhypH1tXV+dprGp0zzR58mTP4/76178qoIMHD/Y89rHHHlNAH3ro\nIc9jk4W1IprGiEh9K2Lbtm09jc3Ozq6/7rWdML6i4pAhQ1K6ouNll10GwDe/+U3PY6dMmQI0vZU2\nLcTGOM5CbIzjLMTGOM5CbIzjLMTGOM5CbIzjLMTGOC7pEItIgYisEpGPRGSriPwiiIkZYxITxGmX\nEeB+Vd0iIm2AD0RkharuCGDbxpizSHpPrKr7VXVL7PpxYDtwXrLbNd5s2rQJ8NZNlCxtsCRJw+th\nO3z4MAAffPCB57Hxhc22bt0a6JzSKdDfiUXkfOASYGOQ2zVnt3r1auB/wuzHPffcQ1VVVcL3b9j3\nfPToUV81v/jiC371q195GhNfc2rx4sWexu3Zs6d+ZY7333/f09gPP/yQsWPHehqTMo2dVO31ArQB\nNgEjGvn/UE8Qb+mmTJmieXl5vpoJLr300qRa7Lp16+Zrzpdddlna2wP9XHbv3u3r8SaDsFsRRSQL\n+APwqqq+3dj9Hn/88frrqVgVsSU5fvw4ZWVlnpsJIpEImzdvBuD73/8+r7zyCuecc05CYw8ePEiP\nHj3Yv38/FRUV9U0NiVq3bh0vvvgipaWlTJo0KeFxK1euZOTIkWRnZ3PkyJGEx+3evZupU6fyxhtv\nsGTJEk/Pv6KiIm699VZ27tzJ1KlT69eDDsupqyKeUWPp9nIBXgGeOct9wn+5asH8tiKqav0exuua\nyg3bGP0cAfhVVlamgA4bNszXeED//Oc/ex4Xb2Ncv369r7rJIMxWRBH5DjAaGCoifxORzSIyPNnt\nmtTJzc0FoFWrVp7Gxff6WVlZKW0n7NKlC+BtPeQgxNsY4/82FUkfTqvqesDbx0kYYwJjZ2wZ4zgL\nsTGOsxAb4zgLsTGOsxAb4zgLsTGOsxAb4zgLsTGOsxA3E4sWLQKoX1bFi8rKSgBOnDgR6Jyaoi1b\ntgCwYsWKNM8kOLYWUzMRX4Fx9uzZXHjhhQmPGz9+fP31uXPnkpeXl/DYu+++G4ief++lBfLkyZPc\nd999jBs3jtGjR3tehykZ8XkWFhamrGboGjupOugL1gARqrvuuivtLXp+Ln7WU6qpqdEuXbroU089\n5XlsfP2opUuXeh67a9cubdWqlX788ceexyaLMBsgTNMwd+5cAJYtW+bpxfWOO+5g2rRp1NbWen5h\nHjFiBL/97W89j6uqquKpp54CYO3atZ4f67JlyygvL2fixImex8bXj0q03bKhJ598kurqap544gnP\nY0Pl9Qfg94LtiUM1YsQIBbSysjLdU0kYoEOGDPE87tixYwroj370I991/bQifvLJJwroRx995Ktu\nMrA9cfPXp08fAM4999w0zyR8bdq0AfD0u38QLrjggq/821RYiI1xnIXYGMdZiI1xnIXYGMdZiI1x\nnIXYGMdZiI1xXCAhFpHhIrJDRHaKyMNBbNMYk5ggPnc6A3gBuAboC/yLiFyc7HaNMYkJYk88EPhE\nVfeoag3wOjAigO2aZqysrAyILgQXPaswNeJLo7z66qspqxm2IFoRzwM+b3B7L9FgG0fU1dVx4sSJ\n+tMZUyG++mJGRgaq6msFiQ0bNvDss88mfP/i4mKef/55INqS6GXspk2bePvtRpcZS6sgQny67/5p\nX1ptQbXwiAjt27enurra83Is999/P8uWLWPHjtStC19QUEDnzp0ZPny4537i+CJqy5cvZ/ny5b7q\nb9u2jXHjxnked95555GZGf6CJyldUA24HFjW4PYE4OHT3C/0To+WjFh/rp8+2UGDBvlejC0Z+Oxi\nmjhxYv3j9eLo0aP6xhtv+OpiOnDggC5cuFAjkYincUEh5C6m94ELRKSniLQCbgbeCWC7xoMxY8YA\nMGzYsDTPJHyPPPIIAH379vU0rm3btowaNcpXzby8PG688caU7IW9CmJBtVoRGQusIPpG2cuquj3p\nmRlPunbtCkRXKGzu4r+7x1dHbOkC+Ymr6jLgoiC2ZYzxxs7YMsZxFmJjHGchNsZxFmJjHGchNsZx\nFmJjHGchNsZxFmJjHGchbuFqa2vZuHEjACUlJSmrG18AbvXq1dTV1Xkaq0m0Lr711lsAPP300763\n0dQ0/3P0Wgi/T+yMjAzy8/M5cOAAubm5Ac+qcfFaOTk53HTTTQmPKy8vZ926dYC/xxyve/7553se\n21RZiJuJ6upqWrduTWVlpacwiggDBw5k1apVdOjQIcQZflXnzp2ZMmUKkydPrt87etWvXz/PY+IN\nIj/4wQ981WyK7HC6mXjuuef48ssvWb9+veexZWVlaVlg/LHHHvPc+lpXV8fMmTMBmDNnjuea8Q8f\naE6NIhbiZiK+4Hdzb0UUkfpm/gcffDDNs2kaLMTNRPwQ2s/H3Lgm/kkgqfwdvimzEBvjOAuxMY6z\nEBvjOAuxMY6zEBvjOAuxMY6zEBvjuKRCLCJPi8h2EdkiIn8UkXZBTcwYk5hk98QrgL6qegnwCfBI\n8lMyxniRVIhV9V1VjfeRbQAKkp+SSaVIJFLfirhr1640z8ab2tpaqqurPY2ZP38+AA888EAYU0qL\nIM8Cv53osqYmDfy2ImZlZTFgwAC2b99Ot27dAp5VuKZNm8a0adPo3LlzwmMikQgAI0eODGtaKXfW\nEIvISqBrwy8RXcxqkqouit1nElCjqgvOtC1bFTE8Bw8eJDs7m4MHD3p6UgPk5+dTVFRETk5OSLML\nXryNEaKP3YvBgwf7WhExlbysiijJfEoCgIjcAvx/YKiqVp3hfppsLdO4eOPD6tWrPb84Xn755Wzc\nuDGli30H4dixY4hIStdVThcRQVVP292S7LvTw4GHgBvOFGATvvjveC3p6KZt27YtIsBnk+y7088D\nbYCVIrJZRLx3aZtAeF2o2zQfSb2xpaoXBjURY4w/9vJtjOMsxMY4zkJsjOMsxMY4zkJsjOMsxMY4\nzkJsjOMsxIaampp0T8EkwULczBQXF3u6fyQSYfPmzQDs3LkzjCmZkDWfBWlauHbtoh+q8vWvf93X\n+I4dO9KrV68gp2RSJOkupoQLWRdTqKqrq7nxxhtZunQp+fn5dOrUKeGxrVu3Zu7cuVx++eUhztAk\n40xdTBbiZqa6uppWrVqlexomYBZiYxwXWj+xMSb9LMTGOM5CbIzjLMTGOM5CbIzjLMTGOM5CbIzj\nAgmxiDwoInUikvhpQsaYQCQdYhEpAK4G9iQ/ndNL9JPwm0PdlvRYW1rdsGoGsSf+V2B8ANtplP2g\nrW5zqNskQywi1wOfq+rWgOZjjPEomQXVHgUmAsNO+T9jTAr5boAQkX7Au8AJouEtAEqAgap64DT3\nt+4HY5IQeheTiOwCLlXVw4Fs0BiTkCD/TqzY4bQxKZeyfmJjTDicOmNLRO4VkR0islVEZqSwbkpP\nZhGRp0Vku4hsEZE/iki7kOsNj31fd4rIw2HWitUrEJFVIvJR7Gf5i7BrnlI/I7YU7zsprNleRN6M\n/Vz/S0QGBbVtZ0IsIlcC1wP9VPVbwMwU1Q39ZJbTWAH0VdVLgE+AR8IqJCIZwAvANUBf4F9E5OKw\n6sVEgPtV9ZvAPwL3pKBmQ/cBH6WwHsAsYKmqfgMYAGwPasPOhBi4C5ihqhEAVS1PUd3QT2Y5laq+\nq6p1sZsbiL7zH5aBwCequkdVa4DXgREh1kNV96vqltj140Sf0OeFWTMu9qJ8LfBvqagXq9kWGKyq\n8wFUNaKqR4Pavksh7gP8XxHZICKrReT/hF2wiZzMcjvwpxC3fx7weYPbe0lRoABE5HzgEmBjikrG\nX5RT+WZQb6BcRObHDuNfEpGcoDbepD53+iwnlmQBHVT1chG5DPg90W9OmDVDO5nlDHUnqeqi2H0m\nATWquiCouqebymm+lpInuIi0Af4A3BfbI4dd7zqgVFW3xH49S9VfU7KAS4F7VHWTiDwLTAAmB7Xx\nJkNVhzX2fyLyc2Bh7H7vx95o6qyqB8OoGTuZ5XygSETiJ7N8ICKnPZklqLoN6t9C9LBvaLK1zmIv\n0KPB7QJgX8g1EZEsogF+VVXfDrtezHeAG0TkWiAHaCsir6jqmJDr7iV6RLcpdvsPQGBvILp0OP0f\nwFUAItIHyE42wGeiqttUtZuq9lbVXkR/EP8QRIDPRkSGAw8BN6hqVcjl3gcuEJGeItIKuBlIxbu2\n84CPVHVWCmoBoKoTVbWHqvYm+jhXpSDAqGop8HnseQvR53Fgb6w1qT3xWcwH5onIVqAKCP2bf4pU\nnszyPNAKWBk9CGCDqt4dRiFVrRWRsUTfEc8AXlbVwN45PR0R+Q4wGtgqIn8j+r2dqKrLwqybZr8A\nXhORbKAYuC2oDdvJHsY4zqXDaWPMaViIjXGchdgYx1mIjXGchdgYx1mIjXGchdgYx1mIjXHcfwPV\nrC2Hf85MaAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027310390>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "w_short = w[:100]\n",
+ "plot_trace(trace_tour(w_short))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 214,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "turning from Direction.UP to Direction.UP with F\n",
+ "RFFRRFFFRFFRFLLRFLFFLLLLFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLR\n",
+ "RFFRRFFFRFFRFLLRFLFFFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLR\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nHk9j8/PzmT59Opdccgk33nhjwuPWrl1LSUkJzz//POPHj/dUc+nSpdx8c3QdujFjxtCrV6+Ex65e\nvZqNGzcC8JOf/KRxnaTzUVV+8Ytf0NDQQFlZGUVFRZ7m3LTxIr4kbCKqqqrYtm0bEP0VICur5f+h\nZPr06UyaNIkhQ4Z4aot999132b17N1VVVQl3mXlZFTHoxv//DbzbzP/5/inkkpkzZyqgr776quex\nS5YsUb+fpwkTJvgaW19f37inOHz4sOfxgObk5Hget23btsa6dXV1nsenw4IFCxTQOXPmeB77pz/9\nyffXVvXce+KW/+PPMT/+8Y8B+OEPf5jmmSQmKyuLwYMHA1BYWJiyugMGDACgU6dO5OQEta5fuO6+\nO7pO4L333pvmmXxVoJ89Vf1P4D+D3KYx5txsT2yM4yzExjjOQmyM4yzExjjOQmyM4yzExjjOQmyM\n4yzExjjOQtyC7N27F/jvtkIv4ouxee1+CkIkEkl5TdfEv7aHDx8OfNsW4pDMmTPH85pKzz33HAC/\n/e1vPdeLrzfV9KT5sFVUVDTer6ysTHhcXV0ds2fPTqq2qvLOO++wevVqz2Pr6+t57bXX2LJli6/a\nr7zyCrt37/Y0Zvr06QAsWLDAV81zau6k6qBvZEgDxKlTp5JqzWvXrp1WVlZ6rvuzn/1MCwsLNRKJ\neB575513aq9evTyPU1Xt3r17Uq+3f//+vupec801aWnZTOaWl5enFRUVvl4v52iAcOPMc4fk5+ez\nYcMG7rvvPn70ox/xzW9+09P4AQMG0KFDB891a2pqKC8v97yeUyQS4fXXXweiF1Do2bNnwmMrKys5\ndOgQAIsXLyYvLy+hcadPn2bcuHEcPHiQ7du309DQ4LkVsaSkhMsvv5z+/fs3Np0kYtWqVTz//PPk\n5+dz9913M3LkyITHzp8/n7feeouCggLGjx/Pt771LU9z7tevHwUFBZ7GJKS5dAd9I0P2xOnitxWx\noaGhcU9x4sQJT2Nra2t9txMeP368cWxDQ4OnsarRPdOUKVM8j/vzn/+sgN52222ex8ZbRRcvXux5\nbLKwVkTTHBFpbEVs3769p7G5ubmN9722E8ZXVBw6dGhKV3S86qqrAG8XMIi76aabvvJvS2EhNsZx\nFmJjHGchNsZxFmJjHGchNsZxFmJjHGchNsZxSYdYRIpFZLWIfCwiH4nIT4OYmDEmMUGcdhkBHlHV\n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\nYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40274ccbe0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "trimmed = trim_loop(w_short)\n",
+ "print('{}\\n{}'.format(w_short, trimmed))\n",
+ "plot_trace(trace_tour(trimmed))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 215,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "turning from Direction.UP to Direction.LEFT with L\n",
+ "RFFRRFFFRFFRFLLRFLFFFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLR\n",
+ "RFFRRFFFRFFRFLLRFLFFLLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLR\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOUAAAD7CAYAAACVFVP9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGWxJREFUeJzt3X90VPWZx/H3kx8IhN+QwKkhCFW0CwXXXcW1y66gVCoq\naF2P21isVvdUxXpQqSg9jVhqqaVWVOTQU6Srp1SrxVWQ8sMCCyULLVKoVFBLBPkhIeFHAgkmmeTZ\nP2YmTTmEzL1z5843med1zhwmcL/3+U6ST+5k+D7zFVXFGOOOrHRPwBjz9yyUxjjGQmmMYyyUxjjG\nQmmMYyyUxjgmJ6xCImL/92IynqpKW8eEeqVUVV+3kpIS32OTuaWjbiY91kyrmyh7+mqMYyyUxjim\nXYTyyiuvzJi6mfRYM7FuIsTLc92kColoWLWMcZGIoK690GOMaZuF0hjHWCiNcYyF0hjHJBxKEVko\nIuUi8ucWf9dbRFaJyAcislJEeqZmmsZkDi9XykXANaf93XTgHVW9EFgDPBrUxIzJVAmHUlV/Dxw7\n7a8nAv8du//fwKSA5mVMxkr2d8oCVS0HUNVDQH7yU2r/9uzZQ3FxMZs3b6a2ttbTLRKJpHv6Js1C\n6xIBePzxx5vvX3nllU6vqvDr1KlTDB48GIDFixd7Ht+7d28OHjxI586dg56aCdm6detYt26d94Ee\nV7kPAv7c4uOdQP/Y/QHAzrOM1Uxw7NgxBfTee+/VHTt2eBo7dOhQBXTBggUpmp1Jp1gG2syZ16ev\nErvFvQV8I3b/duBN7z8WOqZ58+YxbNgwT2MmT54MwFe+8pVUTMm0E17+S2QxUAoMFZFPROQOYDYw\nTkQ+AK6OfWx8GjlyJAADBw5M80xMOiX8O6Wqfq2Vf7o6oLkYY7AVPcY4x0JpjGMslMY4xkJpjGMs\nlMY4xkJpjGMslMY4xkJpjGMslAFbtmwZACtXrkzzTEx7FWqXSNh2797N/fffT58+fbjttts8ja2v\nr+cHP/gBo0eP5uqrE1+0FO8MKS0t5ZprTu8JT8yQIUOYPn06RUVFnsYdOHCAJ554gtmzZ9O7d++E\nxzU2NlJWVsacOXN49tlnOeeccxIem5WVxVVXXUV2dranuZrWdej3fRVp8y02U6J3797s27ePvLw8\nT+P279/PhRdeSG1tra+62dnZNDY2+hqbjAkTJjQ/QzCts/d9jbnzzjvZsGGD581YGhoaePHFF3nv\nvfc8jz169KjnQAIUFhZy4MAB5s6dS2Vlpee6+/fvZ+7cudTU1Hgeu3v3bubNm0dDQ0PCYyoqKgB4\n++23qaqqCvpLl7E6/JXyueeeY8qUKaHWzSTxZyNhf23bI7tSmtDk5HTolyZCZ6E0xjEWSmMcY6E0\nxjEWSmMcY6E0xjEWSmMcY6E0xjGBhFJEporIDhH5s4j8UkQ6BXFeYzJR0qEUkc8B9wOXqOoIoovc\nb032vMZkqqCevmYDeSKSA3QFDgZ0Xt+2bNkCwPz589M8E2O8SXp9lKoeFJGfAJ8AtcAqVX0n6Zkl\nqb6+HoDq6mpmzJiR8Lhdu3axZMkSvv/973Pq1ClPNdevX09paSm//vWv+epXv+ppbHuVlZXlqdXL\ntC3pBeki0gv4DfAfQBXwOvCaqi4+7TgtKSlp/jiMXbeuv/563y1F+fn5zV0QfmTKAu0RI0bQqVOn\n5mcm5m9O33Vr5syZCS1IDyKUNwPXqOrdsY+/DoxS1SmnHRd6l4gfNTU1rF+/ni9/+cueG3crKyvZ\nuHEjkyZNyohQVlZWkp8f3ZL0+PHj9OzZM80zcluiXSJBhPIyYCFwKVBHdBv2P6rqvNOOaxehTNbx\n48fp3bt3RoQSrHXLi9Bat1T1D0Sfsv4J2E50q7yfJXte035Y61awOnSTczpk4pUyJyeHhoaGdE/F\nedbkbEw7ZaE0xjEWSmMcY6E0xjEWSmMcY6E0xjEWSmMcY6E0xjEWyrPwsy/HrFmzAPjJT34S9HSc\nk459SzKBrY9qxfPPP8/9998PwOjRoxMed+DAAQAKCgpSMq9UqKys5J577qG8vNzTuA0bNpCdnW0L\n0QNmy+xakcyOXWPHjmX16tVkZbWPJyLjx4/3vZ9mXl4eixcv5oYbbgh4Vh1PaF0iiWqPoVy2bBlj\nxoyha9eu6Z5OykQiEXJzc4Fog/eFF16Y8NgPP/yQoqIiOnfunKrpdSi29jUAAwcO7NCBhGiHx8iR\nIwE8BRJg6NChFsgUsFAaC5ZjLJTGOMZCaYxjLJTGOMZCaYxjLJTGOMZCaYxjLJTGOCaoXbd6ishr\nIrJTRP4iIqOCOK8xmSioBelzgeWq+h8tNvkxxvgQxFZ43YHRqroIQFUjqlqd9MzSKN52NWXKlDaO\n/HuqyrFjx1IxpVC057l3JEE8fR0CVIrIIhHZKiI/E5EuAZwXgA8++IAjR44EdbqEXHHFFUC0NUlE\nEr5lZWXRp08f7r777lDnm6wePXoA0KdPH0+PV0QoLCyktLQ0zY+gYwliL5F/AjYB/6KqW0TkGaBK\nVUtOO87zrlvV1dX079+f8ePH88YbbyQ1T6+mTZvGnDlzfI9vTx0xZWVlTJgwgV27dnkem52dzcCB\nAykrK0uq3a0jSueuW/2B/1PVIbGP/xV4RFWvP+04z61b27dv5+KLLwagqanJ+S+6qrJ3714GDx7c\nrkIJ0bnHt1xI1NGjR+nbty9gu24lIswNfsqBfSIyNPZXVwHvJ3teoLml6JZbbnE+kBD9pPfq1Svd\n0/BFRDwFEqJPdyHa/mWBDE5Qr75+G/iliOQCZcAdAZ3XmIwTSChVdTvR/SmNMUmyFT3GOMZCaYxj\nLJTGOMZCaYxjLJTGOMZCaYxjLJTGOMZCGbDPPvsMgLq6ujTPxLRX7SKUdXV1zRvnuC6+KdC0adM8\njauqqmLPnj2+apaXl3venMc4TFVDuUVLeQf4vn3uc5/TsrIyX3X9Wr58eVJzLiws9D324YcfDvWx\nqqoOGTJEv/CFL4Retz2KZaDNrDi/wc/KlSuZPHkyhw8f9rQlXU1NDVu3buXmm2/mtdde81zXL1Vl\n9uzZ/Pa3v/U0bsOGDQAUFxfzySefeB6bm5tLQ0NDqN0pDQ0NdOnShdzcXE6ePEl2dnZotdujDrXr\nlqrS1NTk6Yu+Zs0arrrqKvr160dFRYWvumHy8xjjmpqaeOSRR5gzZ06ooayqqmruijlx4gTdunUL\nrXZ71KF23RIRz9+sY8eOBaBlY7XL/DzGuKysrLS0tsXbtXJyciyQAWoXoTQmk1gojXGMhdIYx1go\njXGMhdIYx1gojXGMhdIYxwQWShHJir1D+ltBndOYTBTklfIBAnq/V2MyWVBb4RUC1wI/D+J8xruj\nR48C0NjYmOaZmGQFdaX8KTCNaLeCUz755BP++te/eh6nqqxfv55PP/00BbNqXSQS4e23327uy0zU\nwoULAZg1a1Zagjl37tzQa3ZYibSSnO0GTACej92/EljaynGp6IY5K5JooerevbvvsRdccIHW1dV5\nnm9lZaUWFBQkNW+/t4ceesjX57ioqCiputOnT/dVtz0irNYtEXkSuA2IAF2A7sASVZ182nGed91K\n1u9//3tuv/12amtrufPOOz2NzcvL44c//CHnn38+1157bcLj1q1bR2lpKU8//TRTp071VHPZsmVc\nf310X6Ti4mIGDRqU8Ng1a9awadMmAL71rW817/PRFlXlRz/6EU1NTZSXl1NQUOBpzi0Xwse3EExE\nTU0N27dvB6JPubOyOt5/BPjddSvoRuZ/B95q5d9S+UPIGXPmzFFAX3rpJc9jly5dqn4/T9OmTfM1\ntrGxsfmqdfjwYc/jAc3JyfE8bvv27c11GxoaPI9vj0jwStnxfjyl2Te/+U0Avv71r6d5JonJyspi\n1KhRAOTn54dWd8SIEQD06tWLnJyg9pnqGAL9bKjq/wL/G+Q5jck0dqU0xjEWSmMcY6E0xjEWSmMc\nY6E0xjEWSmMcY6E0xjEWSmMcY6F0yN69e4G/tWF5Ed8cyGt3SRAikUjoNTsyC2WKvPDCC573BHnq\nqacA+NWvfuW5Xny/lJYLoFOtsrKy+X5VVVXC4xoaGpg3b15StVWVN998kzVr1nge29jYyMsvv8zW\nrVuTmkPKJLJANogbGbIg/eTJk0m1MnXr1k2rqqo81/3ud7+r+fn5GolEPI+99dZbddCgQZ7HqaoO\nGDAgqcc7fPhwX3WvuOKKtLS4de3aVY8ePeprziS4IN1WAgcsLy+PjRs3cvfdd/ONb3yDL37xi57G\njxgxgh49eniuW1dXR0VFhef9SCKRCK+88goQbQgvKipKeGxVVRWHDh0CYMmSJXTp0iWhcadOnWLK\nlCkcPHiQHTt20NTU5Ll1q7S0lIsuuojhw4c3NwEkYvXq1Tz99NPk5eVxxx13MGHChITHLly4kNdf\nf52ZM2fyzDPPeJqvJ4kkN4gbGXKlTBe/rVtNTU3NV4Hq6mpPY+vr6323Xx0/frx5bFNTk6exqtGr\nTklJiedxf/jDHxTQm266yfPYeGvdkiVLPI9VtdYtkyARaW7d6t69u6exubm5zfe9tl/Fd+waM2ZM\nqDuGXXrppYC3huy466677u/+TBULpTGOsVAa4xgLpTGOsVAa4xgLpTGOsVAa4xgLpTGOSTqUIlIo\nImtE5H0ReU9Evh3ExIzJVEEss4sAD6rqNhHpBrwrIqtUdVcA5zYm4yR9pVTVQ6q6LXb/JLATODfZ\n8xpvtmzZAnjr1kiWttjyouX9VDt27BgA7777ruex8Ra33bt3BzmlQAX6O6WInAdcDGwO8rymbWvX\nrgX+Fk4/7rvvPurq6hI+vmXfZ3V1ta+an376KT/+8Y89jYnvmbJs2TJP4/bu3UtxcTEAK1eu9DQ2\nVIkskE3kBnQDtgATW/l3X4t4TWJmzpyp+fn5vhZ3X3LJJUm1Mw0YMMDXnC+99NK0tF8BumDBAs/z\nLS8vV0D37dvn6/ESZuuWiOQArwMvq+qbrR33+OOPN98PY9etTHLy5EkqKio8L+6ORCLNzb7XXXcd\nL730Euecc05CY48cOUJRURGHDh2iqqqqeZF5ojZs2MCCBQsoLy9nxowZCY9bvXo1kyZNIjc3l+PH\njyc8bs+ePTzxxBO8+uqrnH/++Z7mCtFdswBKSkqa9wM9m9N33UpYIslt6wa8BDzdxjG+frqYxPht\n3VLV5quH1z01W7Z9+blC+1VRUaGAjhs3ztd4QH/3u995Hhdv+9q4caPvuhpG65aIfAkoBsaKyJ9E\nZKuIjE/2vCY8eXl5AHTq1MnTuPhVOScnJ9T2q379+gH+2q+SEW/7iv+ZKkk/fVXVjYC3dndjTKts\nRY8xjrFQGuMYC6UxjrFQGuMYC6UxjrFQGuMYC6UxjrFQGuMYC2UHsXTpUoDmbQS8qKmpAaC2tjbQ\nOblo27ZtAKxatSrNM2md7SXSQcR3+Jo3bx4XXHBBwuOmTZvWfH/+/Pnk5+cnPPbee+8FouunvbSM\nnTp1igceeICpU6dSXFzseR+RZMTnWVpaGlpNzxJZIBvEDVuQnlL33HNP2tqgkrn52Q+koaFB+/Xr\np08++aTnsfH9T5YvX+557Mcff6ydOnXSDz74wPNY1cQXpFsoO4j4N/mKFSs8jbvrrrt01qxZ2tjY\n6LnmxIkT9Re/+IXncXV1dfrkk08qoGPGjPE8Pr7Rjt/vKXx2idx1110K6G233ea7rlooM8fEiRMV\n0JqamnRPJWF+Q3nixAkF9Gtf+5rvun5C+dFHHymg77//vu+6GkbrlnHD0KFDAejatWuaZ5J63bp1\nA/D0u3MQ4o3RfhqkvbBQGuMYC6UxjrFQGuMYC6UxjrFQGuMYC6UxjrFQGuOYQEIpIuNFZJeIfCgi\njwRxTmMyVRDv+5oFPA9cAwwD/lNELkr2vMZkqiCulJcBH6nqXlVtAF4BJgZwXtOBVVRUANGNiaIr\n0MIR30bg5ZdfDq2mV0G0bp0L7Gvx8X6iQTXtRFNTE7W1tc3L18IQ390rKysLVfX1DuubNm3imWee\nSfj4srIynnvuOSDawuVl7JYtW3jzzVa3yQlUEKE802fzjD/6bIOf1BERevbsSX19veftBx588EFW\nrFjBrl3h7fNbWFhI3759GT9+vOd+yvimPitXrvS9pd2OHTuYOnWq53Hnnnsu2dmJbQiQtg1+gMuB\nFS0+ng48cobjfK2sN4kh1srkp09w1KhRvtugkoHPLpHHHnvMV+tWdXW1vvrqq766RA4fPqxLlizR\nSCTiaVxLhNgl8kfgfBEZJCKdgFuBtwI4r/Fg8uTJAIwbNy7NM0m9Rx99FIBhw4Z5Gte9e3duueUW\nXzXz8/O58cYbE75KJiOIDX4aRWQKsIroC0cLVXVn0jMznvTv3x+I7oDV0cV/943vvtXRBPIVVNUV\nwIVBnMuYTGcreoxxjIXSGMdYKI1xjIXSGMdYKI1xjIXSGMdYKI1xjIXSGMdYKDNcY2MjmzdvBuDA\ngQOh1Y1vSLR27Vqampo8jdUkWr3eeOMNAJ566inf50i1jr8mK0P4/UbNysqioKCAw4cPk5eXF/Cs\nWhev1aVLF26++eaEx1VWVrJhwwbA32OO1z3vvPM8jw2LhbKDqK+vp3PnztTU1HgKl4hw2WWXsWbN\nGnr16pXCGf69vn37MnPmTEpKSpqvXl4NHz7c85j4gv2bbrrJV80w2NPXDuLZZ5/ls88+Y+PGjZ7H\nVlRUpGXD2O9973ueWwWbmpqYM2cOAC+88ILnmvFmapcX7lsoO4j4Bq4dvXVLRJqbkx9++OE0zyY1\nLJQdRPwpq5+31Whv4u9UEObvwGGyUBrjGAulMY6xUBrjGAulMY6xUBrjGAulMY6xUBrjmKRCKSJP\nichOEdkmIr8RkR5BTcyYTJXslXIVMExVLwY+Ah5NfkrGZLakQqmq76hqvO9mE1CY/JRMmCKRSHPr\n1scff5zm2XjT2NhIfX29pzGLFi0C4KGHHkrFlAIR5KrcO4lug2fSwG/rVk5ODiNHjmTnzp0MGDAg\n4Fml1qxZs5g1axZ9+/ZNeEwkEgFg0qRJqZpW0toMpYisBvq3/Cuim6vMUNWlsWNmAA2quvhs57Jd\nt1LnyJEj5ObmcuTIEU/fpAAFBQVs376dLl26pGh2wYu3fUH0sXsxevRoXztueeV31y1JposbQERu\nB/4LGKuqdWc5TpOtZVoXX4i+du1azz/sLr/8cjZv3hzq5q1BOHHiBCIS6r6ayRARVLXNjoFkX30d\nD3wHuOFsgTSpF/8dKZOefXTv3r3dBNKLZF99fQ7oBqwWka0i4r3r1ATC68arxl1JvdCjqhcENRFj\nTJT9eDXGMRZKYxxjoTTGMRZKYxxjoTTGMRZKYxxjoTTGMRZKQ0NDQ7qnYFqwUHYwZWVlno6PRCJs\n3boVgA8//DAVUzIeubuhgvGkR4/omz58/vOf9zW+d+/eDB48OMgpGZ+S7hJJuJB1iaRUfX09N954\nI8uXL6egoIA+ffokPLZz587Mnz+fyy+/PIUzNIl2iVgoO5j6+no6deqU7mmYM7BQGuOYUPopjTHB\ns1Aa4xgLpTGOsVAa4xgLpTGOsVAa4xgLpTGOCSSUIvKwiDSJSOLLSIwxZ5R0KEWkELga2Jv8dM7M\nz7tMt9e6mfRYM7FuIoK4Uv4UmBbAeVqVSV+4THqsmVg3Ecm+Q/r1wD5VfS+g+RiT8ZLZ4Oe7wGPA\nuNP+zRiTBN8L0kVkOPAOUEs0jIXAAeAyVT18huNtNbrJeKF2iYjIx8AlqnoskBMak6GC/H9KxZ6+\nGpO00PopjTGJaVcrekTkfhHZJSLvicjsEOuGujhCRJ4SkZ0isk1EfiMiPVJcb3zs8/qhiDySylqx\neoUiskZE3o99Lb+d6pqn1c+Kbd34Vog1e4rIa7Gv619EZFRrx7abUIrIlcD1wHBV/SIwJ6S6KV8c\ncQargGGqejHwEfBoqgqJSBbwPHANMAz4TxG5KFX1YiLAg6r6D8C/APeFULOlB4D3Q6wHMBdYrqpf\nAEYCO1s7sN2EErgHmK2qEQBVrQypbsoXR5xOVd9R1abYh5uIvrKdKpcBH6nqXlVtAF4BJqawHqp6\nSFW3xe6fJPoNem4qa8bFfsheC/w8jHqxmt2B0aq6CEBVI6pa3drx7SmUQ4F/E5FNIrJWRP451QUd\nWRxxJ/DbFJ7/XGBfi4/3E1JAAETkPOBiYHNIJeM/ZMN8MWUIUCkii2JPm38mIl1aO9ip931tY6FC\nDtBLVS8XkUuBXxN9sKmsmbLFEWepO0NVl8aOmQE0qOrioOqeaSpn+LtQvmFFpBvwOvBA7IqZ6noT\ngHJV3Rb7dSis/y3IAS4B7lPVLSLyDDAdKGntYGeo6rjW/k1EvgUsiR33x9gLL31V9UgqasYWR5wH\nbBeR+OKId0XkjIsjgqrbov7tRJ9mjU22Vhv2A0UtPi4EDqa4JiKSQzSQL6vqm6muF/Ml4AYRuRbo\nAnQXkZdUdXKK6+4n+oxrS+zj14FWX1BrT09f/we4CkBEhgK5yQbybFR1h6oOUNUhqjqY6Cf2H4MI\nZFtEZDzwHeAGVa1Lcbk/AueLyCAR6QTcCoTxquSLwPuqOjeEWgCo6mOqWqSqQ4g+zjUhBBJVLQf2\nxb5vIfp93OoLTU5dKduwCHhRRN4D6oCUfzJPE+biiOeATsDq6EWaTap6byoKqWqjiEwh+opvFrBQ\nVVt9ZTAIIvIloBh4T0T+RPRz+5iqrkhl3TT7NvBLEckFyoA7WjvQFg8Y45j29PTVmIxgoTTGMRZK\nYxxjoTTGMRZKYxxjoTTGMRZKYxxjoTTGMf8PuSvpL7lBRvYAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40271e3240>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "trimmed2 = trim_loop(trimmed)\n",
+ "print('{}\\n{}'.format(trimmed, trimmed2))\n",
+ "plot_trace(trace_tour(trimmed2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 250,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Mistake(i=104, step=Step(x=-4, y=6, dir=<Direction.DOWN: 3>)),\n",
+ " Mistake(i=105, step=Step(x=-5, y=6, dir=<Direction.LEFT: 4>)),\n",
+ " Mistake(i=106, step=Step(x=-5, y=7, dir=<Direction.UP: 1>)),\n",
+ " Mistake(i=107, step=Step(x=-5, y=8, dir=<Direction.UP: 1>)),\n",
+ " Mistake(i=108, step=Step(x=-5, y=9, dir=<Direction.UP: 1>)),\n",
+ " Mistake(i=115, step=Step(x=-5, y=12, dir=<Direction.LEFT: 4>)),\n",
+ " Mistake(i=116, step=Step(x=-5, y=11, dir=<Direction.DOWN: 3>)),\n",
+ " Mistake(i=127, step=Step(x=2, y=11, dir=<Direction.LEFT: 4>)),\n",
+ " Mistake(i=130, step=Step(x=3, y=11, dir=<Direction.UP: 1>)),\n",
+ " (132, Step(x=3, y=11, dir=<Direction.UP: 1>))]"
+ ]
+ },
+ "execution_count": 250,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "mistake_positions(trace_tour(w[:130]))[-10:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 288,
"metadata": {},
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Step(x=40, y=36, dir=<Direction.UP: 1>)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVoAAAD7CAYAAAArZlyJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXd8VFX6/z8nMyQhIR0hkFBVmjTpyKpBFBvKLiuK5Sfu\nuq67iCv4RQ0ua8Vd/Kp8BUHUxQV0FSy4UsQCStBFikBC76GFVBLS25Tz+2NyDvdO73Nn8rxfr/tK\nzp1Tnntn5plzn/Oc52GccxAEQRCBIyrUAhAEQUQ6pGgJgiACDClagiCIAEOKliAIIsCQoiUIgggw\npGgJgiACjD7QAzDGyH+MIIhWAeec2TsflBkt5zzox/PPPx+ScUlebR4kL8kaaHmdQaYDgiCIAEOK\nliCIsOTf//43GGOq4/nnn1fVmT17tk2d1157TVW+7rrrnI5z/Phx9O7dW9Wme/fuLmexKgI9TbcM\nEXw2b94cknG9heQNLCRv4AiVrAA4AB4fH8/j4+N5bGwst9Y3AHhsbKysA4BnZmaqyq501A033KAa\nR7QpKCiwGYs70IOMe6KVvYAxxgM9BkEQrQ/GGPr06YPDhw8DAJYsWYJp06apZpqMMaxcuRJTpkyx\n28fRo0fRp08fp7PT+++/Hx9//LFNvwUFBcjIyFCd46FcDCMIgmjNBNy9iyAIwlPMZjPWrVsHvf6S\nijKZTOCcq86dOnUKX331FQDgwIEDACDLYgb6ySef4MiRIwCAxsZG9O3bF+3btwcAnDt3DgDw3HPP\nISrKMu80Go0YMmQIYmJiAADnz59XySb6NZvNbl8PmQ4IgtAc8+bNw+zZs0Mthgqhx5qbmxETE4Pj\nx4/jiiuukK+T6YAgiLBi9+7dANSL9Waz2cZvVdhXOecYPHiwTRsAmD59uiynp6e71e/DDz8sy507\nd1bJFh0dDQBo27at29dDipYgiLCAMbuTRYlOp/Oqnb3XlefatGnjhnTOIUVLEITmaG5udqteQ0OD\nyzpK02V9fb1b/RoMBrfquQvZaAmC0BwTJ07E2rVrnbpdOZqpWrthuarjab/CRnvkyBH07t1b1c6R\njZa8DgiC0BzCDuoKxhhuvfVWAMDhw4dx6tQpmzo9evTAn//8ZwCAXq/Ho48+6rTPoqIifPjhh7L8\n1ltvSe8EpWzt2rVzS0aAFC1BEGFM7969pTuX2LBgTa9evfDUU0+53Wd6erqqfl5eHj7++GOf5CQb\nLUEQRIChGa1GWbp0Kd577z1pLzp//jy+//57lU2IICKVgoICt+qdOHECI0eOBAAUFxfbrfPtt99K\njwTOOd544w3MnDnTbVlMJhMAYMiQIWjTpo201TY1NbndBy2GaRCTyaTa/SIYOHAg9u7dGwKJCCK4\nTJ06FR988IHTRasFCxZgxowZNud9XQyzpnv37jhz5ozq3ODBg7Ft2zbExsaqxqINC2GE+PX95Zdf\nVE7UJ06cCKVYBBE03HHDeuKJJ1QbDRwFjnn88cfdCs7tCuVYubm5KiXrClK0BEEQAYZstBqhqanJ\nJkhFY2OjyiHb+le+ublZ2o8AoK6uTgbLIAgtU1FRodrCWlFRAZPJJF2mSktLve7behNDQ0ODWxsb\nlPWbm5ulG5fYPFFRUSHrREdHe+TeFbGBv8OJt99+WwYTdnbccMMNss2OHTvs1snJyQnhlRCEa4qK\nitz6vHuqO5555hm/9NulSxe3+ti9e7eqHZwE/ibTgQbYt28fANtgGDt37lSd+/7772UbscJq3Wb7\n9u1Blp4gPKOsrAyA7Wf3kUcekeXx48d73K8I/uJI2YlxXHHu3Dn8/ve/l23EzNu6H+XTpCtI0WqA\nuLg4u+edBcNwFECDIMIVZfCWxMREn9o7QsSc9aSeo++hq2A1qv7crkkQBBFA3J1xBmMMf8tCilYD\nWP8Si0eS4cOH22TwFMeECRPs9uVudCKCCBViYcr60XvJkiXy8/3555973G9SUhIAqL4niYmJqrJQ\noMpzsbGxqjIAvP/++7IsvlPWdTzJsOC21wFjLArALgAFnPM7GWPdAawCkAJgD4D/xzk3uj0yISks\nLFSVdTodVq5cieXLl8s3taioCN27d5e7UQoLC/HII4/Y9OWJbx9BhAKRIkZp/tq+fTteeOEFWT51\n6hQWLVrkUb/33nsvVq1ahZqaGvk9SE1Nxb59+5CZmSnrnTlzBt26dQMAlJSUIDc3F+PHj0dUVBQM\nBgPKyspQVFQklfKFCxcAALfccgsAoLKyEtu3b8dll13mtmyeuHc9AeAQAGE8eRXAG5zzzxhjSwA8\nDOBdD/ojWrD3hk2ZMsWhA7Yz3LVBEUSosPcZHTlyJL7++muf+mWMYe3atR61+frrr3Hbbbfh22+/\ndVhH7AxTyscYczvCGOCm6YAxlgngNgBLFadvALC65f8VAH7j9qgEQRCtCHdntP8H4CkASQDAGEsD\ncJFzLowUBQA6O2hLBJE1a9agsrISgMXBesaMGejbt2+IpSJaMxcuXMDf/vY3JCcnA7A8rgOWBSdP\nVu4DiTLrbXJyMjIyMuSTZlFREQDIZJGNjY0e9+9S0TLGbgdQwjnPY4xlidMthxKHy3RK20tWVhay\nsrIcVW2V+GsBa8yYMdi6dSu2bdsmz33xxRfSb5EgQsGUKVNUPuAAcPnll2tC0Q4fPhwAkJub67Lu\nvHnzVOWDBw/in//8p1vjuIzexRj7O4AHABgBtAWQAOBLAOMBpHPOzYyxUQCe55zfaqc9D4bbRjgz\nY8YMLFiwwO8uJSNHjpSbHggiVKSlpaGioiJsPoeMMTz00ENYtmyZx+24t9G7OOfPcs67cs57ApgC\n4AfO+QMANgOY3FJtKoA1HklFSGjzAUFoC3thSn3BlyXqbABPMsaOAUgF8L5/RCL8RU1NjV/68cRf\nkAgf7G1LtX6v7b33rupYl6urq30RMyLwSNFyzrdwzu9s+f8U53wk57wX5/wezrl/8/O2ImJjY/3+\nCwrYdxtzxZdffmmzOUKn08kFDCJyGDhwIKKiomzea2dld+pYl41Go9xMoDUKCwttrg+AzNrgLyhM\nogYoKSmB0ej/vR7erI5u2rQJAPDzzz8DsMx6xowZg5MnT6Jjx45+lY8ILQcOHMDkyZNlWhez2Yym\npiZV+MLm5mbodDpp3jIYDOCcq3xIGxoaVG0MBgOioqJUJrERI0YE+nK8oqqqCsClzztg2bE2ZswY\nv45DilYDaOnXPiEhAQAwevToEEtCBIOMjIxW/V6LzROBvge0jYggCCLAkKLVAIHyJbTOJGoymXD3\n3Xfb2KTi4+Pl/9a+gmJhY8yYMao2HTp0UJUnTZoUkGsg/IPZbEaXLl1sbJHKrAH27JV33XVXQMxa\nweJvf/ubzTVlZGTI//v06RMUOUjRagDlh92fWKcmv3jxIj777DO0adMGbdq0kV+2uLg4eQ4AXn75\nZdkmKioKf/3rXxEdHa2qExsbqyr/5z//Ccg1EP4hNzdX/vCK923UqFH4xz/+IevMmjVL/i/qrF69\n2qe0MqFm7ty58locfXYdRcLzJ2Sj1QApKSkB6beurk5Vjo+PB3ApB5K7zJ07F3PnznX4+saNG72K\niE8EH2ebBsTnRVlHPPGEMx988IFXAZr8Cc1oCYIgAgzNaDXExo0b5f/CLib8aw0GA8xmswx8AQD9\n+/dHp06dZLm8vBx79uyR5ePHjwO4tEfbk0ygzqitrUVOTo6UZefOnX7plwgcIsi28jNm7ZZ19OhR\nVR1PcmJpmby8PKSlpclyVlaWW2lv/InLWAc+D0CxDlyya9cuGdzCU8xms7S1uruo5uv7cdNNN0l/\nW0F0dDQaGxtDHiSEsM/Zs2dlsGtPaWpq8ij2qpZITk6WvrKCmJgYr3zMXeFTrAMi8AwbNgxms1mV\nZdO6bH1u3bp1AGyV69y5cx324a8oYZs2bYJer1f13dTUREpWw3Tt2tXp54lzjjvvvBMAbOqEq5IF\nLAvAyuuJj4+XWUqCCSlajWCtpOwpLeU5R0pNuZWXFB/hDHc+H+H+GbKWX2zICTakaAmvCGffSsI+\noZjptRZI0YYpwrhv7YCenZ3tMHNuXFwcAFu3L29QLsqFkgULFji8XuWh3MuuZRobG3HHHXf45T3y\nlaamJpuNKYwxrFkTvhFRe/Toga5duwZ9XFoMC2MWLVqE8vJyaS4oLCzErl27kJhoyZ+Zk5MDo9Go\n8oG9/vrr8atf/cqncaOiotC2bVtNKIPY2FgYDAa89NJLAICtW7fi66+/xnPPPSdti3PmzMFjjz3m\ncVbVUGA0GtGmTRtUV1cH/TF34sSJWLt2rVwsNZlM0Ov1ePbZZ+WP9Jw5czBo0CDk5eUFVTZ/ISYk\ngdBJzhbDbAzk/j4sQxChYMSIETwQ9x8A1+v1fu/XG2BJoSTLb775ps01A+Bz5swJtmheA4DX19cH\nfdw777zT7r2rrKxUlQcOHBhs0fxGenp6QL4TnHPRr109SKYDgiCIAEMbFiKYQNpRtbYYdu211wKw\nxFgFgF/96ldgjMkFHhEOL1zgITC3nT17FsCleymyKVtz8uTJoMnkK1988QXmz58vTQYXLlwIjSCO\nprr+OkCmg5DRo0ePgDwmde/enffu3dvv/XrD8uXLpfnA2VFeXh5qUd2itraWA+AlJSVBH3vbtm08\nJiZGdd9iY2O5yWSSddq2bcvHjRsXdNm8xd5n4d133w3YWNyBHqTFsAhm+PDh2LVrl99nR4wx6PV6\nGAzay160YMECzJgxI2wyrtqDMYb6+nrV9litwBjDwIEDsXfv3lCL4haMMaxcuTIoQWVoZ1grJdwe\nlwkiUiEbLeEVobLRim2jgpqaGiQkJMj8VN5m7K2qqkK7du1U54KVBj7cgreUl5dLmY1GIwwGg829\n8xTest1X0NjYiKioKNX23+rqaum6KMoJCQnS/moymdDc3OyzLIGApjwRTEpKivR/9Cfdu3e3CSoe\nDDjn0Ol00Ov18khJScFDDz0k64jFL08VbnJysqpfvV6PP/3pT/4U3y5PPfWUzbgAApIV2R906NAB\n58+fl7LGxsYiPT3d536joqJU96Bdu3aIi4tTnUtNTbUpt2nTRpZjYmLQoUMHm7618ENGijaCOXny\npN8CySg5ffp0SFaexczl+++/Vy624t///resIzwtvDGbGI1GVb8//vijryK75KeffgKgXpSuqakJ\nehg/dykpKVHJOn/+fL9tXHnwwQdlvw0NDWhubra5L9ZlZWCcRYsW2Q0FqgV7vTZ/Ngm/kJqaGmoR\nAoIzJepPu3SgMl+4GkOLj76O8Of9Vl53bGys09ftlR3JooWnA5rREl6hNT9agtAypGgjiAcffFAV\n/GPnzp2aCf7iDn/9619tApiIxQ5l4Bx7sx3x+owZM1Rldw/A1pn9559/dtqmW7duKCsr8+maRYYM\nZb+DBg3STCSttLQ0p/dA3G9/8Pbbb6v6fvLJJz1qL+6Z9fuqhZxn5EcbQTDG0L17d/Ts2ROAxZa6\nYsUKn4PIWJOQkICYmBi/77JhjKFt27YYPXo0ACA/Px8jRoyQ49TV1aFbt2745JNPZJuoqChwznHD\nDTcAsGQUzsvLQ2JiInQ6HcxmM6qqqpCUlIShQ4cCsDxKlpSUIDk5WdbJyclBZWUlkpKSpCwAZL+M\nMTQ2NoJzLhX9Dz/8gLVr1+KOO+7w+pqrqqowduxYlbw5OTmoqKgIiunCFYwx9O/fXy4yJSYmYt++\nfejevTsAi/3zmWeewc033+zTOGvWrMETTzyByy+/HACwe/duVFVVeWRfbW5uRnZ2tvTxra+vR4cO\nHfDll18GJa4uBZVpJQDg8+bNC8o4gQgqA4BnZWV53Eb5GcvJyfEqqAwA3tTUpConJCS4bPPtt996\nJK87IERBZewBq6AyweKuu+4KWPCXQAEKKkMQBBE6Qr8cR2iedevWIScnR7XKG6jFMH+tYo8ePVrl\n7F5eXi7/N5vNeOutt1BRUQHAktUXsASFVq5Q19bW4vnnnwdgyT117733SrNGOLJ48WIUFBTI+5KZ\nmYk//OEP8rG6ubkZc+bMQWxsLBhj0heZFj59hxRthOGvlOJKRNI+JUIB+RtP/X5jYmJUdjyhqLdv\n366qp8x6OnbsWLs+soWFhaoy51wGFAeAt956S44l/vr7fguf1JqaGr/GOjh69CimT59uc/7AgQNY\nsGABAMti5Ouvv656PSUlJSTJGQORpTaUkKKNMOytyPuDrVu34pprrglI30o8XbSwXp0XszCl8mWM\nydV94NJOIWUdV7zyyiuYM2eOjZz+DvwiVsj9nV1BzNqt74uyfOzYMZs6oSLS4nRE1tUQYZ+1NFDu\naMovbji5vAWaYMVz8JRwTnFuD1K0hFv4Osux195Vn/yS54rEVQyDQM3GmpubA9Kvu1hfl6uyq/YC\n5f0MxHZtwgKZDiIIxpjfZyjii+ipoklJSXEYod8ZOTk5Ps3KhSmBcy770el0qhlS+/btVVGg7DFw\n4EDs37/f5ry1bEqThD/xRzCg2267DV999RWAS1kRrOVfuHAhFi5c6PNY/iYxMTEgAZFChUtFyxiL\nAfAjgOiW+p9zzl9kjHUHsApACoA9AP4f55yWJ0MIbwm04U/EI7enj9uVlZW499578eijjwKwKGoR\noQmw2EnNZrMqeEpWVha6dOmCDz/8EMClIC+iDuccY8eOxbRp09CrVy8AsNmZJGzUSoViMplUXgf7\n9+9HdXW1U/n379+P9PR0rFq1CgCwYsUKLFu2DDk5OVKWtm3bYsCAAR7dF3fYv38/SktL5Y+mwWAA\n51z1Y9HY2KiyxxuNRtUPbVZWFjZs2KCqDwCPPfaYvDeLFi1C586d8fTTTwMA5s+fL9PZhJoTJ05E\n1AzbpaLlnDcxxsZyzusZYzoAWxlj3wB4EsAbnPPPGGNLADwM4N0Ay0u4QEuzgL59++L666/3qM3l\nl1/uss3kyZORlZUFwFbROkK5uNSpUyccPnzYZZuePXtKWf773/8CgMfX4w39+/f3uY927drJBTDg\nki1WmXJ90aJF6NixI5544gkAlp1uWlG09sIdhjNu2Wg55+KnJQYW5cwBjAWwuuX8CgC/8bt0BEEQ\nkYCjLWPKAxaFnAugGsA/AKQBOKZ4PRPAPgdt/bnLTfMcO3bMJhmcSJIojl69eqnKer3erQSDIie9\nOO677z7V2Nb1ExMTbc499NBD3Gw2u309JpPJriydO3dWlfv162dT59VXX/Xo3lm3j46Otjv2N998\n47CNt4dOp3OrXrhwxRVXuHU9jDFNXOM777zD27ZtqwlZvAVOtuB6GrcgEcD3AH5lR9HuddCGP//8\n8/LYvHlzsK47JGRlZXmsaN09rBWt9QfR3X7q6uo8uqannnrKY0Wr0+l4Q0ODR+MsXbrURtFaK4Lb\nbruN19bWyjbt27fnUVFRflO4kaJot2/fbiO79Q9v165dbbLeLl68OCTy2vuxW7hwYUhkcZfNmzer\ndJvfFC23KM7nAMwCUAogquXcKABfO6gftAvXAoMHD/b4Czl06FC7SnPFihUO26xfv95um1tuuUWW\n4+PjVXXq6+vDSlm4g7UCtBdUxpqUlBS7904ZyAUAv+aaa2R57ty5EXfvtAQAPm3atFCL4RPOFK1L\nGy1jrD1jLKnl/7YAbgRwCMBmAJNbqk0FsMZVXwRBEK0Rd/xoOwFYwRiLgsVW+wnnfANj7DCAVYyx\nl2Gx374fQDk1w7Zt29DU1CRdZAwGAxhj0m3p1KlTAIAtW7bINgaDATqdTrpK1dbW4siRI7JNcXEx\nAODxxx8HAOlcvn//ftmPwWCA2WyWblZ5eXkAgOnTp6tcmU6cOCH3rjvaL75582YpS2xsLEaOHKl6\n3dqXNT09PSTJGH1BeQ3WbmLCbUjcW+ErvGXLFtWW2oqKClnHHS8Fwn2OHTuGoqIi1bm8vDz52TUY\nDMjMzFT5KWdmZsp4tWGHo6muvw5E0OPWrl27gmYL9NeRmJgo5TcYDHbr3H///bLOp59+arfOrl27\nQnHLXXLVVVfxvn37ynJRUVHA7mVycnIIrzRyOHTokNfvQWFhYajFdwh8MR0QlxA+hsobqMzCyTnH\n4MGDXdYBLJH7RXnatGk2bUwmk82bpexn/fr1Nm0A4OWXX1bVr6qqkvLr9Xq7spw+fVrW2bNnj91+\ntRpN6eDBg6rZZnp6us01ms1mu+esr9E6C+4111yjqnPx4sWQXGOkIcIuWn/ele/JXXfdZVMH0Eai\nRW8IT6k1hDvbRe3VUW4ssBdxy170InfGUu60slff3jl3ciqFU7Aaa1ndvQ9E6Ii0aF3WRPbVhQCt\nzvzcxVXQltaEVhIktkZCHcTH39CM1gNEkGfOucMZkXi0cTVjWr9+vUezqldffRXZ2dk2561lUc5o\n3SE+Ph5paWmy7OiHYsyYMR71CwA7d+7E8OHDPW7nCSKmqvIeREVF2fxg5Ofno0ePHnb7ENfc0NCg\nyiIhHlcJ9+GcY8CAATh48KBH7W699VZ88803NuetvyOefr61AilaDxAr0s4UZG5uLhYuXChto+Xl\n5Vi8eDGuvfZaqRQaGhowfvx4qZTLy8vxu9/9zunY2dnZiImJwTPPPCPPTZo0yUYWZfAUd6irq8Ou\nXbtk2V6shLVr16pS2XDOUV1dLTPGApaZsMlkkl+El156CatWrQq4oq2rq8Obb74plWVNTQ1SU1Nh\nMBikXHPnzsW//vUvvPzyy3b7EHEArO1/WoobES4wxnDw4EFMmjRJxmyorKxEcnKyrFNXV2eTmfmb\nb77BgAED8JvfWHbyL126FIWFhXjuuecAWH4Mr7zySlU/YYWjVTJ/HYggr4MvvvjCY6f1yspKvzi6\nA+BxcXEu63iaBRcAHz9+vCxnZ2f7Td6XXnrJ5378AeBeFlyj0agqKzcsEO4DgK9evdrjNsoNC5QF\nlyAIgvAIMh14gHg8HTdunCzHx8fjm2++kaum5eXlmD59OkpLSwFA/vUH9fX1cuzz589j0KBBuHDh\ngko2b1bTlY/MnpoenBGMhbUjR47g17/+NTIyMgBYntAeffRR3HPPPap6y5cvx88//wzAYq/917/+\nhbFjx6rqDB06VGWvzs/PD7D0kYvIy+YJq1evxpEjRwAAO3bs8LdIocXRVNdfB8Js+u+MwsJCnpmZ\naeNE/f7778s6Xbp0sXk9JSXF57EXL15s029SUpLNuYqKCo/6BcCHDRsmy3PmzPGb6eDpp5/2uR9X\n2IsaBkAVoez3v/+9zeuMMVU/CQkJNnU2bdoUcPkjDbPZzAHwjz76yKN2f/7zn23u/+OPPx4gKQMD\nyHTgHzp16oRz587ZOFErNwUIY72yTkVFhc9jT5s2zebNq6ystDmXkpLicd/KBQbhTO4PlCv4geLQ\noUMALt1vkQFBObN///33VfdIbBZRUl1dbXMvxdMD4T7ivnuajfntt9+2uf9aTLHjLaRo/YxWs4o6\nI9KdxQki1NA3zA8onavD0eHf10yonHNV2pRAUltb67F/a2Njo3T3AkBbaf2IyWSKqNxegYIWw/xA\ndna2ajPBNddcE0JpPGPgwIHYtGmTR4toQ4cOlTERnHHttdf6IppdlLm/BMOGDZP/i9m5q+shH1nv\nSE9PR0lJict6ffr0CYI04QMpWh8RAUsE9fX1HtunQskvv/yC5uZmVXhAV6YEoWSFPddsNqO+vl5l\nk62pqQmYc/mmTZtkckZALa94L5TbZ2NiYvDEE0/gjTfesNuGcJ+SkhJkZGTgzJkzACyfgaamJlW8\njEC+9+EKKVofUaZ4BuzPuLRMdHS0Ko21u+j1enndOp1OtUsMQEC/aDqdzqUt3PqaEhISwtJ+rkXS\n0tJU7711KnpSsrbQzzpBEESAIUVLOIVzjttvvx2MMXkAQK9evUIiCwCMHTtWJY/yECYFa3m9cXsL\nZ1auXGlzb5KTkx3eN3HExMSoytHR0Tb3MjMzM8RXF34wT1dwPR7A4hge0DGIwGE2m6HT6TBgwABp\nHjh//jw2bNgQkgWPjz76CEuWLJFf+oKCAvTu3Rt1dXUALKl8iouLZdCSpqYm6HQ6/Pe//21VpgNx\nf8R9KC4uxoABA1BWVgbA4inT3NyMpKQkuYvr5MmTGDFihNwdWFlZia5du6K6uhqA5YfuwoULyMnJ\nQXp6erAvSfO0BI2yuwpLipZwCWMMW7duDQtvii1btiArK6vVhzhMSEjwyhWO8B5nipZMBwRBEAGG\nvA4It3jnnXewefNmAJbtldOnT7dZbdYCynxUWkhX884776C4uFjG6W3bti3q6+ulbFVVVUhJSZFu\naY2NjTJ+q3ATbGxsxJYtW+T9bmxsxNChQ3HZZZcBsFxzamqqzKIM2A+Q/d577+H8+fPSIyMjIwNT\np07VxH2KdMh0QLgkMTERNTU1qnOxsbEy44SW+P7773HjjTfCbDaHXIEcPHhQBr8OBj///DNGjx4N\n4NJ7Jr57x44ds5syfubMmZg/f37QZIxkyHRA+IR1wBVAu7nR3E0lFAyUi0jKezd06FBXEe9QXl6u\nKvfv31+WhcK010YgFgcF4ofSuo0/gwgRjiFFS3hFuKZ91gLeeD8odxu68yPi7hbj1uSJEUpI0RIR\nhT0zlfU5b+v4QxZ/9OWoX2fjkfkutNC0hPCY3r17e7VtNxi4k0DTXT766CPcd999XrcX8RbMZrMq\ntsLOnTtV8vXt21fG1RUZOZSZHgBg9+7dDq9JKFFlFDnh3mXdxro8dOhQj66J8A5StITHHD16NNQi\nOGTkyJE4cOAACgsL5bmGhgZV0ByxiUGYP0wmE8xms2qlfvz48Vi0aJFPilY87lsHsLn11lsxc+ZM\nAMCf/vQnHD58WL7WoUMHbN68Gdu3b5fnZs+ejZiYGKxbtw4AMGvWLOzbt0++LpSn0gukqKgIAPDd\nd98BsKT8+ctf/iLLgEVBjx8/3uvrI9yHFC3hFVq20V511VW46qqrfO4nUAtqAwYMwE033QTAspXZ\nOjdZVlaWKjrZ7NmzodPpZJvMzEyVonWGaJOamqoqE8GFbLQEQRABhvxoCZfcc889+PTTT+WjtfWj\nNmMM2dkTSjNoAAAfgklEQVTZePHFF0Mppl9hjCEqKkquyhsMBgwaNEjaUg0GA7p27Yr8/HxZZ/v2\n7Rg9erTNfdLr9WCMySwP0dHR0q6qzPygHNub74zS9GGvX4AWxQIJxTogfMLdR2gtbBLwFx9//DH+\n+Mc/qvxRe/fubWOf3rhxI2688UYAQM+ePXHq1CmXfXurSP0BfRcDB21YIHxm69atKkd3vV4vy2KB\nJVKULADcd999MiiLOI4cOWLj8K/MrnH+/HkAlzYFPP3006qyaPPUU0/J8i233GK3Tn19vao8bNgw\nWb7tttvstlm3bp2qrKyza9eugN0rwjWkaAmCIAKMdpeOiZBx4MAB1ZZNANi7d69qxhpJs1d3OXjw\noGpbLaDewir8WLdt2wYAOHfunKpsD9GPqCPK//znP1W7wWpqamQdEVPWmgMHDtj434o2wrZMhAhn\ne65b3vRMAD8AOARgP4C/tJxPAfAdgKMAvgWQ5KA9J8KH119/nQNweTz77LOyzbp16zgAbjabQyh5\nYFmyZInd+7B48WJZ5+6773br3u3YsUO2+fTTT91qY+8QmM1mrtPp3GpjNBqDet9aEy3viV096o7p\nwAjgSc55PwCjATzGGOsDIBvAJs557xZFPNuNvgiNIxz9uZX9T2mjNZlMeOWVV2QbsUsskme5xcXF\nAGzvS1VVlazzySefqF7funWrTRuTyYQRI0bINpMnT4bJZLKpY11WnlPee8By341Go6qNyEhs/YWn\n2AahwaWi5ZwXc87zWv6vBXAYllnuRAArWqqtAPDrQAlJBA93ttZa73SKZAUrsBff1RX27ou9NOfW\n5+yVlee8kYUILR4thjHGugMYDGA7gI6c8xLAoowBXOZv4QiC8A4txgpuzbitaBlj7QB8DuCJlpkt\nOeRFIOILap35VDwq20Mk93NWJ9wRmV+t78uzzz7rMKNsoHKsZWRk2MgSExOD06dPyzo069UWbnkd\nMMb0sCjZDznna1pOlzDGOnLOSxhj6QBKHbV/4YUX5P/W+7gJbZGTkwMAePrpp+Xj6tChQzFmzBiH\nbZS+pJHKgw8+iKNHj8JoNEo7Z1JSkspGK1LQCKqrq+VmBn9y33334dChQ2huboZOpwPnHK+++ipy\nc3PRvXt3AEB8fLxmg7NHCjk5OfL74gq3doYxxj4AcIFz/qTi3KsAKjjnrzLGngGQwjnPttOWR/JM\nJ9IYPXo0tm/f7tHsdOPGjRg/fnxEz2i1DmMM69atw4QJEwBQFtxQ4GxnmMsZLWNsDID7AexnjOXC\nYjJ4FsCrAD5ljP0ewFkAk/0nMkEQROTgUtFyzrcCcOQT4v/nIsIuBw8exL333ivtc4AlDUlNTY1M\nW9K+fXvs3r0b3bp1A2DZJltcXIzU1FRpBkhISMC5c+fkI25SUhLy8vLQo0cPAJcc28eNGyc9EFJT\nU3H48GF07NhR9vHmm2+ic+fOAC7ZaInQ8pe//AWLFy8GANTW1oZYGkIJBZUJEy6//HKbuKXWxMfH\n2yTls0an03msGNu1a2f3iyve13Xr1uHOO++MqKAy4cbAgQOxf/9+1bmFCxeqUpATgcUn0wGhDfLz\n8xEXF+dSkQYDa2UqtoqSkg0d7gYCJ0IDBZUhvELLGRYIQmuQog0j6uvr5f+cc1UZQFBnu0pzUGtw\n7yIIX6BpSZjQp08fHDlyxOXj+datW/3qKG82m+3ujzeZTDaycM7JfEAQdqAZbZhw6NAh1NfXy6O2\nthZlZWWqcwDw008/+XVc4a2wadMm1TgAUFBQgIKCAsyaNQsA2WgJwhE0ow0TGGOqlNmAxcsgWLRt\n21Y1vl6vl65m1jFQCYJQQzNagiCIAEMz2jBh6dKleOSRR1zWu3jxYkDGt451YDQayUZLEG5CijZM\nEEpWBI0+ceIEKioq0LZtW0RFRcFsNqOhoQGJiYl+HVd4FOh0OukvK7wbhOmiubkZEyZMICVLEA4g\nRRtGxMXFYceOHQCAr776ChMmTFAtTjHG/B5BXyyG/fjjj9KbgTEGvV5P2zwJwk3IRksQBBFgaEYb\nRiiDORsMBrt1RPZaR/z000/Yvn27LNfV1SE2NlbOhKuqqpCWliazu4pxPvroI5kDizHmVsobJY2N\njfjf//1flecCYwyNjY2IiYkBACQnJ+Phhx+2m+6FIMIZUrRhhHI3llBG1gtQKSkpDttfuHAB1113\nnVdjv/3226ryP/7xD4/az5gxA++++67LeitXrsQPP/zgUd8EoXVI0YYR1dXV8n8xA7VegBIzUXuI\nxStPo6kxxnzecXbw4EGXYzPGKNcVEZHQM1oYIeLORjLCs4EgIglStGGKo5mhckYbyDjA1n27Kmsh\nvCNBhApStGHCddddh/r6epn19I477gBgq9DmzJkj60RFRWHy5EsZhoSys4765QzhR6tcfMvOzkZU\nVJQqC6urcm5ursuxkpKS0L59e7dlI4hwgTIshAnV1dXYuHGj6tF68ODBqtQ2ZWVl2LlzpyzPnDkT\nx48fl8q4rq4O7dq18zgTAmMMP/74I6699lpZ1uv1+PLLL2WdpqYmREdHy35NJhPMZrPKU2Ls2LFO\nzR+MMVx55ZU4duyY27IRhFZwlmGBFG0EM3LkSOzcuVMq2oaGBsTFxfm8GCYUrSMXM29hjCErKwub\nN2/2a78EEQycKVoyHRAEQQQYUrQRzNmzZwFYkiu2a9fO7mP7Bx98AMaYrJOWloa4uDjodDp5DrAE\nlRH2VuBSUBlxdO7cWdbX6XRITk5GU1OTQ9k453j00UdlG2ESEeMRRCRBpoMIJjc3FxMnTsS5c+fk\nuUGDBiEvL0+WAxkI5rXXXpNBwa2prKy0u7kiPz9fpj4niHCCTAetlKuvvhpnz54F51weSiUrGD9+\nvKqO9QEA77zzjqoMQJa/++47VVlpE3ZEQkKCTRvOOSlZIiIhRUsQBBFgQr4Ft7S0VPVo29TUhGHD\nhnkctITwntOnT2P37t0ALLbX/Px8mEwmAJf8aD/88EO7s2Elu3btUpkiaJMCQVgIqY3WaDSq/CwF\nU6dOxfLlywMqF2GhR48eOH36tMftdDqd3IVWUFCALl262NSZOHGiytdWycWLF5GamoqamhpaACMi\nAs3aaPV6y4T68OHDKtve119/HUqxWhWnTp1S2Ug7duwIwNbeumTJElVZOXPNzMyE0Wi0aVNZWelw\nXJEJgpQs0RogGy2hwlGGBlfeCfba+TvbA0GEK5pUtI2NjaEWodXirinJWThGT/siiEgnpIpWLLj0\n7dtX5QwfjAj7W7duVTncOzrefPPNgMuiJcTGAeU9UJ5X4uy+AcDmzZsdvi7MRgTRGgjpp118IW+6\n6SYMGDAAgMW/cvbs2QEfWyjQJ598EoBlFv32229j3LhxGDRoEABg/vz5mDlzJmbMmBFwebTC2LFj\ncerUKVx99dWIioqC0WhE3759MXXqVJu6Q4cOBQAUFRWhsLBQ3kuTyYTq6mokJyfL97isrAydOnWS\nM+G6ujoMGTIkSFdFECHGmaO6Pw7LEI4BwL/66iundQLB9OnTubVsAPhnn32mKicnJwdbtJCSnZ1t\nc1+sAcD1er0sf/fddy7bEESk0/IdsKsHNWmjJQiCiCRC6kdrMpmg1+sxYsQIpKenAwBKSkqQmZkp\nQ/CdP38e/fv3x8WLFwFYHvH1er3Kxnfu3Dn06dNHOsiXl5ejR48eMseWeJRNS0uTDvg//fQTLl68\niFtvvRVt2rSB2WzG+vXrkZSUJDO1FhcXo0OHDigpKQnAnQk8VVVVePLJJ3HhwgUAFt/Vrl27yky5\nZrMZFy9eRIcOHaS9fNu2bSgrK3O6kBUXFweDwYDbbrsNgOU927FjB8aNGyfzkvXu3Rtz586ljSdE\nq8GZH607j/7vAygBsE9xLgXAdwCOAvgWQJKT9g6n2s3NzRyAyyM+Pt6tesojJibG4zb2jl69evn5\nASN4XHnllTbX06ZNG5fX/Jvf/MZpv8uWLXPr3j377LNBulKCCD3w0XSwDMDNVueyAWzinPcG8AMA\nr1avxK4w5YYFe0dtba3HtuHGxkanr0+fPh2ArWP+3r17VeXS0lJvLk0T2Avc0tzc7PLeffHFF077\nfeihh1T1HQWViYmJCewFEkSY4FLRcs7/C+Ci1emJAFa0/L8CwK/9LBfhB0LtQhXIEIwEEU54uxjW\ngXNeAgCc82IAl/lPJFuchdvzFncDnjjbRhqOWN9Lk8lkE6Dbuk5DQ4PKZss5V9UR9l2CIOwT0imP\n8Kl0thPs8OHD6Nevn835DRs24NZbb/V6bOG3az3ruuyyS78ZHTt2VJXDjQkTJmDnzp1Bm1lajyNy\njBFEa8dbRVvCGOvIOS9hjKUDcGrIfOGFF+T/WVlZyMrKsgze8mjrbGV63759ANQzy+TkZBw5csQn\nRTtz5kw88sgjqtlYU1MTOnToIMslJSVO07FonTlz5uDhhx+WngAAUFtbi/j4eKkUDQYDzGazyp5a\nW1urCvZSV1eHuLg4VYbbxsZG2e+mTZtw1113qd6jhoYG6UlCEJFITk4OcnJy3KrrrqJlLYdgLYCH\nALwKYCqANc4aKxWtPdzZcpuUlKQq+8NtKNIjR4lcXkqs76M9rOu4aiMicSnruTMOQYQzykkjALz4\n4osO67rUcIyxjwH8DKAXY+wsY+x3AOYBuIkxdhTAjS3liET43RIEQXiNp25Tnh5w4kdrNpvd9me1\n9ldzdcTGxrr0H3300UdV/fbr18/l2Nb88Y9/tKn/xhtvyNebmpr4qFGjbOocP37cab9a5oMPPvD4\nPhFEpAMnfrSayLCQkpKCbt26AbDYX/Py8tC9e3fAIjmefvpp3HfffbLdwoUL8dxzz8lEfnFxccjP\nz0fHjh2lHTElJQWnTp1CcnIyACAvLw9RUVEYOHAgAODAgQMyWLVCVqSlpclsAWlpaVi6dKmUxcH1\noVOnTjJg9v79+2EymWS/JSUlSE9Px6BBg8AYg9FoxIEDBzBp0iSsXr3ao3upFcQ9Hjx4MABLhoVp\n06Y5fXQiiEjHp51hvh7QSFAZALxz586y7CiozN69ez3ud/78+bI8ePBgVb+VlZV2x5kwYYJH42gJ\nQB1UhiAI33eGEQRBED4QUj9a3vJ4/eWXX+L48eMALK5EsbGxMg1KXV0dsrKy/OKTWVNTgwULFgCw\nBJUBLHFpW6b8AFw732/YsEHKam+h7MSJEwAgxxEuT6+99prKU0KZ+ddfnDlzRpUMsaamBvfff780\nsdjj4sWL+OCDD1RtkpOT5X0wGo1gjNmkpbGXVJMgCPuE1Ebb2NgoI2W5wlc53XHa1+v1OHfunEP/\nz7Vr12LixIk25/Pz86UyS0pKklHDnPHxxx/j3nvvdVnPE+xdY+fOnXH+/HmP2rhDVFQU7QgjCAWa\nzYIr0qM4CyqzatUqv413++23Ow0qYzAYnDrZi51s1jIqZ4xig4N4Tcxordv4W8kK/v73v8sxRowY\ngcLCQpdtrrvuOk/t7uT2RhAe0KpstL5Gk3Jn9heMfGf+Ht9ePjCCIPyH5hStctYkyv7sW9Dc3Oy3\nfpV4kx3W+pr9RW1trcux/YX1DNfeOIE2UxGEVolIG21FRQUuu+wytx5vPen3888/x+TJk2E2m1UZ\ne50plYMHD6J///4u+x4yZAh2797ttixHjhxB37593a5vTzbAYsMtKipSvd6lSxecPXvWYXu9Xu8X\n+6xOp0NVVZUqFgNBhCvObLQh9ToQq/CzZ8/G8OHDAQCTJk0CY0zlzC9ecxcRKGX16tVSIU6aNAnD\nhw9XZdi9/vrrPepXKG6lCYFzjm7duuGee+4BALzxxhsqJSTiKShlaWxsRHR0tHzMX7p0KTZs2OCR\nLEePHgUAGaSbc47f/va3mDx5srT/PvXUUzh58qSsU19fjwceeEDVz65du7BlyxZpPnj33Xfx7bff\nOh27tLQUr7zyigwKdPLkSaxevVp1jSaTCSaTSb7HJpMJRqNRmm+MRiPuvvtut39oCSKs8WQRxJsD\nHm5YAMBbZsFeU1paaneTwKRJk3zq94svvrDb78SJE2W5bdu2qjpnzpxxuT31ySef9HgL6/r16+3K\nMm/ePFkeMWKEqk59fb3LcdzJgmuNN1lwjUYjbdslIgrQhgWCIIjQEVRFW1RUhOuvvx6pqalITU2V\nTvC33367PAdYZtmizBjDjBkzPBqHt9ggGWOIioqSj+inT5/2Sf6qqipVv+Ixec2aNVJekXkgOTkZ\nqampqgDjos7o0aNVNtDy8nKPZRFjR0dHq+5ddnY2GGNgjGHnzp2qNiKrhKifmJgIxhi6du0qz82b\n53kgNqVLmyPy8/MxfPhwOY4wOyjvy4gRI3Dq1CmPxycIzeNoquuvA4rHw9/+9rc2EZ/0er2q3K5d\nOx4dHe1TZKiSkhK70aWGDBni2bOAFbfffrvb0cZcHcOGDZP9zpo1y+NrbG5ulmYKV4cgPz/frfoz\nZ870SJavvvrKpfw9e/Z0a+zevXt7NDZBaAVoxXSQlpYGwHaTgLJcU1ODpqYmWfZmw4KY7XG1wnca\nhcsdxLZT637nz58vy2JxR5TPnDljt41yY4Q3zv9t2rRBfX29Tb+9evVy6C4mgnE7+jCIY/78+R7L\n4goRgFyMYW/zBwB06tTJo7EJIhwgGy1BEESACap7l5i17N+/X55LTU1FRkaGwzYGg8GmTX19PeLi\n4mS5qakJffr0ka5U9sZRnnfE2bNnUVFRIW3H1vm03MmIK+yVwj2tpKQEgCX3maOdZSI2gpCXc442\nbdp45SdbU1NjE+dWlIWNmXPu14SN7mzSsEa8F87uC0FEDK4eI309oLDdCTcg6+PEiRMO7R47d+50\ny7antL+WlZXZrXP11Vc7HIdbhHXrMBqNqjbKjAqJiYlu9fHJJ5/INitXrrRb5/Tp007l9Vb+2tpa\nj/p1xYYNGzgAbjabHda5+eabVXZcEafX+li+fLlfZSOIYAGt2GhvuukmmdWAX1LETrfDDh8+3EZo\n6z769euHPXv2yDbt27e3p/CdRrES7N271+FYs2bNAgCbkIHKGZ2YgYs29oLKCGd9wZQpU+zKW1ZW\n5lJea1588UWn98poNPp9J5bSg8ARxcXFqnJSUpLd93Xq1Kl+lY0gtEDQbbTWSgrwPFSfvT7cQSgE\nb8dyFLDF09is3srvDtaBc6zHCuTYzkhISHBZJ1SyEUSgiYjFMGEXdYWYKQYSitFKEIQ1IQ0q0/K6\nyz5GjRqFbdu2yfKQIUOQm5vrtE3Pnj1x9OhRp4+1HTp0kItVJpPJqxmvu3hyn92VpU2bNtJUIVi+\nfHnQH7+/++473HzzzS7rJSYmygU5gog0NBtUBgBWrFiBTZs2SR9PvV6P4uJitG/fHoAlKPj333+v\napObm4uhQ4di9OjRAICVK1eivLwcjz32GBhjqKurw7Jly2zGioqKwlVXXSX7LS0tla/pdDps3rwZ\nn3/+uVTKixYtAgC5u6uoqAgXLlyQ4xgMBrz77rsYNGgQrr32WgAWhRoTEyPtzjU1NRg1apRH90Sn\n02HLli349NNPpSwVFRVIS0uTCruiogIZGRlyJ5rIKPzggw96NJY/uOmmm7Bs2TIZfcxoNMJgMKgC\nxpSWlmLOnDlBl40gNIGjVTJ/HfBwx5M1q1atstl1BIAvWrRIlvv166eq4yiojDIL7oABA1zuZgLA\nk5OTZdlRUBllFlyCIFon0IrXAUEQRGsk5KYDd5kwYYLqUVSZPeDYsWOqurzl8frmm29GYmKiPF9c\nXIzJkycDuJStVsmCBQvw5ZdfSrMFYNmkIMYVC13WstTU1Hh9XQRBRD4hXwxzRVVVFZKTk1XnEhIS\nkJubi8svvxwAMG7cOOzZswcXL14EYLHhDhkyxK3+lbJ5s0MpPj4eu3fvRu/evT1uSxBE5KDZLLju\nYM+xvbq6WipZwDJTVW6PFdkCuNpWjE6dOsnyY489Znc85YYFgSj/+te/tum3traWlCxBEE7RvKL1\nJ8oZK+2vJwgiWESEorUO9uLIVKHcKusoNGGgTSkEQbQ+wmYxzBk9e/ZUKVsR08B61lpaWmpzzro8\nePBgm/5dtVm/fj1uv/12zwUnCKJVEBEz2oqKCtTX18uy8AgoKSlBaWmp3JiQmJgoy+fPn8eOHTtw\n6NAheQDAe++9p2qTkJAgy++99x4AyLKoYx2OkSAIQklEzGitETPODh06qM63a9cOl112mSyLqP9K\nUlJSVHV0Op0sC7cv5euAbSAXgiAIJRExow2kXZVstgRB+EpEzGgLCgoAuLalFhYWqs499thjMp6B\nWChTmiAAix+vq379Hd+VIIjIwqcNC4yxWwC8CcvM+H3O+at26vi0YcEdoqOjYTAY5CN8U1MT9Hq9\n3Mklxu/bt69UkocPH1b5y4qIWR9++CEeeOABITsAoF+/fgCAkydPoqmpSZYbGhqQkJCAPXv2UCxV\ngmjlBCR6F2MsCsAiAOMAFAL4hTG2hnN+xNs+veXKK6/EoUOH0NjY6Habxx9/XM5mgUtBp8VmBwFj\nDAcPHgQA/Oc//8GkSZNkmSAIwh18sdGOAHCcc36Gc24AsArARP+IRRAEETn4YqPNAHBOUS6ARfkG\nHXu7vGpra2VWXHtcuHBBVRYmhGeeeQbz5s1TnV+yZAkAYOfOnf4QlyCIVoYvitaeLcKuMfaFF16Q\n/2dlZSErK8uHYV0jAtE4sw137dpVlQOsrq4OAJCfn29Td9q0afJ/ZWQvgiBaLzk5OcjJyXGrri+K\ntgBAV0U5ExZbrQ1KRRsIhJIUOMuqK6ivr1dtwxWz39dffx3/8z//A8AyU2aMOdyuSxBE68V60vji\niy86rOuLjfYXAFcwxroxxqIBTAGw1of+vCYuLi4UwxIEQbiF1zNazrmJMTYdwHe45N512G+SBRh3\nZr0AbVggCMJ3fNoZxjn/hnPem3N+Jed8nusWgSEjIwMdO3aUZWFKcObuJYKJC/OAWFCbNWuWqkz+\nsQRB+IrmMyy4Q7t27VBXVydnn2VlZejQoYPL2ejGjRtRUVEBwLIz7IEHHsDcuXNxxRVXAACmTJmC\nlJQUWYcgCMIRzjYsRISiveqqq3Do0CGPFa01jDHs3bsXAwcOlOXk5GSZIocgCMIRYZ3KhiAIItyJ\niKAyCQkJqrKwzTY1NXkcwnDQoEEqe6919gaCIAhPiYgZ7ZEj6vAKer3l9yM6OtqjfkaNGgXAEjC8\npKQEiYmJ2Lhxo3+EJAii1RIRM9qMjAxUVVXJslC0niZg3LZtm1/lIgiCACJkRksQBKFlImJGKzh6\n9CgAoLy8PMSSEARBXCIiZrR/+MMfAAB9+vRBnz59MGbMGADONywQBEEEi4hQtDNnzoTBYJAZEzjn\n2Lx5s00Qby3jbhQgrUDyBpZwkjecZAVCI29EKFrg0gKYgN78wELyBpZwkjecZAVI0RIEQUQkpGgJ\ngiACTFBiHQR0AIIgCI0QsqAyBEEQrR0yHRAEQQQYUrQEQRABJiIVLWPsFsbYEcbYMcbYM6GWxxrG\n2PuMsRLG2D7FuRTG2HeMsaOMsW8ZY0mhlFHAGMtkjP3AGDvEGNvPGPtLy3mtyhvDGNvBGMttkff5\nlvPdGWPbW+RdyRjT1K5IxlgUY2wPY2xtS1mz8jLGTjPG9rbc450t57T6eUhijH3GGDvMGDvIGBsZ\nClkjTtEyxqIALAJwM4CrANzLGOsTWqlsWAaLfEqyAWzinPcG8AOA2UGXyj5GAE9yzvsBGA3gsZb7\nqUl5OedNAMZyzq8GMBjArYyxkQBeBfBGi7yVAB4OoZj2eALAIUVZy/KaAWRxzq/mnI9oOafJzwOA\nBQA2cM77AhgE4AhCIatyN1UkHABGAfhaUc4G8Eyo5bIjZzcA+xTlIwA6tvyfDuBIqGV0IPeXAG4M\nB3kBxAHYBWAEgFIAUYrPyDehlk8hZyaAjQCyAKxtOVemYXlPAUizOqe5zwOABAAn7ZwPuqwRN6MF\nkAHgnKJc0HJO63TgnJcAAOe8GMBlIZbHBsZYd1hmidth+aBqUt6Wx/BcAMWwKLCTACo55+aWKgUA\nOodKPjv8H4CnAHAAYIylAbioYXk5gG8ZY78wxv7Qck6Ln4eeAC4wxpa1mGXeY4zFIQSyRqKitefH\nRj5sPsIYawfgcwBPcM5roeF7yjk3c4vpIBOW2Wxfe9WCK5V9GGO3AyjhnOfh0meXwfZzrAl5W7iG\ncz4MwG2wmJKuhbbkE+gBDAGwmHM+BEAdLE+4QZc1EhVtAYCuinImgMIQyeIJJYyxjgDAGEuH5VFX\nE7QsxHwO4EPO+ZqW05qVV8A5rwawBZZH7+QW+z2grc/EGAB3MsbyAawEcAOANwEkaVReMQsE57wM\nFlPSCGjz81AA4BznfFdLeTUsijfoskaiov0FwBWMsW6MsWgAUwCsDbFM9rCetawF8FDL/1MBrLFu\nEEL+BeAQ53yB4pwm5WWMtReryIyxtrDYkw8B2Axgcks1zcjLOX+Wc96Vc94Tls/qD5zzB6BReRlj\ncS1PN2CMxQMYD2A/NPh5aDEPnGOM9Wo5NQ7AQYRC1lAbrANkBL8FwFEAxwFkh1oeO/J9DMsMpQnA\nWQC/A5ACYFOL3BsBJIdazhZZxwAwAcgDkAtgT8v9TdWovANaZMwDsA/AX1vO9wCwA8AxAJ8AaBNq\nWe3Ifj0uLYZpUt4WucRnYb/4fmn48zAIlslXHoAvACSFQlbagksQBBFgItF0QBAEoSlI0RIEQQQY\nUrQEQRABhhQtQRBEgCFFSxAEEWBI0RIEQQQYUrQEQRABhhQtQRBEgPn/Hr9Pu8XImnAAAAAASUVO\nRK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027beb4a8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "w_tour_start = w #[:250]\n",
+ "print(trace_tour(w_tour_start)[-1])\n",
+ "plot_trace(trace_tour(w_tour_start))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 289,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RFFRRFFFRFFRFLLRFLFFLLLLFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLRRLRRRRFFFFFFRRRLLFFFFFFLRRRLLLRLLLLRFRLRFRRRFRLRLLRFRLFLLRFRFLRRRRLRFLLRLRRLFFFRLRRFFRFLRFLLFLFRLRLRLRRRLFFRLRRFFRRFFLLRLLFLLLFRFRFLRLFFLFRRRRLRRLRRLRFRRLRRRFRRRRLLRFLLRRFFRLRFFLFLFRRLLLRLFFFRFRLRLLFRRFLLRLFFFLLRLLRRLRFRFFFFFRRFFLFRFLRFRFLFLFRLFLFLRFFLFRLRRRLRRRRFFFRFLLRLFRFRRRLRFFFFFLLFRRLFRRFRFRFLRLLFRFFFLLRRFRRRRLFFFLFLLLFFLRRLRFLFLFFRLLFFRRFFLRLLRFLRLLFLFRLLLRFFFFFFFFLFLRLLRLRLRFLLFFFLFLFFLFRRRRRFFRLLFFFRLFFLFRLFFRFFFFRLRRRLLFLRRFLRFFLRRFRRFLRFLRRLFRRLFFFFRLFLFFLRFFFFFRLFLFLRFFFLLLFLLLFFLRRLFLFRRFRRFFRRRFFRFLFLLFLFRFRFLLLRRRLFRRFFRLRFLFLFLRRLFFFLFRLRFRFFRFLRRFFFFFLFRLRRFRLLRLLFFLLLFFLFFFRLFRFRRRRLFLFLLLLRLFRFRLRLLFLFLLLRRRLLLFRRFRLRFFRRRLLLFRLRLLFFLLRFFFFRLLRLRLLLRLFFFRRLRFRFFRRRFFFRFFFFLRFLFRFLRFRRLLLRLLFRRLFFLRRFFFRLLFRLFLRRFLRLLRRFFLLFLLLFFFFRRFFRLFFLLFLLFRFRLRFLRFFRFRLRLLLFFFLFLRFRFRFLRRLLLLLRFRRLFLLLLRRFFFLLRFLFFRLLLLFLFRLRFFFFFLRLLFFLLLFFLLRRFLRRFLRLRRLLLRRRRRLLLFLRRLFFFRFLRRLF\n",
+ "RFFRRFFFRFLRFRFLLRFLLRLRRLFRLRRFFLLRLLRRFRFLRLFFLFLRRLRRLRLFLLRRFFLRLLFFFFFRRFFLFRLFFRLLRRFLFFFLRFLRRLRFLFLFFRLLFFRRFFLRLFRFFRLFFLRRFLRFLRRLFRRLFFFFRLFLFFLRFFLFRFLRRFFFFFLFRLRRFRLLRLLFRFLFFFRLFRFLFLRLRFFFFFLFFRFFFFLRFLFRFLRLRLFFLRRFFFRLLFRLFLRRFLRLLRLFFRFLRRLFLLRFLFFRFLFRLRFFFFFLRLLFRFLLRRFLRRFLRLRFLRRLFFFRFLRRLF\n",
+ "Step(x=40, y=36, dir=<Direction.UP: 1>)\n"
+ ]
+ },
{
"data": {
- "image/png": "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\nTwAAAABJRU5ErkJggg==\n",
+ "image/png": "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\n",
"text/plain": [
- "<matplotlib.figure.Figure at 0x7fc85eae9c88>"
+ "<matplotlib.figure.Figure at 0x7f4026fcb9b0>"
]
},
"metadata": {},
}
],
"source": [
- "plot_trace(trace_tour(walks_m[0][0]))"
+ "w_tour = w_tour_start\n",
+ "w_trace = trace_tour(w_tour)\n",
+ "mks = mistake_positions(w_trace)\n",
+ "while len(mks) > 1:\n",
+ "# print(len(mks))\n",
+ " w_tour = trim_loop(w_tour)\n",
+ " w_trace = trace_tour(w_tour)\n",
+ " mks = mistake_positions(w_trace)\n",
+ "print('{}\\n{}\\n{}'.format(w_tour_start, w_tour, trace_tour(w_tour)[-1]))\n",
+ "plot_trace(trace_tour(w_tour))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 950,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def trim_all_loops(tour, mistake_reduction_attempt_limit=10):\n",
+ " trace = trace_tour(tour)\n",
+ " mistake_limit = 1\n",
+ " if trace[-1].x == 0 and trace[-1].y == 0:\n",
+ " mistake_limit = 0\n",
+ " mistakes = mistake_positions(trace)\n",
+ " \n",
+ " old_mistake_count = len(mistakes)\n",
+ " mistake_reduction_tries = 0\n",
+ " \n",
+ " while len(mistakes) > mistake_limit and mistake_reduction_tries < mistake_reduction_attempt_limit:\n",
+ " tour = trim_loop(tour)\n",
+ " trace = trace_tour(tour)\n",
+ " mistakes = mistake_positions(trace)\n",
+ " if len(mistakes) < old_mistake_count:\n",
+ " old_mistake_count = len(mistakes)\n",
+ " mistake_reduction_tries = 0\n",
+ " else:\n",
+ " mistake_reduction_tries += 1\n",
+ " if mistake_reduction_tries >= mistake_reduction_attempt_limit:\n",
+ " return ''\n",
+ " else:\n",
+ " return tour"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 306,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'RFFRRFFFRFLRFRFLLRFLLRLRRLFRLRRFFLLRLLRRFRFLRLFFLFLRRLRRLRLFLLRRFFLRLLFFFFFRRFFLFRLFFRLLRRFLFFFLRFLRRLRFLFLFFRLLFFRRFFLRLFRFFRLFFLRRFLRFLRRLFRRLFFFFRLFLFFLRFFLFRFLRRFFFFFLFRLRRFRLLRLLFRFLFFFRLFRFLFLRLRFFFFFLFFRFFFFLRFLFRFLRLRLFFLRRFFFRLLFRLFLRRFLRLLRLFFRFLRRLFLLRFLFFRFLFRLRFFFFFLRLLFRFLLRRFLRRFLRLRFLRRLFFFRFLRRLF'"
+ ]
+ },
+ "execution_count": 306,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "w_trimmed = trim_all_loops(w)\n",
+ "w_trimmed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 304,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40271d91d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(trim_all_loops(w)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 309,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def reverse_tour(tour):\n",
+ " def swap(tour_step):\n",
+ " if tour_step == 'R':\n",
+ " return 'L'\n",
+ " elif tour_step == 'L':\n",
+ " return 'R'\n",
+ " else:\n",
+ " return tour_step\n",
+ " \n",
+ " return ''.join(swap(s) for s in reversed(tour))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 308,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027562b38>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(w_trimmed))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 310,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nSS/UKxgF+/bt45JLLuGbb74Je0+yfjalfdQr6BCDBg1i3759ISPNJ02alGj1lASihuUQmkonvVHD\ncohevXppdvo0Rg3LIWpra3WKRxqjhqUoDqCG5RDHjh1LtApKAlHDcoiWUelKeqGG5RDav0pvNPLC\nIawJievWrQOgsLCQkSNHhrx37969HDp0CPhuNVsrWfegQYPo109X50421LAcoqysjLVr1/K9733P\nPnfo0CH69OkTdF9FRQVDhgxpsyyN3kg+tCnoENYESGsDOH78eKv7rPSm1n3WCrfGGJYsWRJXnZXY\noYblMnSxmNQg2oyOz/gzNm4Skb+ISEHANVdndFy9enWr9f1OnjzpiCyrxrKWkw7EqrFCTZoMdX8k\nLFq0KOizWUuuhdry8vKCjvfv39++gBiwZcuWVmstHjlyJC6y40G0fawVwEPGGK+IzAVmA7NFZCTf\nZXTsD6wUkWFuCmN/6KGHAJg2bRrgWy/w22+/JS8vL+ay2sq4aK16G6qmClx2uiPMnDkT8H22U6dO\nUVRUZL806urqKCwsxOPxUFdXR9++fTlx4gTGGJYuXcr8+fMdW9otkD/+8Y80NTUxbdo0vF4vy5Yt\n4+233+bWW291XHY8iMqwjDErAw4/Af6bf/9f8Gd0BPaKiJXRcX008mKJ5X3705/+BPgMy2naaubF\n0rB69+5NVVWV/dkiZenSpZ2S1xny8/OB777/ZcuWxU12PIilV3AGYP1n+gHrAq65LqNjZWVlq3Nz\n586loKCg1Sq28F02kMzMTE6cOGFnBWlqarJrndLSUm688cawMjvaf7KaiU8++STgS6Awe/ZswNe8\nfPHFF6mqqsIYE1T2t99+2yE5gVgOFst5cvDgQYwxFBUVcffdd3e63Ej461//yjfffEN9fT0zZsxg\n+PDhjspzkphkdBSRh4EmY8zSgHta4qqMjueeey719fX2sYgwf/78qMutq6uzm2IWVgs41KBxYB+r\nZQ01ceJEAB555BH7XL9+/bjlllu45ZZbeOWVV8LqYTV1O4o1HHD//ffz29/+Nuja+PHjg4YPosH6\n3BYjR47kzTff5M033wTg97//PYcPH46JrFgR14yOInIrcA3w/YDTrs/oWFFREdRZjsWKSyJCY2Nj\nyPMQet11q7YL1ew766yzgsawRIR9+/YB3zVlY91ttWq7luWLSEx/6C0zqnzxxRf2/sSJE1m7dm3M\n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\ngjJMbcJZvAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40275594e0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(reverse_tour(w_trimmed)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 575,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4026efc4e0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "w1 = random_walk()\n",
+ "w2 = random_walk()\n",
+ "plot_trace(trace_tour(w1))\n",
+ "w1bounds = bounds(trace_tour(w1))\n",
+ "plot_trace(trace_tour(w2), colour='r', xybounds=w1bounds)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 562,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "w1 = 'FFRFFRRFFFRRFRFRFRLFRRLLFFLRFFLLRFLLRRLFFLLLFLRRFFLLLFLFLRFRRLRRFLLLFFRRFRFRRRRFRRRFLRLLRRRFRFFFLFLRLFFLRFLRLFLRRFFRRFFLFLRFLLFRFLLRRRLLFFRLLRRLFRRFLLLRLRLLLLRRRRRRFFLRRRFLLLLRFRRFRFLRLFRFLFLLLLLFFFLFRLLLRLRFRRFRRRRLRFFRRFRLRFFRLRFLLFLLLRLRFFRLRFFRFLRRLLRRRFFRLRLFLRFLLRLFFRFFLFFFFFLFFLFLLLFLFRFLLFRLFRFRFLFFRRLLFRLRFRFFLRFRFFLRFFLFFLFRLRFRLLRFRRRRFRFRRFRRRRFLFRFLFFLFLFFRFLFFFFLLRRFFLLRFRRFLFRFLLRLRLRRFFLFFLFFRLFLLRFFLRRFLFLRRRRFLFFLFRLFFFRRLFRLFLLFRRLFLFFRRLRLRFFFFFFRFRRRRFLLLFRFRFRFLRFFRFRRRRFFFFRLFRRLLFLLLRRLFLFRLRLLRRFFLRRFRLFLLFRLLRRLLRLFLRRFLLLRFLRFRFFFFRFLLLRRFRFFFFFRFRLRFFLFFLRLLRFRLRFLRLRLRFRFRLLLLFFLFRLRLLRFRRLRLFLLRFLLRRLRRFRLLFRFRLFLLRFRLFLRLLLLLFRFFRLLFFLLFRLFLRFRFLFFRRRFRFRRFRFFRLFFRRLRRRLLLFLFRFRRRFFFRFFFFRRFLRLLLRFFFFFRLRLRLLLLFRRRLFRLFRRLRFFFLFFLRFRFRFFFFFRLFLLRFRRRFFLFLFFFLRRFLLLLFLFFLRRLLLRLRRFFRLRLLRFRLRRLRRRFRFLLRLFFLLFFLLLLRRLRFLLRFRRRRRRRLRFFRFLFLRLLFFRFRRRLRLRLLFLRLFLFRLRLRRRLLLLFFFRFFRFFFFLLFLLLLRRLFFRLLFFFFRRRLFRFLRFLLFRLLRLRFLRRFFRRRRLRLFFFFLLFLFFFLRFFLRLRFRFLL\n",
+ "w2 = 'FFFLRFFLLFFRFRFLFLRLLLRRRLRRLFFFLFRFLRRFFRLFRRLFRRFRRLLFLLFFFFRFLLFRFFFFLFRFFRFLFRRLFRRLFRRRRLLFRRLFRRRLFFFFFLFLRLFFLRLLRFFLFLRLFLRLLRLLLRLLRFLFFRFRFLRRLLLRFLFFFLFRFFRLFRFLLLRLFFLFFLFRFRFFFFFRLLRLFLLRRFLFFFLRFLFFLLLFFRRRRFLLRFFRFLRRFLLFFFFRFLLRRLRFRLRLRLRLRRLRFLRLFLLRLFLFRLFRFRLLRFFLRLRRLFRLRFFRRFLLLRFFLLFRRLRRRFRLRLRRLFFRLFRRRRRFLFRFLLRLFFRFLFRLFRLRFRFRFLLRLRLFLRLFLLFRFRRFRFLLLFFFRLLLLFFFRFLLLFRLRFRLRRLLFLLLRFLLFRFFRRRRLRFRLFLRLRLLRFLRLRFRLRFRLLRFLFRRLRRLFRFLRLRRFLRRLRFLRRRRLFLFLFLFLRRFFFLLFRFRLLFLFRRLLLRRRLLLRFRFFRFRFFLLFFLFRFLRFRRLLLLLRFRLLRRRFRRRLRLRLFRRRRLRFRFRLLRLRFLLFLLFFLFLFRRLLLLLFFFRFRFRFRRLRFLFLLRRFLLLFFRLRRLLFRRLLRLFLLLFFLRFFLLFRLLRRLFFFRLRFLRLFRRLRRLRRFRFFRLLLFRLLFLLRFFRLFLLFFFRLFRFFLRRLFLFRLLRLRFFLRLFFRFRFRRFFRFFLFFFFFFFRFRFFRLLLRFLFRLRLLLLRFFRLLFFFLLLLRFRFFLFRFFRRFFFRFRRLFLLFFRRLFLFFRFRFRLFFRLRFFLLFFFLLRRFFFFFFLRFLLRRRFFLFFFRFLFFFRLFFRLRRFFRRRRLFFLRFLLFRFFRLFFRRLFRRRFFFRFLFRFFRFFFRFRRRRRLRLLLLFFFRLRLLLFRLRRLFRFRFLFLRRLRFRFFRFRLLRLRFLLLRLRFLFFRLRLLRFLLLFFRRFFFLLLFRRRLFFRL\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"w1 = '{}\".format(w1))\n",
+ "print(\"w2 = '{}\".format(w2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 725,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def wander_near(locus, current, limit=10):\n",
+ " valid_proposal = False\n",
+ " while not valid_proposal:\n",
+ " s = random.choice('FFFRL')\n",
+ " if s == 'F':\n",
+ " proposed = advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " proposed = advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " proposed = advance(current, turn_right(current.dir))\n",
+ " if abs(proposed.x - locus.x) < limit and abs(proposed.y - locus.y) < limit:\n",
+ " valid_proposal = True\n",
+ "# print('At {} going to {} by step {} to {}'.format(current, locus, s, proposed))\n",
+ " return s, proposed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1192,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def seek(goal, current):\n",
+ " dx = current.x - goal.x\n",
+ " dy = current.y - goal.y\n",
+ "\n",
+ " if dx < 0 and abs(dx) > abs(dy): # to the left\n",
+ " side = 'left'\n",
+ " if current.dir == Direction.RIGHT:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.UP:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " elif dx > 0 and abs(dx) > abs(dy): # to the right\n",
+ " side = 'right'\n",
+ " if current.dir == Direction.LEFT:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.UP:\n",
+ " s = 'L'\n",
+ " else:\n",
+ " s = 'R'\n",
+ " elif dy > 0 and abs(dx) <= abs(dy): # above\n",
+ " side = 'above'\n",
+ " if current.dir == Direction.DOWN:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.RIGHT:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " else: # below\n",
+ " side = 'below'\n",
+ " if current.dir == Direction.UP:\n",
+ " s = 'F'\n",
+ " elif current.dir == Direction.LEFT:\n",
+ " s = 'R'\n",
+ " else:\n",
+ " s = 'L'\n",
+ " if s == 'F':\n",
+ " proposed = advance(current, current.dir)\n",
+ " elif s == 'L':\n",
+ " proposed = advance(current, turn_left(current.dir))\n",
+ " elif s == 'R':\n",
+ " proposed = advance(current, turn_right(current.dir))\n",
+ " \n",
+ "# print('At {} going to {}, currently {}, by step {} to {}'.format(current, goal, side, s, proposed))\n",
+ "\n",
+ " return s, proposed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1145,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def guided_walk(loci, locus_limit=5, wander_limit=10, seek_step_limit=20):\n",
+ " trail = ''\n",
+ " current = Step(0, 0, Direction.RIGHT) \n",
+ " l = 0\n",
+ " finished = False\n",
+ " while not finished:\n",
+ " if abs(current.x - loci[l].x) < locus_limit and abs(current.y - loci[l].y) < locus_limit:\n",
+ " l += 1\n",
+ " if l == len(loci) - 1:\n",
+ " finished = True\n",
+ " s, proposed = wander_near(loci[l], current, limit=wander_limit)\n",
+ " trail += s\n",
+ " current = proposed\n",
+ "# print('!! Finished loci')\n",
+ " seek_steps = 0\n",
+ " while not (current.x == loci[l].x and current.y == loci[l].y) and seek_steps < seek_step_limit:\n",
+ "# error = max(abs(current.x - loci[l].x), abs(current.y - loci[l].y))\n",
+ "# s, proposed = wander_near(loci[l], current, limit=error+1)\n",
+ " s, proposed = seek(loci[l], current)\n",
+ " trail += s\n",
+ " current = proposed\n",
+ " seek_steps += 1\n",
+ " if seek_steps >= seek_step_limit:\n",
+ " return ''\n",
+ " else:\n",
+ " return trail"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 896,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nVLpP4CKFIBNJl6SFQEV+muMwZFu3buWGG25QGDKRAEKHIVsFPOHufxk9LykEWfRehSETqYDQYcgs\n+ouVHIIMNIFIpBKC3V7MzB4E/g+4xMyOmdmtwF3A9WZ2mFwUorvOt424Y1ARiETCSdrxXkoYsn8o\n8lJJIcjyJb2EISLh6H4CItNEqucO6H4CIuGleiqxiISX6pqAhg2LpJdmEYpUuYreWUgdgyLhDAwM\nJFqvIoVA3FbROAGRcLLZbKL1KloIaJyASPqoY1Bkmkj11QF1DIqEp3ECIlUu1TUBDRsWCS/VhYCG\nDYuEl+pbjseZUzgykXBSPU4gPvmTdlyIyPhSPU4gHiSk5oBI+qhjUKTKqWNQZJq4IOMEzOxGM3vV\nzI6Y2e2T2ZaITE7SuTmJCwEzywD/Si5E2Z8DnzSzSwu9V8OGRdJrMjWBK4Hfufsf3H0A+Am58GRj\naNiwSHpN5qxcDryZ9/w4uYJhjPgS4bXXXktHRwdz584FoL+/n9mzZ9Pd3c1FF13E6dOn6ezsZO3a\ntbS2ttLT08PChQvp7Oxk3rx5dHR00NPTw6pVq2htbaWzs5MlS5bQ0dHBzJkz6e/vp6+vj4svvpiW\nlhY6OjpoaGg4p0+it7eX5cuX09raSnt7O2vWrOHtt99mcHCQ+vp6enp6aGpq4u2336a9vZ1169Zx\n8uRJ+vr6mDt3Lt3d3SxcuJCzZ8/S1dXFmjVraG1tpauri2w2S21tLXPmzKGrq4ve3l5Wrlw5ktdl\ny5bR1tZGNptleHiY3t5eVqxYQWtrKx0dHaxcuZIzZ84wPDxMNpult7eXZcuWcfLkSdra2li3bh2n\nTp1iYGCAgYEB6urqRvLa0dHBunXrRvbbggUL6OzspLGxkfb2drq7u1m9evVIXpuamujo6KC+vp6+\nvr4x+23FihW0tbVhZnR0dDBjxoyRvLS3t7N69WpOnz7N0NAQM2fOpKenh6VLl468Hu+3/v5+5syZ\nQ3d3N4sWLeLMmTPnHON4eXyMjx8/Tl1dHatXr6alpYXOzk6WLl1Ke3s7dXV1DA4OjslrvN/cnWw2\nS09PT9Fj3NDQQHd3N01NTRw9epRMJsPatWs5efIkvb29zJ8/n66uLhYsWEBbW9s5+y3+nra3tzNr\n1ix6enrGHOPly5dz9uzZke9cX18fM2fOZGhoiI6ODlatWsXp06cZHh6mrq6Onp6ec/br2rVrOXXq\nVNFzY926dbS0tBQ8N06cOJHsTHb3RH/Ax4H78p5/CrinwPt8y5YtvmzZMgcc8Lq6upHH8V9DQ8PI\n4wULFox5Pf9v8eLFk3p94cKFI4/r6+vHvD5v3ryRx/Pnzx/z+owZMwpua7J5zWazY17P3xezZ88e\n83r+ssbGxjGv19TUjDxetGjRpPKav/7MmTPHvJ6/r+bOnTvm9fx9Xc5jnP8ZCx2X/O9WofwVOsb5\nx2Kyxzj/cxf67ucftzlz5ox5fSLnxvz58725udmbm5sd8JLO5UkUAlcDT+U9vwO4vVAhMFpzc/OY\nZaEoLaV1odO6UJ+p1EJgMn0CvwH+xMxWmVkd8PfkwpOJyBRSUkDSoiub3QjcQ66D8X53HxOOzMyS\nJyAik+IlBCSdVCEgIlOfbioiUuVUCIhUuYoXAiGHGpvZ/WbWYmb78pY1mtkzZnbYzJ42s3llSGeF\nmT1rZgfNbL+Z3RYwrRlm9isz2xOl1RwtX21mL0RpPWRmZRuJZWYZM3vJzB4PmZaZ/d7MXo4+26+j\nZWXfh9F255nZdjM7ZGYHzOyqQMfrkujzvBT9bzOz2wJ+ri+b2Stmts/MfmxmdRM+XqVcQijXH7lC\n5zVgFZAF9gKXlnH7fwtcBuzLW3Y38LXo8e3AXWVIZwlwWfR4NnAYuDREWtG2GqL/NcALwFXAw8Dm\naPm9wD+VcT9+Gfhv4PHoeZC0gKNA46hlofbhfwK3Ro9rgXmh0spLMwO8BVwc6Hu4LNqHdXnH6ZaJ\nHq+yfeASM301sDvvecGxBZNMY9WoQuBVoCl6vAR4NcDnegxYHzotoAF4kdzIzFYgk7dfnypTGiuA\nnwPX5RUCJwOl9QawcNSysu9DYA7weoHloY/XDcD/BPxcy4A/AI1RwfY4cP1EvxuVbg4UGmq8PHCa\nF7l7C4C7nwAWl3PjZraaXO3jBXIHuexpRdXzPcAJcifo68BZd4/njh4n94Uoh+8BXyU3Ag0zWwic\nCZSWA0+b2W/M7PPRshD7cC1wysweiKrp95lZQ6C08n0CeDB6XPa03P0t4LvAMeCPQBvwEhP8blS6\nECh0zXLKXqM0s9nADuBL7t5JoM/i7sPufjm5X+krgXcVettk0zGzjUCLu+/lnWNljD1u5fqc73X3\nvwY2AF80s/eVcdv5aoErgB+6+xVAF7laaLDvnpllgZuB7dGisqdlZvPJTdpbRe5EnwXcVOCt5027\n0oXAcWBl3vMV5NpMIbWYWROAmS0hV1WatKizZQfwX+6+M2RaMXdvB54nV8WbH03nhvLtx2uAm83s\nKPAQ8AHg+8C8AGnFv4i4+0lyTaorCbMPjwNvuvuL0fNHyBUKIY/XTcBv3f1U9DxEWuuBo+5+2t2H\ngEeB9zLB70alC4FKDDUe/cv1OPCZ6PEtwM7RKyT0I+Cgu98TMi0zWxT3JJtZPbkDfxB4DthczrTc\n/RvuvtLd15I7Ns+6+6dCpGVmDVFNCjObRa79vJ8A+zCqhr9pZpdEiz4IHAiRVp5PkitIYyHSOgZc\nbWYzzcx453NN7HiVsyOkxM6MG8n1pv8OuKPM236QXKnXF+2gW8l1mvwiSvPnwPwypHMNMETu6sYe\ncu2wG4EFAdL6i2j7e4F9wL9Ey9cAvwKOkOsNzpZ5X17LOx2DZU8r2ma8//bH34UQ+zDa7rvJ/Qjt\nBX5G7upAqLTqyXWmzslbFiqtZuBQ9N3YRu6q24SOl4YNi1Q5jRgUqXIqBESqnAoBkSqnQkCkyqkQ\nEKlyKgREqpwKAZEqp0JApMr9P8nYgJi0MFyGAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027b86898>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def square_tour(a=80):\n",
+ " \"a is width of square\"\n",
+ " return ('F' * a + 'L') * 4\n",
+ "\n",
+ "plot_trace(trace_tour(square_tour()))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 898,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nybOEYIzJ+/+3mLJIMXCXRQAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027da7048>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def cross_tour(a=50, b=40):\n",
+ " \"a is width of cross arm, b is length of cross arm\"\n",
+ " return ('F' * a + 'L' + 'F' * b + 'R' + 'F' * b + 'L') * 4\n",
+ "\n",
+ "plot_trace(trace_tour(cross_tour()))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1181,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c0cc5c0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def quincunx_tour(a=60, b=30, c=50):\n",
+ " \"a is length of indent, b is indent/outdent distance, c is outdent outer length\"\n",
+ " return ('F' * a + 'R' + 'F' * b + 'L' + 'F' * c + 'L' + 'F' * c + 'L' + 'F' * b + 'R') * 4\n",
+ "plot_trace(trace_tour(quinqux_tour()))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 792,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nWKIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4026e9cc18>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(('F' * 10 + 'R' + 'F' * 5 + 'L' + 'F' * 10 + 'L' + 'F' * 10 + 'L' + 'F' * 5 + 'R') * 4))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1205,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nKEqpEBbSo95XcuDAAe677z6uu+46PvjgA9txlFIhLGTPo6zK1VdfzUsvvcSwYcMAePjhh5k7d67l\nVEqpUFTTFqVXC/fWhogYX+zjs88+Y9CgQZ7r69at8xRPpZTyxsaNG0lOTq72wr1B36J0GzhwYIUB\nntOnT1tOpJSqK0KmUF5q4sSJiAi333677ShKqTAXkoXyyJEjvP/++3To0IG3337bdhylVJgLyULZ\nunVrRo0aRUREBAAdOnRg+vTpllMppYLV5s2b6dOnDxMnTqzR40NmMKcy69atY+zYsZw7dw6Aixcv\nUq9ePb/sSykVusqfFvSTn/yENWvWeG73ZjAnpAvlJfvhwoULREREEBkZWePzpZRS4cM9ABwREUGL\nFi3Iy8ur8POwG/W+EveqxTExMdSrV4/f/OY3lhMppWwzxuBwODyH6Grzqa9h06Istz86dOjAt99+\nG7B9KqWCk4hQUFBAo0aNEJF/6WnWqRblpQ4ePIiIkJqaajuKUirANmzYQGxsrKcoiggOh6NWh+PC\nrlBu3LiRvn370qpVK9auXWs7jlIqwB544AHOnz9P586dmTZtGo0bN671NiN9kCuo/PjHP2b79u2s\nXbuW1NRU3nvvPerXr09qaqoO8CgVxo4cOcL27ds9n7/19ddf+2zbYVco3a6++moAxo4dC8B//dd/\ncc8999iMpJTyozZt2ngujxs3zqfbDruut1vHjh0rzA3fvXu35URKKX978803Mcbwzjvv+HS7YVso\nL7Vo0SJd/FepMLNjx44Ko9nNmzf3y37Ctutd3jfffMOiRYtYu3atLv6rVBhZsWIFAI8++ihxcXGM\nHDnSL/sJu/Mor+See+7hlVde4e6776Zly5b8/ve/tx1JKVUDBw4cYMGCBXz22Wfs2rWr5gvy1rUp\njN7YunUrQ4YM8VzftGkT119/vcVESqmauNzc7Zpsp86ecH45gwcPrjDAc/bsWcuJlFI1NWXKFIwx\nNS6S1VGnCuWlRo8ejYgwefJk21GUUlXIy8urMHDTr1+/gO27TnW9yzt27Bj79u1j+vTpHDlypMbH\nOJRSgbF9+3b69+/PunXrqFevHoMHD8bhqF1bT49Reqlt27Z89913xMfHM3z4cNLT021HUkqVs2nT\nJn79619z+PBhzpw549NGjRZKL61bt44JEyZw5swZoOYfZ6mU8o/yAzcjR47kww8/9Om2tVBWQ2lp\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f401d61d860>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "heart_points = [Step(60, 50, Direction.UP), Step(50, 90, Direction.UP),\n",
+ " Step(20, 70, Direction.UP), \n",
+ " Step(-40, 90, Direction.UP), Step(-60, 80, Direction.UP), \n",
+ " Step(0, 0, Direction.RIGHT)]\n",
+ "\n",
+ "heart_tour = ''\n",
+ "current = Step(0, 0, Direction.RIGHT)\n",
+ "\n",
+ "for hp in heart_points:\n",
+ " while not (current.x == hp.x and current.y == hp.y):\n",
+ " s, proposed = seek(hp, current)\n",
+ " heart_tour += s\n",
+ " current = proposed\n",
+ "\n",
+ "plot_trace(trace_tour(heart_tour))\n",
+ "\n",
+ "def heart_tour_func(): return heart_tour"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 882,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'FLLLLFFFLFFLFLFFFFFFLFRLLFFFFFFFFFFFRFFFRRFLLFFRFFFFFFFFLLFFFFRFLFFLLFFFLFFFFLFFRFFFFRRFFFFFFLRFFFFRFFFRFLRFFFRFLFLLFLLFFFFFFFRRFFFFFFRRFFLFRFRFRFRFFFRRLLRFFFFFFRRFFFFFFRFFFFRLFFFRLFFRRFRRFRLFFRFFFRFLRFFLFFFLLFFFFRLFLRLLLRFRRFFRFFRRRLLRRRRFFRLLRLFFFFFRLFLFRFRLLLLLRRRFRFRFFLFFFRFFFLRFFFRLLLLFLFRFLRFFFFLLLFLFLFLFFLFLFLLLRFFFFLFRFFFFLLRFFFRRFFRFFFFFFFFFFRRLFLLLFFFFFFLRFFFRLFFLLFFFFFLFFRLFRFFFRFRFFLRFFFFFFRFFFFLFRLFFLFLFFFLLFFFLRFRRFLRFFFFLFFFFFFFFRRRFFRLFRRFFLFLFFFRRLFFFFLLFFRLFFRLLRRFLLLFFLFFFFFFRFRRFFFLLFFFFFFFFFFLFFRFLLFFRRFFRFRRRRFRRFFFFFFFRLFLRFLFFRLFFRRRFLRFFRFFFFFLFRFRFRFFLRFFRFRFRLFFFRFFFRRFFRFLFLFFFFFFLFFFFLFFFLFRFRFFFFFFFLLFLRFFFFFLFLRFLLRRFFLLFFLFLLLFFFRFFLLFFFLLLRFFFFFFFFFFRFFFFFFLFRRRFLFFLFFFFFFFRFFRFFFFFRRRRFRRFLFFFLFFFFFFRLLFLFLLFFFLLFLRFFFRRRFLFFLRRFFFLFRLLRFFRFFFLRFFFFFFRFFRFFFRLFFLFFFRFFLLFFLLRLFRFRFFFLFRRFRRFFFLLFLFLRRLLFFFFFRFFLFLLRLFLLLFLFLFFLFFFLFRFFFFLFRRLLFFFFFFFFFFFFFFFFFFFRFRFFFLFFRFLRFFLFFFFFFFFFLFLLFLLFFFFFFFFLLFRLRFFFRLFFRFFLRFFFFFRFFRLFLLFLLRFLRRFRRFFLFFRFFFFFFFRFLFFFLLRLFFFLFLFLRFRFFFFFFLLLFFLFRLRFFLFFRLLFFFFFLFFFFFFFRRFFFFFRLFLFFFFFFFFFLFFLRFFFLFFRFRFFLFFFFLFLFLFFLFRFFFFFFRLFRLFLFLFLFFFRRLFRFFRFFFFFFRRFRRFFRFLLFLFFLRFFFFFFFFLFRFRFFRRLLLFLFLFRLFRFRRLLFFFFFFFFFLLFLLFLFLFRRFRFFRFFFFRFFFRRFLLRFLFLRFFFLRLLRLFRFRFFFLFFFFFFRFRFFRFRFRFFFFLLFLFLFFLRFLRRFFLFFFLLRRRRFRLFFLFFFFFRFFLRFLFFFFFFFLFFLLLFFRFRFFFRFFRRFRFFFRFLFLFRFFFRRFFLRFFFFLFRLFFRFLRFFFFRFLFFFLLRLFFRFLFFLFRRRFLFFFLLLFFLLFFRFFLFLLFRFLFFFFFRFLFLFFFRFRFRFRRFFFRLFLFFFLLLRFFRFRFFFFFFLRRFFLFFLFLFFLLFLFLFLFFFFLFFFFFLFRLFLRFLRRRFFLFRRLLFLFFFRFFFRFLFFFFLFLLFRFRRFLFFRLFRRFRFFFFFLRFFRFFRFFFLFFFFFFLFLFFLLRLFFRFFLFFFFRLFFRFFRRFRFFFLLFLFLRFFFRRFFFFFFFFRFRFFFRLRRFFRFFRFFRLFLFFFFFFRFRFRLRFRLRFFFLFRFRFFLFFLFLFFRFLLFFRRFFFFFFFFFFFFRFFRFFFLRLLLFRFFRFFFFRFFFRRLLFLFFFLFFFLRLRFFFFFFRFFFFFLFRFFFFRFLFFLFLFFFLRLRFFLLFFFLRFFFFLRFFFRFFFLRRRFLLRFFFFRLFFFRLFRFFFFFFRFFLFFFLFLFFFLRFFFFRRRFFFFLLFLLFFLFLLFFRRFFFRFFFFFRFLFLFFRFFRFLFLFLLFRFFRLFFFRFFFFRRFLRFFRFFRFRFLFFRFLRRFFLLFFFRLFFFFFFFFFFRFFFFFRFFRLFFLFLRFFFFFRFLFLLFLRRRFFLRFRRRFRLRRFRFFFFFLLFFFLLRRRFLFFLFFLFRLRFFLFFFFRFFRFLFLFRFFFFFFRRFLRLFRFFRFLFLFFRRFRLLFFLFFLFLFRRFFFFLRFFFFFFFFRFRFFFFRFFFFFLFFFFLFFLFFFFFLRFFLRRFRFFFRRFFRLLRFFLRRFRFFFFFFRFFRFFFLRLFLRFFLR'"
+ ]
+ },
+ "execution_count": 882,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# lc = trace_tour(('F' * 50 + 'L') * 4)\n",
+ "# lc = trace_tour(('F' * 50 + 'L' + 'F' * 20 + 'R' + 'F' * 20 + 'L') * 4)\n",
+ "# lc = trace_tour(('F' * 60 + 'R' + 'F' * 30 + 'L' + 'F' * 60 + 'L' + 'F' * 60 + 'L' + 'F' * 30 + 'R') * 4)\n",
+ "lc = trace_tour(heart_tour)\n",
+ "rw = guided_walk(lc, wander_limit=8)\n",
+ "rw"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 883,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c1a68d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(rw))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 884,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n22m1wjpt0auvvsrq1at58cUX+ec//xnOQwuDlZSU8M4775Cens4tt9xidDjCYG1LbI2Njd1OOvrW\nW2+xZ88e7rrrLjZv3txtYjNkXdHFixfzm9/8RjrpCtEHuUtrcXFxNDU1ATBkyBC++uorv/ZdvXo1\n06ZN6/26okqpNOBZ4CzAAcwA9gJrgXygDPiJ1tqvuZ4loQnRdz311FMUFRWRlZXFsWPH6N+/P088\n8URQj+HvpegfgH9qra9XSsUCScAC4G2t9e+UUvcA84F5QY1OCBF1br/9dm6//Xa/t9daM336dP72\nt78B/o2T7ra7h1IqBfi+1vo510HsrpLZNcAq12argB/5HakQQgRg1apVOBwOhgwZwo9//ONut/en\nxFYAlCulngPOBbYAvwSytdbHALTWR5VSfo93kPnWhBD+ctfJnTx50u/RMv4ktljgu8AdWustSqnf\n47zk9LuibOHChZ77hYWFnokIhRCiO+46+Q8++MDvLmLdtooqpbKBj7XWBa7fL8aZ2IYBhVrrY0qp\nAcC7WutOk3B5axV96KGHuPfee1m5cqVnhST31CZtORwOLBaLZwUm98Bum81GS0tLp33dzwOdXvOq\nq67yLH0mhIgsSilOnTrlmTre/ViPW0VdieugUmq41novMAHY4brdCjwM3AL8w98gCwsLAZg1a5bX\nhOavQPZNTU3tkwv0ChHpejKkyq9+bEqpc3F297AC+4HpQAzwd2AQcAC4XmvdaeZCbyW2cLvuuut4\n5ZVXpJuJEBEq6CU2AK11KTDGy1OX9yjKMMvIyJBpk4SIUD0psZlyXdFgq6ioCPo02EKI8OjJIPg+\nkdhSU1ODsviJECL8pMTmg3saYiFE5JESWwe/+93vUEpRVFRkdChCiB6SElsHDz30kOene4FeIURk\n6UmJzZBpi8IlIyOD6upquQwVIoJprbFYLJw4cYKsrCzP411194jqEpvNZpPhW0JEOHdJLZAGwKhO\nbDU1NTQ0NBgdhhCiB5qamrjuuutITk4GTLiYi1EGDBjgdSETIYT5lZSU8MorrwBw/vnnB9TJPqoT\nW1lZmUyRJESEcteN96SOPqoT25lnnkl9fb3RYQgheqDt2qOBiurEtn37dhn4LkSE6s1nN6oT23e/\n+11pPBAiQgXSb62jqE5sJSUltLa2UllZ6Zm0UmvtmZCy7c+2tNbExMSQmJgoY0yFCFBVVRVaa5+f\n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\nRinFk08+yeTJkwHn3PnCHNwlZPfsuN50HAXS1bai9wJqPFBKDQFGA58A2VrrY+BMfkDX81+LXrvj\njjs8CU2WaTMPd6nLbrf73MY904pSivnz58vMKyHm99eG6zL0JeAurXWtUsrvMvTChQs99wsLCyks\nLAwgROGNTDFtPlar1edzzzzzDNdeey179+5l6dKlXrvniK4VFxdTXFzs38Za625vOBPgWziTmvux\nXThLbeBsWNjlY18tggvQL7zwgtFh9Hmtra160aJFetKkSRrQx48f73afJUuWaEBv27ZNy2ejd1zv\nn9ec5W+J7S/ATq31H9o89hpwK/AwcAvwDz9fS4ioUFpayv333w84h0T169ev233cdWtSlRBa/nT3\nuAi4GdimlNoKaGABzoT2d6XUDOAAcH0oAxXCbNzrF+gAWjbd9XAvvPBCSGISTt0mNq31h4Cvib0u\nD244wl8y15rxetIhevz48QA89NBDJCcnBzsk4SJtzhHK4XAEtH1VVRWVlZWe1cfdpYzY2Fiys7O7\nrPgW3gVSUnMbO3as9F0LA0lsESqQEpt2Dfnx5dprr+Xll18ORlh9igxhMy+pwYxQgUwl7f4AHj58\n2FurNa+99lpIYox2UvIyLymxRZC2JQRfQ3e86eoDePrppxMfH9+ruPqa1157jWuuucboMEQXJLFF\nmM2bN5OTk8OgQYP83qerS6Z9+/bJMn0B2rJlC+Ac7xnIF4wIH7kUjRDuUtfIkSMDSmpt99VaM2rU\nqHYTVALk5OQEN9goFxcXB8CZZ54pU3qblJTYIkRX0xYFsu+uXbu47rrrGDduHM3NzSQmJjJr1qyg\nxhrtGhoajA5BdENKbBGibamrp/u6u4hMmjSJuXPnsmDBAmw2GwkJCSilWLBgQfACjmLSNcb8JLFF\niN50Leg4rU7bPnB33HEHSin69evHkiVLehdkHyETEJifJLYI4S519SbBuYcAte0Dl5mZSV5eHmef\nfXbvAuxDZNSH+UliizCB9F9zcydF9yVU23nDTp48yalTpzqtoyB8k/5r5ieNBxHCXVLrqrRQW1vL\n3LlzOXbsGJmZmVRVVdGvXz8qKyuBby9Bn332WTZt2oTFYsFisWCz2TzbCN9qamqYO3cu7733ntGh\niG5IYosQ/jQeTJw4kQ8//BAAm81Gc3MzqampnvURsrKyuPLKK9mwYYOnLxbAww8/zPr166VSvBtX\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40271d9320>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "rw_trimmed = trim_all_loops(rw)\n",
+ "plot_trace(trace_tour(rw_trimmed))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 885,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "760"
+ ]
+ },
+ "execution_count": 885,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(rw_trimmed)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1180,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At Step(x=-2, y=0, dir=<Direction.DOWN: 3>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently left, by step L to Step(x=-1, y=0, dir=<Direction.RIGHT: 2>)\n",
+ "At Step(x=-1, y=0, dir=<Direction.RIGHT: 2>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently left, by step F to Step(x=0, y=0, dir=<Direction.RIGHT: 2>)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(204,\n",
+ " 80,\n",
+ " 'RLLRFRFLFFFLFRFFRFLFFLFFFFFLLFRFFRFFFLFRFLFFFFRFRFFFLFLFFFFFFLFFFFRFLRLLRFLRFFLF')"
+ ]
+ },
+ "execution_count": 1180,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027412588>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "lc = trace_tour(square_tour(a=10))\n",
+ "rw = guided_walk(lc, wander_limit=4, locus_limit=2)\n",
+ "rw_trimmed = trim_all_loops(rw)\n",
+ "plot_trace(trace_tour(rw_trimmed))\n",
+ "len(rw), len(rw_trimmed), rw_trimmed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1194,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "success_count = 0\n",
+ "while success_count <= 20:\n",
+ " lc = trace_tour(square_tour(a=10))\n",
+ " rw = guided_walk(lc, wander_limit=4, locus_limit=2)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open('small-squares.txt', 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1195,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "success_count = 0\n",
+ "while success_count <= 20:\n",
+ " lc = trace_tour(square_tour())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open('large-squares.txt', 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1196,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "success_count = 0\n",
+ "while success_count <= 20:\n",
+ " lc = trace_tour(cross_tour())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open('cross.txt', 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1197,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "success_count = 0\n",
+ "while success_count <= 20:\n",
+ " lc = trace_tour(quincunx_tour())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open('quincunx.txt', 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1203,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n2Th8+DBCCEwmk0tDnKv9ISEhWK1WnwiHlpOTU6fNIqCUgc1mq7PBjtBnTYXJZMJkMrF69WpmzZqF\nTqfj8ssvr/eimK1bt/L+++9z4sQJVq1a5SVpfZe4uDjl8/r161m6dClQvjjom2++YevWrdhsNvR6\nPUajkcsuu4zIyEiPnPuzzz5j9uzZSkBch3VfSqmcT6fTYbVasVgsSvDcoKAgpJSUlJRgt9vR6/Xc\ndNNNHpGpvthstjpnyoSnulL1RQgh63vuRYsWkZqaSklJCUIIpk6dSufOnZXfO3fuTHZ2tluLMvyV\ndevWMWrUKJ566ilKS0spKSlBr9dz7733VnOwCVRatmxJZmYmb7zxBtOmTVNbHL9ACMGECRNYtmwZ\nsoa8CX6jDMrKyhQNXHmK5OTJk8rYcPTo0ZjNZpcOHYHChQsXiIuLIzw8vNqKN7WuZVNz8cUXY7fb\n+emnn/w+PHlDyMrKoqCgACEEdrtdGTo50Ol0lJaWotfradGiBZGRkQghuOOOO/j4449rVAZ+M0xw\n3OiO8deiRYu499576dSpk1O52267rclla0piY2OrPfQvvvgiL7zwgkoSNT2XXnopS5cupV27dmRm\nZqotTpPizlLpqkgpiYyMVFy0a8JvZxPuuecel3Oln376qdqiNTmVjaDNgY8//pgnnniCrKwstUVp\nchxD4Jp8BSpvx44dA8qHCPn5+XUax/1WGWj8gcViwWq1qi1Gk+KIRFzVlz/Qqc9QsGvXruzdu5c1\na9awfv16nn322VrL+/Qw4fPPP2fOnDnV0pppOOMLU1dNzYwZMzh58iSff/652qI0KfW91pdeeqnb\nZX1aGVQe/xuNxmZjLa8vanq2qUFubi5ffvkll19+ebNTBu6uUmwIPn0XOXwC0tLSsFqt2vLfGmhu\nyuC6665jx44dQLlBtTnhqcVXrvBpm0FkZCRpaWmkpKS4HBOnpqZWc1G95ZZbVJBUXfR6fbMKxV5S\nUkL//v3Jzc3lwoULLl3LK29TpkxRW2S36devX61t8eaqRp9+pZw+fZrCwkIyMjIUm8HVV1/Nd999\n51TOEcNg0KBByhsjEFmxYgXjxo3DYDBgs9majV9BVRwKwHHdc3JylDl3x0PjcEAD2Llzp5ri1osT\nJ05w/fXX89FHHyGEQMo/Qrjb7XYlyKk38GlloNfriYqKUlaL9evXj++++46RI0fSv39/DAYDl19+\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40276510b8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(rw_trimmed), filename='test.png')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1206,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "patterns = [square_tour, cross_tour, quincunx_tour, heart_tour_func]\n",
+ "tours_filename = 'tours.txt'\n",
+ "\n",
+ "try:\n",
+ " os.remove(tours_filename)\n",
+ "except OSError:\n",
+ " pass\n",
+ "\n",
+ "success_count = 0\n",
+ "while success_count < 100:\n",
+ " lc = trace_tour(random.choice(patterns)())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_all_loops(rw)\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open(tours_filename, 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1190,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At Step(x=2, y=3, dir=<Direction.DOWN: 3>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently above, by step F to Step(x=2, y=2, dir=<Direction.DOWN: 3>)\n",
+ "At Step(x=2, y=2, dir=<Direction.DOWN: 3>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently above, by step F to Step(x=2, y=1, dir=<Direction.DOWN: 3>)\n",
+ "At Step(x=2, y=1, dir=<Direction.DOWN: 3>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently right, by step R to Step(x=1, y=1, dir=<Direction.LEFT: 4>)\n",
+ "At Step(x=1, y=1, dir=<Direction.LEFT: 4>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently above, by step L to Step(x=1, y=0, dir=<Direction.DOWN: 3>)\n",
+ "At Step(x=1, y=0, dir=<Direction.DOWN: 3>) going to Step(x=0, y=0, dir=<Direction.RIGHT: 2>), currently right, by step R to Step(x=0, y=0, dir=<Direction.LEFT: 4>)\n",
+ "Found mistakes: 2052\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(5348,\n",
+ " 1210,\n",
+ " 'RFLFRLFLFFFRRFFFFFRLFLFRLRLFFFFLFRFFLFFRFFLFFRRLFFLFFFFFLRFFRFRFFFFFLFFFFFFFFFFLRRFFLFRLLRLFFFFFRFLFFFFFFFRRFFFFLRLFFLFRFFFFFFFFFLLFFFFFFFFFFRFFFLRLFFRFFFRFLFFFRFFFFFFFFFLLFRRFFFFLRRFFLFLFFLRLRRLRLFFFLFRRFFFFLFFFRLFFFFRLRRFLFFFFLFFFFFRLFRFFRLFRFFFRLFFLFFRLRFFFFFFLLFFRFFFFFFFLFRLFFRFRLLFFFRFFLFFFLFLFRFFRFFFLFFFFRFFFFFFFFFLFFRFFFFRLFRFFRLFFFFLFRFFFFFFLFRFLFLFFRRLRLLRLFLRRFRFFLFFFLFFFRFLRFLFLFFRRLFLRFFRLFLRRFFRFLFLFRFFLFFFFRFLFFRFFFFRLFFLFFLFRRLLFFFFFRLFFRFFLLFFRLRFFFFFRFFRLFFFFFFFRFRRLFFFLFLFFFRFLFRFRFFLFRFLFLFFRFFRFLFFLFFLLRRFFLFFFRLRFFFFRFFFFRFLFFFLFRFRLFFLRRFFFLLRLFLRFRFFFFRLLFFRLLRFFFFFRFFFFFFFFFFFFLFFFFFFFFFFLFRRLRFLRFFLLFFFFFFRFRFFLFFFLRFLFRFRLLFLFRRFFFFFFFFLFRFFLFFFRFLRLFFFRFFFFFLLRLFFFFFFFFFFRFFFRRLFFFFLLRFLRFFRFFFFRLFLFLRFFRFLFFLRLRFFFFFFFFFFRFRFFFLRRFLLFFFFLFFFRRLFFFFFFFRFFFFFFFLLFRLFRFRFLFLRFFFFFRLFFFFLFFFFLFFLRRFRFFFFLFFRFRLFFFRLFFRFLFFLFRFFLRLFFFFLFFFLFFRFFFRFFFLRFFFLFFRFRFFLLFRRFFFFFFLRLFFFLRRFFRFLLFFFFFFLFFLRFFRLFFFFFFRFRFFFFFFFLFRFLFLFFFFFFFRFLFFFRFFFLFRRFFFFFFFFLLFFRFFLFFRFFLLFFFRLRFFFFFFLFRFRLLFFLRFRFFFFFRFLFFFFLRRLFFFRFFFLFFLFRFRFFRLRFLFRFLLRLFFFRRLFLFFFFRLFFRLFRFLFLFRLFFFRRFFFFFFRLFRFFFLRFFFFFRLFLFFRRLRLLFFRFLFFLFFFRFLFLRLFRFRFLFFLFRFLFRFFRFFFLRFFRLFFFFRFFFLFFLRFRFLFFFFFRLR')"
+ ]
+ },
+ "execution_count": 1190,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\noC4AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c03b908>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "lc = trace_tour(cross_tour())\n",
+ "rw = guided_walk(lc)\n",
+ "print('Found mistakes:', len(mistake_positions(trace_tour(rw))))\n",
+ "rw_trimmed = trim_all_loops(rw)\n",
+ "plot_trace(trace_tour(rw_trimmed))\n",
+ "len(rw), len(rw_trimmed), rw_trimmed"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1187,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQwAAAD8CAYAAACCaZo+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FNX6x79ns5vd9F5NIKEmSJcSqkhVUMACilwQEKSI\nVBEUvVgAKV5p1wuoXC9igZ96Eb1UQ4sUQQi9JJQACZBOElJ2s9l9f39s5riT7Cab3U02ZT7Pc57M\nnJk5887s5uw573kLIyJISEhIWILM0QJISEjUHaQOQ0JCwmKkDkNCQsJipA5DQkLCYqQOQ0JCwmKk\nDkNCQsJiKu0wGGObGGNpjLHzJo69yRjTM8Z8jerWMsauMcbOMsba21tgCQkJxyG34JyvAKwD8LVx\nJWMsDEB/ALeN6p4C0JSImjPGugLYACDGVKOMMckARELCQRARs+a6SkcYRHQEwAMTh1YBmFembhhK\nOxYiOgHAizEWVEHbNpdFixbZpR3pnqbvqdfrQUT8r6Vl7dq1AAAPDw+Tn71cXv63ql27dg55zob2\nmdqCVToMxtgzAJKJ6EKZQ48ASDbav1taJ1FH8fT0BGMMMpkMjDHcunXLoutu3zYMPB8+fIhhw4bB\nzc2NdxJOTk7QarUgImi1WgBAy5Yt4ePjUy3PIGE/qtxhMMZcACwEYKqrMjXMkaYedYzFixeDMYYV\nK1YgPz8fGzZsQGFhIQAgOTm5kqsN3Lhxg2/v2LEDBQUFKCoqgre3N3Q6XbnzExIScOfOHfs8gES1\nYYkOoyxNAUQAOMcYYwDCAMQzxroASAEQbnRuGIB75hp6//33+XafPn3Qp0+fKgtjzTW2Ut/v+d57\n70GpVMLHxwfdunXDqFGjkJmZCQDIzs7GjRs34O3tDT8/P7NtEBl+J5YuXYqVK1fi448/Fk1Djhw5\nAsYYCgoKAAAKhQJyudzsc967dw8ymQzBwcF2ekox9fkzPXToEA4dOgQAFo8QzWLJvAeGDuKCmWNJ\nAHxKtwcD2Fm6HQPgjwraJInaiaurK7377rt8/5133iEYRoqiUlhYaLaNkSNHkqnP2NfX12RbUVFR\n1KdPH5Nt7dixg5+3c+dO2x+wgVP6uVilA7FkWfU7AMcAtGCM3WGMjS/b56B0KkJEuwAkMcauA9gI\nYFrVuzAJR1NYWIiioiK+bzy9OHLkCB89uLq6Ytu2bSbbEHQTZXFycgLw1w9VcXExAODq1as4dOgQ\nAgMDoVQqwRiDm5sbfH19MWzYMH69zb+QEjZR6ZSEiF6u5HiTMvvTbRVKwvHo9Xq+bdx5HDlyBHl5\neRg7diy2bNmCSZMmwdPTEyUlJXBycsLNmzeRlZWFixcvmmxXo9EAAHbv3o3i4uJyqyU9evRAUVER\ncnJy4O/vDwBIS0vD/PnzMWLECHs/pkQVsUaHIVHPUSqVcHV15ftjxozBL7/8AgBYsGCB6NyHDx9i\n8ODBJtsxtXTarFkzxMfHm7xGpVJh+/btFcqmUCgqlV+i+pBMw2sJL730EhhjYIzBw8PDISsGmZmZ\nYIxBo9HwaQcAvPDCC3z/+PHjfDoREBCAsLAwvv/bb78B+Gu6YWpaEhYWBjc3NxAR/v3vfwMAmjZt\nCgAmV0/KYsk5EtWHNMKoJWzbtg1t2rRBTEwMvvjiCxw6dAhjx46tURl27doFAFi4cKFZA5/Nmzfj\n6NGjUCgUyMrKgru7Oz9mPI0xR1ZWFl8ZefvttwH8pSOxpDMoKSmp9ByJ6kPqMGoRzz33HN5//318\n8cUXXDlYkwj3XLx4scnj4eHh2LBhAwDA2dkZer0ec+fO5cdlssoHrN7e3ny7SZMm8PT0xLVr1yCX\ny+Hi4lLp9dKUxLFIHUYtwvgX2mDiUruobJpkicxKpRL+/v4ICgpCeno6goIMngMlJSUWjR5q43tp\nSEgdRg3y1Vdf4ejRo9Dr9fDw8IBarcaqVau4glFYQQCADRs24MCBA3B3d0dKSgr2798PuVyOgoIC\nqNVqODs7w8XFBb6+vmjTpg0CAwNRXFwMd3d3KJVKfPLJJxX+c61evRoXL17ksmg0Gly+fNmm5zP1\nD//HH39g/fr1fIk0IyODG4G99dZbWLhwIQ4dOoRhw4aJRh/mKCwsxLx586DRaJCfnw8nJydERUWJ\nRjoS1Yi1Bhy2FjQww628vDyRoZKnpycBoNdee42IDMY07733HhER9enTp9x5lhaFQkEA6MsvvzQr\nS1FRkegauVzOt/v162f1M8bGxpYz1iorX8eOHfl2QkICPy88PJy6du1aYfsAqGvXriafOysry2q5\nGxqoTsMtCfsgTDeICOnp6cjLywMAfP7553wkEBAQAAA4ePAg1q9fDwD8PJVKBSKCQqGAUqnk7QrL\nk8IHKhhCPXz4EAAQGBjIV1+EIugKBA9UwRGMiBAbG2vX53ZycsKKFSv4Kkt8fDw/JtQJ25ZMNxQK\nBby9vcv++EirJzWENCWpIYz/OYwtJ93d3dG6dWtotVp88803+O2336DT6XDs2DF+TlBQEMLDw/HC\nCy+Ilir37NmDgoICvrphjNBxZGRk4N1330X37t15vUqlQpMmTeyuDxA6xSFDhiAzMxM+Pj7Q6XRY\ns2YNdu3ahSeffBJJSUlQq9W4ffs2v//cuXORkpJiUp6tW7di5cqVuHv3LgBDh1NYWIjQ0FA8fPiQ\nK1qN369ENWLt0MTWggY2JcnJyeHD9SNHjhAAevfddwkABQcH86G1r68vqVQqAkCLFi2ivn378mNh\nYWGiaQoR0a5du0xOA1asWMG3f/311xp5xqKiIvL19SV3d3cCQE5OTqJpQ2hoKN9u1aoVqdVqKikp\n4XU//PBDuTaNrzcuMplMtJ+enl4jz1gfgA1TEmmE4QCEpcGPPvoIH330UZWubdeuHRQKBU6fPl3h\nec7Ozny7ppZoVSoVsrKyytUtXrwYb775pslrBEWpXq83OcJwdnZGt27dcOLECZGJujHCVEui+pF0\nGDWEJUZNlpCUlIQzZ84AAH788UeMHj3a5HnClARw7FKkRqMx+48O/CWbsYxbt25FYGAg3N3dUVxc\njCNHjkCtVld4H0mHUTNII4waQviVLyws5IpMa9i8eTNGjBiBl19+mTtjjR07FoWFhaJ/OrVazf9R\njZdrHUFFIxwq1T2QkdJz1KhR/LhMJoNOp8Pbb79tsuMRrjfltyJRDVg7l7G1oIHpMMouZdrj+WNi\nYixaar1w4YIdnsA65HI5rVy50uxxrVZLAEiv1/M6YenVycmJiIi+//77Sp8xPz+/2p+lvgBpWbX2\no1KpoNfrRcF0beXYsWMgIlG7wtRn5cqVvK5169Y238taSkpKMG/ePCiVSjRv3pzrG1q2bAnGGNfn\nGI+OTp06BSLi+g3BoMz4Gctuu7m51fzDNUCkcVwNYm9dgqn5v7Ct1WprhSJwzZo1WLNmDdzc3BAQ\nEACZTAaFQoGQkBDI5XLodDoMGDBANCUpK3fZelPPK1EzSB1GPUQul9eaX9wZM2ZgxowZNrWhUqns\nJI2ErUhTknpISUmJaJWkrlOZ0rZNmzZ8qtOpUyfRsTlz5oAxhueff746RWwwSCOMOkZ2djZ2794N\nmUzGpx1yuRx6vR46nQ5nz54FUL/iRgh6me+//x4ajQYKhQKNGjVCr169AAAXL17EoEGDQETYt2+f\n6NpVq1bB09MT//3vf2tc7nqJtdpSWwsa2CqJvejcubNFKyPvvPOOo0W1G2fPnjX5jPHx8URE3NIz\nIyPDpNVr9+7d7bIqVV9Ada6SmErGzBhbwRi7Uppw+SfGmKfRsbdLkzFfYYwNtEOfJmHEjRs3EBkZ\nafLDXLduHT/PkmA2dYV27dqBiNC3b19RPRmtNDHGuL2HsaMdAJFfjoRtMOOXbvIExnoCyAfwNRG1\nLa3rD+AAEekZY8tg6LHeZoy1AvAtgM4wJDGKBdCcTNyEMWaqWqISGGNQqVR4++23oVarodPp0KdP\nHwQGBmLbtm04f/489u7di0GDBmHPnj2OFteuMMYQHh6OsLAwNG/eHJs3b+b1586dw9atW1FUVMSn\naC4uLkhOTsb+/ftx9+5duyxl1wcYYyArkzFbOn1oDOC8mWPDAWwp3V4AYL7Rsd0Aupq5zo6DrIbD\nokWLCAC5uLiIhueMMdH+7NmzHS2q3enZs6foGU+ePElEhiF227ZtzRrErV+/XpqSGAEHG25NACD4\nV0vJmKuZ999/H/n5+eWUmlTm11OIalWf+P3330VGb8b+JQ8fPkRkZKTJ6xwRH7W+YlOHwRhbCEBL\nRN8LVSZOk8aBdiY9PZ3HxWCMoVWrVgAM9grCP83x48cdJl91sWvXLgwdOpQ73BnHBrl16xbPivbC\nCy8gNTWVH6vMcU3CcqxeVmWMvQJDLlVjTVSNJ2NuiDzyyCPw9/dHZmYmiAgJCQkADP8YSUlJAGCT\ng1ttZciQIaL9a9euoW/fvmjfvj1fTgaAn376CXl5eXyJtaFHGjdOxmwzlsxbUCYZM4AnAVwC4Ffm\nvFYAzgBwBhAJ4DpKFasm2qzGWVrDgDFGwcHBRETllhzDwsIcLJ319O7dmwCQn5+fqF4mk9Hnn39O\nRIbnXbduHd8GIFpyHjlyJL/u888/J5lMRi1btiz3ngQHt4YEbNBhWNJZfAfDKEED4A6A8QCuAbgN\nIL60/Mvo/LdLO4orAAZW0G4NvJr6DQByd3fn2wAoPDycAFCLFi0cLJ31AH8FM3ZzcyO5XE4eHh7l\nFLzBwcFc2bl7927S6XR0/fp1OnnypMj7de3atfxaT09PUSDihvg9rNYOo7pKQ/yg7A0A8vHxIaK/\nfpWFMnDgQAdLZz3Lly8nmAjDZ67ExMRQSUmJ2faEVZLZs2cTAAoJCeGji4b4PbSlw6jUDqO6kOww\nbMfJyQn+/v5IT08X1el0Ojz33HP46aefHChdzVNYWGiV011D+x7aYodRf8wBGxBEhF69ekGv1/N0\nAjk5OUhISEC7du0AOD7KVk2zd+9e+Pn5AQAePHiAnJwcXlasWAEAojoJ65A6jDpGSUkJTp48iSNH\njgAAQkNDAQD5+fn4+uuved6PHj16OExGRzB27FhoNBpMmDAB3t7e8PLy4kVIGG1cN3PmTMk+wwok\nb9U6xuDBg/Hbb78BAMLCwhAZGYkbN24gLCwMABAcHIzU1FSefrGhEB4ejkaNGmHTpk3ljplaVl2z\nZg0AICYmptplq09II4w6wC+//ALGGJydnXln0bhxY6SkpCA2NhZDhw7lSqn79+8DaHhTkqSkJFy/\nfh2PPfYYdzxr1KgRGGO4ffu2yWu+++67emngVp1II4w6wKxZswAYLBtVKhXCwsIQGBiI27dvQ6VS\n4ZdffkFsbCx0Oh2Pnt3QQtfp9XpotVrEx8cjJiYGRISgoCAkJyebzAwHSCbjVmHt8oqtBQ1wOcta\nli5danZJcd68eSbrz54962ixa5TJkyfzpVhjvL29udOaMYDpTGsNAUjLqvUfIoJMJkNhYSFPpixR\nOULYPiESuXH9tm3bMHLkSAdK5xikZdUGQEObYtiTe/cM7kxbt24V1dsrG11DQuow6gjSaMw6hg0b\nxjuMUaNGYfXq1fyYpMOoOlKHUceQOo6q8fPPP2PDhg18v6CggG+PHDkSr7zyiiPEqrNIHUYdID09\nHdOmTQMgTU2swThuhhAb4/Dhw2jSpAm+/vprR4lVJ5GWVesAo0aNwoEDBxAeHg5nZ2dHi1PnMDbc\nEpade/fujejoaNy8edNRYtVJpBFGHUCj0SAoKAh37tyR5t1WIPiYAIagTYJh186dO6UOuIpIHUYd\n4P79+0hLS3O0GHWWF154gfvePP/889i+fTt27NgBNze3epUhriaQpiR1AH9/f8nD0kYEZ7w2bdpg\n+PDhAABXV1eRElSicqQRRi1HoVDg5MmTCA4OdrQodZK2bduKkhoJ7v8A4OLiIimRq4hk6VnLYYxh\n+/bteOaZZyT9RRVQq9UYNWoUfv75Z16nUqng4uICZ2dnKJVK3LlzB0DDW6q2xdJTmpLUAUJDQ012\nFjqdDjqdjtv5y2Qy6HQ6yGQyKJVKB0jqOIiIJ6TW6/U4ceIEfv75Zzg7O3M9hVqtllIO2Ig0JakD\nmAuT7+7uDqVSyX85lUolXF1doVKpsHTp0hqW0rEMHToUcrkcSqUSLi4u6NOnD2QyGTQaDcaOHQsA\nUCqVPG4IYNANSVOSqiF1GHWAjh078jyigMEHomPHjvzXMjQ0FB4eHqJr/vjjjxqV0dGcPXuWRx8D\ngA4dOvDscDqdDoBheTolJYWfo1arG9x0xFaszd7uwxjbxxhLYIztZYx5GR1bW5q9/SxjrH11Cd5Q\nWLhwIRQKBcaNGwfA8KWPjY3FmTNn0KRJEwQHB6Nx48Y8tqdA165dHSCtY0hLS0NWVhays7N5naDo\nVKvVoo7EOKu91FlYQWX+7wB6AmgPo2TMAJYDeKt0ez6AZaXbTwHYWbrdFcAfFbRrXyf/eky/fv14\nnpEnnnjCZNwHZ2dn6tatG4+H0a9fP0eI6hBgIh5IaGgoERG5u7ubjSUSHBxMpcr3BgWqOy8JymRv\nB3AVQFDpdjCAK6XbGwC8aHTeFeE8E21W82uxD8bZsjw9Penxxx8v98Xz9vYmAJSRkWHTve7cuUMA\nyN/fn7dtnJtDyKNhSYmOjrbTG6j9WPpOjIuzs7PFiYwePnxISqWS5HJ5pe0af3atW7eugaevOrZ0\nGNbqMAKJKK30vz4VQGBpfb3L3i7kLQUM+UoPHz4sOu7i4oIBAwYAAL755hub7rV27VoAQL9+/bg5\ns16vR2RkJPz9/flcHBAPrY3rmjRpAgAi5V59Z/Xq1ejWrRt8fX1F9RW9g+LiYri6uvJgwBWxb98+\naDQarhMxRaNGjRAZGYnGjRtj4MCB6N+/Py5evGj5Q9QR7L2sWqXs7bU9GTOVznGjoqLAGMOVK1fK\nnRMVFYX/+7//A2PM5qS/SqUSCoUCW7duxZgxY7B7927odDokJSUhJCQEKpWKKzpNBX/R6/Xcmaoh\nWYbOnDkTM2fOREZGBgIDA8EYg4+PD5KTk8utgri7uyM/Px8AcOXKFTRq1KjS9k197mURbDqSkpKQ\nmJiIwMBAeHt7W/E09scRyZjLTkn4VAMVT0n41MVEm3YZXu3evbvcsNDd3Z2Ki4ur3Na+ffsIMOTz\nLNumJWXDhg1ERNSuXTuRLMK2i4sLAaBNmzbxe16/fp3nETVViIh69epFYWFhFBgYSACoadOmRESk\nVCpF506bNo2IDEPOVq1a2fpqaz3btm0r946F4urqSkTmpytVYcaMGVZ9H4xL+/btq+MVWAVsmJJY\nOsJgEI8efgEwDgbl5zgAO4zqXwewjTEWAyCHSqcu1cWXX34JAHjrrbeQk5ODc+fO4cSJE8jJyUFA\nQECV2hJsF6ZPn45169ahsLAQzz77LPz8/HDkyBFcvXoVPXr0QH5+Ps6dOwcAiI6OxlNPPYWwsDBM\nmjQJAHDu3Dk888wziIyMhKurK/Lz88EYg5ubG5YtW4Y333wTqamp0Gq1+PPPP3m8BplMxkcOrVq1\nwq+//goAuH37Nl8OnDlzJj788EMAhhUT42vy8/N5Xg7jGBD1lQ8++ACAYdm5qKgIRUVFfBpQWFgo\n8lK1haSkJL6tUqmg1+tFTmullpN8v0mTJvD29kZ8fDxCQ0Oh0Whw9uxZfPDBB9DpdFAqlfDz88Pk\nyZPrnh1IZT0KTGdv9wEQCyABwG8AvI3O/ycM2dvPAehYQbt26S3/9re/8V+M4cOHcyWkNSOMESNG\nkJeXFxERtWnThm8TERUUFPBfi+bNm/Pt6dOnl2sHAMXGxpq8Byr4FWrVqlW50QIR0RdffEEAyM/P\nT5R0GGV+XYXo2EDDWCUR3oslysiypSpMmzbN5hGGqbJkyZJqejMVg+pUehLRy0QUSkRKImpERF8R\n0QMi6k9ELYloABHlGJ0/nYiaEVE7IoqvrH1bUSqVPBVeTk4O3Nzc8ODBA6v0CSUlJcjNzQUAeHt7\ni0Yorq6uICIEBwfj2rVrAAwWmObu079/f4wfPx4A8O6774p0HL6+vvwD+OqrrwAYOm5jJZ1KpeLb\nEydOBBEhMzNTZCIuk8n4fBwAd+EGgEceqdO6ZosQ3otWqxV9qcPDwzFo0CD+q9+7d2+b7uPlZTAz\nGjhwoEXnZ2ZmWvJDbJNr/eDBg7mtiVAGDRpkdXuWUqd9SX777Tfs3r0b+fn5mDhxIuLj421yVxY6\nC8AwDRAUWcZs3rwZU6dOxc2bN6HVakX/sAKXLl3Ck08+if/85z/46quvsG7dOjDG0L17d8TFxUGt\nVuO1116DRqPhQ+gJEybgxo0bvI1NmzYhISEBISEhyMvLg5OTEzw8PJCTkwPGGLy8vKDX60W+El26\ndMGjjz6KwMBALFu2zOr3UNdJTk6Gj48P37958yb69++PvLw8JCUlISMjo0rtCdO7ffv2wcPDgxvJ\nPfvssxg4cCCcnJzw4YcfIiUlBYcPH7Z4KlRUVFQlOYzZvXs3unbtivHjx4Mxhn//+9/Yt28fACA7\nOxvTp09H586dMWvWLPtOe6wdmthaYIcpCYyGd4Li0BZDnGeffZYUCgUREUVFRZFSqazwngBo6tSp\nJtsaMGAAeXp6EhHRl19+yadKwnVlFZbGdgHGRaVS8W0fHx++7evry7cFY66JEyda/ez1CQDUuXNn\nIiJ64403yk3dJkyYUKX2FixYwK8NDw/n22vXruXnGH/elsq4cOHCKslR9vopU6bw/YkTJ5abmgOg\n5ORkk9eStf+31l5oa7FHh8EYI+Avq0c/Pz+bOgwhe1bZMn78eJP1xh2AqRIcHFzuHiEhIdS3b1++\n/9VXX5nsMB599FEKCAioUF4fHx8aOnQoERF5enrSzJkzrX72+sSjjz5KAMjDw8Mu7S1btkz0mZr7\nvIUfG0twdXXlequKMDYcLFs++OADft6MGTN4hzV27Fh+zoULF8q12WA7jNTUVL7UGBYWJvrgGGP0\n4YcfVrnN48ePEwAKCgqilStX8jb9/PwoLi6OAFBERAQBoOzsbDp48CDFxcVRXFwcHThwgOLi4ujw\n4cN06NAhUqvV5doHxFaYn3/+Ob+Hk5MTtWjRggDwpdmKAEDdunXj2+PHj6/y89ZH8vLy6NNPP62y\nctMcP/30k9nRX4cOHeixxx7jdePGjbOozczMTHrhhRe4jOnp6dSlSxcaMmQIdezYkR577DEaMmSI\n6H4HDx6kw4cPU1xcHP3555+i9oQfNSIivV5Px44dIwAUFRVFHTp0oCFDhlDPnj0pMTGx4XYYREQ7\nd+6s8FfeGgYMGCBqw8/Pjx599FEig+DUunVrq9t2c3Ojrl278v2NGzeWk7lZs2ZchooAQP379+fb\nr776qlUy1Ud+//33au8whO9GQECAqO7evXsWtTt37lwu44svvkgAKDIykrdjvN2nT58K23r11VfL\nPa+xTMKPXHR0tE0dRp13bx88eLDQAZkMY2eNwmffvn3cOxQAsrKyuKIsNDSUa82toWnTpjhx4gTX\nbE+ePJkfmzdvHogI165dQ0hICAIDAytoCWjWrBliY2P5M3br1s1queobwnfCHoSHh5us79OnDzIz\nM7myXEhhYGkKRldXV7i5uQEAN+k3tvkw3q7MUlP47I1XTYC/VmySkpLQokUL21fPrO1pbC2oYu+f\nmZlJbm5uJJfLSaFQUNu2balp06bk7OxM69atI8BgAQk7jTJ0Oh1lZmaK2hEsNW1tNz09nTIyMggA\neXl58fYYY9S6dWtq0aIFdzqriJKSEkpPT6f09HTKzs4mvV5vlUz1hZKSEho2bBj5+vpyJae16PV6\n6t27NzVt2pRUKhXXMQm/0IBBdxYUFESAWBlq6Qhj9uzZIhkzMzP5dyMtLY3S09MpMzOTT5MBg/K2\nY8eOFBISQmlpaSJ5s7OzKT09ndLS0igjI4MePnwoup+TkxO1adOmYYwwlixZgoKCApSUlECn00Gr\n1UKn06G4uBhvvPEGgL8cskaMGGHz/WQyGXdmmj9/PgDDL4cQ/m7evHlWtxsQEAB/f38AQFBQEK83\nHg0pFApRij9TODk5ISAgAAEBAfDx8al7VoN2JicnBzt2GIyO5XI5t7ytCgUFBUhLS8Mff/yBuLg4\nAODfM0A8ejB2AExPTwdgiPxlqYVxWQdCPz8/uLu7g4jg7++PgIAA+Pr6is4TlmLv37+Pv//977xe\n8J8JCAhAYGAg/P39uX2SgE6ng0ajsUg2s1jb09haUMXef9WqVRXqKoQil8uJiKhTp04WKQ4rQq/X\nEwCKiYmxaVRhjvbt2/ORi4TtpKen2/wZlf0+ERHt2LGDGGN8VU4on332Gb/G3d2dnJycqnSv9957\nr9zSvdB2x44diYhE1rthYWH0/PPPExGRl5cXzZo1q0r3a9q0KfXt27dhjDBM6Q2ICE899ZSorqSk\nBCqVCjdu3OD+HrZy/fp1NGvWzC5tGXPmzBkQEQoLC+3edkNg7969UKlUaNy4MRhjlep8KoNK9R7G\nlqPAX74iRITu3bvz819//XUsWrQIgMFq0zj8QGXMnj0bH330ETQaDdzc3ER6BwCIj4+HSqXCkSNH\nEBISAiJCSkoKT2iVm5uLvLy8Kj1fRkaGyDjRGhzaYaSnp+Pw4cMWPfipU6dM1hvHHBBMrzUaDb78\n8ktER0djxIgROHr0qE3OWJmZmXjw4IHV10vYn9TUVEybNg0ajQatW7dGhw4d0KVLF8yePdvu9xo4\ncCD+9re/oVu3bujXrx+vVygU3BFQ+H6tX7/eojZXr17Nv6/mfjCE6cP9+/dx8OBBABB1SkKHZil5\neXm2hz2wdmhia4HR0K5JkyaVDqeEdXWULh+idLjYq1cvXv/4449zuwxBuSMUa2wUhClJZGQktW3b\n1u5TEgnrET5XYYhuD4TPW6vVmj3nzz//5Pc2jq5lXM6cOVPpvSoyyKqoREZGEpF1hnphYWE8YhzV\n1SlJ27ZtRRm09Xo9WrRoAcYYtm7dCsCw3DhnzhwAhg7OOOiJ4LBFZMjLIfT0Fy5cQHR0NB+mCgos\na0hKSqooUhvvAAAgAElEQVRyby5hf5555hkwxjBjxgxe16ZNG6vbi4uLA2MMfn5+YIxx5WJFy6Iu\nLi5wcXEBYBh5msISX5WrV6/irbfeAmD47hoHKq6IpKQk9O3bF3l5eSb9mCpCq9XankvW2p7G1gKI\nfSrmzp1L//jHP2jEiBG8N1WpVDRmzBi+hDVkyBD6+OOP+dLWxo0bueKwefPmIv+MYcOGiZajTPmF\nWMLGjRvpxRdfpNjYWGmE4WBgtLQ9a9Ysbpq/a9cuq9rr168fAaDXXntNtGS+YcMGs+ERPvzwQ9Ey\nuLBtHHTpxIkTFt1fWFb9/PPP+YgjKiqKt2PsL2SqvPLKK5XeQ6PR0MaNG7lFcaNGjWwaYTi8w6iu\nkpaWRjdu3OD7QpQqa0lISJA6DAdT9jP29PTk2zk5OVVu78UXXyQ/Pz8iMkxtmzVrxp0YO3XqZPIa\nwa+kQ4cOIln69etHoaGhBKCc2bY5zpw5U+6ZjIM+mysRERGkUqno9ddfr/Qewg+qEEBasPuhujol\ncXV1Fe0L9glCPERTVnavvPIKf4DWrVubbDcoKAirV6/m+1WNr7hmzRowxqBSqcAYQ8uWLat0vUT1\nYLwSYqwsr2h4fufOHZEF5LBhwwAYhvdZWVlQqVT4/fffcf36dT4tEewqyiKsZMTHx6N9e0PaHYVC\ngf379+PevXsAxLFMKqJ9+/b8ezxlyhQAlVuJPvXUU0hKSoJarbZIkS+Xy9GyZUs4OzsDsM2lHoDj\nRxjGw7rRo0dz68rs7GyaOnUqP2Yc99Lb25tmz55N8+bNE9nbt2jRgrp06WKyV27WrBmtXLmSZs+e\nTdOnT6e5c+fSm2++SVOnTqVZs2bRW2+9RW+88QYlJSUREfFfi8cff5w6d+7Mo2xJOI6yn6nxd2fc\nuHH04MEDIiK6ePEivf7663Tw4EEiIvrnP/9JAGjx4sXcUezo0aP8O7V06VJuGWrsGl6WK1euUOfO\nnfkxYfrcu3dv0ZTGlEt5ZajVaj7diY6OJg8PD5E39JNPPknLly+nkpISPsoZO3ZshW1+8803ZsMm\nUH2Ykuzdu5e0Wi0BIL1eTxcuXCAA9Prrr5t86Krk6ahsqGes/yAi2rRpEwHlAwJLOI6yn5mxhzIA\neuSRR4iIuLm28Hlt2LCBb8+aNcvUPw+tX79eVGfKVb3sNSdPniSgvMvAgQMHbHpGwWNZcIE3vqfg\nVAeA9u/fX6X3BfwVzpDq6pQkMjKSbwvDf8BgNitowD/77DPRNYsXLwYRoaSkBBMnToSnp2el9zG8\nP/MdpFqtxosvvsjNeidMmAAiQn5+PogIiYmJdnleCdsRTPaN86QCwN27d8EYQ1pamijcobFBlLOz\ns8nM9lOmTOHTAYVCYXJa4eLigoiICL5//fp1AIZhvnHKjKoaVJVFkKOsfQZjDL169QJg+B737du3\n0rZ69uzJt+VyeTlz8ari8BB9OTk56NSpE06dOoUFCxbAx8cHAwYMQGpqKp5++ml8/PHHaNeuHbKz\ns5GcnIy9e/eid+/emDhxIrKzs3HkyBH+AQUFBSEsLAynT58udx+hw6gIwSv15ZdfxoMHD6DX6+Hv\n74+cnBybLeQk7IOTk5PJJE5lEToTlUrFlxJDQ0ORnZ0NjUaDwYMHY8+ePdDr9Rg1ahQyMzN5R6LV\nak0mLSoqKuJ6ChcXF54jBhDn2LH1u3Lr1i0AEIUDBIDvvvsOMpnMZN7c1NRUboXapEkT7gWr0+nQ\noUMHhIaGYufOnVVeii2HtUOT0n/A2QAuAjgP4FsAzgAiAPwBQ0Tx7wHIzVxrdnogDCk7duwo8kAd\nMmQIEYmXtqpSBgwYUOEQTliGNY6qZLzds2fPCq+XqF7KTkFsKcYxLIx1BcKQ3ZSfhhDur7Ii6FKs\nQQi3CKCc70pFGC/HmirC91h4h1TTOgwAoQBuAnAu3d8G4JXSvyNK69YDmGzmepMP9vLLL1f5wzeX\ncFdQUFnywiUk6jJ9+vQRfdcFi05BiU9E1KJFC+rfv79DdRhOANwYY3IALjDkL3kCwE+lxzcDeLYq\nDX733Xd8Ozg4GBcuXABgmFc++uijJq8xN8z6888/q3JrCYk6i7FupWnTpjwHsLH+JjExEXfv3rXp\nPlZ3GER0D8A/YEhudBdALoB4GLKdCYvJKTCMRExiLq+lm5sb3N3d8Z///AetW7fG2rVrodVqodVq\neVSjqmKJgkhCoi4ixGkREGwugPIZ8MgCXV5FMGsbYIx5wzCSGAFDZ/EDgP8C+DsRtSg9JwzATiJq\nZ+L6Cm+s1+sbfEAYCYmK+N///odnnnnG5DG5XI6SkhIkJSXx0UeLFi3QuHFjxMbGgois+ueyZUrS\nH8BNIsomIh2A7QC6A/BmjAnthsEwTamU2NhYaLVarnkWHIJGjx5tg4gSEvWXy5cvl6sTRu3CKk9U\nVBS3VL558yaf4luLLR3GHQAxjDEVMwwF+gG4BOAgDKMOwKAE3WHmegCGZa/vvvsO/fr1g1wuh1Kp\nxEsvvYSgoCAEBATgu+++w9WrV5GQkIBr167h9u3bNogsIVF/MJ6GqFQqREZGIigoSDRt9/T0RFBQ\nEBITE6HT6eDh4WHbTa3VlpZOZRYBuALDsupmAAoAkQBOAEiEYcVEYeZaAirO/iQEyi1b1qxZY6Uu\nWUKi/rB69WoCDFapq1ev5vXmki1FRETwZVtyxCoJEX1ARNFE1JaIXiEiLRElEVFXImpBRC8SUYUe\nMkuWLOGxCATnIBcXFxAZAqGWFRgQh1+XkGioCAZpwoKAgLFBmYBcLsetW7dM5guuCg639BTw9PTk\nFnJqtRq5ubk4dOgQZDIZnJ2dMWjQIJw4cQJAec2vhERDRPgBBcT/E02aNEF8fDyAv+KRCjoN42BV\n1lBrOoyy5rR9+/bFmTNn+P6gQYOwd+9eAMCoUaNqVDYJidqIEBMUAI8CBhhM4BMSElBQUFBuGbXs\nflVxeIfh7OzMh1Zt27bFw4cPkZSUxDsLwZ5e6CxsfWAJifqC8f+CEBy4R48eOHbsGLfF8PHxsWsA\na4d7qwo8/fTTuH79OpKSkkRBcTp27AjAYPX5008/mbtcQqLBYRyf87PPPkOrVq1w7Ngx0TFbPWfL\nYrXhls03rsRwS0AYgfz66694+umnq1ssCYk6w40bN6qcL8fX1xfZ2dkOMdyyG0FBQSAiUc4Hf39/\ndOjQARqNBkQkdRYSEjCEDhRWE5s1awY3NzcQEaZPnw6lUlluRfHmzZt8PzIy0qYo60At6DCaNGmC\nzz77DNu2bYOvry86deoEwBDCXcjyJCEhAZw8eRIjR44U1RUUFAAwTD0qypv6xRdfICkpCcnJyTbJ\n4FCl5xNPPIGDBw9i7NixouhCQkp6m1PTS0jUI/r37y8KqGOMqShiAmq1Gq+99hoAYOnSpXjppZes\nlsGhIwwhzaFgypqYmAgiQw5JmUxmtWeqhER9RCaTYejQoeVWChlj+OKLL/g2YwzDhw8HYBjBC0uu\nRIQXX3zRNhlsutpGMjIy8Pe//x2pqakAIAqLlpycjNOnT2PYsGHo3r07OnfujE8//dRRokpIOJzc\n3FwcOHAAy5cvBwCu8Pztt9/w5JNPAgC6desGpVKJHTt2YMCAAWjVqhXWrVuHK1eu2EcIa23KbS0o\ntW//8ccfiQwVlJiYyO3hhSjOQqYmoUhINFRWrFgh+l/o1KkT/5+4fv06AaDw8HB+vHHjxgQYoo8b\nAwdG3LKZstMOnU4HxhimTp2K2bNn4/bt24iJiXGQdBIStYd58+Zxk28AOHXqFA/227RpUxAR7ty5\ng6lTpwIA9+zu0aOH3WRwuB2Gi4sLwsPDkZiYiKtXr6JZs2bl3HPz8vLg5OSE9u3bIz09HdnZ2WjR\nogUKCwuRkpKCiIgIeHl54ffff7coorSERF0mOzsbfn5+GDFiBLZs2WJS4Xn//n0QERhjCAgIEP1P\nlfqX1D07jFmzZqG4uBgajQbdu3dH8+bNIZPJMGjQIH5OXl4eGGM8gpBGo0FhYSG/rrCwEBqNBseO\nHcPRo0cd+DQSEjWDkJfFw8PD7OpISEgIQkNDERISYtfFA4cuQ6xatQqrVq0qV79nzx70798f+/fv\nB1B5vkngL+2whERDwN3d3aIEXvam1q5bxsbGVvkaqcOQaCjk5+ebtcmoTurVhD8+Pt72zE4SEnUE\nS0be9qbedBhubm6YMWMGunXr5mhRJCSqHScnJ9vjc1pBvekw8vPz0blzZ249KiFRn9HpdBX6jlQX\n9abDAOCQFygh4ShMxe6sbmzqMBhjXoyxHxhjVxhjlxhjXRljPoyxfYyxBMbYXsaYl72ErYyQkBCE\nh4fX1O0kJByKYLRVk9g6wlgDYBcRRQNoB+AqgAUAYomoJYADAN628R4WERUVhb1799qcO1JCoi7g\nKDMCqzsMxpgHgF5E9BUAEFEJEeUCGAZDjhKU/h1us5RGJCYmYvbs2YiLixPVJyQkYPTo0bh//749\nbychUSshIoesCNpih9EEQCZj7CsYRhenAMwCEEREaQBARKmMsQDbxfyLli1bAgBWr15dzs33tdde\nQ2BgoD1vJyFRazFOulxT2DIlkQPoCOAzIuoIoACG6Ui1OqcYm8IyxkTOOBISDQVXV9cKg+ZUF7aM\nMFIAJBPRqdL9n2DoMNIYY0FElMYYCwaQbq6B999/n2/36dMHffr0qfSmV69excyZM/HLL78AAI4e\nPcojizvKkU5CoqYpLCzEzz//jNTUVDg7OyM7OxtKpRJRUVFYvHixyH/k0KFDOHTokH1ubK1ffOk/\n52EALeivPKvLS8v80rr5AJaZudbquACLFi3iPv/r16/nPv6HDh2yuk0JibrEG2+8wf8HPD09RXEy\n9u3bV+G1cGA8jBkAvmWMnYVBj7G0tMMYwBhLANAfwDIb71EO47nb1KlTuba4T58+eOqpp+x9OwmJ\nWsfatWv5P3Fubq4oUrhx5Dp7Y5PzGRGdA9DZxKH+trRbGaYMtFq1aoXr169jz5491XlrCYlaT3Ua\nMNZJS89x48ahSZMmfN/d3R15eXkoLi7Ghg0bJF2GRINGpVJVW9t1ssOIjIzEjRs3eLTkhw8fIjk5\nGUSEyZMnQyaTgTGG5557ztGiSkjUONX5g+nQEH223lvQXcjlcshkMjx8+BDOzs5gjCEwMBCMMbRv\n3x5xcXGIi4vjSZIkJOorQnS6jRs3YsKECWbPoboYos9Wli5dCoVCgZKSEhQXF2Px4sU88Gl+fj7y\n8/Oxd+9eFBUVYdq0aQ6WVkKi+pkzZw4YY3j11Verpf06PcIADNadW7duLRd9qE2bNiAiXLx4EZGR\nkWjVqhX+97//2Xw/CYnaznPPPYfjx4+bdZOwZYRRa0P0WUJkZCRu3bpl8tiFCxf4dlJSkhRNXKJB\n8Nxzz2H79u1wcnKqlvbrdIdhrrMo7UFFdSkpKTUgkYREzXLixAlkZWVBr9eDMYbt27cjKioKa9as\nqZb71ekOwxxCZzFp0iSec9J4GVZCoj6wZcsWjB07tlx9bGxstSUyr1fj9ObNm8Pf359bvS1ZsoQf\nc0T8QwmJ6qS4uBiAOFq+u7s7wsLC8NZbb1XLPeu00nPHjh344YcfcP78eVy4cAFBQUFIS0vjI4yM\njAzu7t6mTRucP3/eZrklJCZMmMAziykUCsjlchQUFCA5ORl+fn7Q6/U4d+4cZDIZiAjOzs7w8/OD\nTqdDXl4eNwNwd3eHQqHAgwcPkJubi6ioKDRu3Bh5eXkAgMGDB2POnDlm5SAivPnmm/j0008hk8mg\n1+vRq1cvxMfHo6CgwKw9hi1KT4cmY7YnAKhJkyakUql4XUZGBgGgRx55hAYNGmTX+0k0TEaPHi1y\n9KrukpubW6lM3bt3L3fd+PHjzZ6PupyM2Z7cvHkTQUFBfJ9Ke9isrCwUFhY6SiyJekRNh8WzxJHs\n6NGjeP3116FQKBAVFQUA+Oqrr3gYP8YYN2jcsGGDTfLUqw5j8uTJOHz4MN8XOgy1Wo2srCxHiSVR\nj9iyZQvGjx8PwOCz0aZNGwCAj48PAgJMB5czTmmoUCgAAM8//zyWLVuGTz75BIC4I7JmSTQ/Px9a\nrRZXr17FuHHjsGLFCgDAlClTsGzZMqxcuRIA8PHHH1e5bRHWDk1sLaiGKcnhw4dFdcKUxN/fn/r2\n7WvX+0k0bGDhlCIoKIjat29PAMjJyYm6du1KZb/7ACgwMNDk9Xfv3rVInkmTJvFrdu7cyduNi4vj\n54SGhlKPHj0a9pRkx44dvHf29vYWHRPiZmRmZjokca1E/Wbo0KGVnpOWloazZ88CMCQfOnHiBACI\npgsAkJ6ejpCQEAAQpcqwNPO6MBUBgCFDhvB2jT1XicjmKVWdt8P45ptvAABnzpxB27ZtRcc8PT1x\n5swZZGRkoH//ag3RYREzZsxAYmIiNm7ciMaNGztanAbHjz/+iOXLl3M9V2ZmJry9vREWFoYvv/zS\nojZ0Oh2GDRsGADh9+jSio6OhVCpx//595Ofno6CggJ/bpk0bFBQUQKfT4fbt2/DyMqToyc3NxYcf\nfoji4mIoFAosWrQIc+bMwTvvvAN/f3+R3sLd3R16vR7z58/HiRMnoNfr8eyzz2Lu3LkoKirC5MmT\nkZOTg+3bt6Ndu3bo378/wsLC4OXlhUuXLuH111+HUqlEYGAg7t+/DxcXF9teorVDE1sL7DQlEbTW\ntZ3c3Fw+ZGzXrp2jxWmQCO/fx8eHXF1dCQA5OzsTALp8+bJFbaxatarctMHLy4tvy2Qyvv3II4/w\nbcYY33755ZfLybV582a+3apVK95mYWEh3blzp9w9iYj+8Y9/8P1//vOfREQ0ZMgQk1MbQZbt27c3\n7CmJq6trnTDKolIFbNOmTREcHMzrjx8/LhqeCmkUJOyPSqXC0qVLkZ2dze0UhOhUOp3OojZMpbHI\nzc3l28YZ1Y2Tagmf//Lly/Htt99CLpeLpiSvvPIK3/by8oKPjw+/TpCNiLBr1y7eplwu59Pu6dOn\ngzGGnTt3imTLzMwEESElJQVEhOHDbUsTVOenJLm5ueU8VWsT06ZNw3//+1++nHXjxg1RB3fu3DkA\nBge5xYsXY9OmTQ6RsyGgVquRmpqKmJgY3L59GyUlJVi3bh0AWOyc+PLLL+OJJ55AaGgoRo8ejfnz\n58PDwwN6vR737t0DYDC4Ki4uxtWrV8EYQ0lJCWQyGRQKBTfZ1ul0iI6OxsaNG6FSqeDv7w/AMAXp\n0aMH95MSri9LZGQk0tPTUVxcjFatWuGnn34S6Sv0ej08PT3h5+dn9fsyRZ3vMGraC1Wv15uMmSiT\nyUzmiVi/fj0AiOITFBcXo6SkRPQLERERwee4EvZH+Mz++OMPnDx5ktePGjVKdLwihM9eUK536dKF\nL6sCf/kreXt7Q61WIyIiosL2vLy80KtXr3L1X375JUaMGIHo6GgQEe8wsrKyEB0djU6dOiExMZHb\nFl2+fBl79uzBrFmzKn0GW7G5w2CMyWDIepZCREMZYxEAtgLwARAPYAwRVVsYY09PT/j6+lZX8+WI\niorCtWvXTB47fPgwevfuXa6+Q4cO0Gq1yM7ORt++fXHgwAEoFArDnNCow3N1dYWrq2u1yd5QOXr0\nKHr27AlAHHG+bdu2SEtLQ1paGrePqIiAgABkZ2fz/c6dTcW/BkJDQy3qgMwpIHv37o3U1FTIZDJR\nwmVhFFIWhUJRcwZl1io/hAJgNoBvAPxSur8NwIjS7fUAJpu5ziIlU2W8+OKLVVJ6fvzxxwSAIiMj\nyd3dnbKysiq9ZsuWLQSAWrRoQQBoyJAhpNfrSa/XExGRXq8nALR27dpy1wIgPz+/StfrGzVqJFJo\nSdiHJUuWlHvXSqWSAFDnzp153ZUrVyptCwBNmTJF9NmbwsPDgwDQ448/XmFbMTExREQ0btw4rhjt\n1KkTFRYW8u9UQUEB6fV60ul0pNPpiIj49urVq7n8n3zyicXvBDYoPW0aYTDGwgAMBrAEgOAl0xfA\nqNLtzQDeB7DRlvtUBJUqk9LT05GUlASlUgkiQnFxMZRKJYKDg0VKxrfffhvu7u5o3LgxkpKSsGDB\nAkyZMoXH0KDStWqZTIbi4mLI5XKMGTMGcrkcjRo1glwux7/+9S9Rjy5s37x5E6dPn+ZOR4KyasuW\nLXjzzTdx+fJlREREcIejgoICFBcXIzQ0FBEREWCMibLBSdjOwoUL4ebmhtmzZ2Px4sVwcnJCeHg4\nGjVqhDfeeAMLFy7EY489hqZNm1rUnvD9qAhBp2ZsdWyOq1ev4j//+Q/8/Pzg6emJU6dO4erVq+jQ\noQOA8vYawF/T8GnTpmHbtm3w8fHBpEmTLJLfZqztaUr/UX8A0B7A4wB+AeAHINHoeBiA82autbhH\nrIhJkyaRr69vhb/exqhUKpo4cSIRETVu3Nhii7233nqrQjmCg4PNXpufn08ajYbvjxs3zi7PLlE5\nvr6+NHDgQLOfjZ+fn8VtyWQymjt3bqXnGY8ozQGAmjVrZlKm//3vf3yEUVhYaLF8lgJHLKsyxoYA\nSCOiswCE7o8ZbfM+ydp7WMLDhw/5vDIuLk70cOnp5dO6qtVqPr+8deuWxS9q+fLlFcohuDubKm5u\nbnB2duajoTNnztj5LUiYIzs7W+RH9P777/PPZfjw4SKdRGXo9Xqo1epKzzMe0VbE9evXRfvz588H\nADz99NP4xz/+YbFcNYktU5IeAIYyxgYDcAHgAWA1AC/GmIyI9DCMMO6Za8DSZMz37t3D/v37IZfL\nodfrUVJSAicnJ6SmpuKPP/7g5+3cuRM3b96Es7MzdDqd2S9DUVFRFR/Vvmi1Wofev6GRkZHBt0+f\nPo1vv/0WPj4+ePjwIe/ELcWSz+7HH3/EzJkzsW/fPnz77bcoLi6GSqWCTqdDSUkJX02LiIjAqlWr\ncOfOHSxcuJD/KMlkMsybN69KclVErUnGLBSUTknoL6Xni/SX0nOKmWssHkJVNNyvrBjHxxCGYxXF\nCqhuIiIiqH///g67f0NjwIABBICio6OpY8eOou9G7969SSaTWdwWAJo1a5ZF5xYXF3MrUnMlPj6e\nt2uulJSUWPXclT0H1fSUpAIWAJjDGEsE4AvAZkuk1NRUAKh06evQoUOihysuLoaHhwcYY9i6dStv\nIzc3F05OTlyZNGLECFtFrBS1Wg3GGG7duoXY2FiRMqus01xFLFmyBIwxvpRmXPbv31+NT1A32bdv\nH4gIly9fxunTp41/sFBcXCxatrQnCoUCGo2mwn8+QbEJGHyiBLkA4J133gERVVv0b2uxi+EWER0G\ncLh0OwlAV3u0K3Dnzh2sXbsWSqUSxcXF/IO+f/8+zp49i1mzZuGVV14pN7zMycnhw9E33ngDiYmJ\n0Gq12L17N/R6Pbp3747ExET8+OOP9hTXJKb0KQK5ubno1asXNBoNpkyZYjZjFQC8++67UCqVmDdv\nHtRqNfR6PVxcXLBkyRJ8/fXX6NevX3WIX2/Q6/VYvHgxACAvL69SK+H79+/jn//8J7ffsKdVMRFx\nWb7//ntcuXIFI0eOxI4dO7B06VJRTNpag7VDE1sL7GxvAJiPhzFr1izR+nvZ8uyzz9pVFlNkZmZa\nPI2qiJYtW1KnTp3K1QOg1157rbrErzcsW7aMAJBcLqe+fftW+r6Fz0QulxMAOnPmjN1k+fTTT81+\nB+bPn2+3+5QFtWxK4jDKro9T6Yhj1apVICKo1WqTL+G///1vtcsmyAKII5ibitJUdqohFFdXVxQU\nFJjU1Lu4uIisGCVMk5mZCcCgvAwICDBrPSkQGBiI559/HlqtFkSE9u3b200Wc9agDx48wLJly+x2\nH3tS531JjBk2bBjc3NygUqlQUFAg8hx0NMZxEry9vfnQNiYmBlFRUcjOzoZarYazszNkMhnUajXk\ncjnkcjm2bduG/Px8FBUVISUlRdSWQFFREXbs2IFnnnkGAwcOrLHnqo1cunQJixYtgqenJx4+fIji\n4mL4+PhArVbzADZjx47FgQMHeAdSFipdSk9PTxetstiT2bNnIy4uDrt378b48ePRvXt3TJo0CTdu\n3MBjjz1WLfe0GWuHJrYWVMOUxFypDdy+fZvLY2ywUzY2giliYmIoICCAX7dp06Zy50ybNq1WPa8j\nEd6DsQGVp6dnlYb+N2/e5OccPHiwWuScP38+v0d2djaX/dSpU9VyPwFIUxIDlhhuOQpjpzJjgx0h\nLFtFBAQEICMjg1/36quvlpuu/Otf/7K/0HWUiIgIDB48mMeCICLk5uaCiLhxlFBvbugveIgSkcg+\n6LfffuPvXAhNYC2PPvoo3/b19eVTaiEWRm2kXk1JXnnlFXh4eCAkJAQZGRl86N6jRw9s3rwZzZo1\nc5hs/v7+iIuLQ+/evREcHIxNmzYhJCREtLRmjh07duDPP/8EkcGPQa1Wc+MfrVbLPV/nzJmD48eP\nY/jw4diyZUudCCxUHdy6dcusB7PwnXj88ceRlpYGf39/qFQq3Lt3D25ubvDz88Pdu3d5VrEOHTrg\nhx9+wHvvvYfjx4/zJEOAYRm/Xbt2Vss5ZswYtGnTBmq1GiUlJVAoFPD396/daT2tHZrYWmDnofPw\n4cP58K5p06blhp6PPfaYXe9nLS4uLtS1a9dqaXvRokX8eavivVjfAEAdO3Y0eezy5cv0yCOP8OmK\nt7c3hYeHE2AI12fqu9OpU6dydU2bNqXk5OQafjL7ABumJPVmhLF9+/ZydQUFBXB3dwcAk4FKHEFw\ncHC1Bcox/rWzZORSX4mMjDQ71YuOjkZKSkqlbRin2Tx16pTomJeXVzk/kIZCnc6taglFRUXQarXc\n4tPRCPPfMWPGYPPmzXZvXxhyV5cFY12AMYauXbuK/IysoaioCEVFRcjPz4eLiwvPierm5mZx+P/a\niC25Vet9h1GbyM3NFZmBN7TnrykYY+jQoQPi4+MdLUqtxJYOo16tktRmioqKeGdhycqIhPWEh4dL\n75m8/2gAABeWSURBVLiakDqMGiI/P59v379/34GS1H8yMjJM+nwIofjnzp3rAKnqB9KUpIa4ePGi\nKMI0ABw5cgQ9evRwkET1F8YY2rZtW85OgjEGpVIJjUaD2NhY6HQ69OzZs8EFXpamJHUAU51jz549\nayQ0fEMjICCAp0M0pmXLltx/o3///hg0aJDJ8yTMI3UYNYSpFRrGmFlfBgnr0ev1JjOZXb16lXfQ\nRITnnntOin5WRaQOo4YoO8Lo0aMHiAjx8fHl1vklbCMrKwtpaWkmjwkdxNWrV3H+/HmL8odI/EXd\nXUyuY5SdJx89ehQAcOXKFXTu3FlaYrUjrq6uZlMEurq6QiaTITo6uoalqh9II4wawjjvpSlMxb/4\n29/+VkPS1Q+Ki4vh5eWFwsJCkx1Gv379sHLlyloV9qCuIa2S1BCC0dZHH33EtfXFxcXQ6XS4fPky\nHjx4AI1GA6VSib1798LFxQVFRUXlRh7Xr1/HJ598And3d27F+tJLL6Fv374OerLaQ3p6OoKCgrB0\n6VJMnz69nPMdYwy9evWCv78/GGM4c+YMkpKSGtzozpZVknrjfFbbycnJsThWBUodnKZNm1buWMuW\nLU2GG5QgSk9Pr/BdAKD333+f7z///PPk6upaE6LVKuCIeBiMsTDG2AHG2GXG2AXG2IzSeh/G2D7G\nWAJjbC9jTEpJbgXTpk3DZ599Vq6+uLgY7dq14+EGd+3a5QDpaieV+Qo5OTmJIs8zxnjcCwnLsEXp\nWQJgDhGdZYy5AzjNGNsHYDyAWCJawRibD+BtGFIPSFQBIR4DYIiaPm3aNLi5uSEpKQlyuRwjR45E\nVlZWrQoS5GiodGrx1FNPobCwEAEBASguLsaDBw/g4+MDnU6H9evX49ChQ/Dy8sL+/ftF71micqzu\nMIgoFUBq6XY+Y+wKDJnOhsGQ2AgwJGM+BKnDqPI82TgfxeDBg3Hp0iXuH1FSUoJjx47h7t27AIAn\nn3zSfoLWYXx9fREZGYk9e/YAMLihazQaqNVqnsA4JSUFKSkpCAoKwoMHD7Bo0SJHilznsMuyKmMs\nAoakzH8ACCKiNMDQqTDGyofFboCYGi536NABZ8+ehZ+fHzIzM3HgwAGeV8Q4mnVwcDC0Wi0SEhLQ\nqlUreHp62uy6XR9xcnLCzZs3ARiibkVGRvJjwsrI9u3bMXz4cIfIVx+wucMonY78CGBm6UijYamc\nLUToMCIiIgAYPCrPnj2LRx99FJcuXUJUVBRu377Nz1+6dClWrFgBlUrFHal69+6NK1eumExNICFG\nCHCTkJAAvV4PmUwGlUqFRo0aOViyuo1NHQZjTA5DZ7GFiHaUVqcxxoKIKI0xFgzA7CTb0mTM9QE3\nNzcMGDAABw8eBGMMbm5ucHV1xb///W9MnDgRt2/f5vlGhCVVY7NlmUyG7OxseHp6VkvgnfqGYPfS\nokULB0vieOyZjNkmOwzG2NcAMolojlHdcgDZRLS8VOnpQ0TldBgNzQ7DHH/++Se6dOnC9319fZGV\nleVAieoHv//+O3r37t3gbCwswSHeqoyxHgBGA+jLGDvDGItnjD0JYDmAAYyxBAD9AdTOFE41DBEh\nJiYGPj4+IivO8+fPAzDMsYlI6iyqwJo1ayCTyaBUKsEYw44dO/gxYQoYHh5uczoACSOsNeCwtaCB\nGRsJhltt27al4OBgbmC0fv16yfDKSlQqlch4zc3Njc6fP09ERHq9nnr37k0AaOTIkQ6WtHYBKZFR\n3eHcuXP4+eef+b6Liwtf8pOoGmUVmAUFBWjbti0A4Nq1a4iLiwMAJCYm1rhs9RXpm1pDCEPkwYMH\nIyYmhtfrdDrJGcpKwsPDTdaXnZ7k5ubWlEj1Hsn5rIbIyckplwJv27Zt2LdvHzZt2iQp56zg7t27\nmDhxIjfUAoCgoCCkpaXx9JKAIfXg4MGDUVJSgqFDh+LcuXPIzs5GcnIyFi1ahG7dujnqERyClGag\nDiB4qwoxJY1p0qQJbty44SDJ6j5ljeLkcnmVfEQa0vcQkGJ61il8fX15VjJBkSR1FrYhvMfs7GwA\nkBzKqhGpw6hh7t+/bzZ8nIRt+Pj4cA9f48xkjDF4eXnBz88PXl5ecHNzg7u7O/z8/PDll186Stw6\nidRh1BDGeUkmTJjgQEnqN9OmTYNcLkdUVBSvGz16NHJycpCZmYmcnBzk5+fj4cOHyMzMxKuvvupA\naeseUodRQxjPs/Py8vj2pUuXeEg+wYhLwjZCQkJEcS/MraZIVB0pCHANYRwEWFjyGzVqFK5du8br\nv/vuO25HIGE9ycnJfIXkiy++wLhx4xwrUD1CGmHUEMZTksWLFyM4OBhbt27F6dOn8dRTTwFAnc4I\nXpv44IMPuCPfxIkTpfdqR6Rl1Rrizp07aNy4sWgJr2fPnjzdgED79u1x5syZmhav3iE5n5nHlmVV\nqeutIYy/uFqtFlOnTsXRo0fh5OTEs3S1bNkSZ8+eRb9+/ZCeng4/Pz+oVCrcv38fq1atkiKDwxAZ\nfOzYsSAipKamwsPDA15eXrh//z4UCgUCAgKQmpoq0hNJ2BFrnVBsLWhgDle3bt3iTmYnT54UOU0J\nZdKkSRQSEkJeXl4EgDw9PSkkJIRvSxCNGjWKAFBgYCCPnt6oUSP+DiMjI/n2008/7WhxayWwwflM\nGmHUEMarJILviL+/P6Kjo/H7779DoVAgLCwM9+7d4/k08vLy+C9ls2bNal7oWoiHhwd8fX0lWxYH\nIekwaojk5GQ0atQIMpkMzs7OXClXltatW+PixYuiutjYWDzxxBOSVysMK0tbt26VdBM2IJmG1wFC\nQkIQGBgIvV5vsrOQy+Um82R0795d6iyMkDx7HYv0Lawh5HI50tLSMGjQIJPHS0pKQES4evUqr2vd\nujWOHj0qdRZGeHt7w8tLyo3lKKRvYg2zZ88enDx5slx9aGgoEhISREPtl156qSZFqxLdu3cHYwzb\ntm2ze9sff/wxGGMYM2ZMuWMFBQVSfAsHIukwHAAR4aWXXsKVK1dw+fJlvqy6YMECfPzxx1i/fj0W\nLFiAvLw8s3P1K1euIC0tDTKZDIwxuLi4oFOnTlbJk5CQgPT0dGi1WkRFRSE0NBQAcObMGeTn5/Np\ngDDS0Wq1PH+Kq6srfv31VyiVSnTp0kVkkl0Zer0ex44dAxGBMQa1Wg2lUonevXtzF/UNGzagefPm\nvN2///3vOHTokKTDsAEpGXMd5s8//+TLgMePH+f1Y8aMoYCAAJPXCEmHy5YPPvigyve/ceNGuXaI\niD777DOT96ioTP7/9s4+uIoqS+C/k+S9fBKCRkJJwiAfMgtDJQ6wULIgtaDyUZlFKQTjKiCW/OHo\nOlXZmcBoAfrHwhYUrDW1Y1kOI7XymWFAYIDABhUsimWCCfIRAoqwsGBYa0NCJAlJ3t0/uvva7+Ul\nvBdehwD3V9VV3ffd7tOnX/fpe+85fe6CBVHJnjhxYtQyADVu3Lio9TT8CN0xp6eITBaR0yJyxp5u\nwBCGkSNH6j/DnbqvtrZWfw8Ryg8//AAQaoC5cuVK1PKvXbumj7Vx40bAegO99tprbWSEyhs4cGDQ\nsaKZ+2LUqFGUlpbq6FelFA0NDaSlpYWt//zzz+t6Tq5OQ9fjSRyGiMQBvwMmApeBv4rIJ0qp0x3v\naXBwJjE6dOgQZWVl+P1+4uPjaWxspKamBrBctTt27NDN9Rs3btzyuDdv3uSjjz7SHhlnakGAGTNm\n8Pbbb3Pu3DkaGxuZM2dOh8eaMWMG27Zt00l23TO33YqysjKmTJnC8uXLddnZs2epr69n5syZHDly\nRB8vKSmJDRs2sH79el338OHDVFRUUFBQQHp6esRyDbdJZ5smHS3AGGC3a7sI+E1InVi1sO5JXnjh\nBZWRkRHUFI+Pjw/a7tu3b9B2Xl7eLY+bl5fX5li9e/eO+vycaFT3kpubG/H+gKqqqgoqO378eIdd\nkdD9AdWjR4+oz/1+h27YJekLXHRtX7LLDBHS2tqquwsHDhxAKaVdr3v37gXQs7c7X2NG8lWmk1zG\nOZZSqlNRk9euXQu6kZysVp1l4cKFDB8+vMM6Tt4Qd9SscbF2LV6FhocbgTXD2lGwbt06Ro4cSWFh\nIe+88w5Dhw5l2LBhvPrqq0FjGykpKYwYMYKDBw9SW1tLeXm5zhkajm+++UZ3aWKJUorKykqKiopo\namri5s2bpKam0traSmNjIwUFBYwdOzZoH8c7BLBs2TJSUlK4ceMGU6dOZdeuXUF1Bw8ezKBBgxgx\nYgQ+n4/Fixfz4osvsnjx4pjrYmgfT9yqIjIGWKKUmmxvF2E1g5a76ij3n32vT8bcWUIzYjc0NLBm\nzRo9KBmOjv7TAQMGUFtbG/MpGQsLC1m5cqWeSBosN6w7MtN9XiJCVVWVniy5f//+9OzZ85ZZx9as\nWcO8efMQEQ4cOMC4ceNiqse9SOhkzEuXLu1eblUgHvga+AngByqAvwmpE8tu2T0LYfrykydP1lMD\nusvz8/N1X3/z5s1h9x01apQaNmyY5+ddWVl5yzEI9xhGTk5Ou2MXkyZNCnstysvLPdfjXoTu9rWq\nUqpVRH4J7MWKJv2DUqrSC1n3Ih988AGbN2/G5/Mxbdo0Ll68iFKK48ePA/Dpp58CUF1dzc6dO4mP\nj8fn83Hy5El27NgBoJv0xcXFena1goICKioqOmyBxIrdu3dr+c3NzTz11FNt6ri7JOvWrWP+/PlB\nKQsdTpw4wXPPPUd+fj6zZ8/G5/ORk5NDXl6edwoYwtNZS3O7C6aF0S643qLOxM2AGjZsmMrJyVFZ\nWVlt3thKKbVixQpd/sorr7TrWXj//fc912HVqlVhz9F9Lu4WhqNTe4vjlVm7dq3n536vQzf0khhu\nk/Xr16OU4sqVK/rPOnHiBKmpqfj9/rD7JCQk6JiM1NRU7UFYvXq1Hgs5evQoCxYs8Pz8z58/DwR7\nNkSE/fv36zpDhgzR5dXV1TokPZy3x/l+JHS6SUPXYgxGN8XdXHdTVVXF999/D1hRou6ZyRsaGnTA\nV11dnX7IiouLdZ2OgpxaWloYP348Y8eOpW/fvgwfPpxp06YFJTCOFGc2t8cee4ykpCRdPn36dJ01\nfeXKlWzfvp0nn3wS+PFblaFDh5KamgpYgWvPPvssAN9++y35+flRn4shdhiD0U1pb7q/zMxMHT59\n9OjRoIl4Qmf7cnA/sO21TpRSFBcXc/DgQa5cucLly5e5cOECu3btori4OFyXskMuXrTCcOrq6oLy\nf1y/fp3p06cD8PTTTzNlyhT27dsHoHX57rvvdPj7mDFjdHxG//79bynX4C3GYHRT3A+5mz59+ugU\nfgBffPGFNg5+v193SXr06KFbExkZGWRnZwPtu1xzc3MpKCgA4Ny5cyilqKurIzk5mZdffpm4uLig\nxfm6tD2c1sLXX3/dxsg4cSI+ny8o14fj+quurmbFihX6OEuXLm1XjqFrMQajm9JRl8T9/cfgwYP1\nemNjo+6S1NfX63ygV69e5dKlSwA8+uijiAiJiYl6/MDv92sPzJAhQ+jZsyciwuDBg/U4yMMPP6zf\n8M44Qugs9A7Lly8PO1VCa2srLS0tlJWVaVmbNm3SHhRHr+TkZAoLCwHrm5rQgC+HI0eO4Pf7mTRp\nUrvXyxBbTBLgbsqFCxeoqqrSD3VzczMPPfQQe/bsYebMmWEDr9xva+eNXldXpwOpZs2axebNmwFI\nTEwkEAgQCARISkpCRMjIyCAzMxOlFImJiTz44IOkpaURCATIysoiMTGRpqYmevXqxcSJE8OGZZeX\nl1NUVKS3165dS2ZmJgkJCaSkpJCVlUUgEGDBggV8+OGHzJ07l5s3b9KvXz/effdd5syZQ3p6Oqmp\nqRQUFNDc3KwN05kzZwgEAlrP+fPn09zcTGlpKTU1NWRmZsbo6hvapbPuldtdMG7VdklPT2/XvdjU\n1KQ2bdqkAJWdna0ef/xx7b5cvXq1Xn/jjTdUUlJSh67KQCAQ0/PeunVrRPksnOWll14KCurauHFj\nmzo+ny+iY924cSOmutzLcD+7VaPJwXC3yKytrW3zRznuyJaWFv2GvXTpEocOHdL7OfkwRIT33nuv\nzRiDUors7GztgbgV0eoZLugKrLwZym7xbNmyRa+/9dZbQeMbjvfHTXNzM2+++WbYm3f8+PGkpqai\nlCI5OTmqcw3lXryPvJB513dJPvvssy7/BuVOyPz8888B2LlzZ9A0BAkJCTzxxBMUFRXpBDgDBw6k\noaGB0aNHc/36dU6fPs2ECRNYtGgRNTU12pCEfqcSSrR6ur829fl85ObmUlZWRmJiItu2bWsjs6Sk\nhGPHjuH3+1FKaRdx7969qa+v1/k9KisrtSs2EAggIsTFxXH+/HntTbld7pf76L43GPcLSin8fj+z\nZs0KKm9paaG0tJTS0lJd5sRAbN26VZd9/PHHQfvdylh0BneodnNzsx7cPHXqFM888wyAzjualpbG\n66+/HvY4V69eDdouKSmhpKQkbF3Hs2PoGozBuEsQkXa9Et2FPn36RBSjAVY8RjiWLFnCkiVLYnhW\nhlhyR7OG3xHBBoMB1cnP2++YwTAYDHcfd72XxGAwdB3GYBgMhoi5qw2GiBSKSEBEHnCVvSciZ0Wk\nQkRilmFFRP5VRCrt424RkXTXbwttmZUi0jZTzO3L9nyOFxHJFpH9InJKRI6LyBt2eS8R2SsiVSJS\nIiIxz7orInEi8qWIbLe3+4vIYVvmBhGJ6eC8iPQUkWL7/zopIqO91lNEfiUiJ0TkKxFZJyJ+L/QU\nkT+ISLWIfOUqa1e3qJ+XzkZ83ekFyAb2AN8CD9hlU4C/2OujgcMxlDcJiLPXlwH/Yq8PBcqxPE79\nsVITSgzlxvFjukMfVrrDn3pwPfsAefZ6GlAF/BRYDvzaLv8NsMwD2b8CPga229ubgJn2+u+BBTGW\n9xEwz15PAHp6qSfwMHAO8Lv0m+OFnsDfAXnAV66ysLp15nmJ6R/flQtQDAwPMRjvA7NcdSqBLA9k\nTwf+w14PmnMF2A2MjqGsW87x4tH13WYbydPONbSNyukYy8kG9gETXAbjf13GeQywJ4byegDfhCn3\nTE/bYFwAetkGajvwJHDVCz2xXi5ugxGqW6W9HvXzcld2SUQkH7iolDoe8lPofCj/gzfzobwMOHnw\nvZbZ5XO8iEh/rLfUYawbqBpAKfUd8FCMxa0C/hl7GgoReRCoUUo56cYvYT1wsWIA8L2I/NHuBn0g\nIil4qKdS6jKwEvhvrPujFvgSuOahnm56h+jW2y6P+t7ttoFbIrIPyHIXYd1UbwGLsCx0m93ClEXs\nN+5A5m+VUjvsOr8FmpVSG2IhM5LT8vj4wcJE0oA/Af+klKr3Ml5GRKYB1UqpChGZ4BTTVudYnkMC\n8HPgNaVUmYiswmq1ealnBvAPWG/+WqzW8ZQwVbs6xiHqe6vbGgylVDiDgIj8DGus4JhY8c3ZwJci\n8rdYVjrHVT0ba27X25Lpkj0HmAr8vav4tmRGwCWgn4fH19iDbn/C6m59YhdXi0iWUqpaRPpgNaNj\nxVjgFyIyFUjG6i6sBnqKSJz99vXiel5USpXZ21uwDIaXek4Cziml/g9ARLYCjwMZHurppj3dor53\n77ouiVLqhFKqj1JqgFLqESylH1NKXcXqG74EejKla05T7HYRkcnAr4FfKKXcMdrbgdn2qPcjwCDg\nSCxk2vwVGCQiPxERPzDblukFa4BTSql/c5VtB+ba63OAT0J36ixKqUVKqX5KqQFYeu1XSv0j8Ckw\n0yOZ1cBFEXnULpoInMRDPbG6ImNEJMl+yTkyvdIztJXm1m2uS070z0usBnbu1II1+vyAa/t3WF6F\nY8DPYyjnLNbA1Zf28u+u3xbaMiuBpzzQcTKW1+IsUOTRdRwLtGJ5YcptHScDDwD/acvfB2R4JP8J\nfhz0fAT4L+AMlifBF2NZuViGuAL4M5aXxFM9gcX2/fEVsBbL4xVzPYH1WK2EJixDNQ9rsDWsbtE+\nLyY03GAwRMxd1yUxGAx3DmMwDAZDxBiDYTAYIsYYDIPBEDHGYBgMhogxBsNgMESMMRgGgyFijMEw\nGAwR8//9Y6WTlqlWbwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4026f76c18>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(rw))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1037,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nf+gzCYz9KNTkAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c0e22e8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_trace(trace_tour(trim_all_loops(rw)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1013,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[Mistake(i=20, step=Step(x=8, y=0, dir=<Direction.UP: 1>)), Mistake(i=38, step=Step(x=10, y=2, dir=<Direction.UP: 1>)), Mistake(i=42, step=Step(x=8, y=4, dir=<Direction.LEFT: 4>))]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'FFFFFLLRRFRFLFLLRFFRRFLFFFFRRFFRFFLFFRFFFFRRRRRRFLRRFLLFFFLRFRRFFFFFRRFRRFRFFRFLLFLLLFLLFFLFLFFFFFLFFFFRRFFFFRRFFFFRRFFFFFRFRFFFFLFLRFRRRLLRFFRRFFRFRFLRLFFFFRRRFLFFRFRLFRRFRFLFFLLFLRFFFRFRFLRFLLFFFFRLLLLFLFFFLFLFRRFFLR'"
+ ]
+ },
+ "execution_count": 1013,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "w_tour = rw\n",
+ "w_trace = trace_tour(w_tour)\n",
+ "mks = mistake_positions(w_trace)\n",
+ "print(mks[:3])\n",
+ "trim_loop(w_tour)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1014,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "74\n",
+ "73\n",
+ "72\n",
+ "70\n",
+ "66\n",
+ "54\n",
+ "47\n",
+ "45\n",
+ "41\n",
+ "37\n",
+ "25\n",
+ "22\n",
+ "15\n",
+ "14\n",
+ "13\n",
+ "RFFRRFFFRFFRFLLRFLFFLLLLFRRRFLFFFFRRFFFRLLLRRFLLFRLLLFRLLRFLRRLFLFFRLLRFLLFRRLLRLFRFFFLLFFLFLRRLFRLRRLRRRRFFFFFFRRRLLFFFFFFLRRRLLLRLLLLRFRLRFRRRFRLRLLRFRLFLLRFRFLRRRRLRFLLRLRRLFFFRLRRFFRFLRFLLFLFRLRLRLRRRLFFRLRRFFRRFFLLRLLFLLLFRFRFLRLFFLFRRRRLRRLRRLRFRRLRRRFRRRRLLRFLLRRFFRLRFFLFLFRRLLLRLFFFRFRLRLLFRRFLLRLFFFLLRLLRRLRFRFFFFFRRFFLFRFLRFRFLFLFRLFLFLRFFLFRLRRRLRRRRFFFRFLLRLFRFRRRLRFFFFFLLFRRLFRRFRFRFLRLLFRFFFLLRRFRRRRLFFFLFLLLFFLRRLRFLFLFFRLLFFRRFFLRLLRFLRLLFLFRLLLRFFFFFFFFLFLRLLRLRLRFLLFFFLFLFFLFRRRRRFFRLLFFFRLFFLFRLFFRFFFFRLRRRLLFLRRFLRFFLRRFRRFLRFLRRLFRRLFFFFRLFLFFLRFFFFFRLFLFLRFFFLLLFLLLFFLRRLFLFRRFRRFFRRRFFRFLFLLFLFRFRFLLLRRRLFRRFFRLRFLFLFLRRLFFFLFRLRFRFFRFLRRFFFFFLFRLRRFRLLRLLFFLLLFFLFFFRLFRFRRRRLFLFLLLLRLFRFRLRLLFLFLLLRRRLLLFRRFRLRFFRRRLLLFRLRLLFFLLRFFFFRLLRLRLLLRLFFFRRLRFRFFRRRFFFRFFFFLRFLFRFLRFRRLLLRLLFRRLFFLRRFFFRLLFRLFLRRFLRLLRRFFLLFLLLFFFFRRFFRLFFLLFLLFRFRLRFLRFFRFRLRLLLFFFLFLRFRFRFLRRLLLLLRFRRLFLLLLRRFFFLLRFLFFRLLLLFLFRLRFFFFFLRLLFFLLLFFLLRRFLRRFLRLRRLLLRRRRRLLLFLRRLFFFRFLRRLF\n",
+ "FFFFFLLRRFRFLFLLRFFFFFRFLFFFFLFFLFRFRFLRLFFFLLFRLRFFFRFRFLRFLLFFFFRLLLLFLFFFLFLFRRFFLR\n",
+ "Step(x=0, y=0, dir=<Direction.DOWN: 3>)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40276002e8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "w_tour = rw\n",
+ "w_trace = trace_tour(w_tour)\n",
+ "mks = mistake_positions(w_trace)\n",
+ "while len(mks) > 3:\n",
+ " print(len(mks))\n",
+ " w_tour = trim_loop(w_tour)\n",
+ " w_trace = trace_tour(w_tour)\n",
+ " mks = mistake_positions(w_trace)\n",
+ "print('{}\\n{}\\n{}'.format(w_tour_start, w_tour, trace_tour(w_tour)[-1]))\n",
+ "plot_trace(trace_tour(w_tour))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1015,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Mistake(i=70, step=Step(x=-2, y=6, dir=<Direction.UP: 1>)),\n",
+ " Mistake(i=71, step=Step(x=-3, y=6, dir=<Direction.LEFT: 4>))]"
+ ]
+ },
+ "execution_count": 1015,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "mks"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1016,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'FFFFFLLRRFRFLFLLRFFFFFRFLFFFFLFFLFRFRFLRLFFFLLFRLRFFFRFRFLRFLLFFFFRFLFFFLFLFRRFFLR'"
+ ]
+ },
+ "execution_count": 1016,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "trim_loop(w_tour)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1212,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f4027ba30b8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "lc = trace_tour(square_tour(a=10))\n",
+ "rw = guided_walk(lc, wander_limit=4, locus_limit=2)\n",
+ "plot_trace(trace_tour(rw))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1247,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(254,\n",
+ " 20,\n",
+ " 'RLLFLRRFLLFFFFLFLFRL',\n",
+ " [Step(x=-1, y=0, dir=<Direction.DOWN: 3>),\n",
+ " Step(x=0, y=0, dir=<Direction.RIGHT: 2>)])"
+ ]
+ },
+ "execution_count": 1247,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAASgAAAEACAYAAAAA+OtCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFGhJREFUeJzt3H9wlPWdB/D3Z7PZbNhQHM4CAQye7XE2Rs/QOaRje7M6\nB4QCV4tlplBHBx0cvapMufbkajVg7w7G0XY6ZZyxUi3e6EGHU68igfOkK+CNlRYiiUiC046l/JQb\nqCWoSdj3/bFLLsYkG9wn+X4C79fMzuyT/eb7vN0f73yfZx8xkhAR8SgWOoCISF9UUCLilgpKRNxS\nQYmIWyooEXFLBSUibkVWUGYWM7NdZvaLqOYUkQtblCuoJQD2RjifiFzgIikoM5sI4MsA1kQxn4gI\nEN0K6ocAvgNAl6WLSGSKLigzmw3gKMlGAJa/iYgUzYr9f/HM7F8B3ASgE0A5gJEAniV5c49xWl2J\nSBeSBRczRa+gSH6XZBXJywB8HcDWnuXUbayrW319ffAMwyGT11zKNHwzDZSugxIRt+JRTkbyFQCv\nRDmniFy4LugVVDqdDh3hYzxmAnzmUqaB8ZhpoIo+ST7gHZlxqPYlIr6ZGTgUJ8lFRAaLCkpE3FJB\niYhbKigRcUsFJSJuqaBExC0VlIi4pYISEbdUUCLilgpKRNxSQYmIWyooEXFLBSUibqmgRMQtFZSI\nuKWCEhG3VFAi4pYKSkTcUkGJiFsqKBFxSwUlIm6poETELRWUiLilghIRt1RQIuKWCkpE3IoXO4GZ\nlQHYBiCRn28DyRXFzisiYiSLn8RsBMnTZlYC4FUA95B8vccYRrEvERn+zAwkrdC4SA7xSJ7O3y1D\nbhU1rJro/fffx9q1a3HixInQUbpks1ls2LABb7/9dugoH7F9+3bs2LEjdIyPaGlpwbPPPhs6xke8\n++67WLt2LTo6OkJHGd5IFn1Druh2A3gPwMo+xtCb06dP8+GHH+ZFF13EkpIS/uxnPwsdiWfOnOG6\ndetYVVXFkpISLl68OHQkkuS2bdt4zTXXsLS0lNXV1aHjkCT37dvHefPmsaysjPF4PHQckuSxY8e4\nZMkSlpeXs6SkhE1NTaEjuZTvg8LdMpBBA70B+BSArQCqe3ls0P+jz8Xrr7/OESNGMJlMEgBjsRiR\nW/kFvY0ZM4ZlZWXBc3S/XXzxxSwpKQmeo+fNzNy8bmdv8XiciUQieI7ut6VLl4b+uH0MMLCCiuQc\nVHdm9gCAUyR/0OPnrK+v79pOp9NIp9OR7vtczJ07Fxs3bkR5eTmy2SxIoqqqCtddd12wTABQUVGB\nJ598Eh0dHWhra0MsFsNtt90WNNPo0aOxbt06HD9+HG1tbQCAxYsXB81UUVGBV199Fc3NzTh9+rSL\nTCUlJTh8+DC2bNmCjo4OnDlzBjNnzkRVVVWQPCTx3HPP4eTJkzhw4AAqKyuD5ACATCaDTCbTtb1i\nxYoBnYOKYtV0MYBR+fvlyH2j9+Vexg1uJZ+jOXPmEACPHTvGb33rW0wmk3zxxRdDxyKZO/R85JFH\nOGrUKD7wwAOh45DMHXquX7+ekyZN4vTp00PH6bJ9+3Zec801HDt2bOgoXVpaWnjjjTeyvLycv/vd\n74LlePnll5lKpZhIJHjnnXcGy9EbDNUKysyuBLAWufNQMQDrSf5LL+NY7L6idHYFdTZTe3s7EolE\n4FQf1d7ejtLSUpgV/kMzVLLZLLLZLOLxoq9QiZTX1y9UJpKYMmUKGhsbAQDJZBK//e1vg66iuhvo\nt3hFv8tINgGYUuw8oXl7cwM+M8ViMcRi/q7v9fhchczU1taG1tbWru0PPvgAu3fvdlNQA+XvnSYi\nRauoqMAf//hH1NXVAcit5mbNmhU41bnztU4XkcjE4/GuQ/HS0tLAaT4ZraBExC0VlIi4pYISEbdU\nUCLilgpKRNxSQYmIWyooEXFLBSUibqmgRMQtFZSIuKWCEhG3VFAi4pYKSkTcUkGJiFsqKBFxSwUl\nIm6poETELRWUiLilghIRt1RQIuKWCkpE3FJBiYhbKigRcUsFJSJuqaBExC0VlIi4dUEWVHNzM95+\n+20AwGuvvYaOjo7AiUSkN0UXlJlNNLOtZrbXzJrM7J4ogg2WU6dO4eqrr0ZraysA4Itf/CJeeOGF\nwKlEpDdRrKA6ASwlWQ3gCwC+aWaXRzDvoKioqEBdXV3XdiqVwsyZMwMmkuGKJJqbm0EydJSP2Ldv\n33lzVFB0QZE8QrIxf/8UgLcATCh23sG0atUqlJWVIZlMYtmyZUilUqEjyTCUyWRw5ZVXoqamBg0N\nDS6K6uTJk6iursbEiROxZs0aZLPZ0JGKYlE+qWZ2KYAMgJp8WXV/jB5ewLNmzJiBHTt24N1331VB\nDUOrV6/G0qVLg68UzAwkkUqlMHbsWLz33ns4fvx40ExnpVIpdHZ24sMPP3RRnt3lnzcrNC4e4Q4r\nAGwAsKRnOZ21fPnyrvvpdBrpdDqq3Z+zkSNH4v3331c5DUOHDx/GkiVLQscYFkaOHInHHnssdAxk\nMhlkMplz/0WSRd+QK7rNyJVTX2PoyZw5c+gtkwzMHXfcwdLSUpaXl/PQoUPBcmzdupUAWF1dzYaG\nBmaz2WBZzjpx4gTNjGPGjOHjjz/O9vb20JF6lf/sFeyWSA7xzOwpAMdJLu1nDKPYV1Tmzp2LjRs3\nulv6Sv8OHz6Myy67DB988AESiQRuu+02PProo0GykMSbb76JK664AmYFj1aGzL59+/CZz3wGpaWl\noaP0aaCHeFFcZnAtgG8AuN7MdpvZLjOrK/R7Ip/Ez3/+c3R2dgIAstksnn766WAngs0MNTU1rsoJ\nAC6//HLX5XQuovgW71WSJSSvJllLcgrJzVGEE+lp8eLF2L59OwBg3rx52LlzJ2KxC/J64wuCXlkZ\nVkaMGIFp06YBAD73uc9h8uTJgRPJYFJBiYhbKigRcUsFJSJuqaBExC0VlIi4pYISEbdUUCLilgpK\nRNxSQYmIWyooEXFLBSUibqmgRMQtFZSIuKWCEhG3VFAi4pYKSkTcUkGJiFsqKBFxSwUlIm6poETE\nLRWUiLilghIRt1RQIuKWCkpE3FJBiYhbKigRceuCLKjOzk50dnYCADo6OkAycCIR6U0kBWVmPzWz\no2a2J4r5BtOpU6cwatQobN68GQCQSCTQ0NAQOJWI9CaqFdSTAGZGNNegSqVSmDx5ctd2MplEbW1t\nsDweV3DZbBYdHR2hY5yT9vb20BFkEERSUCR3ADgRxVyDzczwyCOPIJVKIZFIYNGiRaisrAyWp7a2\nFjU1NWhoaHBTVIsWLcLEiROxZs0a90W1Y8cOTJs2DVVVVaGjyCCwqD4UZjYJwAskr+rjcXr5AJJE\nbW0t9uzZg4ULF2LEiBHBsjz++OMAciu7SZMmYfbs2Th58mSwPD0zpVIp3H///bjrrruCZurJzDBh\nwgScOHECp0+fBgAsXrw4aKaKigqsWLECI0eODJpjODAzkLSC44ayoOrr67u20+k00ul0JPv+JLZs\n2YK6urpg++/JLPdajRgxAm1tbYHT/L9EIoH29nYcPXoUY8aMCR2ny0033YRnnnkGZoZsNhs6Tpcv\nfelL2LZtW+gY7mQyGWQyma7tFStWDKigQDKSG4BJAPb08zjl4z796U8zkUhw+vTp3LVrV+g4JMnp\n06czHo+zurqamzZtIgAePHgwdKyPaWlp4Y033siysjLG4/GgWV5++WWmUimWl5ezqakpaJbhIN8H\nBXslyhXUpcitoK7s43FGta/zyebNmzF27NigJ+p7euONN3Do0CHU1dXBzGBmOHjwIMaPHx86Wq9a\nW1vR3NyMefPmBdk/SUyZMgWNjY2IxWKYNWsWNm7cGCTLcDGkh3hm9gyANIA/A3AUQD3JJ3uMUUEN\nU94LKrSdO3di6tSpiMfjAHLX2b3zzjs6cd+PgRZUVN/iLSQ5nmQZyaqe5SRyPrvqqquwevXqrguA\nf/KTn+CSSy4JHeu8ENkhXsEdaQU1bGkFNTBmhsrKShw6dCh0FPeGdAUlIjIYVFAi4pYKSkTcUkGJ\niFsqKBFxSwUlIm6poETELRWUiLilghIRt1RQIuKWCkpE3FJBiYhbKigRcUsFJSJuqaBExC0VlIi4\npYISEbdUUCLilgpKRNxSQYmIWyooEXFLBSUibqmgRMQtFZSIuKWCEhG3VFAi4pYKSkTciqSgzKzO\nzPaZWauZ3RvFnBJefX09Jk2aBAD4/Oc/jzvvvDNwIrnQFF1QZhYDsBrATABXAFhgZpcXO6+EV1ZW\nhqNHjwIAjh8/jlhMC24ZWlG846YC2E/yHZIdANYB+EoE80pg99xzDxKJBACgtLQU999/f7AsDQ0N\nmDJlChoaGkAyWA4ZWvEI5pgA4EC37T8gV1oyzFVUVGDZsmW47777MHv2bBw8eBAHDx4MkmXDhg1o\nbGzE/PnzUVVVhYceeghz5swJkkWGjhX718jMvgZgBsnb89s3Afhrkkt6jGN9fX3XdjqdRjqdLmrf\nMvhOnTqF8ePH409/+lPoKDAzkEQsFkM2m8Vzzz2HG264IXSsLrW1taisrMSmTZtCR3Enk8kgk8l0\nba9YsQIkreAvkizqBmAagM3dtpcBuLeXcRT5pFauXMmSkhImk0kuWrSIAFhfXx86VpempiYmk0km\nk0keOnQodBz38n1QsF+iOAe1E8BnzWySmSUAfB3ALyKYV6TLzJkzcccdd6C1tRVPPPFE6Dgfs2zZ\nMrS3tyObzeL73/9+6DjnjaIP8YDcZQYAfoTcSfefklzVyxhGsS8RIHe4V19fj+XLl4eOgr1796Km\npqbr5H08HseBAwcwbty4wMn8yh+uFzzEi+R7Y5KbSf4lyb/orZxEzmfjxo3D/Pnzu7YXLFiAiy66\nKGCi84cubBEp0ujRo7F+/XoAQGVlJZ566ikkk8nAqc4PKigRcUsFJSJuqaBExC0VlIi4pYISEbdU\nUCLilgpKRNxSQYmIWyooEXFLBSUibqmgRMQtFZSIuKWCEhG3VFAi4pYKSkTcUkGJiFsqKBFxSwUl\nIm6poETELRWUiLilghIRt1RQIuKWCkpE3FJBiYhbKigRcUsFJSJuqaBExK2iCsrMvmZmzWZ2xsym\nRBVKpC+//vWvMX/+fADAww8/jHvvvTdwIhlMxa6gmgB8FcArEWQRKeitt97C888/DwBoa2vD008/\njWw2GziVDJaiCopkC8n9ACyiPCL9WrBgAcaMGQMAqKiowMqVKxGLhTlTceTIEdx+++3YvXt3kP1f\nCHQOSoaVeDyOVatWobS0FKNGjcLChQuDZWlqasLatWtx7bXXYsaMGcFynM+MZP8DzF4CMLb7jwAQ\nwH0kX8iP+SWAfyC5q595WGhfIgPR2dmJSy65BEeOHAkdpYuZgSRuvvlmrF27NnQc9/LPV8Ejr3ih\nASSnRxMJWL58edf9dDqNdDod1dRyAYnH42hpacH+/fuD5ti+fTuWLVuGeDyOVCqFBx98ELfeemvQ\nTF5lMhlkMplz/r2CK6gBTZJbQX2b5G/6GaMVlJxXWltbMX/+fNx999245ZZbUFpaGjrSsDHQFVRR\nBWVmNwD4MYCLAZwE0EhyVh9jVVAiAmCICupcqKBE5KyBFpS+xRMRt1RQIuKWCkpE3FJBiYhbKigR\ncUsFJSJuqaBExC0VlIi4pYISEbdUUCLilgpKRNxSQYmIWyooEXFLBSUibqmgRMQtFZSIuKWCEhG3\nVFAi4pYKSkTcUkGJiFsqKBFxSwUlIm6poETELRWUiLilghIRt1RQIuKWCkpE3FJBiYhbRRWUmT1k\nZm+ZWaOZ/YeZfSqqYCIixa6g/gvAFSSvBrAfwD8VH2noZDKZ0BE+xmMmwGcuZRoYj5kGqqiCIvnf\nJLP5zdcATCw+0tDx+MJ5zAT4zKVMA+Mx00BFeQ7qVgANEc4nIhe4eKEBZvYSgLHdfwSAAO4j+UJ+\nzH0AOkg+MygpReSCZCSLm8DsFgC3A7ie5If9jCtuRyJyXiFphcYUXEH1x8zqAPwjgL/pr5wGGkZE\npLuiVlBmth9AAsD/5n/0Gsm/jyKYiEjRh3giIoMlyJXkZvZtM8ua2egQ+++R5UEze8PMdpvZZjMb\n5yCTuwtgzexrZtZsZmfMbErgLHVmts/MWs3s3pBZzjKzn5rZUTPbEzrLWWY20cy2mtleM2sys3sc\nZCozs1/lP29NZlbf3/ghLygzmwjgbwG8M9T77sNDJP+KZC2AFwH0+4QNEY8XwDYB+CqAV0KGMLMY\ngNUAZgK4AsACM7s8ZKa8J5HL5EkngKUkqwF8AcA3Qz9X+XPV1+U/b1cDmGVmU/saH2IF9UMA3wmw\n316RPNVtMwUg29fYoeLxAliSLST3I3eZSUhTAewn+Q7JDgDrAHwlcCaQ3AHgROgc3ZE8QrIxf/8U\ngLcATAibCiB5On+3DLkv6vo8zzSkBWVmcwEcINk0lPstxMz+2cx+D2AhgAdC5+lBF8B+1AQAB7pt\n/wEOPnTemdmlyK1YfhU2SW4VbGa7ARwB8BLJnX2NLeoygz523teFnd8D8F0A03s8NugKXWxK8nsA\nvpc/n3E3gOWhM+XHDOkFsAPJ5EBv7xl909MPM6sAsAHAkh5HDEHkjw5q8+dWnzezapJ7exsbeUGR\nnN7bz82sBsClAN4wM0PusOU3ZjaV5LGocwwkUy/+HbnzUMsHL01OoUz5C2C/DOD6wc5y1jk8TyH9\nAUBVt+2JAA4FyuKemcWRK6d/I/mfofN0R/I9M8sAqAPQa0EN2SEeyWaS40heRvLPkXuj1Q52ORVi\nZp/ttvkV5I7Tg+p2AezfFboANpCQ56F2AvismU0yswSArwP4RcA83RnCn6Pr6QkAe0n+KHQQADCz\ni81sVP5+OXJfmO3ra3zIf7CO8PFirjKzPWbWiNyTtSR0IAA/BlAB4CUz22Vmj4YOZGY3mNkBANMA\nbDSzIOfFSJ4BcBdy33S+CWAdSQ9/VJ4B8D8AJpvZ781skYNM1wL4BoDr81/r78r/8QupEsAv85+3\nXwHYQnJTX4N1oaaIuKV/8ldE3FJBiYhbKigRcUsFJSJuqaBExC0VlIi4pYISEbdUUCLi1v8B3sU8\npss0Ar0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c1a5cf8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "rw_trimmed = trim_all_loops(rw)\n",
+ "plot_trace(trace_tour(rw_trimmed))\n",
+ "len(rw), len(rw_trimmed), rw_trimmed, trace_tour(rw_trimmed)[-2:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1281,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(1, Step(x=0, y=0, dir=<Direction.RIGHT: 2>))"
+ ]
+ },
+ "execution_count": 1281,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAASgAAAEACAYAAAAA+OtCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE8BJREFUeJzt3H9wldWdx/H3NwmXxETQFaUBatCq26G4iK7Fjq29UrNa\nrbY1TIFSddgdwfqj2q6sbu00pO1apsPo2Hac6YirZkctU9cqdqtS7V5FZlALQmFoA6NFVAS6CkVB\nSUi++0dCJiAk0fsk55vk85q5M/chh/N8cnP5cJ7nHjB3R0QkopLUAUREDkcFJSJhqaBEJCwVlIiE\npYISkbBUUCISVmYFZWYlZrbKzJZkNaeIDG1ZrqCuB9ZnOJ+IDHGZFJSZjQMuBBZlMZ+ICGS3grod\nmAdoW7qIZKbogjKzi4Bt7r4asI6HiEjRrNh/i2dmtwLfAPYBFcCRwMPufvlB47S6EpFO7t7jYqbo\nFZS7f9fdj3f3E4EZwO8PLqcuY0M96uvrk2cYCJmi5lKmgZupt7QPSkTCKstyMnd/BngmyzlFZOga\n0iuofD6fOsIHRMwEMXMpU+9EzNRbRd8k7/WJzLy/ziUisZkZ3h83yUVE+ooKSkTCUkGJSFgqKBEJ\nSwUlImGpoEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhYKigRCUsFJSJhqaBEJCwVlIiEpYISkbBU\nUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhKWCEpGwVFAiEpYKSkTCKit2AjMbDjwL5Drm\ne8jdG4qdV0TE3L34ScyOcPc9ZlYKLAe+5e4vHDTGsziXiAx8Zoa7W0/jMrnEc/c9HU+H076KUhMN\nUsuWLeO5555LHeMATU1NPPzww6ljSB/IpKDMrMTMXgK2Ar9z9xezmFfiWLZsGWeddRZf+MIXmDt3\nbuo4QHsx1dXVMWnSJKZPn546jvSBTC7xOiczGwE8Alzr7usP+pou8QaoM844gzVr1tDa2po6ygHM\nDDOjra0tdZROjY2NXHbZZaljhNfbS7xMC6rjxN8H3nX32w76da+vr+88zufz5PP5TM8tfcPMGDt2\nLDt37mT37t0AXHnllUkzVVVVsXz5ctatW8eePXuSZ2ppaeH+++9n1KhRbN68mbKyoj9/GlQKhQKF\nQqHzuKGhoVcFhbsX9QBGASM7nlfQ/onehYcY5zIwAf7aa6/54sWLvaamxmtra1NH6rRs2TKfMmWK\njx49OmmOW2+91SsqKryqqsobGxuTZhkIOvqgx34pegVlZqcC99F+P6sEWOzu/3GIcV7suSQNM+ON\nN95gzJgxtLW10dbWFm6F0NzcTC6XS3Lu3bt3M2bMGHbt2gXA2LFj2bRpU7jXKJLeXuIV/Qq6+1rg\n9GLnkYGhpKSEkpJ4+3tTlRPAxo0bO8sJYOvWrWzdupVx48YlyzRYxHuniQwwp512Gs3NzQAcd9xx\nvPfeeyqnjKigRDIwbNgwAEpLSzufS/FUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhKWC\nEpGwVFAiEpYKSkTCUkGJSFgqKBEJSwUlImGpoEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhYKigR\nCUsFJSJhqaBEJCwVlIiEpYISkbBUUCISlgpKRMJSQclhbd++nRUrVgDw4osv8sYbbyROJENN0QVl\nZuPM7Pdmtt7M1prZt7IIJuldd911fP7znwdg+vTpzJgxI3EiGWqyWEHtA77j7hOAzwDXmNknM5h3\nyHv55ZfZs2dPsvPPmTOHYcOGATBs2DDmzp2bLIsMTUUXlLtvdffVHc/fBf4EjC123qGsqamJuro6\nTj75ZObNm5csx9SpUzn55JMBGDlyJDNnzkyWRYYmc/fsJjMbDxSAiR1l1fVrnuW5BqN9+/Zx0UUX\n8eyzz9LS0kJra2vqSJ0aGxu57LLLUscIrby8nJNOOol169aljhKemeHu1tO4sgxPWAU8BFx/cDnt\nN3/+/M7n+XyefD6f1ekHhSeffJKlS5dSXl6eOsoBpk2bptVTD/bt28fIkSMBcHfMevyzN6QUCgUK\nhcKH/43uXvSD9qJ7gvZyOtwYl+4tWbLEAW9qavK6ujo3M7/66qtTx5JeaGxs9MrKSq+srPSnn346\ndZzwOvqgx27J5BLPzBqB/3P373QzxrM412D22GOPcckll+wvdF5++WWqq6s54ogjEieT7uzbt4/x\n48d3bsOYPHkyK1eu1CqqG729xMtim8HZwCxgqpm9ZGarzOyCYucV+MQnPqFyGgD+8Ic/HLBH7KWX\nXmLz5s0JEw0eRd+DcvflQGkGWUQGpClTprBixQrOOussAFatWkVNTU3iVIODdpKLFMnMmDJlCgDV\n1dVMnjw5caLBQwUlImGpoEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhYKigRCUsFJSJhqaBEJCwV\nlIiEpYISkbBUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhKWCEpGwVFAiEpYKSkTCUkGJ\nSFgqKBEJSwUlImGpoEQkLBVUEK2trbS0tADQ0tJCW1tb4kQi6WVSUGZ2t5ltM7M/ZjHfUDRp0iTq\n6uoAyOVyzJ8/P20gkQCyWkHdA5yf0VxDSktLC+7O5z73OXK5HACVlZXk8/lkmdra2jpXc5E0Nzen\njvChDLS8EWVSUO7+HLAji7mGmsmTJzNx4kQ++9nPYmYAnHLKKZx77rnJMs2ePZtx48axaNGiMEV1\nzz33cPTRRzN//nx27dqVOk63NmzYwLRp0zjqqKPYtGlT6jgDmrl7NhOZ1QCPufs/HObrntW5stDc\n3ExDQwN//etfk+a46667gPZVUy6XY8eOHVx00UWMGTMmRKbKykquuOIKdu7cmSwPwMMPP8yOHTsY\nPnw4JSUlzJ07l4ULF3aWegRmxhFHHNG5Am1tbeX888/n+OOPT5rp5ptv5oQTTkiW4VDMDHfv8YfX\nrwVVX1/feZzP55NexsyaNYsHHngg2fkP1vEDSx3jA3K5HMcccwxvvvlm6iidr1F5eTnvv/8+d955\nJ9/85jdTx+p02223cdNNN1FSUhLq8u7oo49m+/btlJWVJctQKBQoFAqdxw0NDb0qKNw9kwdQA/yx\nm697FFu2bPGKigqvqKjwxsbGpFmOPfZYz+VyXltb67fffrtHeJ1qa2u9rKzMJ0yY4L/97W+9ra0t\ndST/8Y9/7KWlpX7cccf5XXfd5YDX19enjvUB27dv9xtuuMErKiq8tLTU165dmyxLpPf5wTre5z33\nSm8G9WoiGA+s7ebrff0999pVV13luVzOAR87dqy3tLQky/L444/7qlWr3N19yZIlIQpq9erVYYpp\nvy1btvj999/vzc3N7u5hC2q/7du3+3333deZN4VI7/OD9WtBAQ8AW4C9wGZg9iHG9MO33bN33nnH\ny8rKvKyszEtLS72kpMR//etfp47l7nEKaiCIXlCpRX6fu/e+oLL6FO/r7j7G3Ye7+/Hufk8W8/aF\nqqoq7r33XkpLS2ltbeWOO+5Iei9MpC8Mlvf5kNxJPmvWLGprawG49tprOeqooxInEsneYHifD8mC\nEpGBQQUlImGpoEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhYKigRCUsFJSJhqaBEJCwVlIiEpYIS\nkbBUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhKWCEpGwVFAiEpYKSkTCUkGJSFgqKBEJ\nSwUlImGpoEQkrEwKyswuMLM/m9kGM7spizmHmksvvZSvfe1rANTU1PCLX/wicaKYHn30UWpqagBo\naGggn8/T1taWOJX0laILysxKgJ8D5wOfAmaa2SeLnXeoaW5uZu/evQBs27aNysrKxIliqqqqYuvW\nrZ3Hu3btwswSJpK+lMUK6tPARnd/1d1bgF8CX85g3n7R1tbG4sWLmTRpEs8//3yyHAsWLKC8vByA\nUaNGMXPmzGRZIps6dSoTJkwAoLKykoULFyYrqA0bNjBp0iQWLVpES0tLkgyDXVkGc4wFXuty/Drt\npRWauwNw4okn8tZbb9Hc3MwjjzxCWVkWL8lHc8YZZ7B8+XIWLFhAaWlpshyRmRkLFy6ktraWcePG\nMWLECFauXJkky7Jly2hqauKGG27glltu4Yc//CGzZ89m2LBhSfIMRrb/D+pHnsBsGvBP7j6n4/gb\nwJnufv1B47y+vr7zOJ/Pk8/nizp3MRYvXsyMGTMwM4p9DbL08Y9/nL/85S8qqG64O6effjqrV69O\nHaXT/vfR5Zdfzn333Zc6Tqc5c+bw5JNPsmnTpqSXwoVCgUKh0Hnc0NCAu/ccyN2LegBnAU90Ob4Z\nuOkQ4zyapqYmr6ur8/Lych82bJjfe++9qSPJALJ06VLP5XJeUVHhtbW1Dnh1dXXqWJ3eeecdP/LI\nI3348OH+9NNPp45zgI4+6LFfsrgH9SJwkpnVmFkOmAEsyWDePnfKKafw0EMPsWbNGmbPns3ZZ5+d\nOpIMIKeeeipXXHEFy5cvZ+nSpanjfMBPf/pT9u3bx969e7nxxhtDXSn0VtGXeNC+zQC4g/ab7ne7\n+4JDjPGB+AKJ9JaZUV1dzZYtW1JHYc+ePYwePZp3330XgJKSEp566inOPffcxMnadVwS93iJl8k+\nKHd/wt3/3t1PPlQ5iUj/Ki8vZ9asWZ3Hl156KePHj08X6CPKZAXVqxNpBSWDXKQV1H4XX3wxv/nN\nb8Jd3vXrCkpEpC+ooEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhYKigRCUsFJSJhqaBEJCwVlIiE\npYISkbBUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhKWCEpGwVFAiEpYKSkTCUkGJSFgq\nKBEJSwUlImGpoEQkLBWUiIRVVEGZ2TQzW2dmrWZ2elahRAaSt99+m+nTpwPw5ptvcvnll/P+++8n\nTjU4FLuCWgt8FXgmgywiA9LWrVv51a9+1Xn84IMP8re//S1hosGjqIJy9yZ33whYRnlEBpwJEyZw\n4YUXUlJSQi6X48orr2T06NFJsjQ3N3PNNdfw+OOP4+5JMmTJsvgmzOx/gX9191XdjPHB8IKJHMq6\ndes488wzAXjllVeorq5OkuPtt9/m2GOPpaKigpqaGqqqqnjhhRfClZWZ4e49LmzKejHR74Cufx0Y\n4MAt7v7YR48oMnhMnDiRKVOm8MwzzzBmzJjUcdi9ezfr168HYPz48WnDFKHHgnL32qxONn/+/M7n\n+XyefD6f1dQiyT311FOsWbMmaYadO3dy3nnnUVFRQUlJCfPmzeO6665LmgmgUChQKBQ+9O/L8hLv\nRndf2c0YXeKJ9LH33nuPc845hy996Ut8+9vfZsSIEakjHVJvL/GKKigz+wrwM2AUsBNY7e5fPMxY\nFZSIAP1UUB+GCkpE9uttQWknuYiEpYISkbBUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSI\nhKWCEpGwVFAiEpYKSkTCUkGJSFgqKBEJSwUlImGpoEQkLBWUiISlghKRsFRQIhKWCkpEwlJBiUhY\nKigRCUsFJSJhqaBEJCwVlIiEpYISkbBUUCISlgpKRMIqqqDM7Cdm9iczW21m/21mI7IKJiJS7Apq\nKfApdz8N2Aj8e/GR+k+hUEgd4QMiZoKYuZSpdyJm6q2iCsrdn3L3to7DFcC44iP1n4g/uIiZIGYu\nZeqdiJl6K8t7UP8MPJ7hfCIyxJX1NMDMfgeM7vpLgAO3uPtjHWNuAVrc/YE+SSkiQ5K5e3ETmF0B\nzAGmuvvebsYVdyIRGVTc3Xoa0+MKqjtmdgHwb8A53ZVTb8OIiHRV1ArKzDYCOeCtjl9a4e5XZxFM\nRKToSzwRkb7SrzvJzazezF43s1Udjwv68/zdMbMbzazNzP4uQJYfmNkaM3vJzJ4ws48FyBRuU66Z\nTTOzdWbWamanJ85ygZn92cw2mNlNKbPsZ2Z3m9k2M/tj6iz7mdk4M/u9ma03s7Vm9q3uxqf4py63\nufvpHY8nEpz/A8xsHHAe8GrqLB1+4u6T3H0y8D9AfepAxNyUuxb4KvBMyhBmVgL8HDgf+BQw08w+\nmTJTh3tozxTJPuA77j4B+AxwTXevVYqCiniz/HZgXuoQ+7n7u10OK4G2w43tLxE35bp7k7tvJP17\n6tPARnd/1d1bgF8CX06cCXd/DtiROkdX7r7V3Vd3PH8X+BMw9nDjUxTUNR2XCYvMbGSC8x/AzC4G\nXnP3tamzdGVmPzKzzcDXge+nznMQbco90FjgtS7Hr9PNHzppZ2bjgdOA5w83pqhtBoc56WE3dgJ3\nAj9wdzezHwG3Af+SdYYPkel7wHeB2oO+1ud62gDr7t8DvtdxP+M6YH7qTB1j+nVTbm8yBXCo94w+\nfeqGmVUBDwHXH3TFcIDMC8rda3seBcBdQL+8wQ6XycwmAuOBNWZmtF+2rDSzT7v79hSZDuFB2u9D\nze+7NO16ytSxKfdCYGpfZ9nvQ7xOKb0OHN/leBywJVGW8MysjPZy+i93f7S7sf39KV7XT6MuBdb1\n5/kP5u7r3P1j7n6iu59A+xttcl+XU0/M7KQuh1+m/To9qS6bci/paVNuIinvQ70InGRmNWaWA2YA\nSxLm6cpIf4/uYP8JrHf3O3oa2K/7oMyskfZrzjZgEzDX3bf1W4AemNkrwD+6+9uJczwEnEL76/Qq\ncJW7v5k4U7hNuWb2FeBnwChgJ7Da3b+YKMsFwB20/6V/t7svSJGjKzN7AMgDxwDbgHp3vydxprOB\nZ2n/BNY7Ht893Cf62qgpImHpv/wVkbBUUCISlgpKRMJSQYlIWCooEQlLBSUiYamgRCQsFZSIhPX/\nL6Qd6rXaC/YAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f40275e2908>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "rw_trimmed = rw\n",
+ "mks = len(mistake_positions(trace_tour(rw_trimmed)))\n",
+ "while mks >= 4:\n",
+ " rw_trimmed = trim_loop(rw_trimmed, random_mistake=True)\n",
+ " mks = len(mistake_positions(trace_tour(rw_trimmed)))\n",
+ " \n",
+ "# rw_trimmed = trim_all_loops(rw)\n",
+ "plot_trace(trace_tour(rw_trimmed))\n",
+ "mks, trace_tour(rw_trimmed)[-1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1282,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def trim_some_mistakes(tour, mistake_limit):\n",
+ " trimmed_tour = rw\n",
+ " mistake_count = len(mistake_positions(trace_tour(trimmed_tour)))\n",
+ " while len(mistake_positions(trace_tour(trimmed_tour))) >= mistake_limit:\n",
+ " trimmed_tour = trim_loop(trimmed_tour, random_mistake=True)\n",
+ " return trimmed_tour"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1299,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(1, Step(x=0, y=0, dir=<Direction.RIGHT: 2>))"
+ ]
+ },
+ "execution_count": 1299,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQQAAAEACAYAAABVmQgcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGBtJREFUeJzt3X9wVeWdx/H3NyH8llgFuUQqiFtkF4qCLbU4tmnrSmpH\nats/0JbBdccfnSq1u+0uWttB2xmVndmtMtZORdaxNHYFRQy1q4AQf9UuUrSAP4I0JATyS6ugFBIS\n7rN/5N5n0ojec27OuT+Sz2vmDrnJc5/ne3LP/eTcy/OcY845REQASvJdgIgUDgWCiHgKBBHxFAgi\n4ikQRMRTIIiIlzEQzGylmbWZ2Y5e31tqZvvNbHvqVhVvmSKSC0GOEB4A5p3g+//lnJuduj0ZcV0i\nkgcZA8E59zzw7gl+ZNGXIyL51J/PEK43s1fM7H4zK4+sIhHJm2wD4V7gLOfcuUAr8F/RlSQi+TIk\nmwc5597qdXcFsP7D2pqZFkuI5IlzLtRb+6BHCEavzwzMLNHrZ18HdmUoKtbb0qVLi36MgbANGqNw\n+ncuu7/DGY8QzOwhoBI41cz2AUuBL5jZuUASaACuy2p0ESkoGQPBOffNE3z7gRhqEZE8GxAzFSsr\nK4t+jIGwDRqjcPrPlmX7XiPwAGYu7jFE5IPMDBfTh4oiMggoEETEUyCIiKdAEBFv0AbC8ePHY22f\nTCZDTw4JO4ZI1AZdIDQ3N3PmmWcyZMgQzCzQ7cILLwzVftKkSZSWllJSUhKofUlJCRdccEGoMebO\nnUtra2u+f50ywAy6QPj+979PQ0NDqMeYhVvpHbZ9No958cUXueGGG0KPI/JRslrcVMwOHz4MQHd3\nN6WlpYEfd/z48VDtk8mk/2se9Rjt7e2MHz+e7du3B+5bJIhBFwhpYV7c2bQvKQl/8BV0jNNOOw2A\nRYsWhR5D5KMMurcMIvLhFAgi4ikQRMRTIIiIp0AQEU+BICKeAkFEvEEXCDt27MjcSGSQKvqJSS0t\nLdx+++3Mnj2bmTNnZmy/b98+ANra2hg/fnzc5YkUlaIPhKlTp/rpyEF9+ctfLuow6O7uZuzYsQwb\nNizfpcgAU/TnVDQzFixYwPLly/2U3oFu165dfPKTn2TEiBEcOXIk3+VIgRq051ScNm3aoAkDgBkz\nZgBw3XW6HIZEa0AEwmBVXq5r7Eq0FAgi4ikQRMRTIIiIp0AQEU+BICKeAkFEPAWCiHhFHQh79uwB\nYNmyZXmuJD8OHTpEd3d34PZHjx6lpaUlxoqk2BV1ICQSCcyM66+/Pt+l5MVdd91FWVlZ4Iu7jBw5\nkoqKisDtJ0+eHHqdiBS3ol7cNHr0aJxzjBo1Kt+l5NyWLVu4/PLLOfnkk/n85z+fsb1zjiNHjlBd\nXc21116bsf2ePXvYvHkzy5cv54c//GEUJUsRKOpASMvmSknFrrKyMqtLuf36178O1K6+vp6zzjqL\nWbNmhR5DildRv2WQ+EyZMgWAc889N8+VSC4pEETEUyCIiKdAEBFPgSAingJBRDwFgoh4CgQR8Yo6\nEI4ePQrA5s2b81yJyMBQ1DMVm5qaAHj99dcDnYH48ccfp7y8nHnz5tHZ2ZmxfWtrKzU1Ndxzzz2D\ndr1E3Kfpl8JS9NdluPLKK/nVr34VW/9p7e3tjBs3LvZxCkX62g9PPPEEl1xySb7LkSwMyusyPPjg\ngzjnAt2OHj3KgQMHArd3zlFfXw8QapnxQFBXVwfAtm3b8lyJ5FLRHyHkgpnR3NzMhAkT8l1KTg3W\n7R4oBuURgohER4EgIp4CQUQ8BYKIeAoEEfEyBoKZrTSzNjPb0et7HzOzDWZWZ2ZPmZkuQywyAAQ5\nQngAmNfnezcBm5xzZwObgZujLkxEci9jIDjnngfe7fPtrwIPpr5+ELgs4roKRldXFwAdHR15rkQk\nftl+hnCac64NwDnXCgzYOb2rVq0C4N577w3UfuvWrbz88suB+z906BBr1qzxwVNoampq/CKyIJ57\n7jleffXVwO3feustHnvsMZLJZKD2yWSSdevW0d7eHniMuro6tmzZErj90aNHWb16dajtHjCCTN8F\nJgE7et1/p8/P//IRj3XFrLm52Q0dOtQBsd4mTZqU7039gLi3GXAjRozIyThx32699dZ8P10fkHrt\nhZqqH2jqsplNAtY752am7r8OVDrn2swsAWxxzv39hzzWLV261N+vrKyksrIy45iFpLW1lQMHDgRq\nu3r1aioqKjj//PMZMiTzYtL6+npWrFjBxo0bC25l4RtvvMEdd9zBggULGD9+fMb2x44d4+mnn8bM\nqKqqCjRGa2sr1dXVLF68mKFDh2Zs39XVRXV1NbNnz2bmzJkZ2yeTSXbu3MlLL73E1VdfHaimv/71\nr6xcuTLQdh87doy5c+f6sfJ5jZDa2lpqa2v9/dtuuy301OWggTCZnkD4ZOr+MnqOEpaZ2RLgY865\nmz7ksa7QdvRCs379eubPn19wgSDBpEOg0J6/WNYymNlDwO+BqWa2z8yuAu4E/tHM6oCLUvdFBq1E\nIpHvEiKR8ZjWOffND/nRRRHXIiJ5ppmKIuIpEETEUyCIiKdAEBFPgSAingJBRDwFQgF49NFHAdi9\ne3eeK5HBToFQANKTWgp1gZN8tJEjRzJ27Nh8lxEJBUIBmDNnDgDTp0/PcyUSVnd3N0eOHGH//v0F\nN3U5GwqEAlBWVpbvEqSfDh48mO8SIqFAEOmH9IrWRCKR15WOUVEgiIinQBART4EgIp4CQUQ8BYKI\neAoEEfEUCCLiKRAKwN69ewHo7OzMcyUy2GU+T7iEdvjwYX72s59RUlIS6HTkDz/8MNBzGu158/pe\nNU8kdwKdhr1fAwzC07BXVlbyzDPPhHrMpEmT2LNnT6BrOUhhOe+885gwYQK//e1v813K38jmNOwK\nhBiYGaeccgrPPvusFiwNcJ2dnQwfPhzI/4Va+orlugySnaFDhyoMBoFhw4YBUFpaWlBhkC0FgkgE\nxo0bGNc7ViCIiKdAEBFPgSAingJBRDwFgoh4CgQR8RQIIuIpECKWXqDU2to6IE7LLcEkk0nef//9\nfJfRbwqEiA0dOpTTTz+dT3/60wNi5ppkNmXKFNrb2xkzZgxmFuhWVVVVkH8wtJYhBmbGpEmTaGho\nyHcpkgO7d+9m0aJF7Ny5k4ULF2Zsv2XLFt58802eeeYZPve5z8VWlxY3FQgzI5FI0NLSku9SpADd\nfPPN3Hnnnbz99tuceuqpsY2jxU0iRWDu3LkAsYZBthQIIuIpEETEUyCIiKdAEBFPgSAingJBRDwF\ngoh4CoSIpSdhtba25rkSkfB0EYAAqqurWbhwIV/4whf4xCc+8ZFtjx8/7r92zmk9g3xAIc/cVSAE\nkJ6fvmXLFrZs2RLoMatWrVIYyAnt27cPgJaWFiZMmJDnav6WAiGgP/zhD3zmM5/JdxkyAKxbtw6A\nhoaGggsEfYYQ0BlnnJHvEmSAuPHGGwH47Gc/m+dKPkiBICKeAkFEPAWCiHgKBBHxFAgi4vXrvx3N\nrAE4BCSBLufcnCiKEpH86O88hCRQ6Zx7N4piRCS/+vuWwSLoo6B1dXUB0NHRkedKROLX3xezA54y\ns5fM7JooCio0q1atAuDee+8N1H7r1q28/PLLgfs/dOgQa9as8cEjkk/9Og27mSWcc61mNg7YCNzg\nnHu+T5uiPg17S0sLkydP5tixY7GOo+s4DB6PPfYYX//61+nq6mLIkPhWD2RzGvZ+VeOca039+5aZ\nPQbMAZ7v2+7WW2/1X1dWVlJZWdmfYXNqwoQJNDY2cuDAgUDtV69eTUVFBeeff36gJ7u+vp4VK1aw\ncePG/pYqRWLFihUAPP3008ybNy+yfmtra6mtre1XH1kfIZjZSKDEOXfYzEYBG4DbnHMb+rQr6iOE\nXFi/fj3z588v6GWxEp3ly5dz44030tHRwbBhw2IbJ9dHCOOBx8zMpfqp7hsGIvJBZ555JkCsYZCt\nrAPBObcXODfCWkQkzwb0fxmKSDgKBBHxFAgi4ikQRMRTIIiIp0AQEU+BEFDv6y1E7dFHHwVg9+7d\nsY0hEoQCIYBvf/vbDBkyBDMLdJs8eTJ//OMfA/efSCQAtMBpkCjk51mBEMAvf/nLUO0bGxu56KKL\nAk9FnjOn57wy06dPD12bFJ+tW7cC8Oqrr+a5kg9SIATU1NSEcy7jLZ3+Bw8eDNx3WVlZXGVLAUpf\n97MQn3cFQkClpaWB2qVXOCYSCV3KTU7oG9/4BgBTp07NcyUfpEAQEU+BICKeAkFEPAWCiHgKBBHx\nFAgi4ikQRMRTIGSQnmCUnkwSh7179wLQ2dkZ2xgiQcR3UvgcaWlp4fbbb2f27NnMnDkzY/tkMsmO\nHTvYtm0bV199dcb269atA+Dhhx9m1qxZ/a73RJ588kmg5zTaUZ6WO9e6u7v505/+FKjtn//8ZzZs\n2MCPfvQjJk+eHG9hBeqKK67gu9/9LkOHDs3YdvTo0Zx99tnxFxVkOm5/bj1DxGf06NGOnitIxXo7\ncOBA4Jpmz57tvvKVrwRuv3btWge4rq6ubH4FBaOysjKr3+1gs3fvXjd8+PDQv6eVK1eGGif1uw33\neg37gNADxPyEA27BggWura0t8GPq6urc5s2bY6mno6PDP4HJZDLQY2pqaor+hRF2uw8ePOiWLFlS\n9Nudrfb2drd27Vp3/PjxjG137tzpADdixIhQY2QTCEX/lgFg2rRpnHbaaYHbT506NbZ55Olz7ZeW\nlg6qtQxht7u8vJwLLrgg7rIK1rhx4/ja174WqO2MGTMAuO666+IsCdCHirEZN25cvkvIi8G63blQ\nXl4e+xgKBBHxFAgi4ikQRMRTIIiIp0AQEU+BICKeAkFEvIILhGQySUNDQ6C2e/bsAWDZsmUxVpSd\nZDLJ+++/H6jt3XffDcCLL74YZ0k5Eed2NzU1hbqmQUdHB83NzYHbQ89CMxfw9PkAf/nLX3jvvfdC\njVHICmqm4sGDB5kxYwYHDhwI9bjvfe97MVWUnSlTplBfX8+YMWNCPa7YF/lku91z584N3HbMmDGx\nvwArKipCB8natWsDzzzMVvqM3nGyMGmY1QBmLugY69evZ/78+QB861vfYtSoURkfM2XKFH7wgx8E\nPk16LuzevZtFixaxc+dOFi5cmLG9c44rr7yy6Kfyht3uzZs3s2fPHi699FImTJiQsf19993H9ddf\nH/gooaamhvLyci6++OJAS8tbW1upqalhyZIlvPvuu4HGuO+++wA444wzaGxsDPSYsOrq6pg2bRrn\nnXce27ZtC/w4M8M5F2r+fEEGQtw1SWG4+eabufPOO3n77bc59dRT811O1syMRCJBS0tLLP0fPXqU\nkSNHcuGFF/Lss8+GqitsIBTcZwgyeKTfKhRzGOTCiBEjAPjiF78Y+1gKBBHxFAgi4ikQRMRTIIiI\np0AQEU+BICKeAkFEvIIKhN///vdAz/xwkWKQnkQX54V8cqmg1jKk1zBcddVVgaeyfuc736G7uztQ\n/48//jjl5eVUV1fzqU99ql+1fpS33nqLn/zkJxw7dixj2+3bt/Paa6/xm9/8xk/bLlZht3vHjh05\nqCpevbf12muvzXjG6fTzvXjx4tDTo3Mi7Hnbw94Icd79xsZGV15eHuriFWPGjAl9wYuysrLgJ7cP\nKZlMuokTJw66C5Zku91VVVX5Lr3fli1bFnq7TzrppFDty8vL3f79+0PVRRbXZSiotQxhNTU1kUgk\nKCsrC9S+o6ODSy+9lE2bNsW2XqKzs5Phw4cDPUuBM/3FcM6xcuVKrrnmmqJew5HNdjc2Nhb9Cs+w\nstnusPt5WjZrGQrqLUNYH//4x0O1Hz58uN9p45K+YEkikQh0wRIzY/z48bHWlAvZbPdgCwPIbrvD\n7uf9UVAfKopIfikQRMRTIIiIp0AQEU+BICJevwLBzKrM7A0z221mS6IqSkTyI+tAMLMS4B5gHjAd\nuMLMpkVVmIjkXn+OEOYAbzrnGp1zXcD/AF+Npqz4FOI6icOHDwMU9cQkGRj6EwinA0297u9Pfa+g\npS8K0t7enrFtd3c3a9as4dChQ7HW9Itf/AKATZs2BWr/u9/9jqampswNUxoaGnjqqacCB06utlsK\nT39mKp5oOlrB/4n78Y9/zE9/+tNQswNHjRpFW1tboOtEAJxzzjlUVFQE7v+WW26hqqqKiy++OPBj\nSkpKSCaTgdtnI+7tlsKT9VoGMzsfuNU5V5W6fxM9iymW9Wnnli5d6u9XVlZSWVmZdcFR2LVrV6AL\nd7z33nvcf//9PPTQQzQ3NwdagRl2Tn9afX194NVvd911F5dddlngKbAvvPACzc3NXHbZZYHmw+dy\nuyU6tbW11NbW+vu33XZb7i7UYmalQB3wJaAF2Apc4Zx7vU+72BY35YqZBX5hpNtD8X8mMFi3e6DI\n6eIm59xxM7sB2EDPZxEr+4bBYJZIJPJdQl4M1u0eKPq12tE59yRwdkS1iEieaaaiiHgKBBHxFAgi\n4ikQRMRTIIiIp0AQEU+BkMELL7wAwBNPPBGofdzTiXMl7HbLwKBAyODIkSMAXHPNNZhZxltpaSkA\n48aNy2fZ/Zbe7jBGjhzJ2LFjY6hGcqWor8uQC845Fi9ezM9//vPAjznppJN47rnnOOecc2KsLF7O\nOUpKSmhqamLixIkZ23d3d1NWVsbJJ5/MO++8o7UMBSCbqcsKhIilF/YMhBdEmLUM6UAALW4qFIPu\nQi2FqKRkcL4LGzKkZ1cKeqEWKUyDc+8VkRNSIIiIp0AQEU+BICKeAkFEPAWCiHgKBBHxFAhyQgcP\nHgSgtbU1z5VILmlikpzQI488AsDdd9/N4sWLM7ZfvXp13CVJDmjqspzQ4cOHmThxYuirN91xxx3c\ndNNNMVUlYWgtg+TN1q1bKSsrY9asWfkuRVIUCCLiZRMI+lBRRDwFgoh4CgQR8RQIIuIpEETEUyCI\niDcgAqG2trboxxgI26AxCqf/bCkQCmSMgbANGqNw+s/WgAgEEYmGAkFEvJxMXY51ABH5UAW3lkFE\niofeMoiIp0AQES+ngWBmPzCzpJmdEnG//2Fmr5vZK2b2qJmNibDvKjN7w8x2m9mSqPrt1f9EM9ts\nZq+Z2U4z+27UY6TGKTGz7WZWE0f/qTHKzWxN6rl41cw+E3H//2Jmu8xsh5lVm9nQCPpcaWZtZraj\n1/c+ZmYbzKzOzJ4ys/IYxoh0nz3RGL1+Fvh1l7NAMLOJwEVAYwzdbwCmO+fOBd4Ebo6iUzMrAe4B\n5gHTgSvMbFoUfffSDfyrc+4fgM8C18cwBsCNwGsx9Nvb3cDvnHN/D5wDvB5Vx2ZWASwGZjvnZtJz\n+r/LI+j6AXqe395uAjY5584GNtP//elEY0S9z55ojNCvu1weIfwM+Lc4OnbObXLOJVN3/wBkvn55\nMHOAN51zjc65LuB/gK9G1DcAzrlW59wrqa8P0/MiOj3KMVI7xSXA/VH222eMk4ALnXMPADjnup1z\n70U8TCkwysyGACOB5v526Jx7Hni3z7e/CjyY+vpB4LKox4h6n/2Q7YCQr7ucBIKZXQo0Oed25mC4\nfwb+N6K+Tgeaet3fT8Qv1t7MbDJwLvB/EXed3ini/C+lKcDbZvZA6q3JfWY2IqrOnXPNwH8C+4AD\nwEHn3Kao+u/jNOdcW2rcVmBcTOOkRbnPetm87iILBDPbmHpvl77tTP07H7gFWNq7eYT9X9qrzS1A\nl3Puof5v0YfWGcuLysxGA48AN6aOFKLq9ytAW+ooxMjidx/QEGA28HPn3GzgCD2H3pEws5Pp+cs9\nCagARpvZN6PqP19i2GfT/Y4gi9ddZKdhd87944m+b2YzgMnAn8zM6Dk0+qOZzXHOtfe3/17jXEnP\nYfEXAxed2X7gjF73JxLBYWpfqUPgR4BVzrnHI+7+AmC+mV0CjABOMrNfOecWRTzOfnr+Gm1L3X8E\niPJD2IuAeufcOwBmthaYC0T6QkppM7Pxzrk2M0sAgffTMGLaZ9POIovXXexvGZxzu5xzCefcFOfc\nmfTsOLPChEEmZlYF/Dsw3znXGVW/wEvA35nZpNQn2pcDcXxK/9/Aa865u6Pu2Dn3Q+fcGc65KfTU\nvzmGMCB1iN1kZlNT3/oS0X6IuQ8438yGp3bwLxHdh5Z9j5xqgH9KfX0lEEVI/80YMe2zfoysX3fO\nuZzegHrglIj7fJOeT1G3p273Rth3FVCXGuOmGH4fFwDHgVeAl1P1V8X0u/88UBPjc3sOPSH6CrAW\nKI+4/6X0hMAOej7sK4ugz4foOerrpCd0rgI+BmxKPe8bgZNjGCPSffZEY/T5eaDXnaYui4inmYoi\n4ikQRMRTIIiIp0AQEU+BICKeAkFEPAWCiHgKBBHx/h97p9whN1x9kgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f402c0c5f98>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "rw_trimmed = trim_some_mistakes(rw, 4)\n",
+ "\n",
+ "plot_trace(trace_tour(rw_trimmed))\n",
+ "len(mistake_positions(trace_tour(rw_trimmed))), trace_tour(rw_trimmed)[-1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1300,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "patterns = [square_tour, cross_tour, quincunx_tour, heart_tour_func]\n",
+ "tours_filename = 'tours-with-mistakes.txt'\n",
+ "\n",
+ "try:\n",
+ " os.remove(tours_filename)\n",
+ "except OSError:\n",
+ " pass\n",
+ "\n",
+ "success_count = 0\n",
+ "while success_count < 100:\n",
+ " lc = trace_tour(random.choice(patterns)())\n",
+ " rw = guided_walk(lc)\n",
+ " if rw:\n",
+ " rw_trimmed = trim_some_mistakes(rw, random.randint(0, 15) + random.randint(1, 3))\n",
+ " if len(rw_trimmed) > 10:\n",
+ " with open(tours_filename, 'a') as f:\n",
+ " f.write(rw_trimmed + '\\n')\n",
+ " success_count += 1"
]
},
{