diff --git a/Flash_attention_puzzle.ipynb b/Flash_attention_puzzle.ipynb
new file mode 100644
index 0000000..8e46e9c
--- /dev/null
+++ b/Flash_attention_puzzle.ipynb
@@ -0,0 +1,803 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import numba\n",
+ "from numba import cuda\n",
+ "import math\n",
+ "from functools import partial\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=numba.NumbaPerformanceWarning)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%pip install -qqq git+https://github.com/chalk-diagrams/planar git+https://github.com/danoneata/chalk@srush-patch-1\n",
+ "!wget -q https://github.com/srush/GPU-Puzzles/raw/main/robot.png https://github.com/MPKonst/GPU-Puzzles/raw/flash_attn_puzzle/flash_attn_forward_algo.png https://github.com/MPKonst/GPU-Puzzles/raw/flash_attn_puzzle/lib.py"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from lib import CudaProblem, Coord"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Bonus: Forward pass of FlashAttention2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "[](https://colab.research.google.com/github/MPKonst/GPU-Puzzles/blob/flash_attn_puzzle/Flash_attention_puzzle.ipynb)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In the following you'll implement a simplified version of the forward pass of FlashAttention 2, as described in\n",
+ "Algorithm 1 in [FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning\n",
+ "](https://arxiv.org/abs/2307.08691).\n",
+ "\n",
+ " \n",
+ "\n",
+ "For this naive implementation, we can ignore several details, such as:\n",
+ "- not using optimised matmul operations that can leverage tensor cores\n",
+ "- not applying any within-warp optimisations\n",
+ "- skip storing of the \"logsumexp\" for rows (which is needed for the backward pass).\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\n",
+ "def flash_attn_forward_kernel_factory(cuda, tpb_x, hidden_dim):\n",
+ " \"\"\"\n",
+ " Assumptions: \n",
+ " 1) The kernel will be launched on a block_size (tpb_x, hidden_dim) on a grid size (?, 1)\n",
+ " 2) tpb_x < hidden_dim, so we have enough threads to compute the (tpb_x, tpb_x) matrix of attention logits\n",
+ " \"\"\"\n",
+ " def flash_attn_forward_kernel(out, q, k, v):\n",
+ " # this will be launched as a tpb_x x hidden_dim block with hidden_dim > tpb_x\n",
+ " local_i = cuda.threadIdx.x\n",
+ " local_j = cuda.threadIdx.y\n",
+ " i = cuda.blockIdx.x * cuda.blockDim.x + local_i\n",
+ " j = cuda.blockIdx.y * cuda.blockDim.y + local_j\n",
+ " seqlen = q.shape[0]\n",
+ "\n",
+ " # we assume that hidden_dim is small enough that this can be loaded\n",
+ " # into shared memory (we can reduce tpb_x, if not)\n",
+ " q_shared = cuda.shared.array((tpb_x, hidden_dim), numba.float32)\n",
+ " qkT_and_exp_qkT = cuda.shared.array((tpb_x, tpb_x), numba.float32)\n",
+ " k_shared = cuda.shared.array((tpb_x, hidden_dim), numba.float32)\n",
+ " v_shared = cuda.shared.array((tpb_x, hidden_dim), numba.float32)\n",
+ "\n",
+ " out_acc = 0.0\n",
+ " rowsumexp = 0.0\n",
+ " rowmax = 0.0\n",
+ "\n",
+ " if i < seqlen and j < hidden_dim:\n",
+ " q_shared[local_i, local_j] = q[i, j]\n",
+ "\n",
+ " num_tiles = (seqlen + tpb_x - 1) // tpb_x\n",
+ " for tile in range(num_tiles):\n",
+ " n_keys = tpb_x if tile != num_tiles - 1 else seqlen - (num_tiles - 1) * tpb_x\n",
+ " # FILL ME IN\n",
+ " # 1. read-in the tiles of keys and values (roughly 5 lines)\n",
+ " ...\n",
+ "\n",
+ " # 2. compute this tile of q@k.T (roughly 6 lines)\n",
+ " ...\n",
+ "\n",
+ " new_rowmax = qkT_and_exp_qkT[local_i, 0]\n",
+ " # 3. compute the new rowmax without updating the old one (roughly 7 lines)\n",
+ " ...\n",
+ "\n",
+ " # 4. exponentiate the attention weights with math.exp (roughly 2 lines)\n",
+ " ...\n",
+ "\n",
+ " new_rowsumexp = 0.0\n",
+ " # 5. compute the rowsumexp in the n_queries x n_keys block and \n",
+ " # update the running rowsumexp (roughly 8 lines)\n",
+ " ...\n",
+ "\n",
+ " new_out = 0.0\n",
+ " # 6. compute the output contribution and update the out_acc (roughly 5 lines)\n",
+ " ...\n",
+ " \n",
+ " # 7. Update the running rowmax (roughly 2 lines)\n",
+ " ...\n",
+ " # 8. Write the output to global memory (roughly 2 lines)\n",
+ " ...\n",
+ " return flash_attn_forward_kernel\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "# Flash Attention Forward\n",
+ " \n",
+ " Score (Max Per Thread):\n",
+ " | Global Reads | Global Writes | Shared Reads | Shared Writes |\n",
+ " | 0 | 0 | 0 | 0 | \n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ ""
+ ],
+ "text/plain": [
+ "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=69.696, height=46.57425520000001, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -3.552713678800501e-15,\n",
+ " 0.0, 1.0, -22.462127600000002), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.75), diagram=Primitive(shape=Text(text='Flash Attention Forward', font_size=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.2501), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0001), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -0.55,\n",
+ " 0.0, 1.0, -2.75), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.1), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 1.1), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.2), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 2.2), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.3000000000000003), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 3.3000000000000003), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.4), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 4.4), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.5), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.1,\n",
+ " 0.0, 1.0, 5.5), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Circle(radius=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Image(local_path='robot.png', url_path='https://raw.githubusercontent.com/minitorch/diagrams/main/robot.png'), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0008333333333333334, 0.0, 0.0,\n",
+ " 0.0, 0.0008333333333333334, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 8.7501), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 25.420166), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -21.12,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -7.5,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=1, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.5,\n",
+ " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, 0.5000499999999999), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -4.5,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -8.25), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.05), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
+ " 0.0, 1.0, -2.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyName(dname=('q', 0, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('q', 0, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('q', 0, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('q', 0, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('q', 0, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('q', 0, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('q', 1, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('q', 1, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('q', 1, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('q', 1, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('q', 1, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('q', 1, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('q', 2, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('q', 2, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('q', 2, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('q', 2, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('q', 2, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('q', 2, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('q', 3, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('q', 3, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('q', 3, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('q', 3, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('q', 3, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('q', 3, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('q', 4, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('q', 4, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('q', 4, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('q', 4, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('q', 4, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('q', 4, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 5.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -3.25), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='q', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.0), diagram=Primitive(shape=Spacer(width=2.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 8.5), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.05), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
+ " 0.0, 1.0, -2.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyName(dname=('k', 0, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('k', 0, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('k', 0, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('k', 0, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('k', 0, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('k', 0, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('k', 1, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('k', 1, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('k', 1, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('k', 1, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('k', 1, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('k', 1, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('k', 2, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('k', 2, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('k', 2, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('k', 2, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('k', 2, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('k', 2, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('k', 3, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('k', 3, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('k', 3, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('k', 3, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('k', 3, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('k', 3, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('k', 4, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('k', 4, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('k', 4, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('k', 4, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('k', 4, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('k', 4, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 5.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -3.25), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='k', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 12.5), diagram=Primitive(shape=Spacer(width=2.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 17.0), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.05), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
+ " 0.0, 1.0, -2.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyName(dname=('v', 0, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('v', 0, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('v', 0, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('v', 0, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('v', 0, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('v', 0, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('v', 1, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('v', 1, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('v', 1, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('v', 1, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('v', 1, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('v', 1, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('v', 2, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('v', 2, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('v', 2, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('v', 2, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('v', 2, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('v', 2, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('v', 3, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('v', 3, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('v', 3, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('v', 3, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('v', 3, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('v', 3, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('v', 4, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('v', 4, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('v', 4, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('v', 4, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('v', 4, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('v', 4, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 5.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -3.25), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='v', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n",
+ " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=2.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.5,\n",
+ " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -1.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0), diagram=Empty())), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.5), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.0), diagram=Empty())), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.5), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.0), diagram=Empty()))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.5,\n",
+ " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=2.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 9.0,\n",
+ " 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, 0.25), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.05), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
+ " 0.0, 1.0, -2.5), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=ApplyName(dname=('out', 0, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('out', 0, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('out', 0, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('out', 0, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('out', 0, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('out', 0, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('out', 1, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('out', 1, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('out', 1, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('out', 1, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('out', 1, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('out', 1, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 1.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('out', 2, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('out', 2, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('out', 2, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('out', 2, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('out', 2, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('out', 2, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 2.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('out', 3, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('out', 3, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('out', 3, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('out', 3, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('out', 3, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('out', 3, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 3.0,\n",
+ " 0.0, 1.0, 5.0)))), diagram2=ApplyName(dname=('out', 4, 0), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=ApplyName(dname=('out', 4, 1), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 1.0)))), diagram2=ApplyName(dname=('out', 4, 2), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 2.0)))), diagram2=ApplyName(dname=('out', 4, 3), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 3.0)))), diagram2=ApplyName(dname=('out', 4, 4), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 4.0)))), diagram2=ApplyName(dname=('out', 4, 5), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 4.0,\n",
+ " 0.0, 1.0, 5.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -3.25), diagram=Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='out', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)))))))), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Empty(), diagram2=Empty()), diagram2=Empty()), diagram2=Empty()), diagram2=Empty())), diagram2=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=