Files
bal-docs/docs/img/architecture.svg

215 lines
59 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" width="1920" height="1080" font-family="'Inter','Segoe UI',system-ui,-apple-system,sans-serif">
<rect x="0" y="0" width="1920" height="1080" rx="0" ry="0" fill="#eef1f4"/>
<image x="40" y="22" width="46" height="46" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAABY5UlEQVR42u1dd3xUVfb/zryZDKkEklACoYRQAtKrIAoiYgMRFAVXRF2wrIqNtay/xbKKiq4NFdayi0oRhdVVeodIL6EIhBICSYCQEEhPpp3fH+65+6YkmfemZCZ55/N5H0gy8959997zPf1cHRERNNLIz0RE0Ol02kQEGem1KdDIH2Sz2QAAy5cvx9mzZ6HT6aDJGg0ANGpA0t5iseCJJ57Avn37AAB2u12bHA0ANKrvZLfbodfr8fPPP+P06dPYs2ePAAaNNADQqJ6TTqeD3W7Hu+++C51Oh59//hkWiwWSJGkgoAGARvWZrFYr9Ho9Vq1ahe3bt8NoNOLgwYNIS0tz8A1opAGARvVU+hMR3nvvPfEzAHz88cfQ6XRaJCDY1ksLA2rkK7LZbJAkCdu2bcPQoUOFKaDT6aDX67Fjxw707dtXfE4jTQPQqB7SZ599JhifIwJWqxUvv/wyAC0aoGkAGtU7Ys9/VlYWrrrqKpSXlwP4n+ffYDDAarVi0aJFuOeee2C1WmEwGLSJ0zQAjeqL+g8A//jHP1BWVubi8bfZbNDpdHjqqadw/vx5SJKkaQIaAGhUH4iIYDAYUFRUhK+//tqtmk9E0Ov1yMvLw4MPPijMA00B1QBAo3qg/ut0Ovz444/Izc2tVrrbbDYYDAasWrUKL774IiRJgtVq1SZQAwCNQnoT6X/fRl988YVHYGEwGPDWW29h3rx5MBqNsFgs2iTWEWlOQI28tv0lScK+ffvQv39/t+q/y6bT6YSP4Ntvv8U999wDi8UCo9GoTaimAWgUavY/AHzzzTciEuDJd/j6wx/+gEWLFglNQJNHmgagUYgxf2lpKbp27YqcnBxFZb+cIEREmDdvHv74xz/CZrNBr9drGYOaBqBRsBM7/9avX4+cnBzBzEoBBACmTp2KV155BZIkQafTwWazadqABgAahQItWbJEdZ4/M7okSXj11Vdxzz33oLi4GJIkwWw2ayCgmQAaVSc1q/u/O1W7tv+rGYdOp0NBQQFSU1NRUFDgVdcfvV4PSZJgsVjQvXt3fPHFFxgwYIBwKHriW9BI0wDqBYPb7XbYbDZYrVZYrVbYbDbY7XbBdHzp9XpxSZJU7SX/nPz77p7DErk2RubMvw0bNqCgoMDrWn+73Q6LxQKDwYBDhw5h+PDh+Pjjj8W4tXwB/5CWjF3HkpwZm6VcbQ4wi8WCyspKlJeXo6ysDOXl5aiqqoLZbBZedL6fJEkwGo0wmUxo1KgRIiIiEBkZifDwcISHh9cqVWvy6vMY//Of//i0zNdqtUKSJFRWVuLJJ5/EmjVr8MEHH6BDhw6aNqCZAKHN8CzdOQ7ujkpKSpCXl4fs7GxkZWUhOzsb586dQ3Z2Ni5duoTLly+juLgYFRUVqKqqQlVVlUeS12AwICwsDEajEdHR0YiNjUXTpk0RHx+PVq1aoVWrVmjfvj1at26NpKQkNGvWDCaTyW03X/5dUVEROnfujLy8PJ83/eQ5slqtiI+Px+uvv45HHnnEASS0SIEGAEGvyjOzODM8ESE3NxfHjh3DwYMHcfjwYWRkZODMmTPIz8+H2WxWxCzupLBcG1CyzDExMWjWrBkef/xxTJ8+3aV+n39es2YNRo0aBb1e77fCHq4iBIBRo0bh7bffRs+ePQUQaBWFmgkQdEzP6recacrLy3H06FHs2rULO3bswP79+5GZmYmysrJqnWJyppYzsjMze2Kzu3P+Of/L4y8pKUFxcbFLSa+z+bJ+/XoxVn8BgNVqFf6O1atXY+vWrZgxYwaeffZZREdHa2aBpgEEj6R3lka//fYb0tLSsHHjRuzevRuZmZku35ersnIAqctlMRgMsNvtWLp0KcaOHeuiAfDYrr76auzcudOvAOA8VzzXXbt2xaxZszBmzBjhG2GHp0YaAPideCM6S/k9e/ZgxYoVWLduHQ4cOODivebPy9Nhg25T/Nee3717N/r16+fgDOT/5+TkoEuXLigrKwvooR9y3wAATJgwAW+88QZSUlJEZEJrN6ZMgmnkIdlsNrJYLGS328XvKioqaPXq1fTYY49R+/btCYDDZTAYSJIk0uv1Ln8Lxkun0xEAio6OppycHCIih/e1WCxERPTTTz8RAJIkqU7GKUkSGQwGAkCxsbE0a9YsqqqqEmOUj1mj6kkDAA8Z32q1Ovxu165d9Oyzz1KnTp1cGIgZnpmpLpiYL71eX+0l/xyPlYEqOTmZKisrqwWAl156SQBcXQKWHID69u1L69evF2N1XjONNABQRFarlWw2m/j5woUL9Nlnn9GQIUMcmJulkb+lPDM0P09++QJwdDodGY1GMhgMdN111wnwc54TIqIbb7yxTjUA53GHhYWJnx977DEqKCjQtAEPSIsCuCF2erEtuWfPHnz11VdYtmwZ8vLyXJxl/jjsgj3f7CC02+0OSUPVkTzxx2QyISwszCFbkIhgtVpF5h0nFpWVlcFqtYrmHAkJCWIu2P5nn0dFRQWOHTtW585KuVPSbDaLYqRPP/0Uq1atwvvvvy+chForcs0JWOsm4pZVzHDLly/Hp59+itWrVzt0t+XP+pLZmeF5s7pblrCwMCQkJKBVq1Zo06YNWrdujTZt2qB58+aIj49HXFwcoqOjERERgUaNGqFRo0YwGo3COy4HE5vNBovFgqqqKlRWVqKiogIlJSUoKipCdnY2UlJSMHDgQNHLT+4AzMjIQPfu3WGxWILy1F957sAjjzyCt956C40bN9aajmgAULPEB4DKykp89913mDNnjjjUkpnTEwnsKbFUrg5MEhMT0alTJ6SmpqJ79+7o3LmzYPbo6Og6nadVq1bh5ptvDlj4T+38Mmh1794dn3/+OQYOHKj1G3AGy4b88pxSKkkSqqqqsHDhQrz//vs4dOiQkCT8OW8lvrx4h1VwZp6wsDB06dIFffv2xaBBg9C3b1+kpKSgcePG1WorzmDknAmodIM7JxrxWN195uTJk4LJghUAOOXaaDTi0KFDGDZsGN577z089thjDinZDR0IGiQA8KY1GAyw2Wz47rvv8NZbbwnGl9vKvpL08mo7AEhOTsY111yD66+/HoMGDUJKSorbdGH+vDzdt6ZaAm8AylPKysoKGbOOE4TMZjP+9Kc/4fDhw/jwww9hNBrrnV/AXd2GBgBOjM9daQFgxYoVeOONN7Bt2zaf2vfscJNLer1ej/79++OWW27ByJEj0atXL4SHhzuMjR1wnB2o0+mCKtedN1d2dnZImngGgwGfffYZTpw4gcWLFyMuLq5e1BOwZiY/ik3JlxtMSI8pPT2dbr/9docwni9CeBxfl/9uwIAB9Oabb9KBAwdcwlFWq9Ul1BjMxOMfPnx40IQAlV6ct9CzZ086e/YsERGZzeaQ3tt2u53Ky8upoKCA7Ha7orBnvQYAu93ukMRz6dIleu6556hRo0YO8Xtv4uccO5czfnJyMs2YMYN2797tklBkNpvJarWGbGzabrdTjx49HJKGQu0yGo0EgDp27EinT58O6aQhHve3335Lb775pkOyVoMHAPlELF68mFJSUtxmkKllfHkWnF6vp5EjR9LixYuppKTEZRyhIuVrk/4Wi4U6dOgQ0gAgX/+uXbvSuXPnQhYEeMydO3emm2++WfF71EsAkEv9U6dO0V133eWA/t5IfL1e78D4cXFx9Pjjj9OuXbvqHdO7A4CysjJq3bq11wAQDOYDr2P//v2ppKSEbDZbSGlmXPvw6aefEgDq1KmT2/TtBgUAcvT7/PPPKT4+Xmw4bxlfvmk7dOhAs2bNEgUzPOmhrN57AgCXL1+m5s2bOxQOQUWxUWJiIiUkJAQNCNx1110hpQWwdrtv3z6KjIwUKeEHDx50m8Jd7wHAbreLScnKynJw8nlTsMI2Pv/crVs3mjt3LhUVFYlns11f3/0pDAAtWrRQDQB8RUVFiTWqa22A13f27Nkh4RRkyX/mzBlRgcq1EF999ZUiP0C9AAA52i1atEhsUG8cfFzVxz936dKF5s2bR2VlZQ4o3FAKTfg9i4qKvAYANh0mTZpEI0aMqHMQYH9OWFiYMOWC1Xxjxj558iR17dpVzB3P32OPPdZwAMButws0LC0tpYcfftgF1b1RCwFQq1at6O9//7uDY68hVpjx+1ZWVlLbtm298gFw+XGTJk3oyy+/pKioKK9NNF/6A6qqqoLKH8CmJYPSxo0bqVWrVg77nAFgyJAhDccHwKpaeno69enTR2xKbyQTT2RERAQ999xzlJeX5+BfaKilpfzedrudUlNTfeYEnD59Ov39738Pit4C/PyPP/5YkRT1t3bL47BarTRr1iwXppdrY82bN6crV654DAIhCQCcQENE9PXXX1N0dLTXUl/+3TFjxghnSkOV+DWBwNVXX+2TMKBer6ewsDDat29fUJgCLDwSExOpsLCwTrUAq9XqAEBbt26lIUOGOJgszoKO+0Wkp6d7bMYgFJmfE3yee+45hxf3Vup36NCBFi9erDF+LRGWsWPH+oRZ+fu33HIL5ebmUpMmTeq0k5J8THPnzg24FsCqvpzS09Np8uTJYn/XNOf8N97Dnow9pACAVf7CwkK69dZbheRWuxHlUv/xxx+nS5cuuWgYGrk6oB577DGfqey8Bj/88AOtXbvWJ7kavtAC+vTpExCTz263k9lsdmBWu91O69ato7vvvlt4952d0jWZMK+99lr9AwB+mSNHjlD37t0dQh9Q2VoLAF111VW0Zs0aFymnUfVr8OGHH/oMAHgtmjZtSmVlZfTiiy/WuT+Aazp27tzpl4gAS3rnvZaVlUUffPABDRgwQFXSFM/ZlClT6hcAsOTftGmTSB5Rw/zO6btTp04V8Xyz2ayp+x6aAMuXL/dpKjBvcE5lvemmm7wCeF85A5999lmH/ecLpne+18WLF2nhwoU0duxY4cuSm6ZKNCGex+HDh9cfHwCj2Pfffy+KeNRKB1Y3mzRpQgsWLBALEwze3lAg3lAnTpxwUE19mYzz/vvvk8VioS5dutSZU1BeJ+CtH8idXV9cXEzLli2jP/zhDyKnwheVqfy9Tp06iT1d29iDFgDYNiIimjt3rlc55JIkiQ02dOhQysjIEOBSn/L1A6mRdezY0adagNyznZaWRmfPnqWmTZvWiTnAoCZJkiKPuvP+dbbr09LS6Mknn6R27dq5aBzeVqXKx92sWTPhzwpZAODJe/vtt71CRvl3nnnmGQEqmq3vnRkwYcIEnzMn294JCQl0/vx52rlzJ4WHh9fJwSr8Xp999pniaIB8bxUWFtJnn33mYterUfE9BYDw8HA6c+aMR8AVdAAgR87/+7//8yqll6V+TEyMg8qvMb/3wMwVaL6Wzny/Hj16kNVqpZ9++snhsJVAA8ADDzzgMQDIowZ5eXn06quvUps2bRyY3rl3hL+u3377LTQBgJmTvcFqUZJNhdTUVNqzZ49YRM3R5xs/wOHDh/2WvsvMd+ONNxIR0VdffeV1bYdazbFfv36K9m1VVRW9//77IlWXxx0o8OL58bSmAcEoXeTHTnkj+UeOHEn5+fk+8+Rq9D8tzWazUa9evfzWGITXcOLEiURE9PHHH3ud96GGkVq0aFFjaq1co0xLS6N+/fq5MH4gcxr4WVu2bPHI1EWwMf+rr76qWrWUJ0s8+OCDIrSnefn9s1ZyE82favi0adOIiOi9994LuCYgSRIdPXrUrTSVA8I777wjxluXiUz83E2bNoUOALB0nj17tk+Y/8UXXxQLptn7/jMDDh48KDa7vzY8awJPPPGEYLRAqdV8/19//dWFmbhOoLKyku69916Ps/UCBQCbN28ODQBgafLll1+qRnd5Zt97770nQEVjfv/7aq699lqXBCt/aQIMAoHSBJiZ//Of/zi8s81mI5vNRpWVlSIlPZBaiScAsH379uAHAGb+f//736rDIsz8Op1OdEPRsvoCt3YLFiwISKye788NL+bMmePSDMNfz/zuu+8c3pn/veeee+o0Y7Gm68CBA8HtBGRk+vXXXykiIkLVQjLjS5JEixYt0pg/wI5A7kefnJzsVUWmUoZ8+OGHRXSAn+uPZ/PzvvnmG8H4vG+9MVf9Lf1NJpNodx6UAMCTmJGRQS1btlSV4ccLbzQa6YcfftCYvw7X8aOPPvK6H4NSn8D9999PRERLly4lk8nkF0nMe/Lbb78lIhIddw8cOEAmk6nOuxiFZCYg209Xrlyhnj17qkJRlvwGg0Ewv+bpr7twYGlpKaWkpPhNEtcWIty4caNIG/alOcD3WrZsmYOA4ZORgkn6y52WqampQvIHFQDI8/tvu+02VVKDVX6dTkfff/+9QxRBo7rzBXzzzTcBZQreN+PGjRMRCe5V6CtNgAFg5cqV4n3//e9/+6TNvCeMrBRQebw33XSTR+p/wAGAGfXPf/6zV8wPgD7//HNN8geRKWCz2WjYsGEBreBjsBkxYgSVlJTQhQsXqH///j4DIndhwEGDBvk13MfPbNKkCbVr105RIhG/8zPPPOMxbyDQzL9w4ULVCMrIzmegaZI/OEieFxARERHQ1FcWIt27d6fs7GyqqqoSLct8EZozGo105MgRYWr4E+D4Xdq1a0e33HILhYeHKxo/AwDXvQQNALCz6PDhwxQTE6OK+fnlnnzySSL6Pedac/gFDzEYf/DBBwFzCDrvjXbt2glmffrpp73qFylPBWaH2oMPPuiXd5OPcfDgwfTII484NAdR0mo9LCyMjh8/7sB3dQoAnCtdWVlJvXv3VqWeOdt7Dbk9dzA7BHnDjRs3LuAgwM9q0aIF7d27l4h+zxVw10JbiT3dv39/IiIqKSmhxMREn9c+yO9133330TPPPKOq2Qrfp2fPnoq6GfsdAHhTTJ8+XRXz80L069ePSktLRRRBo+AFgStXrohCoUB6yvlZzZo1E0ezr127VrSRUwICfK+HHnqIiIjWr1/v0w5I8vHExsbS66+/TtOmTXOQ5mre/YUXXlDkG0MgmH/FihWqbDI2FRITEz1ObNCo7h2CRESZmZmiFj6QmXLMCImJibR//34i+j1uz2foeQoCzu3BX3vtNZ8BmsFgEPcfOnQoff755zRy5EifnLa0Y8cOj9V/vwIAZ4pdvHiR2rRp43K6rqctogwGA23cuFFz+oUgCBw+fNjlCKtA9vRr3bo1HTt2jIh+72OYnJzsMQjw/uOU2jvvvNMnB83ysyMjI+mFF16gt956SyTDqb03C8p+/fopNo/hL+bnM/s4X1rJy7EzAwD9/e9/15g/BIlV0GPHjlGnTp1Eimogy3i5sScf4Z6RkSEAqSZJy3/r1q2baCIjP3rOm/Fw1965c+cK3vA2ssDg+sUXXyhS//0GADyAf/3rX6rQn8Fi/PjxGvPXA03g3LlzdP311we8ZJb30aBBg0T79927d1N0dHSNSTbOJchXrlyh1q1bqwIA+edbtmxJb775Jv3tb39zSIH3xqnIeQJt27al4uJixceZ+RwAWPXPzs6m+Ph4xdlM/PmkpCTKz88X6aYahbYmYDab6YUXXhDM74+mmDUx81133SX20dKlS2ts3MH7df369QLAmjRposgJqNfrBQDp9XqaNm0affXVVzRq1CifSH1nkJszZ45i6e8XAHAOBSm1+53TL7Wa/tAneWOWbdu2CYdXoHrmMZO89NJLYkyvvPKKW9OUx9GhQwcqLy8nIqLc3FwRl68NAJw1nFGjRtGiRYvoxRdfpPDwcJ/2DpCbOeXl5aoEJfyB9pwvrVb1nz59uqb618MQoVw6/fzzzzRq1CgHBmSp6eteevKGJQsXLhSgxEAk36fOpwIREV24cIFiY2NrBQD5fQYOHEiff/45vfvuu5SSkuLisPPFe7GfbPXq1aqkv08BgGPAxcXFoj5cieNPflZfeXm5dmhHPdYG5DbqgQMH6OWXX6bevXu73S/yaBDby2rAgbPtoqOjxdHvWVlZ1Lx5cwczlT/HXXWJiIqKioTNXp3JwL9PSUmhL7/8khYtWkSDBw/2qbpfU4MUtcLSZwDAA1DTKFKO/O76r2lUPx2EcoC32+2Unp5OH3/8Md17773UvXv3WtNh2Y/gDBDVgQMzYffu3YVTcMmSJQ6dhXQ6HQ0aNMgh4cxqtYpIhtxUcRZyL7/8Mu3evZseeughv0h8Z8nfp08fKisr8yozFr5E9WPHjlFkZKRiG4dVJ1a7tAq/hqURuDuvwWazUXZ2Nm3cuJE+//xz+vOf/0x33nkn9e/fn9q2bUsRERG12sfOvgV5ePmPf/yjeNakSZNEmFJeaSqvNxkyZIiLJGfmT01NpW3bttH3339PzZo1c0n28Ud4s2XLlnT8+HGvD7qBr9CciByqsJSGMTp27EglJSWKwxga1R8fAYNBbRu6rKyMzp49Szt37qRly5bRu+++S4899hiNHDmSOnTo4JJ56Nxujvcnt5HLycmh5s2bkyRJ1Lx5c4duOjyWiRMnOoTt+BmTJ0+mM2fOiDRef6Y/8zMbN24sji73VlOGr5h/zZo1XhVdLF++XFP9NXLrV7JYLAIYahMOFRUVdPz4cfrhhx/oT3/6E6WmprpttGEwGKhZs2Z09uxZIiKaN28eAaDnnnvOYR+yNvrXv/7V5WCS2bNn08mTJ+mqq64SDOqvsKa8zmHbtm0+05ThqwXiRgxKAIA/O2HCBE3110ixtmC1Wh0Awp3TuLKykn755ReRiCT3G8iTzSoqKmjQoEG0d+9eh9wT3pNLliwhnU4nzIRvv/2WduzYQTExMX5NdZbnE/Ts2VOc+ecrXvEKALxpByX3ymZmZmqHdmrkc3BwZpIPP/xQMKqcsbiBxpkzZ6iystJBy5A3O2Hp/sMPP9DatWtFAU510Qu12gDnEsiF6dSpU4Xj0peCEt5OdGVlJaWmpipO8eTPvvrqq5r018jvZgQz8urVqyk2NpZ0Op3IBExMTBRnSDqbGPxzcXExhYWF0dy5c2n79u0uPfsYUJx5QM7MHK3gz8kvef6D/Pv9+vUT5rE/TGTVAMAM+89//lOx6s+Ov3bt2lFRUZHW4EOjgBCHqtPS0igmJsZBC3j00UdrZLDS0lJavnw5paeni3Ms+Lvu9r43voDY2Fi69dZbacmSJWLM/sqL0RERQSH9FzhgsVjQt29fHDlyBDqdDna73aPvGwwGWK1W/POf/8SUKVNgtVphMBigkUb+JovFAqPRiF9++QVjxoyBXq+HTqcDAGzbtg39+/d32Y+8r8vLy9GtWzecPXsWer0eRASDwQCLxYKUlBTceeedGDRoEFq1aoVGjRrBarWivLwcRUVFyM/Px4ULF5Cfn4/CwkIUFxejsrISABAeHo74+Hi0bdsW3bp1Q+/evdGqVSvxfJvNBkmS/DMh3kj/7777TrHtz4kRPXv2JLPZrIX9NKozTWDmzJkO4bXrr7/erS+K9/sdd9zhUETEkv/555+nkpISn46RHZz+5g1VAMBZUmpaJPNnlyxZ4hebRiONPPULWCwWUefPzsGlS5c67Ev+d/HixQ6FPPz5Dz/80AEomHGZR5wjFfLPyC/53wKZAg81yEREtG7dOsX10Sz9+/bt61HCh0Ya+Yuc9zEz9lVXXUWVlZWCgfn8w44dO4rIlXPRWih3qNarsf8BYM6cOQAg7Ccl33/hhRdgMBigwv2gkUY+IUmSYLPZMGLECAwfPhxWqxUmkwmHDx/GwoULodfrYTabodPpsHjxYpw4cULY4TabDV27dsVbb70Fm80Go9GomA+ChpSq/kRER44cIZPJpKgqiz/bvXt37RBPjYKC2LZfs2aNqBPQ6XTUuXNnKi8vF+r5gAEDRLyfNd4ff/yxXpiwijQA9obOnz8fVVVVwhPqCel0OhARpk+fDqPR6HHEQCON/EUGgwF2ux033HADBg8eDLPZDIPBgIyMDCxevBiSJGHfvn3Yu3ev0F7tdjsGDhyI0aNH+9c7HyDSK9AUYDAYUFpaikWLFjkAQq0P0eths9mQlJSEu+++G3a7HXq9XtuBGtU52e126HQ6PP744w6/nz17NgBg3bp1Loz+6KOPQq/X1wshplcyUQCwYsUKnD17FpIkKQIAAJg6dSqioqLEpDd0stls1c4hEcFms1X7vZo0L7vdXu13NXL1BRARxowZg+TkZFgsFhgMBhw9ehTr16/Hb7/95jDvCQkJGD16tNAgGgwAMMN+88030Ol0HjOwTqeDzWZDVFQUpkyZ4gAIDZU4kUqSpGrnQqfTuaiXzPSSJNU4/3q9XhFAN2Ti/RkREYEHHnjAYX5nzpwp1H+e7+uvvx5NmzaFzWarF0LMIwhjlf306dPYsGGDQEMl6v/o0aORlJRUL+wmb5nfZrPBYDDgq6++woIFC5Cfn+8CtJGRkbj99tvx7LPPivlizemdd97BsmXLRCaZM7Vo0QLPPvssRo0a1eDnW4mGet999+Gtt95CeXk5AODXX38Va8Lge8MNNwgAry8b0mNv6bvvvqu49JG9puvWrdMSf2Tvz0dN1XY9//zzRPR7WSsR0UcffeRxl6X09HSH6I1Gta+LvJs1R6440qXX60U/QV/MKbfQD1TWn+ooANtJS5cuVez8s9vt6Nq1K4YOHSrU3oYs/SVJQm5uLmbNmgW9Xg+DwQC9Xu9yGQwGSJKEr776CqWlpQgLCxM+GEmSEBYW5vZ7er0eJpMJFosFK1asULRemllGuPfeex00XyISWlliYiKSk5MdNDVvtEA2IyRJqtWsqzMfAKudx44dw549exQV/TCz33PPPQgLC2vwjimet5MnT6KiogJEBKvVCrvd7nLxBqmqqkJ5ebnD5uC/ufsef1en01VrImjkfq/qdDrccMMNSExMhM1mE6YBz3379u0RGRmp2v632+2wWq2C6Q0GAy5fvowffvgBd999N/bt2xdwwDZ4Mmi9Xo///Oc/wkNqtVo9ujlnV911110N1vnHsWO530RNFEQpeLJEk0ua6hy7Spy69dkZaLVaERMTg1tvvRWff/65cKTy3CQlJYn1U6PJsoZ2+fJlbNmyBf/+97+xdu1anDt3DgDQqlUr9OnTJ6Bhcr0ngwaA5cuXO3iiPTUbBg4ciC5duoCIGhwAsPrIKl5YWBgkSUJkZKQiJ1J0dLS4h5KNZzKZIEmS+Nf54g3JnnDWRhq6KTB27Fi3e71Zs2aq1H82JbZt24ZHHnkEvXv3xtixYzF//nycO3cORqMRkiThxx9/REVFheCdOtcAGIlOnTqF3bt3K1L/mcaPHy8kWEOq+WcJnJeXhxMnTohoiMFgEKElTyX/mjVr0LhxY0iShIKCglqBmP92+vRp7NmzB5WVlS7AodPpEB4ejri4ODRv3hxGo9FFa2lo/ho2A4YOHYpWrVohNzfXgdljYmJU3ZfrBRYtWoR58+YJwcr8ZLFYRJTt119/xQ033BC46I0n3n/umOrcbhk19DTDf/usnzhxokF6onnuuIwUNZwa64/L0xqN6Oho6tSpE40dO5Y++OADOnLkiEvZbEOMBtx9992iSpCr/2bOnOmwtkr3wpYtWxw6CcFN19/aOhMFNArA6Ld27VpFdiir+gMGDEBKSoqDQ6WhkdFohF6vF//KkV+p7ahkDtn8qOkCgJKSEhw/fhw//vgjnnrqKfTq1Qs333wzli1bJrSA2jIP66PmdtNNN7loWmVlZYrMYGdneO/evdG8eXPhCHTnIF61apXQ2AIx5/qaJkKSJJSUlIiECE83Lb/czTffHHCvZrA6AeWX0oWVf1fNZq7u4rXizEFub7Vq1SqMHz8ew4YNw8aNG4Vq3BCiOAzQQ4cOhclkcnCgXrx4UZUPgAE/KioKQ4YMcesQlyfb7dixI2B8o69p0wHA/v37cf78eUWVfyzxR44c6YCAGgUvQLETkIFfkiSkpaXh+uuvx9NPP42qqipIkuRxBCiUAYCI0L59e3Tt2tXhbydPnnTLvJ6COAAMGzasWhDh+/7888+qNA2fawAAsHnzZkUvzROYkpKCHj16qEJMjeqWOHTIQPDBBx/ghhtuQG5urqIwcKiS1WqFXq/HNddc4/D7w4cP48KFC4qEoTNzDxkyRDiEqwOJ9evXB8wJqK9twFu3blWERvy9a665RiT/aAAQ2kBgMBiQlpaGESNGIDMzEwaDoV6bA7xfWV3nEHZxcTF2796tSj1nvujcuTPatGnjNizOPHbkyBEcP35cVdTNJwDAg7t06ZIIWXk6EH6J4cOHB0yN0cj/EtFoNCIjIwO33nor8vLy6k09fE0A0Lt3bxiNRlitViGN2R+mZl/bbDY0atQIffv2datVs/llsViwZcuWgPgB9DXZK+np6SgsLPRY5WFHkdFoxMCBA1XbSxoFH3EW6LFjxzBx4kSRilwfAZ6ZPTk5Ge3bt3f427Zt2xw+o9TfAgBXX311taYx/27jxo0BMZ/1NQ2U1R1PmZgHm5KSgvbt2zsUUjRkci7WUeNF9selRhMICwvDxo0b8corr9RrU4BNH3YEMk8cO3YMV65ccSgRVqNZVCfdeT537doVkHCgviZ7ZefOnars/379+onN0dABgMN3FotFdRiwtnCe2ktNBZrFYoEkSXjnnXewf/9+0VevvhGvUc+ePR0YOD8/HxkZGV75Abp06YKoqCi3/MFC88yZMzh27JjfzQBDdQOtqqoS7ZCUbtgBAwZoOvN/KTIyEklJSSKhBgCqqqqQn5/vsVnVqFEjn25snU4Hs9ksxqPEnucxWywW/OUvfxElx/WVunXr5mCfW61W/Pbbbxg4cKBqDaBFixbo0KEDDhw44FaT4Ofs2rULvXr18qsGYHAnsfR6PbKzs3HmzBlFAMCI1qdPn4DYL8FMrAGNHDkSJ06ccFArV69ejTFjxjiAgrvNQkSIiorCpk2bEB8f7zN1m0uFt27dildeeQXnz5+vcSzu1lmSJKxatQq//vorhgwZUu86D7G07tChg+ALrmU5cOCAV45ASZKQmpqKAwcO1Ai+27dvx7Rp0/y7T6tD+KNHj8JsNnu8MXjDNm3aFJ07d9YcgPhfXz8utGHpyxvJkw2k1+vRoUMHNG7c2Ofj69KlC/r164frrrsOZWVliuxajmXPnTtXhMvq29oBQOvWrdGkSRNcvnxZ/O3o0aOq9zfPL2sW1ZmNDDT+LsrSVzdAVv89leJyxIyLi9McgDLnn7w2X439bzabRbZedU1A1FxVVVXo3bs3Jk+erHijcTLQ8uXLkZ+fH9AS1kASV0vKeeP06dNCOKo1A1hIuvs+/+7kyZO4cOGCKoejV05AAMLRoZRSU1P97rgIRWnijfed8/V9fbEDb9y4cYrXjG3iy5cvIy0trd6tOSfhSJKExMREh7+dP3/eoZGrGgBg08Kdds15OCUlJaodjqoBgKUAP1jJyT9yANASgEJHQ+nSpQsiIyMVdypiQFOaLRoqxEzXqlUrh9+XlZUhLy9P1Tvz/LZq1UqYdTXVBRw+fNivc6t3Rh6dTofS0lJkZ2crQh5n20aL/4cOxcbGIi4uTvG6sWnDTrH66vNhE0D+jswfagFAblrUNOdHjhzxrxBwx8QXLlwQpY+evhRHANq2basBQIg5usLCwhAVFaXaoZWTkyO62tRHza9FixYuAMB9/NS8L0cU2LRwxyvyxCO5Zh4QADhz5gzMZrPiBY2JiRGTpQFAaBDbm954tAsLC1FSUlJv5yg+Pt5lT58/f95npkVNAJCVlYXKykq/OQLdAgCrN0pTgFu0aIEmTZpoXBViWoC3J91UVVXV6xJh7gUonyO1TkA5OfsW3PFiXl6e0Mb9DgBMWVlZqlTJli1biqO/NQ0gNKQ/8Lsn2mKxeAUi9XG9+Z0YAOT+sMLCQq81XblpUZ1mVlFRodrfoBoA2L5ROlGMaFoEILTIarWiqqpK9fcjIiJgMpnq7fxwKrZcUyouLvYaALjNeLXM6aXDUTEAeOvgYKeGNwPVwCPwZDabUVFRoXj+5R7tyMjIejs/fCybnNjnoTavAwCaNm3q0ZxzSr4/SO9uYGzfKGVGDiX5Qu3SKHBUXFysyoknL//mlPH6tH78LvIzE5h8cexabGysi2nhjnJzc/0PAPIqsStXrqi6mbcAYLVaxZl5GgXOB3DhwgVUVFQo9jQzg3CHm/q6bu5AjX0m3mgA7pyL7taHIw7+AFcXH0B5eTmKiooULSh/jlUatefeLV261KERowYE/iXuTcBt35TGmnndaup0W19BUx71ULtPw8PDRWFYTXPHp0H5gwzuAKC0tFTVzdRWrPEE5ubm4ujRo7BYLG7trlDdMMwoXAyktKyXm3P6ssCKIzU6nQ4LFizwSBWVE6v8KSkp6N+/f4M8+t3b9TAajTCZTNWGUJkvLl++LObX10V2BueXKSsrU+wR5o3jrSOooqLCrb0V6uojozz/qwQodTodYmNjfc5cfL+3334bv/76q6J+AMD/yoEnTJiARo0awWq11tuzH91JeHnoU02LNwYAT/Z7UVERKisrER4e7n8NoLS0VCCSpx1r+HMcLlE6Ifx99kabzeaQ1wAYUE+dOoWVK1eKBiGSJCkq8LBarfjpp58QExPjtUnEFW5GoxFFRUVYtGgRli1bprjDL6d+R0VFYdq0afX25Geeb3b4yfe1vKeDWolsMBhqBHZ+fmlpqf8BwN3LKtlw8sYXap0i3BK5pKQEUVFRId1TgLv/7Nq1C0888USNwFnT4peXl+Puu+/22zjVtPfmllVTp05F27Zt6103IHdmsTMA+EJAeZpAVVVV5ZOog0caAKv/agDA20nhZJLLly+jZcuW9WLzmEwmgfRyFdtTdZuIFHUQUroBlfojmPlbtmyJl156SbSQq8+qP5f+ynnCF9LYUwAwm80CAPzmA5CrnN5IE28oIiICwO+HMHbt2rVeRAGISJy5p7anX7Dk2fPGi4iIwJdffin6FNb31m+c9isneQhPLUN6WoNhtVr9pgHo3aGNWseGt8jEk5qTkwNA6yoUjGS32x36PjaENZKXxvMeZ0euP4WUvFbDm1RtRQCg9oW4Z503koUBQGkxkkaB02Z0Oh1ycnLQv39/rFq1ShydVZ+JBZKcPE3j9ZXWxYLZ7wCgFqX4mGlviKMImZmZqrQQjQIDAnq9HoWFhRgzZgy+//57GAwGr6oJg5XYtOFUXDmz11bI46nQ9BRAlETmvAIAtd5cm83mNUpxL4GzZ8/6xKegkX8AgB1/VqsVkyZNEppAfTsmjCMkrAHIma+mWn5PhWZFRYUowvJUE/C7BsBMpzQnnIgcPJVq1Bz2rObk5MBsNvu1HbJG3ksvziuYNGkSTpw4oTiZKNiBDvg9InXhwgUXLdeTfn61UWVlpaoqTL8CAIfi1BSFeIpmNWkAJpMJp0+fxvnz5+uFCcCHg8gvpZqNvw4H5UvNgaUMAtwa/P777/ebnVqXAJCTk+MQBWDg80Xvy+Li4jrPdakWANRIcLU1BPK68oSEBJjNZpw8eVJMeCiTxWIR5hHn9CuNnfvrcFC+2BY1GAyqDgs1Go3Yvn07PvnkE5HMVV8A4Pjx4y51Dk2aNBE+ADXMK++lWNe+LoMzE8q7nyglLiNWYwIQESIjI9G6dWvk5OTgwIEDGDFiRMiaADyfiYmJGDFihEMqcEFBAfbv3++RiaPX69GyZUtVGXtKxlpaWqq6DNxqtUKv12PWrFmYOHEimjVrFvIJQrwuhw4dctDCiAiJiYmq2qhXBwA1rS1/lpPsfA0WLolAkZGRMBqNsFgsHtvgPKhLly55ZVNKkoTk5GTs2LED+/btq3N09IZYYgwdOhTr1q1z+NuGDRswYsSIGrsuy0ExLS0N8fHxflEX5S2uvvjiC7z22mvi2UrOhJAkCfn5+fjss8/w6quvClAIZdMNAA4ePCjekRm1Q4cOwgnqTQFUbWW+vA56vd6nJ0TXqAFER0fDZDKpUuM4ZdKbjZiSkgLg94MRWb0M9XMGmZFYA1CS1aXT6dC4cWNVffuVUHR0NGbOnIm2bdvigQceEMeGKXUKzp8/HzNmzEBkZGTIrhsDmtlsFmdkyt9FfmS4N8S9/mojk8nkt5ZrLhAdHh6uerMpOUykOurSpQsA4MSJE8IPEOqRAOcz+ZQyBacSs63uLz+A2WzGlClT8NRTT8FqtSoKCTMAnDlzBps3bxYRglAG7MzMTGRlZbm8S48ePXyinXra6stkMgme9DWgugBARESEyMjz9GFyj6naQbK62K1bNxgMBlRVVWHPnj31whHoC3U0EJEAjuW/8soraN26teI8fwa3lStXhjRw87j37t3roOazWXPVVVc57Fm1e93Tbr/+7Lqsd7Y3jEajaFaodMLOnz+vWu3j77Rr1070S9+wYQM0CizQEBEaN26Mhx9+WPEmZw1l+/btId0hiPfiqlWrHOx/AEhKSkL79u29ksZ6vR5ms9lthqG7ccTExPilF4CLBsCSVunxXnIAKC4uVnVGHKtZMTExwgxIS0tDZWVlvT17PljNFSLChAkTYDKZFCX28BplZmaioKAgJBO5GLiqqqocjj1nXujZsyciIiJUH37D81FQUFDrCcPy9uEGg8EvPhW3R4OpPd+vsLDQq2OMeLMNGDAAAHD69GkcPHhQywgMMADodDqkpKSgU6dOirr98GeLiorcps+Gkvp/6NAhnDlzRggm5oWrr77aK7OU73/u3DmRN1PbHCUkJPjNFHa7sq1bt1b8Unq9HhaLRRxioGbheZIHDRokAIHVMK00OHDEtn/Xrl0VmwEM1hzjDjUA4H22du1aBzOGhRN3rVYrifn+GRkZAGquvQnEiVtuV5bTHNU4Nrzx3PM9+vfvL/wQK1asaJAdZ4NBCnpT8RaqJcK8B1esWOEg3IgILVu2FBEAb3Mcjh496jGQ8IlbfvcB8GAYANQUdhw5csRr+7NFixbo3r07ACA9PR3Hjh0L6bBSqJI39qa/nFb+lv56vR5nzpzBvn37RMs0ZvbBgwcjJibGqxOQ+F7yBKPagFiNQPYKAJKSkhAWFqbI6cCDZQBQi5AMOtdddx2A33sULlu2TDMD6oDxlR4RxyCt1+tFaXcoJQLx3vvll19QXl7uonWOHDnSK1WctYmqqiqHBKPaqE2bNn6bS707+61FixaiKadSADh+/DjKyspURQLkwHHTTTeJZy9btqzed54NJuKyXk+klLt9EBsbK9TWUAIA3rNLlixxeG+r1QqTyYQbbrjBK+HG98vKyhI9L2qKANhsNphMJiQlJQUWACIiIhSXO7J0PnfunGjp5Y0jsE+fPmjXrp0wA3bt2qWqi61GyqUgEeHQoUM4duyYoiIkXrv27dujadOmIZUKzLUoGRkZ2LFjh9BmWOj07dsXycnJXp2BwPN49OhRkWlZWwiwWbNmqqNyigFAPkiOxSt5KEuOAwcOqFbZdTodrFYrwsPDhcplt9vx9ddfa9wZIEbQ6XSYO3eu6kzAQYMGhRxY815dsmQJzGazyzFcY8eO9fqdmNl37dpVK2/JE+PCw8P9BqbVri6HgNRIb35BtbYS32f8+PHi5x9//BGFhYV+LYvVpL8NRqMRBw4cwPz588XxX0qYiIgwatSokFL/5ba5/JxEZviwsDCMGTPGK/Vf/t2dO3fWyh88d506dfKr/0tf3YPZC6/kwXKE8yZ0xxM1dOhQYQZcuHABS5YsCTnJwucCyC81h4M638OXl81mg8VigSRJKCsrwwMPPKC4vRvbz0lJSRg2bFhIHRfGms769etx/PhxSJLkoP4PHjwYnTt39qrHAfNDYWGh8K14wltcd+CvfIpqAaBLly6IiopSlPLIL3To0CGcP39etSNQbgbcfvvtQv2ZN29eSDkDee4MBgMMBoM4JUhJrQUfDmowGGA0GsW9fHnxsW6FhYUYN24c9u/fr7gcmFXmSZMmITo62qtQWaCJxzlv3jyHn9knNnHiRK+lMH/34MGDHqVJ8+cZAPw1l4bqkLxly5ZISUlBenq6x6m4jPqlpaXYu3cvEhMTHZBUzaJMnDgRH330EXQ6HdLT07FmzRrcfPPNQQ8ELFV2796NuXPnIiwsTPwuOzvb4zm1Wq2YP3++6qPXPdXaCgoK8NFHH+HEiRMwGAyKEnlYK4uOjsajjz4acs4/vV6PI0eOYNWqVeJdWAjFxcXhjjvuECDn7Txv3rxZ3Ku6OWYHZGRkpDiAxW/aFLkhi8VCRERTpkwhAGQwGAiARxd/dsaMGQ73UkN2u52sViv179+fdDod6XQ6GjlyJBER2Ww2Cmbi9160aJHHcxcMl16vV/wdSZIIAP31r3/1es3rap2mTZvm8C68jx944AEiIrJarV49x263ExHRsGHDHJ5T0xp0797d6+fWRjXCCufkq1F1tmzZ4nUKL0v5qVOnilLl9evXY9u2bYodVHVFYWFhDup/bUdCV6de+/syGAyqTwq22WxITU3Fc889F3ImmiRJyMzMxIIFCxzen823qVOn+swUzM3N9ajHBUv7Xr161agp+C0KwOpb//79FTMaqzoHDx7E6dOnvUrh5Y00fvx4JCQkwGq1wm6344033mhwTkB/Xzy3asw0k8mEf/7zn4iOjg4p7z8z5nvvveeQvMalt4MHD8bVV1+t2ox1JxRLS0trLW93rjz0J9UIAF27dkWbNm0Ul4QaDAZUVFRg06ZNXh0ZxvZY06ZNMXnyZNjtdhiNRqxcuRJpaWn16iCKUCPuImSz2fDZZ59h4MCBIpIQStL/1KlT+Ne//uUg6LhN2hNPPCEA2Be0fPlyjwCSfUX9+/f3P6BWZxuw7XHnnXfWarNU5wcYN26c1/aTzWYju91OJ0+epIiICHHv66+/XthwbF8Fo235ww8/KJ6/UPAT8Pu8/fbbIWf32+12MpvNRET00EMPOayPXq8nnU5HXbp0oYqKCrLb7V7tL/5uYWEhNWvWjACQTqerdm75b23btqXy8nKHewTUB8AqyvDhwxWjEKtWmzZtwqVLl7zq6CNvxXznnXeK8OCGDRvw008/iX77GgWGODxos9kwZ84c/PnPfxaZc6FklhmNRqSnp+Pbb791CHlydOapp55Co0aNVHf+kUtzIsLmzZtx8eLFWkPj8pL48PBw/4dTa5K8RESHDh1SFAVw9gwvWbJEePPVktVqJbvdTunp6WQ0GsloNBIA6tatG1VWVgotQdMA/HPpdDoyGAziHZKSkmj58uVBrYHVtp+IiG6++WYHjZWlf/v27amkpMQn+4qf9Yc//MGjiBrP8Zw5cwKiWcGTMFyPHj0Uh4j4Re666y6fhO34+2PGjCEAFBYWRgBo9uzZQamChjoA6HQ60uv1DhtWp9PR/fffT+fPnycioqqqqpBjfl6Xn376yWVd+F2Z+dhM8Fb9LygooISEhFrVf/67JEl08ODBgIS74clkPfnkk4rzAfhF4+LiKD8/32tbhpF0+/btpNfryWg0kiRJ1KRJEzpz5gzZbLagyg3guVu6dCkZDAYymUxkMBgcJKkSnwpftW0gZ1td/l1PL2egNxqNNHbsWNqyZYvLeoQS2Ww2slgsVF5eTqmpqQLk5NK/U6dOVF5e7hPpzwAyf/58j/iHx9K1a1cym80BAVd4wnQrVqxQlSTCLzx//nyfSGn+/t13300AKDw8nADQxIkTg04LCNVEIL4iIyNp4MCB9Oqrr9Lhw4ddzLFQJF6TmTNnCmBz1li//fZbnwEc32PkyJEeAQD//fHHHw/YftZRDR4JTuksKytD586dkZubq6hDL6eU3njjjVi9erXXSSLskDl9+jR69uyJiooKkbK5fPly3HLLLUGTiMIppgcOHMDXX38twkxGoxGZmZlYunSpg7PVXZiNiBAVFYVJkybBaDRCkiT89NNPolttdd9lx+mgQYMwYMAAWCyWWsO4er0eMTExaN68OTp27IguXbqIQix5LDtUz/vjfXHo0CEMGDAAZrNZhPs4nDx48GBs2bLFIQfF2/U/duwYevbsCYvFUivf8Dh++eUX3HrrrYHZy56i2IMPPiicQUrtSKPRSL/99ptPbBoez6uvvipQXKfTUXJyMhUVFQWVQ7A6KbJ169ZaNSr+W1JSksN3b7vttlp9CrxG77zzjk9U5mBPu/Y0pdxms9F1113nMveSJJFer6dt27b5TPLyPV5++WWPpD+bdi1atKCioiK/h/88SgWW0x133KE4qYdk7cK5oQd5WdbI0u2ZZ55Bx44dYbVaERYWhszMTDz//PPi1NZgIA5/cgZgVVUVrFaromO47XY7ioqKxD2UHNpaVlYGq9WKyspKxeXB8krGUD7lVy79Z8+ejc2bN4tyX7nUvf/++3H11VfDZrN5deIv73Eurf722289SiZiST9ixAivG496nQnoLi553XXXieo+pTkBAPDtt9+qPjXIWTW22+2IiorC3//+dwFKBoMBc+fOxcqVK8UZd8GSMedcfqv0gFC9Xu/wXTXfU1oerOYQ02BlfoPBgP379+OVV15xYH7eiwkJCZg1a5ZX9f7Oz9TpdFi+fDmysrI8yoPhMY0bNy6gZynoPdnAVqsV0dHRGD16tGL7iJkzNzcXP/zwg7ift8koNpsNt912G+655x5YLBZxyOW0adOQl5cX1G3ETSZTrenVOp0OkiTBZDI5HNHlSZsuTtOtDwzsrR1ut9tRVlaGKVOmuDQ5YW3yrbfeQvPmzX1Wxsz+mTlz5ijSalu2bInhw4eL9QtUVpTHtuymTZtURQPYXh0wYIDPwnV8n9zcXEpISCCdTie8urfccgvZ7fagS1LhtNJLly5RixYtqp1LeXjqiSeeICKiiooKIiK69957HXwfzpf8fqtXrw7ZkJ0viMNwU6dOrdbrf8stt/h0jvg+W7dudVmP2nw2Dz30UMCjWVCyeS0Wi6qkIPnn16xZ47MJdw61GY1GMZkzZ84kIqLKysqgAgF+740bN1Jqamq18xgREUH33nsvXblyRTix7HY7HThwgDp37lzjXIeHh9Nf/vIXstvtIe/AU0tVVVVERPTFF1+4OOGYMZs0aUKZmZk+zSFRU0PDe2D9+vUBB+waw4By4nPS3377bbzwwguKu8aws+Wmm27CypUrfWJvEZGw8e677z6R183jXbp0KcaNG+dwxnswEI+nsrISJ0+edPGr2Gw2NG7cWBxDze/KFWxFRUXIyMio1sRp0aIF2rVrJ1TdhmYK8Pzu3LkTw4YNE45Nng/eu//6179w//33w2w2IywszCe2P3cX6tOnj0cl1qz+p6amIj09HQaDQZizQWMCyEMSp0+fpsjISKFyKtUC9Ho9bd++3WeqDqN3YWEhpaSkCLTX6XQUExND+/fvD0o12BOJ4y6k6amkaqiSn987NzeX2rZt66KtshkwadIkn+8LNjnuv/9+F5OjNvP4tddeq5NkNqhRbzgTT2mREH/+9ttv9+nL8n22bt0qUm15Yjt06EAXLlwISqZgFb26q7a4dnVXQ2Z+m81GlZWVdM0117io4Pz/jh070qVLl3ya1chgfeTIEWrUqJHILagt9q/T6Sg8PJxOnToVsNi/agBgRlu/fr3qAheuJd+5c6dPmZLH9v777xMAkXsPgAYNGkSlpaVBWTWokW+TfYiIJkyY4NbulySJTCYT7d692+fSn+913333eSwcWUPggrm60FKhBumsViv169dPTKqaiICvva9yEJg8ebJYBH7emDFjhITQQKD+Ea/9E0884ZYB+ee5c+f6jfn37dsnitSU8MK6detCBwB4or/66ivVWgDb6Oz19JUpwCp1WVkZ9e/fX4yPkfa+++4TE62BQP2R/M5pt862N//MIVVvy3yr4wnn/gK1acI6nY769u1bp/sRaibcbrdTSUkJtW3b1uNYpzs0HjRokLBbfe0EOnPmDLVq1Uo8jzfBtGnTqnWwaRS6zD9r1izB7O6cfqNGjSKr1erz2gbeu7/88osQOJ44x1lwfvHFF3Xi/FMNAPLBvvXWWx57O6ubAF+WXzovyo4dOygyMlJEH7iJyMMPP6xpAvWU+eXMx4KmR48ePnf6yf0OVVVV1KNHD4+FIUv/Nm3aUHFxsdd9BwMOADzg/Px8kYWnJjGI2y9xFZ8vkZk3x3/+8x8BAAaDQYDAH//4RwezQaPQdPjJq0KdK/wAUOvWren06dN+Vf0//PBDRVEx/lwwNFSF2i/yAvz1r3/1yhcAgP7yl7/4ZYH4fl9++aWD74E1lokTJ4rPNNR02VAjuaCYMWOGaA8nl/wsXJo2bUp79+71y/ryOM6dO0fx8fHimZ6UyOt0OmrWrBldunSpTqW/VwDAA7948SLFx8er0gK4v0BERIToOuPLhbLb7SIl9JNPPnGo/WZNYNSoUXT58uU6R2KNPJe4VqtVtPOuTvJHRkbS1q1b/SJY5GPhpB+lnn9OVa9rwQNfTMIrr7yiKjFIPiEjRozw24TwBnj33XfdagK9e/cWiRjBVjug0e/EQF5YWFitt52lcGRkpE9rTqrb96tXr1bUJIfHl5CQQHl5eUHhiPYKANh+LigooMTERFVagHwhP//8c79IYvlBEAwCrAnIbcVNmzYJwND8AsFj7/PaHT58WBSjOTOdXPIz83MFpT/8DyUlJdSpUydF0p/H/Oabb/pNMwkoAMgRljPw1GYHcnXW2bNn/eaY4wn/6KOPHBCZx2wymegf//iHACHNL1D39j4Lgx9//JHi4uJqTPJp0qQJbdy40a/mHN93+vTpivY777WkpCRR4RkMmiZ8gYicfNO5c2dV2YHyiRw9erSYaF9PkM1mc3AMstOGAYi1l0cffVRIj2BA6YZs7xP9z9HsjuGY+Vu2bClSfNlc8DWxQFi7dq3LmQme7u9PP/00KGx/nwGA/GW+++471b4Ad+ma/lpIvu+yZcsoKirKYYH434EDB9KhQ4fE+2kmQeBUft5PWVlZwt5352VnH07Xrl3p6NGjfpX8cnO3Xbt2inpicHJQz549qaqqKqjyT+CryWGJPWLECK8LhaKjo0UXYX8gpc1mEyCwbds2kTHIiSQcIYiJiRGI7S+tRCP3Un/JkiXUsmVLt2E+ueNt+PDhlJeXR0S/O3D9xfw8Ni40UnNY7ooVK/wKUnUGAHJG3bt3ryjCUdovQI6qAwcOpMrKSr+2peaFyMzMFLUDJpNJODN5/LfffruIEnAxlEb+sfUvXrxIDzzwgAvzONvSnMzFppo/NTQe27x58xRnvjJQ3HbbbUGl+vscANw5SLw1BZ588km/IyYvSElJiTjAkSUMn2kAgOLj4+mTTz4RG60+9MsPBnVfvraLFy8WTTzcHaHG+0KSJHEmpBw8/Lk/Dh48SFFRUYqOdmO/Unh4OB09ejQos059CgAsHQsLC6lNmzaqw4Jy5Fy8eLHfQUC+KO+++64wAZj55Qt+zTXXUFpamsMG0cwC9XY+EdFvv/1Gd9xxR7WOPrlZ1qZNG4cqUn/OPe/noqIiuuqqqxT3wuT989e//jXoVH+/AADR/7zmS5YscUi6gcrTaaOjox2ccYGQRmlpadStWzeHfAF54pBOp6M//vGPlJWV5fDeGhAok/gFBQX0l7/8hSIjIx3m2p0gAEC33norZWdnB2S+3dn9SjRafo9u3bpRaWlp0AoK+OOmDALjx49XXS0on/CrrrqKrly5EpDMKV70y5cvi3bScDpDnn8XFxdHb7zxhkgl1hyFnkn8iooK+vTTT4W6X53U5zlv1KgRvffeey5quT+J9/Brr72mypxlHxjnJQSr38gvAMCMmpubS82aNVPtEJSrfmPGjBET6W87Si6l/v3vf1P79u3FovJGlW+IDh060IcffkhXrlxxuEdD9xE4S3yLxULffPONyOarTkOUz+2QIUNoz549AVt7OfMvXLhQlQDj8T/22GNBq/r7FQDkiLdgwQKvHILyBXj66acdFihQUis/P58efvhhl03rnPSUnJxM77zzDuXk5LjYkQ1JK3COlFRWVtLXX39NvXr1cpGQzmozr3VUVBT97W9/E8wTKCbicaelpVGjRo08rvJzVv1TUlKC7rDagAKAfNHkp9moAQC5JvD+++8Tkf+ShKrbEEREq1atot69ezsAE4OAHOASEhLo6aefFhWO8vmoryYCe+Pl81VQUEAfffSR8KdU5913Lqi59dZbhd/H315+d/s1IyODmjdvrtjpx3tBr9fThg0bXBzMDQ4AuN1XQUEBJScnexUVkAMIdxEKVJquXBuoqKigN998k5o0aeKQvCTfADxek8lEt99+Oy1dupRKS0tdNluoawbVHR++a9cueuaZZ0SCVXUOPuf56tKlCy1YsCCgtr78XYiIzp07J4p81La9f+mllwK6P4MWAOSTsHnzZmFDq/EHyJnNZDLRypUrA6oJOKuhJ0+epClTpjg4B+WmgfPmSUlJoWeffZa2bdvmsrFZMwh2dZGB0J0HPjMzkz788EMaMmSIS1sud4wv1wYTEhLob3/7G5WUlATU1ncGmsuXL1O/fv28Yv6BAweS2WwOGR8QAsk4r7/+ukjtVKsFsBYRFRVFW7ZsCTgIOEumHTt20Lhx48SmZ6nGP7uTfL169aIXXniBtmzZ4qIZ8P3rWkPgpBUei7txHD16lD755BO66aabKCYmxm3n55pU/caNG9MzzzwjQnt14S1nJi0tLaVrr71W1f5kwRYbG0vHjh0LCdU/oADANd02m41uu+02r/ID5CGjJk2a0LZt2+pE3ZJXFhL9firR+PHjXTrSMhjINQT5u3To0IHuv/9+mj9/PmVkZFTL8MyIDAzyMw7UggR/l1V5s9lMZrO5Wia8cOECLV++nGbMmEEDBgxwYRT5+zprbs6M//TTT4v0ahYSgQY7ZtKysjIaOXKk27oDJdJ/0aJFQe/1rxMAkG+2ixcvUnJysteRAWa0uLg42rFjR53ZXM7NTHft2kUPPvggNW7c2EVCyMuP3YGByWSiHj160OTJk+njjz+mrVu30vnz5xVL7JqODPPUzKisrKSjR4/S0qVL6fnnn6fhw4dT06ZNq5V+7qS98+/bt29P//d//yeadDKw1YWWI5f8o0aNUq2Z8h6ePn16yDE/kYLTgX1BNpsNkiRh586duO6668TpqWqHwKe8Nm3aFD///DMGDx4Ms9kMo9EY8BNxbTabOAUZALKysvCvf/0LCxcuxIkTJxzGTP896ZeIoNfrxSnJ8hNsmWJjY9GmTRukpKSgU6dOSE5ORrt27dCiRQvExcWhcePGCA8PV3XSckVFBa5cuYKCggLk5OQgKysLx44dw9GjR3Hq1CmcPXvW5QRoSZLEibbOa6fT6cT7y783aNAgPPjgg5gwYQIaN24s/i5/90CvFZ+yPG7cOGzYsAFhYWGwWCyK9iLvv2uvvRbr16+HTqeDXq8PqdOYAwoA8sn/6quv8NBDDyk+Zry645VjY2Pxww8/YMSIET477lkNMVMwI5SXl2PVqlVYuHAh1q1bh6KiomrBgN+Hj4d2BwhyZouOjhZX48aNERERgYiICBiNRkiSBJ1OJ45QB4CqqirY7XZUVlbiypUrKCwsRElJCYqKiqp9Dt+Hx+j8Od70chAEgFatWmH06NGYOHEirr32WpcjtOuKSXj/5efn4/bbb8f27dsRFhYGs9msat8lJSVh+/btSExMFMe3hxTVhdrBqvqzzz7rtSkg/354eDgtXbpUPKMuPerOPgKi3xtczJkzh2644QYKDw93UaWNRqOLaSD3H/DfvYmk1BS/NhgM4v7VJcDIP+v897i4OBo/fjwtWrSICgsLHcyTYMh/4PXIzMwUxT1qbH6u8mvUqJFPj7qv1z4Ad05BIqJx48apbiDiLkSo1+tp3rx5QQEC8tCZs1f4+PHjNHfuXBozZgy1aNHC7ft4wowMEGyL8yVnZncX37OmzS+/d3VO23bt2tEf/vAHWrBggYu/Ipg6KTGD7tq1i9q0aeOTGpVvvvkmZOL9QQUALCHtdjuVlpaK2KvaBXGXbPL66687OMeCgapLnCkoKKCVK1fSiy++SNddd51bZ5tc+hqNRuFxd2bm2pjaGTycmZyv6hK2EhIS6MYbb6Q33niD0tLSqLy83G1OQ7DkM8gzCX/66ScRrlSjdcrzF7izb1VVVUgncwXcB+DOHsvNzcV1112HU6dOCdtKtVPjv44oq9WKqVOn4pNPPoHRaBTPChZiJ5o7R9jFixdx5MgR7N+/H/v27cPRo0eRlZWFS5cuqZoPN2afR99t3Lgx2rdvj6uuugp9+/ZF37590a1bNzRt2tStAzTYHGA2m034KN577z3MmDFDOF7V7DH2FTz66KP49NNPYbFYYDQaEcpUpwDA3mCDwYDffvsN119/PS5evAhJkhwcSmo2vcFggMViwfDhw/HNN9+gVatWQbtg7AhkJ5I7z/ilS5eQnZ2NrKwsnDx5EtnZ2cjOzkZeXh4uX76MK1euoLy8HGazGWazudb5MxgMaNSoEaKjo9G0aVMkJCQgKSkJ7dq1Q6dOndCxY0e0bdsWLVq0cMtYRBTUXm9e66qqKvzpT3/Cl19+CYPBUKNj1RPmnzBhAhYvXgy73e7gANUAwAeLtWPHDtx0000oKiryWhOQL1q7du0wf/58XHvttXXuhVYCCMxktWkuNpsNFRUVKC8vR1lZGaqqqlBRUSEiALzE7M3X6/WIiopCbGwsoqKiEBkZWeNGDgWGd7efMjMzMXnyZPz6669eCRWj0QiLxYIbb7wRP/30E4xGY8iF+4IqCuDOUcbpvBs2bBAdYryNDsj9CmFhYTRnzhwXj3CokHNqrrx+wJe2sjzbMFgOr1CSos3z8eOPP4qKPl+Uog8dOlTUKtSnPg8IpsEwU65Zs4YiIiIUl2PWljUIgO677z4RoqovpbnMqAwSzldNGYGhxuS1efmrqqroz3/+c7WdhtQw/6BBg+jy5cv18ih5BNuAGARWrVrl0CvOF7FuXtDOnTuLVk3O7ao0Cj3G5/VLT0+nIUOGuHRvghf9JwYMGECXLl0K6Vh/SAEAozgR0bp168TJPb7QBOB0AtBLL70kwlhad9/Qlfo2m43ef/99n5mOLCgGDx4smL++tndDsA6MQWDz5s0iLu4LTcA5X6Bv376irLi+onx9IzlYHzp0SJxGhWpajamR/MOGDRM9HuvznkAwD47Ngd27d4vuMr5wDDojvSRJ9Nxzz4nuvs4VfhoFB8l7DZaXl9Prr7/uYCZ6mx4tb0BbWlpaL23+kAIAOQhkZGRQamqqTzIG4aaHGwDq2LEjfffddw7P1oCg7sm5u/CKFSscOgt7qxnK/UNTpkwRz2oIviGEwiB5QS5cuCC6tvhSE3DeRLfddhvt3bvX4fmaf6BuGF/OhEeOHKGJEyf6RN13LuwBQM8//7xY74YC/AiVgTIIlJeX0z333OOzDeAMAgwsRqORHn/8cTp79qzDGLSIQWAYX56ncf78eZoxY4ZDaNgXTmEGfb1eT5988omQ+g1J60MoDVaOzC+99JLPVMCatIFmzZrRzJkzKTMz08EJpZkG/pf4ly5dojfffNOhWtJXmh/fJz4+nn755RcHc7MhEUJtwHIH3cKFCyk6OtrrRqPV2YXyzRYTE0OPPPII/fbbbw6ApJkHvllTuY1/6dIlmj17tsPRYd70kKzO3u/Zs6dYz1Cv6mswAOBsEuzZs0ccPOGrTYIaetdHRETQ5MmTRR9CuVagAYFyaS/XpE6fPk0zZ86k1q1b+9TOl9v7fK+7776bioqKGqzkD3kAkINAYWGh8As4d6D1l0ag0+lo9OjR9MsvvzhIL0631cDAM2lPRLRv3z6aNm0axcbG1niegC9UfkmSaPbs2S57SAOAECW5zfjRRx/5NH0YtZz8Clmf/w8++MChv73cZ9HQwcDd+Yjl5eW0bNkyGj16tAOw+lqLkwN3SkqKSAHX1qWeAICz82jPnj3Up08fr/PBPd1Y8vs3bdqUJk+eTCtXrnTplMP99hvKpquu+9GBAwfo5Zdfpi5dutR6kIivpD4AmjRpEuXn5zd4lb9eAoCcyYh+P+hh+vTpPvcc12RbOj+jU6dO9Mwzz1BaWprLhpNX5dU3m95dmPTYsWM0e/ZsGjJkiMM8yc9V9JffJi4ujr744gsHTUSjegoAzibB6tWrhaTx12ZzBwTOtmu3bt3o6aefprVr11JxcbFbxgklc8G5N4E7IDt8+DC99957NGzYMLcnCPnSvkc1Zw7eeuutlJGRIfaFFrp1paDoCOSvjjqSJKG4uBgzZ87Exx9/LPoCenMYiZK+8Xq93qUFVdu2bXH11VfjhhtuwNVXX41OnTrBYDC47RfIXXzkV13MpfyqrkNRbm4u9u3bhw0bNmDz5s04dOiQw3kPkiSJdfHXfPNZCvHx8Xj99dfxyCOPOHQI0ihIW4L5u+koAKSlpWHGjBnYsWOHaPNktVoRiNdnMJAzNjNFly5dMGDAAAwaNAh9+vRBp06dEBMTU2NrLueGn87/VtcU1N278u/I6dCPmtp/2e12ZGVl4dChQ9ixYwd27NiB9PR0XLlyxaXvIDkdfOLzDSxrAgsAEyZMwKxZs5CcnOxyWpNGDQwAeGNbLBZx9NMnn3yCN954AwUFBWKTe9OAVM2GdXeSDlOrVq3QsWNH9OjRA926dUNqairatm2L+Ph4REREBHz+Ll++jJycHJw6dQqHDx/GoUOHcOTIEZw6dQoVFRXVAh25OUXI1yTv89etWze8/vrruOOOO1zAX6MGDABy6ckS7ezZs3j99dfxz3/+02GjBBII5Op9TWcDAkB4eDhatGiBpKQktG3bFm3btkViYiISExMRHx+P2NhYxMbGIjw8HGFhYTAajTAYDG4ZwGazwWKxwGw2o6qqShwNVlhYiLy8PJw7dw65ubk4ffo0cnJykJ2djfz8fLfjkh8/Fgizyp05ERsbi+eeew5PPfUUIiMjNamvAUDNxG3IAWDHjh145ZVXsHr1aiHBWMWtswWRqd6eMpYkSWjUqBFMJhPCw8MRHh4Ok8kESZIcGMFut8NisaCyslJ0ETabzS6SvLpn8JjkVyBJ7r+RJAkPPPAAXnjhBXTo0EGT+hoAeE7OB3j+8ssvePPNN7F9+/aAOKzUagryixnQV5KXGdzZfOI5qMtt4qyhjR07Fi+88AIGDhwoQN3d+DXSAKBWIGDJb7fb8f333+Pdd9/Fnj17xO/ZsxzUi+i08T1hBPmyB+sWcI7Y3HLLLXjuuecwfPhwAL9796s7SEUjDQAUmQUsQaxWK5YuXYoPP/xQaAR6vV54mrXp8j+Yyb36ADB69GhMnz4dI0aMcNAENHVfAwCfktyGtNvtWLVqFT799FOsXLlSaAvBZh7UF3LWtho1aoQ77rgDf/rTnzBkyBAB1J6clKSRBgCqif57nJbcpty1axfmzZuHZcuWiVi3HCi0KVTP9AaDAVarVQBqYmIiJk2ahClTpqBbt25ufTYaaQAQMI1AHqbLycnB4sWLsWDBAqSnpzvYqhoYeK7iu8uDGDJkCCZPnozx48cjLi5Ok/gaAAQXEMgZ3WazYePGjVi0aBFWrFiBCxcuiM8GIvutvjB9UlISxowZg4kTJwo1nxnf3bHpGmkAEBTmgTx3/9KlS1i1ahWWLVuGTZs2obCw0MWurau4eV2r9+7Sn+Pi4jBixAiMHz8eN954I2JjY8Xc8snFWjhPA4CgBwKW8HIwOHfuHNavX4+ff/4ZW7ZsQV5ensP32K8QqFTZQEp4eQKTc7SkefPmuPbaazFmzBjceOONaNasWbXalUYaAIQkGMjVXAAoLCzEzp07sXbtWmzduhWHDx9GZWWlW0Coy+w6NczurN0450kYDAakpqZi+PDhGDVqFAYNGoSmTZu6ML0m7TUAqJcmgjvHVUZGBnbu3IlNmzZh9+7dOHnypAsgyEGB7ycHhUAulbsyZHfMzgyfnJyM/v3745prrsHgwYPRrVs3hznQmF4DgAZrJjinqdpsNpw+fRqHDh3Cvn37sHfvXmRkZCAnJwdms7lGu9q5L4A34OCujLg2B6ZOp0OrVq3QoUMH9OrVCwMHDkSvXr3QoUMHhIWFOXxWY3oNADSSSXJ2hjk3AAGAyspKZGdn48SJE8jIyMCxY8dw6tQp5OTkIC8vDyUlJQFNSY6IiEBCQgJatmyJlJQUdO7cGampqejcuTPatGnjtmcBVzO6AyqNNADQyAkQ+Kop5GWxWFBYWIj8/HycO3cOeXl5uHDhAi5evIhLly7h8uXLKC4uRmlpKSorK2GxWIQTjhNsdDodDAaDSLwxGo0wmUyIiopC06ZNERcXh2bNmokS45YtW6Jly5aIj49HeHi423HJvfsaw2sAoJGPQYEZS2ks3GazCeZkVZ4dlHwp8bjLTYK6bk+mkQYADRIYnAHC2SZXw5TVRR7k99EYXQMAjUIUMGpcdI2pNfovGbQpqGeIrjG3RgpIS7bWSKMGTP8Pn0ictQEjjKQAAAAASUVORK5CYII="/>
<text x="102" y="54" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:29px"><tspan style="fill:#1a2027;font-weight:700">Bitcoin After Life Protocol</tspan><tspan style="fill:#5b6672;font-weight:400"> — plugin → Will-Executor → Bitcoin flow</tspan></text>
<line x1="40" y1="86" x2="1880" y2="86" stroke="#dfe4ea" stroke-width="1"/>
<rect x="40" y="104" width="520" height="624" rx="16" ry="16" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="40" y="104" width="520" height="64" rx="16" ry="16" fill="#e6eefc" stroke="none" stroke-width="1"/>
<rect x="40" y="144" width="520" height="24" rx="0" ry="0" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="64" y="134" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:19px;font-weight:700;fill:#2d6cdf;letter-spacing:0.3px">ELECTRUM PLUGIN</text>
<text x="64" y="156" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:400;fill:#2d6cdf">Python · v0.6.1</text>
<line x1="40" y1="168" x2="560" y2="168" stroke="#dfe4ea" stroke-width="1"/>
<rect x="474" y="118" width="30" height="30" rx="7" ry="7" fill="#3776ab" stroke="none" stroke-width="1"/>
<rect x="492" y="134" width="30" height="30" rx="7" ry="7" fill="#ffd343" stroke="none" stroke-width="1"/>
<circle cx="481" cy="127" r="2.4" fill="#ffd343"/>
<circle cx="513" cy="155" r="2.4" fill="#3776ab"/>
<rect x="195.0" y="200" width="210" height="130" rx="10" ry="10" fill="#11202f" stroke="#0a121b" stroke-width="1"/>
<rect x="211.0" y="216" width="37" height="7" rx="3" ry="3" fill="#60a5fa" stroke="none" stroke-width="1"/>
<rect x="256.0" y="216" width="69" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="333.0" y="216" width="32" height="7" rx="3" ry="3" fill="#22d3ee" stroke="none" stroke-width="1"/>
<rect x="211.0" y="231.5" width="34" height="7" rx="3" ry="3" fill="#34d399" stroke="none" stroke-width="1"/>
<rect x="253.0" y="231.5" width="65" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="326.0" y="231.5" width="57.0" height="7" rx="3" ry="3" fill="#f59e0b" stroke="none" stroke-width="1"/>
<rect x="211.0" y="247.0" width="55" height="7" rx="3" ry="3" fill="#60a5fa" stroke="none" stroke-width="1"/>
<rect x="274.0" y="247.0" width="32" height="7" rx="3" ry="3" fill="#f59e0b" stroke="none" stroke-width="1"/>
<rect x="211.0" y="262.5" width="63" height="7" rx="3" ry="3" fill="#60a5fa" stroke="none" stroke-width="1"/>
<rect x="282.0" y="262.5" width="31" height="7" rx="3" ry="3" fill="#22d3ee" stroke="none" stroke-width="1"/>
<rect x="211.0" y="278.0" width="35" height="7" rx="3" ry="3" fill="#f59e0b" stroke="none" stroke-width="1"/>
<rect x="254.0" y="278.0" width="68" height="7" rx="3" ry="3" fill="#a78bfa" stroke="none" stroke-width="1"/>
<rect x="330.0" y="278.0" width="53.0" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="211.0" y="293.5" width="53" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="272.0" y="293.5" width="42" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="322.0" y="293.5" width="61.0" height="7" rx="3" ry="3" fill="#22d3ee" stroke="none" stroke-width="1"/>
<rect x="211.0" y="309.0" width="54" height="7" rx="3" ry="3" fill="#f59e0b" stroke="none" stroke-width="1"/>
<rect x="273.0" y="309.0" width="62" height="7" rx="3" ry="3" fill="#3b82f6" stroke="none" stroke-width="1"/>
<rect x="343.0" y="309.0" width="40.0" height="7" rx="3" ry="3" fill="#34d399" stroke="none" stroke-width="1"/>
<rect x="274.0" y="330" width="52" height="12" rx="2" ry="2" fill="#aeb8c4" stroke="none" stroke-width="1"/>
<rect x="254.0" y="342" width="92" height="8" rx="3" ry="3" fill="#c2ccd6" stroke="none" stroke-width="1"/>
<rect x="80" y="372" width="440" height="40" rx="9" ry="9" fill="#e6eefc" stroke="#cfe0fb" stroke-width="1"/>
<text x="300.0" y="397" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px;font-weight:600;fill:#2d6cdf">Sign Will</text>
<rect x="80" y="422" width="440" height="40" rx="9" ry="9" fill="#e6eefc" stroke="#cfe0fb" stroke-width="1"/>
<text x="300.0" y="447" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px;font-weight:600;fill:#2d6cdf">Broadcast · Invalidate Will</text>
<rect x="80" y="500" width="440" height="86" rx="10" ry="10" fill="#eef1f4" stroke="#dfe4ea" stroke-width="1"/>
<text x="98" y="528" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13.5px;font-weight:600;fill:#1a2027">↗ External call by the plugin</text>
<text x="98" y="552" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:400;fill:#5b6672">GET bitcoin-after.life → /welist</text>
<text x="98" y="570" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:400;fill:#5b6672">to discover Will-Executor servers.</text>
<text x="300.0" y="706" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12.5px;font-weight:400;fill:#5b6672">Keys never leave the device — Electrum signs.</text>
<rect x="588" y="104" width="664" height="624" rx="16" ry="16" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="588" y="104" width="664" height="64" rx="16" ry="16" fill="#fbf0df" stroke="none" stroke-width="1"/>
<rect x="588" y="144" width="664" height="24" rx="0" ry="0" fill="#fbf0df" stroke="none" stroke-width="1"/>
<text x="612" y="134" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:19px;font-weight:700;fill:#9a5a12;letter-spacing:0.3px">WILL-EXECUTOR</text>
<text x="612" y="156" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:400;fill:#9a5a12">bal-server (Rust · HTTP :9137) + bal-pusher (Rust · ZMQ :28332)</text>
<line x1="588" y1="168" x2="1252" y2="168" stroke="#dfe4ea" stroke-width="1"/>
<rect x="612" y="196" width="300" height="372" rx="12" ry="12" fill="#ffffff" stroke="#cbd2da" stroke-width="1.4"/>
<text x="630" y="226" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:17px;font-weight:700;fill:#1a2027">bal-server</text>
<text x="630" y="246" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#5b6672">HTTP API · parses tx &amp; checks fee</text>
<line x1="626" y1="258" x2="898" y2="258" stroke="#dfe4ea" stroke-width="1"/>
<rect x="630" y="267" width="46" height="21" rx="5" ry="5" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="653" y="282" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#2d6cdf">GET</text>
<text x="686" y="282" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/</text>
<rect x="630" y="300" width="46" height="21" rx="5" ry="5" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="653" y="315" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#2d6cdf">GET</text>
<text x="686" y="315" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/.pub_key.pem</text>
<rect x="630" y="333" width="46" height="21" rx="5" ry="5" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="653" y="348" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#2d6cdf">GET</text>
<text x="686" y="348" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/version</text>
<rect x="630" y="366" width="46" height="21" rx="5" ry="5" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="653" y="381" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#2d6cdf">GET</text>
<text x="686" y="381" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/{chain}/info</text>
<rect x="630" y="399" width="46" height="21" rx="5" ry="5" fill="#e6eefc" stroke="none" stroke-width="1"/>
<text x="653" y="414" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#2d6cdf">GET</text>
<text x="686" y="414" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/{chain}/stats</text>
<rect x="630" y="432" width="46" height="21" rx="5" ry="5" fill="#dcf1f1" stroke="none" stroke-width="1"/>
<text x="653" y="447" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#0e8a8a">POST</text>
<text x="686" y="447" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/{chain}/pushtxs</text>
<rect x="630" y="465" width="46" height="21" rx="5" ry="5" fill="#dcf1f1" stroke="none" stroke-width="1"/>
<text x="653" y="480" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#0e8a8a">POST</text>
<text x="686" y="480" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/searchtx</text>
<rect x="630" y="498" width="46" height="21" rx="5" ry="5" fill="#dcf1f1" stroke="none" stroke-width="1"/>
<text x="653" y="513" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#0e8a8a">POST</text>
<text x="686" y="513" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:400;fill:#1a2027">/data/{chain}</text>
<path d="M558,345.875 L586,345.875 L586,341.0 L612,354 L586,367.0 L586,362.125 L558,362.125 Z" fill="#2d6cdf"/>
<text x="586.0" y="340" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:600;fill:#2d6cdf">HTTP requests</text>
<path d="M1092,210 A55.0,10 0 0 0 1202,210 L1202,310 A55.0,10 0 0 1 1092,310 Z" fill="#dbe9fb" stroke="#2d6cdf" stroke-width="1.5"/>
<ellipse cx="1147.0" cy="210" rx="55.0" ry="10" fill="#ffffff" stroke="#2d6cdf" stroke-width="1.5"/>
<line x1="1104" y1="298" x2="1190" y2="298" stroke="#2d6cdf" stroke-width="1"/>
<line x1="1104" y1="286" x2="1190" y2="286" stroke="#2d6cdf" stroke-width="1"/>
<text x="1147" y="362" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px;font-weight:700;fill:#1a2027">bal.db</text>
<text x="1147" y="382" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#5b6672">Shared SQLite</text>
<line x1="920" y1="244" x2="1084" y2="244" stroke="#f7931a" stroke-width="2.5"/>
<line x1="1084" y1="244" x2="1076.20577136594" y2="248.5" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="1084" y1="244" x2="1076.20577136594" y2="239.5" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="1084" y1="272" x2="920" y2="272" stroke="#f7931a" stroke-width="2.5"/>
<line x1="920" y1="272" x2="927.79422863406" y2="267.5" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="920" y1="272" x2="927.7942286340599" y2="276.5" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<text x="1002.0" y="230" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#9a5a12">Stores / queries</text>
<text x="1002.0" y="292" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#9a5a12">TX data (SQLite)</text>
<rect x="942" y="464" width="286" height="104" rx="12" ry="12" fill="#ffffff" stroke="#cbd2da" stroke-width="1.4"/>
<text x="960" y="494" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:17px;font-weight:700;fill:#1a2027">bal-pusher</text>
<text x="960" y="514" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11.5px;font-weight:400;fill:#5b6672">watches blocks · broadcasts via RPC</text>
<rect x="1110" y="526" width="46" height="24" rx="5" ry="5" fill="#fbf0df" stroke="#eed8b4" stroke-width="1"/>
<text x="1133" y="542" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#9a5a12">ZMQ</text>
<rect x="1164" y="526" width="46" height="24" rx="5" ry="5" fill="#fbf0df" stroke="#eed8b4" stroke-width="1"/>
<text x="1187" y="542" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11px;font-weight:700;fill:#9a5a12">RPC</text>
<line x1="1114" y1="320" x2="1132" y2="462" stroke="#f7931a" stroke-width="2.5"/>
<line x1="1132" y1="462" x2="1126.5555661100914" y2="454.83354064977584" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="1132" y1="462" x2="1135.4841189075282" y2="453.7017522670022" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="1170" y1="462" x2="1166" y2="320" stroke="#f7931a" stroke-width="2.5"/>
<line x1="1166" y1="320" x2="1170.7176843817213" y2="327.6644278373838" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<line x1="1166" y1="320" x2="1161.7212529782137" y2="327.9178484402995" stroke="#f7931a" stroke-width="2.5" stroke-linecap="round"/>
<text x="930" y="350" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11.5px;font-weight:400;fill:#9a5a12">reads pending TXs</text>
<text x="930" y="370" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:11.5px;font-weight:400;fill:#9a5a12">updates status</text>
<rect x="1430" y="104" width="450" height="624" rx="16" ry="16" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="1430" y="104" width="450" height="64" rx="16" ry="16" fill="#fbf0df" stroke="none" stroke-width="1"/>
<rect x="1430" y="144" width="450" height="24" rx="0" ry="0" fill="#fbf0df" stroke="none" stroke-width="1"/>
<text x="1454" y="134" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:19px;font-weight:700;fill:#9a5a12;letter-spacing:0.3px">BITCOIN CORE</text>
<text x="1454" y="156" text-anchor="start" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12.5px;font-weight:400;fill:#9a5a12">Network · Blockchain</text>
<line x1="1430" y1="168" x2="1880" y2="168" stroke="#dfe4ea" stroke-width="1"/>
<circle cx="1836" cy="136" r="15" fill="#b7410e"/>
<text x="1836" y="142" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:16px;font-weight:700;fill:#fff">R</text>
<circle cx="1655.0" cy="254" r="40" fill="#f7931a"/>
<text x="1655.0" y="266" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:44px;font-weight:700;fill:#fff"></text>
<line x1="1655.0" y1="254" x2="1737.2724133595216" y2="218.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1725.2724133595216" y="206.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1737.2724133595216" y="223.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<line x1="1655.0" y1="254" x2="1737.2724133595216" y2="290.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1725.2724133595216" y="278.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1737.2724133595216" y="295.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<line x1="1655.0" y1="254" x2="1655.0" y2="326.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1643.0" y="314.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1655.0" y="331.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<line x1="1655.0" y1="254" x2="1572.7275866404784" y2="290.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1560.7275866404784" y="278.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1572.7275866404784" y="295.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<line x1="1655.0" y1="254" x2="1572.7275866404784" y2="218.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1560.7275866404784" y="206.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1572.7275866404784" y="223.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<line x1="1655.0" y1="254" x2="1655.0" y2="182.0" stroke="#cfe0fb" stroke-width="2"/>
<rect x="1643.0" y="170.0" width="24" height="24" rx="5" ry="5" fill="#e6eefc" stroke="#2d6cdf" stroke-width="1.5"/>
<text x="1655.0" y="187.0" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700;fill:#2d6cdf"></text>
<text x="1655.0" y="428" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13.5px;font-weight:600;fill:#1a2027">memory pool</text>
<rect x="1520" y="434" width="246" height="22" rx="4" ry="4" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1526" y="438" width="246" height="22" rx="4" ry="4" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1532" y="442" width="246" height="22" rx="4" ry="4" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1538" y="446" width="246" height="22" rx="4" ry="4" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1544" y="450" width="246" height="22" rx="4" ry="4" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1500" y="504" width="80" height="52" rx="8" ry="8" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<rect x="1530" y="526" width="20" height="16" rx="3" ry="3" fill="none" stroke="#2d6cdf" stroke-width="2"/>
<path d="M1534,526 v-5 a6,6 0 0 1 12,0 v5" fill="none" stroke="#2d6cdf" stroke-width="2"/>
<line x1="1580" y1="530" x2="1600" y2="530" stroke="#cfe0fb" stroke-width="2"/>
<line x1="1600" y1="530" x2="1592.20577136594" y2="534.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<line x1="1600" y1="530" x2="1592.20577136594" y2="525.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<rect x="1600" y="504" width="80" height="52" rx="8" ry="8" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<text x="1640" y="536" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#5b6672">block</text>
<line x1="1680" y1="530" x2="1700" y2="530" stroke="#cfe0fb" stroke-width="2"/>
<line x1="1700" y1="530" x2="1692.20577136594" y2="534.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<line x1="1700" y1="530" x2="1692.20577136594" y2="525.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<rect x="1700" y="504" width="80" height="52" rx="8" ry="8" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<text x="1740" y="536" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#5b6672">block</text>
<line x1="1780" y1="530" x2="1800" y2="530" stroke="#cfe0fb" stroke-width="2"/>
<line x1="1800" y1="530" x2="1792.20577136594" y2="534.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<line x1="1800" y1="530" x2="1792.20577136594" y2="525.5" stroke="#cfe0fb" stroke-width="2" stroke-linecap="round"/>
<rect x="1800" y="504" width="80" height="52" rx="8" ry="8" fill="#dce9fb" stroke="#2d6cdf" stroke-width="1"/>
<text x="1840" y="536" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:400;fill:#5b6672"></text>
<text x="1655.0" y="582" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12.5px;font-weight:400;fill:#5b6672">locktime-gated blocks</text>
<path d="M1232,464.5 L1490,464.5 L1490,460.0 L1516,472 L1490,484.0 L1490,479.5 L1232,479.5 Z" fill="#f7931a"/>
<text x="1331.0" y="456" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:600;fill:#9a5a12">rpc.send_raw_transaction(tx)</text>
<line x1="1438" y1="534" x2="1234" y2="534" stroke="#2d6cdf" stroke-width="2.6"/>
<line x1="1234" y1="534" x2="1241.79422863406" y2="529.5" stroke="#2d6cdf" stroke-width="2.6" stroke-linecap="round"/>
<line x1="1234" y1="534" x2="1241.79422863406" y2="538.5" stroke="#2d6cdf" stroke-width="2.6" stroke-linecap="round"/>
<text x="1332.0" y="552" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:12px;font-weight:600;fill:#2d6cdf">ZMQ :28332 · hashblock</text>
<rect x="40.0" y="752" width="445.0" height="252" rx="12" ry="12" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="40.0" y="752" width="6" height="252" rx="0" ry="0" fill="#f7931a" stroke="none" stroke-width="1"/>
<rect x="62.0" y="774" width="34" height="26" rx="7" ry="7" fill="#1a2027" stroke="none" stroke-width="1"/>
<text x="79.0" y="792" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:700;fill:#fff">01</text>
<text x="108.0" y="793" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:14.5px;font-weight:700;fill:#1a2027">FEE = NORMAL BTC OUTPUT</text>
<text x="64.0" y="830" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">The plugin adds an output to the executor's</text>
<text x="64.0" y="851" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">address with value = its base_fee. The server</text>
<text x="64.0" y="872" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">accepts a tx only if it pays its own address at</text>
<text x="64.0" y="893" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">least the fixed fee. The executor is paid only</text>
<text x="64.0" y="914" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">when the transaction confirms on-chain.</text>
<rect x="505.0" y="752" width="445.0" height="252" rx="12" ry="12" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="505.0" y="752" width="6" height="252" rx="0" ry="0" fill="#2d6cdf" stroke="none" stroke-width="1"/>
<rect x="527.0" y="774" width="34" height="26" rx="7" ry="7" fill="#1a2027" stroke="none" stroke-width="1"/>
<text x="544.0" y="792" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:700;fill:#fff">02</text>
<text x="573.0" y="793" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:14.5px;font-weight:700;fill:#1a2027">CHECK — SERVER-SIDE VERIFY</text>
<text x="529.0" y="830" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">POST /searchtx with a txid returns</text>
<text x="529.0" y="851" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">{status, tx, address, fee, time}. The plugin</text>
<text x="529.0" y="872" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">compares the returned tx with its own to mark</text>
<text x="529.0" y="893" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">the will Pushed / Checked, or Check-failed if</text>
<text x="529.0" y="914" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">the executor no longer holds it.</text>
<rect x="970.0" y="752" width="445.0" height="252" rx="12" ry="12" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="970.0" y="752" width="6" height="252" rx="0" ry="0" fill="#0e8a8a" stroke="none" stroke-width="1"/>
<rect x="992.0" y="774" width="34" height="26" rx="7" ry="7" fill="#1a2027" stroke="none" stroke-width="1"/>
<text x="1009.0" y="792" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:700;fill:#fff">03</text>
<text x="1038.0" y="793" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:14.5px;font-weight:700;fill:#1a2027">LOCKTIME TRIGGERS BROADCAST</text>
<text x="994.0" y="830" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">bal-pusher subscribes to Bitcoin Core's ZMQ</text>
<text x="994.0" y="851" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">hashblock topic. On each new block it selects</text>
<text x="994.0" y="872" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">pending txs whose locktime has passed and</text>
<text x="994.0" y="893" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">calls rpc.send_raw_transaction, then records</text>
<text x="994.0" y="914" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">success or a push error.</text>
<rect x="1435.0" y="752" width="445.0" height="252" rx="12" ry="12" fill="#ffffff" stroke="#dfe4ea" stroke-width="1.2"/>
<rect x="1435.0" y="752" width="6" height="252" rx="0" ry="0" fill="#9a5a12" stroke="none" stroke-width="1"/>
<rect x="1457.0" y="774" width="34" height="26" rx="7" ry="7" fill="#1a2027" stroke="none" stroke-width="1"/>
<text x="1474.0" y="792" text-anchor="middle" style="font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:13px;font-weight:700;fill:#fff">04</text>
<text x="1503.0" y="793" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:14.5px;font-weight:700;fill:#1a2027">USER-DRIVEN INVALIDATION</text>
<text x="1459.0" y="830" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">To anticipate or postpone safely, the user</text>
<text x="1459.0" y="851" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">signs and broadcasts an invalidation tx that</text>
<text x="1459.0" y="872" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">spends every still-valid UTXO to a self-owned</text>
<text x="1459.0" y="893" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">change address. The server never</text>
<text x="1459.0" y="914" text-anchor="start" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:400;fill:#5b6672">auto-invalidates.</text>
<rect x="740.0" y="1018" width="440" height="40" rx="20" ry="20" fill="#e6eefc" stroke="#cfe0fb" stroke-width="1"/>
<text x="960.0" y="1044" text-anchor="middle" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px"><tspan style="fill:#5b6672;font-weight:400">Project site: </tspan><tspan style="fill:#2d6cdf;font-weight:700">bitcoin-after.life</tspan></text>
<text x="1880" y="1044" text-anchor="end" style="font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:12.5px;font-weight:400;fill:#5b6672">© Bitcoin After Life Protocol</text>
</svg>