Ctrl K
ComunidadGuías…

examples/snapshot-showcase.snapshot.deepnote

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
environment: {}
execution:
  finishedAt: 2026-03-31T09:00:05.000Z
  startedAt: 2026-03-31T09:00:00.000Z
metadata:
  createdAt: 2026-03-31T09:00:00.000Z
  modifiedAt: 2026-03-31T09:00:00.000Z
  snapshotHash: sha256:806a020021df0eeedd8ada46e61d1cc037a05e2af36708444d021dee5290f15d
project:
  id: 9b1f7c00-0000-4a00-9000-locrunnershow1
  name: Sales performance
  notebooks:
    - blocks:
        - id: b0000000000000000000000000000001
          blockGroup: g0000000-0000-0000-0000-000000000001
          sortingKey: "000000"
          contentHash: sha256:7f6af06b00b0189f647e8069f612d80fe93684a7b7cd9521540a586129015ca1
          type: text-cell-h1
          content: Sales performance
          metadata: {}
        - id: b0000000000000000000000000000002
          blockGroup: g0000000-0000-0000-0000-000000000002
          sortingKey: "000001"
          contentHash: sha256:0ef3d696f96422bf2fa2c7650fb8de9506942ba0ac819b2a61f71b619efa1357
          type: markdown
          content: >-
            Edit the inputs, then **Run** — the notebook recomputes a small revenue

            dashboard (a KPI, a table, and a chart) from deterministic synthetic data.

            No API keys, no network.
          metadata: {}
        - id: b0000000000000000000000000000003
          blockGroup: g0000000-0000-0000-0000-000000000003
          sortingKey: "000002"
          executionCount: 1
          outputs: []
          type: input-text
          content: ""
          metadata:
            deepnote_variable_name: report_title
            deepnote_input_label: Report title
            deepnote_variable_value: Q1 2026 Sales Review
        - id: b0000000000000000000000000000004
          blockGroup: g0000000-0000-0000-0000-000000000004
          sortingKey: "000003"
          executionCount: 2
          outputs: []
          type: input-select
          content: ""
          metadata:
            deepnote_variable_name: region
            deepnote_input_label: Region
            deepnote_variable_value: All regions
            deepnote_variable_options:
              - All regions
              - North America
              - Europe
              - Asia Pacific
              - Latin America
            deepnote_variable_custom_options:
              - All regions
              - North America
              - Europe
              - Asia Pacific
              - Latin America
            deepnote_variable_selected_variable: ""
            deepnote_variable_select_type: from-options
            deepnote_allow_multiple_values: false
            deepnote_allow_empty_values: false
        - id: b0000000000000000000000000000005
          blockGroup: g0000000-0000-0000-0000-000000000005
          sortingKey: "000004"
          executionCount: 3
          outputs: []
          type: input-slider
          content: ""
          metadata:
            deepnote_variable_name: trailing_months
            deepnote_input_label: Trailing months
            deepnote_variable_value: "6"
            deepnote_slider_min_value: 3
            deepnote_slider_max_value: 12
            deepnote_slider_step: 1
        - id: b0000000000000000000000000000006
          blockGroup: g0000000-0000-0000-0000-000000000006
          sortingKey: "000005"
          executionCount: 4
          outputs: []
          type: input-slider
          content: ""
          metadata:
            deepnote_variable_name: target_revenue_k
            deepnote_input_label: Monthly revenue target ($k)
            deepnote_variable_value: "1000"
            deepnote_slider_min_value: 600
            deepnote_slider_max_value: 2000
            deepnote_slider_step: 50
        - id: b0000000000000000000000000000007
          blockGroup: g0000000-0000-0000-0000-000000000007
          sortingKey: "000006"
          executionCount: 5
          outputs: []
          type: input-checkbox
          content: ""
          metadata:
            deepnote_variable_name: show_forecast
            deepnote_input_label: Show forecast
            deepnote_variable_value: true
        - id: b0000000000000000000000000000008
          blockGroup: g0000000-0000-0000-0000-000000000008
          sortingKey: "000007"
          executionCount: 6
          outputs: []
          type: input-date
          content: ""
          metadata:
            deepnote_variable_name: as_of
            deepnote_input_label: As of
            deepnote_variable_value: 2026-03-31
            deepnote_input_date_version: 2
        - id: b0000000000000000000000000000009
          blockGroup: g0000000-0000-0000-0000-000000000009
          sortingKey: "000008"
          executionCount: 7
          outputs: []
          type: input-date-range
          content: ""
          metadata:
            deepnote_variable_name: period
            deepnote_input_label: Reporting period
            deepnote_variable_value:
              - 2026-01-01
              - 2026-03-31
        - id: b000000000000000000000000000000a
          blockGroup: g0000000-0000-0000-0000-00000000000a
          sortingKey: "000009"
          executionCount: 8
          outputs: []
          type: input-textarea
          content: ""
          metadata:
            deepnote_variable_name: analyst_notes
            deepnote_input_label: Analyst notes
            deepnote_variable_value: APAC expansion drove the quarter; watch Latin America pipeline.
            deepnote_variable_default_value: ""
        - id: b000000000000000000000000000000b
          blockGroup: g0000000-0000-0000-0000-00000000000b
          sortingKey: "000010"
          contentHash: sha256:923b60c7bc121c9c74a8b8d314cf202730151c81b683cf97f4b23e3f401f6820
          executionCount: 9
          outputs:
            - output_type: stream
              name: stdout
              text: >
                Q1 2026 Sales Review — All regions, last 6 months (as of 2026-03-31)
          type: code
          content: >-
            import numpy as np

            import pandas as pd

            import matplotlib

            matplotlib.use("Agg")

            import matplotlib.pyplot as plt


            # --- deterministic synthetic data: monthly revenue ($k) by region ----------

            MONTHS = pd.period_range("2025-04", periods=12, freq="M").astype(str).tolist()

            REGIONS = ["North America", "Europe", "Asia Pacific", "Latin America"]

            BASE = {"North America": 320, "Europe": 260, "Asia Pacific": 210, "Latin America": 120}

            GROWTH = {"North America": 1.010, "Europe": 1.018, "Asia Pacific": 1.030, "Latin America": 1.022}


            rng = np.random.default_rng(42)

            rows = [
                {"month": m, "region": r, "revenue_k": round(BASE[r] * GROWTH[r] ** i * rng.uniform(0.92, 1.10), 1)}
                for r in REGIONS
                for i, m in enumerate(MONTHS)
            ]

            df = pd.DataFrame(rows)


            # --- apply the notebook inputs (input values arrive as strings) -------------

            def _num(x):
                return float(str(x))

            months = max(1, min(12, int(_num(trailing_months))))

            target_monthly = int(_num(target_revenue_k)) * 1000

            target_total = target_monthly * months

            forecast_on = str(show_forecast).lower() in ("true", "1")

            selected = None if region == "All regions" else region


            window = MONTHS[-months:]

            view = df[df["month"].isin(window)]

            if selected:
                view = view[view["region"] == selected]

            print(f"{report_title} — {selected or 'All regions'}, last {months} months (as of {as_of})")
          metadata: {}
        - id: b000000000000000000000000000000c
          blockGroup: g0000000-0000-0000-0000-00000000000c
          sortingKey: "000011"
          contentHash: sha256:d4402080d9184ff14e13204791713218cd33045222e726f2867d4a7b1af25a40
          executionCount: 10
          outputs:
            - output_type: execute_result
              data:
                text/plain: <IPython.core.display.HTML object>
                text/html: >
                  
                  <div
                  style="display:flex;gap:12px;flex-wrap:wrap;font-family:system-ui,-apple-system,sans-serif;color:inherit">
                    <div style="flex:1;min-width:160px;border:1px solid rgba(128,128,128,.28);border-radius:8px;padding:14px 16px">
                      <div style="font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6">Revenue · 6 mo</div>
                      <div style="font-size:26px;font-weight:650;margin-top:4px">$6,572,100</div>
                      <div style="font-size:13px;margin-top:2px;color:#0e8f8f">
                        ▲ 13.7% vs prior period
                      </div>
                    </div>
                    <div style="flex:1;min-width:160px;border:1px solid rgba(128,128,128,.28);border-radius:8px;padding:14px 16px">
                      <div style="font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6">To target</div>
                      <div style="font-size:26px;font-weight:650;margin-top:4px">110%</div>
                      <div style="font-size:13px;margin-top:2px;opacity:.6">target $6,000,000</div>
                    </div>
                    <div style="flex:1;min-width:160px;border:1px solid rgba(128,128,128,.28);border-radius:8px;padding:14px 16px">
                      <div style="font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6">Top region</div>
                      <div style="font-size:19px;font-weight:650;margin-top:8px">North America</div>
                      <div style="font-size:13px;margin-top:2px;opacity:.6">by revenue in window</div>
                    </div>
                  </div>
              metadata: {}
              execution_count: 10
          type: code
          content: >-
            from IPython.display import HTML


            total = float(view["revenue_k"].sum()) * 1000

            pct = total / target_total * 100 if target_total else 0.0


            prior = MONTHS[-(2 * months):-months]

            prior_view = df[df["month"].isin(prior)]

            if selected:
                prior_view = prior_view[prior_view["region"] == selected]
            prior_total = float(prior_view["revenue_k"].sum()) * 1000

            delta = (total / prior_total - 1) * 100 if prior_total else 0.0


            up = delta >= 0

            top_region = view.groupby("region")["revenue_k"].sum().idxmax()

            card = "flex:1;min-width:160px;border:1px solid rgba(128,128,128,.28);border-radius:8px;padding:14px 16px"

            cap = "font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6"

            big = "font-size:26px;font-weight:650;margin-top:4px"

            HTML(f'''

            <div
            style="display:flex;gap:12px;flex-wrap:wrap;font-family:system-ui,-apple-system,sans-serif;color:inherit">
              <div style="{card}">
                <div style="{cap}">Revenue · {months} mo</div>
                <div style="{big}">${total:,.0f}</div>
                <div style="font-size:13px;margin-top:2px;color:{'#0e8f8f' if up else '#c02a4b'}">
                  {'▲' if up else '▼'} {abs(delta):.1f}% vs prior period
                </div>
              </div>
              <div style="{card}">
                <div style="{cap}">To target</div>
                <div style="{big}">{pct:.0f}%</div>
                <div style="font-size:13px;margin-top:2px;opacity:.6">target ${target_total:,.0f}</div>
              </div>
              <div style="{card}">
                <div style="{cap}">Top region</div>
                <div style="font-size:19px;font-weight:650;margin-top:8px">{top_region}</div>
                <div style="font-size:13px;margin-top:2px;opacity:.6">by revenue in window</div>
              </div>
            </div>

            ''')
          metadata: {}
        - id: b000000000000000000000000000000d
          blockGroup: g0000000-0000-0000-0000-00000000000d
          sortingKey: "000012"
          contentHash: sha256:146ffa35594cd4e3873ba614333351d1bcf3cf072a740cdfa578a16532ede6a2
          executionCount: 11
          outputs:
            - output_type: execute_result
              data:
                application/vnd.deepnote.dataframe.v3+json:
                  column_count: 3
                  columns:
                    - name: Revenue ($k)
                      dtype: float64
                      stats:
                        unique_count: 4
                        nan_count: 0
                        min: "883.4"
                        max: "2137.3"
                        histogram:
                          - bin_start: 883.4
                            bin_end: 1008.79
                            count: 1
                          - bin_start: 1008.79
                            bin_end: 1134.18
                            count: 0
                          - bin_start: 1134.18
                            bin_end: 1259.5700000000002
                            count: 0
                          - bin_start: 1259.5700000000002
                            bin_end: 1384.96
                            count: 0
                          - bin_start: 1384.96
                            bin_end: 1510.35
                            count: 0
                          - bin_start: 1510.35
                            bin_end: 1635.7400000000002
                            count: 0
                          - bin_start: 1635.7400000000002
                            bin_end: 1761.13
                            count: 1
                          - bin_start: 1761.13
                            bin_end: 1886.52
                            count: 0
                          - bin_start: 1886.52
                            bin_end: 2011.9100000000003
                            count: 1
                          - bin_start: 2011.9100000000003
                            bin_end: 2137.3
                            count: 1
                        categories: null
                    - name: Avg / mo ($k)
                      dtype: float64
                      stats:
                        unique_count: 4
                        nan_count: 0
                        min: "147.2"
                        max: "356.2"
                        histogram:
                          - bin_start: 147.2
                            bin_end: 168.1
                            count: 1
                          - bin_start: 168.1
                            bin_end: 189
                            count: 0
                          - bin_start: 189
                            bin_end: 209.89999999999998
                            count: 0
                          - bin_start: 209.89999999999998
                            bin_end: 230.79999999999998
                            count: 0
                          - bin_start: 230.79999999999998
                            bin_end: 251.7
                            count: 0
                          - bin_start: 251.7
                            bin_end: 272.59999999999997
                            count: 0
                          - bin_start: 272.59999999999997
                            bin_end: 293.5
                            count: 1
                          - bin_start: 293.5
                            bin_end: 314.4
                            count: 0
                          - bin_start: 314.4
                            bin_end: 335.29999999999995
                            count: 1
                          - bin_start: 335.29999999999995
                            bin_end: 356.2
                            count: 1
                        categories: null
                    - name: Share
                      dtype: object
                      stats:
                        unique_count: 4
                        nan_count: 0
                        min: null
                        max: null
                        histogram: null
                        categories:
                          - name: 32.5%
                            count: 1
                          - name: 29.1%
                            count: 1
                          - name: 2 others
                            count: 2
                    - name: _deepnote_index_column
                      dtype: object
                  row_count: 4
                  preview_row_count: 4
                  rows:
                    - Revenue ($k): 2137.3
                      Avg / mo ($k): 356.2
                      Share: 32.5%
                      _deepnote_index_column: North America
                    - Revenue ($k): 1913
                      Avg / mo ($k): 318.8
                      Share: 29.1%
                      _deepnote_index_column: Europe
                    - Revenue ($k): 1638.4
                      Avg / mo ($k): 273.1
                      Share: 24.9%
                      _deepnote_index_column: Asia Pacific
                    - Revenue ($k): 883.4
                      Avg / mo ($k): 147.2
                      Share: 13.4%
                      _deepnote_index_column: Latin America
                  type: dataframe
                text/plain: >2-
                                 Revenue ($k)  Avg / mo ($k)  Share
                  region                                           

                  North America        2137.3          356.2  32.5%

                  Europe               1913.0          318.8  29.1%

                  Asia Pacific         1638.4          273.1  24.9%

                  Latin America         883.4          147.2  13.4%
                text/html: >-
                  <div>

                  <style scoped>
                      .dataframe tbody tr th:only-of-type {
                          vertical-align: middle;
                      }

                      .dataframe tbody tr th {
                          vertical-align: top;
                      }

                      .dataframe thead th {
                          text-align: right;
                      }
                  </style>

                  <table border="1" class="dataframe">
                    <thead>
                      <tr style="text-align: right;">
                        <th></th>
                        <th>Revenue ($k)</th>
                        <th>Avg / mo ($k)</th>
                        <th>Share</th>
                      </tr>
                      <tr>
                        <th>region</th>
                        <th></th>
                        <th></th>
                        <th></th>
                      </tr>
                    </thead>
                    <tbody>
                      <tr>
                        <th>North America</th>
                        <td>2137.3</td>
                        <td>356.2</td>
                        <td>32.5%</td>
                      </tr>
                      <tr>
                        <th>Europe</th>
                        <td>1913.0</td>
                        <td>318.8</td>
                        <td>29.1%</td>
                      </tr>
                      <tr>
                        <th>Asia Pacific</th>
                        <td>1638.4</td>
                        <td>273.1</td>
                        <td>24.9%</td>
                      </tr>
                      <tr>
                        <th>Latin America</th>
                        <td>883.4</td>
                        <td>147.2</td>
                        <td>13.4%</td>
                      </tr>
                    </tbody>
                  </table>

                  </div>
              metadata:
                table_state_spec: "{}"
              execution_count: 11
          type: code
          content: >-
            by_region = (
                view.groupby("region")["revenue_k"].agg(["sum", "mean"]).round(1)
                .rename(columns={"sum": "Revenue ($k)", "mean": "Avg / mo ($k)"})
                .sort_values("Revenue ($k)", ascending=False)
            )

            by_region["Share"] = (by_region["Revenue ($k)"] / by_region["Revenue ($k)"].sum() *
            100).round(1).astype(str) + "%"

            by_region
          metadata: {}
        - id: b000000000000000000000000000000e
          blockGroup: g0000000-0000-0000-0000-00000000000e
          sortingKey: "000013"
          contentHash: sha256:55df40d80aa5ec8a99afc3552d66ae396a5bd588443234a349a01f94e31d20ad
          executionCount: 12
          outputs:
            - output_type: display_data
              data:
                image/png: iVBORw0KGgoAAAANSUhEUgAAAzsAAAF0CAYAAAAEvie/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAASdAAAEnQB3mYfeAAAcAJJREFUeJzt3Qd4U+XbBvC7e9PdUlr23shU9pK9h4IyFBUVRMG9Udx/kc+BqKACCopsZChLQAREluy9W6B775Hvel5ITNqkg6Y0Te7fdYUm55ycnJwkh/Oc93mf106j0WhARERERERkZezLewOIiIiIiIjKAoMdIiIiIiKySgx2iIiIiIjIKjHYISIiIiIiq8Rgh4iIiIiIrBKDHSIiIiIiskoMdoiIiIiIyCox2CEiIiIiIqvEYIeIiIiIiKwSgx0iIiIiIrJKDHaIiIiIiMgqMdghIqrgatSooW7FdenSJdjZ2eGhhx4q0+0iIiIqbwx2iMhmyQm/3Ozt7XH+/HmTy3Xr1k237IIFC3Cnde3aVb02UXmS76B8F62JBPzyvuQCABFZJwY7RGTTHB0dodFo8N133xmdf/bsWWzfvl0tR0RERBULgx0ismnBwcFo3bo15s+fj5ycnALzv/32W/V34MCB5bB1REREVBoMdojI5j322GO4ceMG1q1bZ7AvsrOzVdpa+/bt0ahRI5P7SVp/xo0bh9DQUDg7O6NKlSrqsUzP76233lJpM9JatHz5crRt2xbu7u7w8/PDqFGjEBERUaBvzY4dO9RjbSqdqXSi1NRUvPDCC6hWrRpcXFxQp04dfPTRR6rlqiijR482eK38VqxYoeY/9dRTRa5L9pk25e/3339X2+rt7W2QiieB5Zw5c3D33XejUqVKah/cddddmD17NvLy8nTL/f333+p5Q4cONfl6DRs2VO83Li7OYPrGjRvRr18/BAQEqPm1a9dW+ychIcFkv6fi7kP5/GS75PMsaT+qn3/+WaVG+vj4wNXVVW3/u+++i8zMTBRHnz591GsfPnzY6PxffvlFzX/++ed10y5cuICJEyeq9+Pm5qa+b02bNsUTTzyB2NjYYn2eQr4f+t9D/fcvyw0fPhy1atVSryGfa4cOHbBo0aJC0zOzsrIwY8YM1K9fX+1z/b5k+/btQ69eveDl5aXW17NnT+zZs8fgd5TfqVOn1DqqVq2qfo9yQeOBBx7A6dOnDZaT5y9cuFDdr1mzpu49laT/GxFZPuZlEJHNkxP9Z599VrXiDBkyRLc/fv31V0RFRamT3XPnzhndT3IyJidgycnJGDRokAqK5GRLTvDWrFmDLVu2oE2bNgWeJyf6sn55TpcuXbB37151kionsP/++6866ZOT4enTp6uTyMuXL6v7WvlPyCQw6927N65du4a+ffuqtLvVq1fj5ZdfRkZGhsFzjXnyySexZMkSzJ07V21Pft988436KyfHxSXBnAQ7sj3yPHkP2m2VljIJRuQEV05E5aR/27ZtmDJlitoXP/74o1pWgiFZZsOGDeqk3N/f3+A1/vnnH7W/5SRbTuC13n77bXVCLNMGDBiAoKAgHDlyBDNnzlTrkhNmOXk25z4sjgkTJqhWxLCwMLXN8hlLQPfGG29g69at2Lx5c5Epk+PHj1f77ocffsAnn3xSYL72BF4bNFy/fl19B5OSklTwJ68r7+fixYtqP0sAm3+/6mvRooV677JPq1evbhCM6Afd8h1q3LgxOnfujJCQEPV5yb4eO3asCjTeeecdo+uX7ZHfkexz+f3JZyX+/PNPFejk5uZi2LBhKlg9evSoChS7d+9udF3yfZNltd8xCe7Cw8OxcuVKrF+/Xn3HWrZsqZaV9ySfr/zmnnnmGfVZCO1fIrISGiIiGyWHwNDQUHX/kUce0Tg4OGiuXr2qm9+7d29NpUqVNKmpqZrXXntNLT9//nzd/Ly8PE2DBg3U9EWLFhmse8mSJWp6/fr1Nbm5ubrp06dPV9O9vLw0R44cMXjO6NGj1bxffvnFYHqXLl3UdFOqV6+u5vft21eTlpammx4ZGanx9vZWt6ysLN30ixcvquXHjx9vsJ7GjRtrXFxcNDExMQbTz58/r7Gzs9O0b99eUxyyj2T98pzffvutwHztPnjqqac0OTk5uulyf8KECWre6tWrddPff/99Ne2LL74osK5Jkyapeb/++qtu2h9//KGm3XPPPZr4+Hij2zZ16tRS7cNt27ap5eW9GCPrk5ux1x46dKjBa+jvk08//VRTlPT0dLU9wcHBmuzsbIN5169fV9/jli1b6qZ9/vnnJtedkpJSYFtMkXXId9GUc+fOFZiWmZmp6d69u8bR0VETHh5u9HvdtGlTTXR0tME8+c3UqVNHzd+wYYPBvK+++kpNl5t8DlpxcXEaHx8fjb+/v+b48eMGzzl69KjGw8NDc9dddxlMl9+ArEd+E0RknZjGVoZSUlLUlSNJOZCri+aq5CRXiuWqlqSFSNN+q1at1BVhIipdKptcQf7+++/VY2mFkKvsDz74oEqxMmb37t2qVeGee+5Ry+m7//770bFjR3VF+6+//irw3KefflqlEeXfBm1rxe34/PPPVfqQllwhHzx4MBITEwuk8BgjV+YllSr/cWrevHkqjevxxx8v0fbIa8vxT5+kqH3xxReoXLky/u///g8ODg66eXJfWirkWLl48WLddGkZkIp52hYLLUl/ktYoeZ/SKqC/H7Tbnf8qvbRKSEuF/vrNuQ8L89lnn6lWG/mO6b+GkJYdaV0xtV36pBXsvvvuQ2RkpGrh0SctivI9ltaf/PK/pvDw8DA6/XZIy0t+kkY2efJklbYoLVfGSIuPpBrm/21Ja6q04uh/tkLS8erVq1dgPdLSJSmK0gKVP+20SZMm6vd16NAhnDhx4jbfIRFVRExjK0MxMTEqD1lyv5s3b240t7ikJP3hkUcewb333ov3339fnRzIf8BXr141yzYT2ap27dqp4ENORF9//XWV0iYn5toAxJiDBw+qv6ZSamS6BDpygiWpPfqkKEJ+0sdAxMfHl3j75eKHpOyUZp3Sz0hStiSV7bnnnjPot+Tr66tOsEtC+iPld+bMGdW3pm7duqqfijFy8n3y5EndY0n56tGjhwo+5URVeyK7du1ata5p06YZpH5JipqTkxOWLVumbvlJkBQdHV0gLc4c+9CUtLQ0lS4lJ/Wffvqp0WUkdVH/fRdGgjYJ5iQA7N+/v266PJb3LqmBWpIq+eqrr6qgQ4IjSdWTvjSyH81Z0vzKlSsq5VOCGrmfnp5uMF+/P1pR3xP5zQi5YJCfBL7Sj06+S/rkcxeyn431pdIuL/u4sD54RGRdGOyUIclZllxpuYK5f/9+o3n7JSGdleU/K8lplyuERGReEthIi8tvv/2mLixIq6l0mjdFrvZrf+vGaKcb6xBvrF+A9oRdrsyXlKl+BiVZp7QUjxkzBl9//bXq2yBX1aVfkRRvmDp1qmpRKAk59uWn7QwvxRvkCnxhLeP5T+4l2JGTeTmhFtqWnvytGPIa0pJQ2Pq1r6Ef7JhjH5oigZK0jkmQVdR2FYec7Evrhnw+sm4JRiX4PnbsmOr3ot9SIv1spLVQAgDp0yL9V7RBnBQxkO98aUkBBAlaZFs6deqk+tpI8CgX5OT/LvmsTBVgMPY90f62pLiAMcama79bEgQWJv93i4isG9PYypBcpTN2EDdGTq7kPwhJKZATDrlSd/z4cYNl5ARE/rOV1iLtAbs4VZaIqHgkXUpaFaQzvVyFlnSZwsjJnJBgwBi52KG/XEUgqWz6BQm0f4vaF8YYazXQ7gupribHL1M36TyvT5aXggLaNC0pHCHHTWk1l1v+15CT/8LWLzcJAm6XtC4IY+XKjQW42vctwXNR21Vc0hInAYQ2jdlU8Cek4pssJwGBXHz78MMPVculdMw3NcZUScyaNUutW9YlWQySDijpaRJgSUtSSb8n2uIRkqpnjLHp2n0sLTuF7V9j+4eIrBeDHQsg1XAkuPH09FRXLCV3W1I1pPlef1Rn6avToEEDVd1G0jokKJKrkrK8fqlWIro9cmV/xIgRqnqTXHiQKm2F0bb6mEpRldYRoa3+dLu0/VpK07JQXM2aNVMpTqtWrVJV0eS4Iyl4crJsDnIM01YgkxS54pIgVNLopFKabNNPP/2kAg1jJ65SwU1aGPJfMDInCaaEsRRi6WuibZnQkuO7VCqTbcpfIvt2SbCj7csk+1JKWkuLjn5am7FWKmmxfOmll9TyQiqSFYe8lqnvoLZaoVRWy89UOfPi/LaM9XeT/++kT4+xz13s3LnTIn9bRFQ+GOyUM2mdkRSCRx99VF2llBKgL774ojoRkCtQ0i9HS9I+5D/Whx9+WJUvlbKu0nFT8t5fe+21cn0fRNZCfk9yoi99G+SCQmEkKJCyyHJCJr9HffJYTrok1chYv4OS0KZaST+IO9W6I/1a5MRVjkMlKTddFDnZllRcafWSY1/+fh1C5hnrRK4teSwd0eUm68pfGEJIHx5tWqIER/nJWDpyjC1t0CatD1JeXFqZtOT9mEoLk/Lmsl/l+G0stVECNG0/sOKQNDTpFybvRVKbJUVO+upInx19Bw4cKBB86beOmCrAYex7aKp/qLYUev7AX35H2oF5S0J+W1LwQC4YyP+N+qRPWf7+OkL+b5RAWtIEjRX5kCAp//bd6d8WEd157LNTziQHXf7TkyvIUtBA/2qTdJjWXhnWBkZysJb0A7kqJ+RkRK4Syn900gG1qJMzIiqcFBSRW3FoByWUgiFSfU2qdslJsBQNkavl8nuUk3JtytPtks750tFexg+RcVKklUNSsCTtriyMHDlSBQySyictBfK65iSt0ZJqJKm5UmRATthlQFYJGuSizq5du/Dee+8V6EQuJ8BSQED2hXYcFe2YLPn3lxwnX3nlFVUIQfaZDBopx1CpsictDRKASv+V2yUBhaSASaqWtEJImp20NMkxXQaVlVt+EuRI4CFjLMmJvKR3yXdNjuGStifjysgJu+yX4pKWLWnpkuO/9rGx7AFJR5T3LK8rrVLnz59X+17SraU/VnHIfpXqd7LfpbVS9oG0+slt0qRJqp+bfHekdVTev/Qfkn0sLXIlrRgqvxkJkqSanxRYkP/rZNtlrCTZx3KhT4Ig/d+WBC5ykUE+C2nlke2V1jT5nUqQJgUMJNVOxhjSf08ff/yxCozlNeQ3KwFTcQbPJaIKorxrX9uKffv2FRijQ3z00Ue68QKM3WSMDy0ZI0CmXb582WAdCxcuVNN37Nhxx94PkbWNs1MUY+PsaJ06dUozZswYTeXKldV4IvL3wQcfVNPz046noj8+SFHj38j4M6+88oqmZs2aav35xzsxNqZLYa9n6nX0yTg0sszzzz+vKSnteDLG9pX+GEU//PCDGoPF19dX4+TkpKlSpYqmQ4cOmvfee09z5coVo8975513dMfH5cuXF7odO3fu1IwcOVITEhKi1h8QEKBp3ry5Ztq0aeqYrK+k+1D7Hj744ANNrVq11PqrVq2qeeGFF9S4TIWtb+3atZr+/ftrAgMD1fNkvJw2bdqo79jJkyc1JSGvJf9PyPY1adLE6DJ///235oknntA0a9ZM7WtXV1dN7dq1NQ899JAaf6a4ZMwhGQsqKChIY29vX2CcoV27dmm6deumxrrx9PRUn+WqVatMjklU1PhR2m3v2bOnWp/cevToodm9e7dm8uTJ6rmHDh0q8Bz5fst8GadHxo2SMa1kvCv5jcr25PfJJ5+o8bKcnZ3VOk19bkRUMdnJP+UdcNkCbTU2ufKlP/q09uqjXHkzVsxA0jS0I1RLOoxc9ZSrUnI1Tks7QrlcSZYry0REpSXHHWlpkFYqaR0hsiTSyid9yiQ9T/rXERGZwjS2cqYdhE1SMXr27FnostKpVIIdSS2pVauWbro2Jz0wMLCMt5aIbIH0d5BUL0khYqBD5UXGJpI+TvlLgsu4T1KgQC7yMdAhoqIw2ClnkrMtnVylEIGMaZG/Y6l0ONUGMdInQPKlpbSn5LML6cMjrUV+fn4qGCIiul1fffWVupgixxTpC2GO8WCIbpcUDZD+UNInTvpqSZ8oGWxUCoJIAPTJJ59w5xJRkRjslLHZs2erAgTa1hfpECplbYVUJJJxAeQEQzoaS4fPUaNGqeBGDvLr169XTfWyDiEpatKZ8oMPPlDFDGRsCUldkwO/dD7VT20jIiopKX0vxydpOZbUWmMj2xPdKTJwqFTbk1ZGKdYjYwpJurcUcZAKpNrMCCKiwrDPThmTcpxS/ccYqb6jX65T+u9ICVE5oEtlIhlkVCrC6LfYSDWh119/XVW2kQo+UvZWKrMZK79KRERERGTLGOwQEREREZFV4qCiRERERERklRjsEBERERGRVWKwQ0REREREVonBjpnJgJ/Hjx9Xf4mIiIiIqPww2DGz8+fPo0mTJuovERERERGVHwY7RERERERklRjsEBERERGRVWKwQ0REREREVonBDhERERERWSUGO0REREREZJUY7BARERERkVVisENERERERFaJwQ4REREREVklBjtERERERGSVGOwQEREREZFVcizvDaCSy8nOw4mDKUhOyIGXjyMatfSEoxPjViIiIiIifQx2KliQs2zudaxbFImE2BzddN8AJ/R/MAgjJ4Yw6CEiIiIi856DpiUiOzUOboE1K9yeZXNABQp03pl0Fos+i0BC3H+BjoiPzVbT3518Vi1nTl27doWzszM8PT1RqVIlNG7cGN98841ZX4OIiIiILE92Sjwur/kAB95sh/M/v4SKiMFOBSEtOvt3JN58oMk389bjfdsTsXzedbO/9osvvoiUlBQkJCRg+vTpePLJJ7Fjxw6zvw4RERERWY7cjGREbP0auRkpSDqzG8kXDqCiYbBTjrIy83D5bFqRtwsnU7Fm4Y1irXPNwki1fFHrlNcuKXt7e9x3333w8/PDvn371LS9e/eq1h9/f39Ur14db7zxBnJybrY8PfDAA3jkkUcM1nHw4EHVUhQZGakenzp1CgMGDEBwcDBCQ0MxadIkpKam6pavUaMGZsyYgX79+sHLywu1a9fGqlWrdPPfeustdOzY0eA1HnroIYwZM0b3WII0CdBk+2Q7ZV0XLlwo8fsnIiIisiWuAdUQ2Hqouu9WuS7ysjNQ0bDPTjm6fiUDk/ofM+s6k+JzMGXw8SKXm7O+CarXdS/RuiWIWbp0KWJjY9GwYUOcPn0aPXr0wLfffosRI0YgIiICgwYNgqurK1577TU8+uijGDx4MD777DOVBifmzZunC25iYmLQqVMnvPrqq1ixYgWSk5MxatQoTJ06VS2nJetfvXo1WrRogU8//RTjx49XrytpdUXRaDQYOnQoqlSpgkOHDsHDwwNvvvmm2obDhw/DycmpRPuAiIiIyNqkXT+DiE2z4dOoGwLb3AxutML6PA2/pvfCr3lf2NlXvHaSirfFdMfNnDkTPj4+KogZN24cPvroI/Tv3x9ffvklBg4cqAIUR0dH1XIiKW/z589Xz+vWrZsKapYsWaIep6Wl4eeff1ZBkPjhhx9Qp04dTJs2DS4uLggICMDbb7+tpufm5upeX5Zv2bKlall6/PHHVVB08uTJYm27BDi7du1S/YykRUpe5/3338fFixdVqxQRERGRLYs5uBb/vt8D0ftWInzj59DkGWb/uAXVgv9d/StkoCMq5lbTHfX888+rVLD4+HiVIrZp0ybVynP27FmVUiaBkPYm6WI3btxMubOzs8OECRPw3XffqcfLli1TqWh9+vRRj+X5Bw4cMHi+pJjJ87TrENIqoyUtM0ICnuKQ15BtDQsL072GpLKJq1evmnEvEREREVU8Pg06wcHl5vlV+o2zSDr3N6wJ09jKUUg1V5VOVpTcHA1eHX8KyQn/tXaYUsnXEe8tqA8HR7siX7ukJFCR1hxJYZO/lStXVv1yvv/+e5PPkeBIihocP35cpaM9/PDDqoVGyPOlv80ff/xR4m3R3yb9Pj7i2rVrCAoK0r2G9BGKjo5myhoRERHZLI1Gg8RTO+FZ4y44unnppju6+6By54eQdu00wvpMgVeNlrAmbNkpR84u9qrfTFG3Wg09MHh85WKtc/D4YLV8UeuU174dkgYmfV7eeecdFcgsX75ctdhkZWWp1LNz587h999/N2iV6du3L1566SXs3r1btfRoSeAjaWZz5sxRKW7yI5TWFumfU1ytW7fG0aNH8ddff6nXl235888/dfMlmGrSpIlqcYqKilLTpIVK+gjJaxIRERFZu4TTf+HozAE48eUDuPHXDwXmVxvwIho+Md/qAh3BYKeCkAFD23T1vvkgf6PNrccyf8RjIWW+LWPHjlWpYBs3bsTmzZtVMQGppCbTpFDB5cuXDZaXPjfr169XRQWkuppWtWrVsGfPHrUOqbImKWa9e/dWwUtxdenSRRU4GDZsGAIDA7F9+3YMHz5cN9/BwUGt393dHe3atVMtQc2bN1fpd5IuR0RERGTtMmOvIuXyYXX/+h/zkJuVbjC/ovbHKQ47jVxOJ7ORdC1pSTh27JgagNOcZMBQGUdn3aIoxMdk66b7BjhhwJggFeg4Olnvl5WIiIiICien9vkv6OblZOHg2x2RnRyL4HtGoeqA5+Hk4WsTu5LBTgUKdvSDnhMHU5CckAMvH0c0aunJIIeIiIjIhklrTdSeJbi+/Ts0fnopXHz/K/Akks7vU+PmOHsHw5awQEEFJK03zdoVPcYMEREREdmGswueQtyRjer+ta1fo+aIGQbzK9VuA1vEnCciIiIiogouuMODuvtxRzYhL/e/Lg+2jC07REREREQVRFZSNOKPb1V9b/T5NOoG36a94F2vvQp87B2cym0bLQmDHSIiIiKiClB44NKKtxC5axHysjPhEdYEnlX/G69RihI0fNz02Ie2imlsREREREQWToKZrMRIFeiIiE1flPcmVQgMdoiIiIiILEz+sXBEWO8p6q9H1WYIaD20HLaq4mEaGxERERGRhZDBP8M3fo7M+Gto9uIGgzFzPMIao9kL6+FRrRkHRy8mBjtERERERBYgJz0Jxz4bgbxbrToJJ/6Ab+MeBst4Vm9eTltXMTGNjYiIiIjIAji6VUJw+wd0j5MvHizX7bEGDHbIJE9PT93N2dkZDg4OBtN27tx5x/feggULEBYWVuzlO3TogKVLl5bpNhERERGVhCYvD7GHf0PMwXUF5lXp8TgC2gxF81c2o9qAF7hjS4lpbGRSSkqK7v7rr7+Ov/76C9u3b7+tPZaVlaUCpjvp2rVr+Pfff9GvX787+rpEREREpqRHXsCpbx9D+vXTcPapDL+m98LeyUU338W3CuqNZ6U1c2HLjgWISUsr9CZ11bVSs7MLXVbma8nz8s83ly+//BJNmjRBpUqVULlyZYwdOxYxMTG6+W+99RY6duyIN954A1WqVEGLFi3U9A0bNqjnSctQ9+7dMX36dNSoUUP3vNzcXHzyySdo2LAhvL290apVK2zdulXNk5akJ554QgUx2talxYsXm9zGVatWoWfPnmo5Y6TD32effYZ77rkHHh4eaN68OY4ePYply5ahfv366r2NGDHCIOiLiIjAfffdh+DgYHW7//771fYQERERFYezbwhyUuLU/ayEG4j+Zzl3XBliy44FqD13bqHzY59+Go63KnHM2rcPM//5x+SyL7drh1fuuUfdz8jNLbDuxKlTzbLNEuCsXLkSderUwdWrV1UAMGXKFPz888+6Zf7++2/06tULFy5cQF5eHs6fP48hQ4bgm2++UcHR/v37MWjQILi7u+ue884772D16tXqVrduXaxZs0Ytc+TIEXTq1Alff/21amUKDw8vchtl+8aPH19kWpwsFxoaijFjxqjt69y5s9q2tLQ0tG/fHl988QVeeeUVFYgNGDAADRo0wJkzZ1QwOXHiRLV9e/fuVWl+RERERPrlozW5OXB089JNc3B2Q5UeE3H1t09RudM4+DbtxR1WhtiyQ7dl+PDhqFevHuzt7VG9enW8/PLL2LRpk8Ey0vIhLTuurq4qoJFASFp4Hn74YTg6OuLuu+/GuHHjDJ7zf//3f/joo49Uy4qse+jQoSrg0A+iikNamfbs2aMCkcI8++yzqFmzpkqxe/DBB1Vg9v7778PLy0ttv6TA/XMruJS/hw8fxpw5c1Srk4+PD7766iscPHgQ+/btK9H2ERERkfXKSU9G+OYvcXD6PaqMdH6VO41Hqxl/o8aQ1+BcKbBcttFWsGXHApyfOLHQ+Q569dWfbdMGT95KCTPGzclJd9/VwaHIdd8uaQ2ZOXMmzp07h4yMDNVyk5qaqlo/tC0cEgTp14aXFDCZpk8/hS0yMhJJSUkYOXKkCnS0srOzVQtSSUiLkLQESUBSmJCQEN19SWUzNi05OVndlxYsPz8/+Pr66ub7+/urx1euXFHBGxEREVHimV24suYDtSNu7PwBofdOgpPHf+cPDi7u6kZlj8GOBQjQS+MqioeTk7oVhwQaJVl3cUkKmQQkixYtUi0v0nIj/WOGDRtm0L9IP2ARkip24MABg2mXL1/W3ZfARNa1bt06lUpmTP51FhaMSeuTOVWtWhXx8fHqpg144uLi1ONq1aqZ9bWIiIio4vJr2gtuIfVVEQIpJ50RfdEg2KE7h2lsVGLSYV9acgICAlRwcvbsWXzwwc2rF4UZNWqUqo72ww8/ICcnR6WFyX0tFxcXVYDgxRdfxMmTJ1XglJ6ejj///FP1kdH2FZIUtdjYWJOvk5iYiG3btqn+N+bUtm1bVVzhqaeeUi1Q8jqTJ09WqXlt2rQx62sRERGR5cuMi8CFpa8h7frN8xQtO0nzH/QKaj/wMVq+tQteNVqW2zbaOgY7VGLSQV+CG+lvI31bpAiAdO4viqSiSYvLhx9+qFpxpJ/PhAkTVMCkJalxo0ePVi1HsoykuclrSSqbkApugwcPVv2FZP5PP/1U4HWkZUiCj6CgILN+upKeJ+vOzMxU70UKKEjQ9uuvv7I4ARERkY25vmMBDr7VATf+XIiITbMLzPdr2hPB7UfD3vHODr1Bhuw0+nlHVGrHjx9XV/+PHTuGxo0bc48WYerUqaoVZ+PGjWbbV5K+1qVLFzz99NPc/0RERFQmki8dxNGZtwoh2Tug1Vu74eIXyr1tYdiyQ3eUtIxIGpoUMtiyZQu+//57VQXNnKRQgJTCJiIiIjKH1Iib6fX6JDXNu35HVKrTDo2e/AHOvlW4sy0QCxTQHSXloKX0tIxhI4ONvvnmm2rMHXN64YUXzLo+IiIisk1J5/bi6u+fIfHUn2g85Rd41+9gML/BxO/g4HKzmitZJqaxmRnT2IiIiIisw/mfX0bkrkXqvne9Dmj89C/lvUlUQkxjIyIiIiIyQsbHkf44sLOHU6VA5GVncj9VMPaWXuJ4+vTp6NOnjxrMUcaNWbBgQbGeu3XrVlXpS6p2ubu7o1atWnj00Udx/fp1o8vv3r0bHTt2VMtKeWPp3C6vT0RERETWS5Obg+h/VuDkV+PVfX2uAdVQe/RHuOvNHaj30GzYO7mU23aSFfbZkY7sM2bMUAM2Nm/eHNu3by/2c1966SU14KOUMJYSwRcuXMDs2bNVB3kZ60UCGi153KNHDzRs2BCzZs1Sg2ZKCWQZP+a3334ro3dHREREROVJig4cnTUYKZcPq8cxB9YgsK3hoOTB94wqp60jqw92QkJCVEuMBCb79+8v0cCNErRIS429/X+NV9JCJCWJJeh59913ddNfffVV+Pr6qmCqUqVKapqM7/LYY49h06ZN6NWrl5nfGRERERGVN8ka8m3SUxfsXP9zQYFghyo2i05jc3FxMWiBKYnOnTsbBDraaZIOJ+O6aCUlJWHz5s1qUExtoCNkwExPT08sXbq0FO+AiIiIiCxBTnoyks7/U2B6SJeH4eIXhqr9n0OjST+Wy7aRjbbsmJv0wZFbQECAbtrRo0eRk5OD1q1bGyzr7OyMFi1a4NChQ+WwpURERERkDrlZ6YjYNBvXdyyAnR3QasZeOLh66uY7uvug5Vu7YCeFCMjq2FSw8+mnnyIrKwv333+/bpq2YIGkzOUn03bu3GlyfVFRUYiOjjaYdu7cOfU3Ly9P3Sq67t27q+INEvxptWzZskT9pyyBbK/0y8rMzISjo0197YmIiGybnQOi969Gbnqienj9z4Wo0vPJ/AtBYwXnbbbCPl/2VmFs5qzvzz//xNtvv4377rtPncBrpaen61Lm8nN1ddXNN2bOnDlqncZkZGSogTMrutzcXEydOlUN/qmvpO9Ngkz9gOlOkyBHu90MdoiIiKy76ID0xdEX0PlRRKx8A84B1QHPYKs4R7Nlnp7/tcwVxSaCnVOnTmHo0KFo0qQJvv32W4N5bm5uBifD+QMW7XxjJk2apKq95W/ZGTJkiAqUpIx1Refg4AAnJ6cC70X2zVtvvYVly5YhISFB7dv//e9/aNeunZovJcIlQHr55ZdVZbvY2FgkJiYiIiICL774ogo+s7OzVeD52WefITAwUD1Pgsv3339frVda3WT6G2+8gfHjx+PYsWOYNm0ajhw5ooKnBg0a4L333tMFr7IdTz75pCo7LvOlv5cUomjbti2GDRumlgkLC1N/X3nlFXUjIiIi65AedQHXNn8Je2d31Bz5jsE8146j4e4dAL/mfZiuZmOsPti5evWqqqbm7e2NDRs2wMvLy2C+Nn3N2Pg7Mq1KlSom1x0UFKRupprXStLEZsnk6kj+9yKlvSU1TIo7SGnwL774Qu1nKf4gAYUsf+PGDRWYSJAijyW4uffeezFgwACcOXNGXXmR4ESKQ8h6xOOPP67mrVmzRgUz8hnIerT7U4InbZW9Dz74AMOHD1clwuVz+OSTT1SfrIsXL6qI/8qVK0hNTVWV9aSEeLdu3VRAxJYdIiIi65J2/QwOv99DmnVg5+CEsF6T4eL73zmcvbMrAlsNLNdtpPJhHWfjJkhrgpyAS6vNxo0bjfbLkRYJOfmV0tb6pGVAxt+RIgVl7cr6T7D7qTB1k/v5XVw5Qzc/Yus3Beaf/+lF3fwbfy0qMP/M/Mm6+dH7VpV4+6RlxsfHR3dbuHAhvvvuO9VqUqdOHZWe9txzz6mBWxctWlSgn5QEHtIytH79eiQnJ+Pjjz+Gh4eHmv7hhx9iy5YtamwjGVdp8eLFKj1QxjySIEuCTekjpP2sJFiS1jZJO5SWJVlm7969ar5sh3zm0pIngVT16tXRqFGjEr9fIiIiqljcKteFV81W6r4mNxtxhzlOIllRsCNX/+UEV1oOtOSKfr9+/VTalLToyMCixkiLT8+ePdVJupyIa/3444+qlSB/mpotev7551WLiPbWt29flW5Wu3Ztg+Uk8JHWFC1pbdFPf5MWmMjISDWmkTZwaty4sQpc5HnSIiPq169vdDtkmVGjRqmWJCkTLs+X0uFSKEK88MILKrh99NFH4e/vrz47bcEIIiIiqvjkYmbimV1IjThhMF0ufob1fho+jbqhybRVCOn6SLltI1kWi09jkwFA5QT72rVr6vHatWtVK4CYMmWKClak74W0NsjJsqQsiQcffBD//PMPJkyYoFKr9MfWkRYF6VejJf0+2rdvrwYcnThxolq/pETJibMMREqGpHS39Ek6f/68am3Rksf6A7/mT32TPjTS2iLLGaOtbCdpbK1a3bw6o08GeZXPe9++fQgODlYHPAmc5K+QwGrGjBnqFhcXh8mTJ6u+Prt27bKalEIiIiJblXL1KC4ufR3JFw/At3EPNHxyocF838bd1Y3IgMbCVa9eXc5kjd4uXryolhk/frzB46KeJ/Py27lzp6Z9+/YaV1dXTWBgoGby5MmapKSkEm/vsWPH1GvIX2vQpUsXzWuvvVZg+qRJkzTNmjXTnD9/XpOZmamZNWuWxsPDQ3PlyhU1f/78+ZrQ0FCD58j+rFq1qub111/XJCQkqGmRkZGaJUuW6JYZPXq0pl27dppTp06px9euXdMcOHBA3ZfpDz/8sHq9lJQUzUsvvaRxcHDQzJs3T81fs2aN2u/Z2dma9PR0tWznzp3VvNOnT1vV50JERGRrUq+f1ex6Kkyza3KouqVc5f/pVDSLv9x96dIldeXe2E3biiOVv/QfF/U8mZefdHqXFgBJz5K0KGlRyl/MgAz78UjLl3T6l3S1FStWqCIDVatWNbmbZH/u2bNHpaM1bdpUpaJJi5pUZtOaN2+eamGTVDlpgevQoQOOHz+u5n3++ec4fPiwas2RvjihoaG66mpCWvakxU7S22SepMxJ3yJRr1491RIo2yvzpa8QERERWSZNbk6BcW/cK9eBf4t+qgBBcPsH4OjhW27bRxWHnUQ85b0R1kROzCW1SyqQSX8UIiIiIiqevOxMRO1dhojNc1Bj6OsquNGXEXMFdg6OBpXWiApj8S07RERERGQbIrZ8hQtLXkZm7BWE//65rl+ulmtANQY6VCIMdoiIiIjIIgR3HAN7J1d1PzMuHJmxV8t7k6iCs/hqbERERERkXbJT4nBj5w+o0uNxODi76aY7ewUgtPcUFfBU7jgGDi4e5bqdVPEx2CEiIiKiOyZ885cI/+1T5GWlw9GtEkK6TjCYX7XPM/w0yGyYxkZEREREd4yDk5sKdLR9dPJysrj3qcww2CEiIiKiMpGdGl9gWlD70XDyCoB7aCPUGPYm7OwduPepzDCNjYiIiIjMKjX8OMI3foH443+g5Vu74FwpUDdP+ug0fe5XuPhXhZ2dHfc8lSm27BARERGR2Ui56HOLX0DsoXXIy0rD9W3zCiwjJaQZ6NCdwGCHiIiIiMxGgpiw3k/pHmfGRXDvUrlhGhsRERER3VYLTvyxrUi58i+q9X/eYJ5fsz4I6foIAtuNhGfVJty7VG4Y7BARERFRieRmpePYrCGqbw7s7BDQajDcK9fVzbezt0fNEW9zr1K5YxobEREREZWIFBlw9gm5+UCjQcTmOdyDZJEY7BARERGRSXnZGciICy8wPaz3FNg7uyGk22OoNvBF7kGySExjIyIiIqICcjPTEPnXIkRs/Qau/mFo8uxqgwpqXjVbofW7++Ho7s29RxaLLTtEREREVEBOWgIur/0Q2UmRSL54AElndxdYhoEOWToGO0RERERUgItvFQS1G6nuO1UKRk5aIvcSVThMYyMiIiKyYZkJ13Ft6zfwCGuCoHYjDOaF3jvp5vS7R8LeybXctpHodjHYISIiIrJRCSd34OQ3D0OTkwWXgOoIbD0Edg7/nR66BlRH5U5jy3UbiUqDaWxERERENkqKDEgZaZEZcxnxx7eW9yYRmRWDHSIiIiIbkHL1mCo6oM/B1RMhXR9RQU/DJxfCt2mvcts+orLANDYiIiIiK5Zy5QiurJ+JhON/oGr/51C17zSD+WG9n0ZY32kGZaWJrAVbdoiIiIisWPqNsyrQEde3fYvcjBSD+dJHh4EOWSsGO0RERERWLKDVYFV8AHZ28G7QuUCwQ2TNmMZGREREVMFp8nIRe3AdIrZ8hfqPfqOqqOm33NR54GM4VQqCe+U65bqdRHcaW3aIiIiIKrjzP72IMwsmIzX8GCI2zykw37teewY6ZJMY7BARERFVcIFth+nuxx5aj9zMtHLdHiJLwTQ2IiIiogoiNzMV8Ue3IKD1YIPpleq2h0/j7vCs2hQhXR+Fg4t7uW0jkSVhsENERERUAYRvnI1rW79WY+W4+IepsXG0pJpawycWsqoaUT5MYyMiIiKqANJvnNENChq+8YsC81k+mqggBjtEREREFkaTm1NgWmivp1T5aBf/avBrei80Gk25bBtRRcI0NiIiIiILkR59UVVTS71yBM1e/A129v9dl3YPqYfGU35BpdptVTlpIioafylEREREFiA3Kx1H/jcAuemJ6nHckd/h36JfgRLSRFR8TGMjIiIisgAOzm6o3PFB3eOEk3+W6/YQWQO27BARERHdYUnn/0F2ckyBlpuQbo8h7dppVLn3SXjXuZufC1EpMdghIiIiukMy46/h7MIpSDq3F05egfBp1E216Gg5VwpEwycX8vMgMhOmsRERERHdIU6e/siIuazuZydHI2rPEu57ojLEYIeIiIioDGjycpGbmWp44uXkgtCeT8LO3hFBd98Pn4ZduO+JyhDT2IiIiIhKICc7DycOpiA5IQdePo5o1NITjk7/XT/Oy8lC9D8rELH5S/g27oGaI942eH5Q+wfg26w3XP3CuN+JyhiDHSIiIqJiBjnL5l7HukWRSIj9b9BP3wAn9H8wCCMnhqigJ/HMbpz/6QU1L3LXYoT2ngJnrwDd8tJHx4GBDpFlBztpaWnYvHkzdu3ahRMnTiAmJgZ2dnYICAhAw4YN0aFDB/Ts2RMeHh7m3WIiIiKicgh03pl0Fvt3JAJ2hvPiY7Ox6LMInD6cgte/rKtS0zzCmiA1/BjsHF2QFnESzg068TMjKgd2Go1GU5InHD16FJ988glWrlyJlJQUuLm5oWrVqvD19YWsKj4+HlevXkVGRoYKdIYPH47nnnsOTZs2hS04fvw4mjRpgmPHjqFx48blvTlERERkBj9/GaECGn2ujsloU20DTke1RVRKTTVt7NRQjJoUirhjW5F27SQqdxoPRzcvfgZEFaFl5/7778eKFSvQunVrvPXWW7j33nvRqFEjODg4GCyXm5urWns2bdqE5cuX46677sLIkSPx888/m3v7iYiIiMq8VUdS11SLzq1LxI0q70S/Rl/BxTEDAZ5XserI82r+ukVRGPFYCPya9FA3IqpA1djs7e2xf/9+/P3333j22WdVa03+QEfINJknLTp79uxRzyEiIiKqiKQYgeqjo5cLE5saqgId0TB4D/zcI9T8+JhstTwRVcBgR1pmWrRoUeIXkefcTquOpMlNnz4dffr0gZ+fn+oTtGDBgmI99/r163j55ZfRrVs3eHl5qedu377d6LJdu3ZV8/Pf5HWJiIjIdl2/koGV318vMD0yuRbORrdCdEpVrDn6DOLTK+vmSZU2IrIMFl2NTYoezJgxA9WqVUPz5s1NBivGnD59Gh999BHq1q2rWpmkhakwYWFh+OCDDwymValS5ba3nYiIiCom6YP87+4k/PpDJPZtT4Cp3s2/Hn0aGTkeBa4dSzlqIrIMZv81JiYmqgptUrjg7rvvVn9vV0hIiGqhqVy5skqFa9OmTbGf26pVK8TGxqoWIek3JH2GCuPt7Y0xY8bc9rYSERFRxZaRlos/1sRi7Y+RuHIuvejlc/IVHrADfP2d1Lg7RFTBg53vv/8eZ86cwYcffqibJkUJpGjBjRs31OPatWtj48aNqFnzZoWSknJxcVGBzu2Q1LWSysnJUVXkPD15kCIiIrIVkeGZWLc4EhuXRSM1KbfAfEcnO4TVcsWl00UEQBpgwJgggwFGiah83favUYIc6VOjT4oWSCU2aUn56aefkJCQgFdffRUVgQRuUipbgiQJsN544w1kZ2eX92YRERFRGaWqHdmbhHcnncWjPQ9j5Xc3CgQ6Pv6OGD25CuZva47PVjZGm67eN2fkG2dH+1jmSyU2IqrgLTt5eXm4cOEC2rVrp5uWnJyMrVu34vPPP8fQoUPVtGvXrmHmzJmwdNICJYUMpG9PamqqCtbeffddFQD98ssvJp8XFRWF6Ohog2nnzp3T7SO5ERERkeXISM/FjnVxWPdjFC6dMd5SU6exOwaOC0anvr5wcv7vuvCrX9TGim9vYP3iKMTH/FeEwNffEf0fDMLwRyvD3uHmOQARlR2pEF0mwY4EBFKlTFo85Icsg4vOnz9fzZNWHmnV+e6777Bs2TI1LS4uTqW0de/eXT1+6KGHMG7cOFga2WZ9Y8eOxcSJEzFv3jxMmzZN9T0yZs6cOXj77beNzpN0uLS0tDLZXiIiIiqZmBvZ2LQ0DltXJSAlsWCqmgQp7XpUQt/RfqjXzO3m+U5OBrLzFVYbON4HfR/wxunDaWo9nt4OqN/cXaW6ZWVnIItJIURlriRdTkoU7GjLPmdlZaFBgwYqIOjfv7+a9n//93+4fPmyGnRUSyqgPfbYY7qAyMfHBxWFjBEkwc6WLVtMBjuTJk0qUPhAWnaGDBkCV1dXuLu736GtJSIiImOpaicOpGDtj1HYsyUeeQVjHFU5rc/9Aeg3OggBlZ2LvRPbdJYqbERk6UoU7FSvXl13v379+vjxxx8xfPhwlfq1Zs0a9O3b12CZTZs2oWrVqgbTKgrZbm3rlClBQUHqZqp5rSRNbERERGQeWZl52LE+Fmt/iMT5E8azLGo2cMfg8cHo3N8fLq78/5rIWt12NTYZw0ZaNbRj0fj6+qoBQPXJQKJSna0ikj5JIjAwsLw3hYiIiIoh5kYWNvwchd+WRCEpvuDAnnIN8p57fTFoXDAat7454DgRWbfbDnYGDhyIo0ePYvPmzXBwcMDgwYMNykRLJbauXbti9OjRKGsyFo+M7yOFBpycnEr03KSkJFXiWm76zd5SoED07t3b7NtLRERE5iH/Z5/6N0UNALprYzxycwqOACr9avrcF6SKCARV+e//eyKyfqUaVLRu3brqZoz0z3nzzTdRWrNnz1aBk1R2E2vXrkV4eLi6P2XKFDUY6CuvvIKFCxfi4sWLqFGjhu652oDl+PHj6q+k3f3111/q/uuvv67+Hjx4UAVkcqtTpw7S09OxatUqNTCq9Elq2bJlqd8DERERmVd2Vh52bohTQc7ZY6lGl6lezw2Dxgaj6yB/uLo58CMgskF2GrkkYsEkeJHCB8Zogxup8mYs2CmseVr7tuU5L730Evbt26cqx0k/m4YNG6rCChLslLSJWwKrJk2a4NixY2jcuHGJnktERESFi4vOwm8/R2HDkmgkxBQsfSb/bbfr7oNB4yujWTumqhHZuhIFO48//jhefvll1KxZs0Qvcv78efzvf//DN998A2vHYIeIiMj8zhxJwZofIvHXb3HIyS546uLh5YBeIwMx4MFgVK7KVDUiuo00tqtXr6oqbD169MD999+v/mqrluV36dIlVbZ56dKl2LZtG3r16lWSlyIiIiIbJ6lquzbFY+0PN3DqX+OpalVru2LQuMroNsgfbh5MVSOiUgQ7GzZsUH1ZZs6cqVK8ZBBRf39/lTom1dikkSg+Pl6lhslfKVzQr18/Fex07NixJC9FRERENiohNhu//xKF9T9FIS7KeKpam64+qqpai/aVWFWNiMxXoKBDhw7qFh0djXXr1qmBQ0+dOqUrGiDBz7Bhw3DPPfeoAUdNjUNDREREpO/c8VRVcGDHulijqWrung64d0SASlWrUt2VO4+IKn6BgoqGfXaIiIiKT0pF7958M1Xt+IEUo8uE1nTFwDHB6DE0QAU8RER3pPQ0ERER0e1IjMvGxqXRKlVNBgM1pnVnbwwcF4yWHb1hb88BQImo5BjsEBER0R1z8VSaSlXbvjYGWZkFk0vcPOxVC4605ITVcuMnQ0SlwmCHiIiIyjxVbe8f8SrIOfpPstFlQqq5YODYYPQcFgAPL56eEJF58GhCREREZSI5IQeblkdj3eJIREUYT1W7q0MlVVWtVWcfODgwVY2IzIvBDhEREZnV5bNpWPtjJP5YHYvMjLwC813c7NFjSIBqyalWh6lqRFR2GOwQERFRqeXmarBve4JKVTu8J8noMsFhzqps9L0jAuHlzVMQIip7ZjnS/P3332rg0KioKEyaNAl169ZFWlqaGn+nXr168PT0NMfLEBERkYVJScrB5hUxWLcoEjeuZhpdptndXhg0tjLadmeqGhFVoGAnKysLo0aNwpo1ayDD9djZ2WHgwIEq2LG3t0evXr0wbdo0vPbaa+bbYiIiIip3V8+nq1S1ratjkJFWMFXN2cUO3QYHYNDYYNSo714u20hEVKpg54033sC6devw1VdfoVu3bqhfv75unqurK0aOHKkCIQY7REREFV9engYH/kzErz9G4uDORKPLBIY4o/+DQeg9MhCVfJ3u+DYSEZkt2Pn555/x5JNPYuLEiYiNjS0wv2HDhli2bFlpXoKIiIjKWVpKLrasjMbaRZG4dsl4qlrj1l4YPD4Yd/fwhYMjq6oRkRUEO9JHp2nTpibnOzg4qL47REREVPFEXMpQfXE2r4hGemrBVDUnZzt0HeivqqrVbuRRLttIRFRmwU7VqlVVEQJTdu3ahTp16pTmJYiIiOgOkj64h3Yl4dcfbmD/jkRoNAWX8Q9yQv8Hg9Hn/kB4+zFVjYisNNh54IEHMGvWLAwfPlxVXRNSpEDMmzcPS5cuxYcffmieLSUiIqIyk56aq4oNSNGB8AsZRpdp2NJTFRxo38sXjk72/DSIyLqDHSk8IGWnO3furPrnSKAj1dfi4uIQHh6Ofv36qcdERERkma5fycD6xVHYtDwaqcm5BeY7Otmhcz8/DBoXjLpNOZQEEdlQsOPs7Izff/8dixcvxvLly5Gbm4vMzEw0a9YM7777LsaOHatr6SEiIiLLSVWTgT+lqto/fyQYTVXzDXRCv9FBKlXNL9C5PDaTiKjU7DRyxCOzOX78OJo0aYJjx46hcePG3LNERGQxMtJzsW1NrEpVu3w23egy9Zp6YND4YHTs4wcnZ6aqEZENt+wQERGR5YuKyMS6xZHYuCwaKYkFU9WkVHSnvn4YOC4YDZozVY2IrEepgp3u3bsXuYyksW3durU0L0NERET55GTn4cTBFCQn5MDLxxGNWnoaFA2QxI1j+5Lx6w+R+HtLPPIKVo6Gt58j+o4OQr9RQfAPZqoaEVmfUgU7eXl5BfrkSL+dy5cv4+rVq6rsdGhoaGm3kYiIiPSCnGVzr6vxbxJic3T7xTdAykEHqUICuzbGqyDn4injY93VbuyOweMqo1M/Pzi7MFWNiKxXmfXZWbduHSZOnIj169fjrrvugq1gnx0iIirLQOedSWfV+DeQa436/4PfeuzoaIecnIL/tds7AB163ayqJiWkWUCIiGxBmfXZGTBgAMaMGYOpU6dix44dZfUyRERENkNadFSgI/LHM7ce5w90Kvk4os+oQPR/IBgBlZmqRkS2pUwLFNSuXRuzZ88uy5cgIiKymVYdSV0r0KJjQo36bhg8vjK6DPCHiytT1YjINpVZsJOTk4OlS5ciICCgrF6CiIjIZkgxAv0+OkWZ+Fo1NL/bu0y3iYjIqoOdCRMmGJ2ekJCAv//+Gzdu3MCsWbNK8xJEREQEmCw2YIqxEtNERLamVMHOH3/8UaCDozz29fVFx44d8eijj6JXr16l3UYiIiKbHiNn8RcR2LoqpkTPk3LURES2rlRHwkuXLplvS4iIiEgnMS4bv3x9DesXRyEnuwSFU+0AX38nNe4OEZGt42UfIiIiC5KWkovVC25g5XfXkZ5qOBKovb2McVfECjTAgDFBBgOMEhHZKrMEOydOnMCFCxcQHx+vRmzOb9y4ceZ4GSIiIquVnZWH35ZEYcmca0iMyykQ5HQfEoD7n6yCue9dxr7tpsfZadPVGyMeC7nj209EZHWDip4/f16NpfPPP/8YDXLUC9jZITfXdjpJclBRIiIqidxcDbb/GotFn4cjKiKrwPx7evpi7LRQVK/rritBvXzedaxbFIX4mGzdcr4BTqpFRwIdtuoQEZmhZefxxx/H0aNH8emnn6JTp06qMAEREREVTS4S/rMtAQtnhePymfQC85u08cJDz4eh4V1eBtMlkBk1KVQFNVKOOjkhRxUjkD46DHKIiMwY7OzatQuvvvoqpkyZUprVEBER2ZRj+5Kx4JOrOHkwpcC8Wg3dMf65MLTq5F2g4qk+CWyatatUxltKRGTDwY4MGOrtzQHLiIiIiuPCyTQsnHUV+3ckFpgXUs0FY6eGoVM/P9jbmw5yiIjoDgU7TzzxBBYtWoTJkyfDwcGhNKsiIiKyWtevZGDRZxHYsS4W+bu4+gY64YGnQtFrRADT0IiILCnYqVevnio+0Lx5c0yYMAFVq1Y1GvQMGzasNC9DRERUIcVFZ2HJl9fw+9Jo5OYYRjkeXg6q382gccFwdecFQyIii6vGZi+1MIt6AVZjIyIiG5OanIMV395Q4+VkphsOjOPsYoeB4ypj5GMhqrAAERGVnVIdZbdt22a+LSEiIqrgMjPysG5xJJZ9cw3JCYbDLtg7AL1GBGL05FAEVHYut20kIrIlpQp2unTpYr4tISIiqqAkRW3Lymgs/iICsZH/jX2j1amvH8ZODUVoTbdy2T4iIltllvbzzMxMHDx4EFFRUejQoYOq0kZERGTtJBN896Z4/DArHOEXMwrMv6tDJYx/Ngx1m3qWy/YREdm6ojvdFOHzzz9HSEgIOnbsqAoRHDlyRE2PiYlRQc/3339vju0kIiKyKP/uTsSzI07g/SnnCgQ69Zp64L0F9fHu/AYMdIiIKmqwM3/+fEydOhV9+vTBd999p65waUmg0717dyxZssQc20lERGQRzh5NwWsPncJrD53GmaOpBvPCarri1S/qYNbyRmjRnuPQERFV6GDnk08+weDBg/HTTz9h4MCBBea3atUKx48fv+31p6SkYPr06SqY8vPzU5XdFixYUKznXr9+HS+//DK6desGLy8v9dzt27ebXH737t2qdcrd3R2VK1fG008/rV6fiIhIhF9IxwfPnMPU4Sfw7+4kg50iBQeefq8m5qxvig69b/5/RUREFbzPzrlz51RQYIoEKLGxsbe9fkmFmzFjBqpVq6bG8iksWMnv9OnT+Oijj1C3bl00bdoUe/bsMbnsv//+ix49eqBhw4aYNWsWwsPDMXPmTJw9exa//fbbbW8/ERFVfDE3svDT7AhsXhGNPMMCa/DyccB9j1dB/weD4eJa6sxwIiKypGDHx8dHBSSmnDhxQrWS3C7pCyQtNLKO/fv3o02bNsV+rrQqSaAlAdfy5csxcuRIk8u++uqr8PX1VcFUpUqV1LQaNWrgsccew6ZNm9CrV6/bfg9ERFQxJSfkYNnca1j7YySyMg2HpHNxs8fQhytj2COV4eHFsXKIiCxVqS5D9evXD3PnzkVCQkKBeZK+Nm/ePAwaNOi21+/i4nLbwZKkrkmgU5SkpCRs3rwZY8aM0QU6Yty4cfD09MTSpUtv6/WJiKhiykjLxS9fXcMjPQ6rgUH1Ax0HRzsMeDAI325phrFTwxjoEBFZuFJdjnr33XfRrl07NGnSRPXZkRzlhQsXqgpsK1asUC0zb775JizZ0aNHkZOTg9atWxtMd3Z2RosWLXDo0KFy2zYiIrpzcrLzsHFZNH7+8hriow3HypEuOF0G+mPM06EIqebKj4WIyBaCnSpVquDAgQMqDeyXX35R1dh+/PFH1aoyevRofPjhhxY/5o6kyQkJzPKTaTt37jT5XBlXKDo6ukA/JpGXl6duRERk2fLyNNi5IQ6LP7+G61cyC8xv3cUb46aFomYD91vL89hORFSe7O2Ln5xW6kTjoKAgfPvtt+omJ/7yn0BgYGCJNqI8paen61Lm8nN1ddXNN2bOnDl4++23jc7LyMhAWlqaGbeUiIjMSS7Q/bs7BT9/EYXLZwoGOfWau+GBKUFo2NJDPeYxnYjIMkhXkzsS7GzYsAG9e/eGg4ODeixBTkXj5uam/mZmZhoNWLTzjZk0aVKBwgfSsjNkyBAVKEkZayIisjynDqVgwSfhOL6/4BAD1eu6qZacNt28WUKaiKiCK1WwM2DAAFUEYNiwYbj//vvVmDYVpUVHS5u+pk1n0yfTJFWvsFYtuRkj+6Gi7QsiImt3+WwafpgVjr+3FiysExTqjLHPhKm+OQ4OHCeHiMgalOpsXMagkWprUtpZyjNL4DB58uRC+7lYGimu4OjoqEpb68vKylLj70iRAiIiqtiiIjIx66ULmDzgWIFAx9vPEY+/Xg1zNzZD9yEBDHSIiKxIqYIdSWGTymuRkZFYs2aNCngWL16Mrl27IiwsDFOnTi10ME9zkRaYU6dOITvbsHpOcXh7e6Nnz55YtGgRkpOTddOl0EJKSkqh4/MQEZFlS4zLxtz3LuOxXkewdVUMNHrD5bh52OPBp0Px7ZbmGDSuMpyc2RpPRGRt7DTSQ9OMpEVEWnykOtuvv/6q+r1IaefbNXv2bDWOz7Vr1/DVV1+plLm77rpLzZsyZYoKVh566CFV8vrixYtqMFD90tjaMX+WLFmCCRMmoGbNmmra66+/rlvu4MGDaN++PRo1aoSJEyciPDwcn3zyCTp37oyNGzeWaHvltaS16NixY2jcuPFtv28iIrp9aSm5WD3/BlZ+fx3pqYbV0xydbo6Vc98TVeDt58TdTERkxcwe7MTFxakxdiS42LFjh6p2k5ube9vrk+Dl8uXLRudpgxtTwY6M+2NK/rf9119/4aWXXlKBj5TOvu+++/DBBx+o+yXBYIeIqPxkZ+Vhw89RWDLnGpLiDS+0STfKHkMD8MBToQgKLViBk4iIrI9Zgp3ExESsXLlSteZs27ZNpZM1bdpUFS2QW+3atWErGOwQEd15ubkabFsTg0WfRyD6WlaB+ff09MW4Z8NQrY7pCptERGR9SlWNTfq1LF26FJs3b1bpaw0aNFADjEqAI/eJbG309RMHU5CckAMvH0c0aukJRyf2ASAqS3K9TgoO/Ph/4bh8tuC4aE3beuGh56uiQYvij8lARETWo1TBzvjx41GrVi0899xzKsBp1qyZ+baMqAIFOcvmXse6RZFIiP0vbcY3wAn9HwzCyIkhDHqIysCxfUmYPzNcjZmTX+1G7hj/XBhaduRYOUREtqxUwc6+ffvQqlUr820NUQUMdN6ZdBb7dyQC+bqIxcdmY9FnETh9OAWvf1mXAQ+RmZw/karGytn/Z2KBeVWqu2Ds1DB07OsHe3uOlUNEZOtKFezoBzpS/jkqKgp16tSBh4eHObaNyOJJi44KdET+3m+3Hu/bnojl865j1KTQO759RNbk2uUMLPosHDvWxRWY5xvopAoP9BoRwAsLRESkU+oOBTK+jvTPkXF1WrZsib1796rpMTExqkT06tWrS/sSRBbbqiOpa/lbdAqwA9YtilLLE1HJxUVl4cu3LuGJvkcLBDoeXg4qXe3bzc3Qb3QQAx0iIjJfy87atWvVuDf33HMPHnjgAbz11lu6eQEBAQgNDcX8+fMxZMiQ0rwMkcVUe4q5nqWuLkdczMCRvUkGfXRM0gDxMdmqeEGzdpXuxKYSWYWUpBys+PY61iyMRGa64cUCZxc7NRDoiMdCVEEQIiIiY0r1P8SMGTPUwJtSbjo2NtYg2BESBH3zzTeleQmiO17ZKS4qWxfQ/Pc3E9evZCA76/YrtZ84kKwqQxU2/hMRAZkZN1tNl35zDSmJhuO02TsAvUYEYvTkUARUdubuIiKisgt2jh07hlmzZpmcHxwcrPrxEFmapPhsRFzKwLVLmbf+Ztz8ezkDGWllk27246cR2Lo6Bj2HBqqBDXmiRmQoN0eDzSui8dPsCMRGZhfYPZ36+mHs1FCE1uRYOUREdAeCHXd3d6Smppqcf+HCBfj7+5fmJYhuW1pKrpEWmptBTf6rxSXl4mavqj6FXyhZa48EVz/8Xzh+/DQcd3WohJ7DAnHPvb5wduF4PGTbLaq7Nsar34b8TvNr2bESxj1bFXWbsPgNERHdwWCnW7duWLhwIaZOnVpg3o0bNzBv3jwMGDCgNC9BVGS6i6SX6QcyElDI/fjogleGS8LRyQ5VqruqoKZKDVeE1nDV/fULclLpaD9/GaHKSxdF+hdkZf4XFGk0wMG/ktTNo5IDugzwx73DAlC3qQfT3MimHNqViIWfhOPssYIXzuo19VADgja/h33diIjo9thp5JLabTp9+jTuvvtu1KhRAyNHjsQbb7yB559/Hk5OTqqvjqx6//79ar6tOH78OJo0aaJS/Bo3blzem2MVpIpZZLikm91KOdNrpZGCAbf/Db6Z/x8c6mIQyGj/BoQ4w8HBrshte3fyWVVeWlVl09+WW4/bdPXGS/9XG/v/TMKWFdE4+Fci8kxkylWv64YewwLQbZA//ALZH4Gs15kjKVjwSTgO70kqMC+slivGTQtD+16+DP6JiKj8gh3tyf0zzzyjihTor6pr16748ssv0bBhQ9gSBju3Jy/vZqUzCWYM+tBcysCN8EzklS7rDIEhzqqVJrTmzZaam39dERzmAifn0qWQScAj4+hIeWmpuqblG+CEAWOCVLUoR6f/XiPmRha2/RqDLStiEG4kZUcbhLXu4qNae9p09Sn1NhJZiqvn01Uap6St5Sf92B58OhQ9hgTAwZGFPIiIyAKCHa34+HicO3cOeXl5qFWrFgIDA9V0Wb0tVZ9isGOafBcktUwXzFzOxLVbLTRyK02lM+ET4ITQWyln2tYZuVWu5gJXNweUNQl6pLx0ckKOKoXbqKVnoWN+yP449W8KNq+IwZ/rY5Geary5p5Kvo2rpkf49tRq6l+E7ICo7EuQv/jwCW1ZGF2jZ9PJxwH2PV8GAMcHsv0ZERJYZ7OSXlZWFBQsWYObMmThz5gxsBYOdm5XOpFRz/sIAcjN1Ql9c0r/FWMqZtNZ4eFXcsTYy0nOxZ3O8CnyMpfVo1W7kjp7DAtB1oD8q+Trd0W0kup0gX44Hy+Zex9ofIwtc0JBCH0Mfroxhj1Su0L9fIiKysmBHAplff/0V58+fh6+vrypCUKVKFTUvLS0Ns2fPxqeffqqKFNSuXRtnz56FrbCEYKekLQylqXSmn26m7U+TnGCOSmd6KWd6QY20clh7S2FURCa2rIrBlpUxqq+SqeIJ7br7qNaeVp28mfJD5XKckSBGxsPRH1xX0jf7PxiEgWOCse6nKKyYd10dL/J/f/vcH4hRk0LV8kRERBYT7Fy7dk31x5FAR/tUNzc3Ffw4OzvjgQceQEREBNq2bYsXXngBw4YNs/qTU0sJdoo6+Rg50bDvSHErnUkgY9BSc8k8lc5CqulVOdMFN67wD75Z6czWST+m4/uTVWvPX7/HFRhBXksqw3UbHICeQwNQrQ7HH6E7c6x5Z9JZ7N9hujCH/MZzsg3/e5GfdZeB/hjzdChCqrnyoyIiIssLdh5++GEsWrRIVV3r1KkTLl68iBkzZsDT0xMxMTHqBP+DDz5Aly5dYIvKK9gpzsmHVAV7/cu6BgGPqnQWkZWvdPPNv6WudGYPVQBAP5DR/g2sUnSlM/qPXBmXgEequR0/kGJy19Rv7oF7hweic38/pgVRmSluyXV9cvwZN60q+50REZFlBzthYWHo168f5s6dq5u2YsUKVXq6f//+WLNmDezlLNdGlVewU9yTj7bdvBFS3VUX3ESGZ6lRy0tDKijdTDUzTDkzR6UzKkg+N0lx27oqRnX6NjWuT/tefqp/j4xRYm/PwJLMQy6QjO/8LxLicgwvqpjQ8C4ZK6camrTx4kdARER3XIl7hEZGRqqxdfRpH0+YMMGmA53yPPmQ1LUCLTpG/LMtEYDcSsbH39FoC01I9TtT6Yz+I/tdxiCREr1SzGDzimhV3EC/87cMYLp9bay6SdntHkMDVODD1CEqrd2b4g3SZIsydloYAx0iIqo4wU5ubi5cXQ1zrbWPvb29zbdlVGxSjKAkJx+meHjdqnRW0xWh1bV/b/arYaUkyyNpgC07eqtbcmKOKl8tLT5njhiORB99PQtL5lxTN7m6LkFPxz5+cPNgkEqFk4Z/aQWWvmPH9iXj2P5kREUYb000JSWxlINkERERlcJt1fq8dOkSDh48qHucmHizpUCqrvn4+BRYvmXLlqXZRiqCVF0riaBQZ9Rt6mGQcmYrlc6slZe3I/o/EKxul8+mqaDnjzWxSNAb5FSoE9Z9yfj6ncsq4Ll3eAAat/bi505Kbq4Gl8+k49i+JBXYHN+XXOoLKVIRkoiIqML02ZE0NWMnxMYGD9VOk9YgW1EefXaO7E3CK2NPFXv5D35sgGbtKpXpNpFlpDce2JmoAp9/tiUUqIylVbmqi2rtkVS3oCoud3w7qXy/I+eOp90KgpNUK3FqkpmO13aAr78TFuxobvbS90RERMVV4ktu8+fPL+lTqIzJODrSp6bIDsO3Tj5kebJ+coLZrruvuiXGZav+O1LG+uKpNIPlblzNVMUtZHR7KWYgrT333OsHF1eeoFobKSd/+nCKroXv1L8pJkua65OumLUauaNJay80aVMJpw6nYPnc64U/SQMMGBPEQIeIiCreoKJUcauxjZ0aqgbyI9t1/kSqau3Z/msskkykQLp7Oqjy1VLGWspZM72xYkpNzsHJg7eCm/3JOHs01WQLnz4ZI6d+Mw+V4ti4jRcatfRS3wn9FqF3J5/Fvu0lK3VPRER0pzHYsaJxdnjyQSWRnZWn0tukmtuBPxORZ+ICf9Xarug5LBDdB/vDL8iZO9mCSQueBDaqoMD+ZFw8mWbyc9Xn4maPhnd5qgIWcqvXzLPIlj055iyfJ4MYRyFer2+YDGIsLTojHivZIMZERERlgcGOlQQ7gicfdLviorJUQQMJfMIvZJhMZWrZyVu19rTr7sMxlCxA9PXM/yql7UvG1fPGP7v8PCo5qFYbFdy09kLtRu63HZjIcUf6+kihFClGIGmyDHKIiMhSMNixomBHiycfdLskq/X0kVRsWRGNP9fHITXZeGd1Lx8HdB14c+weOVFmmtud+WyuXc682XJzq1qaDApcHD4BTrrARv5Wr+fGgWaJiMgmMNixwmCHyFyd2fdsjlP9e/7dnQRTvftq1ndDz+GB6DbIH95+Ttz5ZpKXpy0DfTMlTVpw4qMNS4mbEhzmrAKbxm0qqeCmSnUXBqRERGSTGOyYGYMdskZR1zLxx+oYFfhcv5JpdBkHRzu07eajWntad/ZmKtPtlIE+kabGttEGN8UtAy39qrT9bSQ9LTCEJcSJiIgEgx0zY7BD1p5KJSfhEvTs/C0OGWl5JtOmpKVHylhXr+t+x7ezorScnTnyXxnok4eKXwa6ZsObZaBVtbTWXvDxZ4saERGRMQx2zIzBDtmK9NRc/LUxDltWxKiTdVPqNfVAj2EB6DLAH17eJR7ay2qkpeTixEHpb3MzuDlTgjLQdZt66PrbNGzpCQ8v292PREREJcFgx8wY7JAtun4lA1tWxWDrqhhEXzPead7J2Q739PRFz+EBaNHeGw4OMiCLdZeBllYwbRnoCyeKWQba1R4NbpWBllYbGefI1e2/MW6IiIio+BjsmBmDHbL1TvWH9ySpNLfdm+KQlWm85cI/2Ak9htys5hZa0w3WIOZG1s2+Nrdabq6cSy/W8zy8HNColQQ3N4sJSHU7J2eOT0NERGQODHbMjMEO0U0pSTnYuUGquUXj1L+pJneLjMsi1dw69fWDu6dDhem7JIUatP1t5BYZbrxwQ34+/o5orCsDXUmVgbb2Vi4iIqLywmDHzBjsEBUkrRyS5iYV3UyVT3Zxs0eHXpLmFoimbb0sahwYabG6cvZmGWhtWlpcVPHKQAeF3iwDra2WVqWGK8tAExER3SEMdsyMwQ6Rabk5Ghz8KxGbV0Zj79YEkx30g8Nc0HNoAHoMDVD3y2M7z59INRjjJiWxeGWgw2q5qr422kE8g0JZBpqIiKi8MNgxMwY7RMWTFJ+N7WtjVf+e8yfSTC7X7G4v3DssEO17+5rsqC9j1Jw4mILkhBx4+Tiq1DhHp+L3e8nKLFgG2lRZbX12dkDNBu66VptGrbzgG8Ay0ERERJaCwY6ZMdghKrkLJ9OwZVU0tq2JRVJ8jtFl3Dzs0bmfv6rm1vAuT5UKJkHOsrnXsW5RJBJi/3ueBBz9HwzCyIkhRoMeKQN98tDNwOb4/hScPpxSrDLQMnBq/jLQnpVYBpqIiMhSMdgxMwY7RLcvOysP+7YnYPPKGOzfkYA8E5ljoTVd0X2QP47sTcbhv5MA6d6jH6vcetymqzde/7KuCm6OH0jRVUo7fzLV5LoLlIFu4YnGrW9WS6vfgmWgiYiIKhIGO2bGYIfIPOJjsrFtTYxKc7t8tnhlnI3x9ndEol6rT2GkGtzNMtA3W27qNPZgGWgiIqIKjPkXRGSRJBVt2CMhGDqhMs4eTVWtPTvWxSI1qXiFArQKC3S8/Rx1gY0UFahR351loImIiKwIgx0ismjSN6deM091e+yVavh7SzxWfn9DBUAlFRjirAts5K9UTpP1ExERkXVisENEFYaziz069/dXhQLen3Ku2M8bNDZYtRCxDDQREZFtKX5tViIiCyHlpUvinl6+DHSIiIhskEUHOykpKZg+fTr69OkDPz8/lW6yYMGCYj8/ISEBEydORGBgIDw8PNCtWzccPHiwwHI1atRQ685/e+KJJ8z8jojIHGQcHR9/x5tV1wpjd7PvjyxPREREtsei09hiYmIwY8YMVKtWDc2bN8f27duL/dy8vDz0798fhw8fxgsvvICAgADMmTMHXbt2xYEDB1C3bl2D5Vu0aIHnnnvOYFq9evXM9l6IyHxk7JwBY4Kx6LOIwhfUAAPGBJVogFEiIiKyHhYd7ISEhOD69euoXLky9u/fjzZt2hT7ucuXL8fu3buxbNkyjBgxQk277777VAAjrUU//fSTwfKhoaEYM2aM2d8DEZUNGTBUBgPdtz2x0HF2RjwWwo+AiIjIRln05U4XFxcV6NwOCXaCg4MxbNgw3TRJZ5OAZ82aNcjMzCzwnKysLKSmlrzCExHdedJaIwOGjp0aCl9/J4N58limy3y26hAREdkui27ZKY1Dhw6hZcuWsLc3jOfatm2LuXPn4syZM2jatKlu+h9//AF3d3fk5uaievXqmDZtGp555ply2HIiKi4JZEZNClWtNycOpiA5IUcVL5A+OgxyiIiIyGqDHUl/69y5s9HUOHHt2jVdsNOsWTN07NgR9evXR2xsrCqCMHXqVLXMRx99ZPI1oqKiEB0dbTDt3Llzuj5DciOismfvADRpY1iEgL8/IiIi65S/McMmg5309HSVBpefq6urbr7Wr7/+arDMww8/jL59+2LWrFmYMmUKwsLCjL6GFDx4++23jc7LyMhAWlpaKd8FERERERHp8/QsfpVVqw123NzcjPbLkSBEO98UKTstaWwbN25UFeBMFS6YNGkSRo4cWaBlZ8iQISqokrQ4IiIiIiIqH1Yb7GgrueWnnValSpVCn1+1alX1Ny4uzuQyQUFB6maqea0kTWxERERERGReVns2LuPmyACi+fP29+7dq1pcihpD58KFC7oKbkREREREVPFYRbAjrTWnTp1Cdna2bpqMrRMZGYmVK1caDFIq4+4MHDhQ159HWm6kAps+Wc+HH34IZ2dndOvW7Q6+EyIiIiIispk0ttmzZyMhIUFVRhNr165FeHi4ui/FA7y9vfHKK69g4cKFuHjxImrUqKELdu6++25VbODEiRMICAhQBQUksNEvKiDFCd599121fM2aNVXwIwOOHjt2DO+///5tj/NDRERERETly+KDnZkzZ+Ly5cu6x9JSo22tkcIBEuwY4+DggA0bNuCFF17A559/rqqvtWnTRpWVlhLTWlJ+ulGjRli0aJEqIy2tOZICt3Tp0gLFB4iIiIiIqOKw02g0mvLeCGty/PhxNGnSRLUMNW7cuLw3h4iIiIjIZllFnx0iIiIiIqL8GOwQEREREZFVYrBDRERERERWicEOERERERFZJQY7RERERERklRjsEBERERGRVWKwQ0REREREVonBDhERERERWSUGO0REREREZJUY7BARERERkVVisENERERERFaJwQ4REREREVklBjtERERERGSVGOwQEREREZFVYrBDRERERERWicEOERERERFZJQY7RERERERklRjsEBERERGRVWKwQ0REREREVonBDhERERERWSUGO0REREREZJUY7BARERERkVVisENERERERFaJwQ4REREREVklBjtERERERGSVGOwQEREREZFVYrBDRERERERWicEOERERERFZJQY7RERERERklRjsEBERERGRVWKwQ0REREREVonBDhERERERWSUGO0REREREZJUY7BARERERkVVisENERERERFaJwQ4REREREVklBjtERERERGSVGOwQEREREZFVYrBDRERERERWicEOERERERFZJQY7RERERERklRjsEBERERGRVWKwQ0REREREVonBDhERERERWSWLDnZSUlIwffp09OnTB35+frCzs8OCBQuK/fyEhARMnDgRgYGB8PDwQLdu3XDw4EGjy/76669o2bIlXF1dUa1aNfW6OTk5Znw3RERERER0J1l0sBMTE4MZM2bg5MmTaN68eYmem5eXh/79++Onn37CU089hf/973+IiopC165dcfbsWYNlf/vtNwwZMgQ+Pj744osv1P13330XU6ZMMfM7IiIiIiKiO8URFiwkJATXr19H5cqVsX//frRp06bYz12+fDl2796NZcuWYcSIEWrafffdh3r16qlWGwmCtJ5//nk0a9YMmzZtgqPjzV1SqVIlvP/++3jmmWfQoEGDMnh3RERERERksy07Li4uKtC5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
                text/plain: <IPython.core.display.Image object>
              metadata: {}
          type: code
          content: >-
            import io

            from IPython.display import Image, display


            monthly = (view.groupby("month")["revenue_k"].sum().reindex(window).fillna(0) * 1000)


            fig, ax = plt.subplots(figsize=(7, 3.2), dpi=120)

            ax.plot(range(len(window)), monthly.values, marker="o", lw=2, color="#4a25c9", label="Revenue")

            ax.axhline(target_monthly, ls="--", lw=1.3, color="#0e8f8f", label="Target / mo")


            if forecast_on and len(window) >= 3:
                recent = monthly.values[-3:]
                step = (recent[-1] - recent[0]) / 2
                fc = [monthly.values[-1] + step * k for k in (1, 2)]
                ax.plot([len(window) - 1, len(window), len(window) + 1],
                        [monthly.values[-1], *fc], ls=":", lw=1.8, color="#c56b1b", label="Forecast")

            ax.set_xticks(range(len(window)))

            ax.set_xticklabels([m[2:] for m in window], fontsize=8)

            ax.set_ylabel("Revenue ($)")

            ax.set_title("Monthly revenue vs target")

            ax.legend(fontsize=8, frameon=False, loc="upper left")

            ax.grid(axis="y", alpha=.15)

            for s in ("top", "right"):
                ax.spines[s].set_visible(False)
            fig.tight_layout()


            # Render headlessly to a PNG so the output is a real image (works with the Agg backend).

            buf = io.BytesIO()

            fig.savefig(buf, format="png", bbox_inches="tight")

            plt.close(fig)

            display(Image(data=buf.getvalue(), format="png"))
          metadata: {}
        - id: b000000000000000000000000000000f
          blockGroup: g0000000-0000-0000-0000-00000000000f
          sortingKey: "000014"
          contentHash: sha256:51c054f538a4d310ca21a5c38acfa6d9ad92db17055dcac323714153f4588dee
          executionCount: 13
          outputs:
            - output_type: execute_result
              data:
                text/plain: <IPython.core.display.HTML object>
                text/html: >
                  
                  <div style="font-family:system-ui,-apple-system,sans-serif;color:inherit;line-height:1.6;
                              border-left:3px solid #4a25c9;padding:2px 0 2px 14px">
                    <strong>Q1 2026 Sales Review.</strong> Over the last 6 months
                    across all regions, revenue reached
                    <strong>$6,572,100</strong> — 110% of the $6,000,000 target (on track).
                    <strong>North America</strong> led the period.
                    <div style="margin-top:8px;opacity:.75"><em>Analyst notes:</em> APAC expansion drove the quarter; watch Latin America pipeline.</div>
                  </div>
              metadata: {}
              execution_count: 13
          type: code
          content: >-
            import html


            best = view.groupby("region")["revenue_k"].sum().idxmax()

            on_track = "on track" if pct >= 100 else f"{100 - pct:.0f}% short"


            # Escape the free-text inputs before interpolating them into HTML.

            title = html.escape(str(report_title))

            notes = html.escape(str(analyst_notes))


            HTML(f'''

            <div style="font-family:system-ui,-apple-system,sans-serif;color:inherit;line-height:1.6;
                        border-left:3px solid #4a25c9;padding:2px 0 2px 14px">
              <strong>{title}.</strong> Over the last {months} months
              {('for ' + selected) if selected else 'across all regions'}, revenue reached
              <strong>${total:,.0f}</strong> — {pct:.0f}% of the ${target_total:,.0f} target ({on_track}).
              <strong>{best}</strong> led the period.
              <div style="margin-top:8px;opacity:.75"><em>Analyst notes:</em> {notes}</div>
            </div>

            ''')
          metadata: {}
        - id: c00000000000000000000000000a0001
          blockGroup: a0000000-0000-4000-8000-00000000a001
          sortingKey: "000015"
          type: text-cell-h2
          content: Agentic analysis
          metadata: {}
        - id: c00000000000000000000000000a0002
          blockGroup: a0000000-0000-4000-8000-00000000a002
          sortingKey: "000016"
          outputs:
            - output_type: stream
              name: stdout
              text: >
                Executive readout — Q1 2026 Sales Review


                Revenue over the last six months reached $6,572,100 — 110% of the $6.0M target and

                up 13.7% versus the prior six months. The beat is broad-based: the monthly trend held

                at or above the per-month target across most of the window rather than riding a single

                strong month.


                What drove it

                - North America remains the largest contributor by absolute revenue and anchored the period.

                - Asia Pacific is the fastest-growing region (~3%/month) and is the main reason the blended
                  growth rate reached double digits; on its current trajectory it overtakes Europe within a
                  couple of quarters.

                Risk

                - Latin America is the smallest region and grows slowest. It adds little to the beat today, so
                  any pipeline softness there pulls down next period’s growth rate more than its size suggests.

                Recommendation

                - Re-weight Q2 quota and demand-gen spend toward Asia Pacific to bank its momentum, while
                  funding a focused pipeline-recovery play in Latin America to keep the blended rate above target.
          type: agent
          content: "You are a senior revenue analyst. Using the dashboard above — revenue by region, the monthly trend versus
            target, and the analyst notes — write a concise executive readout: the headline number and how it compares
            to target, what drove it, the main risk, and one recommendation."
          metadata:
            deepnote_agent_model: gpt-5
      executionMode: block
      id: 9b1f7c00-0000-4a00-9000-locrunnernb001
      name: Dashboard
version: 1.0.0