{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "334940ba",
   "metadata": {},
   "source": [
    "# 01 . a power-series model of the ear\n",
    "\n",
    "learning notebook for the ThirdEar mechanism: build the plugin's stimulus in numpy,\n",
    "pass it through a toy model of the cochlea's nonlinearity, and watch the distortion\n",
    "product appear at a frequency that was never in the signal.\n",
    "\n",
    "figure style follows the conventions of rougier's *scientific visualization* book\n",
    "(cloned at `../../scientific-visualization-book/`): minimal ink, direct labels,\n",
    "no chartjunk. colors are the databurn.org palette: light neutral gray, one teal, one orange.\n",
    "\n",
    "**what this model is**: a memoryless power-series nonlinearity, the simplest honest\n",
    "demonstration. **what it is not**: a cochlea. it cannot show place-dependence, the\n",
    "f2/f1 ratio window, or level curves; that needs the CARFAC model (next notebook).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a581651a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:10.880815Z",
     "iopub.status.busy": "2026-09-30T02:55:10.880815Z",
     "iopub.status.idle": "2026-09-30T02:55:11.481050Z",
     "shell.execute_reply": "2026-09-30T02:55:11.481050Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "phantom fp = 110.0 Hz -> primaries: [2970. 3080. 3190. 3300. 3410. 3520.] (spacing = fp everywhere)\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# databurn.org palette: the page gray, ink, one teal, one orange\n",
    "BONE, PANEL = '#E8EAEC', '#EEF0F1'\n",
    "INK, DIM, HAIR = '#141516', '#55595D', '#C5C9CD'\n",
    "TEAL, ORANGE = '#00857A', '#E14A00'\n",
    "\n",
    "# rougier-informed defaults: light ink, open spines, mono annotations\n",
    "# rougier, chapter 1 and the ten rules: one figure size for the medium\n",
    "# (8 x 3 in at 110 dpi reads at notebook width without scaling), open\n",
    "# spines, ticks outward and few, titles left-aligned as a caption\n",
    "# would be, no legend boxes (labels sit on the data), one accent colour\n",
    "# for the thing the figure is about\n",
    "plt.rcParams.update({\n",
    "    'figure.facecolor': BONE, 'axes.facecolor': PANEL,\n",
    "    'axes.edgecolor': INK, 'axes.linewidth': 0.8,\n",
    "    'axes.spines.top': False, 'axes.spines.right': False,\n",
    "    'xtick.color': DIM, 'ytick.color': DIM, 'text.color': INK,\n",
    "    'xtick.direction': 'out', 'ytick.direction': 'out',\n",
    "    'xtick.major.size': 3, 'ytick.major.size': 3,\n",
    "    'axes.labelcolor': INK, 'font.family': 'monospace', 'font.size': 9,\n",
    "    'axes.titlesize': 10, 'axes.titlelocation': 'left',\n",
    "    'figure.figsize': (8, 3), 'figure.dpi': 110, 'savefig.dpi': 200,\n",
    "    'legend.frameon': False,\n",
    "})\n",
    "\n",
    "def db_at(x, hz):\n",
    "    '''level at exactly hz, in dB re a full-scale sine: a goertzel under a\n",
    "    blackman-harris window, the same instrument the plugin's honesty meter\n",
    "    and its tests use. an fft bin only agrees when hz sits on a bin.'''\n",
    "    n = len(x)\n",
    "    i = np.arange(n)\n",
    "    w = (0.35875 - 0.48829 * np.cos(2 * np.pi * i / n)\n",
    "         + 0.14128 * np.cos(4 * np.pi * i / n) - 0.01168 * np.cos(6 * np.pi * i / n))\n",
    "    z = np.sum(x * w * np.exp(-2j * np.pi * hz * i / SR))\n",
    "    return 20 * np.log10(np.abs(z) / (w.sum() / 2) + 1e-12)\n",
    "\n",
    "SR = 48_000\n",
    "DUR = 1.0\n",
    "t = np.arange(int(SR * DUR)) / SR\n",
    "\n",
    "def solve_qdt(fp, carrier=3000.0, n=6):\n",
    "    '''mirror of thirdear's solver: exact harmonic comb of fp nearest carrier'''\n",
    "    m = max(2, round(carrier / fp))\n",
    "    return np.array([(m + k) * fp for k in range(n) if (m + k) * fp < 0.45 * SR])\n",
    "\n",
    "def comb(freqs, phases=None):\n",
    "    '''phase-locked additive stimulus, peak-normalized like the plugin'''\n",
    "    if phases is None:\n",
    "        phases = np.zeros(len(freqs))\n",
    "    x = sum(np.sin(2 * np.pi * f * t + p) for f, p in zip(freqs, phases))\n",
    "    return x / len(freqs)\n",
    "\n",
    "def spectrum_db(x):\n",
    "    w = np.hanning(len(x))\n",
    "    mag = np.abs(np.fft.rfft(x * w))\n",
    "    mag /= mag.max()\n",
    "    return np.fft.rfftfreq(len(x), 1 / SR), 20 * np.log10(np.maximum(mag, 1e-9))\n",
    "\n",
    "fp = 110.0            # A2: the phantom the player asked for\n",
    "freqs = solve_qdt(fp)\n",
    "print(f'phantom fp = {fp} Hz -> primaries: {freqs} (spacing = fp everywhere)')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa638901",
   "metadata": {},
   "source": [
    "## 1. the stimulus is innocent\n",
    "\n",
    "everything ThirdEar outputs is up near the carrier. the phantom's frequency is\n",
    "empty by construction: if energy were there, it would not be an illusion."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "446bbb46",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:11.483056Z",
     "iopub.status.busy": "2026-09-30T02:55:11.483056Z",
     "iopub.status.idle": "2026-09-30T02:55:11.941727Z",
     "shell.execute_reply": "2026-09-30T02:55:11.941727Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAFCCAYAAAAHesd/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAZ39JREFUeJzt3Xd4VGXax/HvlCSTnpBKAgRC7x0p0kFQqiJWbNjr2vbdXXUVy666uvaGunZFUKQLWOhWei+ht/RKSCbJlPePwEAgpE6YhPw+1+VlTnvOfWbmhNzzPM99DEkpaU5ERERERETErYyeDkBERERERORCpGRLRERERESkBijZEhERERERqQFKtkRERERERGqAki0REREREZEaoGRLRERERESkBijZEhERERERqQFKtkRERERERGqAki0REREREZEaoGRLRERERESkBpg9HUBdsmfPHl5/7VWemvI0YWFhng6nhI/+9z8AJt96q8diWLx4EQvmz3ct//eVV/Hy8qqRc9W29+J8XntdpPerWG24T0VEROT8Uc/WGb7//nv+9dxzpW7LzspiyZIlWK3W8xxV+TZv3szmzZs9GkPr1m0YN348TZs2Y8mSJTgcjmq1dz7fi7LOVRHuvva6qC7dO556v2rDfSoiIiLnj3q2zrBv315+//03T4dRabXhm/KmTZvStGlT7Da7W9o7n+9Fdc/l7muvi+rSveOp96s23KciIiJy/ijZOmHq1PfYumUL+/btIzk5mQfuvw+AoKAgnvvXv0vse+zYMd5552327d1HixYtuOnmm7FYLK7tNpuNBQsW8Ocff2Cz2+jfvz+jRo3GYDBUKqa8vDy++24m27dtx8fiw5DBQ7i4f/8S+7zy3/+yf/8+ALp06UrHjh3PaictLY3PP/uMw0cO07ZNW1q1bsWc2bP57yuvAqeGeD3y6KMsWLDgnNd17Ngxvps5k+07tuPt7U2/fv245JIRlb6u8rjzvSgv5sqcyx0q8tkoL+aXXvoPcXFxXHXV1SXafnrKU/To0ZNRo0dX+FwV+YyVp7bdOzt37uTtt97kLw8+xDczZpCWnkbXrl256qqrKzVUsLShj5s2beTDDz7gpZf/i4+PD1D+/QXl36cVvQdFRESkbtEwwhN69+7DuPHjad2mDYGBgYwbP55x48czcuSlZ+37zyceJ8A/gF69ejFt2lc8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",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = comb(freqs)\n",
    "f, mag = spectrum_db(x)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(f, mag, color=TEAL, lw=0.8)\n",
    "ax.axvline(fp, color=ORANGE, lw=1.2, ls=(0, (4, 3)))\n",
    "ax.annotate(f'phantom register: {fp:.0f} Hz\\nNOTHING HERE', (fp, -20),\n",
    "            xytext=(fp * 1.6, -12), color=ORANGE, fontsize=8,\n",
    "            arrowprops=dict(arrowstyle='-', color=ORANGE, lw=0.7))\n",
    "ax.annotate('the comb: 6 primaries,\\nspaced exactly fp apart', (freqs[-1], -2),\n",
    "            xytext=(7000, -18), color=TEAL, fontsize=8,\n",
    "            arrowprops=dict(arrowstyle='-', color=TEAL, lw=0.7))\n",
    "ax.set(xscale='log', xlim=(40, 21000), ylim=(-90, 3),\n",
    "       xlabel='frequency (Hz)', ylabel='level (dB re max)',\n",
    "       title='the signal that leaves the plugin')\n",
    "ax.set_xticks([50, 100, 500, 1000, 5000, 20000],\n",
    "              ['50', '100', '500', '1k', '5k', '20k'])\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f36be25",
   "metadata": {},
   "source": [
    "## 2. a compressive asymmetric nonlinearity manufactures the phantom\n",
    "\n",
    "the cochlear amplifier compresses, and compresses *asymmetrically*. model that\n",
    "with the first terms of a power series (the same power series from our analog\n",
    "emulation notes):\n",
    "\n",
    "$$y = x + a_2 x^2 + a_3 x^3$$\n",
    "\n",
    "the even term (x^2) is what generates **difference tones** fj - fi: for our\n",
    "comb, every adjacent pair lands one exactly at fp, and they sum there.\n",
    "\n",
    "the odd term (x^3) is a different story, and it depends on where the comb\n",
    "sits. its products 2fi - fj and fi + fj - fk land at (m + i + j - k)*fp for\n",
    "partial indices in 0..N-1, so the lowest one is (m - N + 1)*fp. for a comb\n",
    "whose lowest harmonic number m exceeds the partial count N (fp below\n",
    "carrier/(N + 0.5): 461 Hz at the 3 kHz default with six partials) that never\n",
    "reaches fp, and the cubic term contributes nothing there at all. above that\n",
    "it can: at C5 the comb is harmonics 6..11 and the odd term does land at fp,\n",
    "where at these coefficients it sits under the quadratic term everywhere. the\n",
    "cell after the next one measures both cases, each term alone, and then the\n",
    "gap over the instrument's whole range of partial counts and harmonic numbers\n",
    "(N in 2..8, m in 2..N): 13-42 dB, the figure printed there and the one the\n",
    "technical note's build asserts against its own recomputation. **at A2 the\n",
    "phantom is purely a product of the asymmetric term; in general it is\n",
    "dominated by it.**\n",
    "\n",
    "one more thing the numbers below are not: calibrated. a2 = 0.25 and a3 = 0.15\n",
    "are round numbers chosen to make the effect visible, so the -13 dB in\n",
    "section 2 demonstrates existence, and its closeness to P&P's -12.5 dB\n",
    "eleven-tone figure is coincidence.\n",
    "\n",
    "that matters beyond bookkeeping. notebook 03 shows the mirror image: the Hopf\n",
    "normal form is purely cubic and produces a CDT but no QDT at all. two models,\n",
    "two disjoint halves of the same story."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "925282cc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:11.944735Z",
     "iopub.status.busy": "2026-09-30T02:55:11.944735Z",
     "iopub.status.idle": "2026-09-30T02:55:12.108594Z",
     "shell.execute_reply": "2026-09-30T02:55:12.108594Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "level at fp before the nonlinearity: -180.0 dB\n",
      "level at fp after  the nonlinearity:  -13.0 dB\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def ear(x, a2=0.25, a3=0.15):\n",
    "    '''toy cochlear nonlinearity: compressive, asymmetric, memoryless'''\n",
    "    return x + a2 * x**2 - a3 * x**3\n",
    "\n",
    "y = ear(x)\n",
    "f, magy = spectrum_db(y)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(f, magy, color=TEAL, lw=0.8)\n",
    "for k in range(1, 4):\n",
    "    ax.axvline(k * fp, color=ORANGE, lw=0.8, alpha=0.5)\n",
    "bin_fp = int(round(fp * DUR))\n",
    "ax.annotate(f'the phantom, born:\\n{fp:.0f} Hz and harmonics', (fp, magy[bin_fp]),\n",
    "            xytext=(300, -18), color=ORANGE, fontsize=8,\n",
    "            arrowprops=dict(arrowstyle='-', color=ORANGE, lw=0.7))\n",
    "ax.set(xscale='log', xlim=(40, 21000), ylim=(-90, 3),\n",
    "       xlabel='frequency (Hz)', ylabel='level (dB re max)',\n",
    "       title='the same signal after the ear-like nonlinearity')\n",
    "ax.set_xticks([50, 100, 500, 1000, 5000, 20000],\n",
    "              ['50', '100', '500', '1k', '5k', '20k'])\n",
    "plt.tight_layout()\n",
    "\n",
    "print(f'level at fp before the nonlinearity: {mag[bin_fp]:6.1f} dB')\n",
    "print(f'level at fp after  the nonlinearity: {magy[bin_fp]:6.1f} dB')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a784cf32",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:12.111603Z",
     "iopub.status.busy": "2026-09-30T02:55:12.110602Z",
     "iopub.status.idle": "2026-09-30T02:55:12.325475Z",
     "shell.execute_reply": "2026-09-30T02:55:12.325475Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fp = 110.00 Hz, harmonics 27..32: even term only   -29.2 dB, odd term only  -240.0 dB at fp (odd 210.8 dB under)\n",
      "fp = 523.25 Hz, harmonics 6..11: even term only   -29.2 dB, odd term only   -65.7 dB at fp (odd  36.5 dB under)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cubic gap range: 13.0-41.9 dB over N=2..8, m=2..N (smallest at N,m = (3, 2), largest at (8, 8))\n"
     ]
    }
   ],
   "source": [
    "# the parity claim above, measured rather than asserted: each term alone,\n",
    "# for a comb where the odd term cannot reach fp (A2, m = 27) and one where\n",
    "# it can (C5, m = 6). db_at is re a full-scale sine, not re the loudest bin\n",
    "# as in section 2, so the absolute numbers differ; the gap between the two\n",
    "# terms is what matters. -240 is the instrument's floor.\n",
    "def even_only(x, a2=0.25):\n",
    "    return x + a2 * x**2\n",
    "\n",
    "def odd_only(x, a3=0.15):\n",
    "    return x - a3 * x**3\n",
    "\n",
    "for fp_test in (fp, 523.25):\n",
    "    fr = solve_qdt(fp_test)\n",
    "    m = round(3000.0 / fp_test)\n",
    "    xx = comb(fr)\n",
    "    ev, od = db_at(even_only(xx), fp_test), db_at(odd_only(xx), fp_test)\n",
    "    print(f'fp = {fp_test:6.2f} Hz, harmonics {m}..{m + len(fr) - 1}: '\n",
    "          f'even term only {ev:7.1f} dB, odd term only {od:7.1f} dB at fp '\n",
    "          f'(odd {ev - od:5.1f} dB under)')\n",
    "\n",
    "# and the range section 2 quotes: the same gap over every comb the\n",
    "# instrument can play where the odd term reaches fp, N partials from\n",
    "# harmonic m with m <= N, each at C5. the technical note's gap_data()\n",
    "# is this loop, and its build asserts the two extremes against this line\n",
    "gaps = {}\n",
    "for N in range(2, 9):\n",
    "    for m in range(2, N + 1):\n",
    "        xx = comb(solve_qdt(523.25, carrier=m * 523.25, n=N))\n",
    "        gaps[(N, m)] = db_at(even_only(xx), 523.25) - db_at(odd_only(xx), 523.25)\n",
    "lo, hi = min(gaps.values()), max(gaps.values())\n",
    "print(f'cubic gap range: {lo:.1f}-{hi:.1f} dB over N=2..8, m=2..N '\n",
    "      f'(smallest at N,m = {min(gaps, key=gaps.get)}, largest at {max(gaps, key=gaps.get)})')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b696f8e",
   "metadata": {},
   "source": [
    "## 3. phase coherence is load-bearing\n",
    "\n",
    "pressnitzer & patterson (2001): the distortion spectrum is the *vector sum* of\n",
    "every pair's contribution. in-phase primaries add; scrambled phases partially\n",
    "cancel. this is why the plugin resets all oscillator phases together at note-on.\n",
    "\n",
    "a note on units: the levels in this section are hann-bin magnitudes re unit\n",
    "(the same estimator the technical note uses), so they read 12 dB under\n",
    "section 4 onward, which is dB re a full-scale sine via `db_at`. only\n",
    "differences are compared across sections."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a490519f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:12.328054Z",
     "iopub.status.busy": "2026-09-30T02:55:12.328054Z",
     "iopub.status.idle": "2026-09-30T02:55:13.833119Z",
     "shell.execute_reply": "2026-09-30T02:55:13.832509Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "phase-locked fp level: -41.2 dB\n",
      "random-phase median:   -49.2 dB (loss: 8.0 dB)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAFCCAYAAACEvv5EAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAUalJREFUeJzt3Xd4FOXax/Hf7qZseoBUeu+9F2lSxQI2UFGxe+y9Hn2P9dhRz1HQYy+0KIoNQQUC0nsvSg8JaSQhve3u+0dgIaRtwoYd4Pu5Lq8rM/PMPfeUxb33mXnGlJic6hAAAAAAwOPMnk4AAAAAAFCCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAu0ke/bs0f333asjR454OhWXnY05n43+/vtv3X/fvcrIyKiwzfz583T/ffc6/ysqKqo05qeffKJPP/nEzZnCVUb77BgtHwAA4BkUaCc5mpGhhQsXKj8/3y3x5s6dq5dfesktsSri7pxRvvT09CqPc5s2bTV23Dg1bdpMCxculN1urzTmli1btGXLFnenanhn4nPhyraM9tnxRD5n8lwAAADXeHk6gXPZvn17tXLlCk+ngTOkadOmatq0qWzFNpfa33LrrbWckTGdyc8Fn8HKcXwAADCe86JA+/abb3T48GHdd//9ZZYVFRbq0cce1R133Omcl5WVpSlT3te+vfvUsmVLTbrpJlmt1lLLv5s9Wzt27pCPj48GDBigkSNHyWQySZI+/PADbdu6Vfv27VNSUpLuv+9eSVJwcLBeevnfLue9a9cuvf/ef/XAgw/pm5gYpR5JVbdu3TR+/AR5e3uXanu6OUtSbm6uvvtutnZs3yFfq68uHHqhLhg4sNR2iouL9csvv2j1qlUqthVr4MCBuvjiS0rFcYUr25KkgwcPas733+tg3EHVj66vcZdfrubNm5dqc/999+qmm26WQw798MMP8vfz16SbblJ0dLRL+/7CC8+rffsO2rpli6LrR2v06NH6/LPPVLduPf3jrrtKHesjR47oi88/V0pqirp07qJrrrlG3j4+1dr3yW+9pf3790mSunbtpk6dOpVavmfPHr37ztt65NFH9csvv1R4TlNTU/XVl1/qUPwhtWvbTq3btNYPc+borclvVysfqerjnJOTo5iYWdq+bbt8fX10wcCBGj36olIxqjqnrn4uXL02KlOdz2BVnx13XPNn8rPsyvXj6vGp6rxX57MDAABcc17c4ujt7a0ZM6bL4XCUWbZt+3Yt+OMPRUZGOuc9+8w/FRgQqN69e2vGjOl66cUXnMuys7N19dVXKS0tTYMHD1Grlq306iuv6M0333C26du3n8aOG6c2bdsqKChIY8eN09hx48p8oa1KWtoRLVy4UPfcc7ciIiPUq1cvffzRR3r+uX+VaXu6OUvSww89qNmzZ6tHzx5q3669pk37Wt9++61zeXFxse6+6y698fpratOmjbp16663J0/WO+9UvyCoaluStGzZMl1x+Tjt379PAy8YqHr16unZZ59Renp6qXYLFy7U93O+1/vvva/OnTorIiJCk996y+V9X7F8ub6b/a06dOig/334oe6991517dpN3303W7Nnzy61rUcefkhhYWHq1auXPvvsUz399NPV3vdBgwdr7LhxOpKWVu4tjsdvdXv0kUcqPKf5+fm6/vqJWrdunQZeMFBJSUn659NPa9GiRdXOp6rjbLPZdPNNkzTn++/Vp29fNWvWXM8+84z+8+67peJUdU5d/Vy4cm1UpTqfwco+O+665s/kZ9mV68eV4+PKea/OZwcAALjmvOhB696jhzIzM7V3zx61aNlSr736qjp27KiLL7lEGzduUNOmTRUWFqaDBw5Ikq6bOFGXX36FJCkvL09Tprzv/FXZ19dXs2bFKCQkxBk/ODhYzz//nB566GF5eXmpS5cukqSdO3dq186dGjZs+Gnlf8MNN2jixOslSfXr19c9d9+t2++4Q02aNHW2Od2ci4qKtHz5cr362usaM2aMJOmqq68uNSjGnO+/1/Lly/TFl1+qR4+ekqSWLVvqjttv08SJ1ysiIsKl/XFlWw6HQ8/96/80bNgwvfb6iS+f1153Xbkxt2/bpphvvpXFYpEk5ebkuLzvknTZZWN19fjxmjPne3Xu3EVjx43TylUrtWvXzlLbue66ibpx0iRJUqNGjXXH7bfptttvV5s2bVzad0nq2bPk2P3808+VtqvsnM6e/a2OpKbqm2++VVBQkMZdfrkOxR/SqpUrXc5Dcu04z583Tzt37tQvc39Vo0aNJEkBAQF6/fXXdN3EiQoLC3PpnLryuXAljiuq8xms7Di765o/7kx8ll2J48rxceW8S65/dgAAgGvOiwKtUaNGioyM1MZNmxQZFaXZs7/Vrl27dPEll2jTxk3OL17Hde7cxfl3dP36ys7OVn5+vqxWq7y9vZWenq4vv/hC8Qnxys3JUXp6hgoLC5WVlaU6deq4Pf8+ffo4/+7du4/sdru2bdte6kvd6ebs7e2t1q1b67NPP5EcDnXu0kUNGzZUaGioM+6yZcvUuHHjUserZ8+eslgsWr9+ncs9hK5sa9++fTp8+LDGXHxJqXV9Krid8KKLxjiLM0nyDwhwbsuV83W8fUBAoAICj/3tH6CsrMxS2+l90rno1auXTCaTtm/fVq0CzVWVndPNmzapQ8eOCgoKOpFb797VLtBcOc7btm1VgwYNnF/SJalf/34qLCzU33//pbCwMJfOqSvcFac6KjvO7rrmjzsTn2VX4rjClfMuuf7ZAQAArjkvbnGUpO7de2jjxg1as3q1RowYqUOH4pSXl6dNmzaqe48epdqe/AXGbC55rsNuKxn4YcOGDbp83FglHE5Q//4DNHbcOPXr30+SZCsurpXcA/wDnH/7+vrKy8tLmUePuj3nTz75VMNHjND3c77XFZeP06iRI7R27Vrn8uycbGVnZ5caSv7+++6Vw+HQ4cOHq7VPVW0rJztbkkr1FFQmMiqy3Pmu7vvxx4lMJpPzWR6TySTbKSMxBgScOBfe3t7y8fFRVmaWSzlWV2XnNDMzU4EBgRXm5ipXjvPRzEwFBp66rZLpoyddh1WdU1e5K46rKjvO7rzmpTP3Wa4qjitcPe+ufnYAAIBrzoseNEnq0bOnpk37Wn5Wq3PAgR9++EHJycnOW85c8cOcOerYsZNeeeVV57z09Ixy25pN5nKfe6uuw4mJiq5fX1LJIBXFxcWKiopyeX1Xcw4JDdWdd/5Dd95ZMlDDww89qNdff00xMd9IkhrUb6D0tDSNHTeu1Hpjx41TixYtq7VPVW3r+P7u27dXXbt2rTKexVL+pVyd8+WKxMREZ4/C0YwMFRQUOAcjcebiVdKTV9Uw+6cjKjpamzdtKp3b4cRqx3HlOEdFRWnJ4sVyOBzOL+DHi5P6x9aXqj6nx1X1uXA1jitO9zPozmteOnOfZVdVdnxcPe8AAMC9zpsetB49emj/vn2KjY1V/379NOCCC/TxR/9TZFSUGjRo4HIcH18fZRzNUPGxX6szMjL01ZdflNs2LCxMKSkpysvLO63cZ82a6fw7ZtYshYSEqGevXm7NOSsrS3O+/162Y7+w+/v7Kzg4RD7eJ251u/yKKxQfH68GDRpq2LDhGjZsuIYOvVAF+QUu3zbl6rbCwsI0ePAQffLxx0pJSXHO37p1a6lf792x79Uxa9ZM5xfaWTGzFBQUpD59+5Zq06hRY0nS33//VePtVGXUqFHatWuXs2cpOztbc3+dW+04rhznYcOGKT09XfPmzZNU8tza9OnT1KBBA7Vr206Sa+f05G1W9LmoThxX9+90PoPuuuaPOxOf5eqo7Pi4ct4BAID7nTc9aC1btlRISIjCIyIUEhqqAf3766knUzR69Ohqxbnpppu0ODZWl1w8Rg0bNdK+ffs0dMhQ7dmzp0zbYcOH64MPpurycWPVsmUrhYaGVGuY/eMKCwo1buxl8vf3165du/Tiiy+VufXodHP28fHRmjVr9O6776hFy5ZKTUlRZmam3n7nxIhtXbp00ZNPPa1bb7lZjRs3VkBgoPbs3q2ePXtp4KBBLufjyrYk6aWXX9bjjz+mSy4eo/btOygz86gio6I0uRrDyFfnfLnCYbdr3NjLFBgYqB07duj5F15QcHBwqTatW7fWxRdfrHvuvltdunRVUHCQs8djzZo1zi/UW7dulSTnEOc33XRzmdttK9K3bz+NnzBBd95xuzp17qzDCQlq266dUpKTq71PVR3ndu3a666779Y/n35KM6ZP09GjR5WamqrJk992vmLA1XMqVf65qE4cV5zuZ9Bd1/xxZ+KzXB2VHR9XzjsAAHA/U2Jy6unfg3eWWLdurQICAtW2bVtJ0vLlyxUdHa1mzZpJKrllbe26terff4D8/PwkSSkpKdq8eZOGDBnqHISisLBQW7duVX5+vjp06CC73a7169dp4MBBZQaxyM/P1/bt25WRkS4fb59qvc9pxYrluv222xQbu1gpqSlKTU1Vu3btnQ/n10bOR44c0V9/7VLgseNU3hexvLw8bd++TYWFhWrVqnWpfKrDlW1J0sEDB3Tw4EFFR0erRcuyt5UtWPCHOnbsVOpVCSerat9XrFiuZs2aKyoqShs3blRwcLCaN2+uXbt2qaioSB07dlR6errWr1+nCy4YqH379ik1JUVt27WrdN937Niuw4cPy9vbWwMHlnyZT0xM1LZtW8ttf3wfXD2nUsk7rxIS4tW6dRv9Nn++pk2fpnnz5leYU2WqOs4pKSnatXOnfHx91bFjR/n7+5dp4+o5repz4WocV1S0reoc59O95s/kZ7k6+1XZ8TmusvPuymcHAABUz3lVoJ1tTv5SFxYe7ul0YDBzf/lFI0aOlLe3t4qKinT7bbeqYaNGeumllz2dGk7BZxkAALjqvLnFETjXxB2K06iRI9S8RQsdPHBAYWFhevCBBz2dFgAAAE4DPWgGlpaWpg0b1pd76yQglVwju3btVHh4uJo3byGz+bwZ9+eswmcZAAC4igINAAAAAAyCn9sBAAAAwCAo0AAAAADAICjQAAAAAMAgzvkCrbi4WImJiSouLvZ0KgAAAABQqXN+mP3U1FQNH3ahlixZoqjoaE+nAwAAgPOUo6hA2ZMinNOBXyTL5O3rwYxwphQWFrnc9pzvQQMAAACAswUFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGISXpxMAAAA4H0ybPlPxCQluj9ugfn1NvO4at8cF4BkUaAAAAGdAfEKC4uIOKSwszG0xU1NT3RYLgDFQoAEAAJwhYWFhGj9+vNvixcTEuC0WAGPgGTQAAAAAMAgKNAAAAAAwCAo0AAAAADAICjQAAAAAMAgKNAAAAAAwCAo0AAAAADAICjQAAADgLGFPjVPhoi89nYYkybZ7nQp+nKyCHyfLdmiH2+IW/DhZjrys04phO7RDRSu/c1NGZxYFGgAAAHCWsCfvV9GvUzydhiTJUVwg5RxV0YLPZd+/2W1xC2c+L0du5mnFsO/frKLYr92U0ZnFi6oBAAAAVJtX2/7yattftgNbPJ3KOcUQBVpubq527NylrMxMRUZFqm2bNjKZTJKknJwc/bl0WZl1Ro8aeabTBAAAAGqdPXm/bNuXytyqt2xbF8nSvLssrXqVbnMkXsVrf5E5spm8uo6QJDlyj6rwj08kSSbfQHl1vlDm6JbOdRyFeSpe+4scuUfl1WWEzOGNTyyz22XbvED2lP2ytOwlS7Oup70fjsI8Fa+fJ0dOurzaDZS5fqvS+5C0T7YdyyS/QHn1uFgmL++yxyJpn4rX/iLvEbfJ5GOtNE9HVpqK182VfP0ku/208/cUj9/iuGPnTr32xpvauGmTjqSlKSbmW/3nvfdVVFwsScrKztYvc39VTk6OiouLnf/B81asXKUpUz/0yLZ37tyll195zSPbdrd9+/br/5570eX283/7XXfdc7/uuud+rV23vhYzAwAAnmA/vFsFM59T/nu3yH5oh/LeGK+iP2c6lztyjyr//dtlT9ilvPdvU9GSGcdWtEs5R6Wco7If2q7cf41Q8bbFzvVynx+tooWfyx63XXlvXevs+XLYbcp77QoVfPuy7Id2KW/yRBUtnXVa++AoLlTucyNVNO8D2fduVM7/DVPxpj+cy4tWzFbOPwereOcyFa/+Ufkf/KPscUg5qNxXL5cpvPGx4qziPB25R5XzzGAVrflRxWt+UsHsV04rf0/yeA9acFCwHn/0EQUEBEiSRo4coX8994JWrFipQQMvcLYbMXyYgoODPZXmacvPz9cPP/6s9es3SCaTevborisuHyuLxSJJ2rhxk76Z/b2ys7PVo3s3XXftBHl5eVW5zJMcDofsHvp1wpPbrsjT//w/3XXXHWrUsGG11mvWrKme+79/utx+5IjhGj7sQr373/flMNgxAAAA7uHITpP/y7Ey12uoos7DVDDtGXkPvKZkWWaqrC8vkTkkXOaolipe97O8B10rU2Ad+V77vDNGYZNOKpr/P3l1GCx7Zqrs+zcp8Itkmbx85MjPliPriCSpeOksOTKS5f/vJTJZvGS7cJLy3hgv7wsm1Dj/4pVz5CjIlf9LsTKZLTI366KCb/8try7D5SgqUMFnj8rv3k+cvX/2pH2l9z8tQXlT75TvhP+Td+/LqsyzaPE0mcObyP+xGElS3nu3yZGdVuP8Pcnj3/IbNKhfajooMFAB/v5KTU0tNX/N2nUym82qX7++2rQu3T16Nli3foPq1AnVk088qsKiIk2Z+qGCggI1etRIZWRk6JPPvtCNN0xUi+bN9N/3pmr+b3/o4jGjK10GY7HZ7ZKjZuuaza53ZptMJlksFplkqtnGAACA4ZnCG8tcr+RHX0ubfnIk75cjP6dkWVgjmUPCj/3dUI6sE4WIPTVOtq2xsmcdkePwbtmPHCppF1RPljb9lP/erfLqeaks7QbIHN5EkmT7e7VMASElg484HHI47HKkJ8qRnS5TYB3Zk/aqaNUcSZK5XiN5D7i6yvztcdvk1aafTOaSzghLuwtU8HXJD9L2xD1yFBU4izNJMkc2K7V+3tsTJS9feXU78Z23sjztcdtkad3X2dbSpm/J7Y5nIY8XaKdKSDisjKNH1arViftlAwIClJiYJJNJ+nXePDVv1lx33H5ruV9q8/LzlZ+f75w+mnl6I8C4y4D+/UpNd+vaVXv3lvxSsHHTZkVFRapXzx6SpGEXDtUfCxfq4jGjK11Wle3bd+i7OT+ocaNG2rBho/ILCnTzpBvUrFlT5y11vr6+6tK5k667doJ8fX21c+cuzf5ujlq1bqnly1cqIiJc/7jjNtWtW1eSNPfX+YpdvFhWX6vatW9banvLV6zUr/PmKzc3Tx07tNe114yX1WrVW5Pfka+vrw4cjNPIEcO0cFGsGjVsqLvvurPS/Lds3aYff/pZ0VFR2rR5i5o3b6abJ91Qqic15tvZZfJMSUmpcP8kadnyFZr763zl5+erZ8/uuuqKy+XtXXLP89Zt2zXnhx915EiaWrVsoesnXqfg4KBK8/zs8y+1es1a2e12/fvV1yVJvXv11M033Vjpeejdu5eeeOoZZWZmKjw8XC8896wzZlX7UJnK9g8AcG7JyMhQWppNr7852e2xG9Svr4nXXeP2uHDViR9iTaZj33nttpJpL5/S7Y7dUVO8c7ny3pggrx4XyVwnSo787BPrmEzye+Zn2f5aLdv2P1Uw/RlZb39PXt1GOtc/3qMmST6X3O/821FcXHLrpCRHQJ1yUi3vR2PHKfNNksMuh8MhOewVrHOC7zXPqWjVHBVM/z9Zb37z2P5XnKfDIecYFpKkavz4bTSGKtCKioo0bfoMdezQXp06dpRU0qP25OOPKjQ0VJI0fNgwvfr6G1q+fIUuuGBAmRiLFsXq13nzndMnF2tGEnfokJo0biRJSkxMUoP6J3oSo+tHKSkpWQ6Ho9JlpioubLvDobi4Q+rQvp1efOFf8vPzk9lslslk0nv/eVtSyQAtX309Xb/O+03jxl4qh8OhQ/HxGjToAr384vP68quv9fsfCzVh/FXasWOnFi6K1YP33ysvLy/957/vq379aEnSoUPxmjEzRvfe/Q9FR0fp08+/1JwfftI1E66WzW5Xhw7t1apVKy1YuEhPP/m4Xn3tTaWkpCg8PLzC/B0Ouw4ejFO/Pn00/uorNeub2ZoV861uv+0WSSXF/JDBg8rkGR4eXuH+5efn6+tpM/TIQw8oOjpKa9eu1+7de9SuXVsdPpyojz7+VLfferOaNWumX+fN14yZs3TnHbdVepwn3Xi9brxhop5+5l+6+x93qGHDBqXOTUXnQZJeefkF7d23T59/8VWpmJXtQ2Uq2z8AwLnn+HP5eXnu/b5z6p1MOPMcqXGyH02ROSRctj3rZKoTLZN/5Y/7FK/5ST7Db5bvtS9IKnmfmP3w7pJ4uUflyM+RV9t+8mrbT7LbVLx+rry6jZS5eVfZMxJL3R5pO7hNpsCSYszSoLUsJy07lckvWI7s9FLzzNGtVXjS6wDse9bKXL+1TCaTzFEtJJNZxTuXy6tt/5LlGUkyh0Y621s6DJal01DlPNFPXj0vllenoZXmaWnQRsXblpy0vXWVHisjM0yBZrfb9fmXX8nhcGjSjTc45x9/Nu24iIhwNWvWVLv37C23QBs6dIj69TvRvZmcnKwrly4u086T1q1br8TDibrtlpskSYWFhfL19dXKVau1YsUqjb/6StntdhUVFVW6zMfHp/INSQoKCtLYyy4t09t4/Nm3oKAg9e/XVwsWLnIuCw4K0sBjx7Zbt65avXqtJGnT5i3q1bOHGjZsIEnq16+vDhw4cGzZZnXs0F5t2rSWJF00aqQ+++JLXTOhpAu8YYMGKigsVER4hIKDg1WvXl1lZmZVWqAdz2/o0MEymUy6aNRIZw9VZXlWtn8Oh0MWi0W+Vl8FBARo8OCBznWWr1ypHt27qWPHDpKkSy4eo0cee0J2u73SWxBPXmY2m53bPnU/yjsPZrNZZlP5sSs7RxWpbP8AAOemsLAwjR8/3q0xY2Ji3BoP1WfyD1b+OzfI0qaviv6cKZ+xj1S5jqVFDxV8+aRk8ZbjaLJsezc4lzmKi5X3yuWytOkrU0CoihZ9Kd/b/ytJ8h58vYoWT1PuK+NkadGzZPAQk0n+j86saFOleHUbpYJvXpIjL0vmhu3k3esSefW/UgU/Tlbu61fL3LCtihZ9KeutJT8+m3z85DvxReVNvk7eA6+VigvlyMuW392lB58z14mW9fpXlP/hPQp4fUWleXoNmqjCue8pb8odMvn6q3jH8jK3TZ4tDFGgORwOzZgZo+TkZD1w372yWq2VtjdX0nPkZ7XK76T1CwzWg7Z7zx7FfDNbD9x/r/z8/CRJPj4+ys/PV98+vdW3T2/t2btXZrNZ3t7elS5zRZ3Q0DJFQUFBgWbO+kbbtm9XdnaO7Ha7Gh/rzZOkwKBA59/e3t4qKiqUJGVlZTmLM0kKCTnxK05mZpZCQkKc06GhITp69MTtpRaLRRazWRavkqLDbLbIZivpct+0abM++N/HkqS2bVrrgfvvPbGN4GBnb1RISLCKioqUm5tbaZ6V7Z+fn5/uvP1WfffdHGVmZal5s6a64vJx8vPzU3pautat36BVq9dIKrkubTabsrJK71tNlHceKlPVOapIZfsHAADOHqa69eV7/csq3rRA1jvek1eX4ZIkc72G8h56o7OdObqlvC4oKdC9+18lU0CobLvXytKmv3wuvl/FmxeUtAuuJ//nf1fRitlyZKfJ7/FvZGnZs2RbXj7y/9d8Fa/5UfbEPfK58CZZurs+3oH3wGska4DsezdIBSXf00w+fgp4aZGKVnwnR066/J/4TpaWPZzr+Fx4kyzNu8u2bbHkHyzvC07cTutz6YMy+ZU8YuI96Fo5slJl279ZXu0HVpinObie/F9cpOKV30u+fvIbeqPsB7dX+7gbgSEKtO++n6M9e/fqgfvuUWBgYKll8fEJio6Ocn65TU9P1959+zVu7GWeSPW0xMfH66OPPtXtt93ivDVQkiIjI7Ry1WrndGJikiIjImQymSpd5pJymv3+x0JlZGToyccfVUhIiNav36Df/lhQZaigoCBlZmY5p7OyskotS0hIcE4fzcxScFDlz245jo2o0blzJ+ftfKfuV2bWiSIvMzNLXl5eVRYbVe1fp04d1alTRxUVFenTz77Q/N9+17ixlyk0NFQjRwzTZZdeUipeeT1i5TGZTM59KrvQpRAu78PxvOyOsturaP8AAMDZxdKihywtepSaZ45sJp+L7j7RpmFbWRqeeJTBq8twZzEnST4nvXvM5B8sn2E3l7stk8VL3n2vqHGu3r0ulXqVfhTD5B9S4fYkydK0syxNO5eZ73vK7ZQ+F9/nUp7meg3kc/GJH/otzbu7lLvRePzpuaXLlit28RK1btVSK1au0rz5v2ne/N+0adNmSdKevXv1ymuv69vZ3+nb2d/pjbfeVutWLcsMumF0KSmpem/KB7rh+uvUsmWLUsu6dums+PgEbdq8RZmZWVoUu1g9enSrcllN5efny8/fX0FBQUrPyNDCWNduAe3UqYPWr9+gpORkpaWlacXKVc5lnTt11NZt27Rv337l5eXpt9//UKdOHV2Ke3xUQovFUqaXKTMzS0uXLldBQYF+/2OBOnZoX2VxWtn+JSUnK+bb2UpLS5fNZlNRcbHzwds+fXpp+YpV2rdvv+x2uw4cOKhp013r2pdKevj27Nlb8vDraXLlHEVEhGvXrr9KvW6gsv0DAACA8Xm8B61evboaNbJkiM2TX0BtOzbizKCBF6hlixbavWePioqKNOnGG87KYfaXr1iptLR0vX/Si52bNG6sJ594VHXq1NGkG6/XtOkzlJOTq25du2j0qJGSVOmymho2bKg++uhTPfDQowoLC1Of3j218VhBXJkO7dtrwIB+evW1N+Xr66Pu3bspOSlZktS4cSNdcfk4ffjRx8rNzVO7dm2rHNDCFY0aNtSOnTs1Y1aMmjZt4nxurzKV7V94WJjq1qmj1998S7m5uWrbpo1GDL/Qua2J112jaTNmKiUlVQ0bNNAVl491OdcxF43W9OkzFfPN7FKjOFZk9eo1+uzY4CB2u1133VMyCtHU9//j0jkaMXyYpn7wP91z34Pq2aO7br3lpkr3DwAAnB3MEU3lPfh6T6cBDzElJqee/s/9BpaYmKjhwy7UkiVLFBUdXfUKtcRut5fpWTGZTNV6Lqm6HA6HHA5Hlds4ud2p61QWw9X4xwfZOLm93W6XyWSqtDds85Yt+unnufrnU09UuW135Okux3u0qsqtopdtl3dLZWX7cOr2AADG9Pqbk5WXl+/WAT2mTJlSa4OE+PlZ9fijD7s17vnOUVSg7EkRzunAL5Jl8q76FTo4+xUWFrnc1uM9aOcLT3x5rqoAKq/dqetUFsPV+Mf3/eT2p3s8aiNPdzl13yra/vFbO11R2T5QmAEAcG5z2G3OFz5X2u7YO8ZcaesODofD+Z41mS1u/77l6n6XysfhkOks/250dmcPAAAAnMMK53+ogpnPlZnvOF4YncS2Y6lynyz7GqraUjT3fWVPilD2jWEqXubeVzPY9m5QziM9qm54EkdavHKf7C9Hseu9VUZEgQbD6tSxo5564jFPpwEAAOARjsJ8Ff74dqlRDI/LebCrbHvXeyCrE3wuvldBX6fJ0sn9z7tbmndT4Nsbq7WOuV5DmZt3U9GSaW7P50yiQINh1fYzegAAAEZWvOYnmRt3lDnkxHNrDrtdDtuxgfWO/e0o55l2d3E4HOX21lV3vcrilCw7sQ8Ou+3YftnKaVd5Lt79r1LRwi+qna+R8O0XAAAAMKDiTb/L0q70LYsFH9+n7EkRcqQeVO5zI5U9KUL5U+4o1Sb/i8eVNSlSOY/1kT1p74l46+cp57E+yropSrn/Hit7WoKqYtu8QLlPDlDef25S1qQI5b5wkexH4qte75TbLYvX/qK8F8ac2I85byjrjqbKvq+DCr54XHmvX+VclvNgV2VPilDOg13LjVnR/kmSpU0/2Q9slj0ztcocjYoCDQAAADAge9x2maNblppnveN9BX2dJlNYY/m/8IeCvk6T370fn1gn4S9ZmnRW4Ef7ZW7cQYW/vCdJsh3aqbz3b5PvpNcU+L99srTuo/xPHnQtj0M7ZGk3QIEf7pU5uqUKPj+9R1CKdyxV0a9T5f/sXPk/95uKNy8otTzwP1vk/8If5edSwf4dZ/L1l6luA9njtp1Wjp5EgQYAAAAYkCP3qEzWwGqtYwoOk/eQ62Xy8ZNXz4tlP7xbklS8dJa8eo+VV8chkrdVPpc+KNvmBS4NqGEKqifv4bfJZA2UzyUPqHjjb6d1W2Xx2rny6nu5LI3ay1yvgbwHXefyuhXtX6k2/sFy5BytcX6exjD7AAAAgAGZ/EPkyM+u3jqBdU9MePlKRQWSJHtagoqXxSjrzxml2juOJslUr2HlMYPDT7ySKSRCshXJkZ0uU3C9auXm3GZmiszRrZzT5tBIufqUW0X7Vyp+7lGZAkJqlJsRUKABAAAABmRu3FH2hL/KX2gySQ6H67HqNZD3xffKet2L1c7DfjRJDrtdJrNZjowkyeIlU2CdEw28fKTjA5ccT8/bKsdJxZMj68QzYabQCDnSTzz/Zk9PrHZOFXHkZ8uRliBzo45ui3mmcYsjAAAAYEBeXUfItmNZucvMdaJl275UjqICl2439LrgGhUvmaHizQvkyD2q4h1Llffera4lkp2uovkfypGVpoIf35ZXt9GlXgZtjm6h4i2L5CjMd+Ziimwmx5FDKt61UvYj8SqK/epELj0vVdHK72XbvU72pL0qWjLduczhcJSMUnksjsNWfGLUShfYdiyXuWkXmWvYu2cEFGgAAACAAXn1ulT2QztlTz9cZpnPFY+rcOFnyr6lwYlRHE0myXLiBjmT2eyctjRoLevdH6og5iVl399Jhd/8Wz4j7ygTtzzmxh1lj9uq7Ae7yHHkkHxvfrN0LmPulT31oLJva6T8924pWSc4TD5XPKG8t65R3utXyavrKGcuXm36ynfco8qbfJ3yXh8vr55jJIu3JKl41ffKnhSh3OdGypEWX/Ii7EkRJcPrV7J/xxUti5HPsJtd2i+jMiUmp7reN3oWSkxM1PBhF2rJkiWKio72dDoAAOA89fqbk5WXl6/x48e7LeaUKVMUFhbm1piSFBMTIz8/qx5/9GG3xj3fOYoKlD3pxDvNAr9Ilsnbt9J1Chd8KnviXlknvlTb6ZWreNMfKpj5nAJeWVpr2yj86V3Zk/bKetu7pxXHnhqnvLeulf9LsTJZjPUkV2Fh1YOxHGeszAEAAAA4+Qy7xdMp1Ir8j+6XzyUPSGaTihZ/Ld8aPBt3KnNYo1otJM8UCjQAAAAA5TOZJLPF7WEtXYYp9/WrpKICeV94k7y6j3b7Ns5WFGgAAAAAyuXVeZi8Og9ze1zv3mPl3Xus2+OeCxgkBAAAAAAMggINAAAAAAyCWxwBAABOMm36TMUnJFTdsJri4+NVt+7Z+24mAGcGBRoAAMBJ4hMSFBd3SGFhYW6NW1BQ6NZ4AM5NFGgAAACnqI13i02ZMsWt8QCcm3gGDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMwsvTCRQWFip28RJt2LBRmVmZioyM1EWjRqlVq5bONomJSfpm9mzFxycoNDREYy4arc6dOnkwawAAAABwP4/3oK1ctVo5OTm69toJeuKxR9WmdWtNmfqB4g4dklRSwE2Z+oGCg4L02CMPq3evXvrk08916FC8hzMHAAAAAPfyeIE2aOAFunzcWDVu1EjBwcEaNXKEAgMDtWnTZknS5i1blZWVpfHjr1a9enV14dAhaty4kZYsXerZxAEAAADAzTxeoJ3KZrMpNy9PXl4ld18eOHBAkVGR8rNanW2aNW2qA/sPeCpFAAAAAKgVHn8G7VSLl/wpSerTp7ckKSsrW4EBgaXaBAYGKisrq9z18/LzlZ+f75w+mplZS5kCAAAAgHsZqkDbvXuPfv5lrm64/jrVCQ2VJDnkkCSlpaXrv++9r8suu0Qmk+nY3LIWLYrVr/PmO6dPLtYAAAAAwMgMU6Adio/X/z7+WGMvu1TdunZ1zg8MCFBKcorq1q2jZ595WmazWXN++FGBgQHlxhk6dIj69evrnE5OTtaVSxfXbvIAAAAA4AaGKNCSk1M0ZeqHGjF8uAYPGlhqWaNGjbRi5SoVFhbKx8dHknTwYJwaNWpUbiw/q7XU82oF9KABAAAAOEt4fJCQtLQ0vff+FF0woL9GDB9WZnmXLp3l4+Ojn37+RYWFhVq3foN279mjAf36eSBbAAAAAKg9Hu9BW7psudIzMrRg4SItWLjIOb9r1y66YeJ18rNadeftt2nGzFlavORPBQYEaML4q9WiRXMPZg0AAAAA7ufxAm3MRaM1auSIMvPNFovz72bNmurpp56QzWaT5aT5AAAAAHAu8XiB5uXl5XznWVUozgAAAACcyzxeoAEAANTUtOkzFZ+Q4NaY8fHxqlu3nltjAoCrKNAAAMBZKz4hQXFxhxQWFua2mAUFhW6LBQDVRYEGAADOamFhYRo/frzb4k2ZMsVtsQCgujw+zD4AAAAAoAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYBAUaAAAAABgEBRoAAAAAGAQFGgAAAAAYhJenEwAAAOe+adNnKj4hwe1x4+PjVbduPbfHBQBPqXGBdjQjQ7//8YeuuuoqSdKnn3yiuXN/UYuWLfXUU08rNDTUXTkCAICzXHxCguLiDiksLMytcQsKCt0aDwA8rcYF2htvvqHevftIkrZs3qz//Odd3XLLrVq3bq1effUVvfrqa25LEgAAnP3CwsI0fvx4t8acMmWKW+MBgKfVuECLXbRIjz/+hCRp1apVumjMGN3/wAM6fPiwJoy/2m0JAgAAAMD5osaDhJhMJuVkZ0uSVq5aqb59+kqS/P38ZLPZ3JMdAAAAAJxHatyDdsHAgbr33nvUokVLbdywQa++8qokacXKFerbr5/bEgQAAACA80WNe9CeeeZZXTBwoBwOh955512FhYdLktauWav77rvfbQkCAAAAwPmixj1oAQEBeuihh8vMf+bZZ08rIQAAAAA4X/GiagAAAAAwiFop0EaOGF4bYQEAAADgnOb2Aq24uFiHDx92d1gAAAAAOOdV6xm0nTt2VLq8sKhQv/32m5o3b35aSQEAAADA+ahaBdpVV11ZZZtmzZvrxRdfqnYiOTk52rhpk6xWP/Xo3s05Pzc3V6tWrynTfuiQwdXeBgAAAAAYWbVHcfxz6bIKl1mtVvn5+VU7idnffa+NmzbL29tbAf7+pQq0zKwsfff9HPXv11c+Pj7Vjg0AAAAAZ4tqF2h16tRxexLNmzfTpZdcrDk//qS4g3Hltrl4zEUKDg52+7YBAAAAwCiqVaDFxi6ulSS6de1aZZvNm7fIbLGofv1oNW3SpFbyAAAAAABPqlaBFhYeXmaezWZTQUGB5HCUmu8fEHB6mZ3EarXqr927ZZJJs7/7Xh07dNCkG6+X2Vx2EMq8/Hzl5+c7p49mZrotDwAAAACoTdW+xfG4lJQU/fPpp7Vq1UrZbLYyy7du235aiR0XGBCgJx5/VGH16kmSEhIO640339KqVavVr1/fMu0XLYrVr/PmO6dPLtYAAAAAwMhqXKC9/NJL8vb21gcffqjbb7tNn372uXbu2KGvvvpSd919t9sSDAwMVGBgoHO6fv1oNWveTH/9vbvcAm3o0CGl5icnJ+vKpbVzayYAAAAAuFONC7SVK1fo559/cd722Lt3b/Xu3Vtt2rTRe++9pyuuqHpI/prysnjJbreXu8zPapWf1eqcLqAHDQAAAMBZouxDXC6yWCzy9vaWJAUHBysjI0OS1LlLF23fvs0tyUlSUlKyHCc935aZmaV9+/erWbOmbtsGAAAAABhBjXvQ+vbrp9Vr1mjEiBFq3aaNvvryS91x55366acfFR4RUa1YGzdtVnp6uuLj45WZlalFsYvl4+OjAf37adv27friq3Vq26atTCZpzZq1atSooQZeMKCmqQMAAACAIdW4QLv//vs1Y/oMjRgxQvff/4Duvusf+vDDD+Tl5aV///uVasXKyspSWlqaGjdqpMaNGiktLU3WY7cpXjh0iJo3b6bdu3ersLBIV191pTp27CCTyVTT1AEAAADAkGpcoDVp0lRPPvWUJKl79+767fc/tHv3bjVq1Ejh5QzHX5mqesOaNmnCu88AAAAAnPNq/AzaqYKDg9W9e3eFh4dr6Z9/uissAAAAAJw3atyDVpl//ONOt70HDQAAlG/a9JmKT0ioldgN6tfXxOuuqZXYAICK1UqBBgAAal98QoLi4g4pLCzMrXFTU1PdGg8A4LpqFWjXXVvyS9r0GTOdfwMAAM8JCwvT+PHj3RozJibGrfEAAK6rVoF24YXDnH9v3rxZDz74ULntNm/efHpZAQAAAMB5qFoF2m23317p9HHvvPN2zTMCAAAAgPNUjUdxfOKJJytc5uPjU9OwAAAAAHDeqnGBdsONN1a4bP2GjTUNCwAAAADnrRoXaHfffZc78wAAAACA816Nh9lfsnixO/MAAACAQWRkZCgtzabX35zstpgpKSmSTAoPd+9rISTe24dzS40LtLr16ikjI0OhoaFuTAcAAACeVlxcLEnKy8t3W8ysrGx5e3u7NabEe/tw7qlxgda5U2d9+803FY7kCAAAgLOXu9+xN2XKFN7bB7igxgWa1c+qd955W0uXLVXr1q3l7e1davljjz1+2skBAAAAwPmkxgVaVmaWBgy4QJJ0YP8BtyUEAAAAAOerGhdoH/7vf+7MAwAAAADOezUeZh8AAAAA4F4UaAAAAABgEDUu0EaOGF6jZQAAAACA8tW4QEtISCh3vs1m0+HDh2ucEAAAAACcr6o9SMjxFxee+rdUUpwt+OMPRUREnH5mAAAAAHCeqXaB1rVL53L/Ps5sNuuRRx49vawAAAAA4DxU7QLt088+lyTdcvNNzr+P8/b2VqOGDRUWHu6O3AAAAADgvFLtAq13797l/g0AAAAAOD01HiTkvfenuDMPAAAAADjv1bhAGzJkiBvTAAAAAADwomoAAAAAMIhqP4MGAACqb9r0mYqv4B2iNRUfH6+6deu5NSYAwLMo0AAAOAPiExIUF3dIYWFhbotZUFDotlgAAGOgQAMA4AwJCwvT+PHj3RZvyhQG7AKAcw3PoAEAAACAQRiiBy09I0N//rlMa9euVVRUlO6+685Sy5OTU/Td93MUHx+v0NBQjR49Sh3at/NQtgAAAABQOwzRg/bZZ1/I19dHzZs3V15eXqllRcXFen/qB/L28dY999ylTp066qOPP1GCmx+0BgAAAABPM0SB9tCD92vUyBHyD/Avs2zz5i06evSorp0wQVGRkRo5YrgaNGigJX8u9UCmAAAAAFB7DFGgmUymCpcdOHBAkZGR8vf3c85r3qyp9h84cCZSAwAAAIAzxhDPoFUmMzNLgYEBpeYFBQUpMzOr3PZ5+fnKz893Th/NzKzV/AAAONdkZGQoLc2m19+c7LaYvLMNAFxj+ALNIYfMJpPS0tL1/tSpuuTiMTKZTHI4HOW2X7QoVr/Om++cPrlYAwAAVSsuLpYk5eW57/+hvLMNAFxj+AItMCBAKSkpqlu3jp584nF5e3nphx9/UmBAQLnthw4don79+jqnk5OTdeXSxWcmWQAAzhG8sw0APMPwBVrDhg21ctVqFRUVydvbW5J08GCcGjZsWG57P6tVflarc7qAHjQAAAAAZwlDDBJSmS6dO8vLy0tzf50nm82mzVu2aPeePep/Ui8ZAAAAAJwLDNGD9vEnn2n3nj0qLCyUzWbTk08/o6CgQP3zqSfl7++n22+9RdNmzNSi2MXy8fHRFZePU6tWLT2dNgAAAAC4lSEKtIkTr5Xt2APJx5089H7Lli30r2f/qfz8fPn4+MhsNnzHHwAAAABUmyEKtJOfGauM1cV2AAAAAHA2oisKAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADMIQL6oGAMAopk2fqfiEBLfHjY+PV9269dweFwBwbqFAAwDgJPEJCYqLO6SwsDC3xi0oKHRrPADAuYkCDQCAU4SFhWn8+PFujTllyhS3xgMAnJt4Bg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMwsvTCQAAAAA1lZGRobQ0m15/c7Jb4zaoX18Tr7vGrTEBV1CgAQAA4KxVXFwsScrLy3dbzNTUVLfFAqqLAg0AAABntbCwMI0fP95t8WJiYtwWC6gunkEDAAAAAIMwfA9aXl6eNmzcVGZ+/359PZANAAAAANQewxdoRzMzNWPmLPXs0V3e3t7O+RRoAAAAAM41hi/Qjrt83FgFBwd7Og0AAAAAqDVnTYG2Y+cueXlZVL9+fUVHRXk6HQAAAABwu7OiQPP29tb6DRtkkkm7/pqhXj176NprJshkMpVpm5efr/z8E8OsHs3MPJOpAgAAAECNGb5AC/D31+OPPqKoqEhJ0sGDB/XW2++qZcsW6t2rV5n2ixbF6td5853TJxdrAAAAAGBkhi/QgoKCFBQU5Jxu3Lixmjdvpp27/iq3QBs6dIj6nTSASHJysq5cuvgMZAoAAAAAp8fwBVp5vL29VVxUVO4yP6tVflarc7qAHjQAAAAAZwnDv6j6yJG0UtM5OTnav/+AmjRp4qGMAAAAAKB2GL4Hbd369dq+Y4fatW0rk8mklatWKzIiQoMGDfR0agAAAADgVoYv0EaOGK6mTZvo7793q6ioSGNGj1L37t1kNhu+8w8AAAAAqsXwBZoktW7VSq1btfJ0GgAAAABQq+iGAgAAAACDoEADAAAAAIOgQAMAAAAAg6BAAwAAAACDoEADAAAAAIOgQAMAAAAAg6BAAwAAAACDoEADAAAAAIOgQAMAAAAAg6BAAwAAAACDoEADAAAAAIOgQAMAAAAAg6BAAwAAAACDoEADAAAAAIOgQAMAAAAAg6BAAwAAAACDoEADAAAAAIPw8nQCAFBT06bPVHxCgtvjNqhfXxOvu8atMc+mXAHgfJeRkaG0NJtef3OyW+Oa7cW6060RcS6iQANw1opPSFBc3CGFhYW5LWZqaqrbYp3sbMoVAM53xcXFkqS8vHy3xk1PSXJrPJybKNAAnNXCwsI0fvx4t8WLiYlxW6xTnU25AsD5zt3/ZkvS7JnTJX5bQxV4Bg0AAAAADIICDQAAAAAMggINAAAAAAyCAg0AAAAADIICDQAAAAAMggINAAAAAAyCYfbPAF5Qi7PpGqiNXFNSUiSZFB7uvneASVJ8fLzq1q3n1pi19XLSsynX2jhftXUN1Ebc2jhXAAC4igLtDOAFtTibroHayDUrK1ve3t5uf+FnQUGhW+NJtfdy0rMp19o4X7V1DdRG3No4VwAAuIoC7QzhBbU4m64Bd+c6ZcqUWnnh55QpU9wa7zhydf/5qs1roDZyBQDAU3gGDQAAAAAM4qzoQUtLS9cPP/6kQ/HxCg0N0ehRI9WqZUtPpwUAAAAAbmX4HrTi4mK9P3WqCgoKNOmGiWrapImmfvA/JSYleTo1AAAAAHArwxdoW7duU2rqEd1w/XVq3LixLr3kYkVGRmjJkj89nRoAAAAAuJXhC7R9+/crMjJSAQEBznktmjfXvn37PZcUAAAAANQCU2JyqsPTSVTmiy+/UmZWlu67527nvPm//a7FS/7Uv196oUz7vPx85eefGG758OHDGn/Vlfr2228VERFxRnI+1dQPP1JCwmHVrVvXbTHT0tJkMpsUHRXltpioPYcTE+WwO86Ka6A2ck1KTpa3l5dbY9ZWXHIlV3IlV3Il19rKNeNIih5L/8Y5HfD2Rpm8fNy6DRhTYVGxwsLC5OVV9RAghh8kxG53yGwyKS0tXR99/IlGjRwhs9ksh91ebvtFi2L167z5zumjR49Kkq666qozki8AAABQkUU66T2jFw73XCI44/5YsFBRLvywbvgCLSDAX6mpqapbt47uu/du+fn56ceffpb/Sbc8nmzo0CHq16+vc7ogP1+H4g8pOipKFovhdxfniaOZmXrzrbf16CMPKSQ42NPpADXGtYxzAdcxzgVcx8YXFhZWdSOdBQVagwYNtGr1GhUXF8vf31+SdCg+Xg0bNii3vZ/VKj+rtdQ8VypV4EzytVpltVoVERGhOqGhnk4HqDGuZZwLuI5xLuA6PncYfpCQrl06y2wy6bff/5DD4dCuXX/pr7/+Vt8+vT2dGgAAAAC4leF70AICAnTLLTfp62kztGhRrOwOhy65eIzatW3r6dQAAAAAwK0MX6BJUru2bfXi8/9SVlaW/AMC5O3C6CeAkVmtVl00epSsp9yOC5xtuJZxLuA6xrmA6/jcYfhh9gEAAADgfGH4Z9AAAAAA4HxBgQYAAAAABkGBBgAAAAAGwWgbwBm05M+l2rp1W5n5deqE6tprJkiSCgsLtSh2sQ4cPKiQ4GANHjRIUVGRZzpVoEqHDx/WsuUrlJaerhbNm2vokMEym0/87rdh40Zt2LhJJpNJ3bt1U5fOnTyYLVDW2nXrtXr1mlLzWrRorlEjRzinExIOa8mffyorK1tNmjTW0CGD5e3tfaZTBVySl5enr6fNUEhIsMZffZVzfn5+vhYsXKT4hATVCQ3V0CGDXX5pMs48etCAM6h1q1YaMmRQqf+SkpNkMpmcbT7+5DOtW7deXbt0VkFhoSa/846OHEnzYNZAWbt379Ebb70tm82mPr17Ky8vT/N/+925/M+ly/TV19PVvGlTNW7USJ9//oVWrlrtwYyBslJTU5WRkVHq3+QO7ds7lycnp+jtd96VzWZX586dtGr1Gn32xZcezBioXMw3s3UwLk579+1zzrPb7Zoy9UNt275d3bp0UWZWlia//a4yM7M8mCkqQw8acAZFRUWW6g07fPiw0tLS1b9fX0nS3n37tGPnTj31xOOqXz9aPXv00GtvvKWFixbp6quu9FTaQBnffDtbvXv11ITxV0uSunTupIKCAkklXwbmzZ+vkSOGa8iQwZJKftWdO/dX9e3T22M5A+Xx8/NT+3btyl22YOFCRURE6LprJ8hkMik6OkpvvDlZB+Pi1LhRozOcKVC5devXKycnR127dNbfu3c75+/YsVP7DxzQc//3rOrWraPu3bvpxZf/rSV//qlLLh7jwYxREXrQAA9atnyF6tevr8aNG0uS/v57t0JCQlS/frQkyWw2q13bNvr7792VhQHOqNQjR5Rw+LD69+9Xar6vr68kKSk5WZmZWWrXtq1zWft2bZWekaGUlJQzmitQlSNpafrk08/01bTpWr2m9O2Of+/eo7Zt2zjvcmjcqJECAwL4NxmGk56erh9+/FnXXjO+zLK/d+9WZGSE6tatI0myWCxq3bo117GBUaABHlJUVKQ1a9epf78+znkZGRkKCQkp1S4kJETp6elnOj2gQqkpqZIkL4tFM2fF6NPPPtdvv/+hwsJCSVJGeoYkKTT0xLUcEhIqSUo7tgwwApPJpPbt26lbt66KiozU7O/maPqMmc7l5f6bHMq/yTAWu92ur76erlEjR6hOnTpllqdnZCj0lOs4lO8WhsYtjoAbffr5F8rPyy932Zgxo9W0SRPn9MaNm1RYWKiePXo459lsNlnMZmVlZ2v27O/Vo0c3WSwWFdtstZ47cNyi2MXasWNnucvatWursLB6MplM+urr6RowoL+sVqv+WLBA23fs0AP33SvbsevVbDbrx59+kdls0sALBkiSbLbiM7YfOL/tP3BAc+fOK3eZ1c+qW26apMGDBspqtTrnR0VF6n8ffaKhQwYrOjq65N9ki1lbtmzV+g0bdOUVl8ti8VJxMdcxzpypH/5PDruj3GWXj7tM27Zvl9ls1oBT7mo4zm6zyWy2KC0tXT/89JP69+3LdwuDo0AD3GhA//4VfgGtV69eqenlK1aqc+dOCggIcM6zWv1UUFCgwIAADR48UJEREVq6bLn8/PxqNW/gZG3btFZkZES5y+qEhio7J0cOh0MXDh2iXr16SpIiwsP0xltvKzExUVa/ki+8BQUF6tunl0wmk/LyS3644FrGmVKvXj0NGTKo3GUWS8nXn5OLM0lq07q1JCk+PkHR0dGyWq0qKChU8y7NFBQUpICAAOXn53Md44waMniQHI7yC7SQkFAtWbJUAYEBmjL1Q0lSUnKScnNyNWXqh7pmwtWyWv2UlZ2t0NAQDRk0SNHRUdq5axfXsYFRoAFu1KZ1K5faJScna/eePbr37rtKzY+OitTSZctkt9vVrGlTSVJiUpKio6LcnSpQoejoaEVHR1e4PDMzU5IUWifUOe/4bWDZOTmKjoqSyWRSYlKSOnboIEnauGmzTCaTIiN4ZQTOjKDAwAoH/6hI/rEfEvwD/CWV9KglJiUpICBAAQEBKioqUtqRI4qO5t9knDknP89bnhuun6ii4iLn9LJlK5SQkKAhQwYpICBAUVGR2rptm0wmk5o1ayqJ7xZGxzNogAcsW75CdevWVetTCrqOHTs4l0slgzFs2bJV3bt3O+M5AhUJDg5Ws2ZNtWHDRue8LVu3ydvbW/WjoxUYGKhWLVtq8ZI/ZbfbZbfbtWTJn2rXrq38/fnFFsbx59JlztsV7Xa75v32u4KCgpw/kHXv1lWbNm12Pqvz59Jlsnh5lRqKH/C0Vq1aqn27ds7/6tatI1+rr9q3aydfX1916dJZubm5WrtuvSTpcGKidu36Sz34bmFY9KABZ1hxcbFWr1mrwYMGlnr/mSQFBQXp2gnjNTPmG61ctUopKalq17aN+vXtU0E0wDOunTBeUz/8SH/9/YqsVquSEpM0YfzVzlt2J4y/Wu9P/UAvvvyKHA67TCaz7rn7Hx7OGigtPT1Dz/7fc4qIiFDG0QxJJt1y8yTnrV8XDBigv/7arVdee0Nh9eopKTlZE6+7ptSt6YDRhdWrp6uuvEIzZs5SbOxiJSUnq2eP7uratYunU0MFTInJqeXf1AqgVuTl52vfvn1q2qSJ/P39y22Tk5OjhITDCgoOUlQkt4TBmGw2m+LiDsnhcCgqKrLM8ww2m00HD8ZJppLhyS0Wi4cyBSqWm5urxKQk+VmtioiIKPc6PZyYqOysbNWvH01xBsNLTEpSbm6umjdrVmp+ZmaWEpMSVSc0VOHh4R7KDq6gQAMAAAAAg+AZNAAAAAAwCAo0AAAAADAICjQAAAAAMAgKNAAAAAAwCAo0AAAAADAICjQAAAAAMAgKNAAAAAAwCAo0AKih5ORkLVu2zNNpnDHr1q3VkSNHyl1ms9m0efMmLV68WH/99ZfLMTMzM7Vy5Qp3pYhq2L37b8XGxio2NlZbtmw567df2fV5cpu4uDiXY3J9AvAECjQAqKG1a9fqiccfq/XtbN68SXv37q317VRm+/btevSRR+Tn51dmmc1m04033qAnHn9cs2bN1Pp161yO6+/vrxeef54vwaehptfHunXrFBMzS6++8m9NnTqlFjI7c9uv7Po82b9ffll//PG7JGnv3r3OAnHZ0qX6+++/5XA4SrXn+gTgCRRoAGBw/3n3Xf0wZ45Hc3j77cmaOPF6+fv7l1m2fft2bd60Sd98O1tTpkzVNdde63JcLy8v3XLLrZo8ebI70z2v1PT6mDDhGk2ZMlVDhgx1f1JnePuVXZ8V+WHOHD326COKiZmlr776UvfcfZcuHzdWhw8fdrbh+gTgCRRoAFCBxMRErVy5QsXFxVq/bp02b94ku91ebtudO3Zo/fr1KigoKLPscEKCVqxYrv3795eaf/ItkuWtv379esXGxio9PV1xcQedv/af/AVSkg4ePKjly5drz549peYvW7ZMqSkp2rBhg7Kzs5WZman169aVm2Nl9u7dq1UrV+qysWPL5B8bG6vFi2NlsVi0du1axcbGOm9xdPX4jb7oIu3ZvVubN2+qVl7H2e127dyxQ6tXr1Z2dnaZ5TU9Pq7mX1H8qs7vcUeOHNHKlSv0999/l4rvruvjdFWU37KlS5WUlFSqbVpamhYvXlyqXUXru0tF16ckORwObdu2TatXr1ZhYWGZ5VFRUZoyZao++PB/+nXefJnNljK9ead7fQJAdXl5OgEAMKqVK1borbfeVKtWrVVQkK/4+Hg1bNhIH338sfNWKofDoYcfelApKalKSIhXcHCwZs6Kka+vr45mZOiZZ/6p/fv3KzIyUrt27VK3bt301uS35e3trbVr1+rll15Unz59yl1/wYI/tG/fPiUnJys3N1f5x76cT5x4vaKjoyVJzz/3L82dO1dt27bVX3/9pT59+uqtyZNlsVj0xOOPKTo6Wnl5ebJYLAoKClZa2hG1at1a7777H5ePQ2zsIjVt2lQRERGl5sfFHVRMzCylHUmT3W5XTMwsSdKggYPUunVrl46fJAUGBqpjx45atGiROnfuUq1zdODAft1/333KyspS48aNFR8fr6eefloXXjjstI+PK/lXFr+q8ytJH37wgT7//DO1adtWiYmJqle3rv773vuqW7euW66P01VZfl999aUaN26sp//5jLP9jBnTFbtokQYPHlzl+u5S0fVZVFSke+6+Wzt2bFeTJk1lsxUrJyenwjgWi0VhYWFKT0srNf90rk8AqAkKNACoRHp6ukaOHKlrrr1WmZmZuuLycYqZNUuTbrpJknT06FENHjxEY8eNU1ZWlkYMH6YFCxZozJgxysrO1pVXXqUhQ0tu4crMzNQlF4/R/PnzdMkll1a5/mOPPS5Juu3WW9ShQ0c99PDDpXJbtnSpvv/+e83+7nu1aNFCCQnxGjd2rH7+6SeNHTeuZN3bb1fnzl00YvgwffTxxwoPD9fVV10lu90us9m1myi2b9+uVq1alZnfo0dP9ejRU7GxsXr4oQc1ZcrUah+/41q3blPtgSIcDoeefvppNW/eQq+//rq8fXxUUFCgTRs3uuX4VJW/K/ErO7+rV63SV199qW++na2GDRvKZrPp/vvu03//+x/961/PVbl+VdfH6aoqv9GjL9K7776jJ5962nkt/f7bb7r00stcWt9dKro+f/rpR23fvk0//PiT6tWrp19+/llPPPF4qTa5eXmKjY2VzVasHTt2aOPGDXr77XfKxKrJ9QkANcUtjgBQCYvFosuvuEKSFBwcrFGjRmnhwgWlll98ySWSpKCgILVo0UJxcQclSQ0bNtTgIUO0Z/duLVu2TOvXr1d4eLj+2vWXS+tXZeHCherVu7datGghSapfv4EGDR6sRYsWOduEh0coPDxckhQVFa2wsHAVFRUpKzPT5WOQnpam4OBgl9ufrKrjd1xIaIjSjqSVmV+ZvXv2aNPGjbr33nvl7eMjSfL19VXvPn0kuef4VJa/K/ErO7/ffvut2rZrp/379unPP5do2bKlatioodasXu3S+rWtqvyGDR+ujIwMbdiwXlLJrYa7d+/WqNGjXd4/d6jo+izpyRuievXqSZIuGjNGQUFBpdpkHj2qmJhZipkVo59+/FH9+vdXm7Zty8SqyfUJADVFDxoAVCIkJMR5O5okhUdElHruJigoSF5eJ/4p9fbxUUF+ya1mSUlJ+sc/7tTRjAy1aNlS3t7eSklNVVFRkUvrVyUpKUmRkZGl5kVFRWntmrXOaYvF4oxvMZudPR1FxcUubUOSrFY/5+1z1VXV8TsuLy9Pfv6Vj8B3quPDpTdu0qTc5e44PpXl70r8ys5vXNxBZWVlafqM6aVitG3XzqX1a1tV+QUFBWnAgAs0f/589ejRU7/Nn69OnTqpYcOGLq3vLhVdn0lJyWp+rHiWJLPZrLBjxfhxx59Bk0qeZXz88cf06CMP6/MvvizVribXJwDUFAUaAFQiLy+v9HRungICAlxad8r77yskJETffPOt80v29RMnlhnKu6YCgwKVl5tbal5OTo6CgoMqWOMk1cihSZMm2r59W3XTk+T68UuIT1DTJk2rFTskNFSSlJWVVe4zTe44PpXlf1rxJYWGhqpDh4565tlnXWpfW0wmU7nzXclv9EWjNfmtt/TUU09r/m/zNW7suGqtX9n2XVXR9RkUHFTm/OWecr5OZjabNXLESD388EMlBdlJz0nW5PoEgJriFkcAqEReXp62b9/unN6wYYPatnWtByApKVHt27V3FmdHjhzRrl07q52Df0CA8vLKfrFs06aNNm7cKJvN5py3ft06tWnTptrbqEyfvn21bdu2Uj1/rnLl+DkcDm3cuEF9+/WtVuzWrVsrODhYv/32W6n5x7+Eu+P4VJb/6cbv3qOHFi+OLTO6YFpa9W6lq+j6cFVISIgyj5a95dWV/IYOvVBHjx7Vd999p91//62Ro0ZVa/3Ktu+qiq7Pdm3badPGEyMvxsXFKbmc3tuTHTlyRFarVT7HbpmVan59AkBN0YMGAJWwWq167rl/aeLE6/XXrp1as2a1ZsV849K6AwcN0vvvvafGTZrI19dH06dNU0hISLVz6Nyps77++it16NBRIaGhatOmjaKjo3X11eP1xeef66GHHtSokaO0ZMliJSUl6YYbbqz2NiozYMAABYeEaPHixRo+fHi11nXl+K1du1YFBQUaPnxEtWIHBATo4Uce1b9ffknJSUlq2aqVdmzfrsCgQN155z/ccnwqy/90499ww4366ccfddOkG3XV1VfLbrMrNjZWjRs31uNPPOFyjhVdH666YOBAffDBVH399Vdq2LCRc31X8gsICNDAgYP0xuuvqWvXbqW26+r+VbR9V1V0fV43caJmzZqp559/Tt27d9fMGTPK9N4eHyTEbrfp4MGD+uTjjzVhwgRZLBZnm5penwBQUxRoAFCJkJAQPfnkU5o1c4a8vLz12edfqHXr1pKkyMgIDRgwoFT7Ll26qFnzZpKk666bKH9/fy1ftlxWP6ue/uczWrlihXNQiqrWP+7GSZNktpi15M8lysvLcw6jHhgYqBkzZ+nrr7/Sb7//psjISM2YOcv5XNSAAQOcgycMGjxYfv7+8vLy0qDBg+Vz0nNVVfHy8tJtt96m6dOmlVug1atXTwMHDar28Ttu+rRpuv6GG0rdUuaqq666So0bN9avv87VggV/qHfv3rr66vGS5JbjU1n+VcWv6vxarVZNnzFT33wTo2VLlyooKFhXXHmF8xUBp3t9uKpjx45655139euvc7V8+XLn+lXld9z4CRNUWFSoyy67rNR8V9evaPuuquj6jI6O1pdffa3p06dpyeIluv/+B7Rg4QI1atRYktS8eXO1adNGMTGz5GWxKDw8Qs+/8IKGDr2wVPzTuT4BoCZMicmp7nkYAgDOMXO+/17//e9/tGDhoqobn+NsNpueeeafuvvue9SoUSOX1nHl+KWlpenll1/Syy//W1ar1V3pugXn/+xRk+vTFUa+PgGcu+hBAwBUyWKx6JVXXnV73Lp16+qttya7PS7OL1yfAM4lDBICABWIio5S3779PJ3GWetsP35ne/4AgLMTtzgCAAAAgEHQgwYAAAAABkGBBgAAAAAGQYEGAAAAAAZBgQYAAAAABkGBBgAAAAAGQYEGAAAAAAZBgQYAAAAABkGBBgAAAAAGQYEGAAAAAAZBgQYAAAAABvH/GE37kpjkxf8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rng = np.random.default_rng(2234)\n",
    "\n",
    "def fp_level(phases):\n",
    "    yy = ear(comb(freqs, phases))\n",
    "    w = np.hanning(len(yy))\n",
    "    m = np.abs(np.fft.rfft(yy * w))\n",
    "    return 20 * np.log10(m[bin_fp] / len(yy))\n",
    "\n",
    "locked = fp_level(np.zeros(len(freqs)))\n",
    "scrambled = np.array([fp_level(rng.uniform(0, 2 * np.pi, len(freqs)))\n",
    "                      for _ in range(200)])\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.hist(scrambled, bins=30, color=HAIR, edgecolor=DIM)\n",
    "ax.text(scrambled.min(), ax.get_ylim()[1] * 0.9, '200 random-phase trials',\n",
    "        color=DIM, fontsize=8, va='top')\n",
    "ax.axvline(locked, color=ORANGE, lw=2)\n",
    "# the histogram peaks right under the locked line, so a leader from the\n",
    "# left crosses the tallest bars whatever it is anchored to; the label sits\n",
    "# beside its line instead, in room made for it on the right\n",
    "ax.set_xlim(right=locked + 7)\n",
    "ax.text(locked + 0.4, ax.get_ylim()[1] * 0.92, 'phase-locked\\n(the plugin)',\n",
    "        color=ORANGE, fontsize=8, ha='left', va='top')\n",
    "ax.set(xlabel='phantom (fp) component level (dB)', ylabel='trials',\n",
    "       title='what phase scrambling costs the phantom')\n",
    "plt.tight_layout()\n",
    "\n",
    "print(f'phase-locked fp level: {locked:.1f} dB')\n",
    "print(f'random-phase median:   {np.median(scrambled):.1f} dB '\n",
    "      f'(loss: {locked - np.median(scrambled):.1f} dB)')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60c5513e",
   "metadata": {},
   "source": [
    "## 4. alternating phase: pressnitzer & patterson's experiment 3\n",
    "\n",
    "their control: shift every other harmonic by **pi/2**. adjacent pairs then differ by\n",
    "+pi/2, -pi/2, +pi/2, ... and their difference tones at fp cancel in twos, while the\n",
    "pairs two apart (which make 2fp) still agree. the percept rises an octave.\n",
    "\n",
    "the trap, which ThirdEar 1.0.0 fell into: a shift of **pi** looks like the same idea\n",
    "and does nothing. the comb with every other partial flipped is the locked comb\n",
    "delayed by half a period of fp (sum (-1)^k cos((m+k) w t) is the locked sum at\n",
    "t + T/2), so every nonlinearity in the world gives it the same distortion spectrum.\n",
    "this cell measures all three. with N partials there are N-1 pairs; an odd pair count\n",
    "leaves one pair standing, 20 log10(1/(N-1)) below locked."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f45b15eb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:13.837729Z",
     "iopub.status.busy": "2026-09-30T02:55:13.837218Z",
     "iopub.status.idle": "2026-09-30T02:55:14.834012Z",
     "shell.execute_reply": "2026-09-30T02:55:14.832930Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "locked      1fp   -29.2  2fp   -31.1  3fp   -33.6  4fp   -37.1\n",
      "pi flip     1fp   -29.2  2fp   -31.1  3fp   -33.6  4fp   -37.1\n",
      "pi/2 shift  1fp   -43.2  2fp   -31.1  3fp   -43.2  4fp   -37.1\n",
      "pi flip vs locked at fp: +0.00 dB (a delay)\n",
      "pi/2   vs locked at fp: -13.98 dB (closed form -13.98)\n"
     ]
    },
    {
     "data": {
      "image/png": "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ejr9+53D77//TlJyciBDFhERERERwWaz+71s0Cdo+/al8dWUKezatZuY6GgOHjpEv3P6MnDA+d5llixdyudffEVUVBQZGRn0OPssLr3k4mqMWkREREREpOyCPkFL259Gv3P6ktKqFQBbtm7lpZdfpXbt2rRv15bMzEw+/ewLhlx0Ib179WTnzp288OLLNGnShA7t21Vz9CIiIiIiIv4L+mfQ2rZp403OABo3akRcXCxbtmwBYMXKVZjNJnr2OBuAevXq0bJlCxYvXlIt8YqIiIiIiJRX0CdoJ8rOziYjI5OaCQkA7Nmzh8RaiRiNxzaldu3a7ElNra4QRUREREREyqXab3Hctn07bre7yLKkpCTCrFafedNmfEt8fDxdunQGIC8vH6s1FPA8r1YjvgZhYVbycnOLbDMvP5/8/HzvdObhw4HYDBERERERkQqr9gRtxozviu3iftjll1KvXj3v9Ow5c1m9eg133H6rtydHo9GIy+Xm4MFDTPnmG3r17IHT6cJoKvri4Ny58/hx1k/e6eOTNRERERERkepU7Qna7bfd4tdyf/29iFmzfmL8+LEkJyV558fGxrBz105q1Ijj5nFjAVi3fgOxMbFFttO3bx+6d+/mnU5LS+PS+b+VN3wREREREZGAOSmeQVu+YiVTp37DTTfdSKOGDX3KmjRuTFrafjIzMwFwu91s2rSJpk2bFNlWmNVKXGys919MdHRlhy8iIiIiIuKXar+CVpoNGzby0UeTOf/88zCbzWzdtg2AyIgIatasSUpKK+rWqcP7H37Euf37sXr1GjIyMundq2f1Bi4iIiIiIlJGQZ+g7UtLo27duqxZs5Y1a9Z657do0ZwLBg/CaDRy8/ixzPrpZ2bPnktsbAx33HYrNWrUqMaoRUREREREys6wNy296C4UTxN79+6lf79z+P3330lKTq7ucERERERE5BRjs9n9XvakeAZNRERERETkdKAETUREREREJEgoQRMREREREQkSStBERERERESChBI0ERERERGRIKEETUREREREJEgoQRMREREREQkSStBERERERESChBI0ERERERGRIKEETUREREREJEgoQRMREREREQkSStBERERERESChBI0ERERERGRIKEETQB474OP+OefxWWut3LVKibefS9jxt1CWtp+AF57/U3GjLuF+x/4b8DXJyIiIiJyKjNX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G6Snp7Nr1y4MBgN169Yt9rbDQOnfvx89e/bwTtevV4//u3sCeXl52O0OoqOjKnX9IiIiIiIilaXC46AlJCSQkJAQiFj8EhUZSVQR3e2HhYURFlZlYYiIiIiIiARcuZ9BExERERERkcAqU4I2ceIEtm3bVupyW7duZeLECeWNSURERERE5LRUplscW7VsxRXDLqd16zb06t2LlJTWJCQk4Ha7OXDgAGvWrOa3efNYv349o0ffVFkxi4iIiIiInJLKlKDdcOONDL34Yr768ku+mTqV55591qe8SZMmDBo0mBdefIkaNWoENFAREREREZFTXZk7CYmPj2fc+PGMGz+ezIwM9u7bh8FgILFWLWJiYyshRBERERERkdNDhXpxjImNVVImIiIiIiISIOrFUUREREREJEgoQRMREREREQkSStBERERERESChBI0ERERERGRIKEETUREREREJEgoQRMREREREQkSStBERERERESChBI0ERERERGRIKEETUREREREJEgoQRMREREREQkSlZKgde/WtTKaFREREREROaUFPEGz22zk5OQEulkREREREZFTnrksCy9atKjEcrvNxi+//ELz5s0rFJSIiIiIiMjpqEwJ2vWjRpZYbrFYSElJ4bHHn6hITD6ysrL4+ZdfC82/9JKLvX+7XC6WLV/Orl27iY2NpUvnToSFhQUsBhERERERkapQpgQNYPmKlcWWmUwmDAZDhQI6UU5uLvN++53BgwYSGhpa5DKTP/6UzVu20LVLZxYvXsLvf8xn4oQ7CbNaAxqLiIiIiIhIZSpzgmY2l7lKQJzVvRvR0dGF5m/btp0lS5dy94Q7qV+/Pv37ncOjjz/BH3/M57xz+1dDpCIiIiIiIuVTpk5ClixdVllxlOq33//g+5k/sHTZMlwul3f+uvXrqVEjjvr16wNgtVpJadWKdevWV1eoIiIiIiIi5VKmBO3EWwwzMzP5YeZM3nlnknfexo0bfRKoQIiLjcXlcuF0Opn6zXReeuVVHA4HAOkHDlAjrobP8jVq1CD9wIEi28rLz+dQRob3X+bhwwGNVUREREREpLzKfb/imjVrGHPTaCIiIti9ezejR98EwAcfvE+3bt0ZMmSIX+1Mn/EtTqezyLJePXsQEx3NvffcTXh4OAC9e/XksSee4o/5C+jbpzd2ux2zxUx2dja//zGftm1aY7GYsdvtRbY5d+48fpz1k3c6Pz+/LJstIiIiIiJSacqdoD315JOMGTuOESNG0KZ1inf+8OHX8MgjD/udoMXFxRV7xc1ssRTqjTE2NpZGjRqydds2+tKb0JAQMjMzCQkJoUZcHGFhYdhsdkJDQ4pss2/fPnTv3s07nZaWxqXzf/MrVhERERERkcpU7gRt/fp1vD3Jc2vj8T03Nm7UiM3//ut3O7179Szzul1OF2aTCYCaNWuydt16QkJC6NatKwD796dTq2bNIuuGWa0+vTsW6AqaiIiIiIgEiTI9g3a8yMhIUlNTAd8EbfXq1cTHx1c8siO2bN2KzWbzTu/bl8aWrVu9g2G3bdOarKws1q/fAHjGTVu7bh1t27YNWAwiIiIiIiJVodxX0IYMHcr9993H/Q88gMFgID09nWXLlvH0U08y9OKLS2/AT/v3pzP5409o2KAhBgOsXrOWM87oSNcunQFITk7mnL59eP/DD2nTujVbt20nKSnR5zZGERERERGRk0G5E7Sbb74Fp8PJyOuuxel00qd3L8xmMyNGXMvYseMCFmDXLp1p3qwpW7dtw26306/fOdStU8dnmaFDLqJ9+3bs2rWbjh07kNKqFaYjt0CKiIiIiIicLMqdoFksFiZMnMiYsWPZunUrAI0aNSIyMjJgwR0VFxdHXFxcics0atiQRg0bBnzdIiIiIiIiVaXcz6B98MH7pO7ZQ2RkJG3btqVt27aVkpyJiIiIiIicLsqdoE35+mvOO+9crhk+nE8++Zi0tLRAxiUiIiIiInLaKXeCNvOHH/l6ylS6dOnCl198Qf9+5zBy5HV88cUXHDhwIJAxioiIiIiInBbKnaABtGzZkttuv53vvp/JlKnf0KlTJz768APO6dsnMNGJiIiIiIicRiqUoB2Vk5PDpo0b2bhxI2lpadQsZpBoERERERERKV65e3HMzs5m3ry5/PzTT8yfP5+YmBjOPe883nn3PTp27BjIGEVERERERE4L5U7QevXsQWRkJP3PPZe33p5Ep06dMBoDckFORERERETktFTuBO2119+ga9euGhBaREREREQkQMp9yeuss84iOzubH2bO5J13Jnnnb9y4EZfLFZDgRERERERETiflTtDWrFnD4EEDefnll3j5pZe88z/44H2+++67QMQmIiIiIiJyWil3gvbUk08yZuw4fvr5F5/5w4dfw6efflLhwERERERERE435U7Q1q9fx6WXXgqAwWDwzm/cqBGb//234pGJiIiIiIicZsqdoEVGRpKamgr4JmirV68mPj6+4pGJiIiIiIicZsqdoA0ZOpT777uPFStWYDAYSE9P55dffuH+++/joiFDAhmjiIiIiIjIaaHc3ezffPMtOB1ORl53LU6nkz69e2E2mxkx4lrGjh0XyBhFREREREROC+VO0CwWCxMmTmTM2LFs3boVgEaNGhEZGRmw4ERERERERE4n5U7QjoqMjKRt27aBiEVEREREROS0Vu5n0ErSvVvXymhWRERERETklBbwBM1us5GTkxPoZkVERERERE55ZbrFcdGiRSWW2202fvnlF5o3b16hoI5XUFDA5i1bCs1PadXKr3IREREREZGTRZkStOtHjSyx3GKxkJKSwmOPP1GRmHwcysjgzbcm0axZU8ymY+EeTcBKKxcRERERETlZlLmTkOUrVhZbZjKZfAatDqSR144gOjq63OUiIiIiIiLBrswJmtlc4Y4fy2VPair796eTlJRIREREmctFRERERESCXZmyrSVLl1VWHCUyGAxMm/4tBgPs3buP887tz6CBA/wuP15efj75+fne6czDhys9fhEREREREX+UKUELDQ0NeADr12/A5XYVWdagfn3CrFZuu+VmmjZtAsDqNWuY9M571K1bh3Zt25ZafqK5c+fx46yfvNPHJ2siIiIiIiLVqXruVzzOb3/8gdPhLLJsyEUXUqdObWJiYrzz2rRuTcOGDVi1ag3t2rYlJiamxPIT9e3bh+7du3mn09LSuHT+bwHbHhERERERkfKq9gRtzOgby1wnPCycvLy8cpWHWa2EWa3e6QJdQRMRERERkSAR8IGqAy03N9dnuqCggB07dlC3bh2/ykVERERERE4W1X4FrTS/zp7LgYMHSGnVCoMB5s9fiNVqpXfvXn6Vi4iIiIiInCyCPkG78IJB/LN4MZs2/YvNbqdduzb07NHD22FJaeUiIiIiIiIni6BP0AwGA106d6ZL587lKhcRERERETlZBP0zaCIiIiIiIqcLJWgiIiIiIiJBQgmaiIiIiIhIkFCCJiIiIiIiEiSUoImIiIiIiAQJJWgiIiIiIiJBQgmaiIiIiIhIkFCCJiIiIiIiEiSUoImIiIiIiAQJJWgiIiIiIiJBQgmaiIiIiIhIkFCCJiIiIiIiEiSUoImIiIiIiAQJJWgiIiIiIiJBQgmaiIiIiIhIkFCCJiIiIiIiEiSUoImIiIiIiAQJJWgiIiIiIiJBQgmaiIiIiIhIkFCCJiIiIiIiEiTM1R2AP7Kzs/lm+gxWr16N0+mid6+eDB40EJPJBMCOnTv54suv2L17D7GxMQweNJAunTtXc9QiIiIiIiJlE/QJmsvl4s2338FiMfN/EycQExvL/PkLSN27l7p16lBQUMBbb02iXbu23DJ+PCtXruTTz76gZs2aNGrYsLrDFxERERER8VvQ3+K4du06du3axajrriUhIQGL2UzfPr2pW6cOAMtXrCS/oICLhw4hPDyMbt260qhRQ+YvWFjNkYuIiIiIiJRN0Cdo/27eTIP69YmJiSmyfOfOnSQm1iI0NNQ7r0H9+uzcsbOqQhQREREREQmIar/F0eVy4Xa7iywzGo1kZmYSExvDx598yrLlKwgNDaVt2zZcMnQIVquV7OwcIsIjfOpFRESQlZ1dZJt5+fnk5+d7pw8eOgRAWlpahbclLy+P9PT9FW6nMjkdDp/tD1Y2p5t9tuD+/SDXbWdvamp1hwHo2AskHXtlczIce3ByHH869spGx17gnAzHHgTX8SdSVja7g4SEBMzm0tMvw9609KKzoyoy4e57cDgcRZbdcvM45i9YyMoVKxk4cAB9evfi4KFDvP32O6SktOLyyy7lw48+Jjs7m6uvupKXX32VoUMuYv/+dObN+40nHn+0UJs//DiLH2f95J3OzMxk6T9/Vdr2iYiIiIiI/Dp7DklJSaUuV+1X0J5/9ukSy1esWInVauW8c/sDkJSYSNeuXVi06B8AIiMj2LdvHzVqxPHwQ/8F4JtpM4iMiiqyvb59+9C9ezfvdEF+Prt27yI5KQmTqdp3x0kn8/Bhnnv+RSZOuJOY6OjqDkdOIzr2pLro2JPqpONP5OSVkJDg13JBn5HUrVOHxUuW4na7MRgMgOe2SIPR83eDBg1YsPBPCgoKvM+hbd+xnQb16xfZXpjVSpjV6jPPn0xWihZqtWK1WqlVqxZxsbHVHY6cRnTsSXXRsSfVScefyKkv6G84bt++HQbgx1k/kZubx67du/l70SLatmkDQLu2bQgPD2fK1GkcPpzF/AUL2bZtOz17nFW9gYuIiIiIiJRR0F9BCwsLY9y4MUz9Zhqz58wlIiKCDu3bM2jgAABCQ0MZN/Ymvv56Kg8/+hixsTFcO+Ia6hdzBU1ERERERCRYVXsnIXJyy8vPZ+7cefTt26fQraMilUnHnlQXHXtSnXT8iZz6lKCJiIiIiIgEiaB/Bk1EREREROR0oQRNREREREQkSAR9JyES/LKys9mzew92u50mTRoTFhZW3SHJaaKgoICdO3eRn59PnTq1iYuLq+6Q5DThcrnYsWMn2TnZ1IiLo3bt2tUdkpxG9uzZw6FDGYSFWWncuHF1hyMiAaYETUp08OBB9uxJpUGD+kQVMfj31m3beOONt6hbry6hIaEkJtZSgiYVZrfb2bMnFbfbTXJykneMw+MdPpzF088+R0x0NNHR0fTu3VMJmgTE/v37ycjIpFatmsTExBQqd7lcvPTyq2RlZ5NYqxYpKa2UoElAbdmyhQKbjVYtWxYq++LLr1i5ajX16tYlKSlRCZrIKUgJmhRp//79zPj2e3bs2MGhjAzGjL6RNm1aF1ru778X0SqlFdePvK4aopRT0V9/L+L7mT8QHRWFwWgkPT2dK4ddTseOHXyWW7FyJVZrKP9394TqCVROOampqXz59RSys7OJjopm586ddOrUiWGXX4rBYPAut3PnLrZt387TTz2hXvQk4P79dzOvvv4GYWFhPPXEYz5ldoeDhX/+xW233kzTJk2qKUIRqWxK0KRIWVlZdDrzDK66chj33v9gofJt27aTnZ3N7j17iAiPYPXqNQDeWxy3bN1KZEQEVmsYe1L3UKtmTWrUqFHVmyEnI7eb/5s4gehozxXb2XPm8vGnn9G0WVOiIiPZu3cf6enpbNmyBaPR6D32jt7imJqait1uJzExkW3bthMdHUVycnJ1bpGcJLJzcrj04qHUq1cPgH370nj8yadISWlJ2zZtyMzMZOfOXWzfsQOj0cjmfzcDUKOG5xbHQxkZpO1Lo2nTJmzbth2TyUT9+vUwGvW4t/gnLy+PL776iu7durJ8xUrv/IKCAjZt+pec3Bzcbjd7U/eSn5dPeHgYjRs3Ji8/n83/bqZlyxakpqaSX1BAwwYNsFgs1bg1IlJeStCkSEdvmcjNzSuyfPWaNezatZsDBw5y+HAW8xcsBPDe4jhjxneEhIaQlpZGbEwsO3ft4qILL6BP715Vtg1ycurWravPdKuWLZk+41tSU1OJataMrdu2sWLFStL27ycnJ8d77B29xfGPBQvZtm0bdpud8Ihw9uzeQ8eOHbj6qiurY3PkJNKsaVOf6YSEeMxmM5kZmQDsT09n/oKFZGVn43K5vMfe0VscN2zYyIwZ35JcOxm73c7BgweJj4/nlvHjCAkJqfLtkZPPV19P4azu3XG7fUdAys3LY/6ChdgddgCWLltOSEgIiYm1aNy4MQfSD/D2O+/Svl070g+kY7PZcTod3H7rLfpxVOQkpARNyuWCwYMAmPTue8TGxjLssksLLbNjx04euO8eoqOjWbpsGZ98+jlnntGxyGfZRIqzbft2jEYjibVqAdC9W1e6d+vKDz/OYsOGjYwdM7pQnZ07dzHhzjto2LABqXv38tTTz9Klc2eaNtUtQVK6NWvXkZ+fx6J/FlOzZk3v7bVNmzShaZMmrF69hvc++LDIYy87J4cO7dvTq2cPcnPzeOrpZ5i/YCHn9O1TpdsgJ5/FS5Zy4MBBRlwznLnzfvMpi4uNZeyY0RzKyOC/Dz3MsGGXkZSYWKiNiIhwbrzhblwuF6+98Sbf//Aj114zvKo2QUQCRPddSKVp0zqF6OhoADq0b4/ZbGbtuvXVHJWcTLKys/nhx1n07dO7yM4ailO7dm0aNmwAQHJSEo0bNWLlqlWVFaacYhb++Se//zGf7dt30KtnDyIiIvyuazQa6X7kKnB4eBgdOnTQsSelOnjwENOmT+fqq6+s0C2xZ3XvDniOw25du7BqpY49kZORrqBJpYmJifX+bTQaiY6OIiMjo9rikZOLzWZj0jvvUrt2MhdeMLhMdWNPSOaiY6J17InfRt9wPQB79+7j+RdexGIx06VzZ7/qhoeH+zz3ExMTTcaqjMoIU04hU6dNo0GDBqTvTyd9fzp79+7D6XSyevUaGjRsQFRkpF/txMYeO/fFRMeQX1BAXn6+OrMROcnoCppUGputwHe6wIZVHxLiB6fTybvvf4DJZOLG60dhMpnKVL/gxGPPpmNPyi4pKZHGTRqzZu06v+vYbLZC0zr2pDQJ8fG4nJ7nGucffY7Wbmf+goVkHDrkdzsFBcfOfTabDaPRSKiefxQ56egKmlSazVu2eP8+ePAQGZmZ1K1TpxojkpOBy+Xio8kfk5ebx83jx5arc4Vdu3ZTUFBAaGgoTqeT7dt3cP5551ZCtHIqyc7OJvK4KxUul4v09AOktCo8FlVxbDYbO3fu9PYEuWXrVurovCeluHjoEJ/p2XPm8suvs4t8zrEkm7dspdaR53W3bN1KcnKSehEVOQkpQZMi5ebmeQfKBNi+YwcAycnJxMf71yPUoUMZfPb5FzRr1ozffv+dRo0a0qSJBtSUkn09ZSrr1m9g2GWX8u+RbswB6tatQ2xsrF9tmEwm3nv/Qzp37sSKFSsxGAx069qlkiKWU8U306bjdrtp3rw5ZpOJxUuXkpWVRa9ePf1uw2Kx8PmXX9G7Vy92797Dv5v+5e6Jd1Vi1CLH/Dp7Nk6HgwKbjXm//c41w6+u7pBEpByUoEmRsrKOdZ3fOiWFnTt3sXPnLnr0OMsnQWtQvz4R4eFFttGzx9mEhoayYsVKmjdrTv9+51RJ7HJyMxgMNGncmCVLl/nM73dOX58ErVbNmtjt9iLbaNKkMWee0ZHlK1YSHR3FnXfcRmhoaGWGLaeAEdcMZ/nyFWzYuJG8/Hwa1K/P8Kuu9HZ2dFRUVBQpKa2KbCMiPJzLLrmYP+YvwGgycdutt1C7du2qCF9OIQnx8bRq2aLQ/BCLhdYpKcWez0YMH87CP/+koMDGdSOuoUOH9pUdqohUAsPetHR36YuJlM2LL71CixbNGTRwQHWHIqeZr6ZMJSMjg5tuvKG6Q5HTzF9/L2LmzB949JH/VXcocprZtWs3Tz/7HE8+/qjPbboicnLSjckiIiIiIiJBQrc4SqVo3LgRtWrWrO4w5DRUOymJmBNuSROpCnGxsTRv0by6w5DTkDXMSuuUFExmfa0TORXoFkcREREREZEgoVscRUREREREgoQSNBERERERkSChBE1ERERERCRIKEETEREREREJEkrQREREREREgoQSNBERERERkSChBE1ERERERCRIKEETEREREREJEkrQREREREREgoQSNBERERERkSDx/3gZbRdmJwnKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = len(freqs)\n",
    "settings = {\n",
    "    'locked':      np.zeros(N),\n",
    "    'pi flip':     np.array([0 if k % 2 == 0 else np.pi for k in range(N)]),\n",
    "    'pi/2 shift':  np.array([0 if k % 2 == 0 else np.pi / 2 for k in range(N)]),\n",
    "}\n",
    "harmonics = [1, 2, 3, 4]\n",
    "levels = {name: [db_at(ear(comb(freqs, ph)), k * fp) for k in harmonics]\n",
    "          for name, ph in settings.items()}\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "width = 0.26\n",
    "tones = [HAIR, DIM, ORANGE]\n",
    "for j, (name, lv) in enumerate(levels.items()):\n",
    "    xs = np.arange(len(harmonics)) + (j - 1) * width\n",
    "    ax.bar(xs, np.array(lv) + 70, width, bottom=-70, color=tones[j], edgecolor=INK, lw=0.4)\n",
    "    # the names sit on the first group, staggered so the two equal bars read;\n",
    "    # the short bar's name stacks so it stays over its own bar\n",
    "    ax.text(xs[0], lv[0] + (4.2 if j == 1 else 2.0), name if j < 2 else 'pi/2\\nshift',\n",
    "            color=tones[j] if j else DIM, fontsize=7.5, ha='center', va='bottom')\n",
    "floor = 20 * np.log10(1 / (N - 1))\n",
    "ax.axhline(levels['locked'][0] + floor, color=ORANGE, lw=0.7, ls=(0, (4, 3)))\n",
    "# the bars run to the floor, so the only clear ground is right of the last\n",
    "# group: the reference line's label sits there, just above the line\n",
    "ax.text(3.42, levels['locked'][0] + floor + 0.6,\n",
    "        f'closed form: one pair\\nof {N - 1} left standing,\\n{floor:.1f} dB under locked',\n",
    "        color=ORANGE, fontsize=7, ha='left', va='bottom')\n",
    "ax.set(xticks=range(len(harmonics)), xticklabels=[f'{k}fp' for k in harmonics],\n",
    "       xlim=(-0.5, 4.5),\n",
    "       ylim=(-60, max(levels['locked']) + 10), ylabel='level (dB re full scale)',\n",
    "       title='what the ear gets from each phase setting, after the nonlinearity')\n",
    "plt.tight_layout()\n",
    "\n",
    "for name, lv in levels.items():\n",
    "    print(f'{name:11s}', '  '.join(f'{k}fp {v:7.1f}' for k, v in zip(harmonics, lv)))\n",
    "print(f'pi flip vs locked at fp: {levels[\"pi flip\"][0] - levels[\"locked\"][0]:+.2f} dB (a delay)')\n",
    "print(f'pi/2   vs locked at fp: {levels[\"pi/2 shift\"][0] - levels[\"locked\"][0]:+.2f} dB '\n",
    "      f'(closed form {floor:.2f})')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "176312c7",
   "metadata": {},
   "source": [
    "## 5. how the phantom builds with the pair count\n",
    "\n",
    "every adjacent pair contributes one difference tone at fp. in this memoryless model\n",
    "the contributions are perfectly coherent, so N-1 pairs give (N-1) times the amplitude\n",
    "of one pair: **6 dB per doubling**. listeners in P&P's experiment 2 reported about\n",
    "**3 dB per doubling**. that gap is the model's most honest failure: a real cochlea\n",
    "delivers each pair's product from a slightly different place, with a slightly\n",
    "different phase, and the sum only partly reinforces. the plugin draws the 3 dB law\n",
    "on its panel (it is the listener's number); this cell draws both so the difference\n",
    "is visible rather than footnoted."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f574e6f9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:14.836030Z",
     "iopub.status.busy": "2026-09-30T02:55:14.836030Z",
     "iopub.status.idle": "2026-09-30T02:55:15.231081Z",
     "shell.execute_reply": "2026-09-30T02:55:15.230070Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dB per doubling between successive counts: [6.02 6.02 6.02 6.02 6.02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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CCGEEOI+U7lyZXZs305SUlKu1fz+y2w2k5aWZhmmlZaWRlpaGoqiYDKZeGL8eA4cOEBcXByXL1/GzY4rHLlp3749Fy9eZOGCBcTExPDFrFl07twZZ2dnunXrxu5du4iMjOT8+fP88ccflna9e/dmz549LFy4kLi4OHbv3s0jDz9s1XdQUBDbtm0jPj7+jm23956p1q1bk5WVxZ9//klcXBzfffcdtWvXpnLlyvm2y28b4NY9U0lJSWzYsIELFy4QGFhwYQuVSsVXX37J1atX+fqrr2jQsCFVqla1ab/YK79tyO/4eXl54eHhweLFi7ly5Qp//P573tvw9dfUq1fPKonM7fjld37mp3v37uzZs4d//vmHCxcuEH7b/YO2KlIylZGRwebNkcyZM8cy7crlywUGLoQQQgghHGf8+PEcOnyYbl278uQTTwCgVqut7pfRaDSW14cPH6Z9u3b079cPNzc32rdrR/t27bhw4QIajYawceOYMWMGgwYOJDklhRdeeKHAGJydndFqtajValxvrOfmtIoVK/LNt98SrtczfNgwUlJTeX/mTACqV6/OzA8+4P333+fRRx6hb58+uLm6AlChQgV++fVXVixfzpDBg/nf//7HEze276YhQ4dSycuLXj178tijj1rNs/eeKVdXV777/nsWLVpE/379OHzkCF9+9VWB7fPbBo1WS2pKCu3btaNnjx58+cUXvPveezRo0KDAeDw8PKjk7c2QwYM5cOAAn332mU37RaVS2XyvlC3bkN/xU6vVvPnmm3z5xRc8/thjdO7SxbJulUqFr68vPr6+DBk8mH179/LZ559brTe345ff+ZnfeV21alU+/vhj/ve///H4Y4/RtWtXdFr7ip2rYmLjCpX5nD59iokTJpCenk5ycjKHj+RUv5g65Xl69e5Nnz59C9NtmRMTEyOl0YUQQghx150+dYpz588T4O9P7Tp1HB2OKGVulkbfY0M1QZG7v//+mwXz5/Pd9z/Y3KbQV6Zmvj+TESNGsnXbdqvpDz/y6B2X64QQQgghROHEx8fz8EMP0a9fPyZNnEi/fv14+KGHbB6KJoTI2/Tp0zmwfz8XLlzg999+o0ePHna1L3QydfjwIR566CFUKpXVpcw6tWtz8uTJwnYrhBBCCCFuM+X559mxY4fVtB07djB1yhQHRSRKo/8OZxO2GTJ4MDPefZeH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",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "counts = [2, 3, 4, 5, 6, 8]\n",
    "pair_levels = []\n",
    "for n in counts:\n",
    "    fr = solve_qdt(fp, n=n)\n",
    "    # one pair's worth of amplitude per partial, so N is the only thing changing\n",
    "    x_n = sum(np.sin(2 * np.pi * f * t) for f in fr) / 2\n",
    "    pair_levels.append(db_at(ear(x_n), fp))\n",
    "pair_levels = np.array(pair_levels)\n",
    "pairs = np.array(counts) - 1\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(pairs, pair_levels, 'o-', color=INK, lw=1.0, ms=4)\n",
    "ax.text(pairs[-1] * 1.06, pair_levels[-1], 'this model: 6 dB per doubling' + chr(10) + '(perfectly coherent sum)',\n",
    "        color=INK, fontsize=8, va='center')\n",
    "base = pair_levels[0]\n",
    "yy = base + 3.0 * np.log2(pairs)\n",
    "ax.plot(pairs, yy, color=ORANGE, lw=0.8, ls=(0, (4, 3)))\n",
    "ax.text(pairs[-1] * 1.06, yy[-1], '3 dB per doubling' + chr(10) + '(listeners, P&P exp. 2)', color=ORANGE,\n",
    "        fontsize=8, va='center')\n",
    "ax.set(xscale='log', xlim=(0.9, 16), xticks=pairs, xticklabels=[str(q) for q in pairs],\n",
    "       xlabel='adjacent pairs (N - 1)', ylabel='level at fp (dB re full scale)',\n",
    "       title='the phantom versus the number of pairs, one pair-amplitude per partial')\n",
    "ax.minorticks_off()\n",
    "plt.tight_layout()\n",
    "\n",
    "steps = np.diff(pair_levels) / np.diff(np.log2(pairs))\n",
    "print('dB per doubling between successive counts:', np.round(steps, 2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8e055f1",
   "metadata": {},
   "source": [
    "## 6. measuring an empty register without fooling yourself\n",
    "\n",
    "the plugin's panel carries an honesty meter: the level at fp in the output,\n",
    "against the loudest primary. it is easy to get this wrong. in CDT mode the lower\n",
    "primary sits at fp/(2-r), only 0.28 fp above the phantom at r = 1.22, and a\n",
    "2048-point hann at 48 kHz puts it three bins away. the shipping 1.0.0 meter\n",
    "read \"NOT EMPTY\" at -29 dB over a register that was empty to -140 (review F14,\n",
    "recorded in `analyzer.h`); the in-silico replica of that meter below reads\n",
    "-11 dB re f1, because at r = 1.22 f1 is 3.15 bins away and the +-2 bin search\n",
    "lands inside hann's main lobe. the fix is the instrument this notebook uses\n",
    "everywhere: a longer frame, a blackman-harris window (-92 dB sidelobes), and a\n",
    "goertzel at exactly fp."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bdec4d16",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-09-30T02:55:15.234080Z",
     "iopub.status.busy": "2026-09-30T02:55:15.233080Z",
     "iopub.status.idle": "2026-09-30T02:55:15.555764Z",
     "shell.execute_reply": "2026-09-30T02:55:15.554746Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hann 2048, fp +- 2 bins (1.0.0)        -11.0 dB re f1\n",
      "blackman-harris 8192 goertzel         -105.6 dB re f1\n",
      "truth: 1 s goertzel                   -123.0 dB re f1\n"
     ]
    },
    {
     "data": {
      "image/png": "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vs5ff83l1f++QvkKFeja9UasFit3DryDTRd+qUtISGDhwoVs27oVPz8/hj31FPPm/UWNmjV47rlniYuLK9SYnZXjajw7d+1k6tQpfPrpJ7Rt25bQ0FAefngIy5Ytdfl4hYaGcj4ujkk//ZQjxlkzZ7J+3bocXzxdERMby8KFC3n33XfYv38/HTtew6FDh5jx228ut+HaNWt46MEH8fP1o3279owf/zWTJv3Ezh077esEBATQt18/bunTN99hQs7ODVfPZ1ePu7O6F4bCvAZdidmVuhfGdXHu3FnmL5if57KFixbaj5mza9nV89mV9w1X7Ny5gzvuuJ0zZ85w3fVdiDsfx8A7bic6Otq+TpOmTenbrx8tWrbEaDTaj1dBh0Q6q7s79bJarbz55htMnzaN+++/H39/f8C162v37t388cfvDs8xV67lgli+fDl169ajTJkyuZZt3bqVhnn8SODr6+uwzLr16rJ3717MZrNbMeXH2fszuHZMXTkWUDjvP87iKcj7jzOuHq8P3h9J69ZtaNe+fYHKd8fltuG6desY9tST+f63alXxD+e89D60kydOcPz4cerUrVOgdbIFBwfToEEUyy/5LBERx4q1h81kMtG1640AfPrJJ9SqVcv+96WSk5P55JNPCL3wwbp27Rrmz//H/mvae++9S2BQEN9+OwFvHx8AUlNSGf35aMaP/8blmDZs3EBycjJvv/OO/RewuwYNyvFrWNu27ejevYd9GNLNN9/MwYMHmDJlMi1atLCv9+ijj5KckszUqVO49957adKkKWO/+oq9e/fStm3bQovZ1XKcxZPdzqM/H0OFChUAOHf2HGM+H0OnTp1dPl6333EHr7/2GvHnz9uP14zfZ9D7llucftnJT3h4OI8++hgAffv2JSU52eW6jx49mi5dbuC/r74KwHXXX0/XG3L+kufv70/Xrjc6/JLl7NxwtX0Ketzzq3thKMxr0JWYXal7YVwXLVu1Yu7cuUDWL/fvvvM2L7/yXyIiIti8aTOdOncCXLuWXTmfXXnfcMWXX3xBgwYN7L1/ffr04eSJE3w+ejTjvv4agMjISCIjI0lMSMRoNOZ7vJxxpe4FqZfFbObll15kx86d/PDjT4SHh9uXuXJ9gfNzzJVruSB27thBvXp181wWFxdHaGhogcsMCQ7BbDaTnJRkr0dhcfT+DK4dU1ePRbbL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bKZuvXr8NmMGtWvXLpR6Xg5bRipJTzQg6ItdGHz8PR2OiIhIqWOIOXWmWOaFjomJ4cauN/DtxB8oX75CcexSrmDjx33Jxx9/7OkwSpUjR45QtWpVjEYjMTEx9OzRgzVr1uDjxv1nItlsGakk3R9O0MQYJWwiHpCRkenpEESkiKmHTeQqsXv3bp555hnatW3L4sWLeeDBB5WsiYiIiJRwSthErhI33XQT4eHhrF61ipdefpnOTu6pEhERERHPU8ImchVp0qRJjhkNRS6byRu/J78Fk7fzdUVERKTAlLCJiIjbDCYvvDve5ukwRERESi2jpwMQERERERGRvClhExERt9nMmWT8OQabWTPViYiIFAUlbCIi4j6rmfRJ/wWr2dORiIiIlEpK2EREREREREooJWwiIiIiIiIllBI2ERG5DAaMVRoABk8HIiIiUippWn8REXGbwcePwA/XeDoMERGRUks9bCIiIiIiIiWUEjYREREREZESSgmbiIi4zZaRSuIDEdgyUj0dioiISKmkhE1ERC5PeoqnIxARESm1lLCJiIiIiIiUUErYRERERERESiglbCIi4j4vH/ye/hG8fDwdiYiISKmk57CJiIjbDEYT3m37eDoMERGRUks9bCIiIiIiIiWUEjYREXGbzZxJ+h8fYTNnejoUERGRUkkJm4iIuM9qJmPqW2A1ezoSERGRUkkJm4iIiIiISAlV7JOO/PzTD/j7+xf3buUKExwc7OkQREREREQ8rtgTttdfe43wiIji3q2IiBQJA8aaTQGDpwMREREplTStv4iIuM3g40fge8s8HYaIiEippXvYRERERERESiglbCIiIiIiIiWUEjYREXGbLSOVxMFlsWWkejoUERGRUkkJm4iIXB6rxdMRiIiIlFpK2EREREREREooJWwiIiIiIiIllBI2ERFxn5cP/s//Al4+no5ERESkVNJz2ERExG0GowmvFt09HYaIiEippR42ERERERGREkoJm4iIuM1mziR92ghs5kxPhyIiIlIqKWETERH3Wc1k/DYSrGZPRyIiIlIqFfs9bO89eR8BPt7FvVuRK05AeHVe++QrT4chIiIiIh5U7AnbMMM6Khmsxb1bkSvOuzHXejoEEREREfEwDYkUERH3GYwY67YBgz5OREREioKm9RcREbcZvH0JfGu+p8MQEREptfSTqIiIiIiISAmlhE1ERNxms9mwWczYbDZPhyIiIlIqKWETERH3ZaaRdE85yEzzdCQiIiKlkhI2ERERERGREkoJm4iIiIiISAmlhE1ERERERKSEUsImIiLu8/LB/+XfwcvH05GIiIiUSnoOm4iIuM1gNOHVpIunwxARESm11MMmIiIiIiJSQilhExERt9nMmaRPeQObOdPToYiIiJRKSthERMR9VjMZMz8Bq9nTkYiIiJRKSthERERERERKKCVsIiIiIiIiJZQSNhERcZ/BiCnqWjDo40RERKQoaFp/ERFxm8Hbl4D//enpMEREREot/SQqIiIiIiJSQqmHTeQKFRMTQ1paGjVr1sy17ODBg5w9exaARo0a4e/vf9n7S0lJYe+ePTRr3vyyy7pcsbGxpKSkUKtWrWLd75kzZzh//jx169Yt1v2Kc0Vxzpdkx44dw2AwUKVKFU+HIiIiRUw9bCJXqD9nz+arL7/Mc9mcP/9k1KhR3HfvvRw9erRQ9nfo0CEefuSRQinrcs2dM4cvxowp9v1u27qVP/74o9DKs1qtHDhwgH1792KxWOyvp6ens379evt/lzKbzezbu5cDBw7kWmaxWNi7dy8nT54stDiLgsViybNu7iqKc94RZ8cI4MCBA+zduzfPZefOnSM6OpqMjAy39v/TTz/x888/A3D48GHWr1/Phg0b2LdvH2azHrEgIlKaqIdNpBR64skneeLJJ+nYoYOnQylVutxwA11uuKFQyjp//jz33XsvCQkJmEwmfHx8mPj991SsWJG4uDhGjRpFeloa27dvZ8fOnXh5Zb1dnzhxggcfeACr1UpKSgr16tVj3Lhx+Pj6smrVKv77yiv4+flx9uxZWrVuzWeffYa3t3ehxFyYkpOTGXTXXTnqdjmK+5x3dIwsFgtPPvkkmzZuxGQyUadOHcZ/8w2+vr4AfPbpp0yYMIEaNWrg4+PD1+PHU7ZsWbdjGTduHEuXLKFqtWrExcVhzsxk/DffULt27UKpq4iIeJZ62ESucImJiezcudPlX+rPnz+f49f4vGRkZLBnzx4SExPzLefc2bNs3rQJgM2bNpGYmGjv2di/fz9paWlO9xcbG8vBgwdJu/ClNykpyaU6ZMtrO2f1i4mJ4dChQ6Snp7Nt2zbWr19PSkqKw2Vms9nek5Jfmx08eJDDhw+7HPukn37C19eX+QsW8M/8+VSpUoXvJkwAIDw8nClTpjDqo49ybffll1/SqFEj/v7nHxYsXMj58+f57bffADhz+jTf//ADc+bOZeGiRezetcu+zBmLxcLu3buJi4vj2LFjHD9+3L7MZrNx5MgRDh06hM1my7Xt6dOn2XtJLyHk3547duxg8+bNAGzcsIH169cTc6FHMDExMUfP1fr16zlx4oRL+ytOjo7R3Dlz2LljB/Pnz2fBwoWcOnWKX375BYCVK1cydepUZs2ezcxZsxg5ciTnz593aZ8Wi4U9e/YQFxeXa9lN3boxZcoU5s2bR4eOHT3SAy0iIkVDPWwiV7CjR49y64ABGIxGMjMy+OHHH6latarDbfbu3ctHF75knoqNpXz58kz47juCgoIAmD9/Pv995RXKly9PfEICL730Er17985RRmxsLPfecw9PPPEEzVu04KGHHqJ+ZCTbo6Pp1KkTe/fuzUpAJk50uL+5c+awYMECzsfHk5mRQUJCAr/NmEF4eLjTusfGxnL77bfn2s5Z/f6cPZs///yT06dPU65cOfz8/Xn//fepUaNGvsvKli3LqFGjOHvmDHXr1eOrr76yx5GRns7999/P8ePH8fP3p1q1aowZMwY/Pz+H8SckJlK7dm1MJhMAdevWJT4hwWm9d+3cyeB77gHA19eX66+/nuXLl3PnXXdxS58+9vUCAwOpW7dujsQrP+fOneO+e+8lOTkZgMqVK9OseXOef/55kpOTeezRRzl06BBeXl5UrFiRr8ePJzQ0lIyMDF584QVWr15NWFgYABMmTCA8IsJhW//w/ff24Zwff/IJAIPuuos+ffty9MgRRo0aZY9t/7593HvffTz11FNO9+fM3r17sVqtREZGurS+uxYvWcJNN91EUHAwADf36sWSJUu45557+PPPP7njjjvw9/dn9+7d1KpVCx8fH6dlnj17lnvvuYf09HQsFgvhERG0bNkyz3WrVavGihUrCrVOIiLiOUrYRK5gO3fuZN7ff1OxYkVeevFFxnz+OSPff9/hNm3atGHKlClAVs/J0MceY/q0adx3//2cPXuWF55/nk8/+4zOnTtjNptZtWpVju3PnDnD/ffdx6OPPkqfvn3tr48YMYJp06Zx/Ngx5sydS6uWLbFYLA73B7B7927+mjePsmXL8vCQIfw5ezYPDRnitO75bedsf5DVAzj9t9/ynDwkv2VTpkzhl19+YdGiRTle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mzZtCA0NdXmWSFcsWrSQipUqEh4ezhdjxnDHHQPtSUK2d95+i8TERBYsXORyuc7aP1v2pCMJCQnM/ON3ypYtS5cuN1x2vZydPyaTa8MS3W3/wtp/2bJladSoMZ+P/owBA261779MmTLcddddvP3WW5w9c5a09HTGfD6ax4YOtd9j1aRJE9atW8cnn37GuXNnefutt+jVu3ehxueMK+dXXpxdn864en050717d0aOeI+YmBhGf/55gbcXERFRwiZXvFYtW1G9evU8lz00ZAiRkZH8888/7N23l0YNGzH1l1/x9fXF19eXH378kck/T+bvefNo0aIlffr0ZeLE7+zbv/vue3w/cSKLFi4kMjKSt99+x/6lz2w226dqByhbrqz979q1ahEcHMw1115L+YtmLKxUqSLXXHON/e+333mH7ydOZPHixURGRnLvfffx5+zZLtW7XLlyTuMHKF+hAmPHfc2sWTOZNm1a1jCtAiZs7dt3IDwi7/v3XnzpZbZvj2bpkqXcf/8D3DVoUI7lVquVM2fOuJUkOmp/Pz8/Ol93HZs2bWLzps2EhIbQoUNHRn30cYGeBefu+eMqR+3v7PwojP0DjPniC7795ptc+3/2ueepVas2q1avwmQ08dprr9sTMoBevXtnTVUfHExwcDC9evXippv+nbLflfgcta8rnJ1f+ZXv7PqsVbsWYWFZ9w9G1o/ExzdrWGjDqIZUqlTJ5evLWf2CgoJo3749qWlpuZ6xJyIi4gpDzKkzRTNOSkScSkhIyDH9+ZtvvE5CQgIfffyJB6NyXcsWzfn4k0/tz2XLy/bt27lz4B057gUScYUr51dJl5mRwY03duW555/nllv6eDocERG5AqmHTcSDfp40icNHDnPNNddw9MhRZs+ezTffTvB0WIXq9OnTPPLIo0rW5KqzeNEiFixcgJe3d4Ef2SEiIpJNCZuIBz362GPMnDmTZUuXUiYsjB9+/JGoqIaeDstlnTp3ply5cg7Xuf7666/oHhLxHFfOr5Lsl19/oWxYGF9/Pb7Aw1hFRESyaUikiIiIiIhICaVp/UVEREREREooJWwiIiIiIiIllBI2ERERERGREkoJm4iIiIiISAmlhE1ERERERKSEUsImIiIiIiJSQilhExERERERKaGUsImIiIiIiJRQSthERERERERKKCVsIiIiIiIiJdT/AZs+Xo3sCf47AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 880x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "r = 1.22\n",
    "fp_c4 = 261.63\n",
    "f1 = fp_c4 / (2 - r)\n",
    "pair = (np.sin(2 * np.pi * f1 * t) + np.sin(2 * np.pi * r * f1 * t)) / 2\n",
    "\n",
    "def hann_bin_meter(x, hz, n=2048):\n",
    "    '''what the 1.0.0 meter did: max over fp +- 2 bins of a 2048 hann fft'''\n",
    "    seg = x[:n] * np.hanning(n)\n",
    "    m = np.abs(np.fft.rfft(seg)) / (n / 4)\n",
    "    b = int(hz * n / SR)\n",
    "    return 20 * np.log10(m[max(1, b - 2):b + 3].max() + 1e-12)\n",
    "\n",
    "reads = {\n",
    "    'hann 2048, fp +- 2 bins (1.0.0)': hann_bin_meter(pair, fp_c4),\n",
    "    'blackman-harris 8192 goertzel':    db_at(pair[:8192], fp_c4),\n",
    "    'truth: 1 s goertzel':              db_at(pair, fp_c4),\n",
    "}\n",
    "ref = db_at(pair, f1)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "names = list(reads)\n",
    "vals = np.array([reads[k] - ref for k in names])\n",
    "ax.barh(range(len(names)), vals + 160, left=-160, color=[DIM, ORANGE, HAIR], edgecolor=INK, lw=0.4)\n",
    "for i, (name, v) in enumerate(zip(names, vals)):\n",
    "    # a background on the label so the threshold line does not cut it\n",
    "    ax.text(v + 2, i, f'{name}: {v:.0f} dB', color=INK, fontsize=8, va='center',\n",
    "            bbox=dict(facecolor=ax.get_facecolor(), edgecolor='none', pad=1.5), zorder=3)\n",
    "ax.axvline(-60, color=ORANGE, lw=0.7, ls=(0, (4, 3)), zorder=1)\n",
    "ax.text(-62, -0.55, 'register empty below here', color=ORANGE, fontsize=8, ha='right', va='center')\n",
    "ax.set(yticks=[], xlim=(-160, 0), ylim=(-0.8, len(names) - 0.4),\n",
    "       xlabel='reading at fp, dB re the lower primary',\n",
    "       title=f'the same empty register, three ways of asking (CDT pair at C4, r = {r})')\n",
    "plt.tight_layout()\n",
    "for k, v in reads.items():\n",
    "    print(f'{k:36s} {v - ref:7.1f} dB re f1')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15c2abf6",
   "metadata": {},
   "source": [
    "## honest limits and next steps\n",
    "\n",
    "- this memoryless model proves *existence*, *phase dependence* and the\n",
    "  alternating-phase cancellation (section 4), because all three are pair-phase\n",
    "  algebra. it cannot show the f2/f1 ratio window (goldstein's curves), the level\n",
    "  growth laws, or the 3 dB buildup (section 5), because those live in the\n",
    "  traveling-wave overlap on the basilar membrane. next notebook: the CARFAC v2\n",
    "  cochlear model (numpy) for exactly that.\n",
    "- the real ear also feeds back (MOC efferents) and compresses level-dependently:\n",
    "  see `../deep-dives/01-outer-hair-cells-and-oae.md`.\n",
    "- the plugin checks itself against these numbers: `plugins/thirdear-cpp/tests/`\n",
    "  renders the shipping binary through the same square-law ear (`phase.cpp` is\n",
    "  section 4, `clean.cpp` is section 6, `ear.cpp` is section 3).\n",
    "- references: kendall/haworth/cadiz CMJ 2014 (mirrored in `../../research/papers/`),\n",
    "  pressnitzer & patterson 2001, and the eartone cheatsheet's condition list."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "simdaudio (py3.12)",
   "language": "python",
   "name": "simdaudio"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
